试卷 CSP 2020 入门级第一轮
CSP 2020 入门级第一轮
单项选择题
第 1 题    单选题

在内存储器中每个存储单元都被赋予一个唯一的序号,称为( )

A.

地址

B.

序号

C.

下标

D.

编号

第 2 题    单选题

编译器的主要功能( )

A.

将源程序翻译成机器指令代码

B.

将源程序重新组合

C.

将低级语言翻译成高级语言

D.

将一种高级语言翻译成另一种高级语言

第 3 题    单选题

设 x=true, y=true, z=false,以下逻辑运算表达式值为真的是( ).

A.

(y ∨ z) ∧ x ∧ z

B.

x ∧ (z ∨ y) ∧z

C.

(x ∧ y) ∧ z

D.

(x ∧ y) ∨ (z ∨ x)

第 4 题    单选题

现有一张分辨率为 2048×1024 像素的 32 位真彩色图像。请问要存储这张图像,需 要多大的存储空间?( )。

A.

16MB

B.

4MB

C.

8MB

D.

2MB

第 5 题    单选题

冒泡排序算法的伪代码如下:

 输入:数组L, n ≥ k。输出:按非递减顺序排序的 L。

 算法 BubbleSort:

 1. FLAG ← n //标记被交换的最后元素位置

 2. while FLAG > 1 do

 3? k ← FLAG -1

 4? FLAG ← 1

 5? for j=1 to k do

 6. if L(j) > L(j+1) then do

 7? L(j) ? L(j+1)

8? FLAG ← j

对 nn 个数用以上冒泡排序算法进行排序,最少需要比较多少次?( )。

A.

n^2

B.

n-2

C.

n-1

D.

n

第 6 题    单选题

设AA是一个实数的数组,考虑下面的递归算法:

 XYZ (A[1..n])

 1. if n= 1 then return A[1]

 2. else temp ← XYZ (A[l..n-1])

 3. if temp < A[n]

 4. then return temp

 5. else return A[n]

请问算法XYZXYZ的输出是什么?( )。

A.

AA数组的平均

B.

AA数组的最小值

C.

AA数组的中值

D.

AA数组的最大值

第 7 题    单选题

链表不具有的特点是( )。

A.

可随机访问任一元素

B.

不必事先估计存储空间

C.

插入删除不需要移动元素

D.

所需空间与线性表长度成正比

第 8 题    单选题

有 10 个顶点的无向图至少应该有( )条边才能确保是一个连通图。

A.

9

B.

10

C.

11

D.

12

第 9 题    单选题

二进制数 1011 转换成十进制数是( )

A.

11

B.

10

C.

13

D.

12

第 10 题    单选题

5 个小朋友并排站成一列,其中有两个小朋友是双胞胎,如果要求这两个双胞胎必 须相邻,则有( )种不同排列方法?

A.

48

B.

36

C.

24

D.

72

第 11 题    单选题

下图中所使用的数据结构是( )。

A.

B.

队列

C.

二叉树

D.

哈希表

第 12 题    单选题

独根树的高度为 1,具有 61 个结点的完全二叉树的高度为( )。

A.

5

B.

6

C.

7

D.

8

第 13 题    单选题

干支纪年法是中国传统的纪年方法,由10个天干和12个地支组合成60个天干地 支。由公历年份可以根据以下公式和表格换算出对应的天干地支。 天干 =(公历年份)除以10所得余数 地支 =(公历年份)除以12所得余数 例如,今年是 2020 年,2020 除以 10 余数为 0,查表为"庚”;2020 除以 12,余数为 4,查表为“子” 所以今年是庚子年。 请问 1949 年的天干地支是( ).

A.

己酉

B.

己亥

C.

己丑

D.

己卯

第 14 题    单选题

10 个三好学生名额分配到 7 个班级,每个班级至少有一个名额,一共有( )种不 同的分配方案。

A.

84

B.

72

C.

56

D.

504

第 15 题    单选题

有五副不同颜色的手套(共 10 只手套,每副手套左右手各 1 只),一次性从中取 6 只手套,请问恰好能配成两副手套的不同取法有( )种。

A.

120

B.

180

C.

150

D.

30

阅读程序
第 16 题    判断题

