试卷 CSP初赛模拟考试(第02套)
CSP初赛模拟考试(第02套)
单选题
第 1 题    单选题

中国的国家顶级域名是( ).

A.

cn

B.

ch

C.

chn

D.

china

第 2 题    单选题

下列不属于面向对象程序设计语言的是(  ).

A.

C

B.

C++

C.

Java

D.

C#

第 3 题    单选题

以比较作为基本运算,在N个数中找出最大数,最坏情况下所需要的最少的比较次数 为( )。

A.

N^2

B.

N

C.

N - 1

D.

N + 1

第 4 题    单选题

表达式a*(b+c)*d 的后缀表达式为(  ),其中“*”和“+”是运算符。

A.

**a+bcd

B.

abc+*d*

C.

abc+d**

D.

*a*+bcd

第 5 题    单选题

在 8 位二进制补码中,10101011 表示的数是十进制下的(  ).

A.

43

B.

-85

C.

-43

D.

-84

第 6 题    单选题

FTP 可以用于(  )。

A.

远程传输文件

B.

发送电子邮件

C.

浏览网页

D.

网上聊天

第 7 题    单选题

319和377的最大公约数是(  )。

A.

27

B.

33

C.

29

D.

31

第 8 题    单选题

对于有n个顶点、m条边的无向联通图(m>n),需要删掉(  )条边才能使其成为 一棵树。

A.

n - 1

B.

m - n

C.

m - n - 1

D.

m - n + 1

第 9 题    单选题

如果一棵二叉树的中序遍历是 BAC,那么它的先序遍历不可能是( )。

A.

ABC

B.

CBA

C.

ACB

D.

BAC

第 10 题    单选题

以a为起点,对右边的无向图进行深度优先遍历,则b、c、d、e四个点中有可能作 为最后一个遍历到的点个数为(  )。

A.

1

B.

2

C.

3

D.

4

第 11 题    单选题

以 A0 作为起点,对下面的无向图进行深度优先遍历时,遍历顺序不可能是(  )。

A.

A0, A1, A2, A3

B.

A0, A1, A3, A2

C.

A0, A2, A1, A3

D.

A0, A3, A1, A2

第 12 题    单选题

6个人,两个人组一队,总共组成三只不区分队伍的编号,不同的组队情况有( ) 种。

A.

10

B.

15

C.

30

D.

20

第 13 题    单选题

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

A.

5

B.

6

C.

7

D.

8

第 14 题    单选题

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

A.

B.

C.

D.

第 15 题    单选题

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

A.

120

B.

180

C.

150

D.

30

阅读程序
第 16-21 题    组合题
#include <cstdio>
#include <cstring>
using namespace std;
char st[100];
int main() {
	scanf("%s", st);
	int n = strlen(st);
	for (int i = 1; i <= n; ++i) {
		if (n % i == 0) {
			char c = st[i - 1];
			if (c >= 'a')
				st[i - 1] = c - 'a' + 'A';
		}
	}
	printf("%s", st);
	return 0;
}

判断题

1)输入的字符串只能由小写字母或大写字母组成。()

2)若将第8行的“i = 1”改为“i = 0”,程序运行时会发生错误。()

3)若将第8行的“i <= n”改为“i * i <= n”,程序运行结果不会改变。()

4)若输入的字符串全部由大写字母组成,那么输出的字符串就跟输入的字符串一样。()

选择题

5)若输入的字符串长度为18,那么输入的字符串跟输出的字符串相比,至多有()个字符不同。

6)若输入的字符串长度为(),那么输入的字符串跟输出的字符串相比,至多有36个字符

不同。

1.

A. 正确

B. 错误

2.

A. 正确

B. 错误

3.

A. 正确

B. 错误

4.

A. 正确

B. 错误

5.

A. 18

B. 6

C. 10

D. 1

6.

A. 36

B. 100000

C. 1

D. 128

第一空(1.5分):__________________

第二空(1.5分):__________________

第三空(1.5分):__________________

第四空(1.5分):__________________

第五空(3分):__________________

第六空(3分):__________________

第 16 题 填空
第 17 题 填空
第 18 题 填空
第 19 题 填空
第 20 题 填空
第 21 题 填空
第 22-27 题    组合题
#include <iostream>
using namespace std;

long long n, ans;
int k, len;
long long d[1000000];

