您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页选择题目200

选择题目200

来源:华佗小知识
1. 以下选项中不合法的标识符是( )。 A)&a B)FOR C)print D)_00 本题答案为:A

2. 以下选项中,能用作数据常量的是( )。 A)115L B)0118 C)1.5e1.5 D)o115 本题答案为:A

3. 按照C语言规定的用户标识符命名规则,不能出现在标识符中的是( )。 A)连接符 B)大写字母 C)数字字符 D)下划线 本题答案为:A

4. 现有格式化输入语句:scanf(\"x=%d ,sum y=%d,line z=%dL\,已知在

输入数据后,x、y、z 的值分别是12、34、45,则下列选项中是正确的输入格式的是( )。

A)12,34,45

B)x=12,y=34,z=45 C)x=12,sumy=34,z=45 D)x=12,sum y=34,line z=45 本题答案为:D

5. 若有定义:double a=22;int i=0,k=18;,则不符合C语言规定的赋值语句是( )。 A)i=a%11; B)i=(a+k)<=(i+k); C)a=a++,i++; D)i=!a; 本题答案为:A

6. 设有定义:int a; float b;,执行 scanf(\"%2d%f\语句时,若从键盘输入876

543.0<回车>,a和b的值分别是( )。 A)876和543.000000 B)87和6.000000 C)87和543.000000 D)76和543.000000 本题答案为:B

7. 设有定义:int x=2;,以下表达式中,值不为6的是( )。 A)2*x, x+=2 B)x++,2*x C)x*=(1+x) D)x*=x+1

本题答案为:A

8. 若变量已正确定义为int型,要通过语句scanf(\"%d,%d,%d\给a赋值1、

给b赋值2、给c赋值3,以下

输入形式中错误的是( )。(u代表一个空格符) A)uuu1,2,3<回车> B)1u2u3<回车> C)1,uuu2,uuu3<回车> D)1,2,3<回车> 本题答案为:B

9. 若有定义语句:int x=10; ,则表达式x-=x+x的值为( )。 A)-10 B)-20 C)0 D)10 本题答案为:A

10. 以下选项中,能用作用户标识符的是( )。 A)_0_ B)8_8 C)void D)unsigned 本题答案为:A

11. 设变量已正确定义并赋值,以下正确的表达式是( )。

A)x=y+z+5, ++y B)int(15.8%5) C)x=y*5=x+z D)x=25%5.0 本题答案为:A

12. 以下4 个选项中,不能看成一条语句的是( )。 A);

B)a=5,b=2.5,c=3.6; C)if(a<5);

D)if(b!=5) x=2; y=6; 本题答案为:D

13. 以下选项中,合法的一组C语言数值常量是( )。 A)12. 0Xa23 4.5e0 B)028 .5e-3 -0xf C).177 4e1.5 0abc D)0x8A 10,000 3.e5 本题答案为:A 14. 有以下程序 #include main( )

{ int s,t,A=10; double B=6; s=sizeof(A); t=sizeof(B);

printf(\"%d,%dn\ }

在VC6平台上编译运行,程序运行后的输出结果是( )。 A)4,8 B)4,4 C)2,4 D)10,6 本题答案为:A 15. 有以下程序段 #include

int j; float y; char name[50]; scanf(\"%2d%f%s\

当执行上述程序段,从键盘上输入55566 7777abc后,y的值为( )。 A)566.0 B)55566.0 C)7777.0 D)566777.0 本题答案为:A 16. 有以下程序 #include main( ) { int x, y, z;

x=y=1;

z=x++,y++,++y;

printf(\"%d,%d,%dn\ }

程序运行后的输出结果是( )。 A)2,3,1 B)2,3,2 C)2,3,3 D)2,2,1 本题答案为:A 17. 有以下程序

#include main( ) { int a=1,b=0;

printf(\"%d,\ printf(\"%dn\ }

程序运行后的输出结果是( )。 A)1,2 B)1,0 C)3,2 D)0,0

本题答案为:A 18. 有以下程序 #include main( )

{ int a1,a2; char c1,c2;

scanf(\"%d%c%d%c\ printf(\"%d,%c,%d,%c\ }

若想通过键盘输入,使得a1的值为12,a2的值为34,c1的值为字符a,c2的值为字符b,程序输出结果是:12,a,34,b 则正确的输入格式是( )。 A)12a34b

B)12ㄩaㄩ34ㄩb C)12,a,34,b D)12ㄩa34ㄩb 本题答案为:A

19. 下列程序的运行结果是( )。 #include \"stdio. h\" main( )

{ int x=-9,y=5,z=8; if(xif(y<0) z=0; else z+=1;

printf(\"%dn\ A)6 B)7 C)8 D)9 本题答案为:D

20. 若有定义:float x=1.5; int a=1,b=3,c=2; 则正确的switch语句是( )。 A)switch(a+b)

{ case 1: printf(\"*n\"); case 2+1: printf(\"**n\"); } B)switch((int)x); { case 1: printf(\"*n\"); case 2: printf(\"**n\"); } C)switch(x)

{ case 1.0: printf(\"*n\"); case 2.0: printf(\"**n\"); } D)switch(a+b) { case 1: printf(\"*n\"); case c: printf(\"**n\"); } 本题答案为:A

21. 以下程序的输出结果是( )。

#include main( )

{ int a=15,b=21,m=0; switch(a%3)

{ case 0:m++;break; case 1:m++; switch(b%2) { default:m++; case 0:m++;break; } } printf(\"%dn\ A)1 B)2 C)3 D)4 本题答案为:A 22. 有如下程序 main( )

{ float x=2.0,y; if(x<0.0) y=0.0; else if(x<10.0) y=1.0/ x; else y=1.0; printf(\"%fn\

该程序的输出结果是( )。 A)0.000000 B)0.250000 C)0.500000 D)1.000000 本题答案为:C 23. 有以下程序 #include main( ) { int x=1, y=0; if (!x) y++; else if (x==0) if (x) y+=2; else y+=3; printf(\"%dn\ 程序运行后的输出结果是( )。 A)0 B)2 C)1 D)3 本题答案为:A 24. 有以下程序

#include main( )

{ int x=1, y=0, a=0, b=0; switch( x ) { case 1: switch(y)

{ case 0: a++; break; case 1: b++; break; }

case 2: a++; b++; break; case 3: a++; b++; }

printf(\"a=%d, b=%dn\}

程序的运行结果是( )。 A)a=2,b=1 B)a=2,b=2 C)a=1,b=1 D)a=1,b=0 本题答案为:A 25. 有以下程序段 int a, b, c;

a=10; b=50; c=a; if (a>b) a=b, b=c; c=a;

printf(\"a=%d b=%d c=%dn\ 程序的输出结果是( )。 A)a=10 b=50 c=10 B)a=10 b=50 c=30 C)a=10 b=30 c=10 D)a=50 b=30 c=50 本题答案为:A 26. 有以下程序 #include main( )

{ int x=1, y=2, z=3; if (x>y)

if (y程序的运行结果是( )。 A)331 B)41 C)2

D)1 本题答案为:D 27. 有以下程序段 #include main( ) { int a, b, c;

a=10; b=50; c=30; if (a>b) a=b, b=c; c=a;

printf(\"a=%d b=%d c=%dn\ }

程序的输出结果是( )。 A)a=10 b=50 c=10 B)a=10 b=50 c=30 C)a=10 b=30 c=10 D)a=50 b=30 c=50 本题答案为:A

28. 下列条件语句中,功能与其他语句不同的是( )。 A)if(a) printf(\"%dn\B)if(a==0) printf(\"%dn\C)if(a!=0) printf(\"%dn\D)if(a==0) printf(\"%dn\本题答案为:D

29. 若整型变量a、b、c、d中的值依次为1、4、3、2,则条件表达式a的值是( )。 A)1 B)2 C)3 D)4 本题答案为:A

30. 下列叙述中正确的是( )。

A)在switch语句中,不一定使用break语句 B)在switch语句中必须使用default

C)break语句必须与switch语句中的case配对使用 D)break语句只能用于switch语句 本题答案为:A

31. 若执行下面的程序时,从键盘输入5 和2,则输出结果是( main( ) { int a,b,k;

scanf(\"%d,%d\ k=a;

if(a)。B)3 C)2 D)0 本题答案为:C

119. 若变量已正确定义,有以下程序段 int a=3, b=5, c=7; if (a>b) a=b; c=a; if (c!=a) c=b;

printf(\"%d,%d,%dn\ 其输出结果是( )。 A)程序段有语法错 B)3,5,3 C)3,5,5 D)3,5,7 本题答案为:B

32. 若有定义int x,y; 并已正确给变量赋值,则以下选项中与表达式(x-y)?(x++) : (y++)中

的条件表达式(x-y) 等价的是( )。 A)(x-y<0||x-y>0) B)(x-y<0) C)(x-y>0) D)(x-y==0) 本题答案为:A

