2024CSP-J入门级C++真题详解

2024 CSP-J入门级(第一轮)C++真题

考试时间:60分钟 总分:100 及格分:60

一、单选题 (共15题,每题2分)

1、32 位 int 类型的存储范围是( )

A:-2147483647 ~ +2147483647

B:-2147483647 ~ +2147483648

C:-2147483648 ~ +2147483647

D:-2147483648 ~ +2147483648

【正确答案】

C

【试题解析】

int是32位有符号整型,

当机器数为0111 1111 1111 1111 1111 1111 1111 1111时,表示的数值最大,为231−1

当机器数为1000 0000 0000 0000 0000 0000 0000 0000时,表示的数值最小,为−231

因此int可以表示的数值范围为−231 ∼ 231−1,算出来的结果是− 2147483648 ∼ 2147483647 选C。

2、计算(148 − 10102) ∗ D16 − 11012的结果,并选择答案的十进制值:( )

A:13

B:14

C:15

D:16

【正确答案】

A

【试题解析】

将数字都转为二进制。每位8进制数字转为3位二进制数字,每位16进制数字转为4位二进制数字。

148=11002,D16 = 11012所以原式为( 1100−1010 )∗1101−1101=( 1100−1010−1 )∗1101 = ( 10 − 1 ) ∗ 1101=1101

11012=23+22+20=8+4+1=13,选A。

3、某公司有 10 名员工,分为 3 个部门:A 部门有 4 名员工,B 部门有 3 名员工、C 部门有 3 名员工。现需要从这 10 名员工中选出 4 名组成一个工作组,且每个部门至少要有 1 人。问有多少种选择方式?( )

A:120

B:126

C:132

D:238

【正确答案】

B

【试题解析】

先分类,再分步。

A部门出2人,B部门出1人,C部门出1人,情况数为:C(4,2)C(3,1)C(3,1)=6∗3∗3=54

A部门出1人,B部门出2人,C部门出1人,情况数为:C(4,1)C(3,2)C(3,1)=4∗3∗3=36

A部门出1人,B部门出1人,C部门出2人,情况数为:C(4,1)C(3,1)C(3,2)=4∗3∗3=36

共有54+36+36=126种情况

4、以下哪个序列对应数组 0 至 8 的 4 位二进制格雷码(Gray code)?

A:0000,0001,0011,0010,0110,0111,0101,1000

B:0000,0001,0011,0010,0110,0111,0100,0101

C:0000,0001,0011,0010,0100,0101,0111,0110

D:0000,0001,0011,0010,0110,0111,0101,0100

【正确答案】

D

【试题解析】

5、记 1KB 为 1024 字节(byte),1MB 为 1024KB,那么 1MB 是多少二进制位(bit)?

A:1000000

B:1048576

C:8000000

D:8388608

【正确答案】

D

【试题解析】

1字节占用8二进制位,也就是1B=8b,1MB=1024KB=1024∗1024B=8∗1024∗1024b=8388608b,选D。

6、以下哪个不是 C++中的基本数据类型?

A:int

B:float

C:struct

D:char

【正确答案】

C

【试题解析】

struct 不是基本数据类型,struct定义出的结构体(或者叫类)是复合数据类型。其余的int, float, char都是C++的基本数据类型。

7、以下哪个不是 C++中的循环语句?

A:for

B:while

C:do-while

D:repeat-untill

【正确答案】

D

【试题解析】

C++中有for、while和do...while循环。

Repeat-untill 是 Pascal、lua 等语言中的直到循环语句,C++并不支持。

8、在 C/C++中,(char)('a'+13)与下面的哪一个值相等( )

A:'m'

B:'n'

C:'z'

D:'3'

【正确答案】

B

【试题解析】

第1个字母'a'的ASCII码为97,也就是'a'+0

第2个字母'b'的ASCII码为98,也就是'a'+1

...

第i个字母的ASCII码为'a'+i-1

'a'+13为第14个字母的ASCII码,第14个字母为'n',选B。

9、假设有序表中有 1000 个元素,则用二分法查找元素 x 最多需要比较( )次

A:25

B:10

C:7

D:1

【正确答案】

B

【试题解析】

10、下面哪一个不是操作系统名字( )

A:Notepad

B:Linux

C:Windows

D:macOS

【正确答案】

A

【试题解析】

Notepad是Windows自带的记事本程序,是应用程序。

Linux是开源的类Unix操作系统

