![]() ![]() |
|
1999年4月全国计算机等级考试二级C语言笔试试题及答案 | |
作者:佚名 文章来源:不详 点击数 更新时间:2008/4/18 14:06:35 文章录入:杜斌 责任编辑:杜斌 | |
|
|
一、选择题((1)-(40)每小题1分, (41)-(50)每小题2分, 共60分) (21)以下程序的输出结果是 A.10 10 B.12 12 C.11 10 D.11 13 main() { int a=12,b=12; printf("%d,%d\n",- -a,+ +B); } (22)以下程序运行后,输出结果是 A.cde B.字符c的ASCII码值 C.字符c的地址 D.出错 main() { char *s="abcde"; s+=2; printf("%ld\n",s); } (23)以下程序输出结果是 A.7 B.6 C.5 D.4 main() { int m=5; if(m++>5)printf("%d\n",m); esle printf("%d\n",m- -); } (24)当a=1,b=3,c=5,d=5时,执行下面一段程序后,x的值为 A.1 B.2 C.3 D.6 if(a if(c else if(a if(b else x=3; else x=6; else x=7; (25)在执行以下程序时,如果从键盘上输入,ABCdef<回车>,则输出为 A.ABCdef B.abcDEF C.abc D.DEF #include main() { char ch; while((ch=getchar())!='\n') { if(ch>='A' && ch<='Z')ch=ch+32; else if(ch>='a' && ch<='z')ch=ch-32; printf("%c",ch); } printf("\n"); } (26)下面能正确进行字符串赋值操作的语句是 A.char s[5]={"ABCDE"}; B.char s[5]={'A','B','C','D','E'}; C.char *s;s="ABCDEF"; D.char *s; scanf("%s",s); (27)执行以下程序段时 A.循环体将执行一次 B.循环体将执行两次 C.循环体将执行无限次 D.系统将提示有语法错误 X=-1; do {x=x*x; } while(! x); (28)执行以下程序后,输出的结果是 A.-1 B.1 C.8 D.0 main () { int y=10; do { y - -;} while(- - y); printf("%d\n",y - -); } (29)在下列选项中,没有构成死循环的程序段是 A.int i=100 B.for( ; ;); while(1) { i=i0+1; if(i>100)break; } C.int k=1000; D.int s=36; do{++k;} while(k>=10000); while(s);--s; (30)执行语句: for(i=l:i++<4:);后,变量i的值是 A.3 B.4 C.5 D.不定 (31)以下程序运行后,如果从键盘上输入ABCDE<回车>,则输出结果为 A.8 B.7 C.6 D.5 #include #include func { int num=0; while(*(str+num)!='\0')num++; return(num); } main() { char str[10],*p=str; gets(p); printf("%d\n",func(p)); } (32)运行以下程序后,如果从键盘上输入 china#<回车>,则输出结果为 A.2,0 B.5,0 C.5,5 D.2,5 #include mair() { int v1=0,v2=0; char ch; while((ch=getchar())!='#') switch(ch) { case 'a'; case 'h'; default; v1++; case '0'; v2++; } printf("%d,%d\n",v1,v2); } (33)若以下程序所生成的可执行文件名为filel.exe;当打入以下命令执行该程序时; FILEL CHINA BEIJING SHANGHAI 程序的输出结果是 A.CHINA BEIJING SHANGHAI B.FILEL CHINA BEIJING C.C B S D.F C B main(int argc,char *argv[]) { while(arge-->0) { ++argv;printf("%s ",*argv);} } (34)下面程序运行的结果是 A.2ba56 B.6521 C.6 D.62 main() { char ch[7]={65ab21"}; int i,s=0 for(i=0;ch[i]>='0' && ch[i]<='9';i+=2) s=10*s+ch[i]-'0'; printf("%d\n",s); } (35)运行下面的程序,如果从键盘上输入: ab<回车> c <回车> def<回车> 则输出结果为 A.a B.a C.ab D.abcdef b b c c c d d d e f #include #define N 6 main() { char c[N]; int i=0; for( ;i for( i=0;i } (36)以下程序运行后,输出结果是 A.8 B.7 C.6 D.5 #include ss(char *s) { char *p=s; while(*p)p++; return(p-s); } main() { char *a="abded"; int i; i=ss(a); printf("%d\n",i); } (37)以下程序运行后,输出结果是 A.8,15 B.8,16 C.8,17 D.8,8 func(int a, int B. { static int m=0,i=2; i+=m+1; m=i+a+b; return(m); } main() { int k=4,m=1,p; p=func(k,m);printf("%d,",p); p=func(k,m);printf("%d\n",p); } (38)以下程序运行后,输出结果是 A.49.5 B.9.5 C.22.0 D.45.0 #include #define PT 5.5 #define S(x)PT* x * x main() { int a=1,b=2; printf("%4.1f\n",S(a+ B.); } (39)以下程序运行后,输出结果是 A.ABCDEFG B.CDG C.abcdefgh D.abCDefGh main() { static char a[]="ABCDEFGH",b[]="abCDefGh"; char *p1,*p2; int k; p1=a; p2=b; for(k=0;k<=7;k++) if(*(p1+k)==*(p2+k)) printf("%c",*(p1+k)); printf("\n"); ) (40)以下程序运行后,a的值是 A.4 B.1 C.0 D.运行时出错,a无定值 main() { int a,k=4,m=6,*p1=&k,*p2=&m; a=p1==&m; printf("%d\n",a); } (41)以下程序运行后,输出结果是 A.84 B.99 C.95 D.44 int d=1; fun(int p) { int d=5; d+=p++; printf("%d, D.; } main() { int a=3; fun(a); d+=a++; printf("%d\n, D.; } (42)以下程序运行后,输出结果是 A.6385 B.22 C.33 D.693825 main() { char ch[2][5]={'693","825"},*p[2]; int i,j,s=0; for(i=0;i<2;i++)p[i]=ch[i]; for(i=0;i<2;i++) for(j=0;p[i][j]='0' && p[i][j]<='9';j+=2) s=10*s+p[i][j]-'0'; printf("%d\n",s); } (43)以下程序运行后,输出结果是 A.1 B.7 C.9 D.11 fut(int **s, int p[2][3]) { **s=p[1][1];} main() { int a[2][3]={1,3,5,7,9,11}, *p; p=(int *)malloc(sizeof(int)); fut(&p,a); printf("%d\n",*P); } (44)设有如下定义: int a=1,b=2,c=3,d=4,m=2,n=2: 则执行表达式:(m=a> B.&&(n=c> D.后,n的值为 A.1 B.2 C.3 D.0 (45)在执行以下程序时,为了使输出结果为:t=4,则给a和b输入的值应满足的条件是 A.a>b B.a<0 0 0 D.>a>b main() { int s,t,a,b; scanf("%d,%d",&a,& B.; s=1; t=1; if(a>0)s=s+1; if(a> B.t=s+t; else if(a== B.t=5; else t=2*s; printf("t=%d\n",t); } (46)以下程序的输出结果是 A.x=4 B.x=8 C.x=6 D.x=12 main() { int i,j,x=0; for(i=0;i<2;i++) { x++; for(j=0;j<=3;j++) { if(j%2)continue; x++; } x++; } printf("x=%d\n",x); } (47)以下程序运行后,输出结果是 A.1234567 B.7654321 C.1711717 D.7177171 #inchude #inchude fun(char *w, int n) { char t, *s1,*s2; s1=w: s2=w+n-1; while(s1 { t=*s1++; *s1=*s2--; *s2=t; } } main() { char *p; p="1234567"; fun(p,strlen(p)); puts(p); } (48)运行以下程序后,如果从键盘上输入65 14<回车>,则输出结果为: A.m=3 B.m=2 C.m=1 D.m=1 main() { int m, n; printf("Enter m,n;"); scanf("%d%d", &m,&n): while (m!=n) { while (m>n)m-=n; while (n>m)n-=m; } printf("m=%d\n",m); } (49)以下程序运行后,如果从键盘上输入: book <回车> book <空格><回车> 则输出的结果是 A.*8 B.#9 C.#6 D.*9 #include main() { char a1[80],a2[80],*s1=a1, *s2=a2; gets(s1); gets(s2); if(! strcmp(s1,s2))printf("*"); esle printf("#"); printf("%d/n",strlen(strcat(s1,s2))); } (50)以下程序运行后,输出结果是 A.10000 B.10010 C.00110 D.10100 main() { int y=18,i=0,j,a[8]; do { a[i]=y%2; i++ y=y/2; } while(y>=1) for(j=i-1;j>=0;j--)printf("%d",a[j]; printf("\n"); }
(15) 下面程序把从终端读入的10个整数以二进制方式写到一个名为bi.dat的新文件中,请填空. 1999年4月基础知识知识和C语言程序设计答案及评分标准 一.选择((1)~(40)题每题1分,(41)~(50)题 每题 2分,共60分) (1)B (2)B (3)D (4)D (5)A (6)A (7)B (8)B (9)D (10)C (11)B (12)A (13)A (14)D (15)C (16)C (17)A (18)D (19)D (20)D (21)D (22)C (23)B (24)B (25)B (26)C (27)A (28)D (29)C (30)C (31)D (32)C (33)A (34)C (35)C (36)D (37)C (38)B (39)B (40)C (41)A (42)A (43)C (44)B (45)C (46)B (47)C (48)C (49)B (50)B 二.填空题(每空2 分,共40分) (1) 【1】 AUTOEXEC.BAT (2) 【2】 IO.SYS 或IBMBIO.COM (3) 【3】 ATTRIB AB.TXT+R AB .TXT (4) 【4】 DIR *.BAT或DIR *.BAT\P或DIR *.BAT/W 或DIR*.BAT/W/P或*.BAT/P/W (5) 【5】 传染性或传播性 (6) 【6】 a=1234 b=5 A或a=1234b=5 (7) 【7】 ABCDCD (8) 【8】 024 (9) 【9】 49 (10) 【10】AB (11) 【11】*X (11) 12 T (12) 【13】5 (12) 14 2 (13) 【15】r+b[k]或b[k]或*(b+k)+r (13) 【16】*x (14) 【17】struct list *next (14) 【18】 int data 说明:以上两个答案(17和18)次序可以颠倒. (15) 【19】"bi.dat" (15) 【20】 fp |
|
![]() ![]() |