有以下程序: #iinclude<stdio.h> main() {int a=7,b=0; do{b+=a;a-=1;}while(a--); printf("%d,%d\n",b,a); } 执行后的输出结果是( )。

admin2021-07-09  24

问题 有以下程序:
#iinclude<stdio.h>
main()
{int a=7,b=0;
do{b+=a;a-=1;}while(a--);
printf("%d,%d\n",b,a);
}
执行后的输出结果是(  )。

选项 A、28,0
B、28,1
C、16,0
D、16,-1

答案D

解析 分析程序可知,do语句1…while(语句2),每次循环在语句1中a的值减1,在语句2中判断a的值后,a的值又减1,所以在每次循环体执行完后,b累加的a的值分别为7,5,3,1,a的值分别为6,4,2,0,最后当a为0时,while判断条件为false,此时a的值再减1,为-1,到此循环结束,所以b的值为16,a的值为-1,故答案选D。
转载请注明原文地址:https://kaotiyun.com/show/Q7tp777K
0

最新回复(0)