C语言.9.10. 

问题描述:

C语言.9.10.
 
1个回答 分类:综合 2014-11-17

问题解答:

我来补答
9.因为a是unsigned short且printf用%u格式,所以不可能输出负值,则A和D均不正确;C是0111111111111111而B是1111111111111111,区别在最高位是否为1,由于b是有符号的整数,赋值为负数时最高位用于表示符号,赋值最高位为1,所以赋值给a后最高位应该保持为1,所以选B
10.正确的输出应该是|8567 |,格式串"-06d"一是表示左对齐,那么B和D均不对了,只能C
11.输出格式串中两个%连起来表示要输出一个%,那么d的前面没有单独的%形成%d这样的格式描述,则输出时必然是D 再答: 有符号的,第一位是符号位
无符号的,所有位都计数
再答: 这样-1的二进制为1111 1111 1111 1111
再答: 而65535也是1111 1111 1111 1111
再答: 10,我感觉是b,但是如果是c,那就是我对-和06的结合理解不深刻,-是左对齐,而06是至少6位布空格
再答: 10 运算符从左向右结合,先结合的是%%
再答: 所以输出%和d、而后面两个变量属于摆设
 
 
展开全文阅读
剩余:2000
下一页:先解十一题