一道C语言选择题求解

这个程序是什么意思我看不懂,能不能帮我讲解一下?为什么我上机运行后结果为-1,4294967295... 这个程序是什么意思我看不懂,能不能帮我讲解一下?为什么我上机运行后结果为-1,4294967295 展开
 我来答
timebirdss76391
2019-08-30 · TA获得超过792个赞
知道小有建树答主
回答量:1670
采纳率:60%
帮助的人:286万
展开全部

因为电脑上面 int 是 4个字节

题目上面 int 是两个字节...

数据类型占内存的位数实际上与操作系统的位数和编译器(不同编译器支持的位数可能有所不同)都有关

电脑上面的int 是多少字节,可以用 sizeof() 方法检测

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
哈哈呵呵你好7
2019-08-30 · TA获得超过1626个赞
知道大有可为答主
回答量:2238
采纳率:79%
帮助的人:243万
展开全部
%u是将对应的整数按无符号十进制输出,在你的计算机上那个int被定义成32位了,所以输出这个。正常情况下int是16位的,-1用16进制是0x8001,变成整数是32769。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
听不清啊
高粉答主

2019-08-30 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部
这个问题是考查有符号整数与无符号整数的区别。
它的编译程序是16位的编译程序,所以是选择答案D,而你的是32位的编译程序,所以输出是
-1,4294967295
因为:
2^16 - 1 = 65535
2^32 - 1 = 4294967295
追问
没学过这种程序...这里只有一个k,为什么printf里面有%d和%u两个格式字符?后面也有两个k,我有点看不懂.....
追答
这就是说,同样的变量值,如果用不同的格式解读,会有不同的结果。
还可以再举一例,
int k=65;
printf("%c,%d",k,k);
运行后就会输出:
A,65
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式