noip普及组复赛模拟试题18
NOIP2018第二十四届全国青少年信息学奥林区克联赛初赛普及组试题及参考答案(手打版)

NOIP2018第二十四届全国青少年信息学奥林区克联赛初赛普及组试题及参考答案(手打版)第二十四届全国青少年信息学奥林区克联赛初赛普及组一、单项选择题1、以下哪一种设备属于输出设备:()A 扫描仪B 键盘C 鼠标D 打印机2、下列四个不同进制的数中,与其他三项数值上不相等的是()A (269)_{16}(269)16B (617)_{10}(617)10C (1151)_{8}(1151)8D (1001101011)_{2}(1001101011)23、11MB等于()A 10001000字节B 10241024字节C 1000*10001000∗1000字节D 1024*10241024∗1024字节4、广域网的英文缩写是()A LANB WANC MAND LNA5、中国计算机协会于()年创办全国青少年计算机程序设计竞赛。
A 1983B 1984C 1985D 19866、如果开始时计算机处于小写输入状态,现在有一只小老鼠反复按照CapsLock、字母键A、字母键S、字母键D、字母键F的顺序循环按键,即CapsLock、A、S、D、F、CapsLock、A、S、D、F、……、屏幕上输出的第81个字母是字母()。
A. AB. SC.DD.a7、根节点深度为0,一棵深度为h的满K叉树,即除最后一层无任何子节点外,每一层上所有节点都有k个子节点的树,共有()个节点。
A (k^{h+1}-1)/(k-1)(k h+1−1)/(k−1)B k^{h-1}k h−1C k^h k hD (k^{h-1})/(k-1)(k h−1)/(k−1)8、以下排序算法中,不需要进行关键字比较操作的算法是()。
A 基数排序B 冒泡排序C 堆排序D 直接插入排序9、给定一个含N个不相同数字的数组,在最坏情况下,找出期中最大或最小的树,至少需要N-1此操作。
则最坏情况下,在该数组中同时找最大与最小的数至少需要()次操作。
noip普及组复赛试题及答案

noip普及组复赛试题及答案一、选择题1. 在计算机科学中,以下哪个概念与数据结构最相关?A. 算法B. 操作系统C. 网络协议D. 编译原理答案:A2. 以下哪种排序算法的时间复杂度为O(n^2)?A. 快速排序B. 归并排序C. 堆排序D. 冒泡排序答案:D3. 在C++中,以下哪个关键字用于定义类?A. structB. unionC. enumD. typedef答案:A4. 以下哪个选项不是数据库管理系统(DBMS)的特性?A. 数据持久性B. 数据共享C. 数据加密D. 数据独立性答案:C5. 在计算机网络中,TCP和UDP协议分别属于哪一层?A. 传输层B. 应用层C. 网络层D. 物理层答案:A二、填空题1. 在计算机程序中,______ 用于定义数据的存储方式和组织形式。
答案:数据结构2. 一个算法的时间复杂度为O(1),表示该算法的执行时间与输入数据的规模______。
答案:无关3. 在C++中,______ 是一种特殊的类,它提供了一种方式来定义数据类型。
答案:typedef4. 数据库管理系统(DBMS)通常包含数据定义语言(DDL)、数据操纵语言(DML)和______。
答案:数据控制语言(DCL)5. 在计算机网络中,______ 协议负责在网络层进行数据包的路由选择。
答案:IP三、简答题1. 请简述面向对象编程(OOP)的三个基本特征。
答案:封装、继承、多态2. 描述二分查找算法的基本步骤。
答案:二分查找算法的基本步骤包括:首先确定数组是有序的,然后取中间元素与目标值比较,如果中间元素等于目标值,则查找成功;如果目标值小于中间元素,则在左半部分继续查找;如果目标值大于中间元素,则在右半部分继续查找,直到找到目标值或查找范围为空。
四、编程题1. 编写一个函数,实现对整数数组的排序。
答案:以下是一个简单的冒泡排序算法实现:```cppvoid bubbleSort(int arr[], int n) {for (int i = 0; i < n-1; i++) {for (int j = 0; j < n-i-1; j++) {if (arr[j] > arr[j+1]) {swap(arr[j], arr[j+1]);}}}}```2. 编写一个函数,实现计算一个整数的阶乘。
『NOIP2018普及组题解』

