#fx20261010. 类型转换

类型转换

1. \ 关于 C++ 中的隐式类型转换,下列说法正确的是() {{ select(1) }}

  • 只发生在数值类型之间,布尔类型不参与隐式转换
  • 由编译器自动完成,但可能存在数据精度丢失的风险
  • 隐式转换绝不会导致数据溢出或截断
  • 能由“范围小”的类型向“范围大”的类型转换

2. \ 执行 int a = 3.14; 后,变量 a 存储的值是() {{ select(2) }}

  • 3.14
  • 3
  • 4
  • 编译报错(浮点数不能直接赋值给整型)

  1.  \ 执行 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;
  • 以上全部发生了类型转换