第5章基础知识练习(自测)
章前总览 覆盖:浮点/字符常量类型、浮点除法、强制转换、引号与字符串。先作答再提交;含代码题已按完整代码块展示。
怎么用:
- 选择题 12 道 + 判断题 15 道。
- 想要小数商:至少一侧是浮点,或先强制转换。
- 错题回到 B25–B29 复习。
每题选一个选项。判断题选「正确」或「错误」。
不带 f/F 后缀的小数常量默认是 double。
单引号括起的一个字符是 char;数字 3 才是 int。
A、B 可能因整数除法截断出错;C 中 1/2 先得 0。D 乘以 0.5 得到正确浮点面积。
7.0 是浮点常量,默认为 double。
A 先算 a/b 得整数 3,再加 0.0 得 3.0;其余先引入浮点再除,得 3.5。
强制转换要写 char(66) 或 (char)66,不能写成 char 66。
cin 不会计算 5+2;行为依赖 a 的类型;若 a 未定义则无法通过编译。
x=3.16 int; 语法错误。A/B/C 均可(浮点赋给 int 会截断)。
float a;
a = 101.101;
a = 101;
printf("a+1={%.0f}",a+1);后一次赋值 a=101,a+1=102;%.0f 输出整数形式 102,整句为 a+1={102}。
单引号只能括一个字符;多字符字符串必须用双引号。
printf("Hello,GESP!");相邻字符串字面量会自动拼接,"""Hello,GESP!""" 等价于 "Hello,GESP!"。
printf("我爱码代码!");两个单引号不能代替字符串的双引号定界;D 因相邻字面量拼接仍可成立。
双引号是字符串常量;字符常量应写 'A'。
3.0 是 double(浮点)常量。
结果数值为 2.0,类型是 double。
'3' 是 char 常量。
3.5 是 double,与 2 运算后仍为 double,值为 7.0。
强制转 int 会截断小数部分,得到 3。
'1' 的 ASCII 为 49,49+49=98,对应字符 'b',不是 '2'。
C++ 不能用 * 把字符串和整数直接相乘(与某些脚本语言不同)。
数值相等不代表类型相同;double 与 int 占用空间不同。
若 X 为浮点,输出约为 1.644;只有 X 为 int 时才会得到整数商 1。题干未限定类型,不能说“一定是 1”。
N/4 与 N%4 为 2 和 2,但 N/4.0 是 2.5,不是 2.0。
float 可读入整数或小数,再强制转 int 输出(截断)。
输入字母时 scanf 可能匹配失败,但程序通常仍继续运行;输入 3.6 时还会读入整数部分 3。并非“无法执行”。
char N;
printf("请输入正整数:");
cin >> N;
printf("%d\n", N * 2);cin 读 char 只取第一个字符 '1'(ASCII 49),49*2=98,不是 20。
scanf %d 读入 3,N/3*5 = 1*5 = 5,不是 6。