33. 若变量已正确定义,在if(W) printf(\"%dn\" ,k ); 中,以下不可替代W的是( )。 A)a<>b+c B)ch=getchar( ) C)a==b+c D)a++ 本题答案为:A

34. 如下程序的输出结果是( ) #include main( )

{ float x=2.0,y; if(x<0.0) y=0.0; else if(x<10.0) y=1.0/x; else y=1.0; printf(\"%fn\ } A)0.000000 B)0.250000 C)0.500000 D)1.000000 本题答案为:C 35. 请阅读以下程序 #include

main( )

{ int x=1,y=0,a=0,b=0; switch(x) { case 1: switch(y)

{ case 0:a++;break; } case 2:

a++,b++;break; } printf(\" a=%d,b=%dn\ }

上面程序的输出结果是( )。 A)a=2,b=1 B)a=1,b=1 C)a=1,b=0 D)a=2,b=2 本题答案为:A 36. 有以下程序段 int k=0,a=1,b=2,c=3; k=ac ? c:k;

执行该程序段后,k的值是( )。 A)3

B)2 C)1 D)0 本题答案为:B 37. 有以下程序 #include main( )

{ int x=1, y=0, a=0, b=0; switch (x) { case 1: switch (y)

{ case 0: a++; break; case 1: b++; break; }

case 2: a++; b++; break; case 3: a++; b++; }

printf(\"a=%d,b=%dn\ }

程序的运行结果是( )。 A)a=1, b=0 B)a=2, b=2

C)a=1, b=1 D)a=2, b=1 本题答案为:D

38. 设变量a、b、c、d 和y 都已正确定义并赋值。若有以下if 语句: if(a该语句所表示的含义是( )。 A)y=0 a39. 以下程序段中与语句k=a>b?(b>c?1:0):0; 功能等价的是( )。 A)if((a>b)&&(b>c)) k=1; else k=0; B)if((a>b)||(b>c)) k=1; else k=0;

C)if(a<=b) k=0; else if(b<=c) k=1; D)if(a>b) k=1; else if(b>c) k=1; else k=0; 本题答案为:A

40. 以下选项中不属于字符常量的是( )。 A)'C' B)\"C\" C)'\\xCC' D)'\\072' 本题答案为:B

41. 以下程序段中的变量已正确定义 for( i=0;i<4;i++,i++ )

for( k=1;k<3;k++ );printf(\"*\" ); 程序段的输出结果是( )。 A)* B)**** C)** D)******** 本题答案为:A

42. 设变量均已正确定义,若要通过scanf(\"%d%c%d%c\语句为

变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。以下所示的输入形式中正确的是( )。(注:□代表空格字符) A)10□X□20□Y<回车> B)10□X20□Y<回车> C)10□X<回车> 20□Y<回车> D)10X<回车> 20Y<回车> 本题答案为:D

43. 下面程序的运行结果是( #include main( ) {int i;

for(i=1;i<5;i++) { if(i%3==0) break;

printf(\"%d \ A)123 B)12 C)23 D)12345 本题答案为:B

)。44. 有以下程序 main( ) {int i,s=0;

for(i=1;i<10;i+=2) s+=i+1; printf(\"%dn\

程序执行后的输出结果是( )。 A)自然数1~9的累加和 B)自然数1~10的累加和 C)自然数1~9中奇数之和 D)自然数1~10中偶数之和 本题答案为:D

45. 有定义语句:char s[10];,若要从终端给s 输入5 个字符,错误的输入语句是( )。 A)gets(&s[0]); B)scanf(\"%s\C)gets(s);

D)scanf(\"%s\本题答案为:D 46. 有以下程序 main( ) { int i,s=1;

for (i=1;i<50;i++) if(! (i%5)&&! (i%3))s+=i;

printf(\"%dn\ 程序的输出结果是( )。 A)409 B)277 C)1 D)91 本题答案为:D

47. 已知字符'A'的ASCII 码值是65,字符变量cl 的值是'A',c2 的值是'D'。执行语句

printf(\"%d,%d\后,输出结果是( )。 A)A, B B)A 68 C)65,66 D)65,68 本题答案为:C 48. 有以下程序 #include main( ) { int y=9; for( ;y>0;y--)

if(y%3==0) printf(\"%d\ 程序的运行结果是( )。 A)741

B)963 C)852 D)875421 本题答案为:C

49. 若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是( )。 A)for(i=1, p=1;i<=5;i++) p*=i; B)for(i=1;i<=5;i++){ p=1;p*=i;} C)i=1;p=1;while(i<=5){ p*=i;i++;} D)i=1;p=1;do{p*=i;i++;} while(i<=5) 本题答案为:B

50. 若变量已正确定义,以下while循环不断输出读入的字符,当读入回车符时结束循环,

正确的程序段是( )。

A)while(ch=getchar( )=='\\N')putchar(ch); B)while(ch=getchar( )=='\\n')putchar(ch); C)while(ch=getchar( )!=='\\N')putchar(ch); D)while(ch=getchar( )!=='\\n')putchar(ch); 本题答案为:D 51. 有以下程序: main( ) { char k; int i; for(i=1;i<3;i++) {scanf(\"%c\

switch(k)

{ case '0': printf(\"another\\n\"); case '1': printf(\"number\\n\"); } } }

程序运行时,从键盘输入:01<回车>,程序执行后的输出结果是( )。 A)another number B)another number another C)another number number D)number number 本题答案为:C

52. 若有说明语句:char c='\\72';,则变量c( )。 A)包含1 个字符 B)包含2 个字符 C)包含3 个字符

D)说明不合法,c 的值不确定 本题答案为:A 53. 有以下程序 main( ) {int i;

for(i=1;i<=40;i++)

{ if(i++%5==0)

if(++i%8==0) printf(\"%d\ }

printf(\"n\");}

执行后的输出结果是( )。 A)5 B)24 C)32 D)40 本题答案为:C 54. 有以下程序 #include main( ) {int i=5; do

{ if (i%3==1) if (i%5==2)

{ printf(\"*%d\ i++; } while (i!=0); printf(\"n\");}

程序的运行结果是( )。

A)*7 B)*3*5 C)*5 D)*2*6 本题答案为:A

55. 以下选项中不能作为C语言合法常量的是( )。 A)'cd' B)0.1e+6 C)\"\\a\" D)'\\011' 本题答案为:A

56. 运行下面程序时,从键盘输入字母H,则输出结果是( )。 #include main( ) { char ch; ch=getchar(); switch(ch)

{case 'H':printf(\"Hello!\\n\");

case 'G':printf(\"Good morning!\\n\"); default:printf(\"Bye_Bye!\\n\"); } }

A)Hello!

B)Hello!Good Moring!

C)Hello!Good morning!Bye_Bye! D)Hello!Bye_Bye! 本题答案为:C

57. 下列选项中属于不合法C 语言的字符串常量的是( )。 A)\")1\" B)'2y1' C)\"\\n\\n\" D)\"ABCD\\x6d\" 本题答案为:B 58. 有以下程序 #include main( ) { int y=9; for( ;y>0;y--)

if(y%3==0) printf(\"%d\ 程序的运行结果是( )。 A)741 B)963 C)852 D)875421

本题答案为:C

59. 下列选项可以正确表示字符型常量的是( )。 A)'\\r' B)\"a\" C)\"\\7\" D)296 本题答案为:A 60. 有以下程序段 #include main( ) { inti, n;

for( i=0;i<8;i++ ) { n = rand( ) % 5; switch(n) { case 1:

case 3:printf(\"%d n\ case 2:

case 4:printf(\"%d n\ case 0:exit(0); }

printf(\"%d n\

}

以下关于程序段执行情况的叙述,正确的是( )。 A)当产生的随机数n为0时结束程序运行 B)当产生的随机数n为4时结束循环操作 C)当产生的随机数n为1和2时不做任何操作 D)for循环语句固定执行8次 本题答案为:A

61. 以下不能将s所指字符串正确复制到t所指存储空间的是( )。 A)do{*t++=*s++;} while(*s); B)for(i=0;t[i]=s[i];i++); C)while(*t=*s){t++;s++;} D)for(i=0,j=0;t[i++]=s[j++];); 本题答案为:A

62. 数字字符0的ASCII值为48,若有以下程序: main( ) {

char a='1',b='2'; printf(\"%c,\ printf(\"%d\\n\ }

程序运行后的输出结果是( )。 A)3,2

B)50,2 C)2,2 D)2,50 本题答案为:C 63. 有以下程序 #include main( ) { int i,j,m=1; for(i=1;i<3;i++) {for(j=3;j>0;j-- ) {if(i*j>3) break; m*=i*j; } }

printf(\"m=%dn\ }

程序运行后的输出结果是()。 A)m=6 B)m=2 C)m=4 D)m=5 本题答案为:A

. 已有定义:char c;,程序前面已在命令行中包含ctype. h 文件,不能用于判断c 中的字

符是否为大写字母的表达式是( )。 A)isupper(c) B)'A'<=c<='Z' C)'A'<=c&&c<='Z'

D)c<=('z'-32)&&('a'-32)<=c 本题答案为:B 65. 有以下程序 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=%dn\

程序执行后的输出结果是( )。 A)x=4 B)x=8 C)x=6 D)x=12

本题答案为:B 66. 有以下for语句:

