C语言考试题库-选择题

更新时间:2024-03-04 18:12:01 阅读量: 综合文库 文档下载

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

说明:

没有给出答案的题,可以在VC++6.0上运行,就可以得到答案。 希望大家多思考,所以没有直接给。

1、在下列选项中,不正确的赋值语句是__D______. A) ++t; B) n1=(n2=(n3=0)); C) k=i=j; D) a=b+c=1;

2、下面合法的C语言字符常量是______A____. A) '\\t' B) \ C) 65 D) A

3、表达式: 10!=9的值是________D____.

A) true B) 非零值 C) 0 D) 1

4、C语言提供的合法的数据类型关键字是_____B____. A) Double B) short C) integer D) Char

5、C语言程序的基本单位是_____C______. A) 程序行 B) 语句 C) 函数 D) 字符

6、设 int a=12,则执行完语句a+=a- =a*a后,a的值是________ A) 552 B) 264 C) 144 D) -264

7、执行下面程序中的输出语句后,输出结果是______.

#include void main( ) {int a;

cout<<(a=3*5,a*4,a+5) ; }

A) 65 B) 20 C) 15 D) 10

8、已知字母A的ASCII码为十进制的65,下面程序的输出是__________.

#include void main( ) {char ch1,ch2; ch1='A'+'5'-'3'; ch2='A'+'6'-'3';

cout<

A) 67,D B) B,C C) C,D D) 不确定的值

9、为表示关系x≥y≥z,应使用C语言表达式___A___. A) (x>=y)&&(y>=z) B) (x>=y)AND(y>=z) C) (x>=y>=z) D) (x>=y) & (y>=z)

10、阅读下面的程序

#include void main( ) {

int i,j; i=010; j=9;

cout<

则程序的运行结果是________.

A) 1,19 B) -1,19 C) 1,17 D) -1,17

11、下面程序的输出结果是_______.

#include void main() {

int a=-1, b=4, k; k=(++a<=0)&&(b--<=0); cout<A) 1,1,2 B) 1,0,3 C) 0,1,2 D) 0,0,3

12、下面程序的输出结果是________.

#include void main() {

int a=5,b=3; float x=3.14, y=6.5;

cout<<(a+b!=a-b)<<’,’<<(x<=(y- =6.1)); }

A) 1,0 B) 0,1 C) 1,1 D) 0,0 13、若有以下定义和语句: int a=010, b=0x10, c=10; cout<

A) 10,10,10 B) 8,16,10 C) 8,10,10 D) 8,8,10

14、已知有double型变量x=2.5, y=4.7,整型变量a=7, 则表达式 x+a%3*(int)(x+y)%2/4 的值是_________. A) 2.4 B) 2.5 C) 2.75 D) 0

15、设有以下语句:int x=10; x+=3+x%(3),则x的值是.____ _____ A) 14 B) 15 C) 11 D) 12

16、若有定义int a=12,n=5,则表达式a%=(n%2)运算后,a的值__________.

A) 0 B) 1 C) 12 D) 6

17、若有定义int x=3,y=2和float a=2.5,b=3.5,则表达式:(x+y)%2+(int)a/(int)b的值是____.

A) 0 B) 2 C) 1.5 D) 1

- 1 -

18、在C语言中,以下叙述不正确的是_____A____.

A) 在C程序中,无论是整数还是实数,都能被准确无误的表示 B) 在C程序中,变量名代表存储器中的一个位置 C) 静态变量的生存期与整个程序的生存期相同 D) C语言中变量必须先定义后引用

19、C语言中的变量名只能由字母,数字和下划线三种字符组成,且第一个字符____C____. A) 必须为字母 B) 必须为下划线

C) 必须为字母或下划线

D) 可以是字母,数字或下划线中的任意一种

20、设有说明:char w; int x; float y; double z; 则表达式: w*x+z-y值的数据类型是___D____.

A) float B) char C) int D) double

21、下列程序执行后的输出结果是_________. #include void main( ) { int a=5,b=60,c; if (a

cout< cout<A) 60/5=12 B) 300 C) 60*5=300 D) 12

22、如果c为字符型变量,判断c是否为空格不能使___A____.(假设已知空格ASCII码为32)

A) if(c=='32') B) if(c==32) C) if(c=='\\40') D) if(c==' ')

23、运行下面程序时,若从键盘输入\ 5\,则程序的输出结果是________. #include void main( ) {

int x,y; cin>>x>>y ; if (x==y)

