历年CSP-J初赛真题解析 | 2014年CSP-J初赛

news/2026/1/19 22:32:50/文章来源:https://www.cnblogs.com/guolianggsta/p/19503901

​欢迎大家订阅我的专栏:算法题解:C++与Python实现!
本专栏旨在帮助大家从基础到进阶 ,逐步提升编程能力,助力信息学竞赛备战!

专栏特色
1.经典算法练习:根据信息学竞赛大纲,精心挑选经典算法题目,提供清晰的代码实现与详细指导,帮助您夯实算法基础。
2.系统化学习路径:按照算法类别和难度分级,从基础到进阶,循序渐进,帮助您全面提升编程能力与算法思维。

适合人群:

  • 准备参加蓝桥杯、GESP、CSP-J、CSP-S等信息学竞赛的学生
  • 希望系统学习C++/Python编程的初学者
  • 想要提升算法与编程能力的编程爱好者

附上汇总贴:历年CSP-J初赛真题解析 | 汇总_热爱编程的通信人的博客-CSDN博客


单项选择

第1题

以下哪个是面向对象的高级语言( )。

A.汇编语言

B.C++

C.Fortran

D.Basic

【答案】:B

【解析】

高级语言对人类更友好,如C/C++/Python/Pascal/Fortran/Basic。Fortran/Baisc/C都是面向过程的语言

第2题

1TB代表的字节数是( )。

A.2的10次方

B.2的20次方

C.2的30次方

D.2的40次方

【答案】:D

【解析】

\(1TB=1024(G)*1024(M)*1024(K)*1024=2^{40}B\)

第3题

二进制数00100100和00010101的和是( )。

A.00101000

B.001010100

C.01000101

D.00111001

【答案】:D

【解析】

按位加,1+1需要进位

第4题

以下哪一种设备属于输出设备( )。

A.扫描仪

B.键盘

C.鼠标

D.打印机

【答案】:D

【解析】

A/B/C都是输入设备

第5题

下列对操作系统功能的描述最为完整的是( )。

A.负责外设与主机之间的信息交换

B.负责诊断机器的故障

C.控制和管理计算机系统的各种硬件和软件资源的使用

D.将源程序编译成目标程序

【答案】:C

【解析】

A是接口的功能,B是操作系统部分功能,如BIOS的功能,D是编译器功能

第6题

CPU、存储器、I/O设备是通过( )连接起来的。

A.接口

B.总线

C.控制线

D.系统文件

【答案】:B

【解析】

接口是连接外部设备,主机内部是通过主板上的总线连接起来的

第7题

断电后会丢失数据的存储器是( )

A.RAM

B.ROM

C.硬盘

D.光盘

【答案】:A

【解析】

RAM(Random Access Memory)是随机存取存储器,断电后会消失。ROM(Read Only Memory)是只读存储器,断电后不会消失。BIOS程序就是放在ROM中。

第8题

以下哪一种是属于电子邮件收发的协议( )。

A.SMTP

B.UDP

C.P2P

D.FTP

【答案】:A

【解析】

电子邮件协议:SMTP和POP3

第9题

下列选项中不属于图像格式的是( )。

A.JPEG格式

B.TXT格式

C.GIF格式

D.PNG格式

【答案】:B

【解析】

txt是文本格式

第10题

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

A.不必事先估计存储空间

B.可随机访问任一元素

C.插入删除不需要移动元素

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

【答案】:B

【解析】

数组可以随机访问,但链表需要从头遍历

第11题

下列各无符号十进制整数中,能用八位二进制表示的数中最大的是( )。

A.296

B.1133

C.256

D.199

【答案】:D

【解析】

8位:\(2^8\)个,0~255

第12题

下列几个32位IP地址中,书写错误的是( )。

A.162.105.135.27

B.192.168.0.1

C.256.256.129.1

D.10.0.0.1

【答案】:C

【解析】

IPv4中4个数字,最多只能到255

第13题

要求以下程序的功能是计算:s=1+1/2+1/3+...+1/10。

#include <iostream>
using namespace std;
int main() {int n;float s;s = 1.0;for (n=10; n>1; n--)s = s + 1/n;cout << s <<endl;return 0;
}