for(int x=0,y=10;(y>0)&&(x<4);x++,y--){}; 则下面叙述中正确的是( )。 A)是无限循环 B)循环次数不定 C)循环执行4次 D)循环执行3次 本题答案为:C 67. 有以下程序: #include main( )

{ char a,b,c,d;

scanf(\"%c%c\ c=getchar(); d=getchar(); printf(\"%c%c%c%c\\n\ }

当执行程序时,按下列方式输入数据(从第1列开始,代表回车,注意:回车也是一个字符) 12 34

则输出结果是( )。

A)1234 B)12 C)12 3 D)12 34 本题答案为:C

68. 以下不构成无限循环的语句或语句组是( )。 A)n=0;

do {++n;} while(n<=0); B)n=0;

while(1) { n++;} C)n=10;

while(n);{n--;} D)for(n=0,i=1;;i++) n+=i; 本题答案为:A 69. 有以下程序 #include main( )

{inta[]={2,3,5,4},i; for(i=0;i<4;i++) switch(i%2)

{case 0: switch(a[i]%2) { case 0:a[i]++;break;

case 1:a[i]--; }break; case 1:a[i]=0; }

for(i=0;i<4;i++) printf(\"%d \ }

程序运行后的输出结果是( )。 A)3 0 4 0 B)2 0 5 0 C)3 3 4 4 D)0 3 0 4 本题答案为:A

70. 以下不合法的字符常量是( )。 A)'\\018' B)'\\\"' C)'\\\\' D)'\\xcc' 本题答案为:A 71. 有以下程序: main( )

{ char a='a',b; printf(\"%c,\

printf(\"%c\\n\ }

程序运行后的输出结果是( )。 A)b,b B)b,c C)a,b D)a,c 本题答案为:A 72. 有以下程序 main( ) {int i;

for(i=0;i<3;i++) switch(i)

{ case 0: printf (\"%d\ case 2: printf(\"%d\ default: printf(\"%d\ }}

程序运行后的输出结果是( )。 A)022111 B)021021 C)000122 D)012

本题答案为:C 73. 有以下程序 #include main( ) { int y=9; for(;y>0;y--) }

程序的运行结果是( )。 A)852 B)963 C)741 D)875421 本题答案为:A 74. 有以下程序: #include main( )

{ char c1,c2,c3,c4,c5,c6;

scanf(\"%c%c%c%c\ c5=getchar(); c6=getchar(); putchar(c1); putchar(c2); printf(\"%c%c\\n\ }

程序运行后,若从键盘输入(从第1列开始) 123<回车> 45678<回车> 则输出结果是( )。 A)1267 B)1256 C)1278 D)1245 本题答案为:D 75. 有以下程序: #include main( ) { int c;

while((c=getchar( ))! ='\\n') { switch(c-'2') { case 0:

case 1:putchar(c+4); case 2:putchar(c+4);break; case 3:putchar(c+3);

case 4:putchar(c+3);break; } } printf(\"\\n\"); }

从第一列开始输入以下数据(↙代表一个回车符)。

27 43↙

程序的输出结果是( )。 A)66877 B)6766 C)6677877 D)6688766 本题答案为:A 76. 有以下程序 #include main( ) {intc=0,k;

for(k=1;k<3;k++) switch(k) { default:c+=k; case 2: c++;break; case 4: c+=2;break; }

printf(\"%dn\ }

程序运行后的输出结果是()。 A)3 B)5

C)7 D)9 本题答案为:A

77. 以下程序的输出结果是( )。 main( ) { int a,i;a=0; for(i=1;i<5;i++) { switch(i) { case 0: case 3:a+=2; case 1: case 2:a+=3; default:a+=5;} }printf(\"%dn\ A)31 B)13 C)10 D)20 本题答案为:A 78. 有如下程序 main( ) {int i;

for(i=0;i<3;i++) switch(i)

{ case 0:printf(\"%d\ case 2:printf(\"%d\ default: printf(\"%d\ }}

程序运行后的输出结果是( )。 A)022111 B)021021 C)000122 D)01122 本题答案为:D

79. 当运行以下程序时,从键盘输入AhaMA(空格)Aha,则下面程序的运行结果是

( )。

#include main( )

{ char s[80],c='a'; int i=0; scanf(\"%s\ while(s[i]! ='\\0')

{ if(s[i]= =c)s[i]=s[i]-32;

else if(s[i]= =c-32)s[i]=s[i]+32;

i++; } puts(s); } A)ahAMa B)AbAMa

C)AhAMa[空格]ahA D)ahAMa[空格]ahA 本题答案为:A 80. 有以下程序 main( ) {int i;

for(i=1;i<=40;i++) {if(i++%5==0)

if(++i%8==0) printf(\"%d \ }

printf(\"n\");}

执行后的输出结果是( )。 A)5 B)24 C)32 D)40 本题答案为:C 81. 有以下程序:

#include main( )

{ char c1='1',c2='2';

c1=getchar( ); c2=getchar( ); putchar(c1); putchar(c2); }

当运行时输入a<回车>后,以下叙述正确的是( )。 A)变量c1被赋予字符a,c2被赋予回车符 B)程序将等待用户输入第2个字符

C)变量c1被赋予字符a,c2中仍是原有字符2 D)变量c1被赋予字符a,c2中将无确定值 本题答案为:A

82. 设变量已正确定义,则以下能正确计算f=n!的程序段是( )。 A)f=0;

for(i=1;i<=n;i++) f*=i; B)f=1;

for(i=1;ifor(i=n;i>1;i++) f*=i; D)f=1;

for(i=n;i>=2;i--) f*=i;

本题答案为:D

83. 有定义语句:char s[10];,若要从终端给s 输入5 个字符,错误的输入语句是( )。 A)gets(&s[0]); B)scanf(\"%s\C)gets(s);

D)scanf(\"%s\本题答案为:D

84. 以下选项中不属于字符常量的是( )。 A) C B)\"C\" C) xCC D) 072 本题答案为:B 85. 有以下程序 #include main( ) { int c;

while((c=getchar( ))! = n ) { switch(c- 2 ) { case 0:

case 1:putchar(c+4); case 2:putchar(c+4);break;

case 3:putchar(c+3);

case 4:putchar(c+3);break; } } printf(\"n\"); }

从第一列开始输入以下数据(↙代表一个回车符)。 27 43↙

程序的输出结果是( )。 A)66877 B)6766 C)6677877 D)6688766 本题答案为:A

86. 运行下面程序时,从键盘输入字母H,则输出结果是( #include main( ) { char ch; ch=getchar(); switch(ch)

{ case H :printf(\"Hello!n\");

case G :printf(\"Good morning!n\"); default:printf(\"Bye_Bye!n\"); }} A)Hello!

)。 B)Hello!Good Moring!

C)Hello!Good morning!Bye_Bye! D)Hello!Bye_Bye! 本题答案为:C 87. 有以下程序 #include main( ) {chara,b,c,d;

scanf(\"%c%c\ c=getchar( );d=getchar( ); printf(\"%c%c%c%cn\ }

当执行程序时,按下列方式输入数据(从第1列开始,代表回车,注意:回车也是一个字符) 12 34

则输出结果是()。 A)12 3 B)12 C)1234 D)12

34 本题答案为:A

88. 当运行以下程序时,从键盘输入AhaMA(空格)Aha,则下面程序的运行结果

是( )。 #include main( )

{ char s[80],c= a int i=0; scanf(\"%s\ while(s[i]! = 0 )

{ if(s[i]= =c) s[i]=s[i]-32; else if(s[i]= =c-32) s[i]=s[i]+32; i++; } puts(s); } A)ahAMa B)AbAMa

C)AhAMa[空格]ahA D)ahAMa[空格]ahA 本题答案为:A

. 下列选项中属于不合法C 语言的字符串常量的是( )。 A)\"1\" B) 2y1

C)\"nn\" D)\"ABCDx6d\" 本题答案为:B

90. 以下不合法的字符常量是( )。 A) 018 B) \" C) D) xcc 本题答案为:A 91. 有以下程序 #include main( )

{ char a,b,c,d; scanf(\"%c%c\ c=getchar();d=getchar(); printf(\"%c%c%c%cn\

当执行程序时,按下列方式输入数据(从第1列开始,代表回车,注意:回车也是一个字符) 12 34

则输出结果是( )。 A)1234

B)12 C)12 3 D)12 34 本题答案为:C 92. 有以下程序 #include main( )

{ char c1,c2,c3,c4,c5,c6;

scanf(\"%c%c%c%c\ c5=getchar(); c6=getchar(); putchar(c1); putchar(c2); printf(\"%c%cn\

程序运行后,若从键盘输入(从第1列开始) 123<回车> 45678<回车> 则输出结果是( )。 A)1267 B)1256 C)1278 D)1245 本题答案为:D 93. 有以下程序

#include main( ) {charc1,c2; c1= A + 8 - 4 ; c2= A + 8 - 5 ;

printf( \"%c,%dn\ }

已知字母A的ASCII码为65,程序运行后的输出结果是( )。 A)E,68 B)D,69 C)E,D D)输出无定值 本题答案为:A

