简单的c语言题 帮帮解释一下谢谢

来源:百度知道 编辑:UC知道 时间:2024/06/02 03:54:47
3. 若int x=-1,则语句printf(“%d,%u,%o”,x,x,x);的输出为( )。
A.-1,-1,-1 B.-1,32767,-177777 C.-1,32768,177777 D.-1,65535,177777
选什么 解释一下我想学会 不仅仅是知道答案
我很菜大家别见笑

D

%d输出-1,这个不用说吧

%u输出65535,因为-1在机器里面是一个16位的全1二进制,无符号方式就是65535

%o输出177777,因为-1在机器里面是一个16位的全1二进制,八进制就是177777

不过要假设是16位的编译器,Turbo C比如
当解释为整数时为-1,
-1 mod 2^16 = 65535
8进制只有无符号的
D.-1,65535,177777