中小学信息学奥赛CSP-J认证 CCF非专业级别软件能力认证-入门组初赛模拟题第二套(阅读程序题)

CSP-J入门组初赛模拟题二

二、阅读程序题

(程序输入不超过数组或字符串定义的范围,判断题正确填√错误填X;除特殊说明外,判断题 1.5分,选择题3分,共计40分)

第一题

1 #include<bits/stdc++.h>
2 using namespace std;
3 int main(){
4 	string s;
5	char s1[100];
6	int len,j = 0;
7	cin >> s;
8	len = s.size();
9	memset(s1,0,sizeof(s1));
10	for(int i = 0;i < len;i++){
11		if(i % 2 == 0)
12			if((s[i] >= 'A' && s[i] < 'Z')||(s[i] >= 'a' && s[i] < 'z')){
13				s1[j] = s[i] +1;
14				++j;
15			}
16	}
17	cout << s1 << endl;
18	return 0;
19 }

程序分析

以上程序是一个简单的字符串处理程序。程序的功能是读入一个字符串s,然后根据一定的规则将字符串处理后输出,如果字符的下标是偶数,则判断字符是否为字母,如果是字母,则将该字母后一个字母加入到数组中,并最后进行输出

判断题

1)、输出的字符串只能是字母组成

2)、若将12行的"<"改为"<=",则输出结果有可能包含数字

3)、将第9行删除,程序运行结果不会改变

4)、将第11行删除,则输出字符的长度和输入字符的长度一致

答案:1√ 2 × 3 × 4 ×

答案分析:

1、从程序分析可以得出输出的只能是字母

2、输出不可能是数字,因为数字的ASCII码值要小于字母的ASCII码

3、如果没有初始化,有可能输出的时候会出现乱码

4、如果输入的有包含非字母字符输出的长度就会更短

单选题

5)、若输入的字符串长度为10,则输出的字符串长度最长可能为

A、4

B、5

C、6

D、10

答案:B

答案分析:因为是要获取偶数位置的,且字符是字母的才加入字符数组中,题目要求输出长度最长只能是输入的偶数位置都是字母就可以得到5个,答案B

6)、若输入的字符串都是字母,则输出中可能出现

A、A

B、Z

C、a

D、以上都不对

答案:B

答案分析:因为输出的是当前字符的后一个字符,所以a和A是不可能,Z是可以,偶数位置为Y就会输出Z,答案B

第二题

1 #include<bits/stdc++.h>
2 using namespace std;
3 int main(){
4	int a[1001],i,j,t,n;
5	for(i = 0;i <= 1000;i++)
6		a[i] = 0;
7	scanf("%d",&n);
8	for(i = 1;i <= n;i++){
9		scanf("%d",&t);
10		a[t]++;
11	}
12	for(i = 1000;i >= 0;i--)
13		for(j = 1;j <= a[i];j++)
14			printf("%d",i);
15	return 0;
16 }

程序分析

该实现了对一组数字进行排序的功能,且从大到小进行排序,接下来使用一个for循环,循环n次,每次读入一个数字t,并将数组a中下标为t的元素加1,表示数字t出现的次数。

再使用两个嵌套的for循环,从数组a的最后一个元素开始,逆序遍历数组。外层的for循环控制遍历的次数,内层的for循环用来输出当前数字i的个数次数,即将数字i输出a[i]次。

判断题

1)、输入10个数字,输出结果是从小到大。

2)、若输入的数字中有两个1,则输出时出来第一个1是第一个输入的

3)、若将第13行的"<="改为"<",且输入数据为10 2 12 33 34 1 2 87 22 9 0,则输出2 

4)、 若将第12行改为for(i=0;i<=1000;i++),则程序运行结果不变

答案:1× 2 ×3 √ 4 ×

答案分析:

1、从程序分析可以得出输出结果是从大到小

2、如果有两个1,输出来的第一个是第二个输入的

3、输入的2出现两次,如果改成<,所以只会输出超过出现1次的数字

4、如果改成这个,则输出结果就是从大到小

单选题

5)、 若将第12行改为for(i=1000;i>1;i--);第13行 改为for(j=a[i];j>1;j--),输入数据为5 2 12 33 34 44,则运行结果

