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。
第一空,如左图所示,61 + 34 + C - 2 * 10 = 100得C = 25 第二空,如右图所示,61 + 34 + 29 - (x + y + z) - 2 * 10 = 100得x + y + z = 4
(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 |