1、NOIP2015第二十一届全国青少年信息学奥林匹克联赛初赛 普及组 C+语言试题 竞赛时间: 2015年 10 月 11 日 14:3016:30 选手注意: 1、试题纸共有5 页,答题纸共有2 页,满分100 分。请在答题纸上作答,写在试题纸上的一律无效。 2、不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料。 一、单项选择题(共2 0题,每题 1 .5分,共计 3 0分;每题有且仅有一个正确选项) 1. 1MB 等于()。 A. 1000 字节B. 1024 字节C.1000 X 1000 字节D. 1024 X 1024 字节 2. 在PC 机中, PENTIUM (
2、 奔腾)、酷睿、赛扬等是指()。 A.生产厂家名称B.硬盘的型号C. CPU 的型号D. 显示器的型号 3. 操作系统的作用是()。 A.把源程序译成目标程序B. 便于进行数据管理 C. 控制和管理系统资源D. 实现硬件之间的连接 4. 在计算机内部用来传送、存贮、加工处理的数据或指令都是以()形式进行的。 A. 二进制码B.八进制码C. 十进制码D. 智能拼音码 5. 下列说法正确的是()。 A. CPU 的主要任务是执行数据运算和程序控制 B. 存储器具有记忆能力,其中信息任何时候都不会丢失 C. 两个显示器屏幕尺寸相同,则它们的分辨率必定相同 D. 个人用户只能使用Wifi 的方式连接到
3、 Internet 6. 二进制数00100100 和 00010100 的和是()。 A. 00101000 B. 01000001 C. 01000100 D. 00111000 7. 与二进制小数 0.1 相等的十六进制数是() A. 0.8 B. 0.4 C. 0.2 D. 0.1 8. 所谓的 “ 中断 ” 是指()。 A. 操作系统随意停止一个程序的运行 B. 当出现需要时,CPU 暂时停止当前程序的执行转而执行处理新情况的过程 C. 因停机而停止一个程序的运行 D. 电脑死机 9. 计算机病毐是()。 A. 通过计算机传播的危害人体健康的一种病毒 B. 人为制造的能够侵入计算机系
4、统并给计算机带来故障的程序或指令集合 C. 一种由于计算机元器件老化而产生的对生态环境有害的物质 D. 利用计算机的海量高速运算能力而研制出来的用于疾病预防的新型病毒 10. FTP 可以用于()。 A.远程传输文件B.发送电子邮件C. 浏览网页D. 网上聊天 11. 下面哪种软件不属于即时通信软件()。 A. QQ B. MSN C. 微信D. P2P 12. 6 个顶点的连通图的最小生成树,其边数为()。 A. 6 B. 5 C. 7 D. 4 13. 链表不具备的特点是()。 A.可随机访问任何一个元素B.插入、删除操作不需要移动元素 C. 无需事先估计存储空间大小D. 所需存储空间与存
5、储元素个数成正比 14. 线性表若采用链表存储结构,要求内存中可用存储单元地址() A.必须连续B. 部分地址必须连续C. 一定不连续D. 连续不连续均可 15. 今有一空栈 S,对下列待进栈的数据元素序列a,b,c,d,e,f 依次进行进栈,进栈,出栈,进栈,进栈, 出栈的操作,则此操作完成后,栈S的栈顶元素为()。 A. f B. c C. a D. b 16. 前序遍历序列与中序遍历序列相同的二叉树为()。 A. 根结点无左子树的二叉树 B. 根结点无右子树的二叉树 C. 只有根结点的二叉树或非叶子结点只有左子树的二叉树 D. 只有根结点的二叉树或非叶子结点只有右子树的二叉树 17. 如
6、果根的高度为1,具有 61 个结点的完全二叉树的高度为()。 A. 5 B. 6 C. 7 D. 8 18. 下列选项中不属于视频文件格式的是()。 A. TXT B. AVI C. MOV D. RMVB 19. 设某算法的计算时间表示为递推关系式T(n)=T(n-1)+n(n 为正整数)及 T(0) = 1, 则 该算法的时间 复杂度为()。 A. O(logn) B. O(n log n) C. O(n) D. O(n 2 ) 20. 在 NOI 系列赛事中参赛选手必须使用由承办单位统一提供的设备。下列物品中不允许选手自带的是 ()。 A.鼠标B. 笔C. 身份证D. 准考证 二、问题求
7、解(共2题,每题 5分,共计 1 0分;每题全部答对得5 分,没有部分分) 1. 重新排列 1234 使得每一个数字都不在原来的位置上,一共9种排法。 2. 棵结点数为 2015 的二叉树最多 1008 个叶子结点。 三、阅读程序写结果(共4 题,每题 8分,共计 3 2 分 ) 1. #include using namespace std; int main() int a,b,c; a= 1; b= 2; c= 3; if (a c) if(ac) cout a ; else cout b ; cout c endl; return 0; 输出: 3 2. #include using
8、namespace std; struct point int x; int y; ; int main() struct EX inta; int b; point c; e; e.a= 1; e.b= 2; e.c.x = e.a + e.b; e.c.y = e.a * e.b; cout e.c.x , e.c.y endl; return 0; 输出: 3,2 3. #include #include using namespace std; int main() string str; int i; int count; count = 0; getline(cin,str); f
9、or (i = 0; i = a cout It has count lowercases endl; return 0; 输入: NOI2016 will be held in Mian Yang. 输出: It has 18 lowercases 4. #include using namespace std; void fun(char *a, char *b) a = b; (*a)+; int main() char cl, c2, *p1, *p2; cl = A; c2 = a; p1 = p2 = fun(p1, p2); cout cl c2 endl; return 0;
10、输出: Ab 四、完善程序(共2题,每题 1 4分,共计 28分) 1.( 打印月历) 输入月份 m (1 m 12) ,按一定格式打印 2015 年第 m月的月历。(第三、四空 2.5 分, 其余 3 分) 例如, 2015 年1月的月历打印效果如下(第一列为周日): SMTWTFS 1 2 3 4 5 6 7 8 9 1 0 11 12 13 14 15 16 1 7 18 19 20 21 22 23 2 4 25 26 27 28 29 30 3 1 #include using namespace std; const int dayNum= -l, 31, 28, 31, 30,
11、31, 30, 31, 31, 30, 31, 30, 31; int mj offset, i; int main() cin m; cout StMtTtWtTtFtS endl; / t为 TAB 制表符 offset=4; for (i = 1; i m; i+) offset = (offset+dayNumi)%7; for (i = 0; i offset; i+) cout t; for (i = 1; i = dayNumm;i+) cout i ; if (i = dayNumm |(offset+i)%7= 0) cout endl; else cout t; retur
12、n 0; 2. (中位数) 给定 n (n 为奇数且小于 1000) 个整数,整数的范围在 0? m (0 m 2 31 ) 之间,请使用 二分 法求这 n 个整数的中位数。所谓中位数,是指将这n 个数排序之后,排在正中间的数。 (第五空 2 分,其余 3 分) #include using namespace std; const int MAXN = 1000; int n, i, lbound, rbound, mid, m, count; int xMAXN; int main() cin n m; for (i = 0; i xi; lbound=0; rbound=m; while (lboundrbound) mid = (lbound + rbound )/2; count=0; for (i = 0; i n; i+) if (mid n / 2) lbound = mid + 1; else rbound=mid ; cout rbound endl; return 0;