C语言选择题

更新时间:2024-01-29 11:48:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

一、单项选择题 (每题1分,共496分) 1. 表示关系x<=y<=z的c语言表达式为 A) (X<=Y)&&(Y<=Z) B) (X<=Y)AND(Y<=Z)

C) (X<=Y<=Z) D) (X<=Y)&(Y<=Z) 【答案】A

2. 下面的函数调用语句中func 函数的实参个数是( )。 func (f2(v1, v2), (v3, v4, v5), (v6, max(v7, v8)));

A)3 B)4 C)5 D)8 【答案】A

3. 合法的数组定义是

A) int a[]=\ B) int a[5]={0,1,2,3,4,5}; C) char s=\ D) char a[]={0,1,2,3,4,5}; 【答案】D

4. 下列叙述中错误的是( )。 A)C 语句必须以分号结束

B)复合语句在语法上被看作一条语句

C)空语句出现在任何位置都不会影响程序运行 D)赋值表达式末尾加分号就构成赋值语句 【答案】C 5. 有以下程序

#include #include main()

{ char str[][20]={\ printf(\ printf(\}

程序运行后的输出结果是

A)9,One*World B)9,One*Dream! C)10,One*Dream! D)10,One*World

【答案】C

6. 有下列结构体说明、变量定义和赋值语句: struct STD

{ char name[10]; int age; char sex; } s[5],*ps; ps=&s[0];

则下列scanf 函数调用语句中错误引用结构体变量成员的是( )。 A)scanf(\ B)scanf(\C)scanf(\ D)scanf(\ 【答案】D

7. 有下列程序: main( )

{ int a[ ]={2,4,6,8,10},y=0,x,*p;

万维试题库系统 第 1 页

p=&a[1];

for(x=1;x<3;x+ +) y+ =p[x]; printf(\}

程序运行后的输出结果是( )。

A)10 B)11 C)14 D)15 【答案】C

8. 下列语句组中,正确的是 A)char *s;s=\ B)char s[7];s=\ C)char *s;s={\}; D)char s[7];s={\}; 【答案】A

9. 有下列程序: main( ) { int k=5;

while(--k) printf(\printf(\}

执行后的输出结果是( )。 A)1 B)2

C)4 D)死循环 【答案】A

10. 若函数中有定义语句:int k;,则

A)系统将自动给k赋初值0 B)这时k中的值无定义 C)系统将自动给k赋初值-1 D)这时k中无任何值

【答案】B

11. 设有数组定义: char array[ ]=\则数组 array所占的空间为 A)4个字节 B)5个字节 C)6个字节 D)7个字节 【答案】C

12. 设x、y、z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32)后,x的值为( ) A.4 B.16 C.32 D.52 【答案】C

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

A)每个C 程序文件中都必须要有一个main( )函数 B)在C 程序中main( )函数的位置是固定的

C)C 程序中所有函数之间都可以相互调用,与函数所处位置无关 D)在C 程序的函数中不能定义另一个函数 【答案】D

14. 有下列程序: #include #define N 5 #define M N+1

万维试题库系统 第 2 页

#define f(x) (x*M) main( ) { int i1,i2; i1=f(2); i2=f(1+1);

printf(\}

程序的运行结果是( )。

A)12 12 B)11 7 C)11 11 D)12 7 【答案】B

15. 下列变量中,哪些是合法的?( )

A.int B._auto_ C.2-or D.x(1) 【答案】B

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

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

for(i=n;i>1;i+ +)f*=i; for(i=n;i> =2;i--)f*=i; 【答案】D

17. 在C 语言中,只有在使用时才占用内存单元的变量,其存储类型是( )。 A)anto 和register B)extern 和register C)auto 和static D)static 和register 【答案】A

18. 已知:char a[20],b[20] ;则以下正确的输入语句是______。 A) gets(“a,b”); B)scanf(\ C)scanf(\ D)gets(\【答案】B

19. 以下C语言用户标识符中,不合法的是

A)_1 B)AaBc C)a_b D)a-b 【答案】D 20. main()

{ char *a[]={\ i; for(i=0;i<4;i++) printf(\}

程序运行后的输出结果是

A)aegi B)dfhk C)dfhk D)abcdefghijk 【答案】A

21. 设变量x 和y 均已正确定义并赋值。下列if 语句中,在编译时将产生错误信息的是 ( )。

A)if(x+ +); B)if(x>y&&y! =0); C)if(x>0) x-- D)if(y<0){;} else y+ +; else x+ +; 【答案】C

万维试题库系统 第 3 页

22. 有下列程序: main( )

{ char p[ ]={'a','bv,'c'},q[ ]=\printf(\};

程序运行后的输出结果是( )。

A)4 4 B)3 3 C)3 4 D)4 3 【答案】C

23. 有下列程序: int fun(int x[ ],int n) { static int sum=0,i;

for(i=0;i

main( )

{ int a[ ]={1,2,3,4,5},b[ ]={6,7,8,9},s=0; s=fun(a,5)+fun(b,4); printf(\}

程序执行后的输出结果是( )。 A)45 B)50 C)60 D)55 【答案】C

24. 有下列程序: #include main( )

{ FILE *fp; int i,k,n;

fp=fopen(\for(i=1;i<6;i+ +) {fprintf(fp, \

if(i%3= =0) fprintf(fp,\}

rewind(fp);

fscanf(fp,\fclose(fp); }

程序运行后的输出结果是( )。

A)0 0 B)123 45 C)1 4 D)1 2 【答案】D

25. 若有以下定义和语句 char c1='b',c2='e';

printf(\则输出结果是( ) A.2,M B.3,E

C.2,E D.输出项与对应的格式控制不一致,

万维试题库系统 第 4 页

输出结果不确定 【答案】B

26. 有下列程序:

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

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

main( )

{ char *s1=\

swap(s1,s2); printf(\}

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

A)123,abc B)abc,123 C)1bc,a23 D)321,cba 【答案】C

27. 设有条件表达式:(EXP)?i+ +:j--,则下列表达式中与(EXP)完全等价的是( )。 A)(EXP= =0) B)(EXP! =0) C)(EXP= =1) D)(EXP! =1) 【答案】B

28. 有下列程序: main( )

{ int a[4][4]={{l,4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1}},i,j,k,t; for(i=0;i<4;i+ +) for(j=0;j<3;j+ +) for(k=j+1;k<4;k+ +)

if(a[j][i]>a[k][i]){t=a[j][i];a[j][i]=a[k][i];a[k][i]=t;} /*按列排序*/ for(i=0;i<4;i+ +)printf(\}

程序运行后的输出结果是( )。 A)1,6,5,7, B)8,7,3,1, C)4,7,5,2, D)1,6,2,1, 【答案】A

29. 程序段:int x=12; double y=3.141593;printf(\的输出结果是 A)123.141593 B)12 3.141593 C)12,3.141593 D)123.1415930 【答案】A 30. 有以下程序

int r=8;

printf(\输出结果是

A)16 B)8 C)4 D)2

【答案】C

31. 若有定义:char *x=\,下列选项中正确运用了strcpy 函数的是( )。 A)char y[10]; strcpy(y,x[4]); B)char y[10]; strcpy(+ +y,&x[1]); C)char y[10],*s; strcpy(s=y+5,x); D)char y[10],*s; strcpy(s=y+1,x+1);

万维试题库系统 第 5 页

【答案】D

32. 设有宏定义:#define IsDIV(k,n) ((k%n==1)?1:0)且变量m已正确定义并赋值, 则宏调用:IsDIV(m,5)&&IsDIV(m,7)为真时所要表达的是 A)判断m是否能被5或者7整除 B)判断m是否能被5和7整除 C)判断m被5或者7整除是否余1 D)判断m被5和7整除是否都余1 【答案】D

33. 若有以下定义和语句char c1='b',c2='e'; printf(\则输出结果是: A) 2,M B) 3,E C)2,E

D) 输出项与对应的格式控制不一致,输出结果不确定 【答案】B

34. 变量a所占内存字节数是 A)4 B) 5 C) 6 union U { char st[4]; int i; long l; };

srtuct A { int c;

union U u; } a;

