您的位置:首页 > 编程语言 > C语言/C++

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,最后是换行符。

//代码如下:
①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");——是一条定义语句,但只能在函数外部定义,即那么为全局变量。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: