全国信息素养-C++模拟题-03
1. 您的姓名:
2. 下面C++代码执行,其输出是()。
A. 3 4
B. 3 3
C. 4 4
D. 4 3
3. 求三色彩球的颜色。有数量无限的红(Red)绿(Green)蓝(Blue)三种彩球排成一行,每组先为5个红色球,随后3个绿色,最后为2个蓝色。每个球都有编号,从左到右依次为1,2,3……。输入整数代表编号,求该编号球的颜色。下面是C++代码是实现,正确说法是()。
A. 将 else if ((remainder == 9) || (remainder == 0)) 修改为 else 效果相同
B. 将 ((1 <= remainder) && (remainder<= 5)) 修改为 (remainder <= 5) 效果相同
C. else if ((6 <= remainder) && (remainder <= 8)) 写法错误,应修改为 else if (6 <=remainder <= 8)
D. 根据题意 remainder = N % 10 应修改为 remainder = N / 10
4. 下面C++代码执行后其输出是()
A. 18
B. 17
C. 16
D. 14
5. 下面C++代码执行后输出是( )。
A. 10
B. 8
C. 0
D. 因为循环执行时会执行break语句而终止循环,所以i的值不确定
6. 下面C++代码执行后输出是()。
A. 0#0#0#0#0#0#
B. 0#0#0#0#0#0#0#1#
C. 0#0#0#0#1#
D. 0#0#0#0#0#0#1#
7. 下面C++代码执行后的输出是( )。
A. 1-2-1-3-2-1-4-3-2-1-
B. 1-2-1-3-2-1-4-3-2-1
C. 0-0-1-0-1-2-0-1-2-3-
D. 0-0-1-0-1-2-0-1-2-3
8. 下面C++代码执行后,将输出能被2整除且除以7余数为2的数。下列选项不能实现的是()
A. ((i % 2 == 0) && (i % 7 == 2))
B. ((!(i % 2)) && (i % 7 == 2))
C. ((!(i % 2)) && (!(i % 7)))
D. ((i % 2 != 1) && (i % 7 == 2))
9. 下面C++代码用于求1到N之间正整数中含有3的数的个数,比如 123 和 32 都是符合条件的数。则前后两处横线应填入代码分别是()。
A.
B.
C.
D.
10. 在数学中N!表示N的阶乘,即1到N的乘积,如 3!=1*2*3 ,且 0! = 1 。下面的两段C++代码用于求1到N的阶乘之和,如N为3,则结果是9( 1!+2!+3! 的值)。选项中的说法正确的是()。
A. 虽然实现1的代码短小,但效率并不高
B. 实现2的代码效率更高,且更易于理解
C. 实现1因为应用了前项计算结果,计算量更小,因此效率高
D. 两种实现,效率几乎一致
11. 哥德巴赫猜想是指大于2的偶数都可以分解为两个质数之和,下面的代码用于验证4-1000之内的偶数能否分解为两个质数之和。下面C++代码中假设isPrime()是已经定义好用于判断正整数N是否为质数, 返回bool值。对该段代码,错误的说法是()。
A. 将代码 isPrime(j) && isPrime(i-j) 修改为isPrime(j) == true && isPrime(i-j) == true 效果相同
B. 代码执行后,输出的一对质数,一定是小的数在前
C. 即便将外层循环中i的上界1000修改为很大的整数,也不能说从数学上证明了哥德巴赫猜想
D. 根据题意,break语句应该移到if语句块之外
12. 已知C++代码和执行后的期望输出如下,相关说法正确的是()。
A. 倒数第二行的 printf("\n") 有错,应该修改为 cout << endl; ,printf( )函数不能输出换行
B. last += 1 修改为 last = last + 1 执行效果相同
C. 代码中L1标记行中的 j < i + 1 应修改为 j < i
D. 外层for循环前的 last = 1 修改为 last = 0 执行效果相同
13. 在C++中,()最适合填入横线处连续5次正确生成1到10之间的随机整数?
A. rand( ) % 11
B. rand( ) % 10
C. rand( ) % 10 + 1
D. rand() % 9 + 1
14. 在C++中,如果 a 和 b 均为 float 类型的变量,那么二者如果相差足够小(比如0.000001),就可以视作相等。比如 2.2345676 和 2.2345677 就可以视作相等。下列哪个表达式能用来正确判断“a等于b” ()。
A. ((b-a) < 0.000001 )
B. ((b-a) <= 0.000001 )
C. (abs(b-a) <= 0.000001 )
D. (sqrt(b-a) <= 0.000001 )
15. 在C++代码中,假设N为正整数,则 N - N / 10 * 10 与 N % 10 都将获得N的个位数。( )
对
错
16. C++语句 cout << ((10 <= N <= 12)? "true":"false") 中,假设整型变量N为12,则其输出为true 。原因是执行 10 <= N 后其值为 true , true 与 12 相比仍然是 true 。( )
对
错
17. C++表达式 (sqrt(N) * sqrt(N)) == N 中的N如果为正整数,则表达式的值为true,相当于开平方后平方 是本身。( )
对
错
18. 下面C++执行后将输出 3*2=6 。 ( )
对
错
19. 下面C++代码执行后将输出10。( )
对
错
20. 下面C++代码执行后将输出1。( )
对
错
21. 下面的C++代码执行后将输出10行"OK"。( )
对
错
22. 将下面C++代码中的for循环中的 i = 1 调整为 i = 0 的输出结果相同。( )
对
错
23. 下面C++代码执行后将输出 0123 。( )
对
错
24. 下面代码用来找出输入的N个正整数中最大的一个。如果将代码段用流程图来表示,则 L1 标记的代码行应该使用的图形是()。
A. 圆形框
B. 椭圆形框
C. 平行四边形框
D. 菱形框
25. 下面 C++ 代码可以执行,有关说法正确的是()
A. 为了方便初学者, cout << (PI) 和 cout << (pi) 效果相同,即变量的大小写不敏感
B. cout << (PI) 修改为 cout << (Pi) 能正常执行
C. 不能用 PI 做变量名,因为要保存圆周率这个常量
D. 将程序中全部 PI 都改写为 Pai ,将能正常执行,不会报错
26. 下面选择项中,与C++表达式 !(x > 5 && y <= 10) 等价的是()。
A. x <= 5 && y > 10
B. x > 5 || y <= 10
C. x <= 5 || y > 10
D. ! x > 5 && ! y <= 10
27. 某同学执行C++代码 cout << ((0.1 + 0.2) == 0.3) 时输出 0 ,下面最可能的原因是()。
A. C++的 + 运算符在处理小数时存在bug
B. 0.1 、 0.2 和 0.3 在计算机中无法用二进制浮点数精确表示,导致 0.1 + 0.2 的结果与 0.3 存在微小误差
C. == 运算符不能用于比较浮点数,只能用于整数
D. 因为 0.1 + 0.2 的数学结果不等于 0.3
28. 下面的 C++ 代码段执行后其输出是()。
A. 0#1#3#6#10#10
B. 1#2#3#4#5#6#7#8#9#10#10
C. 10#10
D. 10
29. 下面的 C++ 代码执行之后的输出是()。
A. 0#
B. -2#-1#1#
C. -1#0#
D. -2#0#1#
30. 下面的 C++ 代码执行后其输出是()。
A. 0#0#1#0#1#2#0#1#2#3#12
B. 0#0#1#0#1#2#0#1#2#3#
C. 0#
D. 1#
31. 下面 C++ 代码执行后其输出是()。
A. 2
B. 4
C. 6
D. 8
32. 下面4个选项中,与下面 C++ 代码段具有相同效果的是()。
A.
B.
C.
D.
33. 下面 C++ 代码执行后输出是()。
A. 0
B. 5
C. 6
D. 7
34. 下面 C++ 代码段执行后,其输出是()。
A. 5
B. 15
C. 20
D. 30
35. 某学校图书馆的借阅卡号由6位整数组成。前5位是顺序编号,第6位是校验码,用于防止输错。校验码规则如下:将前5位数字相加,然后除以10的余数,就是第6位数字。如卡号 123455 的前5位之和为 15 ,除以 10 的余数是5,故第6位为5。下面的C++代码段用于判断卡号是否正确,横线处应填入的代码是()。
A.
B.
C.
D.
36. 下面的 C++ 代码段正常执行后其输出的数字图形是()。
A.
B.
C.
D.
37. 某学校举办“校园演讲比赛”,每位选手由8位评委打分(分数为 0~10 的整数),且每位评委必须打分。计分规则:若至少有5位评委给出大于等于6分,则成绩有效,最终得分为所有8位评委的总分;如给出低于6分的评委数量超过5位,则记为0分。以下核心程序段依次输入8个分数,并计算最终得分。横线处应填入( )。
A.
B.
C.
D.
38. C++ 语句 cout << ('4' % '2' == '2' * '2' % 2); 执行后的输出是1。( )
对
错
39. 下面的 C++ 代码段执行时将报错,因为10是整数类型, a 是布尔类型。由于类型不同,不能进行加法运 算。( )
对
错
40. 下面C++代码段执行后将输出 0-3-6-9- 。 ( )
对
错
41. 执行下面的 C++ 代码段,如果N是基本数据类型,则语句 cout << (N); 将被执行 0 次或无数次(即死循 环)。( )
对
错
42. 下面的 C++ 代码段可正常执行,删除 continue 不影响执行效果。( )
对
错
43. 下面的 C++ 代码段用于计算1到N之间且包含N的所有数字中含有的3的个数,如1到40含有14个3, 而1到20则 只含有2个3。如果将 while (i != 0) 改为 while (abs(i)) ,则执行结果相同。( )
对
错
44. 下面的 C++ 代码段执行将不会有输出,因为内层循环 j 总是 0 开始, i * j % 10 == 0 将会被满足,执 行 break ,故而 i 小于 10 ,不会满足 if 判断条件。( )
对
错
45. 下列 C++ 代码执行后将输出 1#4#9#16#16 。( )
对
错
46. 下面 C++ 代码执行后输出如左图所示,将 " %d" 修改为 "%3d" 即可实现右图输出。( )
对
错
关闭
更多问卷
复制此问卷