【答案】C

35. 有下列程序: #include

void WriteStr(char *fn,char *str) { FILE *fp;

fp=fopen(fn,\}

main( )

{ WriteStr(\WriteStr(\}

程序运行后,文件t1.dat 中的内容是( )。 A)start B)end C)startend D)endrt 【答案】B 36. 有以下程序

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

{ int a=3,s;

s=f(a);s=s+f(a);printf(\

万维试题库系统 第 6 页

D) 8

}

int f(int n) { static int a=1; n+=a++; return n; }

程序运行后的输出结果是 A)7 B)8 C)9 D)10

【答案】C

37. 有以下程序 #include #include \

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

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

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

main() {

STU c={\f(c);

printf(\}

程序的运行结果是( )。

A)Qian,f,95,92 B)Qian,m,85,90 C)Zhao,f,95,92 D)Zhao,m,85,90 【答案】A

38. 以下选项中正确的语句组是

A)char s[];s=\ B)char *s;s={\C)char s[10];s=\ D)char *s;s=\【答案】D

39. 有下列程序: main( )

{ char ch[ ]=\pc=ch;printf(\}

程序运行后的输出结果是( )。

A)z B)0 C)元素ch[5]的地址 D)字符y 的地址 【答案】A

40. 有下列程序:

万维试题库系统 第 7 页

#include void fun(int n,int *p) { int f1,f2;

if(n= =1||n= =2) *p=1; else

{ fun(n-1,&f1); fun(n-2,&f2); *p=f1+f2; } }

main( ) { int s;

fun(3,&s); printf(\}

程序的运行结果是( )。

A)2 B)3 C)4 D)5 【答案】A

41. 有以下程序( strcat函数用以连接两个字符串)

#include<stdio.h> #include<string .h> main()

{char a[20]=”ABCD\0EFG\0”,b[]=”IJK”; strcat(a,b);printf(”%s\\n”,a); }

程序运行后的输出结果是

A)ABCDE\\OFG\\OIJK B)ABCDIJK

C)IJK D)EFGIJK 【答案】B

42. 有以下程序

#include main() {

int x=8;

for( ;x>0;x--) {

if(x%3){printf(\printf(\} }

程序的运行结果是( )。

A)7,4,2, B)8,7,5,2, C)9,7,6,4, D)8,5,4,2, 【答案】D

43. 若整型变量a、b、c、d 中的值依次为:1、4、3、2。则条件表达式a

万维试题库系统 第 8 页

C)3 D)4 【答案】A

44. 下列程序执行后的输出结果是______。 A〕 6 B) 8 C) 10 D) 12 #define MA(x) x*(x-1) main()

{int a=1, b= 2 ; printf(\【答案】B

45. 下面程序的输出是( ) main() {

unsigned a=32768; printf(\}

A.a=32768 B.a=32767 C.a=-32767 D.a=-1 【答案】A

46. 下列叙述中错误的是( )。 A)可以通过typedef 增加新的类型

B)可以用typedef 将已存在的类型用一个新的名字来代表 C)用typedef 定义新的类型名后,原有类型名仍有效

D)用typedef 可以为各种类型起别名,但不能为变量起别名 【答案】A

47. 有以下程序 #include main()

{ char a,b,c,d;

scanf(“%c%c”,&a,&b); c=getchar(); d=getchar();

printf(“%c%c%c%c\\n”,a,b,c,d); }

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

则输出结果是

A)1234 B)12 C)12 D)12

3 34 【答案】C

48. 有下列程序: void sort(int a[ ],int n) { int i,j,t;

for(i=0;i<n-1;i+ +) for(j=i+1;j<n;j+ +)

万维试题库系统 第 9 页

if(a[i]<a[j]){ t=a[i]; a[i]=a[j]; a[j]=t;} }

main( )

{ int aa[10]={1,2,3,4,5,6,7,8,9,10},i; sort(aa+2,5);

for(i=0;i<10;i+ +)printf(\printf(\}

程序运行后的输出结果是( )。

A)1,2,3,4,5,6,7,8,9,10, B)1,2,7,6,3,4,5,8,9,10, C)1,2,7,6,5,4,3,8,9,10, D)1,2,9,8,7,6,5,4,3,10, 【答案】C

49. 若有以下定义和语句:

char *s1=\则输出结果是 A) 4 B) 5 C) 9 D) 10 【答案】A

50. 以下不能将s所指字符串正确复制到t所指存储空间的是 A)while(*t=*s){t++;s++;} B)for(i=0;t[i]=s[i];i++);

C)do{*t++=*s++;}while(*s); D)for(i=0,j=0;t[i++]=s[j++];); 【答案】C

51. 有下列程序: #include int a=1; int f(int c)

{ static int a=2; c=c+1;

return (a+ +)+c; }

main( ) { int i,k=0;

for(i=0;i<2;i+ +) { int a=3;k+ =f(a);} k+ =a;

printf(\}

程序的运行结果是( )。

A)14 B)15 C)16 D)17 【答案】A

52. 有以下程序,执行后输出结果是______。 main( )

{ char *p[10]={\ printf(\}

万维试题库系统 第 10 页

A) 2 B) 3 C) 4 D) 5 【答案】A

53. 若有以下语句

Typedef struct S {int g; char h;}T; 以下叙述中正确的是

A)可用S定义结构体变量 B)可用T定义结构体变量 C)S是struct类型的变量 D)T是struct S类型的变量 【答案】B

54. 有以下程序

#include main() {

int s[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i; for(i=0;i<12;i++)c[s[i]]++;

for(i=1;i<5;i++)printf(\printf(\}

程序的运行结果是( )。

A)1 2 3 4 B)2 3 4 4 C)4 3 3 2 D)1 1 2 3 【答案】C

55. 若有以下的定义:

int a[]={1,2,3,4,5,6,7,88,9,10}, *p=a; 则值为3的表达式是 A) p+=2; *(p++); B) p+=2;*++p; C) p+=3; *p++; D) p+=2;++*p; 【答案】A

56. 设有定义:int n1=0,n2,*p=&n2,*q=&n1;,以下赋值语句中与n2=n1;语句等价的是 ( )。

A)*p=*q; B)p=q; C)*p=&n1; D)p=*q; 【答案】A

57. 下列程序执行后的输出结果是:

A) G B) H C)I D)J main()

{int x=?f?; printf(”%c\n”,?A?+(x-?a?+1));} 【答案】A

58. 有下列程序: #include main( )

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

scanf(\c5=getchar( ); c6=getchar( ); putchar(c1);putchar(c2); printf(\}

万维试题库系统 第 11 页

程序运行后,若从键盘输入(从第1 列开始) 123 45678

则输出结果是( )。

A)1267 B)1256 C)1278 D)1245 【答案】D

59. 下列正确的字符串常量是( )。

A)\ B)'abc' C)Olympic Games D)\ 【答案】D

60. 有以下定义,不能给数组a输入字符串的语句是 #include char a[10],*b=a; A) gets(a) B) gets(a[0]) C) gets(&a[0]); 【答案】B 61. 有以下程序

#include void fun(int p) { int d=2; p=d++; printf(\} main()

{ int a=1; fun(a);

printf(\}

程序运行后的输出结果是 A)32 B)12 C)21 D)22

D) gets(b);

【答案】C

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

{ int c=35; printf(\A)0 B)70 C)35 D)1 【答案】C

63. 有以下程序段

int k=0

while(k=1)k++;

while 循环执行的次数是______。 A) 无限次 B) 有语法错,不能执行 【答案】A

64. 65. 以下非法的赋值语句是______。

C) 一次也不执行 D) 执行1次

万维试题库系统 第 12 页

A) n=(i=2,++i); B) j++; C) ++(i+1); D) x=j>0; 【答案】C

65. 下列关于逻辑运算符两侧运算对象的叙述中正确的是( )。

A)只能是整数0 或1 B)只能是整数0 或非0 整数 C)可以是结构体类型的数据 D)可以是任意合法的表达式 【答案】D

66. 有以下程序

#include main()

{int a=1,b=0; if(!a) b++;

else if(a==0)if(a)b+=2; else b+=3;

printf(”%d\n”,b); }

