大学生C语言任务,如图所示的几道题

img


为什么不能选择a呢,非常感谢!

img


这里面的f(b)又是什么意思啊,非常感谢!

应该选择B
这里有两个if的条件语句
第一个是
if(!a)x--;
else if(b);
意思是如果!a为真则执行x--;或者如果b为真没有执行语句,该if条件语句结束
第二个是
if(c)x=3;
else x=4;
意思是如果c为真则执行x=3;否则执行x=4;该if条件语句结束
从这两个的顺序来看,无论第一个if语句的结果如何,到第二个if语句时无论c是否为真都会改变x的值,从上边可看到c=0,c为假则执行x=4
故最终x的值为4

第一图: if(x > y) 条件不成立,z = x; 这句未被执行到,x = y; 将y赋值给x ,此时x = y = 20, y = z; 将 z 赋值给 y ,此时 y = z = 30, 所以最终:x = 20 ,y = 30 , z = 30。
第二图:if(!a) x--; 刚开始这句被执行,x = 34, else if (b); 是空语句,它后面没有任何操作。if(c=0) x=3;未执行到,else x = 4; 这里被执行,x 被赋值为 4,所以最终选 B 。