程序运行后输出结果错误,导致错误结果的程序行是( )。

A.s=1.0;

B.for(n=10; n>1; n--)

C.s=s+1/n;

D.cout<<s<<endl;

【答案】:C

【解析】

初值已经是1了,所以B答案没错,只需要加到1/2。1/n结果是整形,需要写成1.0/n

第14题

设变量x为float型且已赋值, 则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是( )。

A.\(x=(x*100)+0.5/100.0;\)

B.\(x=(x*100+0.5)/100.0;\)

C.\(x=(int)(x*100+0.5)/100.0;\)

D.\(x=(x*100+0.5)*100.0;\)

【答案】:C

【解析】

可以代入12.3456,计算发现C选项正确

第15题

有以下程序:

#include <iostream>
using namespace std;
int main() {int s, a, n;s = 0;a = 1;cin >> n;do {s+=1;a-=2;} while (a!=n);cout << s <<endl;return 0;
}

若要使程序的输出值为2,则应该从键盘给n输入的值是( )。

A.-1

B.-3

C.-5

D.0

【答案】:B

【解析】

s=2,a=-3。如果要a==n结束循环,那么n就需要等于-3

第16题

一棵具有5层的满二叉树中结点数为( )。

A.31

B.32

C.33

D.16

【答案】:A

【解析】

\(2^n-1\),n为5,结点数为31

第17题

有向图中每个顶点的度等于该顶点的( )。

A.入度

B.出度

C.入度和出度之和

D.入度和出度之差

【答案】:C

【解析】

基本概念,有向图中顶点的度为入度和出度之和

第18题

设有100个数据元素,采用折半搜索时,最大比较次数为( )。

A.6

B.7

C.8

D.10

【答案】:B

【解析】

log100=7

1次50,2次25,3次13(最大比较次数),4次7,5次4,6次2,7次1

第19题

若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值,c>0。

s = a;
for (b=1; b<=c; b++)s += 1;

则与上述程序段功能等价的赋值语句是( )。

A.s=a+b

B.s=a+c

C.s=s+c

D.s=b+c

【答案】:B

【解析】

循环c次,每次加1,相当于a+c

第20题

计算机界的最高奖是( )。

A.菲尔兹奖

B.诺贝尔奖

C.图灵奖

D.普利策奖

【答案】:C

【解析】

菲尔兹是数学届,诺贝尔有五个奖,普利策是摄影界

问题求解

第21题

把M个同样的球放到N个同样的袋子里,允许有的袋子空着不放,问共有多少种不同的放置方法?(用K表示)

例如:M=7,N=3时,K=8;在这里认为(5,1,1)和(1,5,1)是同一种放置方法。

问:M=8,N=5时,K=( )。

【答案】:18

【解析】

(初赛中直接用枚举法)

8个球装入1个袋中:1(8)

8个球装入2个袋中:4(1+7、2+6、3+5、4+4)

8个球装入3个袋中:5(1+1+6、1+2+5、1+3+4、2+2+4、2+3+3)

8个球装入4个袋中:5(1+1+1+5、1+1+2+4、1+1+3+3、1+2+2+3、2+2+2+2)

8个球装入5个袋中:3(1+1+1+1+4、1+1+1+2+3、1+1+2+2+2)

第22题

如图所示,图中每条边上的数字表示该边的长度,则从A到E的最短距离是( )。

image

【答案】:11

【解析】

用Dijstra来求,也可以直接看出结果:3+1+1+6=11

点标号 A B C D E F G
从A触发到每个点的最短距离 0 \(+\infty\) \(+\infty\) \(+\infty\) \(+\infty\) \(+\infty\) \(+\infty\)
点标号 A B C D E F G
从A触发到每个点的最短距离 0 3 \(+\infty\) \(+\infty\) \(+\infty\) 6 4
点标号 A B C D E F G
从A触发到每个点的最短距离 0 3 4 8 12 6 4
点标号 A B C D E F G
从A触发到每个点的最短距离 0 3 4 8 12 5 4
点标号 A B C D E F G
从A触发到每个点的最短距离 0 3 4 8 11 5 4

阅读程序

