NOIP复赛普及组试题精编版
CCF全国信息学奥林匹克联赛NOIP普及组复赛试题

CCF全国信息学奥林匹克联赛NOIP普及组复赛试题CCF全国信息学奥林匹克联赛(NOIP2018)复赛普及组(请选手务必仔细阅读本页内容)注意事项:1、文件名(程序名和输入输出文件名)必须使用英文小写。
2、C/C++中函数main()的返回值类型必须是int,程序正常结束时的返回值必须是0。
3、全国统一评测时采用的机器配置为:Intel(R) Core(TM) i7-****************,内存32GB。
上述时限以此配置为准。
4、只提供Linux格式附加样例文件。
5、特别提醒:评测在当前最新公布的NOI Linux下进行,各语言的编译器版本以其为准。
1. 标题统计(title.cpp/c/pas)【问题描述】凯凯刚写了一篇美妙的作文,请问这篇作文的标题中有多少个字符?注意:标题中可能包含大、小写英文字母、数字字符、空格和换行符。
统计标题字符数时,空格和换行符不计算在内。
【输入格式】输入文件名为title.in。
输入文件只有一行,一个字符串s。
【输出格式】输出文件名为title.out。
输出文件只有一行,包含一个整数,即作文标题的字符数(不含空格和换行符)。
见选手目录下的title/title1.in和title/title1.ans。
【输入输出样例1说明】标题中共有3个字符,这3个字符都是数字字符。
见选手目录下的title/title2.in和title/title2.ans。
【输入输出样例2说明】标题中共有5个字符,包括1个大写英文字母,1个小写英文字母和2个数字字符,还有1个空格。
由于空格不计入结果中,故标题的有效字符数为4个。
【数据规模与约定】规定|s|表示字符串s的长度(即字符串中的字符和空格数)。
对于40%的数据,1≤|s|≤5,保证输入为数字字符及行末换行符。
对于80%的数据,1≤|s|≤5,输入只可能包含大、小写英文字母、数字字符及行末换行符。
对于100%的数据,1≤|s|≤5,输入可能包含大、小写英文字母、数字字符、空格和行末换行符。
NOIP普及组分类题及答案.doc

NOIP普及组(初赛)试题精选计算机系统1•在以下各项中,()不是CPU的组成部分。
(NOIP2007)A.控制器B.运算器C.寄存器D.主板【答案】Do CPU由控制器、运算器和寄存器组成。
2.在下列各项中,只有()不是计算机存储容量的常用单位。
(N0IP2007)A.ByteB. KBC. UBD. TB【答案】C… 存储容量:Byte=8 bit (位)、1KB=1O24B、1MB=1O24KB、1GB=1O24MB、1TB=1O24GB。
3.与十进制数1770对应的八进制数是()。
(NOIP2007)A.3350B. 3351C. 3352D. 3540【答案】C…考查进制转换,掌握十进制、二进制、八进制和十六进制互换,以及多个不同进制数的运算(转换为同一进制数进行计算)。
4.与十进制数28. 5625相等的四进制数是()。
(NOIP2008)A.123. 21B. 131. 22C. 130. 22D. 130. 21【答案】D…熟练掌握进制转换的知识。
5.计算机在工作过程中,若突然停电,()中的信息不会丢失。
(NOIP2008)A.ROM 和 RAMB. CPUC. ROMD. RAM【答案】C。
ROM (只读存储器)断电后信息不丢失,RAM (随机存储器,内存)断电后信息全部丢失。
6.在32*32点阵的“字库”中,汉字“北”与“京”的字模占用字节数之和是()。
(N0IP2A.512B. 256C. 384D. 128【答案】Bo 32*32点阵的字库,每个字占字节数为32*32/8=128字节(1个字节等于8个二进制位,lByte=8bits,而1位对应点阵中的1个点)。
所以2个汉字共要256个字节。
7.在下面各世界顶级的奖项中,为计算机科学与技术领域做出杰出贡献的科学家设立的奖项是()。
(NOIP2006)扎沃尔夫奖B.诺贝尔奖C.菲尔兹奖D.图灵奖【答案】D。
沃尔夫奖主要是奖励对推动人类科学与艺术文明做出杰出贡献的人士;诺贝尔奖有生理或医学奖、文学奖、物理学奖、化学奖、经济学奖和和平奖;菲尔兹奖一数学界的诺贝尔奖; 图灵奖一计算机界的诺贝尔奖,2000年姚期智获得“图灵奖”,也是迄今为止获得此项殊荣的唯一华裔计算机科学家。
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. 编写一个函数,实现计算一个整数的阶乘。
最新NOIP复赛普及组试题资料

全国信息学奥林匹克联赛(NOIP2011)复赛普及组(请选手务必仔细阅读本页内容)一.题目概况二.提交源程序文件名三.编译命令(不包含任何优化开关)四.运行内存限制注意事项:1、文件名(程序名和输入输出文件名)必须使用英文小写。
2、C/C++中函数main()的返回值类型必须是int,程序正常结束时的返回值必须是0。
3、全国统一评测时采用的机器配置为:CPU P4 3.0GHz,内存1G,上述时限以此配置为准。
4、特别提醒:评测在NOI Linux 下进行。
1.数字反转(reverse.cpp/c/pas)【问题描述】给定一个整数,请将该数各个位上数字反转得到一个新数。
新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2)。
【输入】输入文件名为reverse.in。
输入共1 行,一个整数N。
【输出】输出文件名为reverse.out。
输出共1 行,一个整数,表示反转后的新数。
【输入输出样例1】【输入输出样例2】【数据范围】-1,000,000,000 ≤ N ≤ 1,000,000,000。
2.统计单词数(stat.cpp/c/pas)【问题描述】一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数。
现在,请你编程实现这一功能,具体要求是:给定一个单词,请你输出它在给定的文章中出现的次数和第一次出现的位置。
注意:匹配单词时,不区分大小写,但要求完全匹配,即给定单词必须与文章中的某一独立单词在不区分大小写的情况下完全相同(参见样例1),如果给定单词仅是文章中某一单词的一部分则不算匹配(参见样例2)。
【输入】输入文件名为stat.in,2 行。
第1 行为一个字符串,其中只含字母,表示给定单词;第2 行为一个字符串,其中只可能包含字母和空格,表示给定的文章。
【输出】输出文件名为stat.out。
NOIP第十三届天下青少年信息学奥林匹克联赛复赛试题普及组

