正在载入在线练习界面,本页内容可直接阅读…
AK CSP › CSP-J 2026 第一轮真题 › 第 16 题
CSP-J 2026 第一轮 第 16 题:程序(一):当输入为 3 时,程序输出为 3 3
题目
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
int x = 1, y = 1;
while (n > 0) {
if (n % 2 == 0) {
++x;
} else {
++x;
++y;
}
n = n / 2;
}
cout << x << ' ' << y << endl;
return 0;
}
以下问题均假定输入的 $n$ 为不超过 $2^{31}- 1$ 的非负整数。本小题
(1 分)当输入为 3 时,程序输出为 3 3。( )
选项
- √. 正确
- ×. 错误
答案
√
题解
选 √(正确)。
初始时 n = 3,x = 1,y = 1,逐步执行:
| 循环 | 开始时的 n | 执行操作 | x | y | n = n / 2 后 |
|---|---|---|---|---|---|
| 第 1 次 | 3(奇数) | x、y 都加 1 | 2 | 2 | 1 |
| 第 2 次 | 1(奇数) | x、y 都加 1 | 3 | 3 | 0 |
注意:整数除法会舍去小数部分,所以 3 / 2 = 1,1 / 2 = 0。
此时 n = 0,循环结束,输出 3 3,因此题目说法正确。
真题版权归 CCF 所有,本站仅用于非商业教学用途。页面加载后可直接在线作答,作答记录保存在本浏览器或账号中。 京ICP备2026056990号-1
京公网安备11010502062986号