B41
第7章基础知识练习(自测)
引入
章前总览 覆盖:书写格式、关键字、if 条件、取余判断、逗号表达式。先作答再提交;填空类题干已按完整代码展示。
怎么用:
- 选择题 7 道 + 判断题 8 道。
- 条件里非 0 为真;逗号表达式只要最后一个值。
- 错题回到 B36–B40 复习。
第7章自测
每题选一个选项。判断题选「正确」或「错误」。
1. 下列叙述中正确的是( )。
C/C++ 书写较自由,一条语句可跨多行;注释位置也不限于开头。
2. 以下哪个不是 C++ 语言的关键字?( )
cout 是 iostream 中的对象名,不是关键字;int、for、do 都是关键字。
3. 假设现在是上午 10 点,求出 N(正整数)小时后是第几天几时。如输入 20 则为第 2 天 6 点,如输入 4 则为今天 14 点。横线处应填写( )。
int N, dayX, hourX;
cin >> N;
dayX = ______, hourX = ______;
if (dayX == 0)
cout << "今天" << hourX << "点";
else
cout << "第" << (dayX + 1) << "天" << hourX << "点";经过整天数 dayX=(10+N)/24,钟点 hourX=(10+N)%24。N=20 → 1 和 6;N=4 → 0 和 14。
4. 下面的程序用于判断 N 是否为偶数,横线处应填写的代码是( )。
cin >> N;
if (______)
cout << "偶数";
else
cout << "奇数";偶数余 0;B 是赋值不是比较;C/D 会把奇数判进 if。
5. 下面 C++ 代码执行时输入 10 后,正确的输出是( )。
int N;
cout << "请输入正整数:";
cin >> N;
if (N % 3)
printf("第5行代码%2d", N % 3);
else
printf("第6行代码%2d", N % 3);10%3=1 为真,走 if;%2d 宽度为 2,数字前有一个空格,故为「第5行代码 1」。
6. 下面代码求出几天后星期几。若是星期天则输出「星期天」,否则输出形如「星期1」。横线上应填入( )。
int N, nowDay, afterDays;
cin >> nowDay;
cin >> afterDays;
N = nowDay + afterDays;
if (_______________)
printf("星期天");
else
printf("星期%d", N % 7);余数为 0 对应星期天;非 0 时输出 N%7 作为星期几。
7. 以下哪个是 C++ 语言的关键字?( )
do 是关键字;cin、endl 是标准库名字,Abs 也不是关键字。
1. 在每个 if 语句中,都必须有 else 子句与 if 配对使用。( )
单分支 if 可以没有 else。
2. if 语句可以没有 else 子句。( )
与上一题对应:允许只有 if。
3. C++ 语句 cout<<(2, 3, "23"); 的输出为 2,3,23。( )
逗号表达式的值是最后一个,输出应为 23。
4. C++ 语句 cout<<(2*3, 3%10, 2+3); 的输出为 6,3,5。( )
同样只输出最后一个值 5。
5. if 语句中的条件表达式的结果可以为 int 类型。( )
条件可为 int:0 为假,非 0 为真。
6. C++ 表达式 ('1'+'1'=='2' ? flag=1 : flag=2) 的结果值和表达式 (flag==2) 的相同。( )
'1'+'1'=='2' 为假,三目结果为 2;而 (flag==2) 的值为 1(真)。二者数值不同。
7. 在 C++ 代码中,整型变量 X 被赋值为 20.24,则 cout<<(X++, X+1)/10 执行后输出的是 2.124。( )
X 截断为 20;逗号后取 X+1=21,21/10 为整数除法得 2,不是 2.124。
8. C++ 语句 cout << (3,2); 执行后,将输出 3 和 2,且 3 和 2 之间有逗号间隔。( )
只输出逗号表达式的值 2,中间不会打印逗号。