noip2018普及组初赛试题+答案

合集下载

2018NOIP普及组初赛试题答案解析

2018NOIP普及组初赛试题答案解析

第二十四届全国青少年信息学奥林匹克联赛初赛普及组C++语言试题竞赛时间:2018年10月13日14:30~16:30选手注意:●试题纸共有7页,答题纸共有2页,满分100分。

请在答题纸上作答,写在试题纸上的一律无效。

●不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料。

一、单项选择题(共15题,每题2分,共计30分;每题有且仅有一个正确选项)1.以下哪一种设备属于输出设备:()A.扫描仪B.键盘C.鼠标D.打印机解析:这是一道送分题,会就会,不会就不会。

所以选D。

2.下列四个不同进制的数中,与其它三项数值上不相等的是()。

A.(269)16B.(617)10C.(1151)8D.(1001101011)2解析:这题考核的是进制转换。

(269)16=2*16^2+6*16^1+9*16^0=617,(1151)8=1*8^3+1* 8^2+5*8^1+1*8^0=617,而(1001101011)2=619。

所以选D。

3.1MB等于()。

A.1000字节B.1024字节C.1000X1000字节D.1024X1024字节1KB=1024B1MB=1024KB解析:这题考核的是字节之间的转换。

1MB=1024KB=1024*1024B。

所以选D。

4.广域网的英文缩写是()。

NB.WANC.MAND.LNA解析:这题是送命题,,会就会,不会就不会。

WAN全称为Wide Area Network。

所以选B。

5.中国计算机学会于()年创办全国青少年计算机程序设计竞赛。

A.1983B.1984C.1985D.1986解析:这题是送命题,会就会,不会就不会。

NOI是全国青少年信息学奥林匹克竞赛(National Olympiad in Informatics)的简称。

NOI是国内包括港澳在内的省级代表队最高水平的大赛,自1984年至今,在国内包括香港、澳门组织竞赛活动。

所以选B。

6.如果开始时计算机处于小写输入状态,现在有一只小老鼠反复按照CapsLock、字母键A、字母键S、字母键D、字母键F的顺序循环按键,即CapsLock、A、S、D、F、CapsLock、A、S、D、F、……,屏幕上输出的第81个字符是字母()。

第十八届全国青少年信息学奥林匹克竞赛初赛普及组参考答案

第十八届全国青少年信息学奥林匹克竞赛初赛普及组参考答案

第十八届全国青少年信息学奥林匹克竞赛初赛普及组参考答案第十八届全国青少年信息学奥林匹克竞赛初赛普及组试题和参考答案一、单项选择题(共20题,每题1.5分,共计30分,每题有且仅有一个正确答案)1、计算机如果缺少(),将无法正常启动。

A、内存B、鼠标C、U盘D、摄像头2、()是一种先进先出的线性表。

A、栈B、队列C、哈希表D、二叉树3、目前计算机芯片(集成电路)制造的主要原料是(),它是一种能从沙子中提炼出来的物质。

A、硅B、铜C、锗D、铝4、十六进制数9A在()进制下是232。

A、四B、八C、十D、十二5、()不属于操作系统。

A、WindowsB、DOSC、PhotoshopD、NOI Linux6、如果一棵二叉树的中序遍历是BAC,那么它的先序遍历不可能是()。

A、ABCB、CBAC、ACBD、BAC7、目前个人电脑的()市场占有率最靠前的厂商包括Intel、AMD等公司。

A、显示器B、CPUC、内存D、鼠标8、使用冒泡排序对序列进行升序排序,每执行一次交换操作将会减少1个逆序对,因此序列5、4、3、2、1需要进行()次交换,才能完成冒泡排序。

A、0B、5C、10D、159、1946年诞生于美国宾夕法尼亚大学的ENIAC属于()计算机。

A、电子管B、晶体管C、集成电路D、超大规模集成电路10、无论是TCP/IP模型,还是OSI模型,都可视为网络的分层模型,每个网络协议都可以被归为某一层中,如果用现实生活中的例子来比喻这些“层”,以下最恰当的是()。

