#include<stdio.h> main() {int a=201,b=012; printf("%2d,%2d\n",a,b); } 这个程序输出是什么?为什么?

如题所述

八进制整型常量:由正、负号 和 0至7的数码组成,并且第一个数码必须是0

十进制整型常量:由正、负号 和 0至9的数码组成,并且第一个数码不能是0

十六进制整型常量:由正、负号 和 数码0至9、a至f或A至F组成,并且要有前缀0x

这题b=012 是八进制数 换成十进制数 b=10
%d输出的是十进制数 所以答案是201,10追问

%2d不是表示域宽为2吗?

追答

%2d 是以宽度2输出整型数,不足2时,左补空格 ,
当指定场宽小于数据的实际宽度时,对整数,按该数的实际场宽输出,对浮点数,相应小数位的数四舍五入。

追问

额。。还可以再问一下一个域宽是几个数吗?我以为域宽为2就是2个数字的。。。

追答

哈哈,像这种问题,你可以自己试试嘛,这样印象才深刻,比如%4d输出201的时候,你看看有没有补空格啊。

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-12-03
0开头表示8进制,012就是8进制的12即10进制的1*8+2结果是201,10
是否该发金币了呢,亲?

#include<stdio.h> main() {int a=201,b=012; printf("%2d,%2d\\n...
d输出的是十进制数 所以答案是201,10

#include <stdio.h> void main() { int a=102,b=012; printf("%2d,%2...
2d是输出整型,2你就忽略吧,是宽度,但不会限制超过这个宽度的 解释下012,0开头表示8进制,对应的十进制 1*8+2 = 10

int a=201,b=012;printf("%2d,%2d\\n",a,b);输出结果是多少详细的解题过...
输出是201,10 这有什么详细解释?十进制201就是201,0打头的是八进制,八进制012就是十进制10;输出控制符%d是按十进制输出的意思,所以结果是201,10。

int x=102,y=012;printf("%2d,%2d",x,y);输出结果为 为什么 是102...
int x=102,y=012;\/\/012是8进制,换算成10进制是10 printf("%2d,%2d",x,y);\/\/按2位宽度输出,102是三位,大于2位,按实际宽度输出

c语言!帮我解释下程序
2d表示结果是两位,且是十进制的,当宽度不足要求是补空格(也可以规定),但是当数据实际宽度大于规定宽度时,按实际宽度输出,浮点数则四舍五入。b是一个八进制数,转换成十进制是10,所以答案为201,10

"18'53!1!5 :85 59! ?9:3 b
MD\/0<O1"CT+8L# "TX,*B<\/+M& %8K_5<[_4^#\/9B+_4U<(NE8\/A8[,*@P "+M" @2\\\/A;W_5_+P)A3XD.+\/4J<(NGH\/GB[<*CP 2?\/P&B'_FE?_J@F?0?4\/;;MJ1"L4 #"<9LCPHE4(GH8\/<020%A20U<N@(*P0NJ4 %A U;#IE] 0#$ L6M$ *W>MQ@L!, P RR8 %@ 5*ZIHUH!#30 L6,...

求c语言中的bioskey的用法呀
#include <stdio.h>#include <bios.h>#include <ctype.h>#define RIGHT 0x01#define LEFT 0x02#define CTRL 0x04#define ALT 0x08int main(void){ int key, modifiers; \/* function 1 returns 0 until a key is pressed *\/ while (bioskey(1) == 0); \/* function 0 returns the key that is ...

C语言中 '\/72'什么意思
71 39 9 58 72 3A :59 73 3B ;60 74 3C < 61 75 3D = 62 76 3E > 63 77 3F ?64 100 40 65 101 41 A 66 102 42 B 67 103 43 C 68 104 44 D 69 105 45 E 70 106 46 F 71 107 47 G 72 110 48 H 73 111 49 I 74 112 4A J 75 113 4B K 76 114 4C L ...

一道题不是很明白,怎么看是哪种进制啊?
呵呵。通常12就写12不必要加0,加了0就当成8禁止了。16进制是0x开头的比如0xffff 没有二进制常量。

求2010年3月计算机二级C语言笔试复习资料
#include <stdio.h> main() { int a=1,b=0; printf("%d,",b=a+b); printf("%d",a=2*b); } 程序运行后的输出结果是 A)0,0 B)1,0 C)3,2 D)1,2 A B C D 17.(17)设有定义: int a=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是 A)if(a>b) c=a,a=b,b=c; B)...

相似回答