正在载入在线练习界面,本页内容可直接阅读…

AK CSP › NOIP 普及 2014 第一轮真题 › 第 15 题

NOIP 普及 2014 第一轮 第 15 题:跟踪 do-while 循环使输出为指定值

单项选择 · 程序控制结构 · 难度 容易 · 答案 B

题目

有以下程序:

#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$ 输入的值是(      )。
NOIP 普及 2014 第一轮 第 15 题 原题
原题扫描(页面加载后可直接在线作答)

选项

  • A. -1
  • B. -3
  • C. -5
  • D. 0

答案

B

题解

考点定位

do-while 循环的执行次数与退出条件。

解题过程

初始 s=0、a=1。每轮执行 s+=1、a-=2,因此:

执行轮数sa
11-1
22-3

要输出 s=2,就要在第二轮结束时退出。循环继续的条件是 a!=n,因此此时必须 n=-3。第一轮 a=-1 与 n 不相等,仍会继续;第二轮 a=-3 与 n 相等,恰好退出。

选 B。

易错提醒

do-while 先执行循环体,再判断条件;输出的是计数 s,输入的是退出时 a 的值。

真题版权归 CCF 所有,本站仅用于非商业教学用途。页面加载后可直接在线作答,作答记录保存在本浏览器或账号中。 京ICP备2026056990号-1 京公网安备11010502062986号