NOIP2017提高组初赛试题与答案
noip提高组初赛试题

noip提高组初赛试题NOIP(全称为:全国青少年信息学奥林匹克竞赛)提高组初赛试题是一项重要的计算机竞赛,旨在选拔优秀的青少年计算机才华,锻炼他们的编程和解题能力。
这项竞赛的题目分为多个部分,包括算法设计与分析、数据结构、离散数学、动态规划等,挑战着选手的智力和思维方式。
本文将对NOIP提高组初赛试题进行全面分析与讨论。
第一部分:算法设计与分析在这一部分,选手将面临各种算法问题,需要设计高效的算法来解决。
例如,题目中可能会给出一个复杂的图结构,要求选手找到最短路径或最大流等问题的解决方案。
此时,选手需要充分理解各种图算法,并结合题目要求给出合理的算法设计。
第二部分:数据结构数据结构是计算机程序设计中的重要基础。
在这一部分中,选手可能会面对各种数据结构相关的问题,如树、队列、堆、图等。
选手需要灵活运用不同类型的数据结构,并结合题目要求进行正确的操作。
第三部分:离散数学离散数学是计算机科学的重要分支,对于理解和解决问题具有重要作用。
在这一部分中,选手可能会遇到图论、集合论、逻辑推理等题目。
选手需要具备扎实的离散数学知识,并能够将其应用于实际问题的解决。
第四部分:动态规划动态规划是一种解决复杂问题的算法设计技巧,也是NOIP提高组初赛试题中常出现的题型。
选手需要根据题目要求,寻找最优子结构并利用动态规划算法进行求解。
这需要选手有很高的抽象思维和编程能力。
总结:NOIP提高组初赛试题的内容丰富多样,不仅考察了选手的编程实力,还要求他们具备扎实的数学和算法基础。
通过参与这项竞赛,选手可以提高自己的逻辑思维能力、问题解决能力和编程技巧,同时也为将来的学习和工作打下坚实的基础。
总之,NOIP提高组初赛试题的挑战性和多样性,为青少年计算机爱好者提供了一个锻炼自身能力的平台。
通过认真思考和努力实践,选手可以在这项竞赛中不断成长,并取得优异的成绩。
祝愿所有参加NOIP提高组初赛的选手能够取得理想的成绩,为未来的计算机领域贡献自己的力量!。
NOIP提高组初赛高清试题和答案

一、单项选择题(共 15 题,每题 1.5 分,共计 22.5 分)
1
2
3
Байду номын сангаас
4
5
6
7
8
B
D
D
B
C
C
B
B
9
10
11
12
13
14
15
D
A
D
C
C
B
C
二、不定项选择题(共 5 题,每题 1.5 分,共计 7.5 分;每题有一个或多个正确选项,没有部分分)
3
(4)
area:=0
area=0
3
(5) rowsum[i,last]-rowsum[i,first-1] rowsum[i][last]-rowsum[i,first-1]
3
五、完善程序(共计 28 分,以下各程序填空可能还有一些等价的写法,由各省赛区组织本省专家审定及 上机验证,可以不上报 CCF NOI 科学委员会复核)
Pascal 语言
C++语言
C 语言
分值
1. (1)
n
2.5
(2)
0
2.5
(3)
stack2[top2]:=stack1[top1]
stack2[top2]=stack1[top1]
1
2
3
4
5
AB
BCD
ABCDE
AC
BD
三、问题求解(共 2 题,每题 5 分,共计 10 分;每题全部答对得 5 分,没有部分分) 1. 102 2. 15
四、阅读程序写结果(共 4 题,每题 8 分,共计 32 分) 1. 8 2. 20 3. 2 5 6 3 4 7 1 4. 3 6 9 1 5 10 4 11 8 2 7
NOIP2017年初赛普和组C 题目和答案解析

