mshd.net
当前位置:首页 >> 设有以下程序段int x=2 >>

设有以下程序段int x=2

int x=3 do { printf(“%d”,x-=2); }while ( !(--x) ); //等价于while( --x == 0 ); --x为0时,劝非”结果才是真,否则为假,结束循环 x=3 printf() x-=2=1 , while( !(--x) ) --x得到0,循环条件成立 x=0 printf() x-=2=-2 while( !(--x) ) --x得...

楼主可以分析一下语句while(!x!=0)s+=++x;循环的条件是!x!=0,非x不等于零,这个X的值只有0,能够满足。所以语句只有X=0时,才实现。接着进入内部循环,s+=++x,执行后s=1,x=1。x=1,时不满足!x!=0,跳出循环,打印s,程序结束。

当循环执行x=3时 判断条件(x%2)为真,执行(“**%d”) 输出结果为 **3 而语句中并没有\n 即就是 不换行 然后循环执行x=4时 判断后执行(“##%d\n”) 输出结果为 ##4(并加换行) 所以结果是 **3##4 **5 而不是 **3 ##4 **5 就是这样啦~ 不知道 ...

程序执行到x=-2时,--x = -3,

{printf("%3d",x-=2);} 这个就是x=x-2,也就是说x变成1了再输出,输出1 --x就是x=x-1的简便写法,这时候x变成0,!0就是1,所以继续做do这个循环 第二次x再减去2变成-2,所以输出-2 --x再减去1变成-3,!-3为0所以循环做到这就停止了 最后输出 1 -2

选项D 原因:'d'转换到int类型的话就是100, 'a'转换成int就是97,所以x['d'-c] == x[100-97],结果就是x[3],x[3]的值就是4

printf(" %d\n",x -=2);首先执行这句代码,x-=2即x=x-2;因为X初值为3,所以,x=x-2=1;然后执行while(!(--x)); --x得到x=0, !就是取反,所以!(--x)为真,再次执行printf(" %d\n",x -=2);,0-2=-2 结果就是这样得到的

答案为1 分析:x-=2也就是x=x-2的意思,x初始值为3,减速2输出1,循环一次后x变为-1,不满足条件,没有其他输出,退出循环

程序从上往下执行,先执行x-=2,此时x=1,然后执行--i(先执行减法,即i=i-1=1-1=0),第四行的i=1满足!=0,所以循环执行do,printf("%d",x-=2);此时打影x”,x=x-2=1-2

答案是:4 1。然后过程呢,首先输出6-2=4,然后判断while(--x)时,x会减一,x变成了3,然后开始第二次循环,输出3-2=1,然后判断while(--x),由于减号在前面,要先减一再判断,也就是变成了while(0),循环结束,所以结果是4 1,望采纳

网站首页 | 网站地图
All rights reserved Powered by www.mshd.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com