『NOIP2018普及组题解』<更新提⽰><第⼀次更新><正⽂>标题统计题⽬描述凯凯刚写了⼀篇美妙的作⽂,请问这篇作⽂的标题中有多少个字符?注意:标题中可能包含⼤、⼩写英⽂字母、数字字符、空格和换⾏符。
统计标题字符数时,空格和换⾏符不计算在内。
输⼊格式输⼊⽂件只有⼀⾏,⼀个字符串 s。
输出格式输出⽂件只有⼀⾏,包含⼀个整数,即作⽂标题的字符数(不含空格和换⾏符)。
样例数据input1234output13input2Ca 45output24样例说明样例 1 :标题中共有 3 个字符,这 3 个字符都是数字字符。
样例 2 :标题中共有 5 个字符,包括 1 个⼤写英⽂字母, 1 个⼩写英⽂字母和 2 个数字字符,还有 1 个空格。
由于空格不计⼊结果中,故标题的有效字符数为 4 个。
数据规模与约定规定∣s∣表⽰字符串 s 的长度(即字符串中的字符和空格数)。
对于 %40 的数据,1 ≤ |s| ≤ 5,保证输⼊为数字字符及⾏末换⾏符。
对于 %80 的数据,1 ≤ |s| ≤ 5,输⼊只可能包含⼤、⼩写英⽂字母、数字字符及⾏末换⾏符。
对于 %100 的数据,1 ≤ |s| ≤ 5,输⼊可能包含⼤、⼩写英⽂字母、数字字符、空格和⾏末换⾏符。
时间限制:1s空间限制:256MB解析T1和往年⼀样,还是签到题。
不过这⼀次好像更注重考察语⾔了,不少不熟悉语⾔的⼩伙伴可能就没有分了啦。
⼤概是考察如何处理输⼊吧,会⽤getline()的基本都⽤了getline()了吧,当然,不会⽤的还有其他的办法,主要是while(cin>>str)和scanf()读到换⾏符为⽌。
这样的话,只要暴⼒统计⼀下就可以了啦。
Code:#include<bits/stdc++.h>using namespace std;string s;int ans=0;int main(void){freopen("title.in","r",stdin);freopen("title.out","w",stdout);getline(cin,s);for(int i=0;i<s.size();i++){if(s[i]!=' ')ans++;}printf("%d\n",ans);return 0;}#include<bits/stdc++.h>using namespace std;char s;int ans=0;int main(){freopen("title.in","r",stdin);freopen("title.out","w",stdout);while (cin>>s){if(s>='0'&&s<='9'||s>='a'&&s<='z'||s>='A'&&s<='Z')ans++;}cout<<ans<<endl;return 0;}龙虎⽃题⽬描述轩轩和凯凯正在玩⼀款叫《龙虎⽃》的游戏,游戏的棋盘是⼀条线段,线段上有 n个兵营(⾃左⾄右编号 1 ∼n),相邻编号的兵营之间相隔1 厘⽶,即棋盘为长度为 n-1 厘⽶的线段。
NOIP普及组复赛试题

P1909 买铅笔题目描述P教师需要去商店买n支铅笔作为小朋友们参加NOIP的礼物。
她发觉商店一共有3种包装的铅笔,不同包装内的铅笔数量有可能不同,价钱也有可能不同。
为了公平起见,P教师决定只买同一种包装的铅笔。
商店不许诺将铅笔的包装拆开,因此P教师可能需要购买超过n支铅笔才够给小朋友们发礼物。
此刻P教师想明白,在商店每种包装的数量都足够的情形下,要买够至少n支铅笔*最少*需要花费多少钱。
输入输出格式输入格式:输入的第一行包括一个正整数n,表示需要的铅笔数量。
接下来三行,每行用两个正整数描述一种包装的铅笔:其中第一个整数表示这种包装内铅笔的数量,第二个整数表示这种包装的价钱。
保证所有的7个数都是不超过10000的正整数。
输出格式:输出一行一个整数,表示P教师最少需要花费的钱。
输入输出样例输入样例#1:输出样例#1:输入样例#2:说明铅笔的三种包装别离是:•2支装,价钱为2;•50支装,价钱为30;•30支装,价钱为27。
P教师需要购买至少57支铅笔。
若是她选择购买第一种包装,那么她需要购买29份,共计2x29 = 58支,需要花费的钱为2x29 = 58。
事实上,P教师会选择购买第三种包装,如此需要买2份。
尽管最后买到的铅笔数量更多了,为30x2 = 60支,但花费却减少为27 x2 = 54,比第一种少。
关于第二种包装,尽管每支铅笔的价钱是最低的,但要够发必需买2份,实际的花费达到了30 x 2 = 60,因此P教师也可不能选择。
因此最后输出的答案是54。
【子任务】子任务会给出部份测试数据的特点。
若是你在解决题目中碰到了困难,能够尝试只解决一部份测试数据。
每一个测试点的数据规模及特点如下表:上表中“整倍数”的意义为:假设为“K”,表示对应数据所需要的铅笔数量n—定是每种包装铅笔数量的整倍数(这意味着必然能够不用多买铅笔)。
P2020 回文日期题目描述在日常生活中,通过年、月、日这三个要素能够表示出一个唯一确信的日期。
NOIP2018年复赛普和组试题

