ImageVerifierCode 换一换
格式:PDF , 页数:13 ,大小:883.07KB ,
资源ID:3612095      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-3612095.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(NOIP2016提高组C++试题.pdf)为本站会员(weiwoduzun)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

NOIP2016提高组C++试题.pdf

1、贵州贵州贵州贵州CCF NOIP2016 初赛提高组 C+语言试题 第 1 页 , 共 13 页 第 二十 二 届全国青少年信息学奥林匹克联赛 初赛 提高 组 C+语言 试题 竞赛时间: 2016 年 10 月 22 日 14:3016:30 选手 注意: 试题 纸 共有 13 页, 答题纸 共有 2 页 ,满分 100 分 。 请在 答题纸 上作答 ,写在 试题 纸 上的一律无效。 不得 使用 任何电子设备(如 计算器 、手机、电子词典等)或 查阅 任何书籍资料 。 一、单项选择题(共 15 题,每题 1.5 分,共计 22.5 分 ; 每题有且仅有一个正确选项) 1. 以下不是微软公司出品

2、的软件是 ( ) 。 A. Powerpoint B. Word C. Excel D. Acrobat Reader 2. 如果开始时计算机处于小写输入状态 ,现在有一只小老鼠反复按照 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. a 3. 二进制数 00101100 和 01010101 异或的结果是 ( ) 。 A. 00101

3、000 B. 01111001 C. 01000100 D. 00111000 4. 与二进制小数 0.1 相等的八进进制数是 ( ) 。 A. 0.8 B. 0.4 C. 0.2 D. 0.1 5. 以比较作为基本运算,在 N 个数中找最小数的最少运算次数为 ( ) 。 A. N B. N-1 C. N2 D. log N 6. 表达式 a*(b+c)-d 的后缀表达形式为 ( ) 。 A. abcd*+- B. abc+*d- C. abc*+d- D. -+*abcd 7. 一棵二叉树如右图所示,若采用二叉树链表存储该二叉树(各个结点包括结点的数据、左孩子指针、右孩子指针)。如果没有左孩

4、子或者右孩子,则对应的为空指针。那么该链表中空指针的数目为 ( )。 A. 6 B. 7 C. 12 D. 14 贵州贵州贵州贵州CCF NOIP2016 初赛提高组 C+语言试题 第 2 页 , 共 13 页 8. G 是一个非连通简单无向图,共有 28 条边,则该图至少有 ( ) 个顶点 。 A. 10 B. 9 C. 8 D. 7 9. 某计算机的 CPU 和内存之间的地址总线宽度是 32 位( bit),这台计算机最多可以使用 ( ) 的内存 。 A. 2GB B. 4GB C. 8GB D. 16GB 10. 有以下程序: #include using namespace std;