程序运行后的输出结果是

A)0 B)1 C)2 D)3 【答案】A

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

A)在程序中凡是以“#”开始的语句行都是预处理命令行 B)预处理命令行的最后不能以分号表示结束 C)#define MAX 是合法的宏定义命令行

D)C 程序对预处理命令行的处理是在程序执行的过程中进行的 【答案】C

68. 有以下程序

#include main()

{ int a,b,c=246; a=c/100%9; b=(-1)&&(-1);

printf(\}

输出结果是: A) 2,1 B) 3,2 C) 4,3 D) 2,-1

【答案】A

69. 若有定义语句:int a=3,b=2,c=1;,以下选项中错误的赋值表达式是

A)a=(b=4)=3; B)a=b=c+1; C)a=(b=4)+c; D)a=1+(b=c=4);

【答案】A

70. 有下列程序: main( )

{ char *p[ ]={\,\int i,j;long num=0;

万维试题库系统 第 13 页

for(i=0;i<2;i+ +) { j=0;

while(p[i][j]! = '\\0')

{ if((p[i][j]- '0')%2)num=10*num+p[i][j]- '0'; j+ =2; } }

printf(\}

程序执行后的输出结果是( )。 A)35 B)37 C)39 D)3975 【答案】D

71. 假定w、x、y、z、m均为int型变量,有如下程序段:

w=1; x=2; y=3; z=4;

m=(w

72. 已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1&&y+z/2的值是______。

A) 6 B) 0 C) 2 D) 1 【答案】D

73. 设有定义:int a=2,b=3,c=4;,则下列选项中值为0 的表达式是( )。 A)(!a= =1)&&(!b= =0) B)(a<b)&&! c ‖ 1

C)a && b D)a‖(b+b)&&(c-a) 【答案】A

74. 表达式a+=a-=a=9的值是

A)9 B)-9 C)18 D)0 【答案】D

75. 有下列程序:

int add (int a,int b) {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); 【答案】C

76. 以下叙述中正确的是

A)C 程序中的注释只能出现在程序的开始位置和语句的后面( )。 B)C 程序书写格式严格,要求一行内只能写一个语句 C)C 程序书写格式自由,一个语句可以写在多行上

万维试题库系统 第 14 页

D)用C 语言编写的程序只能放在一个程序文件中 【答案】C

77. 与语句\等价语句是______。 A)while(x= =0) B)while(x!=0) C)while(x!=1) D)while(~x) 【答案】A

78. 有下列程序: #define f(x)=(x*x) main( ) { int i1,i2;

i1=f(8)/f(4); i2=f(4+4)/f(2+2); prinft(\,%d\\n\}

程序运行后的输出结果是( )。

A)64,28 B)4,4 C)4,3 D)64,64 【答案】C 79. 有以下程序

#include main()

{ char c1,c2; c1='A'+'8'-'4'; c2='A'+'8'-'5';

printf(\}

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

【答案】A

80. 有下列程序: fun(char p[ ][10]) { int n=0,i;

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

if(p[i][0]= = 'T') n+ +; return n; }

main( )

{ char str[ ][10]={\printf(\}

程序执行后的输出结果是( )。 A)1 B)2 C)3 D)0 【答案】B

81. 以下选项中,能用作数据常量的是

A)o115 B)0118 C)1.5e1.5 D)115L 【答案】D

万维试题库系统 第 15 页

82. 以下程序的输出结果是( ) main( ) {

int k=17;

printf(\}

A.17,021,0x11 B.17,17,17 C.17,0x11,021 D.17,21,11 【答案】D

83. 假定有以下变量定义:

int k=7,x=12;

则能使值为3 的表达式是 A)x%=(k%=5) B)x%=(k-k%5) C)x%=k-k%5 D)(x%=k)-(k%=5) 【答案】D

84. 下列叙述中错误的是( )。

A)在C 语言中,对二进制文件的访问速度比文本文件快 B)在C 语言中,二进制文件以二进制代码形式存储数据 C)语句FILE fp;定义了一个名为fp 的文件指针 D)C 语言中的文本文件以ASCⅡ码形式存储数据 【答案】C

85. 有下列程序: main( ) { int x,y,z; x=y=1;

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

printf(\}

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

86. 下列叙述中错误的是( )。

A)C 语言源程序经编译后生成后缀为.obj 的目标程序

B)C 程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件 C)用C 语言编写的程序称为源程序,它以ASCII 代码形式存放在一个文本文件中 D)C 语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令 【答案】D

87. 已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项

中正确的输入语句是______。

A) scanf(\ B) scanf(\ C) scanf(\ D) scanf(\ 【答案】C

88. 若有下列定义和语句: union data

万维试题库系统 第 16 页

{ int i; char c; float f; } x; int y;

则下列语句正确的是( )。

A)x=10.5; B)x.c=101;

C)y=x; D)printf(\ 【答案】B

89. 下列叙述中错误的是( )。

A)C 程序中的#include 和#define 行均不是C 语句 B)除逗号运算符外,赋值运算符的优先级最低 C)C 程序中,j+ +;是赋值语句

D)C 程序中,+、-、*、/、%号是算术运算符,可用于整型和实型数的运算 【答案】D

90. 有下列程序: #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

91. 以下选项中不合法的标识符是( )。 A)print B)For C)&a D)-00 【答案】C

92. 若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是

A)1 B)0 C)2 D)不知道a的值,不能确定 【答案】A

93. 下列不能定义的用户标识符是( )。

A)Main B)_0

C)_int D)sizeof 【答案】D

94. 有下列程序: main( )

{ int a[4][4]={{1,4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1}},i,k,t; for(i=0;i<3;i+ +)

for(k=i+l;k<4;k+ +)if(a[i][i]

程序运行后的输出结果是( )。

A)6,2,1,1, B)6,4,3,2,

万维试题库系统 第 17 页

C)1,1,2,6, D)2,3,4,6, 【答案】B

95. 当执行以下程序段时

A)循环体将执行一次 B)循环体将执行两次 C)循环体将执行无限次 D)系统将提示有语法错误 x=-1;

do { x=x*x;} while(!x); 【答案】A

96. 以下程序的输出结果是:

A)10 10 B)12 12 C)11 10 D)11 13 main()

{ int a=12,b=12;

printf(“%d %d\\n”,--a,++b); }

【答案】D

97. 有下列程序: main( ) { union

{ char ch[2]; int d; }s;

s.d=0x4321;

printf(\}

在16 位编译系统上,程序执行后的输出结果是( )。 A)21,43 B)43,21 C)43,00 D)21,00 【答案】A

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

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

for( i= 0 ; i< 9 ; i++) p[i]= i+1; printf(\}

A)3 B)6 C)9 D)随机数 【答案】B

99. 在以下一组运算符中,优先级最高的运算符是

A) <= B) = C) % D) && 【答案】C

100. 下列关于函数的叙述中正确的是( )。

A)每个函数都可以被其他函数调用(包括main 函数) B)每个函数都可以被单独编译 C)每个函数都可以单独运行

万维试题库系统 第 18 页

D)在一个函数内部可以定义另一个函数 【答案】B

101. 有以下程序 #include main()

{int b [3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1; for(i=0;i<3;i++)

for(j=i;j<=1;j++) t+=b[i][b[j][i]]; printf(\ }

程序运行后的输出结果是

A)1 B)3 C)4 D)9

【答案】C

102. 设有 “char s[]=\,则以下叙述中正确的是______。

A) 数组s的内容与指针变量p中内容相同 B) 数组s的长度与strlen(p)的值相同 C) p[5]的值等于s[5]的值 D) sizeof(s)等于sizeof(*p) 【答案】D

103. 以下非法的赋值语句是______。

A) n=(i=2,++i); B) j++; C) ++(i+1); D) x=j>0; 【答案】C

104. 有下列程序: 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(\}

程序运行后的输出结果是( )。

A)6 B)7 C)5 D)9 【答案】A

105. 有以下程序 #include #define N 8

void fun(int *x,int i) {*x=*(x+i);} main()