第16~21题题目

1 #include <cstdlib>

2 #include <iostream>

3 using namespace std;

5 char encoder[26] = {'C','S','P',0};

6 char decoder[26];

8 string st;

10 int main() {

11 int k = 0;

12 for (int i = 0; i < 26; ++i)

13 if (encoder[i] != 0) ++k;

14 for (char x ='A'; x <= 'Z'; ++x) {

15 bool flag = true;

16 for (int i = 0; i < 26; ++i)

17 if (encoder[i] ==x) {

18 flag = false;

19 break;

20 }

21 if (flag) {

22 encoder[k]= x;

23 ++k;

24 }

25 }

26 for (int i = 0; i < 26; ++i)

27 decoder[encoder[i]- 'A'] = i + 'A';

28 cin >> st;

29 for (int i = 0; i < st.length( ); ++i)

30 st[i] = decoder[st[i] -'A'];

31 cout << st;

32 return 0;

33 }

输入的字符串应当只由大写字母组成,否则在访问数组时可能越界。( )

A.
正确
B.
错误
第 17 题    判断题

若输入的字符串不是空串,则输入的字符串与输出的字符串一定不一样。()

A.
正确
B.
错误
第 18 题    判断题

将第 12 行的“i < 26i<26”改为“i < 16i<16”,程序运行结果不会改变。( )

A.
正确
B.
错误
第 19 题    判断题

将第 26 行的“i < 26i<26”改为“i < 16i<16”,程序运行结果不会改变。( )

A.
正确
B.
错误
第 20 题    单选题

若输出的字符串为“ABCABCABCA”,则下列说法正确的是( )。

A.

输入的字符串中既有S又有P

B.

输入的字符串中既有S又有B

C.

输入的字符串中既有A又有P

D.

输入的字符串中既有A又有B

第 21 题    单选题

若输出的字符串为“CSPCSPCSPCSP”,则下列说法正确的是( )。

A.

输入的字符串中既有P又有K

B.

输入的字符串中既有J又有R

C.

输入的字符串中既有J又有K

D.

输入的字符串中既有P又有R

第 22 题    判断题

第22~27题题目

1 #include <iostream>

2 using namespace std;

4 long long n, ans;

5 int k, len;

6 long long d[1000000];

8 int main() {

9 cin >> n >> k;

10 d[0] = 0;

11 len= 1;

12 ans = 0;

13 for (long long i = 0; i <n; ++i) {

14 ++d[0];

15 for (int j = 0; j + 1<len; ++j) {

16 if (d[j] == k) {

17 d[j] = 0;

18 d[j + 1] += 1;

19 ++ans;

20 }

21 }

22 if (d[len - 1] == k) {

23 d[len - 1] = 0;

24 d[len] =1;

25 ++len;

26 ++ans;

27 }

28 }

29 cout << ans << endl;

30 return 0;

31 }

假设输入的 n是不超过 2^62 的正整数,k都是不超过 10000 的正整数,完成下面的判断题

和单选题:

?判断题

1)若 k=1,则输出 ans时,len=n。( )

A.
正确
B.
错误
第 23 题    判断题

若 k>1,则输出 ans 时,len —定小于 n。( )

A.
正确
B.
错误
第 24 题    判断题

若 k>1,则输出 ans 时,k^len —定大于n。( )

A.
正确
B.
错误
第 25 题    单选题

若输入的 nn 等于:10^15 ,输入的 k 为 1,则输出等于( )。

A.

1

B.

(10^30-10^15)/2

C.

(10^30+10^15)/2

D.

10^15

第 26 题    单选题

若输入的 n 等于205,891,132,094,649(即 3^30 ),输入的 k 为 3,则输出等 于( )。

A.

3^30

B.

(3^30-1)/2

C.

3^30-1

D.

(3^30+1)/2

第 27 题    单选题

若输入的 n等于 100,010,002,000,090,输入的 k 为 10,则输出等于( )。

A.

11,112,222,444,543

B.

11,122,222,444,453

C.

11,122,222,444,543

D.

11,112,222,444,453

第 28 题    判断题

第28~33题题目

#include <algorithm>
#include <iostream>
using namespace std;

int n;
int d[50][2];
int ans;

