C语言习题集(含答案). 下载本文

内容发布更新时间 : 2024/6/26 20:55:13星期一 下面是文章的全部内容请认真阅读。

一、单选题:

(1) 在C语言提供的合法的关键字是( )

A)swicth B) cher C)Case D)default (2)在C语言中,合法的字符常量是( )

A)'\\084' B) '\\x43' C)'ab' D) \(3)若有定义和语句:

char s[10]: s=\ 则结果是(以下u代表空格)( ) A)输出abcd B)输出a C)输出abcduuuuu D)编译不通过 (4) 若有定义和语句:

int **pp, *p, a=10, b=20;

pp=&p; p=&a; p=&b; printf(\ 则输出结果是:( )

A)10, 20 B)10,10 C)20,10 D)20,20 (5)若有以下定义和语句: int u=010, v=0x10,w=10; printf(\ 则输出结果是( )

A) 8,16,10 B) 10,10,10 C)8, 8,10 D) 8,10,10 (6) 若有以下定义和语句 char c1=' b', c2='e';

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

C)2,E ? D)输出项与对应的格式控制不一致,输出结果不确定

(7) 若有以下定义:

char s[20]=\ 则不能代表字符o的表达式是( ) A) ps+2 B) s[2] C) ps[2] D) ps+=2,*ps

(8) 若i, j已定义为int类型,则以下程序段中内循环体的总的执行次数是( ) for (i=5; i; i--)

for(j=0; j<4; j++) {...}

A) 20 B) 25 C) 24 D) 30 (9)若有以下定义和语句:

char *s1=\ printf(\

则输出结果是( )

A) 4 B) 5 C) 9 D) 10 (10)若有以下定义和语句:

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] (11)下面程序的输出是( ) main( )

{ char *s=\ int k=0, a=0, b=0; do {k++;

if(k%2==0) {a=a+s[k]-'0';continue;} b=b+s[k]-'0'; a=a+s[k]-'0'; }

while (s[k+1]);

printf(\ A) k=3 a=2 b=3 B) k=3 a=3 b=2 C) k=2 a=3 b=2 D) k=2 a=2 b=3

(12) 下面程序的输出是( ) main( )

{ unsigned a=32768; printf(\ } 运行结果: -32768 A)a=-32768 B)a=32767 C)a=-32767 D)a=-1 (13) 若有以下定义:

float x; int a,b; 则正确的switch 语句是( ) A)switch(x) B) switch(x)

{ case1.0: printf(\ { case1, 2: printf(\ case2.0: printf(\ case3: printf(\ } }

C) switch (a+b) D) switch (a+b); { case 1: printf(\ { case 1: printf(\ case 1+2: printf(\ case 2: printf(\

} } (14) 以下程序输出的结果是( ) main( )

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

A) ABCD B) ABCD FGH EFG KL IJ M C) EFG D) FGH JK KL O

(15)若数组名作实参而指针变量作形参,函数调用实参传给形参的是 ( )

A.数组的长度 B.数组第一个元素的值 C.数组所有元素的值 D.数组第一个元素的地址

(16) 若变量已正确定义并赋值,下面符合C语言语法的表达式是( )

A) a:=b+1 B) a=b=c+2 C) int 18.5%3 D) a=a+7=c+b (17) C语言中运算对象必须是整型的运算符是( )

A) %= B) / C) = D) 〈=

(18) 若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是( )

A) 1 B) 2 C) 2.0 D) 2.5

(19) 若变量a、i已正确定义,且i已正确赋值,合法的语句是( A) a==1 B) ++i; C) a=a++=5; D) a=int(i); (20) 若有以下程序段,

int c1=1,c2=2,c3; c3=1.0/c2*c1;

则执行后,c3中的值是 ( ) A) 0 B) 0.5 C) 1 D) 2 (21) 有如下程序

main( )

{ int y=3,x=3,z=1;

printf(“%d %d\\n”,(++x,y++),z+2); }

运行该程序的输出结果是( ) A) 3 4 B) 4 2 C) 4 3 D) 3 3

(22) 能正确表示逻辑关系:“a≥=10或a≤0”的C语言表达式是( )

A) a>=10 or a<=0 B) a>=0|a<=10 C) a>=10 &&a<=0 D) a>=10 || a<=0

)

(23) 有如下程序

main( )

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

{ case 0: b++; case 1: a++; case 2: a++; b++; } printf(“a=%d,b=%d\\n”,a,b); } 该程序的输出结果是( )

A) a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=2 (24) 有如下程序 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(“%f\\n”,y); } 该程序的输出结果是( )

A) 0.000000 B) 0.250000 C) 0.500000 D) 1.000000 (26) 有如下程序

main( ) { int i, sum;

for(i=1;i<=3;sum++) sum+=i; printf(“%d\\n”,sum); }

该程序的执行结果是( )

A) 6 B) 3 C) 死循环 D) 0