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

CCF认证CSP-J入门组模拟测试题

二、阅读程序题

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

第一题

1 #include<iostream>
2 using namespace std;
3 int a,b,c;
4 int main()
5 {
6 	 cin>>a>>b>>c;
7 	 a = b - a;
8	 b = b - a;
9	 a = b + a;
10	 c = b - a;
11	 cout<<a<<" "<<b<<" "<<c;
12	 return 0;
13 }

程序分析

       这段程序是一个简单的C++程序,它接收三个整数作为输入,并通过一系列的数学运算重新排列这三个数,最后输出这三个数的新值。从数学上看,这个程序的目的是将输入的三个数(a, b, c)重新排列为(b-a, b-a, b-2a)。

判断题

1)、若输入1 2 3,则输出3 2 1

2)、若输入123456789012 2 3,将输出2 123456789012 123456789010

3)、该程序中,头文件#include<iostream>可以改成#include<cstdio>

4)、若输入10,20,30(逗号隔开),符合程序的输入要求

答案:1×  2 ×  3 ×  4 ×

答案分析:

1、从程序分析可以得出输入1 2 3,输出的结果应该是2 1 -1,所以错误

2、输入123456789012,这个超出的int类型的范围,所以错误

3、程序中的cin和cout语句都需要用到iostream,所以不能更改,答案错误

4、cin默认是以空格或者换行符隔开,所以用逗号隔开不符合要求,答案错误

单选题

5)、若输入10 20 30 ,输出

A、20 10 20 

B、20 10 10 

C、20 10 30 

D、20 10 -10

答案:D

答案分析:输入的是10 20 30 ,计算过程如下:

a = b - a = 20 - 10 = 10

b = b - a = 20 - 10 = 10

a = b + a = 10 + 10 = 20

c = b - a = 10 - 20 = -10

s所以最后a = 20,b = 10 ,c = -10,答案D

6)、若将第10行的c = a - b 改成 c = b,则输入3  6 9,输出

A、6 3 6 

B、6 3 9

C、6 3 3

D、3 6 3

答案:C

答案分析:分析计算过程如上,最后得到的结果应该是6 3 3 ,答案C

第二题

1 #include <cstdio>
2 bool pd(long long n)
3 {
4	 if(n==1)
5		 return false;
6	 for(long long i=2;i<n;i++)
7		 if(n%i == 0) return false;
8	 return true;
9 }
10 int main()
11 {
12	  long long n,i,c=0;
13	  int INF = 1 << 30;
14	  scanf("%d",&n);
15	  for(i=2;i<=INF;i++)
16	  {
17		  if(pd(i))
18		  {
19			  c++;
20			  if(c==n)
21			  {
22				  printf("%d",i);
23				  return 0;
24			  }
25		  }
26	  }
27	  printf("\nover");
28	  return 0;
29 }

程序分析

       该段代码要实现的功能是计算第n个质数。程序定义了一个名为pd的函数,该函数用于判断一个给定的长整型数n是否为质数。然后在main函数中,程序从2开始逐一检查每个数字,直到找到第n个质数为止。

判断题

1)、上述代码中,若将第13行修改为INF=1<<40,则输出结果一定不变。

2)、上述代码中,将第23行修改为break或continue这两种情况后,有相同的输人,在这两种情况下,输出结果也一定相同。

3)、上述代码中,将第23行修改为break后,有相同的输入,变量c的值和未修改前一定相同。

4)、上述代码中,将第 23行修改为break后,有相同的输入,输出结果也一定相同。

答案:1 ×  2 √ 3 √  4 ×

答案分析:

1、修改为INF=1<<40,超出了int范围,答案错误

2、程序分析已经很清楚是求第n个质数,所以第23行return 0换成break和continue结果都是一样,答案正确

3、分析和第2题一样

4、如果改成break,会多输出一行over,答案错误

单选题

5)、 输人为:8,输出为

A、17

B、19回车over

C、19

D、23\nover

答案:C

答案分析:第8个质数就是19,答案C

5)、上述代码中,将第6行的i<n 修改为()后功能不变,效率更高

A、i*i<=n

B、i<n/2

C、i<n/3

D、i<n/4

答案:A

答案分析:假如两个数x和y,他们乘积如果能够等于n,那么两个数中最小的那个一定小于等于\sqrt{n},也就是min(x,y)<=\sqrt{n},因此循环变量i能取到的最大值为\sqrt{n}即可,答案A

第三题

1 #include<bits/stdc++.h>
2 using namespace std;
3 int a[100][100];
4 int b[100][100];
5 int f(int m,int n)
6 {
7 	if(m<=0 || n<=0)
8		return 0;
9	a[0][0] = b[0][0];
10	for(int i=1;i<n;i++)a[0][i] = a[0][i-1] + b[0][i];
11	for(int i=1;i<m;i++)a[0][i] = a[i-1][0] + b[i][0];
12	for(int i=1;i<m;i++)
13	{
14		for(int j=i;j<n;j++)
15		{
16			a[i][j] = min(a[i-1][j],a[i][j-1]+b[i][j]);
17		}
18	}
19	return a[m-1][n-1];
20 }
21 int main()
22 {
23	int m,n;
24	cin >> m >> n;
25	for(int i=0;i<m;i++)
26	{
27		for(int j=0;j<n;j++)
28			cin>>b[i][j];
29	}
30	cout<<f(m,n);
31	return 0;
32 }