printf(\ else if (x>y) printf(\ else

printf(\ }

A) 3<5 B) 5>3 C) x>y D) x

24、运行下面程序时,若从键盘输入数据为 \ 5 7\,则输出结果是______. #include void main( ) { int a,b,c;

cin>>a>>b>>c; if (a>b) if (a>c) cout

cout<

A) 5 B) 6 C) 7 D) 不定值

25、运行下面程序时,从键盘输入\,则输出结果是________.

#include void main( ) { float a,b; cin>>a; if (a<0.0) b=0.0;

else if ((a<0.5) && (a!=2.0)) b=1.0/(a+2.0); else if (a<10.0) b=1.0/2; else b=10.0; cout<

A) 0.000000 B) 0.500000 C) 1.000000 D) 0.250000

26、执行下面程序后,运行结果是_______. #include void main( ) { int x=41,y=1;

if (x%3==0 && x%7==0) { y+=x; cout<

{y=x; cout<

A) y=41 B) y=43 C) y=42 D) y=1

27、运行下面程序时,从键盘输入字母H,则输出结果是_______. #include void main( ) { char ch; cin>>ch; switch(ch)

{ case 'H':printf(\ case 'G':printf(\ default:printf(\ } }

A) Hello! B) Hello! Good Morning! C) Hello! D) Hello!

- 2 -

Good morning! Bye_Bye! Bye_Bye!

28、执行下列程序段后的输出结果是_________. int x=1,y=1,z=1; x+=y+=z; cout<<(x

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

29、设ch是char型变量,值为'A',则表达式 ch=(ch>='A' && ch<='Z')?ch+32:ch的值是_____. A) Z B) a C) z D) A

29、运行下面程序时,若从键盘输入\则程序的输出结果是_______. #include void main( ) { int a ; cin>>a;

if (a++>5) cout<

A) 7 B) 6 C) 5 D) 4

30、运行下面程序时,若从键盘输入\,则程序的输出结果是_______. #include void main( ) { int a,b,s; cin>>a>>b; s=a; if (s

A) 14 B) 16 C) 18 D) 20

31、下列程序的执行结果是_________. #include void main( ) { int x=0,y=1,z=0; if (x=z=y) x=3; cout<

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

32、有如下程序 #include void main( ) { float x=5.0,y; if(x<0.0) y=0.0; else if (x<10.0) y=1.0/x; else y=1.0;

cout<

该程序的输出结果是________. A) 0.000000 B) 0.50000 C) 0.200000 D) 1.000000

33、以下程序的执行结果是________. #include void main( ) { int x=1,y=0; switch (x) { case 1: switch (y) {

case 0:cout<<\ case 1:cout<<\ }

case 2:cout<<\ } }

A) first B) first second third C) first D) second third

34、以下程序的执行结果是________. #include void main( ) { int a,b,c,d,x; a=c=0; b=1; d=20; if (a) d=d-10; else if(!b)

if (!c) x=15; else x=25; cout<<”d=”<

A) d=20 B) d=10 C) d=15 D) 25

35、下列程序执行后的输出结果是________. #include void main( ) { int x,y=1,z; if ((z=y)<0) x=4; else if (y==0) x=5; else x=6; cout<

A) 4,1 B) 6,1 C) 5,0 D) 出错信息

36、有如下程序 #include

- 3 -

void main( ) { int x=1,a=0,b=0; switch(x) {

case 0: b++; case 1: a++; case 2: a++;b++; }

cout<<”a=”<

该程序的输出结果是_________.

A) a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=2

37、下面程序的输出结果是_________. #include void main( ) { int a=-1,b=1,k;

if ((++a<0) && (b--<=0)) cout<

cout<A) -1 1 B) 0 1 C) 1 0 D) 0 0

38、假定w、x、y、z、m均为int型变量,有如下程序段: w=1;x=2;y=3;z=4;

m=(w

39、以下程序输出结果是__________. #include void main( ) { int m=4;

if (++m>5) cout<

A) 7 B) 6 C) 5 D) 4

40、有以下程序 #include void main( ) { int a,b,c=246; a=c/100%9; b=(-1)&&(-1); cout<

输出结果是_______.

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

41、执行下列程序后的输出结果是_______. #include void main( )

{ int k=4,a=3,b=2,c=1; cout<<(k

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

42、以下条件表达式中能完全等价于条件表达式x的是_______. A) (x==0) B) (x!=0) C) (x==1) D) (x!=1)

