第 1 题
把十进制数 45 转换成二进制:45 = (________)2。
答案:101101
讲解:45 = 32 + 8 + 4 + 1,所以二进制写成 101101。
信息学奥赛 C++ 基本语句课堂练习|20题教师答案与讲解
'C' + 3 的结果对应的字符是 ________。score_1 合法。int a = 5, b = 2;,执行语句 b = a++ + ++a; 后,a 的值是 ________,b 的值是 ________。a 在一次表达式求值中做了多次修改,属于不适合作为基础题标准答案的写法。不同教材或编译环境下常有人算成 a=7, b=12,但从规范角度不应当把它当作可靠标准题。b = a + ++a; 或拆成两步,避免歧义。int a = 4, b = 7;
int c = a + b * 2 - 3;
cout << c;7*2=14,再算 4+14-3=15。18 - 3 * 4 + 17 / 5 + 17 % 5 = ________。3*4=12,17/5=3(整数除法),17%5=2。所以结果是 18-12+3+2=11。char ch = 'b'; 执行 ch = ch + 3; 后,ch 中存放的字符是 ________,它对应的 ASCII 码是 ________。cmath 库中,对应的函数名是 ________。ceil,向下取整是 floor。int x = 8;
if (x % 2 == 0) cout << "Yes";
else cout << "No";(7 < 3 ? 10 : 20) 的值是 ________。7 < 3 为假,所以三目运算取冒号后面的 20。a = 5, b = 8,则逻辑表达式 (a < b && b < 10) 的结果是 ________。bool a = true, b = false, c = true;
cout << (a && !b || c && b);a && !b 为 true,c && b 为 false,最后 true || false,输出 1。int i = 1, s = 0;
while (i <= 5){
if (i % 2 == 0) s += i;
i++;
}
cout << s;int s = 0;
for (int i = 1; i <= 6; i++){
if (i == 4) continue;
if (i == 6) break;
s += i;
}
cout << s;1+2+3+5=11。int n, i = 2;
cin >> n;
while (__________ && i * i <= n){
i++;
}
if (i * i > n) cout << "Yes";
else cout << "No";n % i != 0int a = 1, b = 1, c;
for (int i = 3; i <= 6; i++){
c = __________;
a = b;
b = c;
}
cout << c;a + bint a, b, r;
cin >> a >> b;
while (b != 0){
r = a % b;
a = b;
b = __________;
}
cout << a;rn = 1234,补全下面代码,求 n 的各位数字之积。程序运行结果应为 24。int n = 1234;
int ans = 1;
while (n > 0){
ans *= __________;
n /= 10;
}
cout << ans;n % 101×4×3×2×1=24。