B51
第9章基础知识练习(自测)
引入
章前总览 覆盖:多分支走向、取余作条件、else if 互斥、else 配对规则。先作答再提交。
怎么用:
- 选择题 4 道 + 判断题 1 道。
- 注意代码里的中英文标点、以及 % 在条件里的真假。
- 错题回到 B47–B50 复习。
第9章自测
每题选一个选项。判断题选「正确」或「错误」。
1. 下面 C++ 代码执行后的输出是( )。
int m = 14;
int n = 12;
if (m % 2 == 0 && n % 2 == 0)
cout << "都是偶数";
else if (m % 2 == 1 && n % 2 == 1)
cout << "都是奇数";
else
cout << "不都是偶数或奇数";第一行 cout 末尾是中文分号「;」,不是合法 C++ 语句结束符,程序无法正确编译运行,故 A/B/C 都不成立。
2. 下面 C++ 代码执行后的输出是( )。
int m = 14;
int n = 12;
if (m % 2 && n % 2)
cout << "都是偶数";
else if (m % 2 == 1 && n % 2 == 1)
cout << "都是奇数";
else
cout << "不都是偶数或奇数";偶数 %2 为 0,第一条件为假;也不是都奇数,走 else。
3. 下面 C++ 代码执行后的输出是( )。
int m = 7;
if (m / 5 || m / 3)
cout << 0;
else if (m / 3)
cout << 1;
else if (m / 5)
cout << 2;
else
cout << 3;7/5=1、7/3=2,1||2 为真,输出 0;后面分支不会执行。
4. 下面代码执行时输入 21 后,有关描述正确的是( )。
int N;
cin >> N;
if (N % 3 == 0)
cout << "能被3整除";
else if (N % 7 == 0)
cout << "能被7整除";
else
cout << "不能被3和7整除";
cout << endl;21 能被 3 整除,执行第一个 cout(第4行);else 分支不会走。最后的 endl 总会执行,但选项 A 正确描述了分支走向。
在 if…else 语句中,配对规则是 else 总是与最近的未配对的 if 配对。( )
这是 C/C++ 的 else 配对规则;不确定时用花括号明确层次。