94. 以下程序中调用scanf 函数给变量a 输入数值的方法是错误的,其错误原因是( )。 main( ) { int *p,*q,a,b; p=&a;

printf(\"input a:\"); scanf(\"%d\

A)*p 表示的是指针变量p 的地址

B)*p 表示的是变量a 的值,而不是变量a 的地址 C)*p 表示的是指针变量p 的值

D)*p 只能用来说明p 是一个指针变量 本题答案为:B 95. 有以下程序 #include int fun (int x, int y )

{ if (x!=y) return( (x+y) /2 ); else return( x ); } main( )

{ int a=4, b=5, c=6;

printf( \"%dn\" , fun(2*a, fun( b, c ))); }

程序运行后的输出结果是( )。 A)6 B)3 C)8 D)12 本题答案为:A 96. 有以下函数 intfun(char*x, char*y) {intn=0;

while((*x==*y) && *x!= 0 ) {x++;y++;n++;}

returnn ; }

函数的功能是()。

A)统计x和y所指字符串中最前面连续相同的字符个数 B)查找x和y所指字符串中是否有 0 C)将y所指字符串赋给x所指存储空间 D)统计x和y所指字符串中相同的字符个数 本题答案为:A

97. 若程序中定义了以下函数: double myadd(double a,double b) { return (a+b);}

并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是( )。

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); 本题答案为:A

98. 以下程序的输出结果是( )。 #include void swap(int *a, int *b) { int *t;

t=a; a=b; b=t; } main( )

{ int i=3, j=5, *p=&i, *q=&j;

swap(p, q); printf(\"%d %d\\n\ } A)2 3 B)3 4 C)3 5 D)4 5 本题答案为:C 99. 有以下程序 #include void fun(int a, int b) { int t; t=a; a=b; b=t;} main( )

{ int c[10]={1,2,3,4,5,6,7,8,9,0}, i; for (i=0; i<10; i+=2) fun(c[i], c[i+1]); for (i=0; i<10; i++) printf(\"%d,\ printf(\"n\");}

程序的运行结果是( )。

A)1,2,3,4,5,6,7,8,9,0, B)2,1,4,3,6,5,8,7,0,9, C)0,9,8,7,6,5,4,3,2,1, D)0,1,2,3,4,5,6,7,8,9, 本题答案为:A 100.

设有如下函数定义

#include intfun( intk ) { if (k<1)return0; elseif (k==1)return1; elsereturnfun(k-1)+1; }

若执行调用语句:n=fun(3);,则函数fun总共被调用的次数是( )。 A)3 B)2 C)4 D)5 本题答案为:A 101.

有以下程序

char fun(char x , char y) { if(xmain( )

{ int a= 9 ,b= 8 ,c= 7 ;

printf(\"%cn\ 程序的执行结果是( )。 A)函数调用出错 B)8 C)9 D)7 本题答案为:D 102.

已定义以下函数:

int fun( int *p) { return *p; }

fun函数返回值是( )。 A)不确定的值 B)一个整数

C)形参p中存放的值 D)形参p的地址值 本题答案为:B 103.

有以下程序

#include int f(int x); main( )

{ int n=1,m;

m=f(f(f(n))); printf(\"%dn\ }

int f(int x) { return x*2; }

程序运行后的输出结果是( )。 A)8 B)2 C)4 D)1 本题答案为:A 104.

有以下函数

int fun(char*s) {char*t=s; while(*t++); return(t-s); }

该函数的功能是( )。

A)计算s所指字符串占用内存字节的个数 B)比较两个字符串的大小 C)计算s所指字符串的长度 D)将s所指字符串复制到字符串t中

本题答案为:C 105.

有以下程序

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,%dn\ 执行后输出结果是( )。 A)1,2,3 B)3,1,2 C)1,3,2 D)2,3,1 本题答案为:C 106.

以下程序的运行结果是( )。

int k=0; void fun(int m)

{m+=k;k+=m;printf(\"m=%d k=%d \ main( )

{ int i=4;

fun(i++); printf(\"i=%d k=%dn\ A)m=4 k=5 i=5 k=5 B)m=4 k=4 i=5 k=5 C)m=4 k=4 i=4 k=5 D)m=4 k=5 i=4 k=5 本题答案为:B 107.

下面的函数调用语句中func函数的实参个数是( func(f2(v1, v2), (v3, v4, v5), (v6, max(v7, v8))); A)3 B)4 C)5 D)8 本题答案为:A 108.

若有以下函数首部:

int fun(double x[10], int *n)

则下面针对此函数的函数声明语句中正确的是( )。 A)int fun(double x, int *n); B)int fun(double, int); C)int fun(double *x, int n); D)int fun(double *, int *); 本题答案为:D

)。

109. 设函数fun的定义形式为:

void fun(char ch, float x){ }…

则以下对函数fun的调用语句中,正确的是( )。 A)fun(\"123\; B)t=fun( D ,16.5); C)fun( 65 ,2.8); D)fun(32,32); 本题答案为:D 110.

下列函数的运行结果是( main( ) { int i=2,p; int j,k;

j=i;k=++i;p=f(j,k); printf(\"%d\ int f(int a,int b) { int c; if(a>b) c=1; else if(a= =b) c=0; else c=-1; return(c); } A)-1 B)1

)。C)2

D)编译出错,无法运行 本题答案为:A 111.

有以下程序

#include int f( int x,int y) { return((y-x)*x); } main( )

{ int a=3,b=4,c=5,d; d=f(f(a,b),f(a,c)); printf(\"%dn\ }

程序运行后的输出结果是( )。 A)9 B)10 C)8 D)7 本题答案为:A 112.

有以下函数:

int aaa(char *s) { char *t=s; while(*t++);

t--; return(t-s); }

以下关于aaa函数的功能的叙述正确的是( )。 A)求字符串s的长度 B)比较两个串的大小 C)将串s复制到串t D)求字符串s所占字节数 本题答案为:A 113.

设已有定义:float x;,则以下对指针变量p进行定义且赋初值的语句中正确的是

( )。 A)float *p=&x; B)int *p=(float)x; C)float p=&x; D)float *p=1024; 本题答案为:A 114.

有以下程序

#include main( )

{ int n,*p=NULL; *p=&n;

printf(\"Input n:\"); scanf(\"%d\

}

该程序试图通过指针p为变量n读入数据并输出,但程序有多处错误,以下语句正确的是( )。

A)int n,*p=NULL; B)*p=&n;

C)scanf(\"%d\ D)printf(\"%dn\本题答案为:A 115.

若有说明语句:double *p,a;,则能通过scanf语句正确给输入项读入数据的程序

段是( )。

A)*p=&a; scanf(\"%lf\B)*p=&a; scanf(\"%f\C)p=&a; scanf(\"%lf\D)p=&a; scanf(\"%lf\本题答案为:D 116.

有以下程序

main( )

{ int a=7,b=8,*p,*q,*r; p=&a; q=&b; r=p; p=q; q=r;

printf(\"%d,%d,%d,%dn\ 程序运行后的输出结果是( )。

A)8,7,8,7 B)7,8,7,8 C)8,7,7,8 D)7,8,8,7 本题答案为:C 117.

以下叙述中错误的是( )。

A)可以给指针变量赋一个整数作为地址值 B)函数可以返回地址值

C)改变函数形参的值,不会改变对应实参的值

D)当在程序的开头包含头文件stdio.h时,可以给指针变量赋NULL 本题答案为:A 118.

设有定义:int a, *pa=&a;,以下scanf语句中能正确为变量a读入数据的是( )。

A)scanf(\"%d\B)scanf(\"%d\C)scanf(\"%d\D)scanf(\"%d\本题答案为:A 119.

以下数组定义中错误的是( )。

A)int x[2][3]={{1,2},{3,4},{5,6}}; B)int x[][3]={0};

C)int x[][3]={{1,2,3},{4,5,6}}; D)int x[2][3]={1,2,3,4,5,6};

本题答案为:A 120.

已有定义:int i,a[10],*p; ,则合法的赋值语句是( )。

A)p=100; B)p=a[5] C)p=a[2]+2 D)p=a+2; 本题答案为:D 121.

若有定义:int w[3][5];,则以下不能正确表示该数组元素的表达式是( )。

A)*(*w+3) B)*(w+1)[4] C)*(*(w+1)) D)*(&w[0][0]+1) 本题答案为:B 122.

有以下程序

#include

int fun(int (*s)[4], int n, int k) { int m, i; m=s[0][k];

for (i=1; im) m=s[i][k]; return m;} main( )

{ int a[4][4]={{1,2,3,4},{11,12,13,14},{21,22,23,24},{31,32,33,34}};

printf(\"%dn\));} 程序的运行结果是( )。 A)4 B)34 C)31 D)32 本题答案为:C 123.

以下能正确定义二维数组的是( )。

A)int a[ ][3]; B)int a[ ][3]={2*3}; C)int a[ ][3]={};

D)int a[2][3]={{1},{2},{3,4}}; 本题答案为:B 124.

有以下程序

#include void fun( int a, int b ) { int t; t=a; a=b; b=t; } main( )

