C语言问题,会的进来解答下

来源:百度知道 编辑:UC知道 时间:2024/06/18 09:31:13
在16为C编译系统上,若定义long a:,则能给a赋40000的正确语句是?()

A,a=20000+20000:

Ba=4000*10:

Ca=30000+10000:

Da=4000L*10L
麻烦大侠解析下,不要只给答案

同意楼上的。
楼主是没有弄清楚整型数据所占的长度和计算机的CPU字长有关,在16位机上整型量就占16位,在32位机上整型量就占32位,这个是初学者常忽略的问题。
16位无符号整形数的最大值是 0xFFFF (十进制65535) =>有符号的整形数的范围是 -32768 - 32767. A,B,C三项右边的结果都超过了32767,会溢出,只有D正确。

D

不强制类型为long的话,会以int类型进行计算,只能表示-32768~32767

D