A、不变

B、输出2 12 33 34 44

C、无输出

D、输出44 34 33 12 2

答案:C

答案分析:输入的数字都只有一次,二条件是要出现次数超过一次的数字才会有输出,所以答案C

6)、若将第10行改为++a[t]或a[t++],则输入5 1 2 3 4 5,输出结果为

A、1 2 3 4 5 或 5 4 3 2 1

B、1 2 3 4 5 或 无输出

C、5 4 3 2 1 或 5 4 3 2 1

D、5 4 3 2 1 或 无输出

答案:D

答案分析:++a[t]和a[t]++效果一样,但是a[t++]在下面输出的时候条件都不满足,所以没有输出,答案D

第三题

1 #include<bits/stdc++.h>
2 using namespace std;
3 const int maxn=500000,INF=0x3f3f3f3f;
4 int L[maxn/2+2],R[maxn/2+2];
5 void unknown(int a[],int left,int mid,int right){
6	int n1=mid-left,n2=right-mid;
7	for(int i=0;i<n1;i++)
8		L[i]=a[left+i];
9	for(int i=0;i<n2;i++)
10		R[i]=a[mid+i];
11	L[n1]=R[n2]=INF;
12	int i=0,j=0;
13	for(int k=left;k<right;k++){
14		if (L[i]<=R[j])
15			a[k]=L[i++];
16		else
17			a[k]=R[j++];
18	}
19 }
20 void unknownsort(int a[],int n,int left,int right){
21	if(left+1<right){
22		int mid=(left+right)/2;
23		unknownsort(a,n,left,mid);
24		unknownsort(a,n,mid,right);
25		unknown(a,left,mid,right);
26	}
27 }
28 int main(){
29	int a[maxn],n;
30	cin>>n;
31	for(int i=0;i<n;i++)cin>>a[i];
32	unknownsort(a,n,0,n);
33	for(int i=0;i<n;i++){
34		if(i) cout<<" ";
35		cout<<a[i];
36	}
37	cout<<endl;
38	return 0;
39 }

程序分析

该程序是使用归并排序来对一个数组进行排序的。具体分析如下:

  1. 首先定义了常量maxn和INF,maxn表示数组的最大长度,INF表示一个很大的数,用来作为L和R数组的哨兵。

  2. 定义了一个函数unknown,该函数接受一个数组a、数组的长度n和三个下标值left、mid、right作为参数。该函数的作用是将数组a中的[left, mid)和[mid, right)两个部分进行归并排序。

  3. 函数unknown首先计算出两个部分的长度n1和n2,然后将数组a中的[left, mid)和[mid, right)两个部分分别复制到L和R数组中。

  4. 利用变量k遍历[left, right)范围内的所有元素,并根据L和R数组中的元素的大小关系将其放入数组a中。

  5. 接着定义了一个函数unknownsort,该函数接受一个数组a、数组的长度n和两个下标值left和right作为参数。该函数的作用是将数组a中的[left, right)范围内的元素进行归并排序。

  6. 在函数unknownsort中,首先判断[left, right)范围内的元素个数是否大于1,如果大于1,则计算出中间下标mid,然后递归调用unknownsort函数对[left, mid)和[mid, right)两个部分进行归并排序。最后调用unknown函数对[left, mid)和[mid, right)两个部分进行归并操作。

判斯题

1) 将第13 行的“<”改为“<=”不会改变运行结果

2) 将第 21行的“<”改为“<="不会改变运行结果

3) 此类排序方法是高效的,但是不稳定

4)将第4行的2个“+2"都去掉不会改变运行结果

答案:1 × 2 × 3  ×  4 √

答案分析:

1、从程序分析可以得出如果更改了,遍历的范围就包括了right,越界了,所以错误

2、从程序分析可以得出如果更改了,left到right范围内的元素需要大于1个也就是2个以上才需要进行归并排序,如果改了之后变成1个也需要归并排序,这个就有问题,所以错误

3、归并排序的优点就是高效而且稳定,适用于大规模数据排序,所以错误

4、+2设置只是人为的给数组长度加长一点防止越界,真正实际使用的时候数据是不会越界的,所以正确

单选题

5)此题是哪种排序

A、选择排序