{int a[N]={1,2,3,4,5,6,7,8},i; fun(a,2);

for(i=0;i<4;i++) {printf(\}

万维试题库系统 第 19 页

printf(\ }

程序运行后的输出结果是

A)1313 B)2234 C)3234 D)1234 【答案】C

106. 有下列程序: void f(int b[ ]) { int i;

for(i=2;i<6;i+ +) b[i]*=2; }

main( )

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

for(i=0;i<10,i+ +)printf(\}

程序运行后的输出结果是( )。

A)1,2,3,4,5,6,7,8,9,10, B)1,2,6,8,10,12,7,8,9,10, C)1,2,3,4,10,12,14,16,9,10, D)1,2,6,8,10,12,14,16,9,10, 【答案】B

107. 设a和b均为double型常量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是______。

A) 6.500000 B) 6 C) 5.500000 D) 6.000000 【答案】D

108. 执行下列语句的结果为( )。 for(i=0;i<5;i++) {if(i==2) continue; printf(“%d”,i); }

A) 01 B) 0134 C) 01234 D) 不打印 【答案】B

109. 下列叙述中错误的是( )。

A)对于double 类型数组,不可以直接用数组名对数组进行整体输入或输出 B)数组名代表的是数组所占存储区的首地址,其值不可改变

C)在程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越 界”的出错信息

D)可以通过赋初值的方式确定数组元素的个数 【答案】C

110. 有下列程序: main( )

{ char a1='M',a2='m'; printf(\}

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

A)程序输出大写字母M B)程序输出小写字母m C)格式说明符不足,编译出错 D)程序运行时产生出错信息

万维试题库系统 第 20 页

【答案】B

111. 设 int k=2;,则下面的while循环共执行( )。 while(k!=0)

{printf(“%d”,k); k--;}

A) 无限多次 B)0次 C)1次 D)2次 【答案】D

112. 以下选项中,能用作用户标识符的是 A)void B)8_8 C)_0_ D)unsigned 【答案】C

113. 有以下程序 #include(stdio.h> main()

{int a=l;b=2;

for(;a<8;a++) {b+=a;a+=2;} printf(\,%d\\n\,a,b); }

程序运行后的输出结果是

A)9,18 B)8,11 C)7,11 D)10,14 【答案】D

114. 有一个名为init.txt 的文件,内容如下: #define HDY(A,B) A/B

#define PRINT(Y) printf(\有下列程序: #include \main( )

{ int a=1,b=2,c=3,d=4,k; k=HDY(a+c,b+d); PRINT(k); }

下列针对该程序的叙述正确的是( )。 A)编译出错 B)运行出错

C)运行结果为y=0 D)运行结果为y=6 【答案】D

115. 设有如下说明: typedef struct ST

{ long a; int b; char c[2]; } NEW; 则下列叙述中正确的是( )。

A)以上的说明形式非法 B)ST 是一个结构体类型 C)NEW 是一个结构体类型名 D)NEW 是一个结构体变量 【答案】C

116. 有以下程序

#include main()

{ int m=1,n=2,*p=&m,*q=&n,*r;

万维试题库系统 第 21 页

r=p;p=q;q=r;

printf(\}

程序运行后的输出结果是

A)1,2,1,2 B)1,2,2,1 C)2,1,2,1 D)2,1,1,2

【答案】B

117. 下列数组定义中错误的是( )。 A)int x[ ][3]={0};

B)int x[2][3]={{l,2},{3,4},{5,6}}; C)int x[ ][3]={{l,2,3},{4,5,6}}; D)int x[2][3]={l,2,3,4,5,6}; 【答案】B

118. C语言中用于结构化程序设计的三种基本结构是

A) 顺序结构、选择结构、循环结构 B) if、switch、break C) for、while、do-while D) if、for、continue 【答案】A

119. 下列选项中,值为1 的表达式是( )。 A)1-'0' B)1-'\\0' C)'1'-0 D)'\\0'-'0' 【答案】B

120. 以下程序段中,与语句: 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

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

{ int a[3][3],*p,i; p=&a[0][0]; for(i=0;i<9;i+ +) p[i]=i;

for(i=0;i<3;i+ +) printf(\A)0 1 2 B)1 2 3 C)2 3 4 D)3 4 5 【答案】D

122. 设有如下的变量定义: int i =8 ,a,b ;

double x=1.42,y=5.2;

万维试题库系统 第 22 页

则以下符合C语言语法的表达式是( ) A.a+=a-=(b=4)*(a=3) B.x%(-3) C.a=a*3=2 D.y=float(i) 【答案】A

123. 有以下程序

#include #define f(x) x*x*x main()

{ int a=3,s,t;

s=f(a+1);t=f((a+1)); printf(\}

程序运行后的输出结果是

A)10,64 B)10,10 C)64,10 D)64,64

【答案】A

124. 设有定义:char p[ ]={'1', '2', '3'}, *q=p;,下列不能计算出一个char 型数据所占字节数 的表达式是( )。

A)sizeof(p) B)sizeof(char) C)sizeof(*q) D)sizeof(p[0]) 【答案】A

125. 有以下程序,执行后输出结果是 main( )

{ char *p[10]={\ printf(\} A) 2 B) 3 C) 4 D) 5 【答案】A

126. 下列程序的输出结果是( )。 main( ) { int a=1,b;

for(b=1;b<=10;b+ +) { if(a>=8) break; if(a%2= =1)

{a+ =5; continue;} a=3; }

printf(\}

A)3 B)4 C)5 D)6 【答案】B

127. 若有以下说明和定义,以下叙述正确的是______。 typedef int *INTEGER INTEGER p,*q;

万维试题库系统 第 23 页

A) p是int型变量 B) p是基类型为int的指针变量 C) q是基类型为int的指针变量 D) 程序中可用INTEGER代替int类型名 【答案】B

128. 有以下程序 #include main()

{ FILE *f;

f=fopen(\ fprintf(f,\ fclose(f); }

若文本文件filea.txt中原有内容为:hello,则运行以上程序后,文件filea.txt的内容为 A)helloabc B)abclo C)abc D)abchello

【答案】C

129. 有下列程序段: int j;float y;char name[50] ;

scanf(\

当执行上述程序段,从键盘上输入55566 7777abc 后,y 的值为( )。 A)55566.0 B)566.0 C)7777.0 D)566777.0 【答案】B

130. 有以下程序 #include main()

{ FILE *pf;

char *s1=\pf=fopen(\fwrite(s2,7,l,pf);

rewind(pf); /*文件位置指针回到文件开头*/ fwrite(s1,5,1,pf); fclose(pf); }

以上程序执行后abc.dat 文件的内容是( )。

B)China B)Chinang C)ChinaBeijing D)BeijingChina 【答案】B

131. 有下列程序: fun (int x,int y) { static int m=0,i=2;

i+ =m+1; m=i+x+y; return m; }

main ( )

{ int j=1, m=1, k;

k=fun(j,m); printf(\k=fun(j,m); printf(\}

万维试题库系统 第 24 页

执行后的输出结果是( )。 A)5,5 B)5,11 C)11,11 D)11,5 【答案】B

132. 有以下程序

#include

#define S(x) 4*(x)*x+1 main() { int k=5,j=2; printf(\ }

程序运行后的输出结果是

A)197 B)143 C)33 D)28

【答案】B

133. 已知:int i=0,j=1,*p=&i,*q=&j;错误语句是___ ___。 A)i=*&q B)i=*&j C)p=&*&i D) j=*p++; 【答案】A

134. 若有定义:int x=0,*p=&x;,则语句printf(\;的输出结果是( )。 A)随机值 B)0 C)x 的地址 D)p 的地址 【答案】B

135. 以下程序段的输出结果是______。 int a=0,b=4,k=2; k=a+1>0||(++a<0)&&(!(b--<=0)); printf(“%d,%d,%d”,k,a,b); A) 1,1,3 B) 1,0,4 C) 1,0,3 D) 1,1,4 【答案】B

136. 当把四个表达式用作if 语句的控制表达式时,有一个选项与其他三个选项含义不同, 这个选项是( )。

A)k%2 B)k%2= =1 C)(k%2) ! =0 D)!k%2= =1 【答案】D

