第二十四届全国青少年信息学奥林匹克联赛初赛提高组精彩试题问题详解
- 格式:doc
- 大小:144.72 KB
- 文档页数:10
第十四届全国青少年信息学奥林匹克联赛初赛试题(提高组Pascal语言二小时完成)●●全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效●●一、单项选择题(共10题,每题1.5分,共计15分。
每题有且仅有一个正确答案)。
1.在以下各项中,()不是操作系统软件。
A.Solaris B.Linux C.Sybase D.Windows Vista E.Symbian2.微型计算机中,控制器的基本功能是()。
A.控制机器的各个部件协调工作 B.实现算数运算与逻辑运算 C.存储各种控制信息D.获取外部信息E.存放程序和数据3.设字符串S=“Olympic”,S的非空字串的数目是()。
A.29 B.28 C.16 D.17 E.74.完全二叉树有2*N-1的结点,则它的叶子结点数目是()。
A.N-1 B.2*N C.N D.2N-1 E.N/25.将数组{8,23,4,16,77,-5,53,100}中元素从大到小按顺序排序,每次可以交换任意两个元素,最少要交换()次。
A.4 B.5 C.6 D.7 E.86.设栈S的初始状态为空,元素a,b,c,d,e,f依次入栈,出栈顺序为b,d,c,f,e,a那么栈容量至少应该是()。
A.6 B.5 C.4 D.3 E.27.与十进制数28.5625相等的四进制数是()A.123.21 B.131.22 C.130.22 D.130.21 E.130.208.递归过程和函数调用时,处理参数和返回地址,通常使用一种称为()的数据结构。
A.队列B.多维数组C.线性表D.链表E.栈9.TCP/IP 是一组构成互联网基础的网络协议,字面上包括两组协议:传输控制协议(TCP)和网际互联协议(IP)。
TCP/IP协议把Internet网络系统描述成具有4个层次功能的网络模型,其中提供源节点和目的节点之间的信息传输服务,包括寻址和路由器选择等功能的是()。
A.链路层B.网络层C.传输层D.应用层E.会话层10.对有序数组{5,13,19,21,37,56,64,75,88,92,100}进行二分查找,等概率情况下,查找成功的平均查找长度(平均比较次数)是()。
例13-4迷宫寻宝【问题描述】一个n行m列的迷宫(1<=n,m<=5),入口在左上角,规定只能向下或向右走。
迷宫的某些地方藏有不同价值(>0)的宝藏,同时又存在一些障碍无法通过。
求到达右下角出口时收集宝藏的最大值。
【输入】第一行n和m一下n行m列描述迷宫矩阵a[I,j](-1:障碍);最大值【样例输入】342-150513-16-18910【样例输出】33【分析】A[I,j]保存第i行第j列的宝藏价值。
令f[I,j]为从(1,1)走到第i行第j列时所能收集的宝藏的最大价值。
状态转移方程:F[I,j]=max{f[I-1,j],f[I,j-1]}+a[I,j](i<=n,1<=m)条件:n[I,j]<>-1初始:f[1,1]=a[1,1]目标:f[n,m]【参考程序】Const maxn=50;maxm=50;Fin=’b1.in’;Fout=’b1.out’;VarF,a:array[0..maxn+1,0..maxm+1]of integer;I,j,k,n,m,t:integer;Procedure init;BeginAssign(input,fin);Reset(input);Readln(n,m);For i:=0to n+1doFor j:=0to m+1do a[I,j]:=-1;A[0,1]:=0;For i:=1to n doFor j:=1to m doBeginRead(a[I,j]);If(a[I,j-1]=-1)and(a[i-1,j]=-1)then a[I,j]:=-1;//很关键的预处理End;Close(input);End;Function max(a,b:integer):integer;Begin max:=a;if b>a then max:=b;end;Procedure work;BeginFillchar(f,sizeof(f),0);For i:=1to n doFor j:=1to m doIf a[I,j]<>-1Then f[I,j]:=max(f[i-1,j],f[I,j-1])+a[I,j];End;Procedure print;BeginAssign(output,fout);Rewrite(output);Writeln(f[n,m]);Close(output);End;BeginInit;Work;Print;End.13-5花店橱窗布置(IOI1999)【问题描述】假设你想以最美观的方式布置花店的橱窗。
第二十四届全国青少年信息学奥林匹克联赛初赛普及组C++语言试题竞赛时间:2021 年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 次比拟操作。
全国青少年信息学奥林匹克联赛初赛练习卷(二)(普及组PASCAL语言二小时完成)●●全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效●●一、单项选择题(20题,每题1.5分,共30分)1.完全二叉树的结点个数为11,则它的叶结点个数为()。
A. 4B. 3C. 5D. 2E. 6 (最后一个分支结点:n\2=11\2=5,故叶子有6个)2.平面上有五个点A(5,3)、B(3,5)、C(2,1)、D(3,3)、E(5,1),以这五点作为完全图G的顶点,每两点之间的直线距离是图G中对应边的权值。
以下哪条边不是图G的最小生成树中的边()。
A. ADB. BDC. CDD. DEE. EA3.Intel的首颗16位处理器是()。
A.8088B.80386C.80486D.8086E.Pentium(The first chip used in PCs was Intel's 8088. This was not, at the time it was chosen, the best available CPU, ... The 8088 was chosen for reasons of economics: its 8-bit data bus required less costly motherboards than the 16-bit 8086.)4.下列活动中不属于信息学奥赛的系列活动的是()。
A. NOIPB. NOIC. IOID. 冬令营E. 程序员等级考试5.以下哪个软件不是即时通信软件()。
A.网易泡泡B.MSN MessengerC.Google TalkD.3DS MaxE.QQ6.下列关于高级语言的说法错误的是()。
A.Fortran是历史上的第一个面向科学计算的高级语言B.Pascal和C都是编译执行的高级语言C.C++是历史上的第一个支持面向对象的语言D.编译器将高级语言程序转变为目标代码E.高级语言程序比汇编语言程序更容易从一种计算机移植到另一种计算机上7.常见的邮件传输服务器使用()协议接收邮件。
第二十四届全国青少年信息学奥林匹克联赛初赛提高组 C++语言试题竞赛时间:2018 年 10 月 13 日 14:30~16:30(WORD重新整理排版)选手注意:●试题纸共有 9 页,答题纸共有 2 页,满分 100 分。
请在答题纸上作答,写在试题纸上的一律无效。
●不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料。
一、单项选择题(共 10 题,每题 2 分,共计 20 分;每题有且仅有一个正确选项)1. 下列四个不同进制的数中,与其它三项数值上不相等的是()。
A. (269)16B. (617)10C. (1151)8D. (1001101011)22. 下列属于解释执行的程序设计语言是()。
A. CB. C++C. PascalD. Python3. 中国计算机学会于()年创办全国青少年计算机程序设计竞赛。
A. 1983B. 1984C. 1985D. 19864. 设根节点深度为 0,一棵深度为 h 的满 k(k>1)叉树,即除最后一层无任何子节点外,每一层上的所有结点都有 k 个子结点的树,共有()个结点。
A. (k h+1 - 1) / (k - 1)B. k h-1C. k hD. (k h-1 ) / (k - 1)5. 设某算法的时间复杂度函数的递推方程是 T(n) = T(n - 1) + n(n 为正整数)及 T(0) = 1,则该算法的时间复杂度为()。
A. O(log n)B. O(n log n)C. O(n)D. O(n2 )6. 表达式 a * d - b * c 的前缀形式是()。
A. a d * b c * -B. - * a d * b cC. a * d - b * cD. - * * a d b c7. 在一条长度为 1 的线段上随机取两个点,则以这两个点为端点的线段的期望长度是()。
A. 1 / 2B. 1 / 3C. 2 / 3D. 3 / 58. 关于 Catalan 数 Cn = (2n)! / (n + 1)! / n!,下列说法中错误的是()。
备考2018NOIP普及组初赛真题及详细参考答案第24届全国青少年信息学奥林匹克联赛初赛普及组C++语⾔试题竞赛时间:2018 年 10 ⽉ 13 ⽇ 14:30~16:30选⼿注意:1、试题纸共有 7 页,答题纸共有 2 页,满分 100 分。
请在答题纸上作答,写在试题纸上的⼀律⽆效。
2、不得使⽤任何电⼦设备(如计算器、⼿机、电⼦词典等)或查阅任何书籍资料。
⼀、单项选择题(共15题,每题2分,共计30分;每题有且仅有⼀个正确选项)1. 以下哪⼀种设备属于输出设备:( )A.扫描仪B.键盘C.⿏标D.打印机解析:D,其他三项都属于输⼊设备。
扩展:输⼊设备(Input Device )是把数据、指令及某些标志信息等输送到计算机中去。
键盘、⿏标、摄像头、扫描仪、光笔、⼿写输⼊板、游戏杆、语⾳输⼊装置等都属于输⼊设备。
输出设备(Output Device)是把计算或处理的结果或中间结果以⼈能识别的各种形式,如数字、符号、字母等表⽰出来,因此输⼊输出设备起了⼈与机器之间进⾏联系的作⽤。
常见的有显⽰器、打印机、绘图仪、影像输出系统、语⾳输出系统、磁记录设备等。
控制台打字机、光笔、显⽰器等既可作输⼊设备、也可作输出设备。
2. 下列四个不同进制的数中,与其它三项数值上不相等的是( )。
A. (269)16B. (617)10C. (1151)8D. (1001101011)2解析:DA选项:2 * 16^2 + 6 * 16^1 + 9 * 16 ^0 = 617C选项:1 * 8^3 + 1 * 8^2 + 5 * 8^1 + 1 * 8^0 = 617D选项:1*2^9+1*2^6+1*2^5+1*2^3+1*2^1+1^0=621扩展:进制也就是进制位,对于接触过电脑的⼈来说应该都不陌⽣,我们常⽤的进制包括:⼆进制、⼋进制、⼗进制与⼗六进制,它们之间区别在于数运算时是逢⼏进⼀位。
⽐如⼆进制是逢2进⼀位,⼗进制也就是我们常⽤的0-9是逢10进⼀位。
第二十二届全国青少年信息学奥林匹克联赛初赛提高组C++语言试题(2小时)选手注意:●不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料。
一、单项选择题(共15 题,每题1.5 分,共计22.5 分;每题有且仅有一个正确选项)1. 以下不是微软公司出品的软件是()。
A. Powerpoint B. Word C. Excel D. Acrobat Reader2. 如果开始时计算机处于小写输入状态,现在有一只小老鼠反复按照CapsLock、字母键A、字母键S 和字母键D 的顺序来回按键,即CapsLock、A、S、D、S、A、CapsLock、A、S、D、S、A、CapsLock、A、S、D、S、A、……,屏幕上输出的第81 个字符是字母()。
A. A B. S C. D D. A3. 二进制数00101100 和01010101 异或的结果是()。
A. 00101000 B. 01111001 C. 01000100 D. 001110004. 与二进制小数0.1 相等的八进进制数是()。
A. 0.8 B. 0.4 C. 0.2 D. 0.15. 以比较作为基本运算,在N 个数中找最小数的最少运算次数为()。
A. N B. N-1 C. N2 D. log N6. 表达式a*(b+c)-d 的后缀表达形式为()。
A. abcd*+- B. abc+*d- C. abc*+d- D. -+*abcd7.一棵二叉树如右图所示,若采用二叉树链表存储该二叉树(各个结点包括结点的数据、左孩子指针、右孩子指针)。
如果没有左孩子或者右孩子,则对应的为空指针。
那么该链表中空指针的数目为()。
A. 6B. 7C. 12 D. 148. G 是一个非连通简单无向图,共有28 条边,则该图至少有()个顶点。
A. 10 B. 9 C.8 D.79. 某计算机的CPU 和内存之间的地址总线宽度是32 位(bit),这台计算机最多可以使用()的内存。
NOIP提高组初赛历年试题及答案阅读题篇阅读程序写结果(共4 题,每题8 分,共计32 分)阅读程序的最好方法并非是依次从头到尾。
程序不像迷语,我们无法从末尾几页找到答案,也不像一本引人入胜的书籍,只需直接翻到褶皱最多的那几页,我们就能找到最精彩的片断。
因此我们在阅读程序时,最好逐一考察研究每一段代码,搞清楚每一段代码的来龙去脉,理解每一段代码在程序中所起的作用,进而形成一个虚拟的程序结构,并以此为基础来进行阅读。
1、分层读:高层入手,逐层深入,正确理解程序。
2、写注解:固化、总结、提炼已有的理解成果。
3、先模拟:根据代码顺序跟踪变量,模拟运算。
4、找规律:先模拟几次循环后,找出背后的规律。
5、看功能:从代码结构和运算结果判断程序功能。
6、猜算法:有时不知道算法,通过结构和函数猜一猜。
7、换方法:了解程序本质后,换一个熟悉的方法试试。
对大多数人来说,写程序是令人开心的一件事情,读别人的程序却很痛苦,很恐惧,宁愿自己重写一遍。
其实读到好的程序,就像读一篇美文,令人心旷神怡,豁然开朗,因为这背后是一个人的思维,甚至整个人生。
阅读别人的程序不仅可以巩固自己的知识,启发自己的思维,提升自己的修养,让你收获满满,其实,这也是在学习、在竞赛、在工作中的最重要、最常用的基本功。
如果说写程序是把自己的思维转化为代码,读程序就是把代码转化为你理解的别人的思维。
当你阅读程序时有强烈的代入感,像演员一样,真正进入到编剧的精神世界,面部表情也随之日渐丰富起来。
祝贺你!你通关了!总之,看得多,码得多,拼得多,你就考得多……NOIP2011-1.#include <iostream>#include <cstring>using namespace std;const int SIZE = 100;int main(){int n,i,sum,x,a[SIZE];cin>>n;memset(a,0,sizeof(a));for(i=1;i<=n;i++){cin>>x;a[x]++;}i=0;sum=0;while(sum<(n/2+1)){i++;sum+=a[i];}cout<<i<<endl;return 0;}输入:114 5 6 6 4 3 3 2 3 2 1一步步模拟,注意输出的是sum超出循环条件时的i值(中位数),而不是sum,也不是a[x]输出:3NOIP2011-2.#include <iostream> using namespace std; int n;void f2(int x,int y); void f1(int x,int y) {if(x<n)f2(y,x+y);}void f2(int x,int y) {cout<<x<<' ';f1(y,x+y);}int main(){cin>>n;f1(0,1);return 0;}输入:30此为简单的递归题,依次输出f2(x,y)中的x值,注意边界条件时f1(x,y)的x>=30咦!这不是隔一个输出一个的Fibonacci吗?输出:1 2 5 13 34NOIP2011-3.#include <iostream>using namespace std;const int V=100;int n,m,ans,e[V][V];bool visited[V];void dfs(int x,intlen){int i;visited[x]= true;if(len>ans)ans=len;for(i=1;i<=n;i++)if( (!visited[i]) &&(e[x][i]!=-1) ) dfs(i,len+e[x][i]);visited[x]=false;}int main(){int i,j,a,b,c;cin>>n>>m;for(i=1;i<=n;i++)for(j=1;j<=m;j++)e[i][j]=-1;for(i=1;i<=m;i++){cin>>a>>b>>c;e[a][b]=c;e[b][a]=c;}for(i=1;i<=n;i++)visited[i]=false;ans=0;for(i=1;i<=n;i++)dfs(i,0);cout<<ans<<endl;return 0;}输入:4 61 2 102 3 203 4 304 1 401 3 502 4 60一看就知这是深搜算法(DFS),输入是个四个顶点的无向图(邻接矩阵如下):如len>ans,则ans=len,可以说明这是个在图中用DFS找最长的路径的程序。
第二十四届全国青少年信息学奥林匹克联赛初赛
提高组参考答案
一、单项选择题(共10题,每题2分,共计20分)
1 2 3 4 5 6 7 8 9 10
D D B A D B B A D B
二、不定项选择题(共5题,每题2分,共计10分;每题有一个或多个正确选项,没有部分分)
1 2 3 4 5
AB CD ABD ABD BCD
三、问题求解(共2题,每题5分,共计10分)
1.去了没去没去没下雨(第4空2分,其余1分)
2.454
四、阅读程序写结果(共4题,每题8分,共计32分)
1. 4
2. 6
3.16
4.输出1:2 1 3 5 6 4(3分)输出2:3 2 5 6 1 4(5分)
五、完善程序(共计28分,以下各程序填空可能还有一些等价的写法,由各省赛区组织本省专家审定及上机验证,可以不上报CCF NOI科学委员会复核)
Pascal语言C++语言C语言分值
1 . (1) a[x] := i a[x] = i 3
(2) i + 1 2
(3) R[a[i]] 3
(4) a[i] 3
(5) R[i] 3 2
2 . (1) a[i] * 0.95 <= b[i] 或b[i] >= a[i] * 0.95 2
(2)
total_a >= threshold 或threshold <= total_a 或total_a >= 50000 或50000 <=
total_a
3
(3) total_a + j + a[i] 3
(4) f[j] + total_b - total_b_prefix 3
(5) f[j - a[i]] 3。
全国青少年信息学奥林匹克联赛初赛提高组C++语言试题竞赛时间:2013年10月13日14:30~16:30选手注意:试题纸共有12页,答题纸共有2页,满分100分。
请在答题纸上作答,写在试题纸上的一律无效。
不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料。
一、单项选择题(共15题,每题1.5分,共计22.5分;每题有且仅有一个正确选项)1.一个32位整型变量占用()个字节。
A.4 B.8 C.32 D.1282.二进制数11.01在十进制下是()。
A.3.25 B.4.125 C.6.25D.11.1253.下面的故事与()算法有着异曲同工之妙。
从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:?从前有座山,山里有座庙,庙里有个老和尚在给小和尚讲故事:‘从前有座山,山里有座庙,庙里有个老和尚给小和尚讲故事....’?A.枚举B.递归C.贪心D.分治4.1948年,()将热力学中的熵引入信息通信领域,标志着信息论研究的开端。
A.冯·诺伊曼(John von Neumann)B.图灵(Alan Turing)C.欧拉(Leonhard Euler)D.克劳德·香农(Claude Shannon)5.已知一棵二叉树有2013个节点,则其中至多有()个节点有2个子节点。
A.1006B.1007C.1023D.10246.在一个无向图中,如果任意两点之间都存在路径相连,则称其为连通图。
右图是一个有5个顶点、8条边的连通图。
若要使它不再是连通图,至少要删去其中的()条边。
A.2B.3C.4D.57.斐波那契数列的定义如下:F1=1,F2=1,Fn=Fn–1+Fn–2(n≥3)。
如果用下面的函数计算斐波那契数列的第n项,则其时间复杂度为()。
int F(int n){if(n<=2)return 1;elsereturn F(n-1)+F(n-2);}A.O(1)B.O(n)C.O(n2)D.O(F n)8.二叉查找树具有如下性质:每个节点的值都大于其左子树上所有节点的值、小于其右子树上所有节点的值。
NOI’95 “同创杯”全国青少年信息学(计算机)奥林匹克竞赛分区联赛初赛试题(高中组)竞赛用时:2小时一、基础题:<1> 执行①C>DIR 命令后,屏幕上显示如下画面:FORMAT COM 12145SYS COM 4878PUC BAT 126XCOPY EXE 112164 FILE(S)123456 bytes free接着又顺序执行了如下几条DOS 命令:②C>DIR> DF.TXT //表示将列表显示的目录作为文件写盘//③C>TYPE DF.TXT④C>DIR试问:执行命令③和④在屏幕上显示的结果是否与①相同?<2> 列举一个问题,使问题的解能对应相应的算法。
例如对算法:X:=10;Y:=5;READ(M,N);S:=X*M-Y*N;可列举出如下的问题:学生答题,答对一题可得10分,答错一题则要扣去5分,输入答对的题数(M)与答错的题数(N),求最后得分(S)是多少?现有以下算法:K:=0 ;FOR I:=0 TO 10 DOK:=K+(50-I*5)DIV 2+1请列出一个相应的问题。
<3> 有标号为A、B、C、D和1、2、3、4的8个球,每两个球装一盒,分装4盒。
标号为字母的球与标号为数字的球有着某种一一对应的关系(称为匹配),并已知如下条件:①匹配的两个球不能在一个盒子内。
②2号匹配的球与1号球在一个盒子里。
③A号和2号球在一个盒子里。
④B匹配的球和C号球在一个盒子里。
⑤3号匹配的球与A号匹配的球在一个盒子里。
⑥4号是A或B号球的匹配球。
⑦D号与1号或2号球匹配。
请写出这四对球匹配的情况。
<4> 从入口(1)到出口(17)的可行路线图中,数字标号表示关卡:现将上面的路线图,按记录结构存储如下:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18请设计一种能从存储数据中求出从入口到出口经过最少关卡路径的算法。
NOI’95 “同创杯”全国青少年信息学(计算机)奥林匹克竞赛分区联赛初赛试题(高中组)竞赛用时:2小时一、基础题:<1> 执行①C>DIR 命令后,屏幕上显示如下画面:FORMAT COM 12145SYS COM 4878PUC BAT 126XCOPY EXE 112164 FILE(S)123456 bytes free接着又顺序执行了如下几条DOS 命令:②C>DIR> DF.TXT //表示将列表显示的目录作为文件写盘//③C>TYPE DF.TXT④C>DIR试问:执行命令③和④在屏幕上显示的结果是否与①相同?<2> 列举一个问题,使问题的解能对应相应的算法。
例如对算法:X:=10;Y:=5;READ(M,N);S:=X*M-Y*N;可列举出如下的问题:学生答题,答对一题可得10分,答错一题则要扣去5分,输入答对的题数(M)与答错的题数(N),求最后得分(S)是多少?现有以下算法:K:=0 ;FOR I:=0 TO 10 DOK:=K+(50-I*5)DIV 2+1请列出一个相应的问题。
<3> 有标号为A、B、C、D和1、2、3、4的8个球,每两个球装一盒,分装4盒。
标号为字母的球与标号为数字的球有着某种一一对应的关系(称为匹配),并已知如下条件:①匹配的两个球不能在一个盒子内。
②2号匹配的球与1号球在一个盒子里。
③A号和2号球在一个盒子里。
④B匹配的球和C号球在一个盒子里。
⑤3号匹配的球与A号匹配的球在一个盒子里。
⑥4号是A或B号球的匹配球。
⑦D号与1号或2号球匹配。
请写出这四对球匹配的情况。
<4> 从入口(1)到出口(17)的可行路线图中,数字标号表示关卡:现将上面的路线图,按记录结构存储如下:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18请设计一种能从存储数据中求出从入口到出口经过最少关卡路径的算法。
第二十届全国青少年信息学奥林匹克比赛初赛提升组 C 语言试题一、单项选择题(每题 1.5 分,共 22.5 分)。
1.以下哪个是面向对象的高级语言 ( ).A. 汇编语言B. C++C. FORTRAND. Basic2.1TB 代表的字节数目是 ( ).A.2的 10次方B.2的 20次方C. 2的 30次方D.2的 40 次方3. 二进制数 00100100 和 00010101的和是 ( ).A. 00101000B. 001010100C. 01000101D. 001110014.TCP协议属于哪一层协议 ( ).A. 应用层B. 传输层C. 网络层D. 数据链路层5. 以下几个 32 位 IP 地点中,书写错误的选项是().6.在无向图中,所有定点的度数之和是边数的( )倍 .B.1C.2D.47.对长度位 n 的有序单链表,若检索每个元素的概率相等,则次序检索到表中任一元素的均匀检索长度为 ( ).A. n/2B. (n+1)/2C. (n-1)/2D. n/48.编译器的主要功能是 ( ).A.将一种高级语言翻译成另一种高级语言B.将源程序翻译成指令C.将初级语言翻译成高级语言D.将源程序从头组合9.二进制数 111.101 所对应的十进制数是 ( ).A. 5.625B. 5.5C. 6.125D. 7.62510.如有变量int a, float x, y, 且 a=7, x=2.5, y=4.7, 则表达式x+a%3*(int)(x+y)%2/4 的值大概是().A. 2.500000B. 2.750000C. 3.500000D. 0.00000011. 有以下构造体说明和变量定义,如下图,指针p、q、 r 分别指向一个链表中的三个续结点。
struct node {data next data next data next int data;struct node *next;↑ p↑ q↑ r} *p,*q,*r;现要将 q 和 r 所指结点的先后地点互换,同时要保持链表的连续,以下程序段中错误的选项是().A.q->next = r ->next; p -> next = r; r ->next = q;B.p->next = r; q->next = r->next; r ->next = q;C.q->next = r ->next; r ->next = q; p->next = r;D.r->next = q; q ->next = r ->next; p ->next = r;12.同时查找2n 个数中的最大值和最小值,最少比较次数为( ).A. 3(n-2)/2B. 4n-2C. 3n-2D. 2n-213.设 G 是有 6 个结点的完整图,要获得一颗生成树,需要从G中删去 ()条边 .A.6B.9C.10D.1514.以下时间复杂度不是 O(n2)的排序方法是 ( ).A. 插入排序B. 合并排序C. 冒泡排序D. 选择排序15. 以下程序实现了找第二小元素的算法。
NOIP 2017全国青少年信息学奥林匹克联赛提高组初赛试卷答案一、单项选择题(共 15 题,每题 1.5 分,共计 22.5 分;每题有且仅有一个正确选项)1. 从( )年开始,NOIP 竞赛将不再支持 Pascal 语言。
A. 2020B. 2021C. 2022D. 20232.在 8 位二进制补码中,10101011 表示的数是十进制下的( )。
A. 43B. -85C. -43D.-843.分辨率为 1600x900、16 位色的位图,存储图像信息所需的空间为( )。
A. 2812.5KBB. 4218.75KBC. 4320KBD. 2880KB4. 2017年10月1日是星期日,1949年10月1日是( )。
A. 星期三B. 星期日C. 星期六D. 星期二5. 设 G 是有 n 个结点、m 条边(n ≤m)的连通图,必须删去 G 的( )条边,才能使得 G 变成一棵树。
A.m–n+1B. m-nC. m+n+1D.n–m+16. 若某算法的计算时间表示为递推关系式:T(N)=2T(N/2)+NlogNT(1)=1则该算法的时间复杂度为( )。
A.O(N)B.O(NlogN)C.O(N log2N)D.O(N2)7. 表达式a * (b + c) * d的后缀形式是()。
A. abcd*+*B. abc+*d*C. a*bc+*dD. b+c*a*d8. 由四个不同的点构成的简单无向连通图的个数是( )。
A. 32B. 35C. 38D. 419. 将7个名额分给4个不同的班级,允许有的班级没有名额,有( )种不同的分配方案。
A. 60B. 84C. 96D.12010. 若f[0]=0, f[1]=1, f[n+1]=(f[n]+f[n-1])/2,则随着i的增大,f[i]将接近与( )。
A. 1/2B. 2/3D. 111. 设A和B是两个长为n的有序数组,现在需要将A和B合并成一个排好序的数组,请问任何以元素比较作为基本运算的归并算法最坏情况下至少要做( )次比较。
D 、( 101)2 > ( 15)16E 、( 121)10 =( 79)163、关闭一个活动应用程序窗口,可按快捷键( C 、Alt +Esc D 、Ctrl+ EscE 、Shift+ Esc4、结构化程序设计的三种结构是(A 、顺序结构、选择结构、转移结构 C 多分结构、赋值结构、等价结构 E 、循环结构、顺序结构、选择结构)B 、分支结构、等价结构、循环结构 D 、分支结构、顺序结构、选择结构5、编译程序是指( )A 、 将高级语言源程序翻译成机器语言程序(目标程序)B 、 将机器语言源程序翻译成高级语言程序(目标程序)C 、 对源程序边扫描边翻译执行D 、 对目标程序装配连接E 、 运行源程序并修改错误6、在pascal 语言中下列运算符( )的优先级别最高7、在线性表中,那些结点只有一个直接前驱和一个直接后续()A 、头结点B 、尾结点C 、中间的结点D 、所有结点E 、不确定 8、 具有12个记录的序列,采用冒泡排序法最少的比较次数是() A 、 1B 、144C 、11D 、66E 、09、有N 个结点的图的邻接矩阵存储法中,链表的表头结点有()个。
A 、 NB 、 2NC 、N/2D 、N*NE 、N-210、表达式 SQRT ( ABS (-100)*SQR ( ROUND ( 3.7)))的值是( )。
11、二叉树的后序遍历为 abcdef ,这棵二叉树可能是:信息学初赛模拟试题一、选择一个正确答案代码( A/B/C/D ),填入每题的括号内 (本题共20小题,每题1.5 分共30分。
1 —10小题为单选题,11— 20小题为不定项选择题,每题有一个或多个答案。
) 1、如果按字长来划分,微型机可以分为 位机是指该计算机所用的 CPU ( A 、同时能处理32位二进制数 C 只能处理32位二进制定点数 8位机、16位机、32位机和64位机。
所谓32 B 、具有32位的寄存器 D 、有32个寄存器 E 存储方式是 32位2、下列表达式正确的是( A 、 ( 1) 10>( 1)2B 、( 12)10 >( 10)16C 、 ( 15)8 > ( 10)16A 、 Ctrl + F4B 、Alt + F4 A 、 AND B 、 NOTC <>D 、*E 、OR A 、 30 B 40 C 30.0D 、40.0E 、40.0012、 具有4个顶点的无向完全图有()条边。
第二十四届全国青少年信息学奥林匹克联赛初赛提高组参考答案一、单项选择题(共10 题,每题2 分,共计20 分)1 2 3 4 5 6 7 8 9 10D D B A D B B A D B二、不定项选择题(共5 题,每题2 分,共计10 分;每题有一个或多个正确选项,没有部分分)1 2 3 4 5AB CD ABD ABD BCD三、问题求解(共2 题,每题5 分,共计10 分)1.去了没去没去没下雨(第4 空2 分,其余1 分)2.454四、阅读程序写结果(共4 题,每题8 分,共计32 分)1. 42. 63.164.输出1:2 1 3 5 6 4 (3分)输出2:3 2 5 6 1 4 (5分)五、完善程序(共计28 分,以下各程序填空可能还有一些等价的写法,由各省赛区组织本省专家审定及上机验证,可以不上报CCF NOI 科学委员会复核)Pascal 语言C++语言 C 语言分值1 (1) a[x] := i a[x] = i 3 .(2) i + 1 2(3) R[a[i]] 3(4) a[i] 3(5) R[i] 3(1) a[i] * 0.95 <= b[i] 或b[i] >= a[i] * 0.95 22. (2) t otal_a >= threshold 或threshold <= total_a 或total_a >= 50000 或50000 <=total_a3(3) total_a + j + a[i] 3(4) f[j] + total_b - total_b_prefix 3(5) f[j - a[i]] 3。
第二十四届全国青少年信息学奥林匹克联赛初赛提高组 C++语言试题竞赛时间:2018 年 10 月 13 日 14:30~16:30(WORD重新整理排版)选手注意:●试题纸共有 9 页,答题纸共有 2 页,满分 100 分。
请在答题纸上作答,写在试题纸上的一律无效。
●不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料。
一、单项选择题(共 10 题,每题 2 分,共计 20 分;每题有且仅有一个正确选项)1. 下列四个不同进制的数中,与其它三项数值上不相等的是()。
A. (269)16B. (617)10C. (1151)8D. (1001101011)22. 下列属于解释执行的程序设计语言是()。
A. CB. C++C. PascalD. Python3. 中国计算机学会于()年创办全国青少年计算机程序设计竞赛。
A. 1983B. 1984C. 1985D. 19864. 设根节点深度为 0,一棵深度为 h 的满 k(k>1)叉树,即除最后一层无任何子节点外,每一层上的所有结点都有 k 个子结点的树,共有()个结点。
A. (k h+1 - 1) / (k - 1)B. k h-1C. k hD. (k h-1 ) / (k - 1)5. 设某算法的时间复杂度函数的递推方程是 T(n) = T(n - 1) + n(n 为正整数)及 T(0) = 1,则该算法的时间复杂度为()。
A. O(log n)B. O(n log n)C. O(n)D. O(n2 )6. 表达式 a * d - b * c 的前缀形式是()。
A. a d * b c * -B. - * a d * b cC. a * d - b * cD. - * * a d b c7. 在一条长度为 1 的线段上随机取两个点,则以这两个点为端点的线段的期望长度是()。
A. 1 / 2B. 1 / 3C. 2 / 3D. 3 / 58. 关于 Catalan 数 Cn = (2n)! / (n + 1)! / n!,下列说法中错误的是()。
第二十四届全国青少年信息学奥林匹克联赛初赛——提高组C++语言试题一、单项选择题(共10 题,每题2 分,共计20 分;每题有且仅有一个正确选项)1. 下列四个不同进制的数中,与其它三项数值上不相等的是()。
A. (269)16B. (617)10C. (1151)8D. (1001101011)22. 下列属于解释执行的程序设计语言是()。
A. CB. C++C. PascalD. Python3. 中国计算机学会于()年创办全国青少年计算机程序设计竞赛。
A. 1983B. 1984C. 1985D. 19864. 设根节点深度为0,一棵深度为h 的满k(k>1)叉树,即除最后一层无任何子节点外,每一层上的所有结点都有k 个子结点的树,共有()个结点。
A. (k h+1 - 1) / (k - 1)B. k h-1C. k hD. (k h-1) / (k - 1)5. 设某算法的时间复杂度函数的递推方程是T(n) = T(n - 1) + n(n 为正整数)及T(0) = 1,则该算法的时间复杂度为()。
A. O(log n)B. O(n log n)C. O(n)D. O(n2)6. 表达式a * d - b * c 的前缀形式是()。
A. a d * b c * -B. - * a d * b cC. a * d - b * cD. - * * a d b c7. 在一条长度为1 的线段上随机取两个点,则以这两个点为端点的线段的期望长度是()。
A. 1 / 2B. 1 / 3C. 2 / 3D. 3 / 58. 关于Catalan 数Cn = (2n)! / (n + 1)! / n!,下列说法中错误的是()。
A. Cn 表示有n + 1 个结点的不同形态的二叉树的个数。
B. Cn 表示含n 对括号的合法括号序列的个数。
C. Cn 表示长度为n 的入栈序列对应的合法出栈序列个数。
D. Cn 表示通过连接顶点而将n + 2 边的凸多边形分成三角形的方法个数。
9. 假设一台抽奖机中有红、蓝两色的球,任意时刻按下抽奖按钮,都会等概率获得红球或蓝球之一。
有足够多的人每人都用这台抽奖机抽奖,假如他们的策略均为:抽中蓝球则继续抽球,抽中红球则停止。
最后每个人都把自己获得的所有球放到一个大箱子里,最终大箱子里的红球与蓝球的比例接近于()。
A. 1 : 2B. 2 : 1C. 1 : 3D. 1 : 110. 为了统计一个非负整数的二进制形式中1 的个数,代码如下:int CountBit(int x){int ret = 0;while (x){ret++;________;}return ret;}则空格内要填入的语句是()。
A. x >>= 1B. x &= x - 1C. x |= x >> 1D. x <<= 1二、不定项选择题(共5 题,每题2 分,共计10 分;每题有一个或多个正确选项,多选或少选均不得分)1. NOIP 初赛中,选手可以带入考场的有()。
A. 笔B. 橡皮C. 手机(关机)D. 草稿纸2. 2-3 树是一种特殊的树,它满足两个条件:(1)每个内部结点有两个或三个子结点;(2)所有的叶结点到根的路径长度相同。
如果一棵2-3 树有10 个叶结点,那么它可能有()个非叶结点。
A. 5B. 6C. 7D. 83. 下列关于最短路算法的说法正确的有()。
A. 当图中不存在负权回路但是存在负权边时,Dijkstra 算法不一定能求出源点到所有点的最短路。
B. 当图中不存在负权边时,调用多次Dijkstra 算法能求出每对顶点间最短路径。
C. 图中存在负权回路时,调用一次Dijkstra 算法也一定能求出源点到所有点的最短路。
D. 当图中不存在负权边时,调用一次Dijkstra 算法不能用于每对顶点间最短路计算。
4. 下列说法中,是树的性质的有()。
A. 无环B. 任意两个结点之间有且只有一条简单路径C. 有且只有一个简单环D. 边的数目恰是顶点数目减15. 下列关于图灵奖的说法中,正确的有()。
A. 图灵奖是由电气和电子工程师协会(IEEE)设立的。
B. 目前获得该奖项的华人学者只有姚期智教授一人。
C. 其名称取自计算机科学的先驱、英国科学家艾伦·麦席森·图灵。
D. 它是计算机界最负盛名、最崇高的一个奖项,有“计算机界的诺贝尔奖”之称。
三、问题求解(共2 题,每题5 分,共计10 分)1. 甲乙丙丁四人在考虑周末要不要外出郊游。
已知①如果周末下雨,并且乙不去,则甲一定不去;②如果乙去,则丁一定去;③如果丙去,则丁一定不去;④如果丁不去,而且甲不去,则丙一定不去。
如果周末丙去了,则甲________(去了/没去)(1 分),乙________(去了/没去)(1 分),丁________(去了/没去)(1 分),周末________(下雨/没下雨)(2 分)。
2. 方程 a*b = (a or b) * (a and b),在 a,b 都取 [0, 31] 中的整数时,共有_____组解。
(*表示乘法;or 表示按位或运算;and 表示按位与运算)四、阅读程序写结果(共4 题,每题8 分,共计32 分)1. #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输出:_________2. #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输出:_________3. #include <iostream>using namespace std;string s;long long magic(int l, int r) {long long ans = 0;for (int i = l; i <= r; ++i) {ans = ans * 4 + s[i] - 'a' + 1;}return ans;}int main() {cin >> s;int len = s.length();int ans = 0;for (int l1 = 0; l1 < len; ++l1) {for (int r1 = l1; r1 < len; ++r1) {bool bo = true;for (int l2 = 0; l2 < len; ++l2) {for (int r2 = l2; r2 < len; ++r2) {if (magic(l1, r1) == magic(l2, r2) && (l1 != l2 || r1 != r2)) {bo = false;}}}if (bo) {ans += 1;}}}cout << ans << endl;return 0;}输入:abacaba输出:_________4. #include <cstdio>using namespace std;const int N = 110;bool isUse[N];int n, t;int a[N], b[N];bool isSmall() {for (int i = 1; i <= n; ++i)if (a[i] != b[i]) return a[i] < b[i];return false;}bool getPermutation(int pos) {if (pos > n) {return isSmall();}for (int i = 1; i <= n; ++i) {if (!isUse[i]) {b[pos] = i; isUse[i] = true;if (getPermutation(pos + 1)) {return true;}isUse[i] = false;}}return false;}void getNext() {for (int i = 1; i <= n; ++i) {isUse[i] = false;}getPermutation(1);for (int i = 1; i <= n; ++i) {a[i] = b[i];}}int main() {scanf("%d%d", &n, &t);for (int i = 1; i <= n; ++i) {scanf("%d", &a[i]);}for (int i = 1; i <= t; ++i) {getNext();}for (int i = 1; i <= n; ++i) {printf("%d", a[i]);if (i == n) putchar('\n'); else putchar(' '); }return 0;}输入1:6 10 1 6 4 5 3 2输出1:_________(3 分)输入2:6 200 1 5 3 4 2 6输出2:_________(5 分)五、完善程序(共2 题,每题14 分,共计28 分)1. 对于一个1到下列程序读入了排列数据范围 1 ≤#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;(1) ;}for (int i = 1; i <= n; ++i) {R[i] = (2) ;L[i] = i - 1;}for (int i = 1; i <= n; ++i) {L[ (3) ] = L[a[i]];R[L[a[i]]] = R[ (4) ];}for (int i = 1; i <= n; ++i) {cout << (5) << " ";}cout << endl;return 0;}2. 一只小猪要买N 件物品(N 不超过1000)。