有关C语言的几个问题

1.16位PC机是什么意思?16位系统和32位系统有什么区别?int型数据在32位系统下占4个字节,那不是与long型没区别了?2.假设m是一个三位数,从左到右用a,b,... 1.16位PC机是什么意思?16位系统和32位系统有什么区别?int型数据在32位系统下占4个字节,那不是与long型没区别了?
2.假设m是一个三位数,从左到右用a,b,c表示各位的数字,则从左到右各个数字是bac的三位数的表达式是?答案:(m/10)%10*100+m/100*10+m%10 为什么答案是这个?这道题是什么意思?
3.假定x和y为double型,则表达式x=2,y=x+3/2的值是?答案:3.000000
x,y都是double型,3/2是int型,但是与double型的y相加为什么不进行自动转换变成都double型,也就是说为什么3/2结果仍是1而不是1.5?
4.在16位C编译系统上,若定义long a;,则能给a赋40000的正确语句是?答案:a=4000L*10L;为什么a=20000+20000;a=4000*10;a=30000+10000;都不行?
展开
 我来答
rdwerf
2010-12-21 · TA获得超过691个赞
知道小有建树答主
回答量:6236
采纳率:0%
帮助的人:583万
展开全部
1.16为PC机,地址总线,CPU处理位数为16,传输16个二进制位,16为系统与32为系统的最大的区别是处理数据的能力,一个能处理16个二进制位的数据,一个能处理32个二进位的数据;在32为系统下,int型确实与long 一样长度,没区别。
2、首先你要理解这道题的含义,就是a,b,c分别是M的百位,十位,个位,现在要求bac的值是多少(假设这个数字为P),即:b作为数字P的百位,a作为数字P的十位,c作为数字P的个位,求P是多少,明白了吗?
3、3/2,因为3是INT型,2也是int型,所以3/2是按照int型进行计算,结果为1,如果你把3或2,改成3.0或2.0,就是按照DOUBLE进行计算了,结果就不一样了,这个是C语言的处理规则,在C语言的数据类型隐式转换那节有详细说明,计算是由低向高位转换的,
4、语法没有问题,不会是分号用的是中文字符
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式