137. 下列选项中,合法的一组C 语言数值常量是( )。 A)028 B)12.

.5e-3 0xa23 .0xf 4.5e0 C).177 D)0x8A

4e1.5 10,000 0abc 3.e5 【答案】B 138. 有以下程序

万维试题库系统 第 25 页

#include struct S

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

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

程序运行后的输出结果是

A)10 B)11 C)20 D)21 【答案】D

139. 有下列程序: main( )

{ char s[ ]=\s+ =2;

printf(\}

执行后的结果是( )。

A)输出字符a 的ASCII 码 B)输出字符c 的ASCII 码 C)输出字符c D)程序出错 【答案】D

140. 下列不合法的数值常量是( )。 A)011 B)1e1 C)8.0E0.5 D)0xabcd 【答案】C

141. 下列程序的输出结果是( )。 #define P 3

void F(int x){ return(P*x*x); } main( )

{ printf(\

A)192 B)29

C)25 D)编译出错 【答案】D

142. 下列定义变量的语句中错误的是( )。 A)int _int; B)double int_; C)char For; D)float US$; 【答案】D

143. 计算机能直接执行的程序是( )。

A)源程序 B)目标程序 C)汇编程序 D)可执行程序 【答案】D

144. 设有下列定义和语句 char str[20]=\p=str;

万维试题库系统 第 26 页

则下列叙述中正确的是( )。 A)*p 与str[0]的值相等 B)str 与p 的类型完全相同

C)str 数组长度和p 所指向的字符串长度相等

D)数组str 中存放的内容和指针变量p 中存放的内容相同 【答案】A

145. 有以下程序 #include

void fun(int *s,int n1,int n2) {

int i,j,t; i=n1;j=n2;

while(i

main() {

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++)printf(\}

程序的运行结果是( )。

A)0987654321 B)4321098765 C)5678901234 D)0987651234 【答案】C

146. 若执行以下程序时从键盘上输入9,则输出结果是______。 A) 11 B) 10 C) 9 D) 8 main() { int n;

scanf(\

if(n++<10) printf(\else printf(\}

【答案】B

147. 若i,j已定义为int类型,则以下程序段中内循环体的总的执行次数是

for (i=5;i;i--)

for(j=0;j<=4;j++){...} A) 20 B) 25 C) 24 D) 30 【答案】B

148. 若i和k都是int类型变量,有以下for语句

for(i=0,k=-1;k=1;k++) printf(\ 下面关于语句执行情况的叙述中正确的是 A)循环体执行两次 B)循环体执行一次

万维试题库系统 第 27 页

C)循环体一次也不执行 D)构成无限循环

【答案】D

149. 有下列程序: #include #include

void fun(char s[ ][10],int n) { char t; int i,j; for(i=0;i

/* 比较字符串的首字符大小,并交换字符串的首字符*/ if(s[i][0]>s[j][0]){t=s[i][0];s[i][0]=s[j][0];s[j][0]=t;} }

main( )

{ char ss[5][10]={\fun(ss,5); printf(\}

程序的运行结果是( )。

A)xy,aaaacc B)aaaacc,xy C)xcc,aabcc D)acc,xabcc 【答案】D

150. 在下列给出的表达式中,与while(E)中的(E)不等价的表达式是( )。 A)(!E= =0) B)(E>0‖E<0) C)(E= =0) D)(E! =0) 【答案】C

151. 能正确表示a和b同时为正或同时为负的逻辑表达式是( ) A.(a>=0||b>=0)&&(a<0||b<0) B.a>=0&&b>=0)&&(a<0&&b<0) C.(a+b>0)&&(a+b<=0) D.a*b>0 【答案】D

152. 设有定义double a[10],*s=a;,以下能够代表数组元素a[3]的是 A)(*s)[3] B)*(s+3) C)*s[3] D)*s+3 【答案】B

153. 有下列程序段 int n,t=1,s=0; scanf(\

do{ s=s+t;t=t-2; }while(t! =n);

为使此程序段不陷入死循环,从键盘输入的数据应该是( )。 A)任意正奇数 B)任意负偶数 C)任意正偶数 D)任意负奇数 【答案】D

154. 有以下程序

#include main()

{ int a=1,b=0;

printf(\ printf(\

万维试题库系统 第 28 页

}

程序运行后的输出结果是

A)0,0 B)1,0 C)3,2 D)1,2

【答案】D

155. 有以下程序

#include #include main()

{ char a[10]=\

printf(\}

程序运行后的输出结果是

A)7,4 B)4,10 C)8,8 D)10,10

【答案】B

156. 有以下程序段 int a, b, c;

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

printf(\n”, a, b, c); 程序的输出结果是( )。

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

157. 以下选项中合法的用户标识符是______。

A) long B) _2Test C) 3Dmax D) A.dat 【答案】B

158. 有以下程序

#inctude<stdio.h> #include<stdlib.h> Main()

{int *a,*b,*c;

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

printf(“%d,%d,%d\n”,*a,*b,*c); }

程序运行后的输出结果是

A)3,3,3 B)2,2,3 C)1,2,3 D)1,1,3 【答案】A

159. 有下列程序: #include int fun(char s[ ]) { int n=0;

while(*s<='9'&&*s>='0') {n=10*n+*s-'0';s+ +;} return(n);

万维试题库系统 第 29 页

}

main( )

{ char s[10]={'6','1','*','4','*','9','*','0','*'}; printf(\}

程序的运行结果是( )。

A)9 B)61490 C)61 D)5 【答案】B

160. 有以下程序 #include

void fun(char *c,int d) {*c=*c+1;d=d+1; printf(\ main()

{char b='a',a='A';

fun(&b,a);printf(\,a); }

程序运行后的输出结果是

A)b,B,b,A B)b,B,B,A C)a,B,B,a D)a,B,a,B 【答案】A

161. 以下程序的输出结果是

main()

{ char ch[3][5]={\printf(\\\\\\\}

A) \B) \【答案】B

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

A)float *p=1024; B)int *p=(float)x; C)float p=&x; D)float *p=&x; 【答案】D

163. 有以下程序

#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;

万维试题库系统 第 30 页

printf(\ }

程序运行后的输出结果是

A)3 B)6 C)8 D)12

【答案】B

164. 已知:int i=0,j=1,*p=&i,*q=&j;错误语句是______。 A) i=*&q B) i=*&j C) p=&*&i D) j=*p++; 【答案】A

165. 设有定义:int k=1,m=2; float f=7;则下列选项中错误的表达式是( )。 A)k=k>=k B)-k++

C)k%int(f) D)k>=f>=m 【答案】C

166. 若要求定义具有10 个int 型元素的一维数组a,则下列定义语句中错误的是( )。 A)#define N 10 B)#define n 5

int a [N]; int a [2*n]; C)int a [5+5]; D)int n=10,a [n]; 【答案】D

167. 有以下程序 #include main()

{ int a1,a2; char c1,c2;

scanf(\ printf(\}

若通过键盘输入,使得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

168. 有以下程序,输出结果是

main() { int i, j;

for(j=10;j<11;j++)

{for(i=9;i=j-1)printf(\} }

A) 11 B) 10 C) 9 【答案】B

169. 有下列程序: main( )

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

D) 10 11

万维试题库系统 第 31 页

for(i=0;i<9;i+ =2)s+ =*(t+i); printf(\}

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

A)45 B)20 C)25 D)36 【答案】C

170. 有下列程序: main( )

{ int k=5,n=0; while(k>0)

{ switch(k)

{ default:break; case 1: n+ =k; case 2:

case 3: n+ =k; } k--; }

printf(\}

程序运行后的输出结果是( )。

A)0 B)4 C)6 D)7 【答案】D

171. 设有下列定义: union data

{int d1; float d2;}demo;

则下列叙述中错误的是( )。

A)变量demo 与成员d2 所占的内存字节数相同 B)变量demo 中各成员的地址相同 C)变量demo 和各成员的地址相同

D)若给demo.d1 赋99 后,demo.d2 中的值是99.0 【答案】D

172. 若有以下定义和语句: int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则不能表示a数组元素的表达式是 A) *p B) a[10] C) *a D) a[p-a] 【答案】B