{ int c[10]={1,2,3,4,5,6,7,8,9,0}, i; for(i=0; i<10; i+=2) fun(c[i], c[i+1]);

for(i=0;i<10;i++) printf(\"%d,\ printf(\"n\"); }

程序的运行结果是( )。 A)1,2,3,4,5,6,7,8,9,0, B)2,1,4,3,6,5,8,7,0,9, C)0,9,8,7,6,5,4,3,2,1, D)0,1,2,3,4,5,6,7,8,9, 本题答案为:A 125.

若有定义语句:int m[ ]={5,4,3,2,1}, i=4;,则下面对m数组元素的引用中错误的

是( )。 A)m[--i] B)m[2*2] C)m[m[0]] D)m[m[i]] 本题答案为:C 126.

有以下程序

void sum(int a[ ]) { a[0]=a[-1]+a[1]; } main( )

{ int a[10]={1,2,3,4,5,6,7,8,9,10}; sum(&a[2]);

printf(\"%dn\

程序运行后的输出结果是( )。 A)6 B)7 C)5 D)8 本题答案为:A 127.

有以下程序

main( )

{ int i, s=0, t[ ]={1,2,3,4,5,6,7,8,9}; for(i=0;i<9;i+=2) s+=*(t+i); printf(\"%dn\

程序执行后的输出结果是( )。 A)45 B)20 C)25 D)36 本题答案为:C 128.

有以下程序

#include

void fun(int *s, int n1, int n2) { int i, j, t;

i=n1; j=n2;

while (i{ int a[10]={1,2,3,4,5,6,7,8,9,0}, k; fun(a, 0, 3); fun(a, 4, 9); fun(a, 0, 9); for (k=0; k<10; k++) print f(\"%d\ 程序运行后的输出结果是( )。 A)0987654321 B)4321098765 C)56701234 D)0987651234 本题答案为:C 129.

有以下程序

#include

void fun(int *a,int n)/ *fun 函数的功能是将a 所指数组元素从大到小排序*/ { int t,i,j;

for(i=0;iif(a[i]{ int c[10]={1,2,3,4,5,6,7,8,9,0},i;

fun(c+4,6);

for(i=0;i<10;i++) printf(\"%d,\ printf(\"n\");}

程序的运行结果是( )。 A)1,2,3,4,5,6,7,8,9,0, B)0,9,8,7,6,5,1,2,3,4, C)0,9,8,7,6,5,4,3,2,1, D)1,2,3,4,9,8,7,6,5,0, 本题答案为:D 130.

下列程序执行后的输出结果是( main( )

{ int a[3][3], *p,i; p=&a[0][0];

for(i=1; i<9; i++) p[i] =i+1; printf(\"%dn\ A)3 B)6 C)9 D)随机数 本题答案为:B 131.

有如下程序

main( )

)。

{ char ch[2][5] ={\"6937\ 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 ;j+=2) s=10*s+p[i][j]- 0 ; printf(\"%dn\ 该程序的输出结果是( )。 A)69862358 B)5825 C)6385 D)693825 本题答案为:C 132.

以下数组定义中错误的是( )。

A)int x[ ][3]={0};

B)int x[2][3]={{1,2},{3,4},{5,6}}; C)int x[ ][3]={{1,2,3},{4,5,6}}; D)int x[2][3]={1,2,3,4,5,6}; 本题答案为:B 133.

若有定义:int a[2][3];,以下选项中对a数组元素正确引用的是( )。

A)a[2][!1] B)a[2][3]

C)a[0][3] D)a[1>1][!1] 本题答案为:D 134.

以下能正确定义一维数组的选项是( )。

A)int a[5]={0,1,2,3,4,5}; B)int a[ ]={0,1,2,3,4,5}; C)char a={ A , B , C }; D)int a[5]=\"0123\" 本题答案为:B 135.

下列定义数组的语句中,正确的是( )。

A)#define N 10 int x[N]; B)int N=10; int x[N]; C)int x[0..10]; D)int x[]; 本题答案为:A 136.

有以下程序

main( )

{ int a[3][2]={0},(*ptr)[2],i,j; for(i=0; i<2; i++)

{ ptr=a+i; scanf(\"%d\

for(i=0;i<3;i++)

{ for(j=0;j<2;j++) printf(\"%2d\ printf(\"n\");} }

若运行时输入:1 2 3<回车>,则输出结果为( )。 A)产生错误信息 B) 1 0 2 0 0 0 C) 1 2 3 0 0 0 D) 1 0 2 0 3 0 本题答案为:B 137.

下列选项中错误的说明语句是( )。

A)char a[ ] ={ t , o , y , o , u }; B)char a[ ]={\"toyou0\C)char a[ ] =\"toyou0\" D)char a[ ] = toyou0 ; 本题答案为:D

138. 有以下程序

main( )

{ int i, t[ ][3]={9,8,7,6,5,4,3,2,1}; for(i=0;i<3;i++) printf(\"%d \ 程序执行后的输出结果是( )。 A)7 5 3 B)3 5 7 C)3 6 9 D)7 5 1 本题答案为:B 139.

有以下程序

#include void fun( int a[], int n) { int i, t;

for(i=0; i{ int k[10]={ 1,2,3,4,5,6,7,8,9,10},i; fun(k,5);

for(i=2; i<8;i++) printf(\"%d\ printf(\"n\"); }

程序的运行结果是( )。 A)321678 B)876543 C)1098765 D)345678 本题答案为:A 140.

设有以下定义和语句:

int a[3][2]={1,2,3,4,5,6}, *p[3]; p[0]=a[1];

则*(p[0]+1)所代表的数组元素是( )。 A)a[0][1] B)a[1][0] C)a[1][1] D)a[1][2] 本题答案为:C 141.

有以下程序

main( )

{ int a[ ]={2,4,6,8,10}, y=0,x,*p; p=&a[1]; for(x=1;x<3;x++) y+=p[x]; printf(\"%dn\

程序运行后的输出结果是( )。 A)10 B)11 C)14 D)15 本题答案为:C 142.

有以下程序

int fun(int x[ ],int n) { static int sum=0,i; for(i=0;i{ int a[ ]={1,2,3,4,5},b[ ]={6,7,8,9},s=0; s=fun(a,5)+fun(b,4);printf(\"%dn\ 程序执行后的输出结果是( )。 A)45 B)50 C)60 D)55 本题答案为:C 143.

有定义语句:int b;char c[10]; , 则正确的输入语句是( )。

A)scanf(\"%d%s\

B)scanf(\"%d%s\C)scanf(\"%d%s\D)scanf(\"%d%s\本题答案为:B 144.

若有定义:int a[2][3];,以下选项中对a 数组元素正确引用的是( )。

A)a [2][1] B)a[2][3] C)a[0][3] D)a[1>2][! 1] 本题答案为:D 145.

以下错误的定义语句是( )。

A)int x[ ][3]={{0}, {1}, {1, 2, 3}};

B)int x[4][3]={{1, 2, 3}, {1, 2, 3}, {1, 2, 3}, {1, 2, 3}}; C)int x[4][ ]={{1, 2, 3}, {1, 2, 3}, {1, 2, 3}, {1, 2, 3}}; D)int x[ ][3]={1, 2, 3, 4}; 本题答案为:C 146.

若有定义语句:double x[5]={1.0,2.0,3.0,4.0,5.0}, *p=x;,则错误引用x数组元素

的是( )。 A)*p B)x[5] C)*(p+1) D)*x

本题答案为:B 147.

以下定义数组的语句中错误的是( )。

A)int num[2][4]={ {1,2},{3,4},{5,6} }; B)int num[][3]={ {1,2},3,4,5,6 }; C)int num[]={ 1,2,3,4,5,6 }; D)int num[][4]={1,2,3,4,5,6}; 本题答案为:A 148.

下面程序中有错误的行是(每行程序前面的数字表示行号)( 1 main( ) 2 {

3 int a[3] ={1}; 4 int i;

5 scanf(\" %d\

6 for(i=1; i<3;i++) a[0] =a[0]+a[i]; 7 printf(\" a[0] =%dn \ 8 } A)3 B)6 C)7 D)5 本题答案为:D 149.

有以下程序

)。

#include #define N 4

void fun(int a[][N], int b[]) { int i;

for(i=0; i{ int x[N][N]={{1, 2, 3, 4}, {5, 6, 7, 8}, {9,10,11,12}, {13,14,15,16}}, y[N], i; fun (x, y);

for(i=0; i程序运行后的输出结果是( )。 A)-3,-1,1,3, B)-12,-3,0,0, C)0,1,2,3, D)-3,-3,-3,-3, 本题答案为:A 150.

以下不正确的定义语句是( )。

A)double x[5]={2.0,4.0,6.0,8.0,10.0}; B)int y[5]={0,1,3,5,7,9}; C)char c1[ ]={ 1 , 2 , 3 , 4 , 5 }; D)char c2[ ]={ x10 , xa , x8 };

本题答案为:B 151.

有以下程序

#include #define N 4

void fun(int a[ ][N], int b[ ]) { int i;

for (i=0; i{ int x[ ][N]={{1,2,3},{4},{5,6,7,8},{9,10}}, y[N], i; fun(x, y);

for (i=0; i程序的运行结果是( )。 A)1,2,3,4, B)1,0,7,0, C)1,4,5,9, D)3,4,8,10, 本题答案为:B 152.

