有以下程序:
#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$ 输入的值是( )。
看到 do-while 且输出固定值 → 先模拟循环直到 a==n,再反推 n
易把 do-while 当 while 以为可执行 0 次;易记错 a 序列为 1,0,-1... 而非 1,-1,-3...
考点:do-while 循环流程|变量同步变化
s 初始 0,每次 +1。a 初始 1,每次 -2,序列为 1, -1, -3, -5, …a != n 为真时继续,至少执行一次。