欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C++ Primer Plus(第六版)摘选一些习题及答案分享

程序员文章站 2022-03-10 17:33:43
1. 为什么c++有多种整型? 有多种整数类型,可以根据特定需求选择合适的类型。例如,可以使用short来存储空格,使用long来确保存储容量,也可以寻找可提高特定计算的速度的类型。 2.声明与下述...

1. 为什么c++有多种整型?

有多种整数类型,可以根据特定需求选择合适的类型。例如,可以使用short来存储空格,使用long来确保存储容量,也可以寻找可提高特定计算的速度的类型。

2.声明与下述描述相符的变量。

(1)short整型,值为80

(2)unsigned int整型,值为42110

(3)值为3000000000的整数

(1)short a = 80;

(2)unsigned int b = 42110;

(3)unsigned long c = 3000000000;(有符号的long最大值为2147483000)或者long long c = 3000000000;

3. c++提供了什么措施来防止超出整型的范围?

c++没有提供自动防止超出整型限制的功能(当超出范围之后,得到的值是不确定的),可以使用头文件climits来确定限制情况。

4. 33l与33之间有什么区别?

常量33l的类型为long,常量33的类型为int。

5. 下面两条c++语句是否等价?

char grade = 65;

char grade = ‘a’;

这两条语句并不真正等价,虽然对于某些来说,它们是等价的。最重要的是,只有在使用ascii码的系统上,第一条语句才将得分设置为字母a,而第二条语句还可用于使用其他的编码系统。其次,65是一个int常量,而‘a’是一个char常量。

6. 如何使用c++来找出编码88表示的字符?指出至少两种法。

(1)char c= 88; cout << c << endl;

(2)cout.put(char(88));

(3)cout << char(88) << endl;

(4)cout << (char) 88 << endl;

7. 将long值赋给float变量会导致舍入误差,将long值赋给double变量呢?将long long值赋给double变量呢?

这个问题的答案取决于这两个类型的长度。如果long为4个字节,这没有损失。因为最大的long的值为20亿,即有10位数。由于double提供了至少13位有效数字,因而不需要进行任何舍入。long long类型可提供19位有效数字,超过了double保证的13位有效数字。

8. 下列c++表达式的结果分别是什么?

(1)8 * 9 + 2;

(2)6 * 3 / 4;

(3)3 / 4 * 6;

(4)6.0 * 3 / 4;

(5)15 % 4;

(1)74;(2)4;(3)0;(4)4.5;(5)3

9. 假设x1和x2是两个double变量,您要将它们作为整数相加,再将结果赋给一个整型变量。请编写一条完成这项任务的c++语句。如果要将它们作为double值相加并转换为int呢?

int a = int(x1) + int(x2);或者int a = (int) x1 + (int) x2;

int a = int(x1 + x2);或者int a = (int) (x1 + x2);

10. 下面每条语句声明的变量都是什么类型?

(1)auto cars = 15;

(2)auto iou = 150.37f;

(3)auto level =‘b’;

(4)auto crat = u‘/u00002155’;

(5)auto fract = ‘8.25f/2.5’;

(1)int;(2)float;(3)char;(4)char32_t;(5)double