void main( ){ int k=011; printf("%d\n",k++); } 这里的K怎么回事,为什么最后结果是9

如题所述

k的值为011,011和11是不一样的概念,C里面,011是八进制的表现形式,011转化成十进制是9,k++是先抛出在自加,所以输出的值是9
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-12-21
int k=011;
数字前加0代表的是八进制数。格式为\0ddd,每个d代表是0~7的数字,
则程序中的k的十进制数为9。
输出语句中k++是先参与运算后自增。则输出为9

...main() { int k=011; printf("%d\\n",k++); } 运行后的输出结果为?K...
8进制011是10进制的3。

...void main() { int k=011; printf(“%d\/n”,k++); }为什么这个输出是...
你的程序中八进制转为十进制d%必然是9;但是你要说k++后和++k是不同的,前者是执行完调用后再加1,所以打印出9,但是内存种k已经是10,后者相反,你应该是用的后者

c语言程序int k=011
include <stdio.h>\/*调用标准输入输出库,为了使用printf函数*\/void main() \/*主函数开始*\/{int k=011;\/*定义整型变量k,赋值011*\/printf("%d\\n",k++);\/*调用printf函数,打印该k(按整型打印),换行,并且在此之后把k值+1}

...Printf("%d+%d=%d",a,12,a+12) 问 输出结果是什么? 是几个数? 2...
2.int k=011 Printf("%d\\n",k++) 输出结果又是什么?k=011;这是用八进制表示整数,以0开头的都是八进制的形式 0x是十六进制。八进制011转换成十进制是 1*8+1 = 9,所以最后的输出结果为9;k++表示先使用 k原来的值,然后再改变k的值,使其增1.最后结果为9....

输出结果的时候,为什么是K,而不是k++后再输出,这是规定?
++在变量后面,就是先取变量的值参与运算,等k++所在的语句执行完以后,再将k+1

...main() { int i=011,j=11,k=0x11; printf("%d,%d,%d\\n",i,j,k...
011是8进制表示, 十进制值为9 11本身就是十进制 0x11是16进制, 十进制值为17 所以 输出是9,11,17 选A

(22)有以下程序,其中k的初值为八进制数
结果是9;选D 8进制的k =011是9 ,而输出中的是后++ ,所以对于第一次运算的k,不做++,所以输出的结果为9。

...main() { int i=2,j=1,k=3; printf("%d\\n",i && (i+j)&k|i+j...
2 && (2 + 1) & 3 | 2 + 1 2 && 3 | 2 + 1 2 && 3 011 2 010 011 = 3 2 && 3 + 1 1 + 1 = 2 结果是2

C语言求1到20的阶层之和这个程序为什么不对?
程序没有问题,但是你没有考虑溢出的问题,一个整形变量在VC中占用4个字节,也就是32位,第一位为符号位,那么多大的数也只是011。。。1(31个1),也就是2的32次方减1,你算的是阶乘,增长速度是非常快的,也许你觉得5的阶乘,6的阶乘这些都不大,但是10的阶乘之后这些结果会变得非常非常大了...

C语言,哪位好心的大哥,姐姐:能告述我位运算吗?我看不懂啊!
int main() { unsigned short a=100; a = ~a; printf( "%d\\n", a ); return 0; } 如果not的对象是有符号的整数,情况就不一样了,稍后我们会在“整数类型的储存”小节中提到。 === 5. shl运算 === a shl b就表示把a转为二进制后左移b位(在后面添b个0)。例如100的二进制为1100100,而11001...

相似回答