C++Primer中文版(第四版)题解整理(12)
时间:2025-04-20
时间:2025-04-20
C++Primer题解
示正数、负数和0。
习题2.3
如果在某机器上short类型占16位,那么可以赋给short类型的最大数是什么?
unsignedshort类型的最大数又是什么?
【解答】
若在某机器上short类型占16位,那么可以赋给short类型的最大数是215-1,即32767;而unsignedshort类型的最大数为216-1,即65535。
习题2.4
当给16位的unsignedshort对象赋值100000时,赋的值是什么?
【解答】
34464。
100000超过了16位的unsignedshort类型的表示范围,编译器对其二进制表示截取低16位,相当于对65536求余(求模,%),得34464。
习题2.5
float类型和double类型有什么差别?
【解答】
二者的存储位数不同(一般而言,float类型为32个二进制位,double类型为
64个二进制位),因而取值范围不同,精度也不同(float类型只能保证6位有效数字,而double类型至少能保证10位有效数字)。
习题2.6
要计算抵押贷款的偿还金额,利率、本金和付款额应分别选用哪种类型?解释你选择的理由。
【解答】
利率可以选择float类型,因为利率通常为百分之几。一般只保留到小数点后两位,所以6位有效数字就足以表示了。
本金可以选择long类型,因为本金通常为整数。long类型可表示的最大整数一
般为231-1(即2147483647),应该足以表示了。
付款额一般为实数,可以选择double类型,因为float类型的6位有效数字可能不足以表示。
习题2.7
解释下列字面值常量的不同之处。
(a)'a',L'a',"a",L"a"
(b)10,10u,10L,10uL,012,0xC
(c)3.14,3.14f,3.14L
【解答】
'a',L'a',"a",L"a"