有关C语言的几个问题

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;都不行?

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、语法没有问题,不会是分号用的是中文字符
温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网