Int a=3,b=5,c=7;If(a>b) a=b;c=a;If(c!=a) c=b;Printf(“%d,%d,%d\n”,a,b,c);其输出结果是?

若变量已正确定义,有以下程序段
Int a=3,b=5,c=7;
If(a>b) a=b;c=a;
If(c!=a) c=b;
Printf(“%d,%d,%d\n”,a,b,c);
1.357
2.353
3.355
4.程序段有语法错

选第二个;
为什么?因为已知定义a=3,b=5,c=7;
如果说a>b,则执行a=b;可事实上a不大于b,但是后面没有跟else所以为其为空;直接执行赋值语句子c=a;所以c的值为3,后面的If(c!=a) 不成立,所以c=b不执行;那么a和b的值仍为3和5,最终的结果为:3,5,3;
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-06-27
答案选B哈。
第一个if条件是不成立的,所以语句a=b不成立,接着运行c=a,讲a的值给c,这样a和c都等于3了,第二个if的条件也不成立了,所以语句c=b不执行,程序开始输出,即答案为B
第2个回答  2012-06-27
2、353
If(a>b) a=b;c=a;这句别看错了,if只管第一个分号前的。
第3个回答  2012-06-27
353
if(a>b) // (3<5)
a=b; // 不执行
c=a; //c=a= 3
if(c!=a) //
c=b; //不执行

so ,a=3,b=5, c=3.
第4个回答  2012-06-27
3_5_3追问

为什么不是357?

追答

没看见c=a;? a=b属于If(a>b)

相似回答