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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(NOIP第十七届初赛C++普及组试题与答案Word精排版.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

NOIP第十七届初赛C++普及组试题与答案Word精排版.docx

1、NOIP第十七届初赛C+普及组试题与答案Word精排版第十七届全国青少年信息学奥林匹克联赛初赛试题( 普及组 C+ 语言 两小时完成 ) 全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效 一、单项选择题(共 20 题,每题 1.5 分,共计 30 分。每题有且仅有一个正确选项。)1、在二进制下,1101001 + ( ) = 1110110。A、1011 B、1101 C、1010 D、11112、字符“0”的 ASCII 码为 48,则字符“9”的 ASCII 码为( )。A、39 B、57 C、120 D、视具体的计算机而定3、一片容量为 8GB 的 SD 卡能存储大约( )张大小为

2、2MB 的数码照片。A、1600 B、2000 C、4000 D、160004、摩尔定律(Moores law)是由英特尔创始人之一戈登摩尔(Gordon Moore)提出来的。根据摩尔定律,在过去几十年以及在可预测的未来几年,单块集成电路的集成度大约每( )个月翻一番。A、1 B、6 C、18 D、365、无向完全图是图中每对顶点之间都恰有一条边的简单图。已知无向完全图 G 有 7 个顶点,则它共有( )条边。A、7 B、21 C、42 D、496、寄存器是( )的重要组成部分。A、硬盘 B、高速缓存 C、内存 D、中央处理器(CPU)7、如果根结点的深度记为 1,则一棵恰有 2011 个叶

3、结点的二叉树的深度最少是( )。A、10 B、11 C、12 D、138、体育课的铃声响了,同学们都陆续地奔向操场,按老师的要求从高到矮站成一排。每个同学按顺序来到操场时,都从排尾走向排头,找到第一个比自己高的同学,并站在他的后面。这种站队的方法类似于( )算法。A、快速排序 B、插入排序 C、冒泡排序 D、归并排序9、一个正整数在二进制下有 100 位,则它在十六进制下有( )位。A、7 B、13 C、25 D、不能确定10、有人认为,在个人电脑送修前,将文件放入回收站中就是已经将其删除了。这种想法是( )。A、正确的,将文件放入回收站意味着彻底删除、无法恢复B、不正确的,只有将回收站清空后

4、,才意味着彻底删除、无法恢复C、不正确的,即使将回收站清空,文件只是被标记为删除,仍可能通过恢复软件找回D、不正确的,只要在硬盘上出现过的文件,永远不可能被彻底删除11、广度优先搜索时,需要用到的数据结构是( )。A、链表 B、队列 C、栈 D、散列表12、在使用高级语言编写程序时,一般提到的“空间复杂度”中的“空间”是指( )。A、程序运行时理论上所占的内存空间B、程序运行时理论上所占的数组空间C、程序运行时理论上所占的硬盘空间D、程序源文件理论上所占的硬盘空间13、在含有 n 个元素的双向链表中查询是否存在关键字为 k 的元素,最坏情况下运行的时间复杂度是( )。A、O(1) B、O(lo

5、g n) C、O(n) D、O(n log n)14、生物特征识别,是利用人体本身的生物特征进行身份认证的一种技术。目前,指纹识别、虹膜识别、人脸识别等技术已广泛应用于政府、银行、安全防卫等领域。以下不属于生物特征识别技术及其应用的是( )。A、指静脉验证 B、步态验证 C、ATM 机密码验证 D、声音验证15、现有一段文言文,要通过二进制哈夫曼编码进行压缩。简单起见,假设这段文言文只由 4 个汉字“之”、“乎”、“者”、“也”组成,它们出现的次数分别为 700、600、300、 200。那么,“也”字的编码长度是( )。A、1 B、2 C、3 D、416、关于汇编语言,下列说法错误的是( )

6、。A、是一种与具体硬件相关的程序设计语言B、在编写复杂程序时,相对于高级语言而言代码量较大,且不易调试C、可以直接访问寄存器、内存单元、以及 I/O 端口D、随着高级语言的诞生,如今已完全被淘汰,不再使用17、( )是一种选优搜索法,按选优条件向前搜索,以达到目标。当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择。A、回溯法 B、枚举法 C、动态规划 D、贪心法18、1956 年( )授予肖克利(William Shockley)、巴丁(John Bardeen)和布拉顿(Walter Brattain),以表彰他们对半导体的研究和晶体管效应的发现。A、诺贝尔物理学奖B、约

7、翰冯诺依曼奖C、图灵奖D、高德纳奖(Donald E. Knuth Prize)19、对一个有向图而言,如果每个节点都存在到达其他任何节点的路径,那么就称它是强连通的。例如,右图就是一个强连通图。事实上,在删掉边( )后,它依然是强连通的。A、a B、b C、c D、d20、从 ENIAC 到当前最先进的计算机,冯诺依曼体系结构始终占有重要的地位。冯诺依曼体系结构的核心内容是( )。A、采用开关电路 B、采用半导体器件C、采用存储程序和程序控制原理 D、采用键盘输入二、问题求解(共 2 题,每题 5 分,共计 10 分)1、每份考卷都有一个 8 位二进制序列号。当且仅当一个序列号含有偶数个 1

8、 时,它才是有效的。例如,00000000、01010011 都是有效的序列号,而 11111110 不是。那么,有效的序列号共有_个。2、定义字符串的基本操作为:删除一个字符、插入一个字符和将一个字符修改成另一个字符这三种操作。将字符串 A 变成字符串 B 的最少操作步数,称为字符串 A 到字符串 B 的编辑距离。字符串ABCDEFG到字符串BADECG的编辑距离为_。三、阅读程序写结果(共 4 题,每题 8 分,共计 32 分)1、#include using namespace std;int main() int i, n, m, ans; cin n m; i = n; ans =

9、0; while(i = m) ans += i; i+; cout ans endl; return 0;输入:10 20输出:_2、#include #include using namespace std;int main() string map = 22233344455566677778889999; string tel; int i; cin tel; for(i = 0; i = 0) & (teli = 9) cout = A) & (teli = Z) cout mapteli - A; cout endl; return 0;输入:CCF-NOIP-2011输出:_3、

10、#include #include using namespace std;const int SIZE = 100;int main() int n, i, sum, x, aSIZE; cin n; memset(a, 0, sizeof(a); for(i = 1; i x; ax+; i = 0; sum = 0; while(sum (n / 2 + 1) i+; sum += ai; cout i endl; return 0;输入:114 5 6 6 4 3 3 2 3 2 1输出:_4、#include using namespace std;int solve(int n,

11、int m) int i, sum; if (m = 1) return 1; sum = 0; for (i = 1; i nm; coutsolve(n, m)endl; return 0;输入:7 4输出:_四、完善程序(前 11 空,每空 2 分,后 2 空,每空 3 分,共计 28 分)1、(子矩阵)输入一个n1*m1的矩阵a,和n2*m2的矩阵b,问a中是否存在子矩阵和b相等。若存在,输出所有子矩阵左上角的坐标;若不存在输出“There is no answer”。#include using namespace std;const int SIZE = 50;int n1, m1

12、, n2, m2, aSIZESIZE, bSIZESIZE;int main() int i, j, k1, k2; bool good, haveAns; cin n1 m1; for(i = 1; i = n1; i+) for(j = 1; j aij; cin n2 m2; for(i = 1; i = n2; i+) for(j = 1; j = m2; j+) _; haveAns = false; for(i = 1; i = n1 - n2 + 1; i+) for(j = 1; j = _; j+) _; for(k1 = 1; k1 = n2; k1+) for(k2 =

13、 1; k2 = _; k2+) if(ai + k1 - 1j + k2 - 1 != bk1k2) good = false; if(good) cout i j endl; _; if(!haveAns) cout There is no answer endl; return 0;2、(大整数开方)输入一个正整数n(1n10100),试用二分法计算它的平方根的整数部分。#include #include using namespace std;const int SIZE = 200;struct hugeint int len, numSIZE;/其中 len 表示大整数的位数;nu

14、m1表示个位、num2表示十位,以此类推hugeint times(hugeint a, hugeint b)/计算大整数 a 和 b 的乘积 int i, j; hugeint ans; memset(ans.num, 0, sizeof(ans.num); for(i = 1; i = a.len; i+) for(j = 1; j = b.len; j+) _ += a.numi * b.numj; for(i = 1; i 0) ans.len = a.len + b.len; else ans.len = a.len + b.len - 1; return ans;hugeint a

15、dd(hugeint a, hugeint b)/计算大整数 a 和 b 的和 int i; hugeint ans; memset(ans.num, 0, sizeof(ans.num); if(a.len b.len) ans.len = a.len; else ans.len = b.len; for(i = 1; i 0) ans.len+; return ans;hugeint average(hugeint a, hugeint b)/计算大整数 a 和 b 的平均数的整数部分 int i; hugeint ans; ans = add(a, b); for(i = ans.len

16、; i = 2; i-) ans.numi - 1 += (_) * 10; ans.numi /= 2; ans.num1 /= 2; if(ans.numans.len = 0) ans.len-; return ans;hugeint plustwo(hugeint a)/计算大整数 a 加 2 后的结果 int i; hugeint ans; ans = a; ans.num1 += 2; i = 1; while(i = 10) ans.numi + 1 += ans.numi / 10; ans.numi %= 10; i+; if(ans.numans.len + 1 0) _;

17、 return ans;bool over(hugeint a, hugeint b)/若大整数 ab 则返回 true,否则返回 false int i; if(_) return false; if(a.len b.len) return true; for(i = a.len; i = 1; i-) if(a.numi b.numi) return true; return false;int main() string s; int i; hugeint target, left, middle, right; cin s; memset(target.num, 0, sizeof(t

18、arget.num); target.len = s.length(); for(i = 1; i = 1; i-) cout left.numi; cout bij (或scanf(%d, &bij或scanf(%d, bi + j))m1 - m2 + 1good = true (或 good = 1)m2haveAns = true(或haveAns = 1)2ans.numi + j - 1ans.numi %= 10(或ans.numi = ans.numi % 10)a.numi + b.numians.numi % 2(或ans.numi & 1)ans.len+(或 +ans.len或ans.len += 1或ans.len = ans.len + 1)a.lenb.len 0(或48) times(middle, middle), target

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1