13. 在下列代码的横线处填写(),可以使得输出是“20 10”。 (2023年3月 GESP C++ 一级)
13. 在下列代码的横线处填写(),可以使得输出是“20 10”。
#include <iostream>
using namespace std;
int main() {
int a = 10, b = 20;
a = ________; // 在此处填入代码;
b = a / 100;
a = a % 100;
cout << a << " " << b << endl;
return 0;
}A. a + b
B. (a + b) * 100
C. b * 100 + a
D. a * 100 + b
正确答案是 D. a * 100 + b
以下是对每个选项的详细分析:
A. a + b
a = a + b相当于a = 10 + 20,所以a变为 30。b = a / 100相当于b = 30 / 100,所以b变为 0。a = a % 100相当于a = 30 % 100,所以a变为 30。输出为 "30 0",不符合要求。
B. (a + b) * 100
a = (a + b) * 100相当于a = (10 + 20) * 100,所以a变为 3000。b = a / 100相当于b = 3000 / 100,所以b变为 30。a = a % 100相当于a = 3000 % 100,所以a变为 0。输出为 "0 30",不符合要求。
C. b * 100 + a
a = b * 100 + a相当于a = 20 * 100 + 10,所以a变为 2010。b = a / 100相当于b = 2010 / 100,所以b变为 20。a = a % 100相当于a = 2010 % 100,所以a变为 10。输出为 "10 20",不符合要求。
D. a * 100 + b
a = a * 100 + b相当于a = 10 * 100 + 20,所以a变为 1020。b = a / 100相当于b = 1020 / 100,所以b变为 10。a = a % 100相当于a = 1020 % 100,所以a变为 20。输出为 "20 10",符合要求。
因此,正确答案是 D. a * 100 + b。

