void main(){int x = 023;printf("%d",x++);} 输出结果是什么 ? 谢谢

作者&投稿:毅贞 (若有异议请与网页底部的电邮联系)
下面程序的输出是____ main(){ int x=023; printf("%d\n",--x); }~

023是8进制,也就是10进制19,所以输出18

输出的结果是18
首先:int x=023; 这一句023是8进制数,转换成10进制是19
然后:--x,19-1=18
验证的代码如下:
#includemain() {int x=023;printf("%d",--x);}验证的结果如下:

输出结果是:19
因为你定义的x(int x=023;)是一个8进制数,该8进制对应的10进制为:19
输出是以(%d)10进制输出的,x++是先使用x的值(即表达式x++的值)为19,然后让x加1变成20,所以最后结果是19。
有疑问请追问。

023 是八进制的19, 输出结果是19 , 后边的++ 识别为字符,不做运算。。详看 printf函数http://baike.baidu.com/view/410546.htm

像++,--这种操作要理解x++是先使用x然后再++,而++x是先让i+1再使用

19

编译通过等于19,不知道怎么算的


广汉市13376547324: #include void main ( ){int x;x=4;printf("%d",x);}编译:--------------------Configuration:111 - Win32 Debug--------------------Compiling...Skipping...(no relevant ... -
捷复星元:[答案] 编的程序是没有问题的,但好像是你的软件软件除了毛病 fatal error LNK1104:cannot open file "kernel32.lib 致命错误LNK1104 kernel32.lib:不能打开文件” 要不你重下载安装一个软件试一试.

广汉市13376547324: 以下程序的运行结果是( ).void main() {int x = 5; do { printf("%2d",x--); } while(!x); } A.5 4 3以下程序的运行结果是( ).void main(){int x = 5;do{printf("%2d... -
捷复星元:[答案] c啊 do...while()不管条件如果先执行一次,输出5,因为是后置--,所以先使用后再自减 然后!x 也就是!4为0,所以循环不再执行

广汉市13376547324: #include <stdio.h>void main( { int x=1,a=2,b=3; switch(x运算过程 -
捷复星元: 一步步来分析这个代码:一开始的时候:x = 1, a = 2, b = 3 接着进入switch语句:先判断 x == 1,发现此时x == 1,所以执行 a--,然后break跳出switch语句 最后执行输出语句输出a,b的值,显然此时a = 1,b = 3 另外:如果 x 在一开始的时候等于2...

广汉市13376547324: void main() { int x=0,a=0,b=0; if(x=a+b) printf(" * * * *\n" ); else printf(" # # # #\n" ); } -
捷复星元: if(x=a+b) //x=a+b是赋值语句,这个赋值表达式有值为0,表示假,执行else后面的语句. printf(" * * * *\n" ); //这个不执行.elseprintf(" # # # #\n" ); //这个执行.

广汉市13376547324: #include<stdio.h> void main( ) { int x; scanf(“%d”,&x); if (x_ - < 5) printf(“%d\n”,x) -
捷复星元: if条件里的x就是你输入的值,比如你输入的是4,这时满足条件,但是输出的是3;如果你输入的是5,就不满足if条件,这时什么也不做.x-- 或者x++都是先将x参与运算,然后才将X的值自减或者自增1. 另外,楼上的朋友说错了,不是什么优先级的问题.本来就是那么规定的,比如如果是 if(++x>5)呢,输入5的时候就满足条件,因为这个时候是将X的值自增1,然后才参与运算.

广汉市13376547324: #include <stdio.h> void main () { int x=0,y=0,z=0; if(x=y+z) printf("***"); else printf ("###"); } -
捷复星元: 解释:if(x=y+z)成立就执行输出*** .否则就输出### 至于x=y+z是赋值表达式来,赋值表达式的左边值是可以改变的.此处是把y+z值赋给x,即把0赋给x.所以此处的判断值是0,因此判断条件不成立.所以就执行printf ("###");

广汉市13376547324: void main(){ int x=3; do{ printf("%d",x -- ); }while(!x);} -
捷复星元: do{}while(条件) 当条件为真时 继续执行循环 本段代码的执行顺序 int x=3 给x赋值3 printf("%d",x--); 输出3 之后 x 为 2 进入while条件!x 为 0 即 条件为假 跳出循环 结束 输出为3

广汉市13376547324: 以下程序的运行结果是( ). void main() {int x = 5; do { printf("%2d", x -- ); } while(!x); } A. 5 4 3 -
捷复星元: c啊 do...while()不管条件如果先执行一次,输出5,因为是后置--,所以先使用后再自减 然后!x 也就是!4为0,所以循环不再执行

广汉市13376547324: void main(){int x=(int)"A";int y=(int)'A';printf("%d,%d\n",x,y);}输出结果是什么?理由? -
捷复星元: 结果不定的, 一个是指针, 一个是65

广汉市13376547324: #include <stdio.h> void main() { int x[]={1,2,3}; int s,i,*p=x; s=1; -
捷复星元: s = 1*2*3 =6

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网