void main(){int x = 023;printf("%d",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);}验证的结果如下:
因为你定义的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,不知道怎么算的
捷复星元:[答案] 编的程序是没有问题的,但好像是你的软件软件除了毛病 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