好文档 - 专业文书写作范文服务资料分享网站

noip2018普及组初赛试题+答案

天下 分享 时间: 加入收藏 我要投稿 点赞

第24届全国青少年信息学奥林匹克联赛初赛

普及组C++语言试题

竞赛时间:2018 年 10 月 13 日 14:30~16:30

选手注意:

1、试题纸共有 7 页,答题纸共有 2 页,满分 100 分。请在答题纸上作答,写在试题纸上得一律无效。

2、不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料。

一、单项选择题(共15题,每题2分,共计30分;每题有且仅有一个正确选项) 1、 以下哪一种设备属于输出设备:( ) A、扫描仪 B、键盘 C、鼠标 D、打印机

2、 下列四个不同进制得数中,与其它三项数值上不相等得就是( )。

A、 (269)16 (注解:2 * 16^2 + 6 * 16^1 + 9 * 16 ^0 = 617) B、 (617)10

C、 (1151)8 (注解:1 * 8^3 + 1 * 8^2 + 5 * 8^1 + 1 * 8^0 = 617) D、 (1001101011)2 3、 1MB等于( )。 A、 1000 字节 B、 1024 字节

C、 1000 X 1000字节 D、 1024 X 1024字节

4、 广域网得英文缩写就是( )。 A、 LAN

B、 WAN (Wide Area Network) C、 MAN D、LNA

5、 中国计算机学会于( )年创办全国青少年计算机程序设计竞赛。 A、 1983 B、 1984 C、 1985 D、 1986

6、 如果开始时计算机处于小写输入状态,现在有一只小老鼠反复按照 CapsLock、字母键 A、字母键S、字母键 D、字母键 F 得顺序循环按键,即 CapsLock、A、S、D、F、CapsLock、A、S、D、F、、、、、、、,屏幕上输出得第 81 个字符就是字母 ( )。 A、 A B、 S C、 D D、 a

7、 根节点深度为 0,一棵深度为 h 得满 k(k>1)叉树,即除最后一层无任何子节点外,每一层上得所有结点都有k个子结点得树,共有( )个结点。

A、 (kh+1-1)/(k-1) B、 k h-1 C、 k h

D、 (k h-1) / (k - 1)

8、 以下排序算法中,不需要进行关键字比较操作得算法就是( )。 A、 基数排序 B、 冒泡排序 C、 堆排序

D、 直接插入排序

9、 给定一个含 N 个不相同数字得数组,在最坏情况下,找出其中最大或最小得数,至少需要 N - 1 次比较操作。则最坏情况下,在该数组中同时找最大与最小得数至少需要( )次比较操作。(? ?表示向上取整,? ?表示向下取整) A、 ?3N / 2? - 2 B、 ?3N / 2? - 2 C、 2N - 2 D、 2N - 4

10、 下面得故事与( )算法有着异曲同工之妙。从前有座山,山里有座庙,庙里有个老与尚在给小与尚讲故事:“从前有座山,山里有座庙,庙里有个老与尚在给小与尚讲故事:‘从前有座山,山里有座庙,庙里有个老与尚给小与尚讲故事、、、、、、’” A、 枚举 B、 递归 C、 贪心 D、 分治

11、 由四个没有区别得点构成得简单无向连通图得个数就是( )。 A、 6 B、 7 C、 8 D、9

12、 设含有 10 个元素得集合得全部子集数为 S,其中由 7 个元素组成得子集数为T,则T / S得值为( )。 A、 5 / 32 B、 15 / 128 C、 1 / 8

D、 21 / 128

13、 10000以内,与10000互质得正整数有( )个。 A、 2000 B、 4000 C、 6000 D、 8000

14、 为了统计一个非负整数得二进制形式中 1 得个数,代码如下: int CountBit(int x) {

int ret = 0; while (x)

{

ret++;

___________; }

return ret;

}

则空格内要填入得语句就是( )。 A、 x >>= 1

B、 x &= x - 1 C、 x |= x >> 1 D、 x <<= 1

15、 下图中所使用得数据结构就是( )。

A、 哈希表 B、 栈 C、 队列 D、 二叉树

二、问题求解(共 2 题,每题 5 分,共计 10 分)

1、 甲乙丙丁四人在考虑周末要不要外出郊游。 已知1如果周末下雨,并且乙不去,则甲一定不去;2如果乙去,则丁一定去;3如果丙去,则丁一定不去;4如果丁不去,而且甲不去,则丙一定不去。如果周末丙去了,则甲去了 (去了/没去)(1 分),乙没去(去了/没去)(1 分),丁没去(去了/没去)(1 分),周末没下雨(下雨/ 没下雨)(2 分)。

2、 从 1 到 2018 这 2018 个数中,共有544个包含数字 8 得数。

包含数字 8 得数就是指有某一位就是“8”得数,例如“2018”与“188”。

三、阅读程序写结果(共 4 题,每题 8 分,共计 32 分) 1、

#include<cstdio> char st[100]; int main() {

scanf("%s\ st);

for (int i = 0; st[i]; ++i) { if ('A' <= st[i] && st[i]<= 'Z') st[i] += 1; }

printf(\\n\, st); return 0;

输入:QuanGuoLianSai 输出:RuanHuoMianTai 2、

#include<cstdio> int main() { int x;

scanf(\x); int res = 0;

for (int i = 0; i < x; ++i) { if (i * i % x == 1) { ++res;

} }

printf(\", res); return 0;

}

输入:15 输出:4 3、

#include

int findans(int n, int m) { if (n == 0) return m;

if (m == 0) return n % 3;

return findans(n - 1, m) - findans(n, m - 1)- 1); }

int main(){

cin >> n >> m;

cout << findans(n, m) << endl; return 0;

}

输入:5 6 输出:8 4、

#include<cstdio> int n, d[100]; bool v[100]; int main() {

scanf(\ &n);

for (int i = 0; i < n; ++i) { scanf(\

ndans(n- 1, m +fi

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 输出:6

四、完善程序(共 2 题,每题 14 分,共计 28 分)

1、 (最大公约数之与)下列程序想要求解整数??得所有约数两两之间最大公约数得与对10007求余后得值,试补全程序。(第一空 2 分,其余 3 分)

举例来说,4得所有约数就是1,2,4。1与2得最大公约数为1;2与4得最大公约数为2;1与4得最大公约数为1。于就是答案为1 + 2 + 1 = 4。

要求 getDivisor 函数得复杂度为0(√n),gcd 函数得复杂度为O(log max(a, b))。

#include

using namespacestd;

const int N =110000, P = 10007; int n;

int a[N], len; int ans;

void getDivisor(){ len = 0;

for(int i=1; i * i <=n;++i) if (n % i == 0) { a[++len] = i;

if( n / i !=i)a[++len]=n/i; }

}

int gcd(int a,int b) { if (b == 0) { return a;

}

return gcd(b, a % b); }

int main() {

noip2018普及组初赛试题+答案

第24届全国青少年信息学奥林匹克联赛初赛普及组C++语言试题竞赛时间:2018年10月13日14:30~16:30选手注意:1、试题纸共有7页,答题纸共有2页,满分100分。请在答题纸上作答,写在试题纸上得一律无效。2、不得使用任何电子设备(如计算器、手
推荐度:
点击下载文档文档为doc格式
647jy2bw1f9pugm7qnnb9acj39qq6000ele
领取福利

微信扫码领取福利

微信扫码分享