int main() {
	cin >> n >> k;
	d[0] = 0;
	len= 1;
	ans = 0;
	for (long long i = 0; i <n; ++i) {
		++d[0];
		for (int j = 0; j + 1<len; ++j) {
			if (d[j] == k) {
				d[j] = 0;
				d[j + 1] += 1;
				++ans;
			}
		}
		if (d[len - 1] == k) {
			d[len - 1] = 0;
			d[len] =1;
			++len;
			++ans;
		}
	}
	cout << ans << endl;
	return 0;
}

题目如图

第一空(1.5分):___________________

第二空(1.5分):___________________

第三空(1.5分):___________________

第四空(3分):___________________

第五空(3分):___________________

第六空(3分):___________________


第 22 题 填空
第 23 题 填空
第 24 题 填空
第 25 题 填空
第 26 题 填空
第 27 题 填空
第 28-33 题    组合题
#include <stdio.h>

int n;
int a[1000];

int f(int x) {
	int ret = 0;
	for (; x; x &= x - 1) ret++;
	return ret;
}

int g(int x) {
	return x & -x;
}

int main() {
	scanf("%d", &n);
	for (int i = 0; i < n; i++) scanf("%d", &a[i]);
	for (int i = 0; i < n; i++)
		printf("%d ", f(a[i]) + g(a[i]));
	printf("
	       ");
	return 0;
}

判断题

1)输入的n等于1001时,程序不会发生下标越界。()

2)输入的 a[i] 必须全为正整数,否则程序将陷入死循环。()

3)当输入为”5 2 11 9 16 10”时,输出为”3 4 3 17 5”。()

4)当输入为”1 511998”时,输出为”18” 。()

5)将源代码中g函数的定义(13-16行)移到main函数的后面,程序可以正常编译运行。()

单选题

6)当输入为”2 -65536 2147483647”时,输出为()

1.

A.正确

B.错误

2.

A.正确

B.错误

3.

A.正确

B.错误

4.

A.正确

B.错误

5.

A.正确

B.错误

6.

A."65532 33"

B."65552 32"

C."65535 34"

D."65554 33"

第一空(1.5分):______________________________

第二空(2.5分):______________________________

第三空(2.5分):______________________________

第四空(2.5分):______________________________

第五空(2.5分):______________________________

第六空(3分):______________________________

第 28 题 填空
第 29 题 填空
第 30 题 填空
第 31 题 填空
第 32 题 填空
第 33 题 填空
第 34-38 题    组合题

题目如图

1)①处应填( )

2)②处应填( )

3)③处应填( )

4)④处应填( )

5)⑤处应填( )

1.

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

2.

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;

3.

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

4.

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

5.

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++

第一空(3分):_________________

第二空(3分):_________________

第三空(3分):_________________

第四空(3分):_________________

第五空(3分):_________________

第 34 题 填空
第 35 题 填空
第 36 题 填空
第 37 题 填空
第 38 题 填空
第 39-43 题    组合题

题目如下图

①处应填()

②处应填()

③处应填()

④处应填()

⑤处应填()

1.

A. ++cnt [i]

B. ++cnt[b[i]]

C. ++cnt[a[i] * maxs + b[i]] D. ++cnt[a[i]]

2.

A. ord[--cnt[a[i]]] = i

B. ord[--cnt[b[i]]] = a[i]

C. ord[--cnt[a[i]]] = b[i] D. ord[--cnt[b[i]]] = i

3.

A. ++cnt[b[i]]

B. ++cnt[a[i] * maxs + b[i]]

C. ++cnt[a[i]] D. ++cnt [i]

4.

A. res[--cnt[a[ord[i]]]] = ord[i]

B. res[--cnt[b[ord[i]]]] = ord[i]

C. res[--cnt[b[i]]] = ord[i] D. res[--cnt[a[i]]] = ord[i]

5.

A. a[i], b[i]

B. a[res[i]], b[res[i]]

C. a[ord[res[i]]], b[ord[res[i]]]

D. a[res[ord[i]]], b[res[ord[i]]]

第一空(3分):_____________________

第二空(3分):_____________________

第三空(3分):_____________________

第四空(3分):_____________________

第五空(3分):_____________________

第 39 题 填空
第 40 题 填空
第 41 题 填空
第 42 题 填空
第 43 题 填空
答题卡
单选题
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
阅读程序
题目总数:20
总分数:43
时间:120分钟
QQ
微信