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得...

&&优先级高于||,所以可以这样写: a=++x||(++y&&z++); a=3||(3&&0); a=3||0; a=1; z++遇;号才自加,++x和++y先进行自加。 x=3,y=3,z=1;

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

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

while(!x!=0) 等价于 while ( (!x) != 0), 则 s初始化值为0,故有 !x = 1,接着 1 != 0 ,显然,结果为真 执行while后面的循环语句 s+=++x;(注意,++是前缀的),即 s = s+(++x)[ s= 0+ 1=1] ,完成后x=1,再次进入循环判断, 根据上面的分析...

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 -2 do while 是先执行再判断 判断条件为真则再执行do 与 while之间的内容 判断条件为 !(--x); 解释为X先自减1,再按BOOL取反,这样的话,只有X-1后值为0时,按BOOL取反才为真。

运行程序段后,会输出: 4 1

int x=2,y=2,z=0,a; a=++x||++y&&z++; //上面等价于 x++; a= x || (++y&&z++); 由于x>0, 而右边是 || 所以 不会运行 (++y&&z++) printf(″%d,%d,%d\n″,x,y,z); //结果是 3,2,0

第一次循环的时候 x = 3 输出x -= 2 也就是 1了 执行完后x = 1了。。 while里面是 !(--x) 也就是x先减一,然后取非 x-1后就是0了,取非就是真了。。 还要执行do里面的。。也就是输出 x-=2 当然就是输出 -2了 再进行while里面的判断,不满足条...

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