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

有以下程序

#include <stdio.h>
main()
{ int a = -2, b = 0;
while (a++ && ++b) ;
printf("%d,%d\n", a, b );
}
程序运行后输出结果是

A) 0,2

B) 0,3

C) 1,3

D) 1,2

 

慕粉3847971
浏览 1437回答 3
3回答

Crafon

B。前置++是本身+1之后再判断;后置++是先判断,之后再+1望采纳~

噼喱啪啦

第一个要认清楚 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. 不懂继续问。

Crafon

这是运行结果
打开App,查看更多内容
随时随地看视频慕课网APP