程序分析

这个程序计算了一个给定的m x n矩阵b中从左上角到右下角的最小路径和,其中只能向右或向下移动。这是一个典型的动态规划问题,并且此代码正确地实现了该问题的解决方案。

判斯题

1) 上述代码实现了对一个长度为mxn的二维数组寻找每一行上的最小值进行求和

2) 上述代码如果删除第4行,其他地方的b数组都改成a数组,那么结果不变

答案:1× 2√ 

答案分析:本见上面程序分析,可知第一题并不是每一行上最小值求和,而是最小路径求和,所以错误;而第二题如果删除第4行并将所有b数组引用更改为a数组引用,结果将保持不变;这样a数组即使输入数组,也是动态规划中的结果数组,所以正确。

单选题

3)若输人数据为:
4 4
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
则输出的结果为

A、28

B、16

C、136

D、46

答案:D

答案分析:输入的是一个4*4的二维数组,如下所示

1  2  3  4
5  6  7  8 
9  10 11 12 
13 14 15 16

由于程序是求最小路径之和,只能向下或者向右走,所以经过的路径为:1 2 3 4 8 12 16,所以最终和值为46,答案D

4)上述代码的时间复杂度为

A、O(min(m,n))

B、O(2nm+m+n)

C、O(nm)

D、O(2nm)

答案:C

答案分析:因为程序中出现2次嵌套for循环,所以总的时间复杂度是 O(m * n),因为每个位置 (i, j) 只被访问一次。这意味着算法的时间复杂度是线性的,与矩阵的大小(即行数和列数的乘积)成正比,而时间复杂度是不允许出现常数,所以答案C

5)我们将上述算法称为

A、深度搜索

B、广度搜索

C、动态规划

D、贪心算法

答案:C

答案分析:这是一个典型的最小路径和问题的动态规划解法,在这个例子中,动态规划被用来逐步构建到达每个位置的最小路径和,最终得到从左上角到右下角的最小路径和;答案C

6)上述代码若删除第4行,其他地方的b数组都改成a数组,输人数据为:
3 3
1 2 3 4 5 6 7 8 9
则输出的结果为

A、20

B、12

C、11

D、21

答案:D

答案分析:分析和第三题一样,经过的路径为:1 2 3 6 9,所以答案D

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】学习-进程信号

进程信号 信号入门 生活角度的信号 你在网上买了很多件商品,再等待不同商品快递的到来。但即便快递没有到来,你也知道快递来临时,你该怎么处理快递。也就是你能“识别快递”,也就是你意识里是知道如果这时候快递员送来了你的包裹,你知道该如何处理这些包裹当快递员到了你…

2.13 数组练习

1、选择题 1.1、若有定义语句&#xff1a;int a[3][6]; &#xff0c;按在内存中的存放顺序&#xff0c;a 数组的第10个元素是 B A&#xff09;a[0][4] B) a[1][3] C)a[0][3] D)a[1][4] 解析&#xff1a;二维数组在内存中是以行优先的方式存放的。这意味着首先填充第一行的…

读十堂极简人工智能课笔记01_人工智能简史

1. 2400年前 1.1. 希腊罗德岛 1.1.1. 是个神奇的岛屿&#xff0c;以机械发明著称&#xff0c;包括真人大小的、大理石制成的自动机 1.1.2. 早在罗马帝国诞生之前&#xff0c;公元前400多年的希腊就有这样的机器人技术&#xff0c;似乎不可思议 2. 公元前970到前931年 2.1.…

LeetCode:83和82.删除排序链表中的重复元素I,II

这两题算是链表的基础题&#xff0c;就遍历删除没啥特点&#xff0c; 83甚至不需要考虑第一个结点的特殊情况&#xff0c;属实是名副其实的easy了 LeetCode&#xff1a;21.合并两个有序链表之第一次的特殊情况-CSDN博客 83. 删除排序链表中的重复元素 - 力扣&#xff08;Lee…

controller-manager学习三部曲之三:deployment的controller启动分析

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码)&#xff1a;https://github.com/zq2599/blog_demos 《controller-manager学习三部曲》完整链接 通过脚本文件寻找程序入口源码学习deployment的controller启动分析 本篇概览 本文是《controller-manager学习三…

【C++初阶】第三站:类和对象(中) -- 类的6个默认成员函数

目录 前言 类的6个默认成员函数 构造函数 概念 特性 析构函数 概念 特性 拷贝构造函数 概念 特征 赋值运算符重载 运算符重载 赋值运算符重载 const成员 const修饰类成员函数 取地址及const取地址操作符重载 本章总结&#xff1a; 前言 有时候我们写好了一个栈&#xff0c;头脑…

C#中implicit和explicit

