《全国计算机等级考试二级教程——C语言程序设计》课后题及参考答案

3.22 变量i、j、k已定义为int类型并有初值0,用以下语句进行输入时 scanf(\当执行第一个输入语句,从键盘输入: 12.3 表示Enter键

则变量i、j、k的值分别是____、____、____。

答案:12、0、0

3.23 复合语句在语法上被认为是____。空语句的形式是____。 答案:一条语句、 ; 3.24 C语句的最后用____结束。 答案:;

3.25 以下程序段,要求通过scanf语句给变量赋值,然后输出变量的值。写出运行时给k输入100,给a输入25.81,给x输入1.89234时的三种可能的输入形式____、_____、____。 int k; float a; double x; scanf(\

printf(\

答案:

(1) 100 25.81 1.89234 (2) 100 25.811.89234

(3) 100 25.81 1.89234 3.26 以下程序段的输出结果是____。 int x=0177;

printf(\ 答案:x=127,x= 127,x= 177,x= 7f,x= 127 3.27 以下程序段的输出结果是____。 int x=0177;

printf(\ 答案:27、x=127,x=127 ,x=$127 ,x=$000127,x=d 3.28 以下程序段的输出结果是____。 double a=513.789215;

printf(\答案:a=513.789215,a= 513.79,a= 513.78921500,a= 513.78921500 第四章、选择结构

一、 选择题

4.1 下列运算符中优先级最高的运算符是

A) ! B) % C) -= D) && 答案:A

4.2 下列运算符中优先级最低的运算符是

A) || B) != C) <= D) + 答案:A

4.3 为表示关系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

4.4 设a、b和c都是int型变量,且a=3,b=4,c=5;则以下的表达式中,值为0的表达式是

A) a&&b B) a<=b C) a||b+c&&b-c D) !((a

4.5 以下程序的输出结果是

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

main()

{ int a=2,b=-1,c=2; if(a

if(b<0) c=0;

else c+=1;

printf(\ }

答案:C

4.6 以下程序的输出结果是

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

main()

{ int w=4,x=3,y=2,z=1;

printf(\}

答案:A

4.7 若执行以下程序时从键盘上输入3和4,则输出结果是 A) 14 B) 16 C) 18 D) 20

main()

{ int a,b,s;

scanf(\ s=a;

if(a

printf(\}

答案:B

4.8 下面的程序片段所表示的数学函数关系是 -1(x<0) A) y= 0(x=0) 1(x>0) 1(x<0) B) y= -1(x=0) 0(x>0) 0(x<0) C) y= -1(x=0) 1(x>0) -1(x<0) D) y= 1(x=0) 0(x>0)

y=-1;

if(x!=0) y=1;

if(x>0) y=1; else y=0;

答案:本题没有正确答案。程序片段所表示的数学函数关系应该是 0(x<0) y= 0(x=0) 1(x>0)

4.9 运行以下程序后,输出

A) **** B) &&&&

C) ####&&&& D) 有语法错误不能通过编译 main()

{ int k=-3;

if(k<=0) printf(\

else printf(\ }

答案:D

4.10 若a和b均是正整型变量,以下正确的switch语句是 A) switch(pow(a,2)+pow(b,2))

{ case 1: case 3: y=a+b; break; case 0: case 5: y=a-b; }

B) switch(a*a+b*b); { case 3:

case 1: y=a+b; break; case 0: y=b-a; break; }

C) switch a

{ default: x=a+b;

case 10: y=a-b; break; case 11: x=a*d; break; }

D) switch (a+b)

{ case10 : x=a+b; break; case11 : y=a-b; break; }

答案:没有正确答案。如果C选项改为: switch(a)

{ default: x=a+b;

case 10: y=a-b; break; case 11: x=a*b; break; }

则答案可以选择C

二、填空题

4.11 C语言中用____表示逻辑值“真”,用____表示逻辑值“假”。 答案:非0、0

4.12 C语言中的关系运算符按优先级别是____、____、____、____。 答案:>、<、>=、<=、==、!=

4.13 C语言中的逻辑运算符按优先级别是____、____、____。 答案:!、&&、||

4.14 C语言中的关系运算符和逻辑运算符的优先级别是____、____、____、____、____、____、____。 答案:!、<、>、==、!=、&&、||

4.15 C语言中逻辑运算符____的优先级高于算术运算符。 答案:!

4.16 将下列数学式改写成C语言的关系表达式或逻辑表达式A)____B)____。 A)a=b或a4 答案:A)a==b||a4||x<-4 4.17 请写出以下程序的输出结果____。

main()

{ int a=100;

if(a>100) printf(\

else printf(\}

答案:1

4.18 请写出与以下表达式等价的表达式A)____B)____。 A) !(x>0) B) !0 答案:A) x<=0 B) 1

4.19 当a=1,b=2,c=3时,以下if语句执行后,a、b、c中的值分别为____、____、____。 if(a>c)

b=a; a=c; c=b;

答案:3、2、2

4.20 若变量已正确定义,以下语句段的输出结果是____。 x=0; y=2; z=3; switch(x)

{ case 0: switch(y==2)

{ case 1: printf(\ case 2: printf(\ } case 1: switch(z)

{ case 1: printf(\

case 2: printf(\ default : printf(\ } } 答案:*#

第五章、循环结构

一、 选择题

5.1 以下程序段的输出结果是

A) 9 B) 1 C) 11 int k,j,s;

for(k=2; k<6; k++,k++) { s=1;

for(j=k; j<6; j++) s+=j; }

printf(\

答案:D

5.2 以下程序段的输出结果是

A) 12 B) 15 C) 20 int i,j,m=0;

for(i=1; i<=15; i+=4)

for(j=3; j<=19; j+=4) m++;

printf(\

答案:C

5.3 以下程序段的输出结果是 A) 10 9 8 B) 9 8 7 C) 10 9 8 7 D) 9 8 7 6 int n=10; while(n>7) { n--;

printf(\

}

D) 10 D) 25

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4