### C++ 类型转换 课后习题 姓名: \_\_\_\_\_\_\_\_\_\_\_\_\_ #### **一、 填空题** 1. 计算机在存储字符(如 `'A'`)时,实际上存的是一个数字,这个数字是根据 \_\_\_\_\_\_\_\_\_\_\_\_\_ 码表来确定的。 2. 例如`int a = 'A';`赋值符两边的类型不一致的情况,会由编译器完成类型转换,叫做 \_\_\_\_\_\_\_\_\_\_\_\_\_ 转换。 3. 为了让代码的意图更清晰,我们通过 `(目标类型)变量名/数值` 的格式去进行类型类型的方式,叫做 **\_\_\_\_\_\_\_\_\_\_\_\_\_**转换。 4. 强制类型转换的语法格式是:`(`\_\_\_\_\_\_\_\_\_\_\_\_\_`)变量名/数值`。 5. 根据ASCII码表的规律,任意一个大写英文字母和它对应的小写字母,它们对应的数字相差 \_\_\_\_\_\_\_\_\_\_\_\_\_。 6. 要把一个表达式 `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. 字符不仅可以和数字进行转换,字符之间也可以进行加减运算。