B、桶排序

C、归并排序

D、堆排序

答案:C

答案分析:这是非常典型的归并排序的解题方法,所以答案C

6)此题用到了()思想。

A、动态规划

B、分治

C、冒泡

D、贪心

答案:B

答案分析:归并排序使用了分治的思想。将待排序的数组分成两个子数组,分别对两个子数组进行递归排序,然后将两个已排序的子数组合并起来,得到最终的排序结果,所以答案B

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

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

相关文章

探索微信小程序的奇妙世界:从入门到进阶

文章目录 一、什么是微信小程序1.1 简要介绍微信小程序的定义和特点1.2 解释小程序与传统应用程序的区别 二、小程序的基础知识2.1 微信小程序的架构2.2 微信小程序生命周期的理解2.3 探索小程序的目录结构和文件类型 三、小程序框架和组件3.1 深入了解小程序框架的核心概念和原…

【无标题】Matlab之annotation函数——创建图形注释(箭头、椭圆、矩形)

应用1&#xff1a;创建文本箭头注释 创建一个简单线图并向图窗添加文本箭头。用归一化的图窗坐标指定文本箭头位置&#xff0c;起点为 (0.3,0.6)&#xff0c;终点为 (0.5,0.5)。通过设置 String 属性指定文本说明。 figure plot(1:10) x [0.3 0.5]; y [0.6 0.5]; annotation…

ClickHouse--08--SQL DDL 操作

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 SQL DDL 操作1 创建库2 查看数据库3 删除库4 创建表5 查看表6 查看表的定义7 查看表的字段8 删除表9 修改表9.1 添加列9.2 删除列9.3 清空列9.4 给列修改注释9.5 修…

C语言第二十四弹---指针(八)

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】 指针 1、数组和指针笔试题解析 1.1、字符数组 1.1.1、代码1&#xff1a; 1.1.2、代码2&#xff1a; 1.1.3、代码3&#xff1a; 1.1.4、代码4&#xff1a; 1…

thinkphp6入门(20)-- 如何上传图片、文件

1. 配置文件 设置上传的路径 对应文件夹 2. 前端 <div class"card-body"><h1 class"card-title">用户头像</h1><img src"../../../uploads/{$user.avatar_photo_path}" alt"avatar" height"100"/&g…

Windows 安装和连接使用 PgSql数据库

一. PostgreSQL 安装详细步骤 下载地址&#xff1a;https://www.enterprisedb.com/postgresql-tutorial-resources-training-1?uuidd732dc13-c15a-484b-b783-307823940a11&campaignIdProduct_Trial_PostgreSQL_16 1. 双击打开安装包 2. 选择安装目录 3. 选择安装组件 4.…

windows10系统转换成为window7s出现蓝屏错误ax000000A5

状况的描述&#xff1a; 由于电脑的基础性能有一些不匹配&#xff0c;想把windows10系统转换成为windows7的系统进行处理&#xff0c;利用widowspe的装机系统对其进行处理&#xff0c;但是对其进行相关的安装&#xff0c;目前在网络上搜索的相关文章分析的原因&#xff1a; 原…

蓝桥杯:C++排序

排序 排序和排列是算法题目常见的基本算法。几乎每次蓝桥杯软件类大赛都有题目会用到排序或排列。常见的排序算法如下。 第(3)种排序算法不是基于比较的&#xff0c;而是对数值按位划分&#xff0c;按照以空间换取时间的思路来排序。看起来它们的复杂度更好&#xff0c;但实际…

政安晨:梯度与导数~示例演绎《机器学习·神经网络》的高阶理解

这篇文章确实需要一定的数学基础&#xff0c;第一次接触的小伙伴可以先看一下我示例演绎这个主题的前两篇文章&#xff1a; 示例演绎机器学习中&#xff08;深度学习&#xff09;神经网络的数学基础——快速理解核心概念&#xff08;一&#xff09;&#xff1a; 政安晨&#…

蓝桥杯嵌入式学习记录——按键的使用

目录 一、按键原理简介 二、cubeMX的配置 三、按键的短按代码 四、按键的长按代码 一、按键原理简介 在STM32中&#xff0c;按键连接通常使用GPIO&#xff08;通用输入/输出&#xff09;端口来实现。当按键未被按下时&#xff0c;GPIO端口处于高电平状态&#xff08;即1&am…

