# include " stdio.h "void main ( ){ int a = 1 , b = 10do { b - = a ; a + + ; }while ( b - -

下面程序的运行结果是 。
# include " stdio.h "
void main ( )
{ int a = 1 , b = 10
do
{ b - = a ; a + + ; }
while ( b - - < 0 ) ;
printf ( " a = % d , b = % d \ n ), a , b );
A)a = 3 , b = 11 B)a = 4 , b = 9
C)a = 1 , b = -1 D)a = 2 , b = 8
我想问为什么是D
不应该是b=b-a=9,a=2 然后输出a=2,b=9吗?
是不是在 while ( b - - < 0 ) ;这里执行了b--然后b就变成8了?可是这里不只是判断一下吗,怎么就执行了?

while ( b - - < 0 )

是先执行判断b是否<0,判断过后就执行b减1;再根据判断结果,不满足条件就退出循环。
所以a的值是2,b的值是8。
正确答案是D。追问

就是像这个题那样吗
以下程序输出结果是
A)7 B)6 C)5 D)4
main()
{ int m=5;
if(m++>5)printf("%d\n",m);
else printf("%d\n",m--);
}
选B
可是这个规定书上有吗 我怎么没看到

追答

对。你举的例子也是这样的。

温馨提示:内容为网友见解,仅供参考
无其他回答

...stdio.h "void main ( ){ int a = 1 , b = 10do { b - = a ; a...
正确答案是D。

...#include <stdio.h> main() { int a=1,b=10; do {b-=a;
初始化a = 1,b =10;do是先执行,所以a = 2 ,b = 9;while(b--<0),因为是后置--,所以先判断b<0,为假,所以退出循环。b再自减,b=8 所以 a=2,b=8

...void main() {int a, b; for(a=1,b=1; a<=10; a++) { if(b>=10...
break是终止循环,continue,是终止此次循环,先判断a,a=1,a<=10,进入循环,在判断b,b+=3相当于b=b+3;貌似你这个程序与b无关,因为b=1时,b<10,并且b%3!=1,而没有b++,所以一直执行循环,直到a>10,所以最后输出a为11。

#include <stdio.h> Void main( ) { int a=1,b; For(b=1;b<=10;b+...
a+=5和a-=3就相当于a+=2所以当a>8时a=1+2+2+2+2+2,循环了4次,所以最后答案为1+4=5

#include "stdio.h" void main() { int a=1,b; for(b=1;b < =10;b...
b=1 a=1 b=2 a=6 b=3 a=3 b=4 a=8 break 所以b=4

#include <stdio.h> main() { int a=011,b=101; printf("%x,%o\/n...
是先把a的值加1,再取值,所以++a;的值是十进制的10,而%x是以十六进制的方式显示,而十进制的10对应的十六进制是a,b是十进制的101,b++;是先取b的值,再把b的值加1,所以b++;的值是101,而%o是是以八进制的方式显示,而十进制的101对应的八进制是145,所以程序的输出是 a,145 ...

#include<stdio.h> void main() {int a=10,b=0; if(a==10) a=a+1...
include<stdio.h>void main(){ int a=10,b=0; if(a==10) a=a+1,b=b+1; else a=a+4,b=b+4; printf("%d %d",a, b);}用逗号或者花括号将两个放一起才行

#include <stdio.h> void main() { int a=1,b=0; if(--a) b++; pri...
--a的意思是,先自减再用a 所以if(--a)判断的时候 a是0,所以b不自加还是0 所以a是0 b也是0

#include<stdio.h> void main() { int a=1; float b; b=++a*++a; p...
这样的问题,建议看一下汇编指令。不同的编译器都有可能不一样,别的不清楚,但是如果你的题目改成a++*++a在vs和GCC上得到的结果是不一致的,可以去验证,所以建议看汇编的结果。

#include <stdio.h> void main() { int a=1,b=0; if(--a) b++; pri...
你开始时定义了b=0;,然后if(--a) 自减在前面,所以先减了,再用a ,这个时候a为0,if语句不执行 b无法自加了,所以还是为0,不懂可以追问

相似回答