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.33L和33有什么区别?
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位,可能超过double的13位。
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. 假设x1和x2是两个double变量,您要将它们作为整数相加,再将结果赋值给另一个整型。写出该语句。如果将它们作为double相加并转化成int呢?
(1)int pos = (int) x1 + (int)x2; //或者int pos = int (x1) + int(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