11、矢量图图形文件所占的存储空间较小,并且不论如何放大、缩小或旋转等都不会失真,是因为它()A、记录了大量像素块的色彩值来表示图像B、用点、直线或多边形等基于数学方程的几何图元来表示图像C、每个像素点的颜色信息均用矢量表示D、把文件保存在互联网,采用在线浏览的方式查看图像12、如果一个栈初识时为空,且当前栈中的元素从栈底到栈顶依次为a、b、c,另有元素d已经出栈,则可能的入栈顺序是()。

noip普及组初赛试题及答案

noip普及组初赛试题及答案

noip普及组初赛试题及答案一、选择题(每题5分,共50分)1. 在计算机科学中,以下哪个选项是数据结构中常用的数据类型?A. 整数B. 浮点数C. 字符串D. 所有选项答案:D2. 下列哪种排序算法的时间复杂度为O(nlogn)?A. 冒泡排序B. 插入排序C. 快速排序D. 选择排序答案:C3. 在C++中,以下哪个关键字用于声明一个类?A. structB. classC. enumD. union答案:B4. 在计算机编程中,以下哪个选项是递归算法的典型应用?A. 计算阶乘B. 打印输出C. 循环遍历D. 数据输入答案:A5. 在数据库管理系统中,SQL语言用于执行哪种类型的操作?A. 存储数据B. 检索数据C. 修改数据D. 所有选项答案:D6. 在计算机科学中,算法的时间复杂度通常用来描述什么?A. 算法的运行时间B. 算法的执行步骤C. 算法的内存使用量D. 算法的效率答案:D7. 在编程语言中,以下哪个选项不是控制结构?A. 条件语句B. 循环语句C. 函数定义D. 异常处理答案:C8. 在操作系统中,进程和线程的主要区别是什么?A. 进程是资源分配的单位,线程是执行的单位B. 进程是执行的单位,线程是资源分配的单位C. 进程和线程没有区别D. 进程和线程是同一种概念答案:A9. 在计算机网络中,HTTP协议通常用于什么?A. 文件传输B. 电子邮件传输C. 网页浏览D. 远程登录答案:C10. 以下哪种数据结构最适合实现一个不重复元素集合?A. 数组B. 链表C. 栈D. 哈希表答案:D二、填空题(每题5分,共30分)1. 在C++中,用于定义常量的关键字是________。

答案:const2. 一个算法的空间复杂度是指算法在执行过程中所需的________。

答案:存储空间3. 在数据结构中,________是一种可以存储多个数据元素的线性结构。

答案:数组4. 在计算机程序设计中,________是一种将复杂问题分解为更小、更易于管理的部分的方法。

『NOIP2018普及组题解』

『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普及组初赛及答案Pascal

NOIP普及组初赛及答案Pascal

第十八届全国青少年信息学奥林匹克联赛初赛(普及组Pascal语言试题)选手注意:试题纸共有10页,答题纸共有2页,满分100分。

请在答题纸上作答,写在试题纸上一律无效。

不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料一、单项选择题(共20题,每题1.5分,共计30分;每题且仅有一个正确选项)1.计算机如果缺少(),将无法正常启动。

A.内存B.鼠标C.U盘D.摄像头2.()是一种先进先出的线性表。

A.栈B.队列C.哈希表(散列表)D.二叉树3.目前计算机芯片(集成电路)制造的主要原料是(),它是一种可以在沙子中提炼出的物质。

A.硅B.铜C.锗D.铝4.十六进制数9A在()进制下是232。

A.四B.八C.十5.()不属于操作系统。

A.WindowsB.DOSD.十二C.PhotoshopD.NOI Linux6.如果一棵二叉树的中序遍历是BAC,那么它的先序遍历不可能是()。

A.ABCB.CBAC.ACBD.BAC7.目前个人电脑的()市场占有率最靠前的厂商包括Intel、AMD等公司。

A.显示器B.CPUC.内存D.鼠标8.使用冒泡排序对序列进行升序排列,每执行一次交换操作系统将会减少1个逆序对,因此序列5,4,3,2,1需要执行()次操作,才能完成冒泡排序。

A.0B.5C.10D.159.1946年诞生于美国宾夕法尼亚大学的ENIAC属于()计算机。

A.电子管B.晶体管C.集成电路D.超大规模集成电路10.无论是TCP/IP模型还是OSI模型,都可以视为网络的分层模型,每个网络协议都会被归入某一层中。

如果用现实生活中的例子来比喻这些“层”,以下最恰当的是()。

A.中国公司的经理与波兰公司的经理交互商业文件B.军队发布命令C.国际会议中,每个人都与他国地位对等的人直接进行会谈D.体育比赛中,每一级比赛的优胜者晋级上一级比赛11.矢量图(VectorImage)图形文件所占的贮存空间比较小,并且无论如何放大、缩小或旋转等都不会失真,是因为它()。

NOIP2018第二十四届普及组初赛题目C++和答案

NOIP2018第二十四届普及组初赛题目C++和答案

第二十四届全国青少年信息学奥林匹克联赛初赛普及组C++语言试题竞赛时间:2018 年10 月13 日14:30~16:30选手注意:●试题纸共有7 页,答题纸共有2 页,满分100 分。

请在答题纸上作答,写在试题纸上的一律无效。

●不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料。

一、单项选择题(共15 题,每题 2 分,共计30 分;每题有且仅有一个正确选项)1.以下哪一种设备属于输出设备:()A.扫描仪B. 键盘C. 鼠标D. 打印机2.下列四个不同进制的数中,与其它三项数值上不相等的是()。

A.(269)16B.(617)10C.(1151)8D.(1001101011)23.1MB 等于()。

A.1000 字节B. 1024 字节C. 1000 X 1000 字节D. 1024 X 1024 字节4.广域网的英文缩写是()。

NB.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>1)叉树,即除最后一层无任何子节点外,每一层上的所有结点都有k 个子结点的树,共有()个结点。

A.(k h+1 - 1) / (k - 1)B.k h-1C.k hD.(k h-1) / (k - 1)8.以下排序算法中,不需要进行关键字比较操作的算法是()。

A.基数排序B.冒泡排序C.堆排序D.直接插入排序9.给定一个含N 个不相同数字的数组,在最坏情况下,找出其中最大或最小的数,至少需要N - 1 次比较操作。

2018NOIP信息奥赛普及级初赛模拟试卷

2018NOIP信息奥赛普及级初赛模拟试卷

2018NOIP 全国信息奥林匹克竞赛模拟试卷、选择题(共20题,每题1.5分,共30分)1.计算机中数据的表示形式是C(A)八进制(B)十进制(C)二进制(D)十六进制2.下列四个不同数制表示的数中,数值最大的是A 。

(A)二进制数11011101 (C)十进制数219 3.Windows9x 操作系统是一个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(A )FEGHDBC (B )EFGHDBC (C )FEGHDCB (D )FEGHDCB13 .计算机系统总线上传送的信号有(B )(A )地址有信号与控制信号(B )数据信号、控制信号与地址信号(C )控制信号与数据信号(D )数据信号与地址信号14 .在长度为n 的顺序存储的线性表中,删除第i 个元素(1W i W n )时,需要从前向后依次前移A 个元素。

2018NOIP普及组初赛试题Word版

2018NOIP普及组初赛试题Word版

第二十四届全国青少年信息学奥林匹克联赛初赛普及组C++语言试题竞赛时间:2018 年10 月13 日14:30~16:30选手注意:试题纸共有7 页,答题纸共有2 页,满分100 分。

请在答题纸上作答,写在试题纸上的一律无效。

不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料。

一、单项选择题(共15 题,每题2 分,共计30 分;每题有且仅有一个正确选项)1、以下哪一种设备属于输出设备:()A. 扫描仪B. 键盘C. 鼠标D. 打印机2、下列四个不同进制的数中,与其它三项数值上不相等的是()。

