C++ Peimer 第2章-变量和基本类型习题答案
2011-09-24 13:06
225 查看
第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");——是一条定义语句,但只能在函数外部定义,即那么为全局变量。
习题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,最后是换行符。
//代码如下: ①std ::cout<<"2M"<<'\n'; ②std::cout<<'2'<<'\t'<<'M"<<'\n';
习题2.11 编写程序,要求用户输入两个数——底数和指数,输出底数的指数次方的结果。
代码如下:
//程序清单 #include<iostream> int main() { int base,exponent;//定义底数,指数 int result=1; std::cout<<"Enter base and exponent:"; std::cin>>base>>exponent; if(exponent<0){//指数小于0 std::cout<<"Exponent can't more than 0"<<std::endl; return -1; } if(exponent>0){//指数大于0 for(int cnt=1;cnt<=exponent;cnt++) result*=base; } std::cout<<base<<"为底数" <<exponent<<"为指数"<<std::endl; std::cout<<"底数的指数次方的结果为:"<<result <<std::endl; system("pause"); return 0; }
习题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");——是一条定义语句,但只能在函数外部定义,即那么为全局变量。
相关文章推荐
- C++ Peimer 第2章-变量和基本类型习题答案
- C++ Peimer 第2章-变量和基本类型习题答案
- 第2章 变量和基本类型 课后习题
- Thinking in java第四版--第2章习题答案--关键字、变量、声明、赋值、初始化、类型转换
- C++ primer 读书笔记(第2章)变量和基本类型
- c++ - 变量与基本类型(1)
- C++基础——1.变量和基本类型(基于c++11)
- [C++]变量和基本类型
- 【C++ Primer学习笔记】第2章:变量和基本类型
- [C++ Primer 第4版]第2章 变量和基本类型
- C++ 变量和基本类型分析
- C++学习之变量和基本类型
- Unix/Linux C++应用开发-C++变量和基本数据类型
- 《C++ Primer(第5版)》学习笔记:第2章 变量和基本类型
- C++知识总结(1)--变量和基本类型
- 第二章 变量和基本类型——2.1 基本内置类型((转)附录之C++中整型的超范围赋值问题)
- [C++ primer]第2章 变量和基本类型
- C++ Primer 第2章 变量和基本类型
- C++Primer第二章(变量和基本类型)笔记
- C++ 基本语法之变量(指针)与数据类型(占用字节大小)