C语言考试题不明白

来源:百度知道 编辑:UC知道 时间:2024/05/27 11:59:06
下列输出结果为():
int a = -2;
unsigned int b = a;
printf("b = %d,%o,%x,%u/n",b,b,b,b);
(A)b = -32767,177776,fffe,32766
(B)。。。。。。。。。
(C)b=-2,177776,fffe,32766
(D)。。。。。。。。。

答案选c,为什么呢?%后的符号都代表什么意思?要详解释版的
那个数是怎么转换的,我觉得答案应该是“b=2,2,2,2”
那个6L的兄弟,unsigned不是把b初始化为无符号数吗?不应该等于2吗?

%d 有符号十进制数 %0 八进制 %x 十六进制
格式输出 八进制和十六进制 是没有负数的 所以实际输出的是将 -2 转化为二进制 (补码) 再转化为 十进制数

%d,%o,%x
如果我没有记错的话,应该是请以十进制,16进制,8进制分别输出的意思

奶油葡萄 -已经回答
我想说的是,记得谭老妖的C语言书里有一个列表!自己为什么不看书?

请 "搜索答案" 或 使用 "百度百科"

http://baike.baidu.com/view/410546.htm

b鏄痷nsigned鍨嬫暟鎹?紝涓嶈兘鏄?礋鏁帮紝瀹幂殑鍙栧€艰寖锲存槸0~65535銆
%鏄?浆涔夊瓧绗》殑鍓岖紑锛屼篃灏辨槸璇村彧瑕丆绯荤粺瑙勫畾镄勮浆涔夊瓧绗】紝鍓嶉溃閮芥湁涓€涓?鍙枫€傛瘮濡?d锛屽氨鏄?〃绀轰互鍗佽繘鍒舵暣鍨嬫暟鎹?緭鍑烘垨钥呰緭鍏ャ€?x琛ㄧず浠?6杩涘埗銆?o琛ㄧず浠ュ叓杩涘埗杈揿叆鎴栬€呰緭鍑恒€

濡傛灉灏哹瀹氢箟涓篿nt鍨嬶紝灏变笉浼氩彂鐢熸暟鎹?孩鍑猴紝濡傦细
int b=a;

在16位的环境下,应该是(C),如果是32位没有答案。

%d int 有符号的十进制数
%o int 无符号的八进制数
%x int 无符号的十六进制数
%u int 无符号的十进制数

更详细的,你可以通过MSDN获得:
Character Type Output format
c int or wint_t When used with printf functions, specifies a single-byte character; when used with wprintf functions, specifies a wide character.
C int or wint_t When use