LGR SCP-S 2023 第一轮 C++语言模拟试题
第3页,共15页
12. 依次抛出四个六面骰子,按照抛出顺序将骰子上的数值记为 。则 a < b;
b > c; c < d 同时成立的概率为( )。
13. 有 6 堆石子,每堆石子分别有 1,4,7,1,5,4 个。Alice 和 Bob 两人轮流操作。轮
到 Alice 时需要选择一堆石子并拿走其中的任意正奇数个,轮到 Bob 时需要选择
一堆石子并拿走其中的任意正偶数个,最先无法操作的人判输。下列说法正确的是:
( )
A. 若 Alice 先操作,则 Alice 有必胜策略;若 Bob 先操作,则 Alice 有必胜策略。
B. 若 Alice 先操作,则 Alice 有必胜策略;若 Bob 先操作,则 Bob 有必胜策略。
C. 若 Alice 先操作,则 Bob 有必胜策略;若 Bob 先操作,则 Alice 有必胜策略。
D. 若 Alice 先操作,则 Bob 有必胜策略;若 Bob 先操作,则 Bob 有必胜策略。
14. 阅读以下 C++代码片段:
uint32_t Trans(uint32_t x) {
x ^= x << 13; x ^= x >> 17; x ^= x << 5;
return x;
}
void Cycle(uint32_t x) {
uint32_t old = x, cnt = 0;
do {
x = Trans(x); ++cnt;
} while (x != old);
}
其中 uint32_t 表示无符号 32 位整数,在大多数环境中等同于 unsigned int。下列说
法有误的一项是:( )。
A. 若将任意 uint32_t 值代入 Trans 函数,得到的返回值一定和输入参数不同。
B. 若两 uint32_t 变量 x 与 y 的值不同,则 Trans(x)与 Trans(y)的值一定不同。
C. 将任意 uint32_t 值代入 Cycle 函数,则函数执行时++cnt;一行被执行到的次数一
定为奇数。
D. 若将任意 uint32_t 值代入 Cycle 函数,一定不会出现无限循环。
15. 观察如下代码片段:
union U{
bool flag1, flag2, flag3, flag4, flag5;
signed short a;
unsigned short b;
enum E{
CardA = 0, CardB = 1,
CardC = 2, CardD = 142857
} e;
} u;
其中, sizeof(u) 的值为( )。