为了账号安全,请及时绑定邮箱和手机立即绑定

最后得的结果应该是D还是B?

最后得的结果应该是D还是B?

C
慕粉3847971 2016-09-17 21:25:51
有以下程序 #include <stdio.h> main() { int a = -2, b = 0; while (a++ && ++b) ; printf("%d,%d\n", a, b ); } 程序运行后输出结果是A) 0,2B) 0,3C) 1,3D) 1,2 
查看完整描述

3 回答

?
Crafon

TA贡献63条经验 获得超30个赞

B。

前置++是本身+1之后再判断;后置++是先判断,之后再+1

望采纳~

查看完整回答
1 反对 回复 2016-09-17
  • 慕粉3847971
    慕粉3847971
    我做的也是这个答案,这是一道计算机二级考试题,可正确答案给我的是D。。。所以我蒙了。。。
  • Crafon
    Crafon
    我知道了。D是对的,我用程序算了一下,最后一次已经a++为0时不会再执行++b了,所以b最终是2,而a在a++判断时是0,判断完变成1,所以是1,2。抱歉,之前没考虑完善。不过还是希望采纳
?
噼喱啪啦

TA贡献392条经验 获得超170个赞

第一个要认清楚 while ( ); 后面直接引号了看到没,代表当while 括号里面的表达式为真时,循环执行,括号里表达式为假时,跳出循环,而没有大括号循环体,代表空语句,也就是当while( )括号里的表达式为假时,才执行打印a, b
第二个就是自增自减
a++;这样的一个语句,表达式a++表示我这个表达式的值等于a,再把a+1,这样在这个语句的下面再调用a的话,a会比原来多1
b=a++;     b的值和a相等,这个表达式的值等于a。
++a;这样的语句表示这个表达式的值为a+1,之后的语句再调用a的话,a的值比原来多1,
b=++a; 相当于b=(a+1) 这个表达式的值等于a+1
第三个就是逻辑运算,计算机中 且运算,表达式1&&表达式2; 且运算必须两个表达式为真时,才算成立。计算机有个特点,当表达式1成立时,直接判定语句为假,不再进行表达式2 体现计算机的运算快!
只能提示到这里了,正确答案是D. 不懂继续问。

查看完整回答
反对 回复 2016-09-19
?
Crafon

TA贡献63条经验 获得超30个赞

//img1.sycdn.imooc.com//57deb0910001cebd04540242.jpg这是运行结果

查看完整回答
反对 回复 2016-09-18
  • 3 回答
  • 1 关注
  • 1442 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信