第二十二届全国青少年信息学奥林匹克联赛初赛普及组 C++语言试题竞赛时间:2016 年 10 月 22 日 14:30~16:30选手注意:试题纸共有 9 页,答题纸共有 2 页,满分 100 分。
请在答题纸上作答,写在试题纸上的一律无效。
不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料。
一、单项选择题(共20题,每题1.5分,共计30分;每题有且仅有一个正确选项)1.以下不是微软公司出品的软件是()。
A. Powerpoint B. WordC. Excel D. Acrobat Reader2. 如果 256 种颜色用二进制编码来表示,至少需要()位。
A. 6 B. 7 C. 8 D. 93.以下不属于无线通信技术的是()。
A. 蓝牙 B. WiFi C. GPRS D. 以太网4. 以下不是 CPU 生产厂商的是()。
D. IBMA. Intel B. AMD C. Microsoft5. 以下不是存储设备的是()。
D. 鼠标A. 光盘 B. 磁盘 C. 固态硬盘6.如果开始时计算机处于小写输入状态,现在有一只小老鼠反复按照CapsLock、字母键 A、字母键 S 和字母键 D 的顺序循环按键,即 CapsLock、A、S、D、CapsLock、A、S、D、……,屏幕上输出的第 81 个字符是字母()。
A. A B. S C. D D. a7. 二进制数 00101100 和 00010101 的和是()。
A. 00101000 B. 01000001 C. 01000100 D. 001110008. 与二进制小数 0.1 相等的八进制数是()。
D. 0.1A. 0.8 B. 0.4 C. 0. 2CCF NOIP2016 初赛普及组 C++语言试题第 1 页,共 9 页9. 以下是 32 位机器和 64 位机器的区别的是()。
A. 显示器不同 B. 硬盘大小不同C. 寻址空间不同 D. 输入法不同10. 以下关于字符串的判定语句中正确的是()。
noip2017普及组初赛试题+答案

noip2017普及组初赛试题+答案第 23 届全国青少年信息学奥林匹克联赛初赛普及组 C++ 语言试题竞赛时间: 2017 年 10 月 14 日 14:30~16:30页,答题纸共有 2 页,满分 100 分。
请在答题纸上作答,写在试题纸选手注意:1 、试题纸共有 8 上的一律无效。
2 、不得使用任何电子设备如计算器、手机、电子词典等)或查阅任何书籍资料。
一、单项选择题(共 20 1. 在 8 位二进制补码中, A. 43 B. -85 C. -43 解析:补码就是符号位不变,结论: -85 答案 B题,每题 1.5 分,共计 30 分;每题有且仅有一个正确选项)10101011 表示的数是十进制下的 ( ) 。
D. -84其他各位逐位求反再加一2. 计算机存储数据的基本单位是 (A. bitB. ByteC. GBD. KB)。
3. 下列协议中与电子邮件无关的是( )。
A. POP3B. SMTPC. WTOD. IMAP 4. 分辨率为 800x600 、16 位色的位图,存储图像信息所需的空间为 ( )。
A.937.5KBB. 4218.75KBC.4320KBD. 2880KB 解析:800*600*16/8=A5. 计算机应用的最早领域是 ( )。
A. 数值计算B. 人工智能C. 机器人D. 过程控制6. 下列不属于面向对象程序设计语言的是 A.C B. C++ C. Java D. C# 解析:新出的语言都是面向对象的, OOP 的,旧的不是,答案 A7.NOI 的中文意思是 ( ) 。
A. 中国信息学联赛B. 全国青少年信息学奥林匹克竞赛C. 中国青少年信息学奥林匹克竞赛D. 中国计算机协会解析:全国青少年信息学奥林匹克竞赛答案:B8. 2017 年 10 月 1 日是星期日, 1999A. 星期三B. 星期日年 10 月 1 日是 ( ) 。
C. 星期五D. 星期二解析:什么年是闰年?你首先想到的可能是能被 4 整除的年就是闰年。
NOIP2017普及组初赛C++试题及答案