有以下程序

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 %dn\ }

程序运行后的输出结果是( )。 A)5 3 5 3 B)5 3 3 5 C)3 5 3 5 D)3 5 5 3 本题答案为:B 153.

下列程序的输出结果是( )。

#include \"stdio. h\" #define N 3 #define M 3

void fun(int a[M][N]) { printf(\"%dn\ main( ) { int a[M][N]; int i,j;

for(i=0;ifor(j=0;j有以下程序

#include main( )

{ int x[3][2]={0}, i;

for(i=0; i<3;i++) scanf(\"%d\

printf(\"%3d%3d%3dn\ }

若运行时输入:2 4 6<回车>,则输出结果为( )。 A)2 0 4 B)2 0 0 C)2 4 0 D)2 4 6 本题答案为:A 155.

有以下程序

void f(int *q) { int i=0;

for ( ; i<5; i++)(*q)++;} main( )

{ int a[5]={1,2,3,4,5},i; f(a);

for (i=0; i<5; i++) printf(\"%d,\ 程序运行后的输出结果是( )。 A)2,2,3,4,5, B)6,2,3,4,5, C)1,2,3,4,5, D)2,3,4,5,6, 本题答案为:B 156.

有以下程序

main( )

{ char str[ ][10]={\"China\ printf(\"%sn\ }

程序运行后的输出结果是( )。 A)China B)Beijing C)ng

D)ing 本题答案为:B 157.

若有定义语句:int a[2][3],*p[3];,则以下语句中正确的是( )。

A)p=a; B)p[0]=a; C)p[0]=&a[1][2]; D)p[1]=&a; 本题答案为:C 158.

有以下程序

main( )

{ int i,s=0,t[ ] ={1,2,3,4,5,6,7,8,9};

for(i=0;i<9;i+=2) s+=*(t+i);printf(\"%dn\ 程序执行后的输出结果是( )。 A)45 B)20 C)25 D)36 本题答案为:C 159.

若有定义语句:int k[2][3],*pk[3];,则以下语句中正确的是( )。

A)pk=k;

B)pk[0]=&k[1][2]; C)pk=k[0];

D)pk[1]=k; 本题答案为:B 160.

以下语句中存在语法错误的是( )。

A)char ss[6][20];ss[1]= \"right?\" B)char ss[ ][20]={ \"right?\C)char *ss[6];ss[1]= \"right?\" D)char *ss[ ]={ \"right?\本题答案为:A 161.

下列程序的运行结果为( )。

#include void_123(char*str) { int a,b;

for(a=b=0;str[a]!= 0 ;a++) if(str[a]!= c ) str[b++]=str[a]; str[b]= 0 ;} void main( )

{ char str[ ]=\"123def\"; _123(str);

printf(\"str[ ]=%s\",str); } A)str[ ]=abdef B)str[ ]=123def

C)str[ ]=a D)str[ ]=ab 本题答案为:B 162.

下面程序段的运行结果是( )。

char s[ ]=\"123defgh\ p+ =3;

printf(\" % dn\" ,strlen(strcpy(p,\" ABCD\"))); A)8 B)12 C)4 D)7 本题答案为:C 163.

若有定义:char *st= \"how are you \",下列程序段中正确的是( )。

A)char a[11], *p; strcpy(p=a+1,&st[4]); B)char a[11]; strcpy(++a, st); C)char a[11]; strcpy(a, st);

D)char a[ ], *p; strcpy(p=&a[1],st+2); 本题答案为:A 1.

有以下程序

#include main( )

{ char p[20]={ a , b , c , d },q[ ]=\"123\

strcat(p,r); strcpy(p+strlen(q),q); printf(\"%dn\ }

程序运行后的输出结果是( )。 A)9 B)6 C)11 D)7 本题答案为:B 165.

下面程序的输出结果是( )。

#include #include main( )

{ char p1[20]=\"123\ strcpy(str+2,strcat(p1,p2)); printf(\"%sn\ A)xyzabzac B)bAcBACBC C)xy123ABC D)yz123ABC 本题答案为:C 166.

有以下程序段

#include \"stdio. h\" #include \"string. h\" main( )

{ char a[3][20] ={{\"china\ char k[100] ={0},*p=k; int i;

for(i=0;i<3;i++) { p=strcat(p,a[i]);} i=strlen(p); printf(\"%dn\

则程序段的输出结果是( )。 A)18 B)19 C)20 D)21 本题答案为:B 167.

有以下程序

#include main( )

{ char p[ ] ={ a , b , c },q[10] ={ a , b , c }; printf(\"%d%dn\ 以下叙述中正确的是( )。

A)在给p 和q 数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3 B)由于p 数组中没有字符串结束符,长度不能确定,但q 数组中字符串长度为3 C)由于q 数组中没有字符串结束符,长度不能确定,但p 数组中字符串长度为3 D)由于p 和q 数组中都没有字符串结束符,故长度都不能确定 本题答案为:B 168.

有以下程序

main( )

{ char a[7]=\"a00a00\" int i,j; i=sizeof(a); j=strlen(a); printf(\"%d %dn\ 程序运行后的输出结果是( )。 A)2 2 B)7 6 C)7 2 D)6 2 本题答案为:C 169.

有以下程序

#include void swap(char *x, char *y) { char t;

t=*x; *x=*y; *y=t; }

main( )

{ char *s1=\"abc\ swap(s1,s2); printf(\"%s,%sn\ }

程序执行后的输出结果是( )。 A)1bc,a23 B)123,123 C)123,123 D)321,cba 本题答案为:A 170.

设已执行预编译命令#include,以下程序段的输出结果是( char s[ ] =\" an apple\" ; printf(\" % dn\" ,strlen(s)); A)7 B)8 C)9 D)10 本题答案为:C 171.

若有定义:char *st= \"how are you \",下列程序段中正确的是( )。

A)char a[11], *p; strcpy(p=a+1,&st[4]); B)char a[11]; strcpy(++a, st); C)char a[11]; strcpy(a, st);

)。

D)char a[ ], *p; strcpy(p=&a[1],st+2); 本题答案为:A 172.

对下述程序的判断中,正确的是( )。

#include void main( ) { char*p,s[128]; p=s;

while(strcmp(s,\"End\"))

{ printf(\"Input a string:\");gets(s);p=s; while(*p)

putchar(*p++); } }

A)此程序循环接收字符串并输出,直到接收字符串\"End\"为止 B)此程序循环接收字符串,接收到字符串\"End\"则输出,否则程序终止

C)此程序循环接收字符串并输出,直到接收字符串\"End\"为止,但因代码有误,程序不能正常工作

D)此程序循环接收字符串并将其连接在一起,直到接收字符串\"End\"为止,输出连接后的字符串 本题答案为:A 173.

下面能正确进行字符串赋值操作的是( )。

A)char s[5] ={\"ABCDE\B)char s[5] ={ A , b , C , D , E }; C)char *s;s=\"ABCDE\"

D)char *s;scanf(\"%s\本题答案为:C 174.

下面能正确进行字符串赋值操作的是( )。

A)char s[5] ={\"ABCDE\B)char s[5] ={ A , b , C , D , E }; C)char *s; s=\"ABCDE\" D)char *s;scanf(\"%s\本题答案为:A 175.

设有如下程序段

char s[20]=\"Beijing\ p = s;

执行p=s;语句后,以下叙述正确的是( )。 A)可以用*p表示s[0]

B)s数组中元素的个数和p所指字符串长度相等 C)s和p都是指针变量

D)数组s中的内容和指针变量p中的内容相同 本题答案为:A 176.

有以下程序

#include main( )

{ char s[]=\"012xy08s34f4w2\" int i, n=0;

for( i=0; s[i]!=0; i++ ) if(s[i] >= 0 s[i] <= 9 ) n++; printf(\"%dn\ }

程序运行后的输出结果是( )。 A)3 B)0 C)7 D)8 本题答案为:A 177.

. 下面程序的输出结果是( )。

#include #include main( )

{ char p1[20]=\"123\ strcpy(str+2,strcat(p1,p2)); printf(\"%sn\ A)xyzabzac B)bAcBACBC C)xy123ABC D)yz123ABC 本题答案为:C

178. 有定义语句:char s[10];,若要从终端给s输入5个字符,错误的输入语句是( )。

A)gets(&s[0]); B)scanf(\"%s\C)gets(s);

D)scanf(\"%s\本题答案为:D 179.

以下正确的程序段是( )。

A)char str[20]; scanf(\"%s\

B)char *p; scanf(\"%s\C)char str[20]; scanf(\"%s\D)char str[20],*p=str; scanf(\"%s\本题答案为:D 180.

以下正确的程序段是( )。

A)char str[20]; scanf(\"%s\

B)char *p;

scanf(\"%s\C)char str[20]; scanf(\"%s\D)char str[20],*p=str; scanf(\"%s\本题答案为:C 181.

阅读下列程序,当运行函数时,输入asd af aa z67,则输出为( #include #include #include void fun (char *str) { int i,j=0;

for(i=0;str[i]! = 0 ;i++) if(str[i]! = ) str[j++]=str[i]; str[j]= 0 } main( )

{ char str[81];

printf(\"Input a string : \"); gets(str); fun(str);

printf(\"%sn\ A)asdafaaz67

)。

B)asd af aa z67 C)asd D)z67 本题答案为:A 182.