CCF全国信息学奥林匹克联赛(NOIP2017)复赛普及组(请选手务必仔细阅读本页内容)一.题目概况二.提交源程序文件名三.编译命令(不包含任何优化开关)注意事项:1、文件名(程序名和输入输出文件名)必须使用英文小写。
2、C/C++中函数 main()的返回值类型必须是 int,程序正常结束时的返回值必须是 0。
3、全国统一评测时采用的机器配置为:CPU AMD Athlon(tm) II x2 240 processor,2.8GHz,内存 4G,上述时限以此配置为准。
4、只提供 Linux 格式附加样例文件。
5、提交的程序代码文件的放置位置请参照各省的具体要求。
6、特别提醒:评测在当前最新公布的NOI Linux 下进行,各语言的编译器版本以其为准。
1. 成绩(score.cpp/c/pas)【问题描述】牛牛最近学习了 C++入门课程,这门课程的总成绩计算方法是:总成绩=作业成绩×20%+小测成绩×30%+期末考试成绩×50%牛牛想知道,这门课程自己最终能得到多少分。
【输入格式】输入文件名为 score.in。
输入文件只有 1 行,包含三个非负整数A、B、C,分别表示牛牛的作业成绩、小测成绩和期末考试成绩。
相邻两个数之间用一个空格隔开,三项成绩满分都是 100 分。
【输出格式】输出文件名为 score.out。
输出文件只有 1 行,包含一个整数,即牛牛这门课程的总成绩,满分也是 100 分。
【输入输出样例 1】【输入输出样例 1 说明】牛牛的作业成绩是 100 分,小测成绩是 100 分,期末考试成绩是 80 分,总成绩是100×20%+100×30%+80×50%=20+30+40=90。
【输入输出样例 2】【输入输出样例 2 说明】牛牛的作业成绩是 60 分,小测成绩是 90 分,期末考试成绩是 80 分,总成绩是60×20%+90×30%+80×50%=12+27+40=79。
noip2018普及组初赛试题+答案

第24届全国青少年信息学奥林匹克联赛初赛普及组C++语言试题竞赛时间:2018年10月13日14:30~16:30选手注意:1、试题纸共有7页,答题纸共有2页,满分100分。
请在答题纸上作答,写在试题纸上得一律无效。
2、不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料。
一、单项选择题(共15题,每题2分,共计30分;每题有且仅有一个正确选项)1、以下哪一种设备属于输出设备:()A、扫描仪B、键盘C、鼠标D、打印机2、下列四个不同进制得数中,与其它三项数值上不相等得就是()。
A、(269)16(注解:2*16八2+6*16八1+9*16八0=617)B、(617)10C、(1151)8(注解:1*8八3+1*8-2+5*8八1+1*8八0=617)D、(1001101011)23、1MB等于()。
A、1000字节B、1024字节C、1000X1000字节4、广域网得英文缩写就是。
A、LANB、WAN(WideAreaNetwork)C、MAND、L NA5、中国计算机学会于()年创办全国青少年计算机程序设计竞赛。
A、1983B、1984C、1985D、19866、如果开始时计算机处于小写输入状态,现在有一只小老鼠反复按照CapsLock、字母键A、字母键S、字母键D、字母键F得顺序循环按键,即C ap sLock、A、S、D、F、Ca p sLock、A、S、D、F、、、、、、、,屏幕上输出得第81个字符就是字母()。
A、AB、SC、 DD、 a7、根节点深度为0,一棵深度为h得满k(k>1)叉树,即除最后一层无任何子节点外,每一层上得所有结点都有k个子结点得树,共有()个结点。
B、k h-1C、k hD、(k h-i)/(k-1)8、以下排序算法中,不需要进行关键字比较操作得算法就是()。
A、基数排序B、冒泡排序C、堆排序D、直接插入排序9、给定一个含N个不相同数字得数组,在最坏情况下,找出其中最大或最小得数,至少需要N-1次比较操作。
2018NOIP信息奥赛普及级初赛模拟试卷

