noip2016年提高组c试题

上传人:suns****4568 文档编号:60793931 上传时间:2018-11-18 格式:PDF 页数:12 大小:894KB
返回 下载 相关 举报
noip2016年提高组c试题_第1页
第1页 / 共12页
noip2016年提高组c试题_第2页
第2页 / 共12页
noip2016年提高组c试题_第3页
第3页 / 共12页
noip2016年提高组c试题_第4页
第4页 / 共12页
noip2016年提高组c试题_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《noip2016年提高组c试题》由会员分享,可在线阅读,更多相关《noip2016年提高组c试题(12页珍藏版)》请在金锄头文库上搜索。

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

2、 1. 以下不是微软公司出品的软件是( )。 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. 00101000 B.

3、 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 页,共 12 页 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 int main() int k = 4, n = 0

5、; 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 int main() int a6 = 1, 2, 3, 4, 5, 6; int pi = 0; int pj =

6、 5; int t , i; while (pi #include int main() char a100100, b100100, c100100; int n, i = 0, j = 0, k = 0, total_len100, length1003; scanf(“%d“, for (i = 0; i = lengthi2) printf(“NO,“); else k = 0; for (j = 0; j lengthi1) break; if (j = lengthi2) printf(“NO,“); else printf(“YES,“); printf(“n“); return

7、 0; 输入:3 AB:ACDEbFBkBD AR:ACDBrT 江 西 江 西江 西 江 西 CCF NOIP2016 初赛提高组 C 语言试题 第 7 页,共 12 页 SARS:Severe Atypical Respiratory Syndrome 输出:_ (注:输入各行前后均无空格) 3. #include #include int lps(char 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

8、- 1) + 2; len1 = lps(seq, i, j - 1); len2 = lps(seq, i + 1, j); if (len1 len2) return len1; return len2; int main() char seq = “acmerandacm“; int n = strlen(seq); printf(“%dn“, lps(seq, 0, n - 1); return 0; 输出:_ 4. #include #include #include int map100100; int sum100, weight100; int visit100; int n;

9、 void dfs(int node) visitnode = 1; sumnode = 1; 江 西 江 西江 西 江 西 CCF NOIP2016 初赛提高组 C 语言试题 第 8 页,共 12 页 int v, maxw = 0; for (v = 1; v maxw) maxw = 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, si

10、zeof(weight); memset(visit, 0, sizeof(visit); scanf(“%d“, int i, x, y; for (i = 1; i #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

11、( (1) ) temp = ranki; ranki = rankj; rankj = temp; i+; j-; if (i = 2; i-) higher = shorter = infinity; if (previousi != 0) shorter = heighti - heightpreviousi; if (nexti != 0) (3) ; if ( (4) ) answeri = previousi; else answeri = nexti; nextpreviousi = nexti; (5) ; for (i = 2; i 1)个城市因地震而导致交通中断时, 首都到

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

13、页 #include #include #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, answer; void link(int x,int y,int z) total+; nexttotal = headx; headx = total; pointtotal = y; weight

14、total = z; total+; nexttotal = heady; heady = total; pointtotal = x; weighttotal = z; int main() int i, j, s, t; scanf(“%d%d“, for (i = 1; i = m; i+) scanf(“%d%d%d“, link(x, y, z); for (i = 1; i = n; i+) disti = infinity; (1) ; queue1 = 1; visit1 = 1; s = 1; t = 1; / 使用 SPFA 求出第一个点到其余各点的最短路长度 while

15、(s = t) x = queues % MAXN; j = headx; while (j != 0) if ( (2) ) distpointj = distx + weightj; 江 西 江 西江 西 江 西 CCF NOIP2016 初赛提高组 C 语言试题 第 12 页,共 12 页 if (visitpointj = 0) t+; queuet % MAXN = pointj; visitpointj = 1; j = nextj; (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

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号