下列程序的运行结果为( )。

#include void_123(char*str) { int a,b;

for(a=b=0;str[a]!= 0 ;a++) if(str[a]!= c ) str[b++]=str[a]; str[b]= 0 ;} void main( )

{ char str[ ]=\"123def\"; _123(str);

printf(\"str[ ]=%s\",str); } A)str[ ]=abdef B)str[ ]=123def C)str[ ]=a D)str[ ]=ab 本题答案为:B 183.

以下正确的程序段是( )。

A)char str1( )=\"12345\B)char str[10],*st=\"123de\"strcat(str,st); C)char str[10] =\" \". *st=\"123de\"strcat(str,st); D)char *st1=\"12345\本题答案为:C 184.

下列语句组中,正确的是( )。

A)char *s;s=\"Olympic\" B)char s[7];s=\"Olympic\" C)char *s;s={\"Olympic\D)char s[7];s={\"Olympic\本题答案为:A 185.

阅读下列程序,则在执行后,程序的运行结果为( #include \"stdio. h\" #include \"string. h\" main( )

{ char a[30] =\"nice to meet you!\" ; strcpy(a+strlen(a)/2,\" you\"); printf(\" % sn\" ,a);} A)nice to meet you you B)nice to C)meet you you D)nice to you

)。

本题答案为:D 186.

以下正确的程序段是( )。

A)char str1( )=\"12345\B)char str[10],*st=\"123de\"strcat(str,st); C)char str[10] =\" \". *st=\"123de\"strcat(str,st); D)char *st1=\"12345\本题答案为:C 187.

阅读下列程序,当运行函数时,输入asd af aa z67,则输出为( #include #include #include void fun (char *str) { int i,j=0;

for(i=0;str[i]! = 0 ;i++) if(str[i]! = ) str[j++]=str[i]; str[j]= 0 } main( )

{ char str[81];

printf(\"Input a string : \"); gets(str); fun(str);

printf(\"%sn\

)。

A)asdafaaz67 B)asd af aa z67 C)asd D)z67 本题答案为:A 188.

有以下程序

main( )

{ char *p[10]={\"123\ printf(\"%dn\ }

执行后输出结果是( )。 A)2 B)3 C)4 D)5 本题答案为:A 1.

有以下程序(注:字符a的ASCII码值为97)

#include main( )

{ char *s ={ \"123\" }; do

{ printf (\"%d\

while( *s ); }

程序运行后的输出结果是( )。 A)7 B)123 C)70 D)9799 本题答案为:A 190.

有以下程序(注:字符a的ASCII码值为97)

#include main( )

{ char *s ={ \"123\" }; do

{ printf (\"%d\ while( *s ); }

程序运行后的输出结果是( )。 A)7 B)123 C)70 D)9799 本题答案为:B

191. 有以下程序

void swap(char *x, char *y) { char t; t=*x; *x=*y; *y=t; } main( )

{ char s1[ ]=\"abc\ swap(s1,s2); printf(\"%s,%sn\ 程序执行后的输出结果是( )。 A)123,123 B)123,123 C)1bc,a23 D)321,cba 本题答案为:C 192.

当用户要求输入的字符串中含有空格时,应使用的输入函数是( )。

A)scanf() B)getchar() C)gets() D)getc() 本题答案为:C 193.

设已执行预编译命令#include,以下程序段的输出结果是( char s[ ] =\" an apple\" ; printf(\" % dn\" ,strlen(s)); A)7

)。

B)8 C)9 D)10 本题答案为:C 194.

阅读下列程序,则在执行后,程序的运行结果为( )。

#include \"stdio. h\" #include \"string. h\" main( )

{ char a[30] =\"nice to meet you!\" ; strcpy(a+strlen(a)/2,\" you\"); printf(\" % sn\" ,a);} A)nice to meet you you B)nice to C)meet you you D)nice to you 本题答案为:D 195. A)7 B)8 C)9 D)10 本题答案为:A

若有定义语句:char s[10]=\"123456700\",则strlen(s)的值是( )。

196. 设有如下程序段

char s[20]=\"Beijing\ p = s;

执行p=s;语句后,以下叙述正确的是( )。 A)可以用*p表示s[0]

B)s数组中元素的个数和p所指字符串长度相等 C)s和p都是指针变量

D)数组s中的内容和指针变量p中的内容相同 本题答案为:A 197.

有以下程序

main( )

{ char a[7]=\"a00a00\" int i,j; i=sizeof(a); j=strlen(a); printf(\"%d %dn\ 程序运行后的输出结果是( )。 A)2 2 B)7 6 C)7 2 D)6 2 本题答案为:C 198.

有以下程序

#include

main( )

{ char p[ ] ={ a , b , c },q[10] ={ a , b , c }; printf(\"%d%dn\ 以下叙述中正确的是( )。

A)在给p 和q 数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3 B)由于p 数组中没有字符串结束符,长度不能确定,但q 数组中字符串长度为3 C)由于q 数组中没有字符串结束符,长度不能确定,但p 数组中字符串长度为3 D)由于p 和q 数组中都没有字符串结束符,故长度都不能确定 本题答案为:B 199.

以下程序执行后的输出结果是( )。

#include #include

void f(char p[ ][10], int n)/* 字符串从小到大排序 */ { char t[10]; int i,j; for (i=0; i0) {

strcpy(t,p[i]); strcpy(p[i],p[j]); strcpy(p[j],t); }}

main( )

{ char p[5][10]={\"abc\ f(p,5);

printf(\"%dn\ A)2 B)4 C)6 D)3 本题答案为:C 200.

有以下程序

void swap(char *x, char *y) { char t; t=*x; *x=*y; *y=t; } main( )

{ char s1[ ]=\"abc\ swap(s1,s2); printf(\"%s,%sn\ 程序执行后的输出结果是( )。 A)123,123 B)123,123 C)1bc,a23 D)321,cba 本题答案为:C 201.

对下述程序的判断中,正确的是(

)。 #include void main( ) { char*p,s[128]; p=s;

while(strcmp(s,\"End\"))

{ printf(\"Input a string:\");gets(s);p=s; while(*p)

putchar(*p++); } }

A)此程序循环接收字符串并输出,直到接收字符串\"End\"为止 B)此程序循环接收字符串,接收到字符串\"End\"则输出,否则程序终止

C)此程序循环接收字符串并输出,直到接收字符串\"End\"为止,但因代码有误,程序不能正常工作

D)此程序循环接收字符串并将其连接在一起,直到接收字符串\"End\"为止,输出连接后的字符串 本题答案为:A 202. A)7 B)8 C)9 D)10 203.

下面程序段的运行结果是( )。

若有定义语句:char s[10]=\"123456700\",则strlen(s)的值是( )。

char s[ ]=\"123defgh\

p+ =3;

printf(\" % dn\" ,strlen(strcpy(p,\" ABCD\"))); A)8 B)12 C)4 D)7 本题答案为:C 204.

有以下程序

#include #include main( )

{ char str[][20]={\"One*World\ printf(\"%d,\ }

程序运行后的输出结果是( )。 A)10,One*Dream! B)9,One*Dream! C)9,One*World D)10,One*World 本题答案为:A 205.

有以下程序段

#include \"stdio. h\"

#include \"string. h\" main( )

{ char a[3][20] ={{\"china\ char k[100] ={0},*p=k; int i;

for(i=0;i<3;i++) { p=strcat(p,a[i]);} i=strlen(p); printf(\"%dn\

则程序段的输出结果是( )。A)18 B)19 C)20 D)21 本题答案为:B 206.

以下程序的输出结果是( #include void fun(int n,int *s) { int f1,f2; if(n ==0||n==1) *s=1; else

)。 { fun(n-1,&f1); fun(n-2,&f2); *s=f1+f2; } } void main( ) { int x; fun(6,&x);

printf(\"n% d\" ,x); } A)7 B)13 C)9 D)10 本题答案为:B 207.

有以下程序

int fun(int n)

{ if(n==1) return 1; else

return(n+fun(n-1));} main( ) { int x;

scanf(\"%d\

执行程序时,给变量x输入10,程序的输出结果是( )。 A)55

B)54 C)65 D)45 本题答案为:A 208.

以下程序的输出结果是( )。

long fun( int n) { long s;

if(n= =1||n= =2) s=2; else s=n-fun(n-1); return s;} main( )

{ printf(\" % ldn\" , fun(3)); } A)1 B)2 C)3 D)4 本题答案为:A 209.

有以下程序

#include int fun(int a, int b) { if (b==0) return a; else return (fun(--a, --b));}

main( )

{ printf(\"%dn\)); } 程序的运行结果是( )。 A)1 B)2 C)3 D)4 本题答案为:B 210.

有以下程序

#include int f(int x) { int y;

if (x==0||x==1) return(3); y = x*x-f(x-2); return y;} main( ) { int z;

z=f(3); printf(\"%dn\ 程序的运行结果是( )。 A)0 B)9 C)6

D)8 本题答案为:C 211.

有以下程序

int f(int n)

{ if(n= =1) return 1; else return f(n-1)+1;} main( ) { int i,j=0;

for(i=1;i<3;i++) j+ =f(i); printf(\" % dn\" ,j);}

程序运行后的输出结果是( )。 A)4 B)3 C)2 D)1 本题答案为:B 212.

有以下程序

fun(int x) { int p;

if(x==0||x==1) return(3); p=x-fun(x-2); return p;}

main( )

{ printf(\"%dn\ 执行后的输出结果是( )。 A)7 B)3 C)2 D)0 本题答案为:C 213.

有以下程序

#include

int add( int a,intB){ return(a+b); } main( )

{ int k, (*f)( ), a=5,b=10; f=add; … }

则以下函数调用语句错误的是( )。 A)k= *f(a,b); B)k=add(a,b); C)k=(*f)(a,b); D)k=f(a,b); 本题答案为:A

214. 有以下程序

void f(int n, int *r) { int r1=0;

if (n%3 == 0)r1=n/3; else if (n%5 == 0)r1=n/5; else f(--n,&r1); *r = r1;} main( ) { int m=7,r;

f(m,&r); printf(\"%dn\ 程序运行后的输出结果是( )。 A)2 B)1 C)3 D)0 本题答案为:A 215.

有以下程序

#include int f(int n); main( ) { int a=3,s;

s=f(A);s=s+f(A); printf(\"%dn\

}

int f(int n)

{ static int a=1; n+=a++; return n; }

程序运行后的输出结果是( )。 A)9 B)8 C)7 D)10 本题答案为:A 216.