173. (39)有以下程序

#include main()

{ unsigned char a=8,c; c=a>>3; printf(\

万维试题库系统 第 32 页

}

程序运行后的输出结果是

A)32 B)16 C)1 D)0

【答案】C

174. 在C语言中,对于存储类型为 的变量,只有在使用它们时才占用内存单元。

A)register和static B)static和auto C)register和extern D)auto和register 【答案】D

175. 程序中若有下列说明和定义语句: char fun(char *); main( )

{ char *s=\… }

下列选项中对fun()函数的正确调用语句是( )。 A)(*fl)(a); B)*fl(*s); C)fun(&a); D)ch=*fl(s); 【答案】A

176. 有下列函数: int fun(char*s) { char *t=s; while(*t+ +); return(t-s); }

该函数的功能是( )。

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

177. 有以下程序 #include #include \

void fun(char *s[],int n) {

char *t;int i,j; for(i=0;i

if(strlen(s[i])>strlen(s[j])) {t=s[i];s[i]=s[j];s[j]=t;} }

main() {

char *ss[]={\fun(ss,5);printf(\}

万维试题库系统 第 33 页

程序的运行结果是( )。

A)xy,aaaacc B)aaaacc,xy C)bcc,aabcc D)aabcc,bcc 【答案】A

178. 设有如下定义, 若有p=&data;,则对data中的a域的正确引用是 struct sk

{int a;float b;}data,*p; A) (*p).data.a B) (*p).a C) p->data.a D) p.data.a 【答案】B

179. 以下程序段完全正确的是

A)int *p; scanf(\&p); B)int *p; scanf(“%d”,p);

C)int k, *p=&k; scanf(\); D)int k, *p:; *p= &k; scanf(“%d”,p); 【答案】C

180. 若有定义int(*Pt)[3];,则下列说法正确的是 A)定义了基类型为int的三个指针变量

B)定义了基类型为int的具有三个元素的指针数组pt C)定义了一个名为*pt、具有三个元素的整型数组

D)定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组 【答案】D

181. 以下程序的输出结果是

main()

{ int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1; for(i=0;i<3;i++)

for(j=i;j<=i;j++) t=t+b[i][b[j][j]]; printf(\}

A) 3 B) 4 C) 1 D) 9 【答案】B

182. 有下列程序段 struct st

{ int x;int *y;}*pt;

int a[ ]={l,2},b[ ]={3,4}; struct st c[2] = {10,a,20,b}; pt=c;

下列选项中表达式的值为11 的是( )。 A)*pt? >y B)pt? >x C)+ +pt? >x D)(pt+ +)->x 【答案】C

183. 下列选项中,不能作为合法常量的是( )。

A)1.234e04 B)1.234e0.4 C)1.234e+4 D)1.234e0 【答案】B

184. 下列函数的功能是

fun(char *a,char *b)

万维试题库系统 第 34 页

{ while((*b=*a)!='\\0'){a++;b++;} } A)将a所指字符串赋给b所指空间 B)使指针b指向a所指字符串

C)将a所指字符串和b所指字符串进行比较 D)检查a和b所指字符串中是否有'\\0'

【答案】A

185. 阅读以下程序:程序运行后,如果从键盘上输人5,则输出结果是

main() { int x;

scanf(\

if(x--<5) printf(\else printf(\} A) 3 B) 4 C) 5 D) 6 【答案】B

186. 若有定义语句:char s[3][10],(*k)[3],*p;,则以下赋值语句正确的是

A)p=s; B)p=k; C)p=s[0]; D)k=s;

【答案】C

187. 若变量已正确定义,有下列程序段: i=0;

do printf(\printf(\

其输出结果是( )。

A)0,0 B)0,1

C)1,1 D)程序进入无限循环 【答案】B

188. 以下叙述中正确的是______。

A)构成C程序的基本单位是函数 B) 可以在一个函数中定义另一个函数

C)main()函数必须放在其它函数之前 D) 所有被调用的函数一定要在调用之前进 【答案】A

189. 下列叙述中正确的是:

A) C语言编译时不检查语法 B) C语言的子程序有过程和函数两种 C) C语言的函数可以嵌套定义 D) C语言所有函数都是外部函数 【答案】D

190. 有以下程序 #include main()

{ int a=5,b=1,t;

t=(a<<2)|b; printf(\}

程序运行后的输出结果是

A)21 B)11 C)6 D)1 【答案】A

万维试题库系统 第 35 页

191. 下列能正确定义字符串的语句是( )。

A)char str[ ]={'\\064'}; B)char str=\

C)char str=\ D)char str[ ]=\ 【答案】D

192. 在C语言中,不正确的int类型的常数是( ) A.32768 B.0 C.037 D.0xAF 【答案】A

193. 有以下程序

#include<stdio.h> int fun()

{static int x=1; x+=1;return x; }

main()

{int i,s=1;

for(i=1;i<=5;i++)s+=fun(); printf(”%d\n”,s); }

程序运行后的输出结果是

A)11 B)21 C)6 D)120 【答案】B

194. 以下选项中不能作为C 语言合法常量的是( )。

A)'cd' B)0.1e+6 C)\ D)'\\011' 【答案】A

195. 执行下列程序后,test.txt 文件的内容是(若文件能正常打开)( )。 #include main( ) { FILE *fp;

char *s1=\

if((fp=fopen(\{printf(\\\n\

fwrite(s1,7,1,fp); /*把从地址s1 开始的7 个字符写到fp 所指文件中*/ fseek(fp,0L,SEEK_SET); /*文件位置指针移到文件开头*/ fwrite(s2,5,1,fp); fclose(fp); }

A)Basican B)BasicFortran C)Basic D)FortranBasic 【答案】A

196. 有下列程序:

void change (int k[ ] ){k[0]=k[5];} main( )

{ int x[10]={1,2,3,4,5,6,7,8,9,10},n=0;

万维试题库系统 第 36 页

while (n<=4) {change(&x[n]);n+ +;} for(n=0;n<5;n+ +) printf(\printf(\}

程序运行后输出的结果是( )。

A)6 7 8 9 10 B)1 3 5 7 9 C)1 2 3 4 5 D)6 2 3 4 5 【答案】A

197. 表达式:(int)((double)9/2)-(9)%2的值是 A)0 B)3 C)4 D)5

【答案】B

198. 在C 语言中,函数返回值的类型最终取决于( )。 A)函数定义时在函数首部所说明的函数类型 B)return 语句中表达式值的类型

C)调用函数时主调函数所传递的实参类型 D)函数定义时形参的类型 【答案】A

199. 以下程序的输出结果是( ) main( ) {

int a=12,b=12;

printf(\}

A.10 10 B.12 12 C.11 10 D.11 13 【答案】D

200. 执行以下程序段后,w 的值为( )。 int w='A', x=14, y=15; w=((x || y)&&(w<'a'));

A)-1 B)NULL C)l D)0 【答案】C

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

printf(\ 其输出结果是( )。

A)程序段有语法错 B)3,5,3 C)3,5,5 D)3,5,7 【答案】B

202. 以下选项中合法的标识符是

A)1_1 B)1-1 C)_11 D)1_ _ 【答案】C

203. 下列叙述中错误的是( )。

A)用户所定义的标识符允许使用关键字

万维试题库系统 第 37 页

B)用户所定义的标识符应尽量做到“见名知意” C)用户所定义的标识符必须以字母或下划线开头

D)用户定义的标识符中、大、小写字母代表不同标识 【答案】A

204. 有下列程序: main( )

{ unsigned char a=2,b=4,c=5,d; d=a|b; d&=c; printf(\

程序运行后的输出结果是( )。 A)3 B)4 C)5 D)6 【答案】B

205. 设有定义:char s[81];int i=0;,以下不能将一行(不超过80个字符)带有空格 的字符串正确读入的语句或语句组是 A)gets(s);

B)while((s[i++]=getchar())!='\\n');s[i]='\\0'; C)scanf(\

D)do{scanf(\ 【答案】C

206. 以下不构成无限循环的语句或语句组是( )。 A)n=0; B)n=0; do {++n;} while (n<=0); while (1) {n++;}