A.(269)16B.(617)10C.(1151)8D.(1001101011)23、1MB 等于()。

A.1000 字节B.B. 1024 字节C.1000 X 1000 字节D.D. 1024 X 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>1)叉树,即除最后一层无任何子节点外,每一层上的所有结点都有k 个子结点的树,共有()个结点。

A.(k h+1- 1) / (k - 1)B.k h-1C.k hD.(k h-1) / (k - 1)8、以下排序算法中,不需要进行关键字比较操作的算法是()。

A. 基数排序B. 冒泡排序C. 堆排序D. 直接插入排序9、给定一个含N 个不相同数字的数组,在最坏情况下,找出其中最大或最小的数,至少需要N - 1 次比较操作。

noip初赛试题普及组及答案

noip初赛试题普及组及答案

noip初赛试题普及组及答案一、选择题(每题5分,共20分)1. 在计算机中,用来表示存储容量的基本单位是()。

A. 字节B. 字C. 位D. 字长答案:A2. 下列关于算法复杂度的描述,正确的是()。

A. 算法复杂度与程序代码的长短有关B. 算法复杂度与程序的运行时间有关C. 算法复杂度与程序运行的输入数据有关D. 算法复杂度与程序运行的机器性能有关答案:C3. 在编程中,若要实现一个循环,直到满足某个条件才停止,应使用()。

A. while循环B. for循环C. do-while循环D. switch语句答案:A4. 在C++中,下列哪个关键字用于定义一个类()。

A. structB. classC. interface答案:B二、填空题(每题5分,共20分)1. 在计算机科学中,数据结构通常分为两大类:线性结构和________。

答案:非线性结构2. 一个完整的程序设计语言包括语法规则和________规则。

答案:语义3. 在计算机中,用二进制表示的数值中,最小的非零数是________。

答案:14. 在C++中,用于定义一个私有成员的关键字是________。

答案:private三、编程题(每题30分,共60分)1. 编写一个程序,计算并输出100以内所有偶数的和。

```c++#include <iostream>using namespace std;int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}}cout << "Sum of all even numbers within 100 is: " << sumreturn 0;}```2. 编写一个程序,实现一个简单的计算器,能够进行加、减、乘、除四则运算。

NOIP普及组初赛及答案Pascal.docx

NOIP普及组初赛及答案Pascal.docx

第十八届全国青少年信息学奥林匹克联赛初赛(普及组Pascal 语言试题)选手注意:试题纸共有 10 页,答题纸共有 2 页,满分 100 分。

请在答题纸上作答,写在试题纸上一律无效。

不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料一、单项选择题(共20 题,每题 1.5 分,共计 30 分;每题且仅有一个正确选项)1.计算机如果缺少(),将无法正常启动。

A .内存B .鼠标C. U 盘D.摄像头2.()是一种先进先出的线性表。

A .栈B .队列C.哈希表(散列表)D.二叉树3.目前计算机芯片(集成电路)制造的主要原料是(),它是一种可以在沙子中提炼出的物质。

A .硅B .铜C.锗D.铝4.十六进制数 9A 在()进制下是 232。

A .四B .八C.十D.十二5.()不属于操作系统。

A . Windows B. DOS C. Photoshop D .NOI Linux6.如果一棵二叉树的中序遍历是BAC ,那么它的先序遍历不可能是()。

A . ABC B. CBA C. ACB D .BAC7.目前个人电脑的()市场占有率最靠前的厂商包括Intel 、 AMD 等公司。

A .显示器B. CPU C.内存 D .鼠标8.使用冒泡排序对序列进行升序排列,每执行一次交换操作系统将会减少 1 个逆序对,因此序列5,4, 3,2, 1 需要执行()次操作,才能完成冒泡排序。

A . 0B. 5C. 10 D .159. 1946 年诞生于美国宾夕法尼亚大学的ENIAC 属于()计算机。

A .电子管B.晶体管C.集成电路 D .超大规模集成电路10.无论是 TCP/IP 模型还是 OSI 模型,都可以视为网络的分层模型,每个网络协议都会被归入某一层中。

