正在载入在线练习界面,本页内容可直接阅读…
AK CSP › NOIP 普及 2014 第一轮真题 › 第 15 题
NOIP 普及 2014 第一轮 第 15 题:跟踪 do-while 循环使输出为指定值
题目
有以下程序:
#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$ 输入的值是( )。
选项
- A. -1
- B. -3
- C. -5
- D. 0
答案
B
题解
考点定位
do-while 循环的执行次数与退出条件。
解题过程
初始 s=0、a=1。每轮执行 s+=1、a-=2,因此:
| 执行轮数 | s | a |
|---|---|---|
| 1 | 1 | -1 |
| 2 | 2 | -3 |
要输出 s=2,就要在第二轮结束时退出。循环继续的条件是 a!=n,因此此时必须 n=-3。第一轮 a=-1 与 n 不相等,仍会继续;第二轮 a=-3 与 n 相等,恰好退出。
选 B。
易错提醒
do-while 先执行循环体,再判断条件;输出的是计数 s,输入的是退出时 a 的值。
真题版权归 CCF 所有,本站仅用于非商业教学用途。页面加载后可直接在线作答,作答记录保存在本浏览器或账号中。 京ICP备2026056990号-1
京公网安备11010502062986号