C语言程序设计 我是C语言初学者,有一道看程序的题我有些弄不懂,还请高手帮忙讲解一下,谢谢!

17)设有定义:int a=l, b=2, c=3;,以下语句中执行效果与其它三个不同的是( )。
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;}

答案:C
A:是如果a>b,则一程序一直执行到“b=c;”,效果是换a与b的值;
B:是如果a>b,则执行{ }里的语句,效果是交换a与b的值;
C:是如果a>b,则执行c=a; 无论a是否大于b,c的值都要给a,a-b;没什么作用;
D:是如果a>b,则效果是交换a与b的值,c相当于中转站,a-b;没什么作用;
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-09-05
C. if后面如果没有大括号,系统默认只执行其后面的第一个分号“;”之前的语句。与其他3个(A、B、C)不同。。
第2个回答  2011-09-05
选择C 原因 你看 流程 首先他们的前面都是一样的 if(a>b) 所有看后面 首先A c=a,a=b,b=c 他们用逗号 隔开的 所有 是 同一个语句 B { c=a,a=b,b=c}用大括号 原因同上 D 也是一样的 用的是 大括号。。 只有C 他们的语句是分开执行的 c=a;a-b;b=c 也就是说 执行了 c = a 可以判断 要不要执行下面的语句。。 而 选项A B D 是必须要执行的。。 我不知道说的可对。。 看看答案 如果 答案是选择 C 那我的结实 就正确的
第3个回答  2011-09-05
C.c选项相当于下列语句:
if(a>b) { c=a; }
a=b;
b=c;
第4个回答  2011-09-05
与江苏省二级C语言笔试题目挺像的、、、C
第5个回答  2011-09-05
C追问

请帮忙讲一下为什么,谢谢!

追答

另外三个都有大括号{},因为if语句没执行,所以大括号里面的语句没执行,而第三个只有c=a没执行,注意符号“;”。一句语句时if后可以不打大括号{}。懂了吧?

相似回答