11.【A】
分析:此题主要是考查if语句和条件表达式的转化。只要理解了if语句和条件表达式的
运算规则的话,就很容易选出A。
12.【D】
分析:见教材例题。
13.【B】
分析:此题主要是考查if-else-if以及关系表达式的运算。首先判断第一个条件a>b>c的值为0,所以不执行其后的语句;在判断第二个条件,c-1>=d表达式的结果为真,所以执行其下面的语句,那么将输出d+1的值为3 ,所以选答案B。
14.【D】
分析:此题主要考查if,else的配对问题。这里在if后面跟了两条语句,其中第一条是if的子句,第二条是条独立的语句,这样第二条语句就夹在了if和else之间,使得else 找不到和它配对的if。所以程序会出错。
15.【C】
分析:请大家记住:else总是和之前与其最近的且不带else的if配对。
16.【A】
分析:此题考查的是条件表达式的求解顺序。参照附录可知,它的结合方向是自右至左,所以先求得右边一个条件表达式的值为2,再求得左边一个的值为1,即选A。17.【B】
分析:此题考查的是条件表达式求解问题。先看第一个条件表达式语句,ac为假,所以条件表达式等价于k=k;所以答案选B。
18.【C】
分析:此题考查的是真假条件的等价问题。x-y为真表示x-y是非0的,也即x-y<0或x-y>0。所以答案选C。
19.【C】
分析:此题主要是考查条件表达式和条件运算符。首先求括号内条件表达式a>c?a:c的值为c,那么整个表达式就等价于d=a>b?c:b;求解这个条件表达式得d=c,所以答案选C 。20.【D】
分析:此题主要是考查在switch语句中break和default的作用及break的适用范围。break 语句可以在switch语句中使用也可以在循环结构中使用,只能在这两个地方使用。switch 语句中可以有default也可以没有。switch语句中可以有break语句也可以没有。21.【D】
分析:此题主要考查switch语句的语法规则。A选项错在swich(a+b); 这里多了一个分号。请大家注意switch后圆括号中的表达式的值必须是整型或字符型,不能为实型。B 选项错在有两个case3。C选项case后面只能是常量表达式,而这里出现变量,所以错误。答案选D。
22.【C】
分析:同21题。
23.【A】
分析:此题主要考查if和else配对问题。此题关键就是else是与第二个if配对组成一条if-else语句。因此首先判断a>b为假,那么跳过其子句,即if-else语句,直接执行最后一条printf语句,将d输出。因此答案选A。
二、填空题
1.10 20 0
分析:此题多数同学会得到的答案是10 20 1,显然是没有弄清楚第三条赋值语句:c=(a%b<1)||(a/b>1).这是将后面一个逻辑表达式的值给c。先计算第一个圆括号里面的内容,a%b的值是10(而不是0),所以10<1为假;a/b的值为0,0>1为假。在逻辑或运算的时候,两个运算对象都为假,则结果为假。所以c的值为0.答案是:10 20 0 2.0
分析:此题主要考查关系表达式。我们主要就是要计算a>b>c的值,首先a>b为真,其值为1,那么1>c为假,所以整个表达式为假,其值为0。所以d为0。
3.585858
分析:此题考查if语句。首先scanf语句使a的值为58,接着执行后面三条if语句,这三个if结构是相互独立的,是互不相关的,只要他们的条件成立,就要执行其子句。a>50、a>40、a>30、都为真,所以执行printf三次,a被输出3次。
4.yes
分析:此题考查if-else语句。赋值表达式c=a+b的值就是左边变量的值,为4,那么表达式为真,所以执行其后的printf语句,将yes输出。
5.20,0
分析:此题关键点if的子句只能是一条语句或一条复合语句,表达式x==y为假,跳过if子句t=x;,接着继续执行x=y;y=t;,因此最后x为20,y为0。
6.4,5,99
分析:同上题。
7.-4
分析:此题考查if语句。首先第一条if语句n=0那么!n为真,执行x-=1;使x值为1,接着第二条if语句m为1条件为真,执行x-=2;使x值为-1,再执行第三条if语句,x 为-1条件为真,执行x-=3;使x值为-4。最后执行printf将-4输出。
8.4
分析:从键盘得到x的值为5,那么判断表达式x--<5,x--的值为5,所以为假,判断了之后x的值变为4。此时执行else子句,将x++输出,为4。
9.3
分析:此题主要考查条件运算符。程序要输出(P/3>0?p/10:p%3)这个条件表达式的值。P为30,所以p/3=10,10>0显然为真,所以整个表达式的值应该是p/10的值,p/10得3。10.1
分析:此题考查if-else语句。因为a为5,a!=0为真,所以p=a!=0等价与p=1,整个表达式p=a!=0为真,执行if子句,将p输出,输出为1。
11.2 1
分析:此题考查switch语句的嵌套。x为1,则外层switch语句选择case1,case1又是一个switch语句,y为0,执行case0的a++使a的值变为1,然后执行break语句跳出内层的switch的语句,接着执行外层switch语句的case2,a++;b++;使a的值变为2,b 的值变为1,然后执行break语句跳出外层的switch语句。最后执行printf语句将a,b输出,输出为2 1。
12.a+b>c&& a+c>b&& b+c>a
分析:此题是逻辑预算和if语句的结合。题目的提示很明显,构成三角形的条件是需要同时满足三条件:a+b>c,a+c>b,b+c>a,程序中的if的条件就是构成三角形的条件,所以我们填入a+b>c&& a+c>b&& b+c>a。这里大家注意同时满足条件我们需要用与逻辑,任意满足一个条件我们需要用或逻辑。