共48道题,当前是第30

初赛真题

01 #include <iostream>
02 using namespace std;
03 
04 const int N = 1e4 + 5;
05 
06 int n, A[N], B[N], C[N * 2];
07 
08 int main()
09 {
10     cin >> n;
11     for (int i = 1; i <= n; i++)
12         cin >> A[i];
13     for (int i = 1; i <= n; i++)
14         cin >> B[i];
15     for (int i = 1, j = 1, k = 1; i <= n || j <= n; k++)
16         if (i <= n && A[i] <= B[j])
17             C[k] = A[i++];
18         else
19             C[k] = B[j++];
20     for (int i = 1; i <= 2 * n; i++)
21         cout << C[i] << " ";
22     return 0;
23 }
假设输入的 $n$ 是小于 $N$ 的正整数,数列 $A、B$ 中的数字均是 $int$ 范围内的整数,请回答下列问题


1. A。 数组初始化为 $0$, 如果 $i > n, a[i] = 0$, 然后一直会执行 $C[k] = A[i++]$。 所以会影响答案。
2. B。 考察 $++i, i++$的用法。
3. A。 $k < 2n$, 故 $C[2 * n] = 0$。
4. B。 程序代入数据后,得出答案。
5. C。 $A, B$ 严格递增,得出的数列 $C$ 同样严格递增。
6. A。 给定两个递增数列 $A、B$ ,输出 $A、B$ 混合后的数列从小到大排序的结果。

Question

1. 将第 16 行的 i <= n && 删去会影响输出的结果()

2. 将第 17 行的 i++ 改为 ++i ,同时将第 19 行的 j++ 改为 ++j ,不会影响输出的结果()

3. 若将第 15 行的 || 改为 && ,一定有 C[2 * n] == 0 ()

4. 若数列 A是 1 5 7 8,数列 B 是 2 3 6 9,则输出的数列 C 是()

5. 若给定的数列 A、B 严格递增,对于最后得到的数列 C,满足对任意正整数 $i(1 <= i < 2n)$()

6. 对于以下需求,这份代码可以满足的是()