C)n=10; D)for(n=0, i=1; ;i++)n+=i wile (n); {n--;} 【答案】C

207. 设有定义: int a; float b; 执行scanf(\语句时,若从键盘输入 876543.0,a 和b 的值分别是( )。

A)876 和543.000000 B)87 和6543.000000 C)87 和543.000000 D)76 和543.000000 【答案】B

208. 设int x=10,y=0,z;下面可执行z=++x;的语句是( )。 A) if(x<=y) z=++x; B) if(y=x) z=++x; C) if(y) z=++x; D) if(!x) z=+x; 【答案】B

209. 设有变量说明\ 执行语句m=(*ptr)*(*(ptr+2))*(*(ptr+4));后,m的值为______。 A)15 B)48 C) 24 D) 60 【答案】A

210. 下列程序的输出结果是( )。 void f(int *x, int *y) { int t;

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

main( )

{ int a[8]={1,2,3,4,5,6,7,8},i,*p,*q;

万维试题库系统 第 38 页

p=a;q=&a[7]; while(p

{ f(p,q); p+ +; q--;}

for (i=0;i<8;i+) printf(\}

A)8,2,3,4,5,6,7,1 B)5,6,7,8,1,2,3,4 C)1,2,3,4,5,6,7,8 D)8,7,6,5,4,3,2,1 【答案】D

211. 有以下程序段

int k=0

while(k=1)k++;

while 循环执行的次数是 A) 无限次 B) 有语法错,不能执行 C) 一次也不执行 D) 执行1次 【答案】A

212. 以下选项中能表示合法常量的是 A)整数:1,200 B)实数:1.5E2.0 C )字符斜杠:?\\? D)字符串:\ 【答案】D

213. 若有定义语句:int a[3][6];,按在内存中的存放顺序,a 数组的第10 个元素是( )。 A)a[0][4] B)a[1][3] C)a[0][3] D)a[1][4] 【答案】B

214. 下列选项中,能正确定义数组的语句是 A)int num[0..2008]; B)int num[];

C)int N=2008; D)#define N 2008 int num[N]; int num[N];

【答案】D 215. 有以下程序

#include main()

{ char a[30],b[30]; scanf(\ gets(b);

printf(\ }

程序运行时若输入: how are you? I am fine<回车> 则输出结果是

万维试题库系统 第 39 页

A)how are you? B)how

I am fine are you? I am fine C)how are you? I am fine D) how are you?

【答案】B 216. 有以下程序

#include<stdio.h> void f(int *p); main()

{int a[5]={1,2,3,4,5},*r=a; f(r);printf(”%d\\n”;*r); }

void f(int *p)

{p=p+3;printf(”%d,”,*p);} 程序运行后的输出结果是

A)1,4 B)4,4 C)3,1 D)4,1

【答案】D

217. 下列关于typedef 的叙述错误的是( )。 A)用typedef 可以增加新类型

B)typedef 只是将已存在的类型用一个新的名字来代表

C)用typedef 可以为各种类型说明一个新名,但不能用来为变量说明一个新名 D)用typedef 为类型说明一个新名,通常可以增加程序的可读性 【答案】A

218. 有以下程序

#include main()

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

printf(\}

程序运行后的输出结果是 A)3 B)5 C)7 D)9

【答案】A

219. 若有以下定义 int x[10],*pt=x;

则对数组元素的正确引用是

A)*&x[10] B)*(x+3) C)*(pt+10) D)pt+3

万维试题库系统 第 40 页

【答案】B

220. 设有以下语句: typedef struct TT

{ char c; int a[4]; } CIN;

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

A)可以用TT 定义结构体变量 B)TT 是struct 类型的变量 C)可以用CIN 定义结构体变量 D)CIN 是struct TT 类型的变量 【答案】C

221. 有以下定义语句,编译时会出现编译错误的是

A) char a='a'; B) char a='\\n'; C) char a='aa'; D) char a='\\x2d';

【答案】C

222. 若在定义语句:int a,b,c,*p=&c;之后,接着执行下列选项中的语句,则能正确执行的 语句是( )。

A)scanf(\ B)scanf(\C)scanf(\ D)scanf(\ 【答案】C 223. 有以下程序

#include main() { int x=011; printf(\ }

程序运行后的输出结果是

A)12 B)11 C)10 D)9

【答案】C

224. 有下列程序: main( )

{ int k=5,n=0; do

{ switch(k)

{ case 1: case 3:n+ =1;k--;break; default:n=0;k--;

case 2: case 4;n+ =2;k--;break; }

printf(\

}while(k>0 && n<5); }

程序运行后的输出结果是( )。

A)235 B)0235 C)02356 D)2356

万维试题库系统 第 41 页

【答案】B

225. 以下程序输出的结果是 main()

{ char w[ ][10]={\for (k=1;k<3;k++)

printf(\}

A) ABCD B) ABCD C) EFG D) FGH

FGH EFG JK KL KL IJ O M

【答案】D

226. 下列不合法的字符常量是( )。 A)'\\018' B)'\\\C)'\\\\' D)'\\xcc' 【答案】A

227. 有以下程序段, 程序在执行了c=&b;b=&a;语句后,表达式:**c的值是

main()

{ int a=5,*b,**c; c=&b; b=&a; …… }

A)变量a的地址 B)变量b中的值

C)变量a中的值 D)变量b的地址

【答案】C

228. 有下列程序: #include struct STU { int num;

float TolalScorc; };

void f(structSTU p)

{ struct STU s[2]={{20044,550},{20045,537}}; p.num=s[1].num; p.TotalScore=s[1].TotalScore; }

main( )

{ struct STU s[2]={{20041,703},{20042,580}}; f(s[0]);

printf(\}

程序运行后的输出结果是( )。

A)20045 537 B)20044 550 C)20042 580 D)20041 703 【答案】D

229. 有以下程序 #include main() {

万维试题库系统 第 42 页

FILE *fp; int a[10]={1,2,3},i,n; fp=fopen(\

for(i=0;i<3;i++) fprintf(fp,\fprintf(fp,\fclose(fp);

fp=open(\fscanf(fp,\fclose(fp);

printf(\}

程序的运行结果是( )。

A)12300 B)123 C)1 D)321 【答案】B

230. 有下列程序: void fun1(char *p) {char *q; q=p;

while(*q! ='\\0') { (*q)+ +;q+ +;} }

main( )

{ char a[ ]={\

p=&a[3];fun1(p);printf(\}

程序执行后的输出结果是( )。 A)Prohsbn B)Prphsbn C)Progsbn D)Program 【答案】A

231. 已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正

确的输入语句是______。

A) scanf(\ B) scanf(\ C) scanf(\ D) scanf(\ 【答案】C

232. 下列程序的输出结果是( )。 prt(int *m,int n) { int i;

for(i=0;i

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

for(i=0;i<5;i+ +) printf(\}

A)1,2,3,4,5 B)2,3,4,5,6

万维试题库系统 第 43 页

C)3,4,5,6,7 D)2,3,4,5,1 【答案】B

233. 有以下程序 #include main()

{int a[]={1,2,3,4},y,*p=&a[3]; --p; y=*p; printf(\}

程序的运行结果是( )。

A)y=0 B)y=1 C)y=2 D)y=3 【答案】D

234. 以下程序运行后,输出结果是 A) 84 B) 99 C) 95 D) 44 int d=1; fun(int p) { int d=5; d+=p++;

printf(\,d); }

main() {int a=3; fun(a); d+=a++;

printf(\,d); }

【答案】A

235. 有下列程序: main( ) { int y=10;

while(y--);printf(\}

程序执行后的输出结果是( )。 A)y=0 B)y=-1

C)y=1 D)while 构成无限循环 【答案】B

236. 有下列程序段: typedef struct NODE

{ int num;struct NODE *next; } OLD;

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

A)以上的说明形式非法 B)NODE 是一个结构体类型 C)OLD 是一个结构体类型 D)OLD 是一个结构体变量 【答案】C

万维试题库系统 第 44 页

237. 有下列程序: #include main( )