springboot188基于spring boot的校园商铺管理系统

简介 【毕设源码推荐 javaweb 项目】基于springbootvue 的 适用于计算机类毕业设计&#xff0c;课程设计参考与学习用途。仅供学习参考&#xff0c; 不得用于商业或者非法用途&#xff0c;否则&#xff0c;一切后果请用户自负。 看运行截图看 第五章 第四章 获取资料方式 **项…

高德地图上绘制热力图的方法

百度地图和高德地图的JavaScript API都提供了热力图的绘制方法&#xff0c;都是将热力图作为新的图层&#xff0c;叠加到地图上。但是百度地图的经纬度体系与我们的经纬度存在偏差&#xff0c;高德的与我们相符&#xff0c;应当使用高德地图JavaScript API。 因为是JavaScript…

COM初体验——新建文档并写入内容。

我想在程序里和Word交互。老师跟我说不要学COM&#xff0c;因为它已经过时了。但是我不想再把代码移植到C#上面&#xff0c;然后用VSTO——已经用了std::unordered_set&#xff01;因为我使用了Copilot&#xff0c;结合我的思考&#xff0c;写了下面的代码&#xff1a; #impor…

【Langchain Agent研究】SalesGPT项目介绍(四)

【Langchain Agent研究】SalesGPT项目介绍&#xff08;三&#xff09;-CSDN博客 github地址&#xff1a;GitHub - jerry1900/SalesGPT: Context-aware AI Sales Agent to automate sales outreach. 上节课&#xff0c;我们主要介绍了SalesGPT的类属性和它最重要的类方法f…

【教学类-47-01】20240206UIBOT+IDM下载儿童古诗+修改文件名

背景需求&#xff1a; 去年12月&#xff0c;我去了其他幼儿园参观&#xff0c;这是一个传统文化德育教育特色的学校&#xff0c;在“古典集市”展示活动中&#xff0c;小班中班大班孩子共同现场念诵《元日》《静夜思》包含了演唱版本和儿歌念诵版本。 我马上也要当班主任了&a…

微信小程序开发学习笔记《17》uni-app框架-tabBar

微信小程序开发学习笔记《17》uni-app框架-tabBar 博主正在学习微信小程序开发&#xff0c;希望记录自己学习过程同时与广大网友共同学习讨论。建议仔细阅读uni-app对应官方文档 一、创建tabBar分支 运行如下的命令&#xff0c;基于master分支在本地创建tabBar子分支&#x…

Netty Review - 服务端channel注册流程源码解析

文章目录 PreNetty主从Reactor线程模型服务端channel注册流程源码解读入口 serverBootstrap.bind(port)执行队列中的任务 &#xff1a; AbstractUnsafe#register0注册 doRegister() 源码流程图 Pre Netty Review - ServerBootstrap源码解析 Netty Review - NioServerSocketCh…

TCP高频知识点

本篇文章主要讲述一下在面试过程中TCP的高频知识点 1.TCP三次握手流程图: 客户端发送一个SYN&#xff08;同步&#xff09;报文段给服务器&#xff0c;选择一个初始序列号&#xff0c;并设置SYN标志位为1。服务器接收到客户端的SYN报文段后&#xff0c;回复一个ACK&#xff08…

OJ刷题:杨氏矩阵【建议收藏】

看见这个题目&#xff0c;很多人的第一反应是遍历整个数组查找数字&#xff0c;但是这种方法不仅效率低&#xff0c;而且远远不能满足题目要求。下面介绍一种高效的查找方法&#xff1a; 代码实现&#xff1a; #include <stdio.h>int Yang_Find_Num(int arr[][3], int …

steam游戏搬砖项目靠谱吗?有没有风险?

作为一款fps射击游戏&#xff0c;csgo在近几年可谓是火出圈&#xff0c;作为一款全球竞技游戏&#xff0c;深受玩家喜爱追捧&#xff0c;玩家追求的就是公平公正&#xff0c;各凭本事&#xff0c;像其他游戏可能还会有皮肤等装备属性加成&#xff0c;在csgo里面是不存在的。 纯…