#include <iostream>
using namespace std;
int main() {int a, b, c, d, ans;cin >> a >> b >> c;d = a-b;a = d+c;ans = a*b;cout << "Ans=" << ans << endl;return 0;
}

第23题

输入:2 3 4

输出:( )

【答案】:Ans=9

【解析】

模拟代入运算,注意输出格式不含空格

#include <iostream>
using namespace std;
int fun(int n) {if (n==1) return 1;if (n==2) return 2;return fun(n-2) - fun(n-1);
}
int main() {int n;cin >> n;cout << fun(n) << endl;return 0;
}

第24题

输入:7

输出:( )

【答案】:-11

【解析】

fun(7)=fun(5)-fun(6),...,fun(3)=fun(1)-fun(2)

计算结果fun(7)=-11

#include <iostream>
#include <string>
using namespace std;
int main() {string st;int i, len;getline(cin, st);len = st.size();for (i=0; i<len; i++) {if (st[i]>='a' && st[i]<='z') st[i]=st[i]-'a'+'A';}cout << st << endl;return 0;
}

第25题

输入:Hello, my name is Lostmonkey.

输出:( )

【答案】:HELLO, MY NAME IS LOSTMONKEY.

【解析】

第10到第11行,就是将小写字母转为大写字母

#include <iostream>
using namespace std;
const int SIZE=100;
int main() {int p[SIZE];int n, tot, i, cn;tot = 0;cin >> n;for (i=1; i<=n; i++) p[i] = 1;for (i=2; i<=n; i++) {if (p[i]==1) tot++;cn = i*2;while (cn<=n) {p[cn] = 0;cn += i;} }cout << tot << endl;return 0;
}

第26题

输入:30

输出:( )

【答案】:10

【解析】

第13至第16行,是为了将i的倍数都置为0。只有质数不是任何数的倍数。30以内的质数有2,3,5,7,11,13,17,19,23,29,共10个

完善程序

(数字删除)下面程序的功能是将字符串中的数字字符删除后输出。请填空。

#include <iostream>
using namespace std;
int delnum(char *s) {int i, j;j = 0;for (i=0; s[i]!='\0'; i++) if (s[i]<'0' __1__ s[i]>'9') {s[j] = s[i];__2__;}return __3__;
}
const int SIZE = 30;
int main() {char s[SIZE];int len, i;cin.getline(s, sizeof(s));len = delnum(s);for (i=0; i<len; i++) cout << __4__;cout << endl;return 0;
}

第27题

1处填:( )

【答案】:||

【解析】

目的是判断非数字的字符,保留下来

第28题

2处填:( )

【答案】:j++

【解析】

非数字字符也存在s中,使用j下标来记录

第29题

3处填:( )

【答案】:j

【解析】

最后一个非数字字符赋值完后,j++后就是新的字符串的长度

第30题

4处填:( )

【答案】:s[i]

【解析】

基于新的字符串长度(不是之前的长度),输出所有字符

(最大子矩阵和)给出m行n列的整数矩阵,求最大的子矩阵和(子矩阵不能为空)。

输入第一行包含两个整数m和n,即矩阵的行数和列数。之后m行,每行n个整数,描述整个矩阵。程序最终输出最大的子矩阵和。

#include <iostream>
using namespace std;
const int SIZE=100;
int matrix[SIZE+1][SIZE+1];
int rowsum[SIZE+1][SIZE+1];
//rowsum[i][j]记录第i行前j个数的和
int m, n, i, j, first, last, area, ans;
int main() {cin >> m >> n;for (i=1; i<=m; i++)for (j=1; j<=n; j++)cin >> matrix[i][j];ans = matrix__1__;for (i=1; i<=m; i++)__2__;for (i=1; i<=m; i++)for (j=1; j<=n; j++)rowsum[i][j] = __3__;for (first=1; first<=n; first++)for (last=first; last<=n; last++) {__4__;for (i=1; i<=m; i++) {area += __5__;if (area>ans) ans = area;if (area<0) area = 0;}}cout << ans << endl;return 0;
}

第31题

1处填:( )

【答案】:[1][1]

【解析】

使用matrix第1行第1列的值作为ans的最大值(初值,这里并没有使用-1e9作为最大值的初值)

