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) 编辑 收藏 举报