若有如下程序: main() { int n=2; do {printf("%d",n--);} while(!--n)); } 则程序运行后的输出结果是( )。

admin2009-04-15  16

问题 若有如下程序:    main()    {  int n=2;    do    {printf("%d",n--);}     while(!--n));    }    则程序运行后的输出结果是(  )。

选项 A、2
B、11
C、1
D、20

答案8

解析 本题首先定义了一个int型变量n,并初始化为2。然后进入do-while循环,do-while循环首先执行一遍循环体,输出表达式n--的值,此时表达式n--的值是n自减之前的值2,输出一个2后,n的值变为1。然后判断do-while的循环条件!(--n)是否为真,此时表达式--n的值为n自减之后的值0,!0为真,故第二次执行循环体“printf("%d",n--);”此时n的值为0,所以执行结果为:输出一个0,n的值变为-1。此时循环条件!(--n)=!(-2)为假,程序结束。故程序运行后的输出结果是20,应该选择D。
转载请注明原文地址:https://kaotiyun.com/show/gsWp777K
0

随机试题
最新回复(0)