2018NOIP 全国信息奥林匹克竞赛模拟试卷一、选择题(共20题,每题1.5分,共30分)1.计算机中数据的表示形式是 C (A)八进制 (B)十进制 (C)二进制 (D)十六进制2 .下列四个不同数制表示的数中,数值最大的是A 。
(A)二进制数 11011101(C)十进制数2193. Windows 9x 操作系统是一个 A (A)单用户多任务操作系统(C)多用户单任务操作系统 4.局域网中的计算机为了相互通信, (A )调制解调器(B )网卡(C )声卡(D )电视卡 5 .域名后缀为edu 的主页一般属于_A —。
(A )教育机构(B )军事部门(C )政府部门(D )商业组织 6 .数据和程序是以(B )形式存储在磁盘上的。
(A )集合(B )文件 (。
目录 (D )记录7 .计算机中运算器的作用是(C)A)控制数据的输入/输出 B)控制主存与辅存间的数据交换 C)完成各种算术运算和逻辑运算 D)协调和指挥整个计算机系统的操作8 .目前,制造计算机所用的电子器件是—D — (A )大规模集成电路(B )晶体管(C )集成电路 (D )大规模集成电路与超大规模集成电路 9 .多媒体计算机是指—C —(A )具有多种外部设备的计算机 (B )能与多种电器连接的计算机 (C )能处理多种媒体的计算机 (D )借助多种媒体操作的计算机10 .二叉树是非线性数据结构,所以 C 。
(A)它不能用顺序存储结构存储;(B)它不能用链式存储结构存储; (C)顺序存储结构和链式存储结构都能存储(D)顺序存储结构和链式存储结构都不能使用11 .计算机能直接执行的指令包括两部分,它们是(A )(A )源操作数与目标操作数 (B )操作码与操作数 (C ) ASCII 码与汉字代码(D )数字与字符 12 .若已知一棵二叉树的前序序列是BEFCGDH ,中序序列是FEBGCHD ,则它的后序序列必是 D 。
历年noip普及组复赛试题

