3.22 变量i、j、k已定义为int类型并有初值0,用以下语句进行输入时 scanf(\当执行第一个输入语句,从键盘输入: 12.3
则变量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.81
(3) 100
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或a
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