如果用现实生活中的例子来比喻这些“层”,以下最恰当的是()。

A .中国公司的经理与波兰公司的经理交互商业文件B .军队发布命令C.国际会议中,每个人都与他国地位对等的人直接进行会谈D .体育比赛中,每一级比赛的优胜者晋级上一级比赛11.矢量图( Vector Image)图形文件所占的贮存空间比较小,并且无论如何放大、缩小或旋转等都不会失真,是因为它()。

2018NOIP普及组初赛试题

2018NOIP普及组初赛试题

第二十四届全国青少年信息学奥林匹克联赛初赛普及组C++语言试题竞赛时间:2018 年10 月13 日14:30~16:30选手注意:试题纸共有7 页,答题纸共有2 页,满分100 分。

请在答题纸上作答,写在试题纸上的一律无效。

不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料。

一、单项选择题(共15 题,每题2 分,共计30 分;每题有且仅有一个正确选项)1、以下哪一种设备属于输出设备:()A. 扫描仪B. 键盘C. 鼠标D. 打印机2、下列四个不同进制的数中,与其它三项数值上不相等的是()。

A.(269)16B.(617)10C.(1151)8D.(1001101011)23、1MB 等于()。

A.1000 字节B.B. 1024 字节C.1000 X 1000 字节D.D. 1024 X 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>1)叉树,即除最后一层无任何子节点外,每一层上的所有结点都有k 个子结点的树,共有()个结点。

A.(k h+1 - 1) / (k - 1)B.k h-1C.k hD.(k h-1) / (k - 1)8、以下排序算法中,不需要进行关键字比较操作的算法是()。

A. 基数排序B. 冒泡排序C. 堆排序D. 直接插入排序9、给定一个含N 个不相同数字的数组,在最坏情况下,找出其中最大或最小的数,至少需要N - 1 次比较操作。

18届全国青少年信息学奥林匹克联赛初赛(详解)(普及组)

18届全国青少年信息学奥林匹克联赛初赛(详解)(普及组)

第十八届全国青少年信息学奥林匹克联赛初赛(普及组Pascal语言试题)竞赛时间:2012年10月13日14:30~16:30选手注意·试题纸共有10页,答题纸共有2页,满分100分。

请在答题纸上作答,写在试题纸上一律无效。

·不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料一、单项选择题(共20题,每题1.5分,共计30分;每题且仅有一个正确选项)1. 计算机如果缺少(A),将无法正常启动。

A. 内存B. 鼠标C. U盘D. 摄像头2. (B )是一种先进先出的线性表。

A. 栈B. 队列C. 哈希表(散列表)D. 二叉树解析:1.栈的定义(可参考:/course_ware/data_structure/web/zhanhuoduilie/zhanhuoduilie3.1.1.htm)栈(Stack)是限制仅在表的一端进行插入和删除运算的线性表。

(1)通常称插入、删除的这一端为栈顶(Top),另一端称为栈底(Bottom)。

(2)当表中没有元素时称为空栈。

(3)栈为后进先出(Last In First Out)的线性表,简称为LIFO表。

栈的修改是按后进先出的原则进行。

每次删除(退栈)的总是当前栈中"最新"的元素,即最后插入(进栈)的元素,而最先插入的是被放在栈的底部,要到最后才能删除。

2.队列:定义:队列(Queue)是只允许在一端进行插入,而在另一端进行删除的运算受限的线性表。

(1)允许删除的一端称为队头(Front)。

(2)允许插入的一端称为队尾(Rear)。

(3)当队列中没有元素时称为空队列。

(4)队列亦称作先进先出(First In First Out)的线性表,简称为FIFO表。

队列的修改是依先进先出的原则进行的。

新来的成员总是加入队尾(即不允许"加塞"),每次离开的成员总是队列头上的(不允许中途离队),即当前"最老的"成员离队。

2018年第二十四届全国青少年信息学奥林匹克联赛初赛普及组含答案

