為大家收集整理了《2004年9月全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言試題及答案》供大家參考,希望對(duì)大家有所幫助?。?!
一、選擇題,(1-40)每題1分,(41-50)每題2分,共60分)
下列各題A)、B)、C)、D)四個(gè)選項(xiàng)中,只有一個(gè)選項(xiàng)是正確的,請(qǐng)將正確選項(xiàng)涂寫(xiě)在答題卡相應(yīng)位置上,答在試卷上不得分。
(1) 1MB等于
A.1000字節(jié)
B.1024字節(jié)
C.1000×1000字節(jié)
D.1024×1024字節(jié)
(2) 與十六進(jìn)制數(shù)200等值的十進(jìn)制數(shù)為
A.256
B.512
C.1024
D.2048
(3) 所謂“*機(jī)”是指
A.單片機(jī)
B.單板機(jī)
C.不裝備任何軟件的計(jì)算機(jī)
D.只裝備操作系統(tǒng)的計(jì)算機(jī)
(4) 能將高級(jí)語(yǔ)言編寫(xiě)的源程序轉(zhuǎn)換成目標(biāo)程序的是
A.鏈接程序
B.解釋程序
C.編譯程序
D.編輯程序
(5) 在64位計(jì)算機(jī)中,一個(gè)字長(zhǎng)所占的字節(jié)數(shù)為
A.64
B.8
C.4
D.1
(6) 在Windows環(huán)境下,當(dāng)一個(gè)應(yīng)用程序窗口被最小化后,該應(yīng)用程序
A.繼續(xù)在后臺(tái)運(yùn)行
B.繼續(xù)在前臺(tái)運(yùn)行
C.終止運(yùn)行
D.暫停運(yùn)行
(7) 在Windows環(huán)境下,能實(shí)現(xiàn)窗口移動(dòng)的操作是
A.用鼠標(biāo)拖動(dòng)窗口中的任何部位
B.用鼠標(biāo)拖動(dòng)窗口的邊框
C.用鼠標(biāo)拖動(dòng)窗口的控制按鈕
D.用鼠標(biāo)拖動(dòng)窗口的標(biāo)題欄
(8) 在Windows環(huán)境下,PrintScreen鍵的作用是
A.打印當(dāng)前窗口的內(nèi)容
B.打印屏幕內(nèi)容
C.復(fù)制屏幕到剪貼板
D.復(fù)制當(dāng)前窗口到剪貼板
(9) Internet的通信協(xié)議是
A.TCP/IP
B.BBS
C.WWW
D.FTP
(10) 下列敘述中正確的是
A.計(jì)算機(jī)病毒只感染可執(zhí)行文件
B.計(jì)算機(jī)病毒只感染文本文件
C.計(jì)算機(jī)病毒只能通過(guò)軟件復(fù)制的方式進(jìn)行傳播
D.計(jì)算機(jī)病毒可以通過(guò)網(wǎng)絡(luò)或讀寫(xiě)磁盤等方式進(jìn)行傳播
(11) 一個(gè)算法應(yīng)該具有“確定性”等5個(gè)特性,下面對(duì)另外4個(gè)特性的描述中錯(cuò)誤的是
A.有零個(gè)或多個(gè)輸入
B.有零個(gè)或多個(gè)輸出
C.有窮性
D.可行性
(12) 以下敘述中正確的是
A.C語(yǔ)言的源程序不必通過(guò)編譯就可以直接運(yùn)行
B.C語(yǔ)言中的每條可執(zhí)行語(yǔ)句最終都將被轉(zhuǎn)換成二進(jìn)制的機(jī)器指令
C.C源程序經(jīng)編譯形成的二進(jìn)制代碼可以直接運(yùn)行
D.C語(yǔ)言中的函數(shù)不可以單獨(dú)進(jìn)行編譯
(13) 以下符合C語(yǔ)言語(yǔ)法的實(shí)型常量是
A.1.2E0.5
B.3.14.159E
C..5E-3
D.E15
(14) 以下4組用戶定義標(biāo)識(shí)符中,全部合法的一組是
A._main
B.If
C.txt
D.int
enclude -max REAL k_2
sin turbo 3COM _001
(15) 若以下選項(xiàng)中的變量已正確定義,則正確的賦值語(yǔ)句是
A.x1=26.8%3
B.1+2=x2
C.x3=0x12
D.x4=1+2=3;
(16) 設(shè)有以下定義
int a=0;
double b=1.25;
char c=’A’;
#define d 2
則下面語(yǔ)句中錯(cuò)誤的是
A.a(chǎn)++;
B.b++
C.c++;
D.d++;
(17) 設(shè)有定義:float a=2,b=4,h=3;,以下C語(yǔ)言表達(dá)式與代數(shù)式 計(jì)算結(jié)果不相符的是
A.(a+B) *h/2
B.(1/2)*(a+B) *h
C.(a+B) *h*1/2
D.h/2*(a+B)
(18) 有以下程序
main( )
{
int x=102,y=012;
printf(“-,-\n”,x,y);
}
執(zhí)行后輸出結(jié)果是
A.10,01
B.02,12
C.102,10
D.02,10
(19) 以下4個(gè)選項(xiàng)中,不能看作一條語(yǔ)句的是
A.{;}
B.a(chǎn)=0,b=0,c=0;
C.if(a>0);
D.if(b==0) m=1;n=2;
(20) 設(shè)有定義:int a,*pa=&a;以下scanf語(yǔ)句中能正確為變量a讀入數(shù)據(jù)的是
A.scanf(“%d”,pA)
B.scanf(“%d”,A)
C.scanf(“%d”,&pA)
D.scanf(“%d”,*pA)
(21) 以下程序段中與語(yǔ)句k=a>b?(b>c?1:0):0;功能等價(jià)的是
A.if((a>B) &&(b>C) ) k=1;
B.if((a>B) ||(b>C) ) k=1 else k=0;
C.if(a<=B) k=0;
D.if(a>B) k=1; else if(b<=C) k=1; else if(b>C) k=1; else k=0;
(22) 有以下程序
main( )
{ char k; int I;
for(i=1;i<3;i++)
{ scanf(“%c”,&k);
switch(k)
{ case ‘0’: printf(“another\n”);
case ‘1’: printf(“number\n”);
}
}
}
程序運(yùn)行時(shí),從鍵盤輸入:01<回車>,程序執(zhí)行后的輸出結(jié)果是
A.a(chǎn)nother
B.a(chǎn)nother
C.a(chǎn)nother
D.number
number number number number
another number
(23) 有以下程序
main( )
{ int x=0,y=5,z=3;
while(z-->0&&++x<5) y=y-1;
printf(“%d,%d,%d\n”,x,y,z);
}
程序執(zhí)行后的輸出結(jié)果是
A.3,2,0
B.3,2,-1
C.4,3,-1
D.5,-2,-5
(24) 有以下程序
main( )
{ int i,s=0;
for(i=1;i<10;i+=2) s+=i+1;
printf(“%d\n”,s);
}
程序執(zhí)行后的輸出結(jié)果是
A.自然數(shù)1~9的累加和
B.自然數(shù)1~10的累加和
C.自然數(shù)1~9中的奇數(shù)之和
D.自然數(shù)1~10中的偶數(shù)之和
(25) 有以下程序 main( )
{ int i,n=0;
for(i=2;i<5;i++)
{ do
{ if(i%3) continue;
n++;
} while(!i);
n++;
}
printf(“n=%d\n”,n);
}
程序執(zhí)行后的輸出結(jié)果是
A.n=5
B.n=2
C.n=3
D.n=4
(26) 若程序中定義了以下函數(shù)
double myadd(double a,double B)
{ return (a+B);}
并將其放在調(diào)用語(yǔ)句之后,則在調(diào)用之前應(yīng)該對(duì)該函數(shù)進(jìn)行說(shuō)明,以下選項(xiàng)中錯(cuò)誤的說(shuō)明是
A.double myadd(double a,B);
B.double myadd(double,double);
C.double myadd(double b,double A);
D.double myadd(double x,double y);
(27) 有以下程序
char fun(char x , char y)
{ if(x return y;
}
main( )
{ int a=’9’,b=’8’,c=’7’;
printf(“%c\n”,fun(fun(a,B),fun(b,C)));
}
程序的執(zhí)行結(jié)果是
A.函數(shù)調(diào)用出錯(cuò) B)8 C)9 D)7
(28) 設(shè)有定義:int n=0,*p=&n,**q=&p;則以下選項(xiàng)中,正確的賦值語(yǔ)句是
A.p=1;
B.*q=2;
C.q=p;
D.*p=5;
(29) 有以下程序
void f(int v , int w)
{ int t;
t=v;v=w;w=t;
}
main( )
{ int x=1,y=3,z=2;
if(x>y) f(x,y);
else if(y>z) f(y,z);
else f(x,z);
printf(“%d,%d,%d\n”,x,y,z);
}
執(zhí)行后輸出結(jié)果是
A.1,2,3
B.3,1,2
C.1,3,2
D.2,3,1
(30) 有以下程序段
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;
b=p[5];
b中的值是
A.5
B.6
C.8
D.9
(31) 31、有以下程序
main( )
{ char a[]=”abcdefg”,b[10]=”abcdefg”;
printf(“%d %d\n”,sizeof(
A.,sizeof(B));
}
執(zhí)行后輸出結(jié)果是
A.7 7
B.8 8
C.8 10
D.10 10
(32) 有以下程序
void swap1(int c[])
{ int t;
t=c[0];c[0]=c[1];c[1]=t;
}
void swap2(int c0,int c1)
{ int t;
t=c0;c0=c1;c1=t;
}
main( )
{ int a[2]={3,5},b[2]={3,5};
swap1(A); swap2(b[0],b[1]);
printf(“%d %d %d %d\n”,a[0],a[1],b[0],b[1]);
}
其輸出結(jié)果是
A.5 3 5 3
B.5 3 3 5
C.3 5 3 5
D.3 5 5 3
(33) 有以下程序
void sum(int *
A.
{ a[0]=a[1];}
main( )
{ int aa[10]={1,2,3,4,5,6,7,8,9,10},i;
for(i=2;i>=0;i--) &nb
sp; sum(&aa[i]);
printf(“%d\n”,aa[0]);
}
執(zhí)行后的輸出結(jié)果是
A.4
B.3
C.2
D.1
(34) 34、有以下程序
int f(int b[][4])
{ int i,j,s=0;
for(j=0;j<4;j++)
{ i=j;
if(i>2) i=3-j;
s+=b[i][j];
}
return s;
}
main( )
{ int a[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}};
printf(“%d\n”,f(A));
}
執(zhí)行后的輸出結(jié)果是
A.12
B.11
C.18
D.16
(35) 有以下定義
#include
char a[10],*b=a;
不能給數(shù)組a輸入字符串的語(yǔ)句是
A.gets(A)
B.gets(a[0])
C.gets(&a[0]);
D.gets(B);
(36) 有以下程序
main( )
{ char *p[10]={“abc”,”aabdfg”,”dcdbe”,”abbd”,”cd”};
printf(“%d\n”,strlen(p[4]));
}
執(zhí)行后輸出結(jié)果是
A.2
B.3
C.4
D.5
(37) 有以下程序
int a=2;
int f(int *A)
{return (*A)++;}
main( )
{ int s=0;
{ int a=5;
s+=f(&A);
}
s+=f(&A);
printf(“%d\n”,s);
}
執(zhí)行后輸出結(jié)果是
A.10
B.9
C.7
D.8
(38) 有以下程序
#define f(x) x*x
main( )
{ int i;
i=f(4+4)/f(2+2);
printf(“%d\n”,i);
}
執(zhí)行后輸出結(jié)果是
A.28
B.22
C.16
D.4
(39) 設(shè)有以下語(yǔ)句
typedef struct S
{ int g; char h;} T;
則下面敘述中正確的是
A.可用S定義結(jié)構(gòu)體變量 B)可以用T定義結(jié)構(gòu)體變量
C)S是struct類型的變量 D)T是struct S類型的變量
(40) 有以下程序
struc STU
{ char name[10];
int num;
};
void f1(struct STU C)
{ struct STU b={“LiSiGuo”,2042};
c=b;
}
void f2(struct STU *C)
{ struct STU b={“SunDan”,2044};
*c=b;
}
main( )
{ struct STU a={“YangSan”,2041},b={“WangYin”,2043};
f1(
A.;f2(&B);
printf(“%d %d\n”,a.num,b.num);
}
執(zhí)行后的輸出結(jié)果是
A.2041 2044
B.2041 2043
C.2042 2044
D.2042 2043
(41) 有以下程序
main( )
{ unsigned char a,b;
a=4|3;
b=4&3;
printf(“%d %d\n”,a,b(;
}
執(zhí)行后輸出結(jié)果是
A.7 0
B.0 7
C.1 1
D.43 0
(42) 下面程序的功能是輸出以下形式的金字塔圖案是:
*
***
*****
*******
main( )
{ int i,j;
for(i=1;i<=4;i++)
{ for(j=1;j<=4-i;j++) printf(“ “);
for(j=1;j<=_______;j++) printf(“*”);
printf(“\n”);
}
}
在下劃線處應(yīng)填入的是
A.i
B.2*i-1
C.2*i+1
D.i+2
(43) 有以下程序
void sort(int a[],int n)
{ int i,j,t;
for(i=0;i for(j=i+2;j if(a[i] }
main()
{ int aa[10]={1,2,3,4,5,6,7,8,9,10},i;
sort(aa,10);
for(i=0;i<10;i++) printf(“%d”,aa[i]);
printf(“\n”);
}
其輸出結(jié)果是
A.1,2,3,4,5,6,7,8,9,10,
B.10,9,8,7,6,5,4,3,2,1,
C.9,2,7,4,5,6,3,8,1,10,
D.1,10,3,8,5,6,7,4,9,2,
(44) 以下程序段中,不能正確賦字符串(編譯時(shí)系統(tǒng)會(huì)提示錯(cuò)誤)的是
A.char s[10]=”abcdefg”;
B.char t[]=”abcdefg”,*s=t;
C.char s[10];s=”abcdefg”;
D.char s[10];strcpy(s,”abcdefg”);
(45) 有以下程序
#include
main(int argc ,char *argv[ ])
{ int i,len=0;
for(i=1;i printf(“5d\n”,len);
}
經(jīng)編譯鏈接后生成的可執(zhí)行文件是ex.exe,若運(yùn)行時(shí)輸入以下帶參數(shù)的命令行
ex abcd efg h3 k44
執(zhí)行后輸出結(jié)果是
A.14
B.12
C.8
D.6
(46) 有以下程序
void f(int a[],int i,int j)
{ int t;
if(i { t=a[i]; a[i]=a[j];a[j]=t;
f(a,i+1,j-1);
}
}
main( )
{ int i,aa[5]={1,2,3,4,5};
f(aa,0,4);
for(i=0;i<5;i++) printf(“%d,”,aa[i]); printf(“\n”);
}
執(zhí)行后輸出結(jié)果是
A.5,4,3,2,1,
B.5,2,3,4,1,
C.1,2,3,4,5,
D.1,2,3,4,5,
(47) 有以下程序
struct STU
{ char name[10];
int num;
int Score;
};
main( )
{ struct STU s[5]={{“YangSan”,20041,703},{“LiSiGuo”,20042,580},
{“wangYin”,20043,680},{“SunDan”,20044,550},
{“Penghua”,20045,537}},*p[5],*t;
int i,j;
for(i=0;i<5;i++) p[i]=&s[i];
for(i=0;i<4;i++)
for(j=i+1;j<5;j++)
if(p[i]->Score>p[j]->Score)
{ t=p[i];p[i]=p[j];p[j]=t;}
printf(“5d %d\n”,s[1].Score,p[1]->Score);
}
執(zhí)行后輸出結(jié)果是
A.550 550
B.680 680
C.580 550
D.580 680
(48) 有以下程序
#include
struct NODE{
int num;
struct NODE *next;
};
main( )
{ struct NODE *p,*q,*r;
int sum=0;
p=(struct NODE *)malloc(sizeof(struct NODE));
q=(struct NODE *)malloc(sizeof(struct NODE));
r=(struct NODE *)malloc(sizeof(struct NODE));
p->num=1;q->num=2;r->num=3;
p->next=q;q->next=r;r->next=NULL;
sum+=q->next->num;sum+=p->num;
printf(“%d\n”,sum);
}
執(zhí)行后的輸出結(jié)果是
A.3
B.4
C.5
D.6
(49) 有以下程序
#include
main( )
{ FILE *fp; int i,k=0,n=0;
fp=fopen(“d1.dat”,”w”);
for(i=1;i<4;i++) fprintf(fp,”%d”,i);
fclose(fp);
fp=fopen(“d1.dat”,”r”);
fscanf(fp,”%d%d”,&k,&n); printf(“%d %d\n”,k,n);
fclose(fp);
}
執(zhí)行后輸出結(jié)果是
A.1 2
B.123 0
C.1 23
D.0 0
(50) 有以下程序(提示:程序中fseek(fp,-2L*sizeof(int),SEEK_EN
D.;語(yǔ)句的作用是使位置指針從文件尾向前移2*sizeof(int)字節(jié))
#include
main( )
{ FILE *fp; int i,a[4]={1,2,3,4},b;
fp=fopen("data.dat","wb");
for(i=0;i<4;i++) fwrite(&a[i],sizeof(int),1,fp);
fclose(fp);
fp=fopen("data.dat
","rb");
fseek(fp,-2L*sizeof(int).SEEK_END);
fread(&b,sizeof(int),1,fp);/*從文件中讀取sizeof(int)字節(jié)的數(shù)據(jù)到變量b中*/
fclose(fp);
printf("%d\n",B);
}
執(zhí)行后輸出結(jié)果是
A.2
B.1
C.4
D.3
二、填空題(每空2分,共40分)
請(qǐng)將每一個(gè)空的正確答案寫(xiě)在答題卡【1】至【20】序號(hào)的橫線上, 答在試卷上不得分.
(1) E-mail地址由用戶名和域名兩部分組成,這兩部分的分隔符為【1】 。
(2) 計(jì)算機(jī)網(wǎng)絡(luò)分為廣域網(wǎng)和局域網(wǎng),因特網(wǎng)屬于【2】 。
(3) 從Windows環(huán)境進(jìn)入MS-DOS方式后,返回Windows環(huán)境的DOS命令為【3】 。
(4) 在Windows環(huán)境下,只要在“開(kāi)始”菜單中單擊【4】選項(xiàng),就可以查閱最近打開(kāi)過(guò)的文檔清單。
(5) 計(jì)算機(jī)的運(yùn)算速度可以用MIPS來(lái)描述,1MIPS是指每秒執(zhí)行【5】條指令。
(6) 已知字符A的ACSII碼值為65,以下語(yǔ)句的輸出結(jié)果是【6】
char ch=’B’;
printf(“%c %d\n”,ch,ch);
(7) 有以下語(yǔ)句段
int n1=10,n2=20;
printf(“ 【7】 ”,n1.n2);
要求按以下格式輸出n1和n2的值,每個(gè)輸出行從第一列開(kāi)始,請(qǐng)?zhí)羁铡?BR> n1=10
n2=20
(8) 有以下程序
main( )
{ int t=1,i=5;
for(;i>=0;i--) t*=i;
printf(“%d\n”,t);
}
執(zhí)行后輸出結(jié)果是【8】 。
(9) 有以下程序
main( )
{ int n=0,m=1,x=2;
if(!n) x-=1;
if(m) x-=2;
if(x) x-=3;
printf(“%d\n”,x);
}
執(zhí)行后輸出結(jié)果是【9】 。
(10) 有以下程序
#include
main( )
{ char ch1,ch2; int n1,n2;
ch1=getchar(); ch2=getchar();
n1=ch1-‘0’; n2=n1*10+(ch2-‘0’);
printf(“%d\n”,n2);
}
程序運(yùn)行時(shí)輸入:12<回車>,執(zhí)行后輸出結(jié)果是【10】 。
(11) 有以下程序
void f( int y,int *x)
{y=y+*x; *x=*x+y;}
main( )
{ int x=2,y=4;
f(y,&x);
printf(“%d %d\n”,x,y);
}
執(zhí)行后輸出的結(jié)果是【11】 。
(12) 函數(shù)fun的功能是計(jì)算xn
double fun(double x,int n)
{ int i; double y=1;
for(i=1;i<=n;i++) y=y*x;
return y;
}
主函數(shù)中已經(jīng)正確定義m,a,b變量并賦值,并調(diào)用fun函數(shù)計(jì)算:m=a4+b4-(a+B) 3。實(shí)現(xiàn)這一計(jì)算的函數(shù)調(diào)用語(yǔ)句為【12】 。
(13) 下面rotate函數(shù)的功能是:將n行n列的矩陣A轉(zhuǎn)置為A’,例如:
1 2 3 4 1 5 9 13
5 6 7 8 2 6 10 14
當(dāng) A= 9 10 11 12 則 A’= 3 7 11 15
13 14 15 16 4 8 12 16
請(qǐng)?zhí)羁?BR> #define N 4
void rotate(int a[][N])
{ int i,j,t;
for(i=0;i for(j=0;【13】;j++)
{ t=a[i][j];
【14】 ;
a[j][i]=t;
}
}
(14) 以下sstrcpy( )函數(shù)實(shí)現(xiàn)字符串復(fù)制,即將t所指字符串復(fù)制到s所指向內(nèi)存空間中,形成一個(gè)新的字符串s。請(qǐng)?zhí)羁铡?BR> void sstrcpy(char *s,char *t)
{ while(*s++=【15】);}
main( )
{ char str1[100],str2[]=”abcdefgh”;
sstrcpy(str1,str2);
printf(“%s\n”,str1);
}
(15) 下列程序的運(yùn)行結(jié)果是:【16】
#include
char *ss(char *s)
{ return s+strlen(s)/2;}
main( )
{ char *p,*str=”abcdefgh”;
p=ss(str); printf(“%s\n”,p);
}
(16) 下面程序的運(yùn)行結(jié)果是:【17】
int f( int a[], int n)
{ if(n>1) return a[0]+f(&a[1],n-1);
else return a[0];
}
main ( )
{ int aa[3]={1,2,3},s;
s=f(&aa[0],3); printf(“%d\n”,s);
}
(17) 以下程序中給指針p分配三個(gè)double型動(dòng)態(tài)內(nèi)存單元,請(qǐng)?zhí)羁铡?BR> # include
main ( )
{ double *p;
p=(double *) malloc(【18】);
p[0]=1.5;p[1]=2.5;p[2]=3.5;
printf(“%f%f%f\n”,p[0],p[1],p[2]);
}
(18) 以下程序的運(yùn)行結(jié)果是【19】
# include
typedef struct student{
char name[10];
long sno;
float score;
}STU;
main( )
{ STU
a={“zhangsan”,2001,95},b={“Shangxian”,2002,90},c={“Anhua”,2003,95},d,*p=&d;
d=a;
if(strcmp(a.name,b.name)>0) d=b;
if(strcmp(c.name,d.name)>0) d=c;
printf(“%ld%s\n”,d.sno,p->name);
}
(19) 以下sum函數(shù)的功能是計(jì)算下列級(jí)數(shù)之和。
S=1+x+x2/2!+x3/3!+........+xn/n!
請(qǐng)給函數(shù)中的各變量正確賦初值。
double sum( double x, int n )
{ int i; double a,b,s;
【20】
for( i=1;i<=n;i++)
{ a=a*x; b=b*i; s=s+a/b; }
return s;
}
附參考答案
01~10:DBCCB ADCAD
11~20:BBCAC DBCDA
21~30: ACBDD ADDCD
31~40: CBADB ACADA
41~50: ABCCD ACBBD
填空題:
1、@
2、廣域網(wǎng)
3、EXIT或exit
4、文檔
5、百萬(wàn)條或一百萬(wàn)條或1000000條
6、B 66
7、n1=%d\nn2=%d
8、0
9、-4
10、12
11、8 4
12、fun(a,4)+fun(b,4)-fun(a+b,3);
13、j<=i
14、a[i][j]=a[j][i]
15、*t++
16、6
17、efgh
18、3*sizeof(double)
19、2002Shangxian
20、a=1.0;b=1.0;s=1.0;
一、選擇題,(1-40)每題1分,(41-50)每題2分,共60分)
下列各題A)、B)、C)、D)四個(gè)選項(xiàng)中,只有一個(gè)選項(xiàng)是正確的,請(qǐng)將正確選項(xiàng)涂寫(xiě)在答題卡相應(yīng)位置上,答在試卷上不得分。
(1) 1MB等于
A.1000字節(jié)
B.1024字節(jié)
C.1000×1000字節(jié)
D.1024×1024字節(jié)
(2) 與十六進(jìn)制數(shù)200等值的十進(jìn)制數(shù)為
A.256
B.512
C.1024
D.2048
(3) 所謂“*機(jī)”是指
A.單片機(jī)
B.單板機(jī)
C.不裝備任何軟件的計(jì)算機(jī)
D.只裝備操作系統(tǒng)的計(jì)算機(jī)
(4) 能將高級(jí)語(yǔ)言編寫(xiě)的源程序轉(zhuǎn)換成目標(biāo)程序的是
A.鏈接程序
B.解釋程序
C.編譯程序
D.編輯程序
(5) 在64位計(jì)算機(jī)中,一個(gè)字長(zhǎng)所占的字節(jié)數(shù)為
A.64
B.8
C.4
D.1
(6) 在Windows環(huán)境下,當(dāng)一個(gè)應(yīng)用程序窗口被最小化后,該應(yīng)用程序
A.繼續(xù)在后臺(tái)運(yùn)行
B.繼續(xù)在前臺(tái)運(yùn)行
C.終止運(yùn)行
D.暫停運(yùn)行
(7) 在Windows環(huán)境下,能實(shí)現(xiàn)窗口移動(dòng)的操作是
A.用鼠標(biāo)拖動(dòng)窗口中的任何部位
B.用鼠標(biāo)拖動(dòng)窗口的邊框
C.用鼠標(biāo)拖動(dòng)窗口的控制按鈕
D.用鼠標(biāo)拖動(dòng)窗口的標(biāo)題欄
(8) 在Windows環(huán)境下,PrintScreen鍵的作用是
A.打印當(dāng)前窗口的內(nèi)容
B.打印屏幕內(nèi)容
C.復(fù)制屏幕到剪貼板
D.復(fù)制當(dāng)前窗口到剪貼板
(9) Internet的通信協(xié)議是
A.TCP/IP
B.BBS
C.WWW
D.FTP
(10) 下列敘述中正確的是
A.計(jì)算機(jī)病毒只感染可執(zhí)行文件
B.計(jì)算機(jī)病毒只感染文本文件
C.計(jì)算機(jī)病毒只能通過(guò)軟件復(fù)制的方式進(jìn)行傳播
D.計(jì)算機(jī)病毒可以通過(guò)網(wǎng)絡(luò)或讀寫(xiě)磁盤等方式進(jìn)行傳播
(11) 一個(gè)算法應(yīng)該具有“確定性”等5個(gè)特性,下面對(duì)另外4個(gè)特性的描述中錯(cuò)誤的是
A.有零個(gè)或多個(gè)輸入
B.有零個(gè)或多個(gè)輸出
C.有窮性
D.可行性
(12) 以下敘述中正確的是
A.C語(yǔ)言的源程序不必通過(guò)編譯就可以直接運(yùn)行
B.C語(yǔ)言中的每條可執(zhí)行語(yǔ)句最終都將被轉(zhuǎn)換成二進(jìn)制的機(jī)器指令
C.C源程序經(jīng)編譯形成的二進(jìn)制代碼可以直接運(yùn)行
D.C語(yǔ)言中的函數(shù)不可以單獨(dú)進(jìn)行編譯
(13) 以下符合C語(yǔ)言語(yǔ)法的實(shí)型常量是
A.1.2E0.5
B.3.14.159E
C..5E-3
D.E15
(14) 以下4組用戶定義標(biāo)識(shí)符中,全部合法的一組是
A._main
B.If
C.txt
D.int
enclude -max REAL k_2
sin turbo 3COM _001
(15) 若以下選項(xiàng)中的變量已正確定義,則正確的賦值語(yǔ)句是
A.x1=26.8%3
B.1+2=x2
C.x3=0x12
D.x4=1+2=3;
(16) 設(shè)有以下定義
int a=0;
double b=1.25;
char c=’A’;
#define d 2
則下面語(yǔ)句中錯(cuò)誤的是
A.a(chǎn)++;
B.b++
C.c++;
D.d++;
(17) 設(shè)有定義:float a=2,b=4,h=3;,以下C語(yǔ)言表達(dá)式與代數(shù)式 計(jì)算結(jié)果不相符的是
A.(a+B) *h/2
B.(1/2)*(a+B) *h
C.(a+B) *h*1/2
D.h/2*(a+B)
(18) 有以下程序
main( )
{
int x=102,y=012;
printf(“-,-\n”,x,y);
}
執(zhí)行后輸出結(jié)果是
A.10,01
B.02,12
C.102,10
D.02,10
(19) 以下4個(gè)選項(xiàng)中,不能看作一條語(yǔ)句的是
A.{;}
B.a(chǎn)=0,b=0,c=0;
C.if(a>0);
D.if(b==0) m=1;n=2;
(20) 設(shè)有定義:int a,*pa=&a;以下scanf語(yǔ)句中能正確為變量a讀入數(shù)據(jù)的是
A.scanf(“%d”,pA)
B.scanf(“%d”,A)
C.scanf(“%d”,&pA)
D.scanf(“%d”,*pA)
(21) 以下程序段中與語(yǔ)句k=a>b?(b>c?1:0):0;功能等價(jià)的是
A.if((a>B) &&(b>C) ) k=1;
B.if((a>B) ||(b>C) ) k=1 else k=0;
C.if(a<=B) k=0;
D.if(a>B) k=1; else if(b<=C) k=1; else if(b>C) k=1; else k=0;
(22) 有以下程序
main( )
{ char k; int I;
for(i=1;i<3;i++)
{ scanf(“%c”,&k);
switch(k)
{ case ‘0’: printf(“another\n”);
case ‘1’: printf(“number\n”);
}
}
}
程序運(yùn)行時(shí),從鍵盤輸入:01<回車>,程序執(zhí)行后的輸出結(jié)果是
A.a(chǎn)nother
B.a(chǎn)nother
C.a(chǎn)nother
D.number
number number number number
another number
(23) 有以下程序
main( )
{ int x=0,y=5,z=3;
while(z-->0&&++x<5) y=y-1;
printf(“%d,%d,%d\n”,x,y,z);
}
程序執(zhí)行后的輸出結(jié)果是
A.3,2,0
B.3,2,-1
C.4,3,-1
D.5,-2,-5
(24) 有以下程序
main( )
{ int i,s=0;
for(i=1;i<10;i+=2) s+=i+1;
printf(“%d\n”,s);
}
程序執(zhí)行后的輸出結(jié)果是
A.自然數(shù)1~9的累加和
B.自然數(shù)1~10的累加和
C.自然數(shù)1~9中的奇數(shù)之和
D.自然數(shù)1~10中的偶數(shù)之和
(25) 有以下程序 main( )
{ int i,n=0;
for(i=2;i<5;i++)
{ do
{ if(i%3) continue;
n++;
} while(!i);
n++;
}
printf(“n=%d\n”,n);
}
程序執(zhí)行后的輸出結(jié)果是
A.n=5
B.n=2
C.n=3
D.n=4
(26) 若程序中定義了以下函數(shù)
double myadd(double a,double B)
{ return (a+B);}
并將其放在調(diào)用語(yǔ)句之后,則在調(diào)用之前應(yīng)該對(duì)該函數(shù)進(jìn)行說(shuō)明,以下選項(xiàng)中錯(cuò)誤的說(shuō)明是
A.double myadd(double a,B);
B.double myadd(double,double);
C.double myadd(double b,double A);
D.double myadd(double x,double y);
(27) 有以下程序
char fun(char x , char y)
{ if(x return y;
}
main( )
{ int a=’9’,b=’8’,c=’7’;
printf(“%c\n”,fun(fun(a,B),fun(b,C)));
}
程序的執(zhí)行結(jié)果是
A.函數(shù)調(diào)用出錯(cuò) B)8 C)9 D)7
(28) 設(shè)有定義:int n=0,*p=&n,**q=&p;則以下選項(xiàng)中,正確的賦值語(yǔ)句是
A.p=1;
B.*q=2;
C.q=p;
D.*p=5;
(29) 有以下程序
void f(int v , int w)
{ int t;
t=v;v=w;w=t;
}
main( )
{ int x=1,y=3,z=2;
if(x>y) f(x,y);
else if(y>z) f(y,z);
else f(x,z);
printf(“%d,%d,%d\n”,x,y,z);
}
執(zhí)行后輸出結(jié)果是
A.1,2,3
B.3,1,2
C.1,3,2
D.2,3,1
(30) 有以下程序段
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;
b=p[5];
b中的值是
A.5
B.6
C.8
D.9
(31) 31、有以下程序
main( )
{ char a[]=”abcdefg”,b[10]=”abcdefg”;
printf(“%d %d\n”,sizeof(
A.,sizeof(B));
}
執(zhí)行后輸出結(jié)果是
A.7 7
B.8 8
C.8 10
D.10 10
(32) 有以下程序
void swap1(int c[])
{ int t;
t=c[0];c[0]=c[1];c[1]=t;
}
void swap2(int c0,int c1)
{ int t;
t=c0;c0=c1;c1=t;
}
main( )
{ int a[2]={3,5},b[2]={3,5};
swap1(A); swap2(b[0],b[1]);
printf(“%d %d %d %d\n”,a[0],a[1],b[0],b[1]);
}
其輸出結(jié)果是
A.5 3 5 3
B.5 3 3 5
C.3 5 3 5
D.3 5 5 3
(33) 有以下程序
void sum(int *
A.
{ a[0]=a[1];}
main( )
{ int aa[10]={1,2,3,4,5,6,7,8,9,10},i;
for(i=2;i>=0;i--) &nb
sp; sum(&aa[i]);
printf(“%d\n”,aa[0]);
}
執(zhí)行后的輸出結(jié)果是
A.4
B.3
C.2
D.1
(34) 34、有以下程序
int f(int b[][4])
{ int i,j,s=0;
for(j=0;j<4;j++)
{ i=j;
if(i>2) i=3-j;
s+=b[i][j];
}
return s;
}
main( )
{ int a[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}};
printf(“%d\n”,f(A));
}
執(zhí)行后的輸出結(jié)果是
A.12
B.11
C.18
D.16
(35) 有以下定義
#include
char a[10],*b=a;
不能給數(shù)組a輸入字符串的語(yǔ)句是
A.gets(A)
B.gets(a[0])
C.gets(&a[0]);
D.gets(B);
(36) 有以下程序
main( )
{ char *p[10]={“abc”,”aabdfg”,”dcdbe”,”abbd”,”cd”};
printf(“%d\n”,strlen(p[4]));
}
執(zhí)行后輸出結(jié)果是
A.2
B.3
C.4
D.5
(37) 有以下程序
int a=2;
int f(int *A)
{return (*A)++;}
main( )
{ int s=0;
{ int a=5;
s+=f(&A);
}
s+=f(&A);
printf(“%d\n”,s);
}
執(zhí)行后輸出結(jié)果是
A.10
B.9
C.7
D.8
(38) 有以下程序
#define f(x) x*x
main( )
{ int i;
i=f(4+4)/f(2+2);
printf(“%d\n”,i);
}
執(zhí)行后輸出結(jié)果是
A.28
B.22
C.16
D.4
(39) 設(shè)有以下語(yǔ)句
typedef struct S
{ int g; char h;} T;
則下面敘述中正確的是
A.可用S定義結(jié)構(gòu)體變量 B)可以用T定義結(jié)構(gòu)體變量
C)S是struct類型的變量 D)T是struct S類型的變量
(40) 有以下程序
struc STU
{ char name[10];
int num;
};
void f1(struct STU C)
{ struct STU b={“LiSiGuo”,2042};
c=b;
}
void f2(struct STU *C)
{ struct STU b={“SunDan”,2044};
*c=b;
}
main( )
{ struct STU a={“YangSan”,2041},b={“WangYin”,2043};
f1(
A.;f2(&B);
printf(“%d %d\n”,a.num,b.num);
}
執(zhí)行后的輸出結(jié)果是
A.2041 2044
B.2041 2043
C.2042 2044
D.2042 2043
(41) 有以下程序
main( )
{ unsigned char a,b;
a=4|3;
b=4&3;
printf(“%d %d\n”,a,b(;
}
執(zhí)行后輸出結(jié)果是
A.7 0
B.0 7
C.1 1
D.43 0
(42) 下面程序的功能是輸出以下形式的金字塔圖案是:
*
***
*****
*******
main( )
{ int i,j;
for(i=1;i<=4;i++)
{ for(j=1;j<=4-i;j++) printf(“ “);
for(j=1;j<=_______;j++) printf(“*”);
printf(“\n”);
}
}
在下劃線處應(yīng)填入的是
A.i
B.2*i-1
C.2*i+1
D.i+2
(43) 有以下程序
void sort(int a[],int n)
{ int i,j,t;
for(i=0;i for(j=i+2;j if(a[i] }
main()
{ int aa[10]={1,2,3,4,5,6,7,8,9,10},i;
sort(aa,10);
for(i=0;i<10;i++) printf(“%d”,aa[i]);
printf(“\n”);
}
其輸出結(jié)果是
A.1,2,3,4,5,6,7,8,9,10,
B.10,9,8,7,6,5,4,3,2,1,
C.9,2,7,4,5,6,3,8,1,10,
D.1,10,3,8,5,6,7,4,9,2,
(44) 以下程序段中,不能正確賦字符串(編譯時(shí)系統(tǒng)會(huì)提示錯(cuò)誤)的是
A.char s[10]=”abcdefg”;
B.char t[]=”abcdefg”,*s=t;
C.char s[10];s=”abcdefg”;
D.char s[10];strcpy(s,”abcdefg”);
(45) 有以下程序
#include
main(int argc ,char *argv[ ])
{ int i,len=0;
for(i=1;i printf(“5d\n”,len);
}
經(jīng)編譯鏈接后生成的可執(zhí)行文件是ex.exe,若運(yùn)行時(shí)輸入以下帶參數(shù)的命令行
ex abcd efg h3 k44
執(zhí)行后輸出結(jié)果是
A.14
B.12
C.8
D.6
(46) 有以下程序
void f(int a[],int i,int j)
{ int t;
if(i { t=a[i]; a[i]=a[j];a[j]=t;
f(a,i+1,j-1);
}
}
main( )
{ int i,aa[5]={1,2,3,4,5};
f(aa,0,4);
for(i=0;i<5;i++) printf(“%d,”,aa[i]); printf(“\n”);
}
執(zhí)行后輸出結(jié)果是
A.5,4,3,2,1,
B.5,2,3,4,1,
C.1,2,3,4,5,
D.1,2,3,4,5,
(47) 有以下程序
struct STU
{ char name[10];
int num;
int Score;
};
main( )
{ struct STU s[5]={{“YangSan”,20041,703},{“LiSiGuo”,20042,580},
{“wangYin”,20043,680},{“SunDan”,20044,550},
{“Penghua”,20045,537}},*p[5],*t;
int i,j;
for(i=0;i<5;i++) p[i]=&s[i];
for(i=0;i<4;i++)
for(j=i+1;j<5;j++)
if(p[i]->Score>p[j]->Score)
{ t=p[i];p[i]=p[j];p[j]=t;}
printf(“5d %d\n”,s[1].Score,p[1]->Score);
}
執(zhí)行后輸出結(jié)果是
A.550 550
B.680 680
C.580 550
D.580 680
(48) 有以下程序
#include
struct NODE{
int num;
struct NODE *next;
};
main( )
{ struct NODE *p,*q,*r;
int sum=0;
p=(struct NODE *)malloc(sizeof(struct NODE));
q=(struct NODE *)malloc(sizeof(struct NODE));
r=(struct NODE *)malloc(sizeof(struct NODE));
p->num=1;q->num=2;r->num=3;
p->next=q;q->next=r;r->next=NULL;
sum+=q->next->num;sum+=p->num;
printf(“%d\n”,sum);
}
執(zhí)行后的輸出結(jié)果是
A.3
B.4
C.5
D.6
(49) 有以下程序
#include
main( )
{ FILE *fp; int i,k=0,n=0;
fp=fopen(“d1.dat”,”w”);
for(i=1;i<4;i++) fprintf(fp,”%d”,i);
fclose(fp);
fp=fopen(“d1.dat”,”r”);
fscanf(fp,”%d%d”,&k,&n); printf(“%d %d\n”,k,n);
fclose(fp);
}
執(zhí)行后輸出結(jié)果是
A.1 2
B.123 0
C.1 23
D.0 0
(50) 有以下程序(提示:程序中fseek(fp,-2L*sizeof(int),SEEK_EN
D.;語(yǔ)句的作用是使位置指針從文件尾向前移2*sizeof(int)字節(jié))
#include
main( )
{ FILE *fp; int i,a[4]={1,2,3,4},b;
fp=fopen("data.dat","wb");
for(i=0;i<4;i++) fwrite(&a[i],sizeof(int),1,fp);
fclose(fp);
fp=fopen("data.dat
","rb");
fseek(fp,-2L*sizeof(int).SEEK_END);
fread(&b,sizeof(int),1,fp);/*從文件中讀取sizeof(int)字節(jié)的數(shù)據(jù)到變量b中*/
fclose(fp);
printf("%d\n",B);
}
執(zhí)行后輸出結(jié)果是
A.2
B.1
C.4
D.3
二、填空題(每空2分,共40分)
請(qǐng)將每一個(gè)空的正確答案寫(xiě)在答題卡【1】至【20】序號(hào)的橫線上, 答在試卷上不得分.
(1) E-mail地址由用戶名和域名兩部分組成,這兩部分的分隔符為【1】 。
(2) 計(jì)算機(jī)網(wǎng)絡(luò)分為廣域網(wǎng)和局域網(wǎng),因特網(wǎng)屬于【2】 。
(3) 從Windows環(huán)境進(jìn)入MS-DOS方式后,返回Windows環(huán)境的DOS命令為【3】 。
(4) 在Windows環(huán)境下,只要在“開(kāi)始”菜單中單擊【4】選項(xiàng),就可以查閱最近打開(kāi)過(guò)的文檔清單。
(5) 計(jì)算機(jī)的運(yùn)算速度可以用MIPS來(lái)描述,1MIPS是指每秒執(zhí)行【5】條指令。
(6) 已知字符A的ACSII碼值為65,以下語(yǔ)句的輸出結(jié)果是【6】
char ch=’B’;
printf(“%c %d\n”,ch,ch);
(7) 有以下語(yǔ)句段
int n1=10,n2=20;
printf(“ 【7】 ”,n1.n2);
要求按以下格式輸出n1和n2的值,每個(gè)輸出行從第一列開(kāi)始,請(qǐng)?zhí)羁铡?BR> n1=10
n2=20
(8) 有以下程序
main( )
{ int t=1,i=5;
for(;i>=0;i--) t*=i;
printf(“%d\n”,t);
}
執(zhí)行后輸出結(jié)果是【8】 。
(9) 有以下程序
main( )
{ int n=0,m=1,x=2;
if(!n) x-=1;
if(m) x-=2;
if(x) x-=3;
printf(“%d\n”,x);
}
執(zhí)行后輸出結(jié)果是【9】 。
(10) 有以下程序
#include
main( )
{ char ch1,ch2; int n1,n2;
ch1=getchar(); ch2=getchar();
n1=ch1-‘0’; n2=n1*10+(ch2-‘0’);
printf(“%d\n”,n2);
}
程序運(yùn)行時(shí)輸入:12<回車>,執(zhí)行后輸出結(jié)果是【10】 。
(11) 有以下程序
void f( int y,int *x)
{y=y+*x; *x=*x+y;}
main( )
{ int x=2,y=4;
f(y,&x);
printf(“%d %d\n”,x,y);
}
執(zhí)行后輸出的結(jié)果是【11】 。
(12) 函數(shù)fun的功能是計(jì)算xn
double fun(double x,int n)
{ int i; double y=1;
for(i=1;i<=n;i++) y=y*x;
return y;
}
主函數(shù)中已經(jīng)正確定義m,a,b變量并賦值,并調(diào)用fun函數(shù)計(jì)算:m=a4+b4-(a+B) 3。實(shí)現(xiàn)這一計(jì)算的函數(shù)調(diào)用語(yǔ)句為【12】 。
(13) 下面rotate函數(shù)的功能是:將n行n列的矩陣A轉(zhuǎn)置為A’,例如:
1 2 3 4 1 5 9 13
5 6 7 8 2 6 10 14
當(dāng) A= 9 10 11 12 則 A’= 3 7 11 15
13 14 15 16 4 8 12 16
請(qǐng)?zhí)羁?BR> #define N 4
void rotate(int a[][N])
{ int i,j,t;
for(i=0;i for(j=0;【13】;j++)
{ t=a[i][j];
【14】 ;
a[j][i]=t;
}
}
(14) 以下sstrcpy( )函數(shù)實(shí)現(xiàn)字符串復(fù)制,即將t所指字符串復(fù)制到s所指向內(nèi)存空間中,形成一個(gè)新的字符串s。請(qǐng)?zhí)羁铡?BR> void sstrcpy(char *s,char *t)
{ while(*s++=【15】);}
main( )
{ char str1[100],str2[]=”abcdefgh”;
sstrcpy(str1,str2);
printf(“%s\n”,str1);
}
(15) 下列程序的運(yùn)行結(jié)果是:【16】
#include
char *ss(char *s)
{ return s+strlen(s)/2;}
main( )
{ char *p,*str=”abcdefgh”;
p=ss(str); printf(“%s\n”,p);
}
(16) 下面程序的運(yùn)行結(jié)果是:【17】
int f( int a[], int n)
{ if(n>1) return a[0]+f(&a[1],n-1);
else return a[0];
}
main ( )
{ int aa[3]={1,2,3},s;
s=f(&aa[0],3); printf(“%d\n”,s);
}
(17) 以下程序中給指針p分配三個(gè)double型動(dòng)態(tài)內(nèi)存單元,請(qǐng)?zhí)羁铡?BR> # include
main ( )
{ double *p;
p=(double *) malloc(【18】);
p[0]=1.5;p[1]=2.5;p[2]=3.5;
printf(“%f%f%f\n”,p[0],p[1],p[2]);
}
(18) 以下程序的運(yùn)行結(jié)果是【19】
# include
typedef struct student{
char name[10];
long sno;
float score;
}STU;
main( )
{ STU
a={“zhangsan”,2001,95},b={“Shangxian”,2002,90},c={“Anhua”,2003,95},d,*p=&d;
d=a;
if(strcmp(a.name,b.name)>0) d=b;
if(strcmp(c.name,d.name)>0) d=c;
printf(“%ld%s\n”,d.sno,p->name);
}
(19) 以下sum函數(shù)的功能是計(jì)算下列級(jí)數(shù)之和。
S=1+x+x2/2!+x3/3!+........+xn/n!
請(qǐng)給函數(shù)中的各變量正確賦初值。
double sum( double x, int n )
{ int i; double a,b,s;
【20】
for( i=1;i<=n;i++)
{ a=a*x; b=b*i; s=s+a/b; }
return s;
}
附參考答案
01~10:DBCCB ADCAD
11~20:BBCAC DBCDA
21~30: ACBDD ADDCD
31~40: CBADB ACADA
41~50: ABCCD ACBBD
填空題:
1、@
2、廣域網(wǎng)
3、EXIT或exit
4、文檔
5、百萬(wàn)條或一百萬(wàn)條或1000000條
6、B 66
7、n1=%d\nn2=%d
8、0
9、-4
10、12
11、8 4
12、fun(a,4)+fun(b,4)-fun(a+b,3);
13、j<=i
14、a[i][j]=a[j][i]
15、*t++
16、6
17、efgh
18、3*sizeof(double)
19、2002Shangxian
20、a=1.0;b=1.0;s=1.0;