43、若运行下面程序时,给变量a输入15,则输出结果是______.

#include void main( ) { int a,b; cin>>a;

b=a>15?a+10:a-10; cout<

}

A) 5 B) 25 C) 15 D) 10

44、执行下面程序的输出结果是________.

#include void main( ) { int a=5,b=0,c=0;

if (a=a+b) cout<<\ else cout<<\ }

A) 有语法错误不能编译 B) 能通过编译,但不能通过连接 C) 输出 **** D) 输出 ####

45、为了避免嵌套的if-else语句的二义性,C语言规定else总是与___C___组成配对关系. A) 缩排位置相同的if B) 在其之前未配对的if

C) 在其之前尚未配对的最近的if D) 同一行上的if

46、设x 、y 、z 、t均为int型变量,则执行以下语句后,t的值为_________.

x=y=z=1;

t=++x || ++y && ++z;

A) 不定值 B) 4 C) 1 D) 0

47、以下程序段__________.

x=-1; do {

- 4 -

x=x*x; } while (!x);

A)是死循环 B)循环执行两次 C)循环执行一次 D)有语法错误

48、下面程序的运行结果是________.

#include void main( ) { int a=1,b=10; do

{ b-=a;a++; } while(b--<0); cout<

A) 3,11 B) 2,8 C) 1,-1 D) 4,9

49、下面程序的运行结果是________.

#include void main( ) { int s=0,i=1; while (s<=10) { s=s+i*i; i++; }

printf(\ }

A) 4 B) 3 C) 5 D) 6

50、以下循环体的执行次数是_______

#include void main( ) { int i,j;

for(i=0,j=1; i<=j+1; i+=2, j--) cout<

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

51、执行下面程序段后,k的值是_________. int i,j,k;

for(i=0,j=10;i

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

52、以下程序段的输出结果是_______.

int k,n,m; n=10;m=1;k=1;

while (k<=n) {m*=2;k+=4;} cout<

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

53、下面程序的输出结果是________.

#include void main( ) {int x=3; do {

cout<<(x- =2); }while(!(--x)); }

A) 1 B) 1 -2 C) 3 0 D)是死循环

54、定义如下变量: int n=10;

则下列循环的输出结果是_______.

while(n>7) { n--; cout<

A) 10 B) 9 C) 10 D) 9 9 8 9 8 8 7 8 7 7 6

55、以下叙述正确的是_____B____.

A) continue语句的作用是结束整个循环的执行 B) 只能在循环体内和switch语句体内使用break语句 C) 在循环体内使用break语句或continue语句的作用相同 D) 从多层循环嵌套中退出时,只能使用goto语句

56、在下列选项中,没有构成死循环的程序段是___D_. 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>=1000); while (s) --s;

57、下面程序的输出结果是_________.

#include void main( ) { int i;

for(i=1;i<=5;i++) { if (i%2) cout<<\ else continue; cout<<\ }

cout<<\ }

A) *#*#*#$ B) #*#*#*$ C) #*#*$ D) *#*#$

58、下面程序段中,循环体的执行次数是____C_____.

- 5 -

int a=10,b=0;

do {b+=2;a-=2+b;} while(a>=0);

A) 4 B) 5 C) 3 D) 2

59、C语言中while 和do-while 循环的主要区别是.__A__ A) do-while的循环体至少无条件执行一次

B) while 的循环控制条件比do-while 的循环控制条件严格 C) do-while 允许从外部转到循环体内 D) do-while 的循环体不能是复合语句

60、合法的数组定义是___D_____.

A) int a[6]={\ B) int a[5]={0,1,2,3,4,5}; C) char a={\ D) char a[]={0,1,2,3,4,5};

61、定义如下变量和数组:

int i;

int x[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}; 则下面语句的输出结果是_______.

for(i=0;i<4;i++) cout<

62、运行下面程序段的输出结果是________.

char s1[10]={'S','e','t','\\0','u','p','\\0'}; cout<

A) Set B) Setup C) Set up D) 'S''e''t'

63、以下程序段的输出结果是________.

char s[ ]=\ cout<

A) 7 B) 8 C) 9 D) 10

64、下列初始化语句中,正确且与语句

char c[ ]=\等价的是____C____. A) char c[ ]={'s','t','r','i','n','g'}; B) char c[ ]='string';

C) char c[7]={'s','t','r','i','n','g','\\0'}; D) char c[7]={'string'};

65、以下程序输出的结果是________.