2018年第二十四届全国青少年信息学奥林匹克联赛初赛普及组含答案

6. 如果开始时计算机处于小写输入状态,现在有一只小老鼠反复按照 CapsLock、字母键 A、
字母键 S、字母键 D、字母键 F 的顺序循环按键,即 CapsLock、A、S、D、F、CapsLock、
A、S、D、F、„„,屏幕上输出的第 81 个字符是字母( )。
A. A
B. S
C. D
D. a
CCF NOIP2018 初赛普及组 C++语言试题 第4页 共7页
4. #include <cstdio> int n, d[100]; bool v[100]; int main() {
scanf("%d", &n); for (int i = 0; i < n; ++i) {
scanf("%d", d + i); v[i] = false; } int cnt = 0; for (int i = 0; i < n; ++i) { if (!v[i]) {
10. 下面的故事与( )算法有着异曲同工之妙。 从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:“从前有座山,山里有座庙, 庙里有个老和尚在给小和尚讲故事:‘从前有座山,山里有座庙,庙里有个老和尚给小和尚 讲故事„„’” A. 枚举 B. 递归 C. 贪心 D. 分治
11. 由四个没有区别的点构成的简单无向连通图的个数是( )。 A. 6 B. 7 C. 8 D. 9
a[++len] = i;
<= n; ++i)
CCF NOIP2018 初赛普及组 C++语言试题 第5页 共7页

NOIP2018 初赛普及组C++试题及答案

NOIP2018 初赛普及组C++试题及答案

CCF NOIP2018 初赛普及组 C++语言试题 第 5 页,共 7 页
四、完善程序(共 2 题,每题 14 分,共计 28 分) 1. (最大公约数之和)下列程序想要求解整数������的所有约数两两之间最大公约 数的和对10007求余后的值,试补全程序。(第一空 2 分,其余 3 分) 举例来说,4的所有约数是1,2,4。1和2的最大公约数为1;2和4的最大公约 数为2;1和4的最大公约数为1。于是答案为1 + 2 + 1 = 4。 要求 getDivisor 函数的复杂度为������(√������), gcd 函数的复杂度为������(log max(������, ������))。 #include <iostream> using namespace std; const int N = 110000, P = 10007; int n; int a[N], len; int ans; void getDivisor() { len = 0; for (int i = 1; (1) <= n; ++i) if (n % i == 0) { a[++len] = i; if ( (2) != i) a[++len] = n / i; } } int gcd(int a, int b) { if (b == 0) { (3) ; } return gcd(b, (4) ); } int main() { cin >> n; getDivisor(); ans = 0; for (int i = 1; i <= len; ++i) { for (int j = i + 1; j <= len; ++j) { ans = ( (5) ) % P; } } cout << ans << endl; return 0; }

NOIP2018普及组初赛试题c++(2)

NOIP2018普及组初赛试题c++(2)

第二十四届全国青少年信息学奥林匹克联赛初赛普及组C++语言试题竞赛时间:2018 年10 月13 日14:30~16:30选手注意:●试题纸共有7 页,答题纸共有2 页,满分100 分。

请在答题纸上作答,写在试题纸上的一律无效。

●不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料。

一、单项选择题(共15 题,每题 2 分,共计30 分;每题有且仅有一个正确选项)1.以下哪一种设备属于输出设备:()A.扫描仪B. 键盘C. 鼠标D. 打印机2.下列四个不同进制的数中,与其它三项数值上不相等的是()。

A.(269)16B.(617)10C.(1151)8D.(1001101011)23.1MB 等于()。

A.1000 字节B. 1024 字节C. 1000 X 1000 字节D. 1024 X 1024 字节4.广域网的英文缩写是()。

NB.WANC.MAN5.中国计算机学会于()年创办全国青少年计算机程序设计竞赛。

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>1)叉树,即除最后一层无任何子节点外,每一层上的所有结点都有k 个子结点的树,共有()个结点。

