高中信息技术 c++编程试题(无答案)

文档属性

名称 高中信息技术 c++编程试题(无答案)
格式 docx
文件大小 24.1KB
资源类型 教案
版本资源 通用版
科目 信息技术(信息科技)
更新时间 2022-05-26 13:41:27

图片预览

文档简介

2
2022年XX中学第二届编程比赛
(C、C++)
时间:2022年5月13日
题目名称 及格率 数字翻转 最大公约数 密接者 新冠病毒
分值 15 15 15 30 25
题目类型 传统型 传统型 传统型 传统型 传统型
目录 rate reverse gcd contiguity covid
可执行文件名 rate reverse gcd contiguity covid
输入文件名 rate.in reverse.in gcd.in contiguity.in covid.in
输出文件名 rate.out reverse.out gcd.out contiguity.out covid.out
每个测试点时限 1.0秒 1.0秒 1.0秒 1.0秒 1.0秒
内存限制 512MiB 512MiB 512MiB 512MiB 512MiB
子任务数目 10 10 10 10 10
测试点是否等分 是 是 是 是 是
提交源程序文件名
对于C++语言 rate.cpp reverse.cpp gcd.cpp contiguity.cpp covid.cpp
C语言 rate.c reverse.c gcd.c contiguity.c covid.c
编译选项
对于C++语言 ‐O2‐lm
对于C语言 ‐O2‐lm
注意事项(请仔细阅读)
1.文件名(程序名和输入输出文件名)必须使用英文小写。
2.C/C++中函数main()的返回值类型必须是int,程序正常结束时的返回值必须是0。
3.将提交的程序代码文件的放置在文件夹“学号姓名”中提交。
4.因违反以上三点而出现的错误或问题,一律不予纠正。
5.若无特殊说明,结果的比较方式为全文比较(过滤行末空格及文末回车)。
6.程序可使用的栈空间内存限制与题目的内存限制一致。
7.评测在dev下进行,各语言的编译器版本以此为准。
8.备用题暂不启用,不算分。
及格率(rate)
【题目描述】
期中考试考完了,班主任想知道信息科技考试成绩大于60分的同学占全班总人数的百分比,请写程序帮他完成。
全班有n个学生,每个学生的信息科技考试成绩为0到100的整数。
【输入格式】
从文件rate.in中读入数据。
输入两行,第一行包含一个正整数n,表示全班学生人数。0第二行包含n个空格隔开的非负整数,表示n个学生成绩。其中第i个非负整数表示ai。保证0≤ai≤100。
【输出格式】
输出到文件rate.out中。
输出一行一个百分数,保留1位有效数字,如80.5%。
可以用cout<【样例 1 输入】
1
80
【样例 1 输出】
100.0%
【样例 2 输入】
2
50 80
【样例 2 输出】
50.0%
数字翻转(reverse)
【题目描述】
给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2)。。
【输入格式】
从文件gcd.in中读入数据。
输入共 1 行,一个整数N。-1,000,000,000 ≤ N≤ 1,000,000,000。
【输出格式】
输出到文件gcd.out中。
输出共 1 行,一个整数,表示反转后的新数。
【样例 1 输入】
123
【样例 1 输出】
321
【样例 2 输入】
-380
【样例 2 输出】
-83
最大公约数(gcd)
【题目描述】
如果数a能被数b整除,a就叫做b的倍数,b就叫做a的约数。约数和倍数都表示一个整数与另一个整数的关系,不能单独存在。如只能说16是某数的倍数,2是某数的约数,而不能孤立地说16是倍数,2是约数。
几个整数中公有的约数,叫做这几个数的公约数;其中最大的一个,叫做这几个数的最大公约数(也可以叫最大公因子、最大公因数)。
例如:12和16,可以从12到1的自然数之间找最大公约数。其中4、2、1都能整除12和16,所以最大公约数是4。
求最大公约数有多种方法,常见的有质因数分解法、短除法、辗转相除法、更相减损法。现有n组数据,每组两个整数。请编写程序分别算出最大公约数。
【输入格式】
从文件gcd.in中读入数据。
输入多行数据,第一行只有一个正整数n,表示有n组数据。0以后n行,每行有两个正整数a,b。0【输出格式】
输出到文件gcd.out中。
对于n组数据,每组分别输出一行,输出两数的最大公约数。
【样例 1 输入】
1
12 20
【样例 1 输出】
4
【样例 1 输入】
2
10 20
12 18
【样例 2 输出】
10
3
密接者(contiguity)
【题目描述】
(以下全是虚构信息)某小区某人x(用小写字母”*”表示)是个无症状感染者,现在知道他的行踪轨迹(用字符”+”表示),请编写程序帮忙查找,哪个人(小写字母)是密接者。
该小区是个是由m×m个相邻的元素组成(每个元素可能是房屋、小区道路或者绿地等,x的活动范围只是在小区内),字符”*”表示感染者,字符”+”表示感染者的行踪轨迹(可能将病毒传染给上下左右四个方向的相邻人),字符”#”表示没有经过的区域(不会作为传染媒介),小写字母表示小区居民(可能会成为密接者,但是也不会变成传染源)。
【输入格式】
从文件contiguity.in中读入数据。
第1行是一个正整数m(1<=m<=100),表示小区是由m*m的元素组成。
接下来是一个m*m的字符矩阵,矩阵中的字符为”*”、”+”、”#”和小写字母。
【输出格式】
输出到文件contiguity.out中。
如果没有密接者就输出数字0,否则输出表示密接者的小写字母。如果有多个密接者,按字母顺序分行输出。
【样例 1 输入】
3
* + +
# # +
a + +
【样例 1 输出】
a
【样例 2 输入】
5
# # + + +
b # + d #
a e + # #
# # + # f
* + + # #
【样例 2 输出】
d
e
新冠病毒(covid)
【题目描述】
自2019年末以来全球暴发COVID-19,其病原体是新型冠状病毒-2,即SARS-CoV-2。由于新冠病毒属于RNA病毒,像流感病毒一样同属于RNA病毒,相对于DNA病毒更加容易变异。至今全球至少完成了对330,000株新冠病毒的序列测定。世卫组织(WHO)规定按照发现病人得病的时间和希腊字母的顺序给新冠病毒主要变异病毒类型起名。如,2020年10月发现于印度的两种新冠变种病毒其中的一种(编号B.1.617.2)命名为Delta(δ delta 德尔塔),后来又发现了Οο omicron omik`ron奥密克戎。
(以下虚构)科学家已经掌握了德尔塔和奥密克戎两种变异病毒的基因序列(由各个小写字母组成),请你编写程序帮助科学家计算两种病毒基因序列的最大公共子序列的长度。
我们称序列Z=是序列X=的子序列,当且仅当存在严格上升的序列,使得对j=1,2,...,k,有xij=zj。比如Z = < a, b, f, c >是X = < a, b, c, f, b, c >的子序列。
【输入格式】
从文件covid.in 中读入数据。
输入数据包括一行,给出两个长度不超过200的字符串,表示两个变异病毒的基因序列。两个字符串之间由一个空格隔开。
【输出格式】
输出到文件covid.out中。
输出一行,给出两个序列的最大公共子序列的长度。。
【样例 1 输入】
abcfbc abfcab
【样例 1 输出】
4
【样例 1 解释】
两个序列中按顺序都有abfc或abfc或abcb,最大长度4。
【样例 2 输入】
programming contest
【样例 2 输出】
2
监测点(checkpoint,备用题)
【题目描述】
为了抗疫社区设置了监测点,争取第一时间掌握疫情状况,落实到每个小区每个楼每个单元每个住户进行精准防疫。
(以下有关信息是假想的)现青年路社区有m小区(都在一条数轴原点右侧,知道各小区离原点的距离),现在要设置n各检测点(只能设置在某个小区大门口)。因为小区里行动不便的老年人,社区需要尽量让每个居民离核算检测点的距离最近,又想节约成本只能设置n个检测点。
请写程序帮助计算,在现有小区位置、可以设置检测点数量的基础上,计算每个小区离与其最近检测点距离和的最小值。
【输入格式】
从文件checkpoint.in 中读入数据。
输入数据包括两行,第一行是两个正整数m和n。分别表示小区数量和监测点数量。1<=m<=300,1<=n<=30,n<=m。
第二行是m个正整数x,从左到右依序表示各村庄离数轴原点的距离。1<=x<=10000。
【输出格式】
输出到文件checkpoint.out中。
输出一个正整数,每个小区离与其最近检测点距离和的最小值。
【样例 1 输入】
10 5
1 2 3 6 7 9 11 22 44 50
【样例 1 输出】
9
【样例 2 输入】
1 1
10
【样例 2 输出】
0
【样例 3 输入】
2 1
10 30
【样例 2 输出】
20
第 2 页 共12页
同课章节目录