#include void main( )

{ int a[ ]={1,2,3,4,5},i,j,s=0; for(i=0;i<5;i++) s=s*10+a[i]; cout<

A) s=12345 B) s=1 2 3 4 5 C) s=54321 D) s=5 4 3 2 1

66、以下关于数组的描述正确的是____C______.

A) 数组的大小是固定的,但可以有不同类型的数组元素。 B) 数组的大小是可变的,但所有数组元素的类型必须相同。 C) 数组的大小是固定的,所有数组元素的类型必须相同。 D) 数组的大小是可变的,可以有不同类型的数组元素。

67、在定义int a[5][4]; 之后,对a的引用正确的是.____C____ A) a[2][4] B) a[1,3] C) a[4][3] D) a[5][0]

68、以下定义语句中,错误的是____D____. A) int a[]={1,2}; B) char a[]={\C) char s[10]={\ D) int n=5,a[n];

69、下述对C语言字符数组的描述中错误的是___C__. A) 字符数组可以存放字符串

B) 字符数组中的字符串可以整体输入、输出

C) 可以在赋值语句中通过赋值运算符\对字符数组整体赋值 D) 不可以用关系运算符对字符数组中的字符串进行比较

70、以下对C语言函数的有关描述中,正确的是___A__. A) 在C中,调用函数时,只能把实参的值传送给形参,形参的值不

能传送给实参

B) C函数既可以嵌套定义又可以递归调用 C) 函数必须有返回值,否则不能使用函数

D) C程序中有调用关系的所有函数必须放在同一个源程序文件

71、设有数组定义:char array[]=\则数组array所占的存储空间为____C____. A) 4个字节

B) 5个字节

C) 6个字节 D) 7个字节

72、下面程序的输出是________.

#include int m=13; int fun2(int x, int y) { int m=3; return(x*y-m); }

void main( ) { int a=7, b=5; cout<<(fun2(a,b)/m); }

A) 1 B) 2 C) 7 D) 10

73、若函数调用时用数组名作为函数参数,以下叙述中,不正确的是____C____.

A) 实参与其对应的形参共占用同一段存储空间

B) 实参将其地址传递给形参,结果等同于实现了参数之间的双

向值传递

C) 实参与其对应的形参分别占用不同的存储空间

- 6 -

D) 在调用函数中必须说明数组的大小,但在被调函数中可以使

return r; 用不定尺寸数组 }

void main() 74、如果一个函数位于C程序文件的上部,在该函数体内说明{

语句后的复合语句中定义了一个变量,则该变量___C_____. int x, a[]={ 2,3,4,5,6,7,8,9}; A) 为全局变量,在本程序文件范围内有效 x=f(a, 3); B) 为局部变量,只在该函数内有效 cout<

C) 为局部变量,只在该复合语句中有效 上面程序的输出结果是___ _____.

D) 定义无效,为非法变量 A) 20 B) 14 C) 9 D) 5

75、调用函数时,当实参和形参都是简单变量时,它们之间数据传递的过程是____D____.

A) 实参将其地址传递给形参,并释放原先占用的存储单元 B) 实参将其地址传递给形参,调用结束时形参再将其地址回传

给实参

C) 实参将其值传递给形参,调用结束时形参再将其值回传给实

D) 实参将其值传递给形参,调用结束时形参并不将其值回传给

实参

76、C语言中,若未说明函数的类型,则系统默认该函数的类型是___C_____。

A) float型 B) long型 C) int型 D) double型

77、以下说法中正确的是_____C___.

A) C语言程序总是从第一个定义的函数开始执行

B) 在C语言程序中,要调用的函数必须在main()函数中定义 C) C语言程序总是从main()函数开始执行 D) C语言程序中的main()函数必须放在程序的开始部分

78、C语言中规定函数的返回值的类型是由__D______. A) return语句中的表达式类型所决定 B) 调用该函数时的主调用函数类型所决定 C) 调用该函数时系统临时决定

D) 在定义该函数时所指定的类型所决定

79、以下函数调用语句中含有实参个数为____B____. func((exp1,exp2),(exp3,exp4,exp5));

A) 1个 B) 2个 C) 4个 D) 5个

80、C语言中,凡未指定存储类别的局部变量的隐含存储类别是____A____.

A) auto B) static C) extern D) register

81、请读程序:

#include f(int b[ ], int n) { int i, r=0;

for(i=0; i<=n; i++) r=r+b[i];

- 7 -

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

Top