理解: 使用等号代替构造函数调用的效果以类似重载操作符的形式定义用于类型转换的函数前者类型转换时候直接写等号赋值语法,后者要额外加目标类型的强制转换stirng str -> object o -> int a 可以 int a (int)(str as object)转换通过编译,但没有转换逻辑所以运行会报错…

《UE5_C++多人TPS完整教程》学习笔记14 ——《P15 创建我们自己的子系统(Creating Our Own Subsystem)》

本文为B站系列教学视频 《UE5_C多人TPS完整教程》 —— 《P15 创建我们自己的子系统&#xff08;Creating Our Own Subsystem&#xff09;》 的学习笔记&#xff0c;该系列教学视频为 Udemy 课程 《Unreal Engine 5 C Multiplayer Shooter》 的中文字幕翻译版&#xff0c;UP主&…

G85银昆高速宝鸡天台山隧道群荣获交通运输部科技示范工程,北京恒星科通隧道无线通信与广播系统应用于该项目

2023年9月12日&#xff0c;全国交通运输科技示范工程现场推进会在河南省平顶山市召开&#xff0c;会上为全国已通过验收的10项科技示范工程进行了授牌&#xff0c;其中由陕西交控集团负责实施的“秦岭天台山超长隧道群安全绿色科技示范工程”名列其中。 【授牌仪式现场】 据了解…

我让ChatGPT帮我钓妹子,它一口气撩了5000人

来自俄罗斯的一名AI开发者、社交平台TenChat的产品经理 AleksandrZhadan于1月30日在推特上发布了自己的婚讯&#xff0c;他将要与自己的女友Karina Imranovna在今年的8月结婚。令人震惊的是Aleksandr Zhadan介绍的认识女友的窍门-ChatGPT 帮他找到了另一半&#xff0c;并且通过…

vue-进阶语法(四)

目录 v-model原理 v-model应用于组件 sync修饰符 ref 和 $refs&#xff08;重点&#xff09; $nextTick v-model原理 原理&#xff1a;v-model本质上是一个语法糖。例如应用在输入框上&#xff0c;就是 value属性 和 input事件 的合写。 作用&#xff1a;提供数据的双向…

测试西门子博途S7-PLCSIM Advanced V5.0的使用

原创 honeytree 西门子博途S7-PLCSIM Advanced V5.0能支持S7-1500&#xff0c;S7-1500R/H&#xff0c;ET200SP&#xff0c;ET200pro的仿真&#xff0c;用此仿真器可以模拟实际的PLC&#xff0c;用于其他软件的连接&#xff0c;比如上位机软件、触摸屏软件,自己用高级语音开发…

VUE学习之路——列表渲染

<p v-for"item in items">{{ item }}</p>使用v-for进行列表的渲染。 这仅仅是一个简单的demo&#xff0c;使用v-for可以用来遍历数组和对象&#xff0c;具体如下&#xff1a; 注意&#xff1a;遍历数组或对象的时候&#xff0c;&#xff08;&#xff09;…

java客运管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java客运管理系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysql5.0&#…

几个好用的 iphone 手机模板贴图样机

整理了几个好用的 iphone 手机模板贴图&#xff0c;分享一下。 关注订阅号「设计师工作日常」&#xff0c;发送关键词 iphone mockup ,获取下载链接。 [1] 原文阅读 我是 Just&#xff0c;这里是「设计师工作日常」&#xff0c;求点赞求关注&#xff01;

问题:3【单选题】实现职业理想的一般步骤是()。 #媒体#媒体

问题&#xff1a;3【单选题】实现职业理想的一般步骤是()。 A、创业-立业-择业 B、择业-创业-立业 C、择业-立业-创业 D、立业-择业-创业 参考答案如图所示

Git分支和迭代流程

Git分支 feature分支&#xff1a;功能分支 dev分支&#xff1a;开发分支 test分支&#xff1a;测试分支 master分支&#xff1a;生产环境分支 hotfix分支&#xff1a;bug修复分支。从master拉取&#xff0c;修复并测试完成merge回master和dev。 某些团队可能还会有 reale…

分享76个行业PPT,总有一款适合您

分享76个行业PPT&#xff0c;总有一款适合您 76个行业PPT下载链接&#xff1a;https://pan.baidu.com/s/17zUV16XOg9uBfDTH7sURxw?pwd8888 提取码&#xff1a;8888 Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 学习知识费力气&#xff0c;收集整理更不易。知…

有趣儿的组件(HTML/CSS)

分享几个炫酷的组件&#xff0c;起飞~~ 评论区留爪&#xff0c;继续分享哦~ 文章目录 1. 按钮2. 输入3. 工具提示4. 单选按钮5. 加载中 1. 按钮 HTML&#xff1a; <button id"btn">Button</button>CSS&#xff1a; button {padding: 10px 20px;text-tr…

怎么使用ChatGPT提高工作效率?

怎么使用ChatGPT提高工作效率&#xff0c;这是一个有趣的话题。 相信不同的人有不同的观点&#xff0c;大家的知识背景和从事的工作都不完全相同&#xff0c;所以最终ChatGPT能起到的作用也不一样。 在编程过程中&#xff0c;如果我们要找一个库&#xff0c;我们最先做的肯定…