#fx20261010. 类型转换
类型转换
1. 关于 C++ 中的隐式类型转换,下列说法正确的是() {{ select(1) }}
- 只发生在数值类型之间,布尔类型不参与隐式转换
- 由编译器自动完成,但可能存在数据精度丢失的风险
- 隐式转换绝不会导致数据溢出或截断
- 能由“范围小”的类型向“范围大”的类型转换
2. 执行 int a = 3.14; 后,变量 a 存储的值是() {{ select(2) }}
- 3.14
- 3
- 4
- 编译报错(浮点数不能直接赋值给整型)
- 执行 int a =3.9; 后,变量 a 的值是() {{ select(3) }}
- 4
- 3
- 3.9
- 随机值
4. 有 int a = 5, b = 2;,若想得到 double 类型的 2.5,下列写法正确的是() {{ select(4) }}
-
double c = a / b;
-
double c = (double)a / b;
-
double c = a / (double)b;
-
B 和 C 均正确
5. 关于 bool 类型与整数的隐式转换,下列说法错误的是() {{ select(5) }}
-
非零整数转换为 true,零转换为 false
-
true 参与算术运算时视为 1,false 视为 0
-
输出bool类型的变量会输出true或者false
-
关系表达式(如 5 > 3)的结果类型是 bool
6. 执行以下代码,输出结果是() cout << (5 > 3); {{ select(6) }}
- true
- false
- 1
- 0
7. 以下哪条语句属于强制类型转换?() {{ select(7) }}
- int a = 3.14;
- int a = (int)3.14;
- double b = 5;
- char c = 'A';
8. 以下赋值操作中,会造成数据精度丢失的是() {{ select(8) }}
- double d = 3;
- int a = 3.9;
- char c = 'A';
- long long ll = 100;
9. 表达式 10 + 3.5 的结果类型是() {{ select(9) }}
- int
- double
- float
- 无法确定,会产生编译错误
10. 以下代码片段中,属于隐式类型转换(而非强制转换)的是() {{ select(10) }}
- int a = (int)3.14;
- double b = a;(假设 a 为 int 类型)
- char c = (char)65;
- float f = (float)3.14;
11. 已知 char c = 'A';,执行 int i = c; 后,变量 i 的值是() {{ select(11) }}
- 'A'
- 65
- 97
- 编译错误
12. 执行以下代码,程序的输出结果是()
char c = 65;
int i = c;
cout << i;
{{ select(12) }}
- A
- 65
- 66
- 编译错误(char 不能赋值给 int)
13. 执行 int a = (int)(5.0 / 2.0); 后,变量 a 的值是() {{ select(13) }}
- 2.5
- 2
- 3
- 编译错误
14. 执行以下代码,程序的输出结果是()
bool flag = false;
int result = flag + 5;
cout << result;
{{ select(14) }}
- 6
- 1
- 5
- 编译错误(bool 不能与整数相加)
15. 下列代码段中,正确的是() int a = 5; double b = 2.5; {{ select(15) }}
- int c = a + b;
- double d = a * b;
- int e = (int)b;
- 以上全部发生了类型转换