小测试-03月28日

朝外信奥2队 3月28号课堂测试

答案版
一、单项选择题
内容覆盖计算机基础、C++语法、顺序结构、判断结构、循环结构。
1. 一个文件大小为 2 MB,在计算机中它等于( )Byte。
A. 2000
B. 2048
C. 2 × 1024 × 1024
D. 2 × 1000 × 1000
答案:C。1 MB = 1024 × 1024 Byte。
2. 下列软件中,属于操作系统的是( )。
A. Windows
B. Word
C. Dev-C++
D. Chrome
答案:A。
3. 在 C++ 中,下面不能作为变量名的是( )。
A. score
B. _sum
C. int
D. num1
答案:C。int 是关键字。
4. 在 C++ 中,表达式 17 % 5 + 3 * 2 的值是( )。
A. 8
B. 9
C. 10
D. 12
答案:A。17 % 5 = 23 * 2 = 6,总和为 8。
5. 已知字符 'A' 的 ASCII 码是 65,字符 'a' 的 ASCII 码是 97,则表达式 'C' + 2 对应的字符是( )。
A. C
B. D
C. E
D. F
答案:C。'C' 的 ASCII 是 67,加 2 后是 69,对应 'E'
6. 下列 IP 地址中,属于 C 类地址的是( )。
A. 10.1.2.3
B. 126.8.9.10
C. 192.168.1.10
D. 172.16.0.1
答案:C。C 类地址第一段范围是 192 到 223。
7. 若要实现“当 x 是偶数时输出 yes,否则输出 no”,下面正确的是( )。
A. if(x % 2 == 0) cout << “yes”; else cout << “no”;
B. if(x / 2 == 0) cout << “yes”; else cout << “no”;
C. if(x % 2 == 1) cout << “yes”; else cout << “no”;
D. while(x % 2 == 0) cout << “yes”; else cout << “no”;
答案:A。
8. 若 a = 17, b = 5,且 a、b 都是 int 类型,则表达式 a / b + a % b 的值是( )。
A. 3
B. 5
C. 6
D. 7
答案:B。整数除法 17 / 5 = 3,余数为 2,总和为 5。
9. 设 a = trueb = falsec = true,则逻辑表达式 (a && b) || (!b && c) 的值是( )。
A. true
B. false
C. 0
D. 不能确定
答案:A。前半部分是假,后半部分是真,所以整体为真。
10. 阅读下面代码,则该 for 循环一共进行了( )轮。
for (int i = 1; i <= 6; i++) { if (i == 2) continue; if (i == 5) break; }
A. 3
B. 4
C. 5
D. 6
答案:C。循环体进入了 i=1,2,3,4,5 共 5 轮,在第 5 轮时 break
11. 若要判断一个数 x 是否为偶数,条件应写成( )。
A. x % 2 == 1
B. x / 2 == 0
C. x % 2 == 0
D. x == 2
答案:C。
12. 设 int x = 3;,执行 int y = x++; 后,x 和 y 的值分别是( )。
A. x = 3, y = 4
B. x = 4, y = 3
C. x = 4, y = 4
D. x = 3, y = 3
答案:B。后置自增先赋值再加 1。
13. 阅读下面代码,程序运行后的输出结果是( )。
int i = 1, s = 0; while (i <= 4) { s += i; i++; } cout << s;
A. 4
B. 6
C. 10
D. 11
答案:C。累加 1+2+3+4=10
14. 阅读下面代码,程序运行后输出的结果是( )。
for (int i = 1; i <= 3; i++) { for (int j = 1; j <= 3; j++) { if (j == 2) break; cout << i << j << ” “; } }
A. 11 12 13 21 22 23 31 32 33
B. 11 21 31
C. 11 12 21 22 31 32
D. 11 21 22 31 32 33
答案:B。每次内层循环到 j=2 就中断,所以只会输出 j=1 时的三项。
15. 下列四个数中,值最小的是( )。
A. 二进制 101101
B. 八进制 55
C. 十进制 44
D. 十六进制 2D
答案:C。其余三个都等于十进制 45,只有 44 最小。
16. 在 8 位二进制补码表示中,十进制数 -5 的补码是( )。
A. 00000101
B. 10000101
C. 11111010
D. 11111011
答案:D。5 的原码是 00000101,取反加一得到 11111011
17. 若要输出 1 到 5 这五个整数,循环变量 i 最常见的写法是( )。
A. for(int i = 1; i <= 5; i++)
B. for(int i = 1; i < 5; i++)
C. for(int i = 0; i < 5; i–)
D. for(int i = 5; i <= 1; i++)
答案:A。
18. 表达式 (3 > 2) && (5 < 4) 的值是( )。
A. true
B. false
C. 1
D. 不能计算
答案:B。前半真、后半假,且运算结果为假。
19. 下列关于顺序结构、判断结构、循环结构的说法中,正确的是( )。
A. 判断结构中不能嵌套循环
B. 循环结构中不能出现判断
C. 三种基本结构都可以组合使用
D. 一个程序只能使用其中一种结构
答案:C。
20. 下列关于解释型语言和编译型语言的说法,正确的是( )。
A. C++ 通常属于编译型语言
B. 编译型语言不需要生成可执行文件
C. 解释型语言运行前一定要先完整编译
D. 编译型语言和解释型语言没有任何区别
答案:A。
二、阅读程序题
阅读下面程序,回答后面问题。
01 #include <iostream> 02 using namespace std; 03 int main() { 04 int x = 3, y = 5; 05 if (x < y) x = x + 2; 06 else x = x – 2; 07 cout << x << ” ” << y << endl; 08 return 0; 09 }
21. 程序运行后的输出结果是( )
答案:B。因为 3 < 5,所以 x 变成 5,输出 5 5
01 #include <iostream> 02 using namespace std; 03 int main() { 04 int s = 0; 05 for (int i = 1; i <= 4; i++) { 06 s += i; 07 } 08 cout << s << endl; 09 return 0; 10 }
22. 程序运行后的输出结果是( )
答案:C。输出 10
01 #include <iostream> 02 using namespace std; 03 int main() { 04 int n = 7; 05 cout << ((n % 3) * (n % 2) ? “A” : “B”); 06 return 0; 07 }
23. 程序运行后的输出结果是( )
答案:A。7 % 3 = 17 % 2 = 1,乘积为 1,条件为真。
01 #include <iostream> 02 using namespace std; 03 int main() { 04 int i = 1; 05 while (i <= 5) { 06 if (i == 4) break; 07 if (i % 2 == 0) { 08 i++; 09 continue; 10 } 11 cout << i; 12 i++; 13 } 14 return 0; 15 }
24. 程序运行后的输出结果是( )
答案:B。依次输出 13,到 i=4 时退出。
01 #include <iostream> 02 using namespace std; 03 int main() { 04 int cnt = 0; 05 for (int i = 1; i <= 3; i++) { 06 for (int j = 1; j <= 2; j++) { 07 if (i + j > 3) cnt++; 08 } 09 } 10 cout << cnt << endl; 11 return 0; 12 }
25. 程序运行后的输出结果是( )
答案:B。满足 i+j>3 的有 (2,2)(3,1)(3,2),共 3 次。