第32题

2处填:( )

【答案】:rowsum[i][0] = 0

【解析】

为每一行的前缀和赋初值为0(感觉不赋值也行)

第33题

3处填:( )

【答案】:rowsum[i][j-1]+matrix[i][j]

【解析】

前缀和的计算公式

第34题

4处填:( )

【答案】:area = 0

【解析】

每一次计算子矩阵和,就需要初始化初值为0

第35题

5处填:( )

【答案】:rowsum[i][last] - rowsum[i][first-1]

【解析】

area需要依次增加每行每段(起始列~终止列)的前缀和

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1185423.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HarmonyOS 中如何避免线程阻塞?从原理到实战的完整解析

摘要 随着 HarmonyOS / OpenHarmony 在手机、平板、智慧屏、车机等多设备上的落地&#xff0c;应用的复杂度正在明显提升。页面不再只是简单展示&#xff0c;而是伴随着网络请求、数据计算、设备协同等大量逻辑。如果这些逻辑处理不当&#xff0c;很容易出现页面卡顿、点击无响…

中华老字号的现代传承:神象人参粉,以科技赋能千年滋补智慧 - 行业调研院

在快节奏的现代生活中,人们对健康的追求从未停歇,尤其渴望一种既能承袭传统智慧、又经得起科学验证的高品质滋补品。今天,我们为您深入解读的,正是这样一款融合了百年信誉与现代科技的典范之作——神象人参粉。它不…

4 个值得关注的开源业务数据管理工具

从业务系统视角梳理数据管理的核心问题,对比分析 NocoBase、Directus、Budibase 与 Appsmith 在建模、权限、流程与扩展性上的差异与适用场景。原文链接:https://www.nocobase.com/cn/blog/4-open-source-data-manag…

嵌入式系统设计师软考个人笔记<2>

一、嵌入式硬件核心组件1. 处理器与可编程逻辑器件处理器&#xff1a;MCU&#xff08;微控制器&#xff09;&#xff1a;集成 CPU 存储器 外设&#xff08;如 STM32、51 单片机&#xff09;&#xff0c;是嵌入式系统的核心&#xff1b;MPU&#xff08;微处理器&#xff09;&a…

【投票邀请】助力我冲击CSDN 2025博客之星TOP138,每一票都藏着你的偏爱~

【投票邀请】助力我冲击CSDN 2025博客之星TOP138&#xff0c;每一票都藏着你的偏爱&#xff5e; 亲爱的小伙伴们、长期陪伴我的博粉家人们&#xff1a; 大家好呀&#xff5e; 今天怀着满满的诚意和一点点小紧张&#xff0c;来向大家发出一个特别的邀请&#xff01;我正在参加…

c+++核心介绍

C 核心介绍C 是由 Bjarne Stroustrup 在 1980 年代基于 C 语言扩展而来的编程语言&#xff0c;核心特点是兼容 C 语言且新增了面向对象编程&#xff08;OOP&#xff09;特性&#xff0c;同时保留了对底层硬件的直接操控能力&#xff0c;因此被称为 “混合范式语言”—— 既支持…

vLLM 大模型性能测试

目录短文本测试中等长度测试长文本测试 短文本测试 vllm bench serve --model /data/models/Qwen1.5-14B-Chat-AWQ --backend vllm --base-url http://localhost:8000 --endpoint /v1/completions --dataset-name…

C++2026核心介绍

C 核心介绍C 是由 Bjarne Stroustrup 在 1980 年代基于 C 语言扩展而来的编程语言&#xff0c;核心特点是兼容 C 语言且新增了面向对象编程&#xff08;OOP&#xff09;特性&#xff0c;同时保留了对底层硬件的直接操控能力&#xff0c;因此被称为 “混合范式语言”—— 既支持…

《Python模糊测试普及困局:隐性壁垒与破局路径深度解析》

Python生态的生命力源于其极致的灵活性与丰富的库资源&#xff0c;这种特性让开发者能快速搭建各类应用、适配多元场景&#xff0c;却也为模糊测试的普及埋下了深层矛盾。模糊测试的核心价值在于通过非预设输入的探索性验证&#xff0c;捕捉常规测试难以触及的隐性风险&#xf…

