找回密码
 立即注册
搜索
热搜: 活动 通知
查看: 77|回复: 0

检测点12-6

[复制链接]

620

主题

336

回帖

1057

积分

管理员

积分
1057
发表于 2026-3-9 10:09:09 | 显示全部楼层 |阅读模式
检测点12-6

1.下面的代码片段打印输出什么?
printf("[%5d]\n", 225);
printf("[%-5d]\n", 225);
printf("[%05d]\n", 225);
printf("[%+5d]\n", 225);
printf("[%#10.3f]\n", 56.78);
printf("[%-10.3s]\n", "hello");
printf("[%%]\n");
答案:
[  225]
[225  ]
[00225]
[ +225]
[    56.780]
[hel       ]
[%]

2.在主流的计算机上,字节的宽度是8比特。以下代码会打印输出什么?为什么?
printf("%hhu\n", (signed char) 127 + 129);
答:
129的类型是int。127从signed char提升为int。相加的结果是int类型的256并传递给printf函数。
printf函数的转换说明是%hhu,这是将int/unsigned int类型的参数转换为unsigned char之后打印输出。所以是将int类型的256转换为unsigned char输出。因指定字节的宽度为8比特,最大值是255,所以256转换为unsigned char类型后的值是255+1-256=0。打印0。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|鼠侠网 ( 吉ICP备19001332号 )

GMT+8, 2026-3-30 16:12 , Processed in 0.231387 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表