A.(k h+1 - 1) / (k - 1)B.k h-1C.k hD.(k h-1) / (k - 1)8.以下排序算法中,不需要进行关键字比较操作的算法是()。

A.基数排序B.冒泡排序C.堆排序D.直接插入排序9.给定一个含N 个不相同数字的数组,在最坏情况下,找出其中最大或最小的数,至少需要N - 1 次比较操作。

洛谷题解P5015【标题统计】NOIP2018普及组T1

洛谷题解P5015【标题统计】NOIP2018普及组T1

#include <stdio.h> #define file_in(f) freopen(f".in", "r", stdin) #define file_out(f) freopen(f".out", "w", stdout) #define file(f) file_in(f), file_out(f)
网络错误503请刷新页面重试持续报错请尝试更换浏览器或网络环境
洛谷题解 P5015【标题统计】 NOIP2018普及组 T1
没有人用 scanf("%c", &ch) != EOF 吗? scanf 和 EOF 会伤心的。
思路:逐个读入字符,遇到EOF中止,对于每个读入的字符进{ // file("title"); int ans = 0; while (scanf("%c", &tmp) != EOF) {
if (isOK(tmp)) ans++; } printf("%d", ans); return 0; }
To: 不 太 理 解 的
scanf 如果读入不到内容则会返回 -1 , 即 EOF 。 这里因为是文件读入,所以必然在文件尾处返回 EOF 。
char tmp;
bool Daxie(char c) { return (c <= 'Z') && (c >= 'A'); } bool Xiaoxie(char c) { return (c <= 'z') && (c >= 'a'); } bool Number(char c) { return (c <= '9') && (c >= '0'); } bool isOK(char ch) { return Daxie(ch) || Xiaoxie(ch) || Number(ch); }
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第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. 1000 X 1000字节D. 1024 X 1024字节4. 广域网的英文缩写是( )。

A. LANB. WAN (Wide Area Network)C. 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>1)叉树,即除最后一层无任何子节点外,每一层上的所有结点都有k个子结点的树,共有( )个结点。

A. (k h+1-1)/(k-1)B. k h-1C. k hD. (k h-1) / (k - 1)8. 以下排序算法中,不需要进行关键字比较操作的算法是( )。

A. 基数排序B. 冒泡排序C. 堆排序D. 直接插入排序9. 给定一个含N 个不相同数字的数组,在最坏情况下,找出其中最大或最小的数,至少需要N - 1 次比较操作。

则最坏情况下,在该数组中同时找最大与最小的数至少需要( )次比较操作。

(⌈⌉表示向上取整,⌊⌋表示向下取整)A. ⌈3N / 2⌉ - 2B. ⌊3N / 2⌋ - 2C. 2N - 2D. 2N - 410. 下面的故事与( )算法有着异曲同工之妙。

从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:“从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:‘从前有座山,山里有座庙,庙里有个老和尚给小和尚讲故事......’”A. 枚举B. 递归C. 贪心D. 分治11. 由四个没有区别的点构成的简单无向连通图的个数是( )。

A. 6B. 7C. 8D.912. 设含有10 个元素的集合的全部子集数为S,其中由7 个元素组成的子集数为T,则T / S的值为( )。

A. 5 / 32B. 15 / 128C. 1 / 8D. 21 / 12813. 10000以内,与10000互质的正整数有( )个。

A. 2000B. 4000C. 6000D. 800014. 为了统计一个非负整数的二进制形式中1 的个数,代码如下:int CountBit(int x){int ret = 0;while (x)ret++;___________;}return ret;}则空格内要填入的语句是( )。

A. x >>= 1B. x &= x - 1C. x |= x >> 1D. x <<= 115. 下图中所使用的数据结构是( )。

A. 哈希表B. 栈C. 队列D. 二叉树二、问题求解(共2 题,每题 5 分,共计10 分)1. 甲乙丙丁四人在考虑周末要不要外出郊游。

已知1如果周末下雨,并且乙不去,则甲一定不去;2如果乙去,则丁一定去;3如果丙去,则丁一定不去;4如果丁不去,而且甲不去,则丙一定不去。

