c++primer Plus 6 的课后题(第三章3.6)

3.6复习题

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

为了表示不同长度的整数。

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

a. short 整数,值为 80          short n = 80;

b. unsigned int 整数, 值为 42110   unsigned int n =42110

c. 值为3000000000 整数 long long n = 3000000000

3. C++提供了什么措施防止超过整型的范围?

C++没有提供自动防止找出整型范围的功能,可以使用climits来确定限制。

4.33L33有什么区别?

33L是浮点数,33是整数

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

char grade = 65 ;

char grade = A;

不真正等价,但是对某些系统,它们是等效的。

6. 如何使用C++找出编码为88表示的字符?至少使用两种方法

(1)记住A编码为65,往后加到88可以手动算出88的字符

(2)char c = 88 ; cout<<c;

(3)cout.put(char(88))

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

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

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

取决于变量的长度,long double 不会有舍入误差,

long long 可以有19位,可能超过double13位。

8. 下面C++表达式的结果分别是多少?

a.8*9 +2   // 8*9+2 = 72 +2 =74

b.6*3/4   // 6*3/4 = 18/4 = 4

c.3/4*6  // 3/4*6= 0*6 =0

d. 6.0*3 / 4 // 6.0*3 /4 = 18.0/4 = 4.5

e. 15%4  //15%4 = 3

9. 假设x1x2是两个double变量,您要将它们作为整数相加,再将结果赋值给另一个整型。写出该语句。如果将它们作为double相加并转化成int呢?

(1)int pos = (int) x1 + (int)x2;  //或者int pos = int (x1) + int(x2);

 (2) int pos = (int) (x1+x2); //或者 int pos = int(x1+x2);

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

a. auto cars =15 // int

b. auto iou = 150.37f //float

c. auto level =’B’ //char

d. auto crat = U’/U00002155’//char32_t

e. auto fract = 8.25f/2.5 //double


猜你喜欢

转载自blog.csdn.net/qq_41068877/article/details/80711590