for(i= 0;i<s.length();i++)if([s[]]== 1){ cout << s[i]<< endl; return 0;
cout << "no" << endl; return 0;
六
输入∶xyzxyw
输出∶_
。。;
。 。 。。 。。人;人
三、阅读程序写结果(共 4题,每题 8分,共计 32 分)
1.#include using namespace std;
一int main(){ int t[256]; string s; int i;
cin >> s;
for (i=0;i<256;i++)t[i]=0;
A. POP3 B.SMTP C.WTO D.IMAP
4.分辨率为 800x600、16 位色的位图,存储图像信息所需的空间为()。
A.937.5KB B.4218.75KB C.4320KB D.2880KB
5.计算机应用的最早领域是()。
A.数值计算 B.人工智能 C.机器人 D.过程控制
6.下列不属于面向对象程序设计语言的是()。
e2)]
countcm 或 m>Count
O)]
lbound<ubound1 或I ubound>lbound
而
25
2.5
[m
(lboundubound+1)div 2或
(lbound+ubound+1》/2 或
(④) (1boundrubound+1)shr 1或
(lboundvubound+1)>1 或
示每条绳子的长度,第三行是一个不超过10°的正整数 m。 输出∶绳段的最大长度,若无法切割,输出 Failed。
NOIP2017普及组初赛试题及答案

NOIP2017普及组初赛试题及答案NOIP2017普及组初赛试题及答案以下为NOIP2017普及组初赛的单项选择题,每题有且仅有一个正确选项,共20题,每题1.5分,共计30分。
1.在8位二进制补码中,xxxxxxxx表示的数是十进制下的( )。
A。
43B。
-85C。
-43D。
-842.计算机存储数据的基本单位是( )。
A。
bitB。
___C。
GBD。
KB3.下列协议中与电子邮件无关的是( )。
A。
POP3B。
SMTPC。
___D。
IMAP4.分辨率为800x600、16位色的位图,存储图像信息所需的空间为( )。
A。
937.5KBB。
4218.75KBC。
4320KBD。
2880KB5.计算机应用的最早领域是( )。
A。
数值计算B。
人工智能C。
机器人D。
过程控制6.下列不属于面向对象程序设计语言的是( )。
A。
CB。
C++C。
JavaD。
C#7.NOI的中文意思是( )。
A。
中国信息学联赛B。
全国青少年信息学奥林匹克竞赛C。
中国青少年信息学奥林匹克竞赛D。
___8.2017年10月1日是星期日,1999年10月1日是( )。
A。
星期三B。
星期日C。
星期五D。
星期二9.甲、乙、丙三位同学选修课程,从4门课程中,甲选修2门,乙、丙各选修3门,则不同的选修方案共有( )种。
A。
36B。
48C。
96D。
19210.设G是有n个结点、m条边(n ≤m)的连通图,必须删去G的( )条边,才能使得G变成一棵树。
A。
m–n+1B。
m-nC。
m+n+1D。
n–m+111.对于给定的序列{ak},我们把(i。
j)称为逆序对当且仅当i。
aj。
那么序列1.7.2.3.5.4的逆序对数为()个。
A。
4B。
5C。
6D。
712.表达式a * (b + c) * d的后缀形式是()。
A。
abcd*+*B。
abc+*d*C。
a*bc+*dD。
b+c*a*d13.向一个栈顶指针为hs的链式栈中插入一个指针s指向的结点时,应执行( )。
学科竞赛-NOIP2017普及组初赛试题及答案

NOIP2017普及组初赛试题及答案NOIP2017普及组初赛试题及答案一、单项选择题(共20题,每题1.5分,共计30分;每题有且仅有一个正确选项)1.在8位二进制补码中,10101011表示的数是十进制下的( )。
A. 43B. -85C. -43D. -842.计算机存储数据的基本单位是( )。
A. bitB. ByteC. GBD. KB3.下列协议中与电子邮件无关的是( )。
A. POP3B. SMTPC. WTOD. IMAP4.分辨率为800x600、16位色的位图,存储图像信息所需的空间为( )。
A.937.5KBB. 4218.75KBC.4320KBD. 2880KB5.计算机应用的最早领域是( )。
A.数值计算B.人工智能C.机器人D.过程控制6.下列不属于面向对象程序设计语言的是( )。
A. CB. C++C. JavaD. C#7.NOI的中文意思是( )。
A.中国信息学联赛B.全国青少年信息学奥林匹克竞赛C.中国青少年信息学奥林匹克竞赛D.中国计算机协会8. 2017年10月1日是星期日,1999年10月1日是( )。
A.星期三B.星期日C.星期五D.星期二9.甲、乙、丙三位同学选修课程,从4门课程中,甲选修2门,乙、丙各选修3门,则不同的选修方案共有( )种。
A. 36B. 48C. 96D. 19210.设G是有n个结点、m条边(n ≤m)的连通图,必须删去G的( )条边,才能使得G变成一棵树。
A.m–n+1B. m-nC. m+n+1D.n–m+111.对于给定的序列{ak},我们把(i, j)称为逆序对当且仅当i aj。
那么序列1, 7, 2, 3, 5, 4的逆序对数为()个。
A. 4B. 5C. 6D. 712.表达式a * (b + c) * d的后缀形式是()。
A. abcd*+*B. abc+*d*C. a*bc+*dD. b+c*a*d13.向一个栈顶指针为hs的链式栈中插入一个指针s指向的结点时,应执行( )。
NOIP2017普及组初赛试题_完善程序

/* 1.正确答案: 2.正确答案: 3.正确答案: 4.正确答案: 5.正确答案: */ 1 p>0 / p!=0 / p result * x % m x*x%m result
第 1 页 共 3 页
/* NOIP 2017 普及组初赛试题_完善程序 02: (切割绳子) 有 n 条绳子,每条绳子的长度已知且均为正整数。 绳子可以以任意正整数长度切割,但不可以连接。 现在要从这些绳子中切割出 m 条长度相同的绳段,求绳段的最大长度是多少。 (第一、二空 2.5 分,其余 3 分) 输入:第一行是一个不超过 100 的正整数 n, 第二行是 n 个不超过 10^{6}10 6 的正整数,表示每条绳子的长度,第三行是一个不超过 10^{8}10 8 的正整数 m。 输出:绳段的最大长度,若无法切割,输出 Failed。 */ #include using namespace std; int n, m, i, lbound, ubound, mid, count; int len[100]; // 绳子长度 int main() { cin >> n; count = 0; for (i = 0; i < n; i++) { cin >> len[i]; ①; } cin >> m; if (②) { cout << "Failed" << endl; return 0; } lbound = 1; ubound = 1000000; while (③) { mid = ④; count = 0; for (i = 0; i < n; i++) ⑤; if (count < m) ubound = mid - 1; else lbound = mid; }
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
.专业.专注. . word可编辑 . NOIP2017提高组初赛试题及答案
一、单项选择题(共15 题,每题1.5 分,共计22.5 分;每题有且仅有一个正确选项) 1. 从( )年开始,NOIP 竞赛将不再支持Pascal 语言。C A. 2020 B. 2021 C. 2022 D. 2023 2.在8 位二进制补码中,10101011 表示的数是十进制下的( )。B A. 43 B. -85 C. -43 D.-84 3.分辨率为1600x900、16 位色的位图,存储图像信息所需的空间为( )。A A. 2812.5KB B. 4218.75KB C. 4320KB D. 2880KB 4. 2017年10月1日是星期日,1949年10月1日是( )。C A. 星期三 B. 星期日 C. 星期六 D. 星期二 5. 设G 是有n 个结点、m 条边(n ≤m)的连通图,必须删去G 的( )条边,才能使得G 变成一棵树。A A.m–n+1 B. m-n C. m+n+1 D.n–m+1 6. 若某算法的计算时间表示为递推关系式: T(N)=2T(N/2)+NlogN T(1)=1 则该算法的时间复杂度为( )。C A.O(N) B.O(NlogN) C.O(N log2N) D.O(N2) 7. 表达式a * (b + c) * d的后缀形式是()。B A. abcd*+* B. abc+*d* C. a*bc+*d D. b+c*a*d 8. 由四个不同的点构成的简单无向连通图的个数是( )。C A. 32 B. 35 C. 38D. 41 9. 将7个名额分给4个不同的班级,允许有的班级没有名额,有( )种不同的分配方案。D A. 60 B. 84 C. 96 D.120 10. 若f[0]=0, f[1]=1, f[n+1]=(f[n]+f[n-1])/2,则随着i的增大,f[i]将接近与( )。B
A. 1/2 B. 2/3 D. 1 11. 设A和B是两个长为n的有序数组,现在需要将A和B合并成一个排好序的数组,请问任何以元素比较作为基本运算的归并算法最坏情况下至少要做( )次比较。D A. n2 B. Nlogn C. 2n D.2n-1 12. 在n(n>=3)枚硬币中有一枚质量不合格的硬币(质量过轻或质量过重),如果只有一架天平可以用来称重且称重的硬币数没有限
制,下面是找出这枚不合格的硬币的算法。请把a-c三行代码补全到算法中。
2. 将A中硬币分成X,Y,Z三个集合,使得|X|=|Y|=k, |Z|=n-2k 3. if W(X)≠W(Y) //W(X), W(Y)分别为X或Y的重量 4. then_______ 5. else_______ 6. __________ 7. if n>2 then goto 1 8. if n=2 then 任取A中1枚硬币与拿走硬币比较,若不等,则它不合格;若相等,则A中剩下的硬币不合格 9. if n=1 then A中硬币不合格 正确的填空顺序是( )。D A. b,c,a B. c,b,a C. c,a,b D.a,b,c 13. 在正实数构成的数字三角形排列形式如图所示,第一行的数为a11;第二行的数从左到右依次为a21,a22;…第n行的数为an1,an2,…,ann。从a11开始,每一行的数aij只有两条边可以分别通向下一行的两个数a(i+1)j和a(i+1)(j+1)。用动态规划算法找出一条从a11向下通到an1,an2,…,ann中某个数的路径,使得该路径上的数之和达到最大。 令C[i,j]是从a11到aij的路径上的数的最大和,并且C[i,0]=C[0,j]=0,则C[i,j]=( )。A A. max{C[i-1,j-1],C[i-1,j]}+aij B. C[i-1,j-1]+c[i-1,j] C. max{C[i-1,j-1],C[i-1,j]}+1 D. max{C[i,j-1],C[i-1,j]}+aij .专业.专注. . word可编辑 . 14. 小明要去南美洲旅游,一共乘坐三趟航班才能到达目的地,其中第1个航班准点的概率是0.9,第2个航班准点的概率为0.8,第3个航班准点的概率为0.9。如果存在第i个(i=1,2)航班晚点,第i+1个航班准点,则小明将赶不上第i+1个航班,旅行失败;除了这种情况,其他情况下旅行都能成功。请问小明此次旅行成功的概率是( )。D A. 0.5 B. 0.648 C. 0.72 D.0.74 15. 欢乐喷球:儿童游乐场有个游戏叫“欢乐喷球”,正方形场地中心能不断喷出彩色乒乓球,以场地中心为圆心还有一个圆轨道,轨道上有一列小火车在匀速运动,火车有六节车厢。假设乒乓球等概率落到正方形场地的每个地点,包括火车车厢。小朋友玩这个游戏时,只能坐在同一个火车车厢里,可以在自己的车厢里捡落在该车厢内的所有乒乓球,每个人每次游戏有三分钟时间,则一个小朋友独自玩一次游戏期望可以得到( )个乒乓球。假设乒乓球喷出的速度为2个/秒,每节车厢的面积是整个场地面积的1/20。C A. 60 B. 108 C. 18 D. 20
二、不定项选择题(共5题,每题1.5分,共计7.5分;每题有一个或多个正确选项,多选或少选均不得分) 1. 以下排序算法在最坏情况下时间复杂度最优的有( )。CD A. 冒泡排序 B. 快速排序 C. 归并排序 D. 堆排序 2. 对于入栈顺序为a, b, c, d, e, f, g 的序列,下列()不可能是合法的出栈序列。C A. a,b,c,d,e,f,g B. a,d,c,b,e,g,f C. a,d,b,c,g,f,e D.g,f,e,d,c,b,a 3. 下列算法中,( )是稳定的排序算法。D A. 快速排序 B.堆排序 C.希尔排序D. 插入排序 4. 以下是面向对象的高级语言的是( )。BD A. 汇编语言B. C++ C. Fortan D. Java 5. 以下和计算机领域密切相关的奖项是( )。BD A. 奥斯卡奖B. 图灵奖C. 诺贝尔奖D. 王选奖 三、问题求解(共2 题,每题5 分,共计10 分) 1. 如图所示,共有13 个格子。对任何一个格子进行一次操作,会使得它自己以及与它上下左右相邻
的格子中的数字改变(由1 变0,或由0 变1)。现在要使得所有的格子中的数字都变为0,至少需要3 次操作。答案 3 2. 如图所示,A到B是连通的。假设删除一条细的边的代价是1,删除一条粗的边的代价是2,要让A、B不连通,最小代价是4 (2分),最小代价的不同方案数是9(3分)。(只要有一条删除的边不同,就是不同的方案)答案 4, 9
四、阅读程序写结果(共4 题,每题8 分,共计32 分) 1. #include using namespacestd; int g(int m, intn, int x){ int ans = 0; int i; if( n == 1) return 1; for (i=x; i <=m/n; i++) ans += g(m –i, n-1, i); return ans; } int main() { int t, m, n; cin >> m >> n; cout << g(m, n, 0) << endl; return 0; } 输入: 8 4 输出:15 2. #include using namespacestd; int main() { int n, i, j, x, y, nx, ny; int a[40][40]; for (i = 0; i< 40; i++) for (j = 0;j< 40; j++) a[i][j]= 0; cin >> n; y = 0; x = n-1; n = 2*n-1; for (i = 1; i <= n*n; i++){ a[y][x] =i; .专业.专注. . word可编辑 . ny = (y-1+n)%n; nx = (x+1)%n; if ((y == 0 && x == n-1) || a[ny][nx] !=0) y= y+1; else {y = ny; x = nx;} } for (j = 0; j < n; j++) cout << a[0][j]<< “”; cout << endl; return 0; } 输入: 3 输出:17 24 1 8 15
3. #include using namespacestd; int n, s,a[100005], t[100005], i; void mergesort(intl, int r){ if (l== r) return; int mid = (l+ r) / 2; int p = l; int i = l; int j = mid + 1; mergesort (l, mid); mergesort (mid + 1, r); while (i <= mid && j<= r){ if (a[j] < a[i]){ s += mid – i+1; t[p] = a[j]; p++; j++; } else { t[p] = a[i]; p++; i++; } } while (i <= mid){ t[p] = a[i]; p++; i++; } while (j <= r){ t[p] = a[j]; p++; j++; } for (i = l; i <= r; i++ ) a[i] = t[i]; } int main() { cin >> n; for (i = 1; i <= n; i++) cin>> a[i]; mergesort (1, n); cout << s << endl; return 0; } 输入: 6 2 6 3 4 5 1 输出:8 4. #include using namespacestd; int main() { int n, m; cin >> n >> m; int x = 1; int y = 1; int dx = 1; int dy = 1; int cnt = 0; while (cnt != 2) { cnt = 0; x = x + dx; y = y + dy; if (x == 1 || x == n) { ++cnt; dx = -dx; } if (y == 1 || y == m) { ++cnt; dy = -dy; } } cout << x << " " << y<< endl; return 0; } 输入1: 4 3 输出1: 1 3(2 分) 输入2: 2017 1014 输出2: 2017 1(3 分) 输入3: 987 321 输出3: 1 321(3分)