历年noip普及组复赛试题
NOIP(全国青少年信息学奥林匹克竞赛)是中国的一项信息学竞赛活动,包括普及组和提高组两个组别。
普及组主要面向初中生和高中生,复赛试题是选拔普及组的参赛选手的关键环节。
以下是历年NOIP普及组复赛试题的一些例子:
1. 2019年NOIP普及组复赛试题:
题目1,给定一个长度为N的字符串S,求出它的最长回文子串的长度。
题目2,给定一个N×M的迷宫,起点为(1, 1),终点为(N, M),求从起点到终点的最短路径长度。
2. 2018年NOIP普及组复赛试题:
题目1,给定一个长度为N的整数序列A,求出其中的最长上升子序列的长度。
题目2,给定一个N×N的矩阵,求出从左上角到右下角的
最短路径长度,每次只能向右或向下移动。
3. 2017年NOIP普及组复赛试题:
题目1,给定一个长度为N的整数序列A,求出其中的最长
连续递增子序列的长度。
题目2,给定一个N×M的棋盘,每个格子上有一个非负整数,求从左上角到右下角的路径,使得路径上的数字之和最小。
4. 2016年NOIP普及组复赛试题:
题目1,给定一个长度为N的整数序列A,求出其中的最长
连续递减子序列的长度。
题目2,给定一个N×M的迷宫,起点为(1, 1),终点为(N, M),求从起点到终点的路径数。
以上只是一些例子,每年的试题都会涉及不同的知识点和算法,题目难度也会有所不同。
参赛选手需要具备扎实的编程基础和算法
思维,才能在复赛中取得好成绩。
希望以上内容能对你有所帮助。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1. 话说去年苹果们被陶陶摘下来后都很生气,于是就用最先进的克隆技术把陶陶克隆了好多份>.<然后把他们挂在树上,准备摘取。
摘取的规则是,一个苹果只能摘一个陶陶,且只能在它所能摘到的高度以下(即是小于关系)的最高的陶陶,如果摘不到的话只能灰溜溜的走开了>.<给出苹果数目及每个苹果可以够到的高度和各个陶陶的高度,求苹果们都摘完后剩下多少个陶陶……
【输入格式】第一行为两个数,分别为苹果的数量n和陶陶的数量m(n,m<=2000)以下的n行,分别为各个苹果能够到的最大高度。
再接下来的m行,分别为各个陶陶的高度。
高度均不高于300。
当然了,摘取的顺序按照输入的“苹果够到的最大高度”的顺序来摘。
【输出格式】输出仅有一个数,是剩下的陶陶的数量
【样例输入】5 5↙9↙10↙2↙3↙1↙6↙7↙8↙9↙10 【样例输出】3
2. 某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前5名学生发奖学金。
期末,每个学生都有3门课的成绩:语文、数学、英语。
先按总分从高到低排序,如果两个同学总分相同,再按语文成绩从高到低排序,如果两个同学总分和语文成绩都相同,那么规定学号小的同学排在前面,这样,每个学生的排序是唯一确定的。
任务:先根据输入的3门课的成绩计算总分,然后按上述规则排序,最后按排名顺序输出前5名学生的学号和总分。
注意,在前5名同学中,每个人的奖学金都不相同,因此,你必须严格按上述规则排序。
例如,在某个正确答案中,如果前两行的输出数据(每行输出两个数:学号、总分)是:7 279 5 279
这两行数据的含义是:总分最高的两个同学的学号依次是7号、5号。
这两名同学的总分都是279(总分等于输入的语文、数学、英语三科成绩之和),但学号为7的学生语文成绩更高一些。
如果你的前两名的输出数据是:5 279 7 279则按输出错误处理,不能得分。
【输入】输入文件scholar.in包含n+1行:
第1行为一个正整数n,表示该校参加评选的学生人数。
第2到n+1行,每行有3个用空格隔开的数字,每个数字都在0到100之间。
第j行的3个数字依次表示学号为j-1的学生的语文、数学、英语的成绩。
每个学生的学号按照输入顺序编号为1~n(恰好是输入数据的行号减1)。
所给的数据都是正确的,不必检验。
【输出】输出文件scholar.out共有5行,每行是两个用空格隔开的正整数, 依次表示前5名学生的学号和总分。
【输入输出样例1】
scholar.in scholar.out
6
90 67 80 87 66 91 78 89 91 88 99 77 67 89 64 78 89 98 6 265 4 264 3 258 2 244 1 237
【输入输出样例2】
scholar.in scholar.out
8
80 89 89 8 265 2 264
88 98 78 90 67 80 87 66 91 78 89 91 88 99 77 67 89 64 78 89 98 6 264 1 258 5 258
3. 许多电脑游戏都一个分数排行榜,上面的分数是以非递增顺序排列的。
在这样的排行榜上,一个分数的名次就是它在一个有序列表中的位置。
如果出现同分,则它们的名次就是它们在这个有序列表中排在最前的那个分数的位置。
如果有下列一个排行榜:100,90,90,80则它们的名次就是1,2,2,4
假设排行榜的大小为p(即如果分数的名次在大于p,则不能上榜。
),现在有一个新的分数n,它能进入排行榜的条件是它进去之后,它在新的排行榜的位置小于等于p。
但有一个例外,如果n与排行榜的最后一个分数n0相等,并且n0已经排在排行榜上的第p位,则n不能进入排行榜。
现在给你一个排行榜,大小为p(排行榜不一定排满),和一个新的分数n,请你写一个程序去确定新分数进入排行榜后的名次。
【输入格式】输入共s+1行。
第1行,3个整数,以空格隔开, p,s,n。
p为排行榜的大小,s为排行榜上已有分数的个数,n为新分数。
(10<=p<=50,0<=s<=p,0<=n<= 2000000000)第s+1行,每行为一个整数si,第i+1行为排行榜上第i 位的分数(0<=si<=2000000000)
【输出格式】输出共1行,1个整数,为新分数n在进入排行榜后的名次,如果n不能进入排行榜就输出-1。
【样例输入】10 3 90
100
90
80 【样例输出】2
4. 在一个N行M列的棋盘上,让你放若干个炮(可以是0个),使得没有一个炮可以攻击到另一个炮,请问有多少种放置方法。
大家肯定很清楚,在中国象棋中炮的行走方式是:一个炮攻击到另一个炮,当且仅当它们在同一行或同一列中,且它们之间恰好有一个棋子。
你也来和小可可一起锻炼一下思维吧!
【输入格式】一行包含两个整数N,M,之间由一个空格隔开。
【输出格式】总共的方案数,由于该值可能很大,只需给出方案数模9999973的结果。
【样例输入】1 3
【样例输出】7
【样例说明】除了3个格子里都塞满了炮以外,其它方案都是可行的,所以一共有2*2*2-1=7种方案。
【提示】100%的数据中N和M不超过100
50%的数据中N和M至少有一个数不超过8
30%的数据中N和M均不超过6。