1,了解的知识
中国的国家顶级域名是( )【2019年CSP-J初赛选择题第一题】
A…cn
B…ch
C…chn
D…china
【答案】:A
以下哪个奖项是计算机科学领域的最高奖?( )【2019年CSP-J初赛选择题第十五题,2021年第二题】
A.图灵奖
B.鲁班奖
C.诺贝尔奖
D.普利策奖
【答案】:A
编译器的主要功能是( )。【2020年CSP-J初赛选择题第二题】
A.将源程序翻译成机器指令代码
B.将源程序重新组合
C.将低级语言翻译成高级语言
D.将一种高级语言翻译成另一种高级语言
【答案】:A
干支纪年法是中国传统的纪年方法,由10个天干和12个地支组合成60个天干地支。由公历年份可以根据以下公式和表格换算出对应的天干地支。
天干=(公历年份)除以10所得余数
地支=(公历年份)除以12所得余数
例如,今年是2020年,2020除以10余数为0,查表为“庚”;2020除以12,余数为4,查表为“子”,所以今年是庚子年。
请问1949年的天干地支是( )【2020年CSP-J初赛选择题第十三题】
A.己酉
B.己亥
C.己丑
D.己卯
【答案】:C
以下不属于面向对象程序设计语言的是( )。【2021年CSP-J初赛选择题第一题】
A.C++
B.Python
C.Java
D.C
【答案】:D
以下哪种功能没有涉及C++语言的面向对象特性支持:( )。【2022年CSP-J初赛选择题第一题】
A.C++中调用printf函数
B.C++中调用用户定义的类成员函数
C.C++中构造一个class或struct
D.C++中构造来源于同一基类的多个派生类
【答案】:A
在C++中,下面哪个关键字用于声明一个变量,其值不能被修改?( )【2023年CSP-J初赛选择题第一题】
A.unsigned
B.const
C.static
D.mutable
【答案】:B
以下关于高精度运算的说法错误的是( )【2023年CSP-J初赛选择题第七题】
A.高精度计算主要是用来处理大整数或需要保留多位小数的运算。
B.大整数除以小整数的处理的步骤可以是,将被除数和除数对齐,从左到右逐位尝试将除数乘以某个数,通过减法得到新的被除数,并累加商。
C.高精度乘法的运算时间只与参与运算的两个整数中长度较长者的位数有关。
D.高精度加法运算的关键在于逐位相加并处理进位。
【答案】:C
以下哪个不是操作系统?( )【2023年CSP-J初赛选择题第十五题】
A.Linux
B.Windows
C.Android
D.HTML
【答案】:D
2,进制
二进制数11 1011 1001 0111和01 0110 1110 1011进行逻辑与运算的结果是( )。【2019年CSP-J初赛选择题第二题】
A.01 0010 1000 1011
B.01 0010 1001 0011
C.01 0010 1000 0001
D.01 0010 1000 0011
【答案】:D
二进制数1011转换成十进制数是( )。【2020年CSP-J初赛选择题第九题】
A.11
B.10
C.13
D.12
【答案】:A
二进制数101.11对应的十进制数是( )。【2021年CSP-J初赛选择题第七题】
A.6.5
B.5.5
C.5.75
D.5.25
【答案】:C
八进制数32.1对应的十进制数是( )。【2022年CSP-J初赛选择题第十三题】
A.24.125
B.24.250
C.26.125
D.26.250
【答案】:C
八进制数12345670(8)和07654321(8)的和为( )【2022年CSP-J初赛选择题第二题】
A.22222221(8)
B.21111111(8)
C.22111111(8)
D.22222211(8)
【答案】:D
数101010(2)和166(8)的和为( )。【2023年CSP-J初赛选择题第九题】
A.10110000(2)
B.236(8)
C.158(10)
D.A0(16)
【答案】:D
3,数据存储
一个32位整型变量占用( )个字节。【2019年CSP-J初赛选择题第三题】
A.32
B.128
C.4
D.8
在内存储器中每个存储单元都被赋予一个唯一的序号,称为( A)。【2020年CSP-J初赛选择题第一题】
A.地址
B.序号
C.下标
D.编号
现有一张分辨率为2048x1024像素的32位真彩色图像。请问要存储这张图像,需要多大的存储空间?( )。【2020年CSP-J初赛选择题第四题】
A.16MB
B.4MB
C.8MB
D.32MB
【答案】:C
目前主流的计算机储存数据最终都是转换成( )数据进行储存。【2021年CSP-J初赛选择题第三题】
A.二进制
B.十进制
C.八进制
D.十六进制
【答案】:A
在计算机中,以下哪个选项描述的数据存储容量最小?( )【2023年CSP-J初赛选择题第十三题】
A.字节(byte)
B.比特(bit)
C.字(word)
D.千字节(kilobyte)
【答案】:B
4,赋值
若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)
s=a;
for (b=1; b<=c; b++) s = s - 1;
则与上述程序段功能等价的赋值语句是( )【2019年CSP-J初赛选择题第四题】
A.s=a-c;
B.s=a-b;
C.s=s-c;
D.s=b-c;
【答案】:A
运行以下代码片段的行为是( )。【2022年CSP-J初赛选择题第三题】
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的地址
【答案】:D
阅读下述代码, 请问修改data的value成员以存储3.14, 正确的方式是( )【2023年CSP-J初赛选择题第三题】
union Data{
int num;
float value;
char symbol;
};
union Data data;
A.data.value = 3.14;
B.value.data = 3.14;
C.data->value = 3.14;
D.value->data = 3.14;
【答案】:A
5,折半查找(二分查找)
设有100个已排好序的数据元素,采用折半查找时,最大比较次数为( )【2019年CSP-J初赛选择题第五题】
A.7
B.10
C.6
D.8
【答案】:A
6,链表
链表不具有的特点是( )【2019年CSP-J初赛选择题第六题,2020年第七题】
A.插入删除不需要移动元素
B.不必事先估计存储空间
C.所需空间与线性表长度成正比
D.可随机访问任一元素
【答案】:D
4、假设有一个链表的节点定义如下:
struct Node {
int data;
Node* next;
}
现在有一个指向链表头部的指针:Node* head, 如果想要在链表中插入一个新节点,其成员data的值为42, 并使新节点成为链表的第一个节点, 下面哪个操作是正确的?【2023年CSP-J初赛选择题第四题】
A.Node* newNode = new Node; newNode->data = 42; newNode->next = head; head = newNode;
B.Node* newNode = new Node; head->data=42; newNode->next = head; head = newNode;
C.Node* newNode = new Node; newNode->data=42; head->next = newNode;
D.Node* newNode = new Node; newNode->data=42; newNode->next = head;
【答案】:A
7,划分问题
把8个同样的球放在5个同样的袋子里,允许有的袋子空着不放,问共有多少种不同的分法?( )
提示:如果8个球都放在一个袋子里,无论是哪个袋子,都只算同一种分法。【2019年CSP-J初赛选择题第七题】
A.22
B.24
C.18
D.20
【答案】:C
10个三好学生名额分配到7个班级,每个班级至少有一个名额,一共有( )种不同的分配方案。【2020年CSP-J初赛选择题第十四题】
A.84
B.72
C.56
D.504
【答案】:A
8,二叉树
一棵二叉树如右图所示,若采用顺序存储结构,即用一维数组元素存储该二叉树中的结点(根结点的下标为1,若某结点的下标为i,则其左孩子位于下标2i 处、右孩子位于下标2i+1处),则该数组的最大下标至少为( )。【2019年CSP-J初赛选择题第八题】
A.6
B.10
C.15
D.12
【答案】:C
假设一棵二叉树的后序遍历序列为DGJHEBIFCA, 中序遍历序列为DBGEHJACIF, 则其前序遍历序列为( )。【2019年CSP-J初赛选择题第十四题】
A.ABCDEFGHIJ
B.ABDEGHJCFI
C.ABDEGJHCFI
D.ABDEGHJFIC
【答案】:B
独根树的高度为1。具有61个结点的完全二叉树的高度为( )。【2020年CSP-J初赛选择题第十二题】
A.7
B.8
C.5
D.6
【答案】:D
如果一棵二叉树只有根结点,那么这棵二叉树高度为1。请问高度为5的完全二叉树有( )种不同的形态?【2021年CSP-J初赛选择题第八题】
A.16
B.15
C.17
D.32
【答案】:A
棵有n个结点的完全二叉树用数组进行存储与表示,已知根结点存储在数组的第1个位置。若存储在数组第9个位置的结点存在兄弟结点和两个子结点,则它的兄弟结点和右子结点的位置分别是( )。【2022年CSP-J初赛选择题第八题】
A.8、18
B.10、18
C.8、19
D.10、19
【答案】:C
根节点的高度为1,一棵拥有2023个节点的三叉树高度至少为( )【2023年CSP-J初赛选择题第五题】
A.6
B.7
C.8
D.9
【答案】:C
给定一棵二叉树, 其前序遍历结果为:ABDECFG, 中序遍历结果为:DEBACFG。请问这棵树的正确后序遍历结果是什么?( )【2023年CSP-J初赛选择题第十一题】
A.EDBGFCA
B.EDGBFCA
C.DEBGFCA
D.DBEGFCA
【答案】:A
9,素数与合数,最大公约数
100以内最大的素数是( )。【2019年CSP-J初赛选择题第九题】
A.89
B.97
C.91
D.93
【答案】:B
319和377的最大公约数是( )。【2019年CSP-J初赛选择题第十题】
A.27
B.33
C.29
D.31
【答案】:C
10,数优化问题
新学期开学了,小胖想减肥,健身教练给小胖制定了两个训练方案。
方案一:每次连续跑3公里可以消耗300千卡(耗时半小时);
方案二:每次连续跑5公里可以消耗600千卡(耗时1小时)。
小胖每周周一到周四能抽出半小时跑步,周五到周日能抽出一小时跑步。另外,教练建议小胖每周最多跑21公里,否则会损伤膝盖
请问如果小胖想严格执行教练的训练方案,并且不想损伤膝盖,每周最多通过跑步消耗多少千卡?( )【2019年CSP-J初赛选择题第十一题】
A.3000
B.2500
C.2400
D.2520
【答案】:C
有四个人要从A点坐一条船过河到B点,船一开始在A点。该船一次最多可坐两个人。已知这四个人中每个人独自坐船的过河时间分别为1,2,4,8,且两个人坐船的过河时间为两人独自过河时间的较大者。则最短( )时间可以让四个人都过河到B点(包括从B点把船开回A点的时间)【2021年CSP-J初赛选择题第十五题】——最短时间策略(贪心策略)
A.14
B.15
C.16
D.17
【答案】:B
11,抽屉原理
一副纸牌除掉大小王有52张牌,四种花色,每种花色13张。假设从这52张牌中随机抽取13张纸牌,则至少( )张牌的花色一致。【2019年CSP-J初赛选择题第十二题】
A.4
B.2
C.3
D.5
【答案】:A
12,数字对称性
一些数字可以颠倒过来看,例如0、1、8颠倒过来还是本身,6颠倒过来是9,9颠倒过来看还是6,其他数字颠倒过来都不构成数字。
类似的,一些多位数也可以颠倒过来看,比如106颠倒过来是901。假设某个城市的车牌只由5位数字组成,每一位都可以取0到9。
请问这个城市最多有多少个车牌倒过来恰好还是原来的车牌?( )【2019年CSP-J初赛选择题第十三题】
A.60
B.125
C.75
D.100
【答案】:C
13,运算表达
设x=true,y=true, z=false,以下逻辑运算表达式值为真的是( )。【2020年CSP-J初赛选择题第三题】
A.(y∨z)∧x∧z
B.x∧(z∨y)∧z
C.(x∧y)∧z
D.(x∧y)∨(z∨x)
【答案】:D
表达式a*(b+c)*d的后缀表达式为( ),其中“*”和“+”是运算符。【2021年CSP-J初赛选择题第九题】
A.**a+bcd
B.abc+*d*
C.abc+d**
D.*a*+bcd
【答案】:B
对表达式a+(b-c)*d的前缀表达式为( ),其中+、-、*是运算符。【2022年CSP-J初赛选择题第六题】
A.*+a-bcd
B.+a*-bcd
C.abc-d*+
D.abc-+d
【答案】:B
后缀表达式“623+-382/+*2^3+”对应的中级表达式是( )。【2023年CSP-J初赛选择题第八题】
A.((6-(2+3))*(3+8/2))^2+3
B.6-2+3*3+8/2^2+3
C.(6-(2+3))*((3+8/2)^2)+3
D.6-((2+3)*(3+8/2))^2+3
14,排序算法,递归算法
输入:数组L,n≥1。输出:按非递减顺序排序的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
对n个数用以上冒泡排序算法进行排序,最少需要比较多少次?( )。【2020年CSP-J初赛选择题第五题】
A.n²
B.n-2
C.n-1
D.n
【答案】:C
设A是n个实数的数组,考虑下面的递归算法:
XYZ(A[1..n])
1. if n=1 then return A[1]
2. else temp ← XYZ(A[1..n-1])
3. if temp<A[n]
4. then return temp
5. else return A[n]
请问算法XYZ的输出是什么?( )。【2020年CSP-J初赛选择题第六题】
A.A数组的平均
B.A数组的最小值
C.A数组的中值
D.A数组的最大值
【答案】:B
以比较作为基本运算,在N个数中找出最大数,最坏情况下所需要的最少的比较次数为( )。【2021年CSP-J初赛选择题第四题】
A.N^2
B.N
C.N-1
D.N+1
【答案】:C
考虑如下递归算法
solve(n)
if n<=1 return 1
else if n>=5 return n*solve(n-2)
else return n*solve(n-1)
则调用solve(7) 得到的返回结果为( )。【2021年CSP-J初赛选择题第十三题】
A.105
B.840
C.210
D.420
【答案】:C
以下排序算法的常见实现中,哪个选项的说法是错误的:( )。【2022年CSP-J初赛选择题第十二题】
A.冒泡排序算法是稳定的
B.简单选择排序是稳定的
C.简单插入排序是稳定的
D.归并排序算法是稳定的
【答案】:B
简单记忆规则如下:
1.选择、冒泡、插入排序算法中选择不稳定
2.归并、堆排序算法中堆不稳定
3.快排、希尔排序算法,两个都不稳定
4.基数、桶、计数排序算法,都稳定
以下对递归方法的描述中,正确的是:( )【2022年CSP-J初赛选择题第十五题】
A.递归是允许使用多组参数调用函数的编程技术
B.递归是通过调用自身来求解问题的编程技术
C.递归是面向对象和数据而不是功能和逻辑的编程语言模型
D.递归是将用某种高级语言转换为机器代码的编程技术
【答案】:B
15,图论
有10个顶点的无向图至少应该有( )条边才能确保是一个连通图。【2020年CSP-J初赛选择题第八题】
A.9
B.10
C.11
D.12
【答案】:A
对于有n个顶点、m条边的无向连通图(m>n),需要删掉( )条边才能使其成为一棵树。【2021年CSP-J初赛选择题第六题】
A.n-1
B.m-n
C.m-n-1
D.m-n+1
【答案】:D
以a为起点,对右边的无向图进行深度优先遍历,则b、c、d、e四个点中有可能作为最后一个遍历到的点的个数为( )。【2021年CSP-J初赛选择题第十四题】
A.1
B.2
C.3
D.4
【答案】:B
考虑由N个顶点构成的有向连通图,采用邻接矩阵的数据结构表示时,该矩阵中至少存在( )个非零元素。【2022年CSP-J初赛选择题第九题】
A.N-1
B.N
C.N+1
D.N2
【答案】:B
考虑一个有向无环图,该图包含4条有向边:(1,2),(1,3),(2,4)和(3,4)。以下哪个选项是这个有向无环图的一个有效的拓扑排序?( )【2023年CSP-J初赛选择题第十二题】
A.4,2,3,1
B.1,2,3,4
C.1,2,4,3
D.2,1,3,4
【答案】:B
16,组合与排列
五个小朋友并排站成一列,其中有两个小朋友是双胞胎,如果要求这两个双胞胎必须相邻,则有( )种不同排列方法? 【2020年CSP-J初赛选择题第十题】
A.48
B.36
C.24
D.72
【答案】:A
有五副不同颜色的手套(共10只手套,每副手套左右手各1只),一次性从中取6只手套,请问恰好能配成两副手套的不同取法有( )种。【2020年CSP-J初赛选择题第十五题】
A.120
B.180
C.150
D.30
【答案】:A
6个人,两个人组一队,总共组成三队,不区分队伍的编号。不同的组队情况有( )种。【2021年CSP-J初赛选择题第十题】
A.10
B.15
C.30
D.20
由1,1,2,2,3这五个数字组成不同的三位数有( )种。【2021年CSP-J初赛选择题第十二题】
A.18
B.15
C.12
D.24
【答案】:A
一个字符串中任意个连续的字符组成的子序列称为该字符串的子串,则字符串abcab有( )个内容互不相同的子串。【2022年CSP-J初赛选择题第十四题】
A.12
B.13
C.14
D.15
【答案】:B
明在某一天中依次有七个空闲时间段,他想要选出至少一个空闲时间段来练习唱歌,但他希望任意两个练习的时间段之间都有至少两个空闲的时间段让他休息。则小明一共有( )种选择时间段的方案。【2023年CSP-J初赛选择题第六题】
A.31
B.18
C.21
D.33
【答案】:B
一个餐有10个男生和12个女生,如果要选出一个3人的小组,并且小组中必须至少包含1个女生,那么有多少种可能的组合?( )【2023年CSP-J初赛选择题第十四题】
A.1420
B.1770
C.1540
D.2200
【答案】A
17,栈和队列
下图中所使用的数据结构是( )。【2020年CSP-J初赛选择题第十一题】
A.栈
B.队列
C.二叉树
D.哈希表
【答案】:A
对于入栈顺序为a,b,c,d,e的序列,下列( )不是合法的出栈序列。【2021年CSP-J初赛选择题第五题】
A.a,b,c,d,e
B.e,d,c,b,a
C.b,a,c,d,e
D.c,d,a,e,b
【答案】:D
有6个元素,按照6、5、4、3、2、1的顺序进入栈S,请问下列哪个出栈序列是非法的( )。【2022年CSP-J初赛选择题第二题】
A.543612
B.453126
C.346521
D.234156
【答案】:C
对假设栈S和队列Q的初始状态为空。存在e1~e6六个互不相同的数据,每个数据按照进栈S、出栈S、进队列Q、出队列Q的顺序操作,不同数据间的操作可能会交错。已知栈S中依次有数据e1、e2、e3、e4、e5和e6进栈,队列Q依次有数据e2、e4、e3、e6、e5和e1出队列。则栈S的容量至少是( )个数据。【2022年CSP-J初赛选择题第五题】
A.2
B.3
C.4
D.6
【答案】:B
18,哈夫曼
在数据压缩编码中的哈夫曼编码方法,在本质上是一种( )的策略。【2021年CSP-J初赛选择题第十一题】
A.枚举
B.贪心
C.递归
D.动态规划
【答案】:B
假设字母表{a, b, c, d, e}在字符串出现的频率分别为10%,15%,30%,16%,29%。若使用哈夫曼编码方式对字母进行不定长的二进制编码,字母d的编码长度为( )位。【2022年CSP-J初赛选择题第七题】
A.1
B.2
C.2或3
D.3
【答案】:B
假设有一组字符{a,b,c,d,e,f},对应的频率分别为5%、9%、12%、13%、16%、45%。请问以下哪个选项是字符a,b,c,d,e,f分别对应的一组哈夫曼编码?( )【2023年CSP-J初赛选择题第十题】
A.1111,1110,101,100,110,0
B.1010,1001,1000,011,010,00
C.000,001,010,011,10,11
D.1010,1011,110,111,00,01
【答案】:A
19,链表
链表和数组的区别包括( )。【2022年CSP-J初赛选择题第四题】
A.数组不能排序,链表可以
B.链表比数组能存储更多的信息
C.数组大小固定,链表大小可动态调整
D.以上均正确
【答案】:C
以下哪组操作能完成在双向循环链表结点p之后插入结点s的效果(其中,next域为结点的直接后继,prev域为结点的直接前驱) :( )。【2022年CSP-J初赛选择题第十一题】
A.p->next->prev=s;s->prev=p;p->next=s;s->next=p->next;
B.p->next->prev=s;p->next=s;s->prev=p;s->next=p->next;
C.s->prev=p;s->next=p->next; p->next=s; p->next->prev=s;
D.s->next=p->next; p->next->prev=s; s->prev=p; p->next=s;
【答案】:D
视频讲解:链表的插入与删除
20,数据结构
以下对数据结构的表述不恰当的一项为:( )。【2022年CSP-J初赛选择题第十题】
A.图的深度优先遍历算法常使用的数据结构为栈。
B.栈的访问原则为后进先出,队列的访问原则是先进先出。
C.队列常常被用于广度优先搜索算法。
D.栈与队列存在本质不同,无法用栈实现队列。
【答案】:D