Ch4 C语言的程序结构
输入一个学生的成绩,评定他的等级。每十分一个等级 #include
#include
}
}
7)设有定义:int a=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是 ( C ) A)if(a>b) c=a,a=b,b=c; B)if(a>b) {c=a,a=b,b=c;} C)if(a>b) c=a;a=b;b=c; D)if(a>b) {c=a;a=b;b=c;} ABD的结果
C的结果
测试程序如下: #include
if(a>b) {c=a;a=b;b=c;} //可换成以上语句 printf(\}
【解析】因为a永远小于b,所以条件为假,不执行if后面的第一个语句,然而,C选项中if后面有3条语句,但只有第一句是在if的范围中的,剩下两句即使if不成立也会执行;而A中c=a,a=b,b=c;只是一个语句,在if的范围之内
(18)有以下程序应该选( B ) #include
scanf(“%d”,&x); if(x<=3) ; elseif(x!=10)
printf(“%d\\n”,x); }
程序运行时,输入的值在哪个范围才会有输出结果 A)不等于10的整数
B)大于3且不等于10的整数
C)大于3或等于10的整数 D)小于3的整数
【解析】若满足x<=3则执行if后的空语句——无输出结果;当x>3时,才判断x!=10,若成立则输出x,所以必须满足大于3且不等于10的整数
(19)有以下程序 ( C) #include
程序运行后的输出结果是 A)1,2,3 B)1,3,2 C)1,3,3 D)3,2,1
【解析】if(a==1 &&b++==2)此时a=1,b=2,b++是先取值后++所以b确实是2,该条件满足,继续执行,此时b++变成了3;再判断if(b!=2 || c--!=3),此时b=3而不是2,所以满足条件,而(或)||运算有一真即真,不会再判断和执行c--!=3语句,直接执行printf(\所以c并没有改变还是3
4-9节-------4-15节、选择题
[4.1] 下列运算符中优先级最高的运算符是( A ) A)! B)% C)-= D)&& 【解析】查看优先级表
[4.2] 下列运算符中优先级最低的运算符是 ( A ) A)|| B)!= C) <= D)+
[4.3] 为表示关系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) 【解析】必须满足两者
[4.4] 设 a、b 和c 都是int 型变量,且a =3,b=4, c=5;则以下的表达式中,值为0的表达式是 ( D )
A) a&&b B)a<=b C)a||b+c&&b-c D)!((a
【解析】A: a&&b a和b都不等于0,只要&&两边都不为零,结果就为1;
C:a||b+c&&b-c先算b+c和b-c两者结果不为零,再进行&&运算,结果为1,最后进行||运算得到1(简便方法:因为最后才算||,而a不为零,则此表达式结果必为1)
D:先算(a
[4.5] 以下程序的输出结果是:( C ) A) 0 B)1 C)2 D)3
main()
{ int a=2,b=-1,c=2; if (a
c=0;
else c+=1;
printf(“%d\\n”,c); }
【解析】千万别被缩进格式所迷惑!!!其实以上程序相当于 #include
{ int a=2,b=-1,c=2; if (a
printf(\}
在没有括号时,else永远是就近原则,因为a
[4.6] 以下程序的输出结果是:( A ) A) 1 B) 2 C) 3 D) 4 main()
{ int w=4,x=3,y=2,z=1;
printf(“%d\\n”,(w 【解析】(w [4.7] 若执行以下程序时从键盘上输入3和4,则输出结果是( B ) A)14 B)16 C)18 D)20