{ char p[20]={'a', 'b', 'c', 'd'}, q[ ]=\strcpy(p+strlen(q), r); strcat(p, q);

printf(\}

程序运行后的输出结果是( )。 A)20 9 B)9 9 C)20 11 D)11 11 【答案】C

238. 下列程序的输出结果是( )。 #define N 20

fun(int a[ ],int n,int m) { int i,j;

for(i=m;i>n;i--)a[i+1]=a[i] }

main( )

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

for(i=0;i<5;i+ +) printf(\}

A)10234 B)12344 C)12334 D)12234 【答案】B

239. 设有定义:int x=2; 以下表达式中,值不为6的是

A)x*=x+1 B)x++,2*x C)x*=(1+x) D)2*x,x+=2 【答案】D

240. 有以下定义和语句 struct workers

{ int num;char name[20];char c; struct

{int day; int month; int year;} s; };

struct workers w,*pw; pw=&w;

能给w中year成员赋1980的语句是

A)*pw.year=1980; B)w.year=1980; C)pw->year=1980; D)w.s.year=1980; 【答案】D

241. 设有如下定义,若要使p指向data中的成员n,正确的赋值语句是 struct sk { int n; float x;

万维试题库系统 第 45 页

} data,*p;

A.p=&data.n; B.*p=data.n; C.p=(struct sk *)&data.n; D.p=(struct sk *) data.n; 【答案】C

242. 有以下程序

#include<stdio.h> void fun(int x)

{if(x/2>1)fun(x/2); printf(”%d”,x); }

main() {fun(7);printf(”\\n”);} 程序运行后的输出结果是

A)1 3 7 B)7 3 1 C)7 3 D)3 7 【答案】D

243. 当用户要求输入的字符串中含有空格时,应使用的输入函数是( )。 A)scanf( ) B)getchar( ) C)gets( ) D)getc( ) 【答案】C

244. 有以下程序

#include

#define SUB(a) (a)-(a) main()

{ int a=2,b=3,c=5,d; d=SUB(a+b)*c; printf(\ }

程序运行后的输出结果是

A)0 B)-12 C)-20 D)10 【答案】C

245. 有下列程序段: int k=0,a=1,b=2,c=3;

k=a<b?b:a;k=k>c?c:k;

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

A)3 B)2 C)1 D)0 【答案】B

246. 以下程序的输出结果是 A)4 B) 3 long fun( int n) { long s;

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

main()

C) 2 D) 1

万维试题库系统 第 46 页

{ printf(\, fun(3)); }

【答案】D

247. 设有定义:double x[10],*p=x;,以下能给数组x下标为6的元素读入数据的正确语句是

A)scanf(\ B)scanf(\ C)scanf(\ D)scanf(\

【答案】C

248. 下列描述中不正确的是

A) 字符型数组中可以存放字符串 B) 可以对字符型数组进行整体输入、输出 C) 可以对整型数组进行整体输入、输出

D) 不能在赋值语句中通过赋值运算符\对字符型数组进行整体赋值 【答案】C

249. 设有 int x=11; 则表达式 (x++ * 1/3) 的值是( ) A.3 B.4 C.11 D.12 【答案】A

250. 有下列程序: typedef struct{intb,p;}A;

void f(A c) /* 注意:c 是结构变量名 */ { int j;

c.b+ =1.c.p+ =2. }

main( ) { int i; A a={1,2}; f(a);

printf(\ }

程序运行后的输出结果是( )。 A)2,3 B)2,4 C)1,4 D)1,2 【答案】D

251. 若有语句:char *line[5];下列叙述中正确的是( )。

A)定义line 是一个数组,每个数组元素是一个基类型为char 的指针变量 B)定义line 是一个指针变量,该变量可以指向一个长度为5 的字符型数组 C)定义line 是一个指针数组,语句中的*号称为间址运算符 D)定义line 是一个指向字符型函数的指针 【答案】A

252. 已定义下列函数: int fun(int *p) { return *p;)

fun 函数返回值是( )。

A)不确定的值 B)一个整数

C)形参p 中存放的值 D)形参p 的地址值

万维试题库系统 第 47 页

【答案】B

253. 若有以下调用语句,则不正确的fun函数的首部是 A) void fun( int m,int x[ ]) B) void fun( int s, int h[41]) C) void fun( int p, int *s) D) void fun(int n, int a) main( ) {

int a[50], n; fun( n,&a[9]); }

【答案】D

254. 有以下程序,执行后输出结果是

main( )

{ char a[]=\printf(\\\n\}

A) 7 7 B) 8 8 C) 8 10 D) 10 10 【答案】C

255. 若有定义语句: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

256. 有下列程序,其中函数f()的功能是将多个字符串按字典顺序排序( )。 #include void f(char *p[ ],int n) { char *t; int i,j; for(i=0;i

if(strcmp(p[i],p[j]>0){t=p[i]; p[i]=p[j], p[j]=t;} }

main( )

{ char *p[5]={\f(p,5);

printf(\}

程序运行后的输出结果是( )。

A)2 B)3 C)6 D)4 【答案】D

257. 表示关系x<=y<=z的c语言表达式为

A) (X<=Y)&&(Y<=Z) B) (X<=Y)AND(Y<=Z) C) (X<=Y<=Z) D) (X<=Y)&(Y<=Z) 【答案】A 258. 有以下程序段

#include

万维试题库系统 第 48 页

main() { …

while( getchar()!='\\n') ; … }

以下叙述中正确的是 A)此while语句将无限循环

B) getchar()不可以出现在while语句的条件表达式中 C)当执行此while语句时,只有按回车键程序才能继续执行 D)当执行此while语句时,按任意键程序就能继续执行

【答案】C

259. 有以下程序 #include main()

{ int a=2,b=2,c=2; printf(\ }

程序运行后的输出结果是

A)0 B)1 C) 2 D)3 【答案】A

260. 已知:char c='A';int i=1,j; 执行语句j=!c&&i++; 则i和j的值是______。

A)1,1 B)2,1 C)1,0 D)2,0 【答案】C

261. 执行下面程序段时,若使w的值为4,则x,y 输入的值应满足的条件是( )。 int x,y,z=1,w=1;

scanf(“%d,%d”,&x,%y); if(x>0)z++; if(x>y) w+=z;

else if(x==y) w=5; else w=2*z;

A) x>y B)0x>y 【答案】B

262. 下列程序的输出结果是( )。 point(char*p){ p+ =3; } main( )

{ char b[4]={'a','b','c','d'},*p=b; point(p); printf(\}

A)a B)b C)c D)d 【答案】A

万维试题库系统 第 49 页

263. 以下关于return语句的叙述中正确的是 A)一个自定义函数中必须有一条return语句

B)一个自定义函数中可以根据不同情况设置多条return语句 C)定义成void类型的函数中可以有带返回值的return语句

D)没有return语句的自定义函数在执行结束时不能返回到调用处 【答案】B

264. 已有定义:char a[ ]=\,下列叙述中正确的是( )。 A)数组a 和b 的长度相同 B)a 数组长度小于b 数组长度 C)a 数组长度大于b 数组长度 D)上述说法都不对 【答案】A

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

266. 下列程序的功能是进行位运算: main( )

{ unsigned char a,b; a=7^3; b=~4 & 3; printf(\}

程序运行后的输出结果是( )。

A)4 3 B)7 3 C)7 0 D)4 0 【答案】A

267. 若有定义语句:double x,y,*px,*py;执行了px=&x;py=&y;之后,正确的输入语句是 A)scanf(\ B)scanf(\C)scanf(\ D)scanf(\【答案】C

268. 已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,则用八进制表示的字符常量'\\101'是______。

A) 字符A B) 字符a C) 字符e D) 非法的常量 【答案】A

269. 若有定义语句:int k[2][3], *pk[3];,则下列语句中正确的是( )。 A)pk=k; B)pk[0]=&k[1][2]; C)pk=k[0]; D)pk[1]=k; 【答案】B

270. 有下列程序: #include struct STU

{ char name[10]; int num; };

void f(char *name,int num)

{ struct STU s[2]={{\

万维试题库系统 第 50 页

本文来源:https://www.bwwdw.com/article/2aew.html

Top