如果周末丙去了,则甲去了 (去了/没去)(1 分),乙没去(去了/没去)(1 分),丁没去(去了/没去)(1 分),周末没下雨(下雨/ 没下雨)(2 分)。

2. 从1 到2018 这2018 个数中,共有544个包含数字8 的数。

包含数字8 的数是指有某一位是“8”的数,例如“2018”与“188”。

三、阅读程序写结果(共4 题,每题8 分,共计32 分)1.#include<cstdio>char st[100];int main() {scanf("%s", st);for (int i = 0; st[i]; ++i) {if ('A' <= st[i] && st[i]<= 'Z')st[i] += 1;}printf("%s\n", st);return 0;输入:QuanGuoLianSai输出:RuanHuoMianTai2.#include<cstdio>int main() {int x;scanf("%d", &x);int res = 0;for (int i = 0; i < x; ++i) {if (i * i % x == 1) {++res;}}printf("%d", res);return 0;}输入:15输出:43.#include<iostream>using namespacestd;int n, m;int findans(int n, int m) {if (n == 0) return m;if (m == 0) return n % 3;return findans(n - 1, m) - findans(n, m - 1) +findans(n - 1, m - 1); }int main(){cin >> n >> m;cout << findans(n, m) << endl;return 0;}输入:5 6输出:84.#include<cstdio>int n, d[100];bool v[100];int main() {scanf("%d", &n);for (int i = 0; i < n; ++i) {scanf("%d", d + i);v[i] = false;}int cnt = 0;for (int i = 0; i < n; ++i) {if (!v[i]) {for (int j = i; !v[j]; j = d[j]) {v[j] = true;}++cnt;}}printf("%d\n", cnt);return 0;}输入:10 7 1 4 3 2 5 9 8 0 6输出:6四、完善程序(共2 题,每题14 分,共计28 分)1. (最大公约数之和)下列程序想要求解整数n的所有约数两两之间最大公约数的和对10007求余后的值,试补全程序。

(第一空2 分,其余3 分)举例来说,4的所有约数是1,2,4。

1和2的最大公约数为1;2和4的最大公约数为2;1和4的最大公约数为1。

于是答案为1 + 2 + 1 = 4。

要求getDivisor 函数的复杂度为0(√n),gcd 函数的复杂度为O(log max(a, b))。

#include<iostream>using namespacestd;const int N =110000, P = 10007;int n;int a[N], len;int ans;void getDivisor(){len = 0;for(int i=1; i * i <=n;++i)if (n % i == 0) {a[++len] = i;if( n / i !=i)a[++len]=n/i;}}int gcd(int a,int b) {if (b == 0) {return a;}return gcd(b, a % b);}int main() {cin >> n;getDivisor();ans = 0;for (int i = 1; i <= len; ++i) {for (int j = i + 1; j <= len; ++j) {ans=( ans + gcd(a[i], a[j]) )%P;}}cout << ans << endl;return 0;}2. 对于一个1到n的排列p(即1到n中每一个数在p中出现了恰好一次),令qi为第i 个位置之后第一个比pi值更大的位置,如果不存在这样的位置,则qi =n+1。

举例来说,如果n=5且p为1 5 4 2 3,则q为2 6 6 5 6。

下列程序读入了排列p,使用双向链表求解了答案。

试补全程序。

(第二空2分,其余3分)数据范围1 ≤ n ≤ 105。

#include<iostream>using namespace std;const int N =100010;int n;int L[N], R[N],a[N];int main() {cin >> n;for (int i = 1; i <= n; ++i) {int x;cin >> x;a[x] = i;}for (int i = 1; i <= n; ++i) {R[i]= i + 1 ;L[i] = i - 1;}for (int i = 1; i <= n; ++i) {L[R[a[i]]]= L[a[i]];R[L[a[i]]] = R[a[i]];}for (int i = 1; i <= n; ++i) {cout <<R[i]<<" ";}cout << endl;return 0;}。

相关文档
最新文档