前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2019年海淀区青少年程序设计挑战活动笔试题详细答案

2019年海淀区青少年程序设计挑战活动笔试题详细答案

作者头像
海天一树
发布2019-05-05 16:08:01
5110
发布2019-05-05 16:08:01
举报
文章被收录于专栏:海天一树海天一树

一、单项选择题

1 B 分析:这题NOIP也考过类似的题多次。解释性语言如Python, Perl, Matlab,运行速度较慢。

2 A 分析:FTP的全称为File Transfer Protocol,文件传输协议。

3 A

4 D 分析:4和6分别代表第4代和第6代。目前用的基本上都是IPv4,可表示为X:X:X:X,比如192.168.1.101,由四个字节组成,32位。IPv6由16个字节组成,128位,可表示为X:X:X:X:X:X:X:X,当然IPV6还有另两种表示方法。

5 D 分析:格式化就是把包括有用的数据和病毒数据在内的所有数据都清除掉。

6 C

7 C 分析:十六进制的10等于十进制的16,十六进制的0.C等于C/10 = 十进制的12/16=0.75

8 D 分析:int d=c=b中,c没有定义,不能直接使用。可改成 int c; int d = c = b;

9 B 分析:1MB = 2^10kB = 2^20B = 2^23bit

10 C 分析:2e-1是科学计数法,代表2*10^(-1) = 0.2

11 B 分析:本题考察C++函数重载。函数重载必须符合下列两个条件的至少一个:(1)函数的参数个数不同。(2)函数的参数类型不同或者参数类型顺序不同,

12 B

13 C 分析:这题NOIP考过多次。C中,若要求值为true,则根据后两个条件要求P=true, Q = true, 这样第一个条件(!P || !Q) = (false || false) = false,导致最终值仍为false。所以C的结果恒为false。

14 B 分析:0x7f + 0x10d = 0x18c,化为十进制则为16^2 + 8 * 16 + 12 = 396

15 C 分析:new关键字是用来开辟内存的,需要配合指针使用。

16 D 分析:快速排序不稳定,并且中间会多次比较。

17 A 分析:这里列出了四种交换两个数的方法。并且使用了引用。但这题的考察重点是for中的n+1-i >= i,注意这时有个等于号。会出现中间那个数与自己交换的情况。比如{1, 2, 3, 4, 5},需要3次交换:1和5换,2和4换,3和3换。问题就出在3和3换。3和3是同一个元素。对于B答案。当x和y一样时,x^=y会导致x = 0,这样y = x = 0。所以用B的方法交换,会得到{5, 4, 0, 2, 1}。对于C答案,当x和y一样时,x+=y得到x变为原来的2倍,此时y仍然等于x,y = x - y = 0,x = x - y = 0 - 0 = 0,所以交换完后得到{5,4,0,2,1}。对于D答案,当x和y一样时,x *= y,得到的x为原来的平方,此时y仍然等于x,y= x / y = 1,x = x / y = 1 / 1 = 1,所以交换完后得到{5,4,1,2,1}。

18 D 分析:++a % b = 6 % 2 = 0。

19 C 分析:浮点数和整数之间不能求余数。

20 B 分析:使用memset需要包含头文件memory.h或string.h或cstring,而不是包含string。

二、填空题

  1. 答案:-3 分析:浮点数无论是正还是负,化为整数都是直接把小数去掉。不用考虑四舍五入。
  2. 答案:40 每个整型元素占4个字节,10个整型元素占40个字节。
  3. 答案:25 考察字符在ASCII码表中排序方式。小写字母和大写字母都是按字典序排列的。z和a相差了25个数,所以答案为25。或者z的ASCII码值为122,a的ASCII码值为97,122-97=25。
  4. 答案:1111 分析:5 * 3 = 15,化成二进制即为1111。
  5. 答案:397 分析:除了最高位,每位十六进制化成二进制为4位,十六进制的最高位为1时,化成二进制也是1,这种情况下二进制总共有1 + 99 * 4 = 397位。
  6. 答案:1/3,6 分析:(1)给这五对夫妻从1到10编号。假如1号和2号是夫妻,3号和4号是夫妻,5号和6号是夫妻,7号和8号是夫妻,9号和10号是夫妻。从10个人中选3个人有C(10, 3) = 120种选法。选一对夫妻的方法有5种,对于这5种中的每种情况,剩余一人可从剩下的8个人里面选,所以选三人包含一对夫妻的方法有5 * 8 = 40种。40 / 120 = 1 / 3。(2)选五个人可能出现没有选中夫妻的情况,再选一个人的话,至少会有一对是夫妻。
  7. 答案:bc 分析:当有三个连续的0或1时,就可以被抓出。b答案可以从右往左刷:0000000000 --> 0000001110 --> 0000000110 --> 0001110110 --> 0000010110 --> 0111010110 c答案也可以从右往左刷:0000000000 --> 0000001110 --> 0000000010 --> 0000111010 --> 0000001010 --> 0011101010 --> 0001101010
  8. 答案:25,4 分析:

第一空,如左图所示,61 + 34 + C - 2 * 10 = 100得C = 25 第二空,如右图所示,61 + 34 + 29 - (x + y + z) - 2 * 10 = 100得x + y + z = 4

三、阅读程序题

  1. 答案:b!=c 分析:这题是考察“==”与“=”的区别。判断语句里正确的写法是“==”,这个程序故意写成了“=”,变成了赋值。if(a = b)是把b的值赋给a,再判断a是否为真。if(b = c)同理。
  2. (a)答案:1 2 分析:两个if决定了先输出b,再输出空格。最后再输出a。

(b)答案:w 分析:第二个for求的是每个字符出现的次数。a[‘x’] = 2, a[‘y’] = 2, a[‘z’] = 1, a[‘w’] = 1。第三个for,是从字符串的最后一个字符倒着往前看,碰到第一个出现次数为1的字符,就打印出来。所以是w。

(c)答案:15 分析:这题是求1~100之间,有多少个数对7求余数等于1。符合的数为1,8,15,……,99。根据等差数列求和公式99 = 1 + (n - 1) * 7 得n = 15。

(d)答案:35 分析:这题参考了2018年NOIP普及第二大题的第3题。做法是一样的。

m = -1

m = 0

m = 1

m = 2

m = 3

m = 4

n = 0

0

1

0

0

0

0

n = 1

0

1

1

0

0

0

n = 2

0

1

2

1

0

0

n = 3

0

1

3

3

1

0

n = 4

0

1

4

6

4

1

n = 5

0

1

5

10

10

5

n = 6

0

1

6

15

20

15

n = 7

0

1

7

21

35

35

  1. 答案:(1)0 (2)b - a 分析:这道题是用while循环求斐波那契数列,除此之外,还可以用for或递归来求。需要注意的是第二空,用了while,a = b - a,这是让a向右挪动一个位置。
  2. 答案:(1)a[k] (2)k+1, R (3)L, k - 1 分析:这道题就是考二分法。实际上题目直接说明了是二分法。
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-04-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 信息学竞赛NOIP 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、单项选择题
  • 二、填空题
  • 三、阅读程序题
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档