C++ Peimer 第2章-变量和基本类型习题答案


第2章-变量和基本类型

习题2.1 int、long和short类型之间有什么差别?

——它们的存储空间大小不同,一般,short类型为半个机器字长,int类型为一个机器字长,而long类型为一个或两个机器字长(在32位机器中int类型和long类型通常字长是相同的。)

 

习题2.2 unsigned和signed类型有什么差别?

——前者为无符号类型,只能表示大于或等于0的正数。后者为符号类型,可以表示正数、负数和0。

 

 

习题2.3 如果在某机器上short类型占16位,那么可以赋给shor类型的最大数是什么?unsigned short 类型的最大数又是什么?

——可以赋给short类型最大数是2^15-1=32767,赋给unsigned short类型的最大数是2^16-1=65535.

 

 

习题2.4 当给16位的unsigned short对象赋值100000时,赋得值是什么?

——给16位的unsigned short对象赋值100000时超过unsigned short类型范围溢出,编译器对其二进制表示截取低16位,相当于对65536求模,100000%65536=34464。

 

 

习题2.5  float类型和double类型有什么差别?

——二者存储位数不同,一般float类型用一个字(32位)来表示,double类型用两个字(64位)来表示;因而取值范围不同,精度也不同,float类型只能保证6位有效数字,而double型至少可以保证10位有效数字。

 

 

习题2.6  要计算抵押贷款的偿还金额,利率、本金和付款额应分别选择哪种类型?解释你选择的理由。

——利率可以选择float类型,因为利率通常是百分之几,一般只保留到小数点后两位,所以6位有效数字就足以表示。本金可以选择long类型,因为本金通常是整数。付款额一般为实数,选择double类型,float类型的六位有效数字可能不足以表示。

 

 

习题2.7~习题2.9

字面值常量:

1.整形字面值(十进制、八进制(0开头)、十六进制(0x开头))

2.浮点字面值(默认为double类型,在数值的后面加上F/f表示单精度)

3.布尔字面值和字符字面值(字符型字面值通常用一对单引号来定义)

4.非打印字符的转义序列(以反斜线符号开始)

5.字符串字面值(用双引号括起来的零个或者多个字符表示)

 

 

习题2.10  使用转义字符编写一段程序,输出2M,然后换行。修改程序,输出2,跟着一个制表符,然后是M,最后是换行符。


 

 

习题2.11  编写程序,要求用户输入两个数——底数和指数,输出底数的指数次方的结果。

代码如下:


 

 

习题2.12~2.13

区分左值和右值,举例说明。

左值就是变量的地址,右值就是变量的值。

例:val1=val2/8;val1是左值,val2和8都是右值。

 

 

习题 2.14

关于变量命名:变量名,即变量的标识符,可以由字母、数字和下划线组成。变量名必须以字母或下划线开头,并且区分大小写字母。

 

习题2.15~2.17

关于变量定义和初始化问题,不详说

 

 

习题2.18 解释下列例子中name的意义:

extern std::string name;——是一条声明语句,对String类型变量name进行了声明;

std::string name("exercise 3.5a");——是一条定义语句,并对变量那么初始化了;

extern std::string name("exercise 3.5a");——是一条定义语句,但只能在函数外部定义,即那么为全局变量。

 

 

 

 


 

 

 

 

 

 

 

 

posted on 2011-09-24 13:06  spring学习笔记  阅读(246)  评论(0编辑  收藏  举报