NOIP 普及组初赛 · NOIP 2014 普及组初赛试题 第 15 题

选择题 · 答案 B · 考点:输入输出、位运算、循环结构

← 整套速查表 NOIP 普及组初赛 全部真题

题目

有以下程序:

#include <iostream>
using namespace std;
int main()
{
	int s, a, n;
	s= 0;
	a= 1;
	cin >> n;
	do
	{
	  s+= 1;
	  a-= 2;
	}
	while ( a != n );
	cout << s << endl;
	return(0);
}

若要使程序的输出值为 $2$,则应该从键盘给 $n$ 输入的值是( )。

答案:B

考点

输入输出位运算 讲解 →位运算 真题汇总 →循环结构

解题思维

看到 do-while 且输出固定值 → 先模拟循环直到 a==n,再反推 n

常见错误

易把 do-while 当 while 以为可执行 0 次;易记错 a 序列为 1,0,-1... 而非 1,-1,-3...

详细解析(节选)

考点:do-while 循环流程|变量同步变化

程序逻辑梳理

同考点真题

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断