NOIP提高组C++试题.docx

上传人:罗晋 文档编号:8724979 上传时间:2021-01-05 格式:DOCX 页数:7 大小:17.08KB
返回 下载 相关 举报
NOIP提高组C++试题.docx_第1页
第1页 / 共7页
NOIP提高组C++试题.docx_第2页
第2页 / 共7页
NOIP提高组C++试题.docx_第3页
第3页 / 共7页
NOIP提高组C++试题.docx_第4页
第4页 / 共7页
NOIP提高组C++试题.docx_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《NOIP提高组C++试题.docx》由会员分享,可在线阅读,更多相关《NOIP提高组C++试题.docx(7页珍藏版)》请在三一文库上搜索。

1、最新 料推荐第二十一届全国青少年信息学奥林匹克联赛初赛提高组 C+语言试题竞赛时间:2015 年 10 月 11 日 14:3016:30一、单项选择题 (共 15 题,每题 1.5 分,共计 22.5 分;每题有且仅有一个正确选项)1 在计算机内部用来传送、存贮、加工处理的数据或指令都是以()形式进行的。A二进制码B八进制码C十进制码D智能拼音码2 下列说法正确的是()。A CPU 的主要任务是执行数据运算和程序控制B存储器具有记忆能力,其中信息任何时候都不会丢失C两个显示器屏幕尺寸相同,则它们的分辨率必定相同D个人用户只能使用 Wifi 的方式连接到Internet 3 与二进制小数0.1

2、 相等的十六进制数是()。A0.8B 0.4C 0.2D 0.14 下面有四个数据组,每个组各有三个数据,其中第一个数据为八进制数,第二个数据为十进制数,第三个数据为十六进制数。 这四个数据组中三个数据相同的是 ( )。 A120 82 50 B 144 100 68C 300 200 C8D 1762 1010 3F25 线性表若采用链表存储结构,要求内存中可用存储单元地址()。A必须连续B部分地址必须连续C一定不连续D连续不连续均可6 今有一空栈S,对下列待进栈的数据元素序列a,b,c,d,e,f 依次进行进栈,进栈,出栈,进栈,进栈,出栈的操作,则此操作完成后,栈S 的栈顶元素为()。

3、A fB cC aD b7 前序遍历序列与后序遍历序列相同的二叉树为()。A非叶子结点只有左子树的二叉树B只有根结点的二叉树C根结点无右子树的二叉树D非叶子结点只有右子树的二叉树8 如果根的高度为1,具有 61 个结点的完全二叉树的高度为()。1最新 料推荐A5B 6C 7D 89 6 个顶点的连通图的最小生成树,其边数为()。A6B 5C 7D 410设某算法的计算时间表示为递推关系式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)11具有 n 个顶点, e 条边的图采

4、用邻接表存储结构,进行深度优先遍历和广度优先遍历运算的时间复杂度均为()。 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-llin

5、k-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 的色数。那么下图的色数是()。A3B 4C 5D 615在 NOI 系列赛事中参赛选手必须使用由承办单位统一提供的设备。下列物品中不允许选

6、手自带的是()。A鼠标 B笔 C身份证D准考证二、不定项选择题(共5 题,每题1.5 分,共计 7.5 分;每题有一个或多个正确选项,多选2最新 料推荐或少选均不得分)1 以下属于操作系统的有()。A Windows XPB UNIXC LinuxD Mac OS2 下列属于视频文件格式的有()。A AVIB MPEGC WMVD JPEG3 下列选项不是正确的IP 地址的有()。A202.300.12.4B 192.168.0.3C 100:128:35:91D 111-103-35-214 下列有关树的叙述中,叙述正确的有()。A在含有 n 个结点的树中,边数只能是 (n-1)条 B在哈夫

7、曼树中,叶结点的个数比非叶结点个数多 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种:一种是根结点和左儿