void dfs(int n, int sum) {
	if (n == 1) {
		ans = max(sum, ans);
		return;
	}
	for (int i = 1; i < n; ++i) {
		int a = d[i - 1][0], b = d[i - 1][1];
		int x = d[i][0], y = d[i][1];
		d[i - 1][0] = a + x;
		d[i - 1][1] = b + y;
		for (int j = i; j < n - 1; ++j)
			20 d[j][0] = d[j + 1][0], d[j][1] = d[j + 1][1];
		int s = a + x + abs(b - y);
		dfs(n - 1, sum + s);
		for (int j = n - 1; j > i; --j)
			24 d[j][0] = d[j - 1][0], d[j][1] = d[j - 1][1];
		d[i - 1][0] = a, d[i - 1][1] = b;
		d[i][0] = x, d[i][1] = y;

	}

}

int main() {
	cin >> n;
	for (int i = 0; i < n; ++i)
		cin >> d[i][0];
	for (int i = 0; i < n; ++i)
		cin >> d[i][1];
	ans = 0;
	dfs(n, 0);
	cout << ans << endl;
	return 0;

}

假设输入的n是不超过50的正整数,d[i][0]d[i][0]、d[i][i]d[i][i]都是不超过10000的正整

数,完成下面的判断题和单选题:

若输入 n 为 0,此程序可能会死循环或发生运行错误。( )

A.
正确
B.
错误
第 29 题    判断题

若输入 n 为 20,接下来的输入全为 0,则输出为 0。( )

A.
正确
B.
错误
第 30 题    判断题

输出的数一定不小于输入的 d[i][0] 和 d[i][l]的任意一个。( )

A.
正确
B.
错误
第 31 题    单选题

若输入的 n 为 20,接下来的输入是 20 个 9 和 20 个 0,则输出为( )。

A.

1890

B.

1881

C.

1908

D.

1917

第 32 题    单选题

若输入的 n为 30,接下来的输入是 30 个 0 和 30 个 5,则输出为( )。

A.

2000

B.

2010

C.

2030

D.

2020

第 33 题    单选题

若输入的 n 为 15,接下来的输入是 15 到 1,以及 15到1,则输出为( )。

A.

2440

B.

2220

C.

2240

D.

2420

完善程序
第 34 题    单选题

第34~38题题目 

①处应填( )

A.

1

B.

n-1

C.

2

D.

0

第 35 题    单选题

②处应填( )

A.

n/i

B.

n/(i*i)

C.

i*i

D.

i*i*i

第 36 题    单选题

③处应填( )

A.

if(n%i==0)

B.

.if(i*i<=n)

C.

while(n%i==0)

D.

while(i*i<=n)

第 37 题    单选题

④处应填( )

A.

n>1

B.

n<=1

C.

i<n/i

D.

.i+i<=n

第 38 题    单选题

⑤处应填( )

A.

2

B.

n/i

C.

n

D.

i

第 39 题    单选题

第39~43题题目 

①处应填( )

A.

A[j].b>A[j-1].b

B.

A[j].a<A[j-1].a

C.

A[j].a>A[j-1].a

D.

A[j].b<A[j-1].b

第 40 题    单选题

②处应填( )

A.

A[j+1]=A[j];A[j]=t;

B.

A[j-1]=A[j];A[j]=t;

C.

A[j]=A[j+1];A[j+1]=t;

D.

A[j]=A[j-1];A[j-1]=t;

第 41 题    单选题

③处应填( )

A.

A[i].b>A[p-1].b

B.

A[i].b<A[i-1].b

C.

A[i].b>A[i-1].b

D.

A[i].b<A[p-1].b

第 42 题    单选题

④处应填( )

A.

q+1<n&&A[q+1].a<=r

B.

q+1<n&&A[q+1].b<=r

C.

q<n&&A[q].a<=r

D.

q<n&&A[q].b<=r

第 43 题    单选题

⑤处应填( )

A.

r=max(r,A[q+1].b)

B.

r=max(r,A[q].b)

C.

r=max(r,A[q+1].a)

D.

q++

答题卡
单项选择题
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
阅读程序
完善程序
题目总数:43
总分数:100
时间:120分钟
QQ
微信