NOIP提高组初赛C++.docx
- 文档编号:3839836
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:10
- 大小:28.39KB
NOIP提高组初赛C++.docx
《NOIP提高组初赛C++.docx》由会员分享,可在线阅读,更多相关《NOIP提高组初赛C++.docx(10页珍藏版)》请在冰豆网上搜索。
NOIP提高组初赛C++
第二十一届全国青少年信息学奥林匹克联赛初赛
提高组C++语言试题
一、单项选择题(共15题,每题1.5分,共计22.5分;每题有且仅有一个正确选项)
1.在计算机内部用来传送、存贮、加工处理的数据或指令都是以()形式进行的。
A.二进制码B.八进制码C.十进制码D.智能拼音码
2.下列说法正确的是()。
A.CPU的主要任务是执行数据运算和程序控制
B.存储器具有记忆能力,其中信息任何时候都不会丢失
C.两个显示器屏幕尺寸相同,则它们的分辨率必定相同
D.个人用户只能使用Wifi的方式连接到Internet
3.与二进制小数0.1相等的十六进制数是()。
A.0.8B.0.4C.0.2D.0.1
4.下面有四个数据组,每个组各有三个数据,其中第一个数据为八进制数,第二个数据为十进制数,第三个数据为十六进制数。
这四个数据组中三个数据相同的是()。
A.1208250B.14410068C.300200C8D.176210103F2
5.线性表若采用链表存储结构,要求内存中可用存储单元地址()。
A.必须连续B.部分地址必须连续C.一定不连续D.连续不连续均可
6.今有一空栈S,对下列待进栈的数据元素序列a,b,c,d,e,f依次进行进栈,进栈,出栈,进栈,进栈,出栈的操作,则此操作完成后,栈S的栈顶元素为()。
A.fB.cC.aD.b
7.前序遍历序列与后序遍历序列相同的二叉树为()。
A.非叶子结点只有左子树的二叉树B.只有根结点的二叉树
C.根结点无右子树的二叉树D.非叶子结点只有右子树的二叉树
8.如果根的高度为1,具有61个结点的完全二叉树的高度为()。
A.5B.6C.7D.8
9.6个顶点的连通图的最小生成树,其边数为()。
A.6B.5C.7D.4
10.设某算法的计算时间表示为递推关系式T(n)=T(n-1)+n(n为正整数)及T(0)=1,则该算法的时间复杂度为()。
A.O(logn)B.O(nlogn)C.O(n)D.O(n2)
11.具有n个顶点,e条边的图采用邻接表存储结构,进行深度优先遍历和广度优先遍历运算的时间复杂度均为()。
A.Θ(n2)B.Θ(e2)C.Θ(ne)D.Θ(n+e)
12.在数据压缩编码的应用中,哈夫曼(Huffman)算法是一种采用了()思想的算法。
A.贪心B.分治C.递推D.回溯
13.双向链表中有两个指针域,llink和rlink,分别指回前驱及后继,设p指向链表中的一个结点,q指向一待插入结点,现要求在p前插入q,则正确的插入为()。
A.p->llink=q;q->rlink=p;
p->llink->rlink=q;q->llink=p->llink;
B.q->llink=p->llink;p->llink->rlink=q;
q->rlink=p;p->llink=q->rlink;
C.q->rlink=p;p->rlink=q;
p->llink->rlink=q;q->rlink=p;
D.p->llink->rlink=q;q->rlink=p
q->llink=p->llink;p->llink=q;
14.对图G中各个结点分别指定一种颜色,使相邻结点颜色不同,则称为图G的一个正常着色。
正常着色图G所必需的最少颜色数,称为G的色数。
那么下图的色数是()。
A.3B.4C.5D.6
15.在NOI系列赛事中参赛选手必须使用由承办单位统一提供的设备。
下列物品中不允许选手自带的是()。
A.鼠标B.笔C.身份证D.准考证
二、不定项选择题(共5题,每题1.5分,共计7.5分;每题有一个或多个正确选项,多选或少选均不得分)
1.以下属于操作系统的有()。
A.WindowsXPB.UNIXC.LinuxD.MacOS
2.下列属于视频文件格式的有()。
A.AVIB.MPEGC.WMVD.JPEG
3.下列选项不是正确的IP地址的有()。
A.202.300.12.4B.192.168.0.3C.100:
128:
35:
91D.111-103-35-21
4.下列有关树的叙述中,叙述正确的有()。
A.在含有n个结点的树中,边数只能是(n-1)条
B.在哈夫曼树中,叶结点的个数比非叶结点个数多1
C.完全二叉树一定是满二叉树
D.在二叉树的前序序列中,若结点u在结点v之前,则u一定是v的祖先
5.以下图中一定可以进行黑白染色的有()。
(黑白染色:
为各个结点分别指定黑白两种颜色之一,使相邻结点颜色不同。
)
A.二分图B.完全图C.树D.连通图
三、问题求解(共2题,每题5分,共计10分;每题全部答对得5分,没有部分分)
1.在1和2015之间(包括1和2015在内)不能被4、5、6三个数任意一个数整除的数有_________个。
2.结点数为5的不同形态的二叉树一共有_________种。
(结点数为2的二叉树一共有2种:
一种是根结点和左儿子,另一种是根结点和右儿子。
)
四、阅读程序写结果(共4题,每题8分,共计32分)
1.#include
usingnamespacestd;
structpoint{
intx;
inty;
};
intmain(){
structEX{
inta;
intb;
pointc;
}e;
e.a=1;
e.b=2;
e.c.x=e.a+e.b;
e.c.y=e.a*e.b;
cout< return0; } 输出: _________ 2.#include usingnamespacestd; voidfun(char*a,char*b){ a=b; (*a)++; } intmain(){ charc1,c2,*p1,*p2; c1='A'; c2='a'; p1=&c1; p2=&c2; fun(p1,p2); cout< return0; } 输出: _________ 3.#include #include usingnamespacestd; intmain(){ intlen,maxlen; strings,ss; maxlen=0; do{ cin>>ss; len=ss.length(); if(ss[0]=='#')break; if(len>maxlen){ s=ss; maxlen=len; } }while(true); cout< return0; } 输入: I am a citizen of China # 输出: _________ 4.#include usingnamespacestd; intfun(intn,intfromPos,inttoPos){ intt,tot; if(n==0)return0; for(t=1;t<=3;t++) if(t! =fromPos&&t! =toPos)break; tot=0; tot+=fun(n-1,fromPos,t); tot++; tot+=fun(n-1,t,toPos); returntot; } intmain(){ intn; cin>>n; cout< return0; } 输入: 5输出: _________ 五、完善程序(共2题,每题14分,共计28分) 1.(双子序列最大和)给定一个长度为n(3≤n≤1000)的整数序列,要求从中选出两个连续子序列,使得这两个连续子序列的序列和之和最大,最终只需输出这个最大和。 一个连续子序列的序列和为该连续子序列中所有数之和。 要求: 每个连续子序列长度至少为1,且两个连续子序列之间至少间隔1个数。 (第五空4分,其余2.5分) #include usingnamespacestd; constintMAXN=1000; intn,i,ans,sum; intx[MAXN]; intlmax[MAXN]; //lmax[i]为仅含x[i]及x[i]左侧整数的连续子序列的序列和中,最大的序列和 intrmax[MAXN]; //rmax[i]为仅含x[i]及x[i]右侧整数的连续子序列的序列和中,最大的序列和 intmain(){ cin>>n; for(i=0;i lmax[0]=x[0]; for(i=1;i if(lmax[i-1]<=0) lmax[i]=x[i]; else lmax[i]=lmax[i-1]+x[i]; for(i=1;i if(lmax[i] lmax[i]=lmax[i-1]; (1); for(i=n-2;i>=0;i--) if(rmax[i+1]<=0) (2); else (3); for(i=n-2;i>=0;i--) if(rmax[i] (4); ans=x[0]+x[2]; for(i=1;i sum=(5); if(sum>ans) ans=sum; } cout< return0; } 2.(最短路径问题)无向连通图G有n个结点,依次编号为0,1,2,...,(n-1)。 用邻接矩阵的形式给出每条边的边长,要求输出以结点0为起点出发,到各结点的最短路径长度。 使用Dijkstra算法解决该问题: 利用dist数组记录当前各结点与起点的已找到的最短路径长度;每 次从未扩展的结点中选取dist值最小的结点v进行扩展,更新与v相邻的结点的dist值;不断进 行上述操作直至所有结点均被扩展,此时dist数据中记录的值即为各结点与起点的最短路径长度。 (第五空2分,其余3分) #include usingnamespacestd; constintMAXV=100; intn,i,j,v; intw[MAXV][MAXV];//邻接矩阵,记录边长 //其中w[i][j]为连接结点i和结点j的无向边长度,若无边则为-1 intdist[MAXV]; intused[MAXV];//记录结点是否已扩展(0: 未扩展;1: 已扩展) intmain(){ cin>>n; for(i=0;i for(j=0;j cin>>w[i][j]; dist[0]=0; for(i=1;i dist[i]=-1; for(i=0;i used[i]=0; while(true){ (1); for(i=0;i if(used[i]! =1&&dist[i]! =-1&&(v==-1|| (2))) (3); if(v==-1)break; (4); for(i=0;i if(w[v][i]! =-1&&(dist[i]==-1||(5))) dist[i]=dist[v]+w[v][i]; } for(i=0;i cout< return0; } 答案: 一、AAADDBBBBDDADAA 二、ABCDABCACDABAC 三、107542 四、1.3,2 2.Ab 3.citizen 4.31 五、1 (1)rmax[n-1]=x[n-1] (2)rmax[i]=x[i] (3)rmax[i]=rmax[i+1]+x[i] (4)rmax[i]=rmax[i+1] (5)lmax[i+1]=rmax[i+1] 2 (1)v=-1 (2)dist[i] (3)v=i (4)used[v]=1 (5)dist[v]+w[v][i] 或dist[i]>=dist[v]+w[v][vi]或dist[i]>dist[v]+w[v][i]
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- NOIP 提高 初赛 C+