好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

noip2017普及组初赛试题+答案.doc

8页
  • 卖家[上传人]:简****9
  • 文档编号:106391705
  • 上传时间:2019-10-15
  • 文档格式:DOC
  • 文档大小:32KB
  • / 8 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 第23届全国青少年信息学奥林匹克联赛初赛普及组C++语言试题竞赛时间:2017年 10 月 14 日 14:30~16:30  选手注意:1、试题纸共有 8 页,答题纸共有 2 页,满分 100 分请在答题纸上作答,写在试题纸上的一律无效2、不得使用任何电子设备(如计算器、、电子词典等)或查阅任何书籍资料 一、单项选择题(共20题,每题1.5分,共计30分;每题有且仅有一个正确选项)1.在 8 位二进制补码中,10101011 表示的数是十进制下的( )A. 43  B. -85  C. -43  D. -84解析:补码就是符号位不变,其他各位逐位求反再加一结论:-85 答案B 2.计算机存储数据的基本单位是( )A. bit  B. Byte  C. GB  D. KB 3.下列协议中与电子邮件无关的是( )A. POP3  B. SMTP  C. WTO  D. IMAP  4.分辨率为 800x600、16 位色的位图,存储图像信息所需的空间为( )A.937.5KB  B. 4218.75KB  C.4320KB   D. 2880KB解析:800*600*16/8=A 5.计算机应用的最早领域是( )。

      A. 数值计算  B. 人工智能  C. 机器人   D. 过程控制 6.下列不属于面向对象程序设计语言的是( )A. C   B. C++   C. Java   D. C#解析:新出的语言都是面向对象的,OOP的,旧的不是,答案A 7.NOI 的中文意思是( )A. 中国信息学联赛B. 全国青少年信息学奥林匹克竞赛C. 中国青少年信息学奥林匹克竞赛D. 中国计算机协会解析:全国青少年信息学奥林匹克竞赛答案:B 8. 2017年10月1日是星期日,1999年10月1日是( )A. 星期三  B. 星期日  C. 星期五  D. 星期二解析:什么年是闰年?你首先想到的可能是能被4整除的年就是闰年实际上这是不正确的,公历里闰年的定义是这种:能被400整除的,或者不能被100整除而能被4整除的年就是闰年,换一句话说,非世纪年份中能被4整除的,和世纪年份中能被400整除的是闰年依照这个定义,公元2000年是闰年,而公元1900年是平年 可是假设再问你,公元100年是不是闰年?这个是世纪年份,而不能被400整除,所以这个年份是平年,假设你这样想,那你就错了     我们如今用的公历,是格里高里历,是公元1582年以后通行的,之前记录日期用的是儒略历,和如今用的公历不同,儒略历中闰年的定义非常easy的,能被4整除的是闰年,不能被4整除的是平年。

      所以,公元100年还处于儒略历时期,所以历史上该年份是闰年      所以闰年的完整定义是:公元1582年前,能被4整除的年份;公元1582年后,世纪年中能被400整除的,和非世纪年中能被4整除的年份      总的来说,闰年的定义是比較复杂,远不是一般人以为的那么简单这不仅是一个数学问题,还是一个历史问题2000是闰年,2004,2008,2012,2016年应该者是闰年,共5个,即5个366天,13个非闰年,共13*365+5*366=4745+1830=6575天,6575%7=939余2,因1999年是向前找,所以是星期五,选C 9.甲、乙、丙三位同学选修课程,从 4 门课程中,甲选修 2 门,乙、丙各选修3 门,则不同的选修方案共有( )种A. 36   B. 48   C. 96   D. 192解析:甲有C2/4,即6种,乙、丙每人4种,共6*4*4=96种,答案C 10. 设 G 是有 n 个结点、m 条边(n ≤m)的连通图,必须删去 G 的( )条边,才能使得 G 变成一棵树A.m–n+1    B. m-n   C. m+n+1   D.n–m+1 11. 对于给定的序列{ak},我们把 (i, j) 称为逆序对当且仅当 i < j 且 ai > aj。

      那么序列1, 7, 2, 3, 5, 4的逆序对数为( )个A. 4   B. 5   C. 6   D. 7 12. 表达式a * (b + c) * d的后缀形式是( )A. abcd*+*    B. abc+*d*C. a*bc+*d    D. b+c*a*d解析:B这个这样分析((a*(b+c))-d) => (a*(b+c)),d,- => a,(b+c),*,d,- => a,b,c,+,*,d,- 13. 向一个栈顶指针为hs的链式栈中插入一个指针s指向的结点时,应执行( )A. hs->next=s;B.s->next=hs;hs=s;C.s->next=hs->next;hs->next=s;D.s->next=hs;hs=hs->next; 14. 若串 S = “copyright”,其子串的个数是( )A. 72   B. 45   C. 46   D. 36 15. 十进制小数 13.375 对应的二进制数是( )A.1101.011  B. 1011.011  C.1101.101  D. 1010.01 16. 对于入栈顺序为 a, b, c, d, e, f, g 的序列,下列( )不可能是合法的出栈序列。

      A. a,b,c,d,e,f,g   B. a,d,c,b,e,g,f C. a,d,b,c,g,f,e   D.g,f,e,d,c,b,a 17. 设 A 和 B 是两个长为 n 的有序数组,现在需要将 A 和 B 合并成一个排好序的数组,任何以元素比较作为基本运算的归并算法在最坏情况下至少要做 ( )次比较A. n2   B. nlogn   C. 2n  D. 2n-1 18. 从( )年开始,NOIP 竞赛将不再支持 Pascal 语言A. 2020  B. 2021  C. 2022  D. 2023 19. 一家四口人,至少两个人生日属于同一月份的概率是( )(假定每个人生日属于每个月份的概率相同且不同人之间相互独立)A. 1/12  B. 1/144   C. 41/96  D. 3/4 20. 以下和计算机领域密切相关的奖项是( )A. 奥斯卡奖   B. 图灵奖 C. 诺贝尔奖   D. 普利策奖 二、问题求解(共2题,每题5分,共计10分)1. 一个人站在坐标(0, 0)处,面朝 x 轴正方向第一轮,他向前走 1 单位距离,然后右转;第二轮,他向前走 2 单位距离,然后右转;第三轮,他向前走 3 单位距离,然后右转......他一直这么走下去。

      请问第 2017 轮后,他的坐标是: (1009,1008)请在答题纸上用逗号隔开两空答案)2. 如图所示,共有 13 个格子对任何一个格子进行一次操作,会使得它自己以及与它上下左右相邻的格子中的数字改变(由 1 变0,或由 0 变 1)现在要使得所有的格子中的数字都变为 0,至少需要3次操作三、阅读程序写结果(共4题,每题8分,共计32分)1.#includeusing namespacestd;int main() {int t[256];string s;int i;cin >> s;for (i = 0; i < 256; i++)t[i] = 0;for (i = 0; i < s.length(); i++)t[s[i]]++;for (i = 0; i < s.length(); i++)if (t[s[i]] == 1) {cout << s[i] << endl;return 0;}cout << "no" << endl;return 0;}输入: xyzxyw输出:____z____ 2.#includeusing namespacestd;int g(int m, intn, int x) {int ans = 0;int i;if (n == 1)return 1;for (i = x; i <= m / n; i++)ans += g(m - i, n - 1, i);return ans;}int main() {int t, m, n;cin >> m >> n;cout << g(m, n, 0) << endl;return 0;}输入: 7 3输出: _____8____ 3.#includeusing namespacestd;int main() {string ch;int a[200];int b[200];int n, i, t, res;cin >> ch;n = ch.length();for (i = 0; i < 200; i++)b[i] = 0;for (i = 1; i <= n; i++) {a[i] = ch[i - 1] - '0';b[i] = b[i - 1] + a[i];}res = b[n];t = 0;for (i = n; i > 0; i--) {if (a[i] == 0)t++;if (b[i - 1] + t < res)res = b[i - 1] + t;}cout << res << endl;return 0;}输入: 1001101011001101101011110001输出: ____11_______ 4.#includeusing namespacestd;int main() {int n, m;cin >> n >> m;int x = 1;int y = 1;int dx = 1;int dy = 1;int cnt = 0;while (cnt != 2) {cnt = 0;x = x + dx;y = y + dy;if (x == 1 || x == n) {++cnt;dx = -dx;}if (y == 1 || y == m) {++cnt;dy = -dy;}}cout << x << " " << y<< endl;return 0;}输入1: 4 3输出1: __1  3_____  (3 分)输入2: 2017 1014输出2: _2017   1______ (5 分) 四、完善程序(共2题,每题14分,共计28分)1. (快速幂)请完善下面的程序,该程序使用分治法求 xp mod m 的值。

      第一空2分,其余3分)输入:三个不超过 10000 的正整数 x,p,m输出:xp mod m的值提示:若 p 为偶数,xp=(x2)p/2;若 p 为奇数,xp=x*(x2)(p-1)/2includeusing namespacestd;int x, p, m, i,result;int main() {cin >> x >> p >> m;result = 1 ;while (p>0或p!=0或p) {if (p % 2 == 1)result= result * x % m;p。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.