8、子,另一种是根结点和右儿子。) 四、阅读程序写结果(共4 题,每题 8 分,共计 32 分) 1 #include using namespace std;struct point int x;int y;int main()struct EXint a;int b;point c; e;e.a = 1;e.b = 2;e.c.x = e.a + e.b;e.c.y = e.a * e.b;3最新 料推荐cout e.c.x , e.c.y endl;return 0;输出: _2#include using namespace std;void fun(char *a, char *b)a

9、= b;(*a)+;int main()char c1, c2, *p1, *p2;c1 = A;c2 = a;p1 = &c1;p2 = &c2;fun(p1, p2);cout c1 c2 endl;return 0;输出: _3 #include #include using namespace std;int main() int len, maxlen;string s, ss;maxlen = 0;do cin ss;len = ss.length();if (ss0 = # )break;if (len maxlen)s = ss;maxlen = len; while (tru

10、e); cout s endl; return 0;4最新 料推荐输入IamaCitizenofChina#输出: _4 #include using namespace std;int fun(int n, int fromPos, int toPos)int t, tot;if (n = 0)return 0;for (t = 1; t n;cout fun(n, 1, 3) endl;return 0;输入: 5输出: _五、完善程序(共 2 题,每题14 分,共计28 分)1 (双子序列最大和)给定一个长度为n( 3 n 1000 )的整数序列,要求从中选出两个连续子序列, 使得这两个

11、连续子序列的序列和之和最大,最终只需输出这个最大和。一个连续子序列的序列和为该连续子序列中所有数之和。要求:每个连续子序列长度至少为1,且两个连续子序列之间至少间隔1 个数。(第五空4 分,其余2.5 分)#include using namespace std;const int MAXN = 1000;int n, i, ans, sum;int xMAXN;int lmaxMAXN;/ lmaxi 为 仅 含xi 及xi 左 侧 整 数 的 连 续 子 序 列 的 序 列 和 中 , 最 大 的 序 列5最新 料推荐和 int rmaxMAXN;/ rmaxi 为仅含 xi 及 xi 右

12、侧整数的连续子序列的序列和中,最大的序列和int main()cin n;for (i = 0; i xi;lmax0 = x0;for (i = 1; i n; i+)if (lmaxi - 1 = 0)lmaxi = xi;elselmaxi = lmaxi - 1 + xi;for (i = 1; i n; i+)if (lmaxi = 0; i-)if (rmaxi + 1 = 0; i-)if (rmaxi rmaxi + 1)_(4)_ans = x0 + x2;for (i = 1; i ans)ans = sum;cout ans endl;return 0;2(最短路径问题)

13、无向连通图G 有 n 个结点, 依次编号为0,1,2,.,(n-1) 。用邻接矩阵的形式给出每条边的边长,要求输出以结点0 为起点出发,到各结点的最短路径长度。使用Dijkstra 算法解决该问题:利用dist 数组记录当前各结点与起点的已找到的最短路径长度;每次从未扩展的结点中选取dist 值最小的结点v 进行扩展,更新与v 相邻的结点的dist 值;不断进行上述操作直至所有结点均被扩展,此时 dist 数据中记录的值即为各结点与起点的最短路径长度。(第五空 2分,其余3分)3#include using namespace std;6最新 料推荐const int MAXV = 100;i

14、nt n, i, j, v;int wMAXVMAXV; /邻接矩阵,记录边长/ 其中 wij 为连接结点i 和结点 j 的无向边长度,若无边则为-1int distMAXV;int usedMAXV;/ 记录结点是否已扩展( 0:未扩展; 1:已扩展)int main()cin n;for (i = 0; i n; i+)for (j = 0; j wij;dist0 = 0;for (i = 1; i n; i+)disti = -1;for (i = 0; i n; i+)usedi = 0;while (true)_(1) _for (i = 0; i n; i+)if (usedi != 1 & disti != -1 & (v = -1 |_ (2)_ )_(3)_if (v = -1)break;_(4)_for (i = 0; i n; i+)if (wvi != -1 & (disti = -1 |_(5_)disti = distv + wvi;for (i = 0; i n; i+)cout disti endl;return 0;7

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1