全国信息学奥林匹克联赛(NOIP2007 )复赛普及组全国信息学奥林匹克联赛(NOIP 2007)复赛普及组题目一览题目名称奖学金纪念品分组守望者的逃离Hanoi 双塔问题代号scholar group escape hanoi 输入文件输出文件时限 1 秒 1 秒 1 秒 1 秒(2007 年 11 月 17 日 3 小时达成 )说明:1.文件名(程序名和输入输出文件名)一定使用小写2. C/C++ 中函数 main() 的返回值种类一定是int ,程序正常结束时的返回值一定是0。
3. 全国一致评测时采纳的机器参照配置为:CPU 2.0GHz ,内存 256M 。
1.奖学金(scholar.pas/c/cpp)【问题描绘】某小学近来获取了一笔资助,打算取出此中一部分为学习成绩优异的前 5 名学生发奖学金。
期末,每个学生都有 3 门课的成绩:语文、数学、英语。
先按总分从高到低排序,假如两个同学总分同样,再按语文成绩从高到低排序,假如两个同学总分和语文成绩都同样,那么规定学号小的同学排在前方,这样,每个学生的排序是独一确立的。
任务:先依据输入的 3 门课的成绩计算总分,而后按上述规则排序,最后按排名次序输出前5 名学生的学号和总分。
注意,在前 5 名同学中,每一个人的奖学金都不同样,所以,你一定严格按上述规则排序。
比如,在某个正确答案中,假如前两行的输出数据(每行输出两个数:学号、总分)是:7 2795 279这两行数据的含义是:总分最高的两个同学的学号挨次是7 号、 5 号。
这两名同学的总分都是 279(总分等于输入的语文、数学、英语三科成绩之和),但学号为7 的学生语文成绩更高一些。
假如你的前两名的输出数据是:5 2797 279则按输犯错误办理,不可以得分。
【输入】输入文件包含n+1行:第 1 行为一个正整数n,表示该校参加评比的学生人数。
第 2 到 n+1 行,每行有 3 个用空格分开的数字,每个数字都在0 到 100 之间。
NOIP复赛普及组模拟题4

