3.6 KiB
C++ 类型转换 课后习题
姓名: _____________
一、 填空题
- 计算机在存储字符(如
'A')时,实际上存的是一个数字,这个数字是根据 _____________ 码表来确定的。 - 例如
int a = 'A';赋值符两边的类型不一致的情况,会由编译器完成类型转换,叫做 _____________ 转换。 - 为了让代码的意图更清晰,我们通过
(目标类型)变量名/数值的格式去进行类型类型的方式,叫做 **_____________**转换。 - 强制类型转换的语法格式是:
(_____________)变量名/数值。 - 根据ASCII码表的规律,任意一个大写英文字母和它对应的小写字母,它们对应的数字相差 _____________。
- 要把一个表达式
a + b的计算结果整体转换为char类型,正确的写法是(char)_____________。
二、 单项选择题
( ) 1. 执行 cout << (char)65; 这行代码,屏幕上会输出什么?
A. 65 B. 'A' C. 'a' D. 无法输出
( ) 2. 执行 cout << (int)'a'; 这行代码,屏幕上会输出什么?
A. 'a' B. 65 C. 97 D. 32
( ) 3. 要将大写字母 'C' 转换为小写字母 'c',正确的计算方法是?
A. 'C' + 32 B. 'C' - 32 C. 'C' + 'a' D. 'C' - 'A'
( ) 4. 要将小写字母 'z' 转换为大写字母 'Z',正确的计算方法是?
A. 'z' + 32 B. 'z' - 32 C. 'z' + 'A' D. 'z' - 'a'
( ) 5. 当一个 double 类型的变量(如 3.14)被转换为 int 类型时,会发生什么?
A. 四舍五入,变为 3
B. 丢失小数部分,变为 3
C. 四舍五入,变为 4
D. 程序会报错
( ) 6. 表达式 (char)('B' + 1) 的计算结果是什么?
A. 'B' B. 'A' C. 'C' D. 2
( ) 7. 相比于 char c = 97;,使用 char c = (char)97; 这种写法的优点是?
A. 运行速度更快
B. 程序占用的内存更小
C. 代码的意图更清晰明确
D. 没有任何区别
( ) 8. 差值计算法中,'D' - 'A' 这个表达式的含义是?
A. 字母D减去字母A
B. 计算D和A的ASCII码值的差
C. 这是一个错误写法
D. 结果等于 'C'
( ) 9. 当一个 int 类型的数和一个 double 类型的数做加法时,int 类型会自动转换为哪个类型?
A. char B. int C. double D. 不会转换
( ) 10. cout << (char)48; 会在屏幕上输出什么字符?
A. 'a' B. 'A' C. '0' D. '1'
三、 判断题 (对的打“√”,错的打“×”)
( ) 1. 计算机在保存字符 'A' 时,就是保存了字母A的图片信息。
( ) 2. char c = 65; 这种写法属于强制类型转换。
( ) 3. 在ASCII码表中,所有小写字母对应的数字都比对应的大写字母要大。
( ) 4. 表达式 'a' - 'A' 的计算结果是 32。
( ) 5. 把一个小数(double)赋值给一个整数(int)是一种安全的操作,不会丢失任何数据。
( ) 6. (char)x + y 和 (char)(x + y) 的计算过程和结果是完全一样的。
( ) 7. 'Y' + 32 的计算结果是小写字母 'y'。
( ) 8. 使用 (char)num 进行强制类型转换前,我们不需要关心 num 的值是多少,转换总是安全的。
( ) 9. 'a' + ('C' - 'A') 这个表达式可以把大写字母 'C' 转换为小写字母 'c'。
( ) 10. 字符不仅可以和数字进行转换,字符之间也可以进行加减运算。