Windows是微软开发的操作系统

maxOS是苹果开发的类Unix操作系统

11、在无向图中,所有顶点的度数之和等于( )

A:图的边数

B:图的边数的两倍

C:图的定点数

D:图的定点数的两倍

【正确答案】

B

【试题解析】

图中一条边贡献两个度,因此所有顶点度数之和等于边数的两倍

12、已知二叉树的前序遍历为A,B,D,E,C,F,G,中序遍历为D,B,E,A,F,C,G,求二叉树的后序遍历的结果是( )

A:D,E,B,F,G,C,A

B:D,E,B,F,G,A,C

C:D,B,E,F,G,C,A

D:D,E,B,F,G,A,C

【正确答案】

A

【试题解析】

13、给定一个空栈,支持入栈和出栈操作。若入栈操作的元素依次是 1 2 3 4 5 6,其中 1 最先入栈,6 最后入栈,下面哪种出栈顺序是不可能的( )

A:6 5 4 3 2 1

B:1 6 5 4 3 2

C:2 4 6 5 3 1

D:1 3 5 2 4 6

【正确答案】

D

【试题解析】

入栈顺序是1,2,3,4,5,6,

如果1 2 3 4 5 6都先按顺序入栈,而后不断出栈直到栈空,出栈顺序就是6 5 4 3 2 1,A选项是可行的。

这类问题的思考方式为:如果x出栈,那么在x前入栈的元素除了已出栈的元素都在栈内。

对于B选项,1 6出栈后,栈内从栈底到栈顶分别是2 3 4 5,依次出栈得到5 4 3 2,B选项是可行的。

对于C选项,1入栈,2入栈并出栈,3入栈,4入栈并出栈,5入栈,6入栈并出栈,此时栈内从栈底到栈顶是1 3 5,依次出栈得到5 3 1,是可行的。

对于D选项,1入栈后出栈,2入栈,3入栈后出栈,4入栈,5入栈后出栈,此时栈内从栈底到栈顶是2 4,栈顶是4,2不可能先于4出栈,所以D选项是不可行的。

14、有 5 个男生和 3 个女生站成一排,规定 3 个女生必须相邻,问有多少种不同的排列方式?

A:4320种

B:5040种

C:3600种

D:2880种

【正确答案】

A

【试题解析】

第一步,将三个女生站在一起作为一个整体(捆绑法),该整体的情况数为三个女生的全排列,为P(3,3)

而后第二步5个男生与女生整体一共6个元素,进行全排列,方案数为P(6,6)

总排列方案数为P(3,3)∗P(6,6)=3∗2∗1∗6∗5∗4∗3∗2∗1=4320,选A。

15、编译器的主要作用是什么( )?

A:直接执行源代码

B:将源代码转换为机器代码

C:进行代码调试

D:管理程序运行时的内存

【正确答案】

B

【试题解析】

源代码不能直接执行,A错误。

进行代码调试的工具是调试器,比如GDB。

程序内可以通过代码管理程序运行时的内存,操作系统也可以管理各个进程的内存使用。

编译器的作用是对于编译型语言可以将源代码(比如C++代码)编译成为机器可以直接运行的机器代码,也就是CPU指令,选B。

二、单选题(完善程序) (共17题,每题2分)

1、完善程序(1)

第1-5题,组合题

(判断平方数) 问题:给定一个正整数 n,判断这个数 是不是完全平方数,即存在一个正整数 x 使得 x 的平方等于 n。试补全程序。

1、①处应填( )

A:1

B:2

C:3

D:4

2、②处应填( )

A:(int) floor(sqrt(num)-1)

B:(int)floor(sqrt(num))

C:floor(sqrt(num/2))-1

D:floor(sqrt(num/2))

3、③处应填( )

A:num=2*i

B:num== 2*i

C:num=i*i

D:num==i*i

4、④处应填( )

A:num= 2*i

B:num==2*i

C:true

D:false

5、⑤处应填( )

A:num= i*i

B:num!=2*I

C:true

D:false

2、完善程序(2)

第6-10题,组合题

(汉诺塔问题)给定三根柱子,分别标记为 A、B 和 C。初始状态下,柱子A上有若干个圆盘,这些圆盘从上到下按从小到大的顺序排列。任务是将这些圆盘全部移到柱子c上,且必须保持原有顺序不变。在移动过程中,需要遵守以不规则:

1.只能从一根柱子的顶部取出圆盘,并将其放入另一根柱子的顶部。

2.每次只能移动一个圆盘

3.小圆盘必须始终在大圆盘之上。

试补全程序

1、①处应填( )

A:0

B:1

C:2

D:3

2、②处应填( )

A:src,tmp

B:src,tgt

C:src,tgt

D:tgt,tmp

3、③处应填( )

A:src, tmp, tgt

B:src, tgt, tmp

C:tgt, tmp, src

D:tgt, src, tmp

4、④处应填( )

A:src, tmp, tgt

B:tmp, src, tgt

C:src, tgt, tmp

D:tgt, src, tmp

5、⑤处应填( )

A:0

B:1

C:i-1

D:i

三、组合题(阅读程序) (共10题,每题3分)

1、阅读程序(1)

第1-5题,组合题

1、当输入为"10"时,程序的第一个输出为"4",第二个输出为"17"。( )

A:正确

B:错误

2、若将 isPrime(i)函数种的条件改为 i<=n/2,输入"20"时,countPrimes(20)的输出将变为"6"。( )

A:正确

B:错误

3、sumPrimes 函数计算的是从 2 到 n 之间的所有素数之和。( )

A:正确

B:错误

4、当输入为"50"时,sumPrimes(50)的输出为( )

A:1060

B:328

C:381

D:275

5、如果将 for(int i=2;i*i<=n;i++)改为 for(int i=2;i<=n;i++),输入"10"时,程序的输出( )

A:将不能正确计算 10 以内素数个数及其和

B:仍然输出4和17

C:输出3和 10

D:输出结果不变,但运行时间更短

2、阅读程序(2)

第6-11题,组合题

1、当输入的 cost 数组为{10,15,20}时,程序的输出为 15( )

A:正确

B:错误

2、如果将 dpi-1改为 dpi-3,程序可能会产生编译错误( )

A:正确

B:错误

3、程序总是输出 cost 数组种的最小的元素( )

A:正确

B:错误

4、当输入的 cost 数组为{1,100,1,1,1,100,1,1,100,1}时,程序的输出为( )。

A:"6"

B:"7"

C:"8"

D:"9"

5、如果输入的 cost 数组为{10,15,30,5,5,10,20},程序的输出为( )

A:"25"

B:"30"

C:"35"

D:"40"

6、若将代码中的 min(dpi-1,dpi-2)+costi-1修改为 dpi-1+costi-2,输入 cost 数组为{5,10,15}时,程序的输出为( )

A:"10"

B:"15"

C:"20"

D:"25"

3、阅读程序(3)

第12-17题,组合题

1、当输入为"2 3"时,customFunction(2,3)的返回值为"64"。( )

A:正确

B:错误

2、当 b 为负数时,customFunction(a,b)会陷入无限递归。( )

A:正确

B:错误

3、当 b 的值越大,程序的运行时间越长。( )

A:正确

B:错误

4、当输入为"5 4"时,customFunction(5,4)的返回值为( )。

A:5

B:25

C:250

D:625

5、如果输入 x = 3 和 y = 3,则程序的最终输出为( )

A:"27"

B:"81"

C:"144"

D:"256"

6、若将customFunction 函数改为"return a + customFunction(a-1,b-1);并输入"3 3",则程序的最终输出为( )

A:9

B:16

C:25

D:36

相关推荐
arbboter1 小时前
【网络工具】NetProxy网络代理用户手册
开发语言·网络·c#·网络代理·网络异常·代理工具
hy.z_7771 小时前
【C++】13. 继承
c++
汉字萌萌哒2 小时前
2019CCF-CSP入门级C++试题解析
java·开发语言·c++
叠层归一研究院2 小时前
AGI 系统(十一):二阶网络 — 二阶递归 × 多主体 (元符号网络)
开发语言·人工智能·算法·php·agi
小雨笙笙2 小时前
C语言:变量三属性——存储类型
c语言·开发语言
2401_890603402 小时前
C++ 继承
c++
果果燕3 小时前
C++ 学习笔记(二):类与对象—— 构造函数与析构函数
开发语言·c++
江畔柳前堤3 小时前
Function Calling 与 Tool Calling:从认知到工程的全景深度解析
开发语言·网络·人工智能·深度学习·算法·机器学习·php
2601_949950633 小时前
Java 面试准备,用练题簿把“背过八股”变成“真正会答”
java·开发语言·面试·刷题·小程序推荐