5、int main() int k = 4, n = 0; while (n 。如果 L 中存在 xi( 1 xi+1 . xn, 则称 L 是单峰的,并称 xi 是 L 的“峰顶”。现在已知 L 是单峰的,请把 a-c 三行代码补全到算法中使得算法正确找到 L 的峰顶。 a. Search(k+1, n) b. Search(1, k-1) c. return Lk Search(1, n) 1. kn/2 2. if Lk Lk-1 and Lk Lk+1 3. then _ 4. else if Lk Lk-1 and Lk using namespace std; int main()

6、int a6 = 1, 2, 3, 4, 5, 6; int pi = 0; int pj = 5; int t , i; while (pi using namespace std; int main() char a100100, b100100; string c100; string tmp; int n, i = 0, j = 0, k = 0, total_len100, length1003; 贵州贵州贵州贵州CCF NOIP2016 初赛提高组 C+语言试题 第 6 页 , 共 13 页 cin n; getline(cin, tmp); for (i = 0; i = len

7、gthi2) cout lengthi1) break; if (j = lengthi2) cout using namespace std; int lps(string seq, int i, int j) int len1, len2; if (i = j) return 1; if (i j) return 0; if (seqi = seqj) return lps(seq, i + 1, j - 1) + 2; len1 = lps(seq, i, j - 1); len2 = lps(seq, i + 1, j); if (len1 len2) return len1; ret

8、urn len2; int main() string seq = “acmerandacm“; int n = seq.size(); cout #include using namespace std; int map100100; int sum100, weight100; int visit100; 贵州贵州贵州贵州CCF NOIP2016 初赛提高组 C+语言试题 第 8 页 , 共 13 页 int n; void dfs(int node) visitnode = 1; sumnode = 1; int v, maxw = 0; for (v = 1; v maxw) maxw

9、 = sumv; if (n - sumnode maxw) maxw = n - sumnode; weightnode = maxw; int main() memset(map, 0, sizeof(map); memset(sum, 0, sizeof(sum); memset(weight, 0, sizeof(weight); memset(visit, 0, sizeof(visit); cin n; int i, x, y; for (i = 1; i x y; mapxy = 1; mapyx = 1; dfs(1); int ans = n, ansN = 0; for (

10、i = 1; i using namespace std; #define MAXN 200000 #define infinity 2147483647 int answerMAXN, heightMAXN, previousMAXN, nextMAXN; int rankMAXN; int n; void sort(int l, int r) int x = heightrank(l + r) / 2, i = l, j = r, temp; while (i x) j-; if ( (1) ) temp = ranki; ranki = rankj; rankj = temp; 贵州贵州

11、贵州贵州CCF NOIP2016 初赛提高组 C+语言试题 第 10 页 , 共 13 页 i+; j-; if (i n; int i, higher, shorter; for (i = 1; i heighti; ranki = i; sort(1, n); for (i = 1; i = 2; i-) higher = shorter = infinity; if (previousi != 0) shorter = heighti - heightpreviousi; if (nexti != 0) (3) ; if ( (4) ) answeri = previousi; else

12、 answeri = nexti; nextpreviousi = nexti; (5) ; for (i = 2; i 1)个城市因地震而导致交通中断时,首都到多少个城市的最短路 径长度会发生改变。如果因为无法通过第 i 个城市而导致从首都出发无法到达某个城贵州贵州贵州贵州CCF NOIP2016 初赛提高组 C+语言试题 第 11 页 , 共 13 页 市 , 也认为 到达该城市的 最短路径长度改变。 对于每一个城市 i,假定只有第 i 个城市与外界交通中断,输出有多少个城市会因此导致到首都的最短路径长度改变。 我们采用邻接表的方式存储图的信息,其中 headx表示顶点 x 的第一条边的编

13、号, nexti表示第 i 条边的下一条边的编号, pointi表示第 i 条边的终点, weighti表示第 i 条边的长度。 (第一空 2 分,其余 3 分) #include #include using namespace std; #define MAXN 6000 #define MAXM 100000 #define infinity 2147483647 int headMAXN, nextMAXM, pointMAXM, weightMAXM; int queueMAXN, distMAXN, visitMAXN; int n, m, x, y, z, total = 0,

14、answer; void link(int x,int y,int z) total+; nexttotal = headx; headx = total; pointtotal = y; weighttotal = z; total+; nexttotal = heady; heady = total; pointtotal = x; weighttotal = z; int main() int i, j, s, t; cin n m; for (i = 1; i x y z; link(x, y, z); for (i = 1; i = n; i+) disti = infinity;

15、(1) ; queue1 = 1; visit1 = 1; s = 1; 贵州贵州贵州贵州CCF NOIP2016 初赛提高组 C+语言试题 第 12 页 , 共 13 页 t = 1; / 使用 SPFA 求出第一个点到其余各点的最短路长度 while (s = t) x = queues % MAXN; j = headx; while (j != 0) if ( (2) ) distpointj = distx + weightj; if (visitpointj = 0) t+; queuet % MAXN = pointj; visitpointj = 1; j = nextj; (

16、3) ; s+; for (i = 2; i = n; i+) queue1 = 1; memset(visit, 0, sizeof(visit); visit1 = 1; s = 1; t = 1; while (s = t) / 判断最短路长度是否不变 x = queues; j = headx; while (j != 0) if (pointj != i t+; queuet = pointj; j = nextj; s+; answer = 0; for (j = 1; j = n; j+) answer += 1 - visitj; cout i “:“ answer - 1 endl; 贵州贵州贵州贵州CCF NOIP2016 初赛提高组 C+语言试题 第 13 页 , 共 13 页 return 0;

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报