普及组
模拟赛
题目概况
题目名称 输入文件名 输出文件名 提交程序名 每个测试点时限
空间限制
晴天小猪历险记 hill.in hill.out hill.* 1秒 128M
卡布列克圆舞曲 kblk.in kblk.out kblk.* 1秒 128M
山峰暸望 mount.in mount.out mount.*
山的宽度定义为在这个山上进行的测量的次数(也就是序列的长度)。请帮 Bessie 找到最宽的山。
这是一个比较典型的地平线的例子:
*******
*
*********
***
**********
*****
***********Leabharlann **********
*
*****************
***********
*** *
** ******************* ************* * * *******
*
*********************************************************************
321111233367777777654333211111234445676543211121211111234323211111121
输入格式 第一行有一个数 n(2<=n<=1000),表示山的高度。 从第二行至第 n+1 行,第 i+1 行有 i 个数,每个数表示晴天小猪在这一段山
路上需要爬的时间。 输出格式
一个数,即晴天小猪所需要的最短时间。 样例输入 5 1 23 456 10 1 7 8 11456 样例输出 10
noip普及组复赛入门测试(答案+测试数据)

一、新龟兔赛跑(文件名xgtsp.pas)新龟兔赛跑比赛即将举行,此次龟兔赛跑比赛的规则与以往有所不同,不再考察兔子和乌龟谁在最短的时间内跑完规定的路程,而是考察谁在规定时间内跑的路程更长,且兔子和乌龟跑步都是匀速的。
由于兔子的坏习惯,它总喜欢把比赛的总时间T小时中的K小时拿来睡觉。
现在给你比赛的总时间T、兔子的睡觉时间K、兔子的速度U、乌龟的速度V,需要你求出该次比赛谁最后获胜。
输入第一行为一个整数X,表示有X组输入数据。
每组数据只有一行,包括4个数T、K、U、V (1 ≤ T≤ 300,0 ≤ K ≤ T,1 ≤ U ≤ 100,1 ≤ V ≤ 100)。
对于每组数据,输出只有一个数,如果兔子获胜则输出-1,如果乌龟获胜则输出1,如果同时到达则输出0。
允许输入一组数后立即输出对应的结果。
样例输入:21 12 16 2 6 3样例输出:1-1varv,u,t,k,n,i:integer;beginreadln(n);for i:=1 to n do beginreadln(t,k,u,v);if v*t>U*(t-k) then writeln(1);if v*t<U*(t-k) then writeln(-1);if v*t=U*(t-k) then writeln(0);end;end.1、输入:26 2 6 28 6 8 2输出:-12、输入:2300 280 60 20120 0 12 13输出:113、输入:3100 20 50 30100 50 45 25100 80 27 17输出:-1114、输入:3150 77 29 23127 11 22 13139 22 13 7输出:1-1-1二、小球路程(文件名:XQLC.PAS )已知小球从100米高度自由下落,落地后反弹起,又落地,又弹起,……。
每次弹起的高度都是上一次高度的一半。
求小球第N次反弹起的高度和球在整个过程所经过的路程(包括下落和反弹),用键盘输入N,输出反弹高度和经过路程,结果保留两位小数。
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 回文日期题目描述在日常生活中,通过年、月、日这三个要素能够表示出一个唯一确信的日期。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CCF全国信息学奥林匹克联赛(NOIP2013)复赛
普及组
(请选手务必仔细阅读本页内容)
一.题目概况
二.提交源程序文件名
三.编译命令(不包含任何优化开关)
注意事项:
1、文件名(程序名和输入输出文件名)必须使用英文小写。
2、C/C++中函数main()的返回值类型必须是int,程序正常结束时的返回值必须是0。
3、全国统一评测时采用的机器配置为:CPU AMD Athlon(tm) 64x2 Dual Core CPU 5200+,
2.71GHz,内存2G,上述时限以此配置为准。
4、只提供Linux 格式附加样例文件。
5、特别提醒:评测在NOI Linux 下进行。
1.记数问题
(count.cpp/c/pas)
【问题描述】
试计算在区间1 到n 的所有整数中,数字x(0 ≤ x ≤ 9)共出现了多少次?例如,在1 到11 中,即在1、2、3、4、5、6、7、8、9、10、11 中,数字1 出现了4 次。
【输入】
输入文件名为count.in。
输入共1 行,包含2 个整数n、x,之间用一个空格隔开。
【输出】
输出文件名为count.out。
输出共1 行,包含一个整数,表示x 出现的次数。
【输入输出样例】
【数据说明】
对于100%的数据,1≤ n ≤ 1,000,000,0 ≤ x ≤ 9。
2.表达式求值
(expr.cpp/c/pas)
【问题描述】
给定一个只包含加法和乘法的算术表达式,请你编程计算表达式的值。
【输入】
输入文件为expr.in。
输入仅有一行,为需要你计算的表达式,表达式中只包含数字、加法运算符“+”和乘法运算符“*”,且没有括号,所有参与运算的数字均为0 到231-1 之间的整数。
输入数据保证这一行只有0~ 9、+、*这12 种字符。
【输出】
输出文件名为expr.out。
输出只有一行,包含一个整数,表示这个表达式的值。
注意:当答案长度多于4 位时,请只输出最后4 位,前导0 不输出。
【输入输出样例1】
【输入输出样例2】
【输入输出样例3】
【输入输出样例说明】
样例1 计算的结果为8,直接输出8。
样例2 计算的结果为1234567891,输出后4 位,即7891。
样例3 计算的结果为1000000004,输出后4 位,即4。
【数据范围】对于30%的数据,0≤表达式中加法运算符和乘法运算符的总
数≤100;对于80%的数据,0≤表达式中加法运算符和乘法运算符的总
数≤1000;
对于100%的数据,0≤表达式中加法运算符和乘法运算符的总数≤100000。
3.小朋友的数字
(number.cpp/c/pas)
【问题描述】
有n 个小朋友排成一列。
每个小朋友手上都有一个数字,这个数字可正可负。
规定每个
小朋友的特征值等于排在他前面(包括他本人)的小朋友中连续若干个(最少有一个)小朋
友手上的数字之和的最大值。
作为这些小朋友的老师,你需要给每个小朋友一个分数,分数是这样规定的:第一个小
朋友的分数是他的特征值,其它小朋友的分数为排在他前面的所有小朋友中(不包括他本人),小朋友分数加上其特征值的最大值。
请计算所有小朋友分数的最大值,输出时保持最大值的符号,将其绝对值对p 取模后输出。
【输入】
输入文件为number.in。
第一行包含两个正整数n、p,之间用一个空格隔开。
第二行包含n 个数,每两个整数之间用一个空格隔开,表示每个小朋友手上的数字。
【输出】
输出文件名为number.out。
输出只有一行,包含一个整数,表示最大分数对p 取模的结果。
【输入输出样例1】
小朋友的特征值分别为 1、3、6、10、15,分数分别为 1、2、5、11、21,最大值 21 对997的模是21。
】
【输入输出样例2
小朋友的特征值分别为-1、-1、-1、-1、-1,分数分别为-1、-2、-2、-2、-2,最大值-1对7的模为-1,输出-1。
【数据范围】对于50%的数据,1 ≤ n ≤ 1,000,1 ≤ p ≤ 1,000所有数字的绝对值不超过1000;
对于100%的数据,1 ≤ n ≤ 1,000,000,1 ≤ p ≤ 109,其他数字的绝对值均不超过109。
4.车站分级
(level.cpp/c/pas)
【问题描述】
一条单向的铁路线上,依次有编号为1, 2, …, n 的n 个火车站。
每个火车站都有一个级别,最低为1 级。
现有若干趟车次在这条线路上行驶,每一趟都满足如下要求:如果这趟车次停靠了火车站x,则始发站、终点站之间所有级别大于等于火车站x 的都必须停靠。
(注意:起始站和终点站自然也算作事先已知需要停靠的站点)
例如,下表是5 趟车次的运行情况。
其中,前4 趟车次均满足要求,而第5 趟车次由于停靠了3 号火车站(2 级)却未停靠途经的6 号火车站(亦为2 级)而不满足要求。
现有m 趟车次的运行情况(全部满足要求),试推算这n 个火车站至少分为几个不同的级别。
【输入】
输入文件为level.in。
第一行包含2 个正整数n, m,用一个空格隔开。
第i + 1 行(1 ≤ i≤ m)中,首先是一个正整数s i(2 ≤ s i≤ n),表示第i 趟车次有s i 个停靠站;接下来有s i 个正整数,表示所有停靠站的编号,从小到大排列。
每两个数之间用一个空格隔开。
输入保证所有的车次都满足要求。
【输出】
输出文件为level.out。
输出只有一行,包含一个正整数,即n 个火车站最少划分的级别数。
【输入输出样例】
【数据范围】
对于20%的数据,1 ≤ n, m ≤ 10;对于
50%的数据,1 ≤ n, m ≤ 100;
对于100%的数据,1 ≤ n, m ≤ 1000。