在C语言中,只有在使用时才占用内存单元的变量,其存储类型是( )。

A)auto和register B)extern和register C)auto和static D)static和register 本题答案为:A 217.

有以下程序

#include int a=2; int f(int *a)

{ return (*a)++;} main( ) { int s=0; { int a=5; s+=f(&a);} s+=f(&a); printf(\"%dn\ 执行后输出结果是( )。 A)10 B)9 C)7 D)8 218.

有以下程序

#include int fun( )

{ static int x=1; x*=2; return x; } main( ) { int i, s=1;

for( i=1; i<=3; i++ ) s*=fun( );

printf(\"%dn\ }

程序运行后的输出结果是( )。 A)30 B)10 C)0 D) 本题答案为:D 219.

以下叙述中正确的是( )

A)static型局部变量,只能在编译时赋予值,程序运行期间不能更改 B)static型局部变量,可以在程序运行期间更改其值 C)全局变量说明为static存储类,其作用域将被扩大 D)形参可以使用的存储类说明符与局部变量完全相同 220.

以下叙述中正确的是( )。

A)局部变量说明为static存储类,其生存期将得到延长 B)全局变量说明为static存储类,其作用域将被扩大 C)任何存储类的变量在未赋初值时,其值都是不确定的 D)形参可以使用的存储类说明符与局部变量完全相同 本题答案为:A 221.

以下关于宏的叙述中正确的是( )。

A)宏替换没有数据类型

B)宏定义必须位于源程序中所有语句之前

C)宏名必须用大写字母表示 D)宏调用比函数调用耗费时间 本题答案为:A 222.

阅读下列程序段,程序的输出结果为( )。

#include \"stdio. h\" #define M(X,Y)(X)*(Y) #define N(X,Y)(X)/ (Y) main( )

{ int a=5,b=6,c=8,k; k=N(M(a,b),c); printf(\"%dn\ A)3 B)5 C)6 D)8 本题答案为:A 223.

有以下程序

#include #include int fun(int n) { int *p;

p = (int*)malloc(sizeof(int));

*p=n; return *p; } main( ) { int a;

a = fun(10); printf(\"%dn\ }

程序的运行结果是( )。 A)20 B)10 C)0 D)出错 本题答案为:A 224.

有以下程序

#include #include main( )

{ int *a,*b,*c;

a=b=c=(int *)malloc(sizeof(int)); *a=1;*b=2,*c=3; a=b;

printf(\"%d,%d,%dn\ }

程序运行后的输出结果是( )。 A)3,3,3 B)2,2,3 C)1,2,3 D)1,1,3 本题答案为:A 225.

有以下程序:

#include #include

typedef struct {char name[9]; char sex; float score[2];} STU; void f(STU a)

{ STU b={\"Zhao\ strcpy(a.name, b.name); a.sex=b.sex;

for (i=0; i<2; i++)a.score[i]=b.score[i]; } main( ) {

STU c={\"Qian\ f(c);

printf(\"%s,%c,%d,%d\ }

程序运行后的输出结果是( )。 A)Qian,f,95,92 B)Qian,m,85,90 C)Zhao,f,95,92 D)Zhao,m,85,90 本题答案为:A 226.

若有以下说明和定义:

union dt

{ int a; char b; double c;}data; 以下叙述中错误的是( )。 A)data 的每个成员起始地址都相同

B)变量data 所占内存字节数与成员c 所占字节数相等

C)程序段data. a =5;printf(\" % fn\" ,data. C);输出结果为5. 000000 D)data 可以作为函数的实参 本题答案为:D 227.

以下程序的运行结果是( )。

#include struct STU{ char name[10]; int num; };

void f1(struct STU c)

{ struct STU b={\"LiSiGuo\ c=b; }

void f2(struct STU *c)

{ struct STU b={\"SunDan\ *c=b; } main( )

{ struct STU a={\"YangSan\ f1(a);f2(&b);printf(\"%d,%dn\}

A)2041 2044 B)2041 2043 C)2042 2044 D)2042 2043 本题答案为:A 228.

以下叙述中错误的是( )。

A)可以通过typedef增加新的类型

B)可以用typedef将已存在的类型用一个新的名字来代表 C)用typedef定义新的类型名后,原有类型名仍有效 D)用typedef可以为各种类型起别名,但不能为变量起别名 本题答案为:A

229. 有以下程序

#include typedef struct{int b,p;} A; void f(A c) /*c是结构变量名 */ { c.b+=1; c.p+=2; } main( ) { A a={1,2}; f(a);

printf(\"%d,%dn\ 程序运行后的输出结果是( )。 A)2,3 B)2,4 C)1,4 D)1,2 本题答案为:D 230.

以下程序的输出结果是( #include \"stdio. h\" struct HAR

{ int x,y;struct HAR *p;} h[2]; main( )

{ h[0].x=1;h[0].y=2; h[1].x=3;h[1].y=4;

)。

h[0].p=&h[1];h[1].p=h;

printf(\"%d%dn\ } A)12 B)23 C)14 D)32 本题答案为:D 231.

下列程序的输出结果为( #include \"stdio. h\" main( ) { union u { char *name; int age; int income;}s;

s. name =\" WANGLIONG\" ; s. age =28; s. income =1000; printf(\" % dn\" ,s. age); } A)28 B)1000

)。C)0 D)不确定 本题答案为:B 232.

设有如下定义:

struct sk { int n;

float x; } data, *p;

若要使p 指向data 中的n 域,正确的赋值语句是( )。 A)p=&data. n; B)*p=data. n;

C)p=(struct sk*)&data. n; D)p=(struct sk*) data. n; 本题答案为:C 233.

有以下程序

#include struct st

{ int x, y; } data[2]={1,10,2,20}; main( )

{ struct st *p=data;

printf(\"%d,\ 程序的运行结果是( )。 A)10,1

B)20,1 C)10,2 D)20,2 本题答案为:C 234.

有以下程序

#include struct S

{ int a, b; } data[2]={10,100,20,200}; main( )

{ struct S p=data[1]; printf(\"%dn\ }

程序运行后的输出结果是( )。 A)21 B)11 C)20 D)10 本题答案为:A 235.

以下scanf 函数调用语句中对结构体变量成员的引用不正确的是( struct pupil

{ char name[20]; int age; int sex;

)。

} pup[5],*p; p=pup; A)scanf(\"%s\" ,pup[0]. name); B)scanf(\"%d\" ,&pup[0]. age); C)scanf(\"%d\" ,&(p->sex)); D)scanf(\"%d\" ,p->age); 本题答案为:D 236.

在位运算中,操作数每右移一位,其结果相当于( )

A)操作数乘以2 B)操作数除以2 C)操作数除以16 D)操作数乘以16 本题答案为:B 237.

设有以下语句

int a=1, b=2, c; c=a^(b<<2) ;

执行后,c的值为( )。 A)9 B)7 C)8 D)6 本题答案为:A 238.

设有定义语句:char c1=92,c2=92;,则以下表达式中值为零的是( )。

A)c1^c2 B)c1&c2 C)~c2 D)c1|c2 本题答案为:A 239.

变量a中的数据用二进制表示的形式是01011101,变量b中的数据用二进制表

示的形式是11110000。若要求将a的高4位取反,低4位不变,所要执行的运算是( )。 A)a^b B)a|b C)a&b D)a<<4 本题答案为:A 240.

设有以下语句:

char x=3,y=6,z; z=x^y<<2;

则z 的二进制值是( )。 A)00010100 B)00011011 C)00011100 D)00011000 本题答案为:B

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务