机器学习实战:多项式回归建模——从模拟数据到模型评估

博主正在参加CSDN博客之星评选&#xff0c;需要您的支持&#xff01; 投票链接&#xff1a;https://www.csdn.net/blogstar2025/detail/056 题目&#xff1a;多项式回归建模练习 1. 训练资料生成 给定函数&#xff1a;y sin(x) 取样&#xff1a;在给定的 x 值&#xff08;x…

英特尔AI双赛走出的万名开发者,正在弥合AI人才缺口

作者&#xff1a;金旺近日&#xff0c;据央视新闻报道&#xff0c;我国人工智能企业数量已突破6200家&#xff0c;2025年我国人工智能核心产业规模已经突破1万亿元&#xff0c;人工智能大模型正在融入千行百业。与此同时&#xff0c;另一个来自人力资源社会保障部的统计数据显示…

【网安区块链项目参考】基于区块链的安全日志防篡改系统的设计与实现

整个系统资料包含&#xff1a;全套源码注释开发文档部署指导说明&#xff0c;需要的话可以私信博主获取&#xff0c;伸手党勿扰基于区块链的安全日志防篡改系统的设计与实现摘要随着信息系统规模的不断扩大&#xff0c;系统安全日志在网络安全审计、入侵检测与事后取证中发挥着…

【计算机毕业设计案例】基于django定制化ERP系统APP企业客户设备进销存系统小程序(程序+文档+讲解+定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

无线网络仿真:蓝牙网络仿真_(15).蓝牙网络仿真研究前沿

蓝牙网络仿真研究前沿 1. 蓝牙网络仿真的背景与意义 1.1 无线网络仿真的重要性 无线网络仿真是一种重要的研究工具&#xff0c;用于评估和优化无线通信系统的性能。通过仿真&#xff0c;研究人员可以模拟真实世界中的各种无线通信场景&#xff0c;从而分析网络的行为和性能。无…

用提示工程让大模型自己检查自己:CoVe方法有效减少幻觉

LLM幻觉问题至今没有根治方案。RAG能缓解一部分,但成本高、架构复杂,而且只适用于有外部知识源的场景。而对于模型"应该知道但经常搞错"的那类问题,比如历史事件的时间线、人物履历的细节,RAG帮不上什么…

Flink 流处理从入门到精通:DataStream 转换与窗口操作实战

💡 Flink DataStream API 实战全解析:Map、FlatMap、Filter 与 Window 窗口操作详解 封面图建议:深蓝科技感背景,中央 Flink logo,流动线条展示数据流动,关键词“Map / FlatMap / Filter / Window Processing”,简洁直观。 目录 Flink 执行环境与时间语义 基础转换操作…

Java 27 首获后量子混合密钥交换功能提案

计划于9月发布的标准Java版本——Java开发工具包&#xff08;JDK&#xff09;27已经获得了首个功能提案&#xff1a;后量子混合密钥交换能力&#xff0c;用于加强网络安全。该功能名为"TLS 1.3的后量子混合密钥交换"&#xff0c;已于1月13日在OpenJDK的JDK 27页面上列…

深入 Flink 数据源:RichSourceFunction 的设计与最佳实践

Flink DataStream API 实战:从 SourceFunction 到 RichSourceFunction 的进阶与优化 本文详细讲解了 Apache Flink 中源函数(Source Function)的演进,从最基础的 SourceFunction 到功能更强大的 RichSourceFunction,并结合数据库、Kafka 仿真及可配置化场景提供实战示例,…

小程序毕设项目推荐-基于django+小程序的工厂定制化ERP办公系统APP小程序【附源码+文档,调试定制服务】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

新手友好 Linux Mint 22.3“Zena“正式发布,带来系统全面升级

如果你想尝试 Linux Mint&#xff0c;现在正是时候。全新改进的"Zena"版本已经到来——仍然基于 Ubuntu Noble&#xff0c;但现在配备了 Cinnamon 6.6、改进的 Wayland 支持&#xff0c;以及更好的国际化功能、新的系统信息和系统管理工具&#xff0c;还有更清晰的图…