2024CSP-J原创初赛模拟卷2

(认证时间:2023年9月16日 09:30~11:30)
*
基本信息:
姓名:
姓名:
班级:
班级:
学校:
学校:

一、单项选择题(每题只有一个正确选项,每题2分,共30分)

*
1.在C++中,下列变量名是合法的是()
A. 3f
B. 7_8z
C. _int
D. train.cpp
*
2.八进制数20240512(8)和21504702(8)的和为()
A.41745414(8)
B.41745514(8)
C.41745554(8)
D.41744414(8)
*
3.阅读下述代码,请问将stu2的score修改为97的正确方式是()
struct node{
                  string name;
                  char clas;
                  int score;
}stu1, stu2;
A. stu1->score = 97;
B. stu2->score = 97;
C. stu1.score = 97;
D. stu2.score = 97;
*
4.对于一个线性表,既要求能够进行较快速地插入和删除,又要求存储结构能反映数据之间的逻辑关系,则应该用()
A. 顺序存储方式
B. 链式存储方式
C. 散列存储方式
D. 以上均可以
*
5.在一个单链表中,已知q所指结点是p所指结点的前驱结点,若在q和p之间插入结点s,则执行()
A. s->next = p->next; p->next = s;
B. p->next = s->next; s->next = p;
C. q->next = s; s->next = p;
D. p->next = s; s->next = q;
*
6.对于有 n 个顶点、m 条边的无向连通图 (m>n),需要删掉( )条边才能使其成为一棵树。()
A. n-1
B. m-n
C. m-n-1
D. m-n+1
*
7.对于一棵具有 n 个结点、度为4的树来说,()
A. 树的高度至多是n-3
B. 树的高度至多是n-4
C. 在层上至多有个结点
D. 至少在某一层上正好有4个结点
*
8.后缀表达式9 2 3 + - 10 2 / - 的值为()
A. 1
B. 2
C. -1
D. -2
*
9.运行以下代码片段的行为是()
int x = 101;
int y = 201;
int *p = &x;
int *q = &y;
p = q;
A. 将x的值赋为201
B. 将y的值赋为101
C. 将q指向x的地址
D. 将p指向y的地址
*
10.二进制数101.11对应的十进制数是.()
A. 6.5
B. 5.5
C. 5.75
D. 5.25
*
11.对下图进行拓扑排序,可得不同拓扑序列的个数是()
A. 4
B. 3
C. 2
D. 1
*
12.已知一棵二叉树的后序序列为DABEC,中序序列为DEBAC,则先序序列为(D )
A. ACBED B. DECAB C. DEABC D. CEDBA
*
13.阅读下列代码片段,其中sizeof(u) 的值为()
union U {
             bool flag1, flag2, flag3, flag4;
             int a, b, c;
            double d;
            enum E {
                  rank1 = 'A', rank2 = 'B', rank3 = 'C'
          } e;
} u;
A. 28
B. 27
C. 16
D. 8
*
14.关于排序算法,以下哪个选项的说法是错误的()
A. 冒泡排序算法是稳定的
B. 简单选择排序是稳定的
C. 简单插入排序是稳定的
D. 归并排序算法是稳定的
*
15.10个苹果放到7个篮子里,每个篮子至少有一个苹果,一共有()种不同的分配方案。
A. 84
B. 72
C. 56
D. 504
二、阅读程序(程序输入不超过数组或字符串定义的范围;判断题正确填√,错误填×;除特殊说明外,判断题 1.5 分,选择题 3 分,共计 40 分。)
1.

假设输入的 是一个整数,且,完成下面的判断题和单选题:
● 判断题
*
16.如果输入n = 5,那么程序输出的是自然数1~5组成的所有不重复的数字序列(5的全排列)。( )
*
17.如果输入n = 5,程序第 10 行改写为 ,程序运行结果不变。( )
*
18.程序的时间复杂度为 。( )
*
19.如果输入n = 3,那么就可以将第7、20、22行一起删去,程序运行结果不变。( )
*
5.输入n = 3,那么程序的输出有()行。
A. 5
B. 6
C. 7
D. 8
*
6. 输入n = 4,那么以下序列先被输出的是()。
A. 2 4 3 1
B. 2 4 3 1
C. 3 1 4 2
D. 2 4 1 3

2.


● 判断题

*
22.如果 a 数组有重复的数字,则程序运行时会发生错误。( )
*
23.如果 b 数组全为0,则输出为0。( )
*
24. 当n = 100时,最坏情况下,与第11行的比较运算执行的次数最接近的是:()
A. 6
B. 100
C. 5000
D. 600
*
25. 当n = 100时,最好情况下,与第11行的比较运算执行的次数最接近的是()。
A. 5000
B. 6
C. 100
D. 600
*
26. 当n = 10时,若b数组满足,对任意,都有,那么输出最大为()。
A. 385
B. 383
C. 384
D. 386
*
27. (4分)当n = 100时,若b数组满足,对任意,都有,那么输出最小为()。
A. 582
B. 579
C. 581
D. 580

3.



● 判断题

*
28.程序会输出两个数,且这两个数相等。( )
*
29.第27行有可能执行两次及以上。( )
*
30.第35行有可能执行两次及以上。( )
*
31.输入“5 -10 11 -9 5 -7”,第一行和第二行都输出“7”。( )
*
32.solve2(1, n)的时间复杂度为()。
A.O(log n)
B.O(n)
C.O(n log n)
D.O(n^2)
*
33. 输入“10 -3 2 10 0 -8 9 -4 -5 9 4”,输出的第二行为()
A. 13
B. 17
C. 24
D. 12

1.(买材料)工厂负责人需要采购 n 份材料,现在有 m 个供应商,他们供应材料的单价为,最多能供应的数量为,求工厂负责人买到n份材料所需的最小费用。

输入格式:

第一行两个整数n, m,n 表示工厂所需材料个数,m 表示供应商个数

接下来 m 行,没行两个整数,表示第个供应商材料的单价,和供应商最多能供应的材料数量

题目保证工厂负责人总能买够所需的材料。

输出格式:

输出工厂负责人买材料所需的最小费用。

说明:

试补全程序。


*
34.①处应填()
A. price < b.price
B. price > b.price
C. num < b.num
D. num > b.num
*
35.②处应填()
A. n == 0
B. n == 1
C. m == 0
D. m == 1
*
36.③处应填()
A. sort(a+1, a+1+n)
B. sort(a, a+n)
C. sort(a+1, a+1+m)
D. sort(a, a+m)
*
37.④处应填()
A. ans + a[i].price
B. cnt + a[i].price
C. ans + a[i].num
D. cnt + a[i].num
*
38.⑤处应填()
A. m - ans
B. n – cnt
C.n - ans
D. m - cnt

2.(挑数求值)给定一个长度为 n 的数组,从这个数组中挑选一些值,问取出的数产生的平均数最大能是多少?同样的,中位数最大能是多少?

注意,在你挑选时,需要满足:任意相邻两个数里面最少选一个。

题目保证:

•所有的输入均为整数

试补全程序。



*
39.①处应填()
A. a[i] - x
B. a[i]
C. a[i] + x
D. x
*
40.②处应填()
A. a[i] > x
B. a[i] <= x
C. a[i] >= x
D. a[i] < x
*
41.③处应填()
A. num + x
B. num – x
C. num + 1
D. num
*
42.④处应填()
A. l = mid
B. l = mid + 1
C. l = mid - 1
D. l = l + mid / 2.0;
*
43.⑤处应填()
A. le = le + mid / 2
B. le = mid
C.le = mid - 1
D. le = mid + 1
问卷星提供技术支持
举报