1.将 8 8 8 个名额分给 5 5 5 个不同的班级,允许有的班级没有名额,有几种不同的分配方案( )
A. 60
B. 120
C. 495
D. 792
答案:C
解析: 等价于 5 5 5 种物品,每种无限多个,现在从中取 8 8 8 个物品,求有多少种方案.答案等于 C 5 + 8 − 1 8 = C 12 4 = 495 C_{5+8-1}^8=C_{12}^4=495 C5+8−18=C124=495
2.同时查找 2 n 2n 2n 个数中的最大值和最小值,最少比较次数为()
A. 3(n-2)/2
B. 4n-2
C. 3n-2
D. 2n-2
答案:C
解析: 我也不知道
前两个数比较,大的为最大值,小的为最小值,用掉一次比较。后面 2 × ( n − 1 ) 2\times(n-1) 2×(n−1) 个数,每两个比较,大的同最大值比较,小的同最小值比较, 3 × ( n − 1 ) 3\times(n-1) 3×(n−1) 次比较,共 3 × ( n − 1 ) + 1 = 3 n − 2 3\times(n - 1) + 1= 3n - 2 3×(n−1)+1=3n−2 次比较
3.数列 a n {a_n} an 是等差数列,首项 a 1 > 0 , a 2020 + a 2021 > 0 , a 2020 × a 2021 < 0 a_1>0,a_{2020}+a_{2021}>0,a_{2020}×a_{2021}<0 a1>0,a2020+a2021>0,a2020×a2021<0 ,则使前 n n n 项和 s n > 0 s_n>0 sn>0 成立的最大项数 n n n 是()
A. 2020
B. 4040
C. 4041
D. 4042
答案:B
解析: 由等差序列性质可知 , 如果 x + y = 4041 x + y = 4041 x+y=4041 , 则 a x + a y = a 2020 + a 2021 > 0 a_x+a_y=a_{2020}+a_{2021}>0 ax+ay=a2020+a2021>0,所以 s 4040 > 0 s_{4040}>0 s4040>0,显然 a 2021 < 0 a_{2021}<0 a2021<0 , 所以若 x + y = 4042 x + y = 4042 x+y=4042 , a x + a y = a 2021 × 2 < 0 a_x+a_y=a_{2021\times2}<0 ax+ay=a2021×2<0,所以 s 4041 < 0 s4041<0 s4041<0。
4.给定长为 n ( n ≤ 1000 ) n(n\le1000) n(n≤1000) 的字符串,每次可以将连续一段回文序列消去,消去后左右两边会接到一起, 求最少消去几次能消完整个序列(单个字符也算回文字符串)。设 f ( i , j ) f(i,j) f(i,j) 表示消去闭区间 [ i , j ] [i,j] [i,j] 内字符串所需要的最小次数,那么当 1 ≤ i ≤ j ≤ n 1\le i\le j\le n 1≤i≤j≤n 时,在不考虑回文串的情况下, f ( i , j ) f(i,j) f(i,j) 的动态规划方程中包含:
A. min i ≤ k < j { f ( i , k ) + f ( k + 1 , j ) } \min\limits_{i\le k
B. min i ≤ k < j { f ( i , k ) + f ( k + 1 , j ) } + 1 \min\limits_{i\le k
C. min i ≤ k < j { f ( i , k ) × f ( k + 1 , j ) } \min\limits_{i\le k
D. f ( i , k ) + f ( k + 1 , j ) , i ≤ k < j {f(i,k)+f(k+1,j)},{i\le k
答案:A
解析: 枚举断点 k k k,那么这种方案的操作数显然是 f [ l ] [ k ] + f [ k + 1 ] [ r ] f[l][k]+f[k+1][r] f[l][k]+f[k+1][r]
1.运行一个计算机程序,必须将程序装入( )
A. CPU
B. 硬盘
C. 内存
D. U 盘
答案:B
解析: 代码必须载入内存中才能被执行,CPU 中虽然有缓存空间,但其十分小,不能用于装载代码。
2.以下哪一个 I P IP IP 地址一定指向本机( )
A. 172.0.0.1
B. 192.168.1.1
C. 127.0.0.1
D. 0.0.0.0
答案:C
解析: A 选项是一个没有特殊含义的 IP,B 选项指向局域网络中的某个计算机,不一定是本机,C 选项指向本机,D 选项用于通配,通配所有 IP。
3.对于某算法的时间复杂度,若有:
T ( N ) = 4 T ( N / 2 ) + N 2 l o g 2 N T(N) = 4T(N/2) + N^2 log^2 N T(N)=4T(N/2)+N2log2N
T ( 1 ) = 1 T(1) = 1 T(1)=1
则该算法的时间复杂度为( )
A. O ( N 3 ) O(N^3) O(N3)
B. O ( N 2 l o g N ) O(N^2logN) O(N2logN)
C. O ( N 2 l o g 2 N ) O(N^2log^2N) O(N2log2N)
D. O ( N 2 l o g 3 N ) O(N^2log^3N) O(N2log3N)
答案:D
解析: 假设存在常数 k ≥ 0 k≥0 k≥0 ,使得 f ( n ) = Θ ( n l o g b a l o g k n ) f(n)=Θ(n^{log_ba}log^kn) f(n)=Θ(nlogbalogkn) ,则 T ( n ) = Θ ( n l o g b a l o g k + 1 n ) T(n)=Θ(n^{log_ba}log^{k+1}n) T(n)=Θ(nlogbalogk+1n) ,由此可知答案。
具体参见该博客
4.以下哪个排序算法不是基于比较的( )
A. 堆排序
B. 基数排序
C. 希尔排序
D. 插入排序
答案:B
解析: 可以通过实际原理考虑,基于比较的排序的复杂度不会低于 n l o g n nlogn nlogn,而基数排序是近似线性,所以基数排序不可能是基于比较的。
5.以下哪种行为在 C + + 98 C++98 C++98 标准下不是未定义的( )
A. 未声明初始值的 i n t int int 变量的值
B. 将 i + + i++ i++ 赋值给 i i i
C. 函数调用中不同参数的求职顺序
D. 使用变量作为长度声明数组
答案:D
解析: 使用变量作为数组长度,是一个非良构行为,并不是未定义的。
6.下图的先序遍历是( )
A. ABDEFC
B. DBEFAC
C. DFEBCA
D. ABCDEF
答案:A
解析:
先序遍历首先遍历根结点,然后遍历左子树,最后遍历右子树。
中序遍历首先遍历左子树,然后遍历根结点,最后遍历右子树。
后序遍历首先遍历左子树,然后遍历右子树,最后访问根结点。
7.由四个不同的点构成的简单无向连通图的个数是( )
A. 32
B. 35
C. 38
D. 41
答案:C
解析: 4 4 4 个不同点构成简单无向连通图,最多有 6 6 6 条边,最少有 3 3 3 条边,但并不是所有的任选 3 3 3 条边都可以满足条件,当三个点形成一个三角形而孤立一个点时无法满足条件,这种情况共有 4 4 4 种。
所以答案为 C 6 3 − 4 + C 6 4 + C 6 5 + C 6 6 = 38 C_6^3-4+C_6^4+C_6^5+C_6^6=38 C63−4+C64+C65+C66=38
8. 4 116 4^{116} 4116 除以 113 113 113 的余数是( )
A. 30
B. 16
C. 60
D. 120
答案:A
解析: 可以选择暴力计算,但是过于消耗时间,这里可以使用费马小定理:
如果 p p p 是一个质数,而整数 a a a 不是 p p p 的倍数,则有 a p − 1 ≡ 1 ( m o d p ) a^{p-1}\equiv1\pmod{p} ap−1≡1(modp).
于是只需要求 4 4 m o d 113 4^4\bmod 113 44mod113 ,结果为 30 30 30 。
1. 以下属于系统软件的是:( )
A. C++编译器
B. 腾讯 QQ
C. CAD
D. 游戏软件
答案:A
解析: 因为系统软件系统软件是指控制和协调计算机及外部设备,支持应用软件开发和运行的系统,是无需用户干预的各种程序的集合,包含编译器,所以 C++编译器是系统软件; 腾讯QQ是是腾讯公司推出的一款基于互联网的即时通信软件;CAD全称为管理软件计算机辅助设计,是一种管理软件;游戏软件就是游戏软件。B,C,D三个选项都属于应用软件。
2.深度优先搜索时,如果不使用递归程序,一般需要用到的数据结构是( )
A.链表
B.队列
C.栈
D.散列表
答案:C
解析: 深度优先搜索首先扩展新产生的状态,所以要用栈(先进后出);而广度优先搜索需要用到的数据结构是队列(先进先出)。
3.一棵完全二叉树的结点总数为 41 41 41,其叶结点数为( )。
A.18 个
B.19 个
C.20 个
D.21 个
答案:D
解析: 如图,
第 6 6 6 层有 10 10 10 个叶子节点,第 5 5 5 层有 11 11 11 个叶子节点,所以共 21 21 21 个叶子节点。
引申:可以证明,一个节点总数为 n n n 的完全二叉树,叶子节点数为 n / 2 n/2 n/2 下取整。
4.对以下关键字序列用快速排序法进行从小到大排序,速度最慢的情况是( )
A.{19,23,3,15,7,21,8}
B.{23,21,28,15,19,3,7}
C.{19,7,15,28,23,21,3}
D.{3,7,15,19,21,23,28}
答案:D
解析: 记住一个特点,越有序的数据在快速排序中时间复杂度越高。快速排序在数据随机时时间复杂度 O ( n l o g n ) O(nlogn) O(nlogn),但序列有序时复杂度为 O ( n 2 ) O(n^2) O(n2)。
5. 6 6 6 个人分乘两辆不同的汽车,每辆车最多坐 4 4 4 人,则不同的乘车方法数为( )
A. 40
B. 50
C. 60
D. 70
答案:B
解析: 本题方法数较少,可以考虑暴力枚举。当确定了第一辆车的结果时,第二辆车结果就固定了。而第一辆车可以坐 2 2 2 人, 3 3 3 人或 4 4 4 人,所以答案为 C 6 2 + C 6 3 + C 6 4 = 50 C^2_6+C^3_6+C^4_6=50 C62+C63+C64=50 。
1.主机 I P IP IP 地址为 194.32.6.22,掩码为 255.255.255.192,子网地址是( )
A. 194.32.6.22
B. 194.32.0.0
C. 0.0.0.22
D. 194.32.6.0
答案:D
解析:
I P IP IP地址由网络号和主机号组成。采用二进制形式表示。
I P IP IP 地址分为A、B、C、D、E五类:
A类地址以第一个字节作为网络号,地址范围为:0.0.0.0~127.255.255.255,默认子网掩码为255.0.0.0,主要分配给大量主机而局域网网络数量较少的大型网络;
B类地址以前两个字节作为网络号,地址范围是:128.0.0.0~191.255.255.255,默认子网掩码为255.255.0.0,一般用于国际性大公司和政府机构;
C类地址以前三个字节作为网络号,地址范围是:192.0.0.0~223.255.255.255,默认子网掩码为255.255.255.0,一般用于小公司、校园网和研究机构等。
D类地址地址范围是224.0.0.0~239.255.255.255,D类地址作为组播地址(一对多的通信);
E类地址地址范围是240.0.0.0~255.255.255.255,E类地址为保留地址,供以后使用。
子网掩码用来指明一个 I P IP IP 地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合 I P IP IP 地址一起使用。
I P IP IP 地址和子网掩码与运算后得出网络地址, I P IP IP 与子网掩码的非的结果相与得出主机地址。如果两个IP地址在子网掩码的按位与的计算下所得结果相同,即表明它们共属于同一子网中。
对于本题, I P IP IP地址为194.32.6.22,即11000010.00100000.00000110.00010110;
子网掩码为255.255.255.192,即11111111.11111111.11111111.11000000。
则网络地址为11000010.00100000.00000110.00000000,即194.32.6.0;
主机地址为00000000.00000000.00000000.00010110,即0.0.0.22。
2…现代普通计算机的网关不能设置为( ):
A. 10.16.13.100
B. 127.0.0.1
C. 234.123.6.5
D. 168.10.7.100
答案:B
解析: 网关是用来将两个不同协议的网络段链接在一起的设备。127.0.0.1 是本机的环回地址(用来访问自己的),不能用来设置为网关。
3.众所周知,希尔排序的复杂度与增量序列有着很密切的联系,那么下列增量序列中,( )在确保正确的前提下会使希尔排序的最坏时间复杂度最好?
A. { 1 , 2 , 4 , 8 , ⋯ ⋯ } \{1,2,4,8,⋯⋯\} {1,2,4,8,⋯⋯}
B. { 5 , 19 , 41 , 109 ⋯ ⋯ } \{5,19,41,109⋯⋯\} {5,19,41,109⋯⋯}
C. { 1 , 3 , 7 , ⋯ , 2 k − 1 } \{1,3,7,⋯,2^{k-1}\} {1,3,7,⋯,2k−1}
D. { 1 , 2 , 3 , 4 , 5 , ⋯ ⋯ } \{1,2,3,4,5,⋯⋯\} {1,2,3,4,5,⋯⋯}
答案:C
解析: 希尔排序的增量序列最后一个增量必须为 1,否则会导致排序出错,B 错。然后如果出现序列中出现相邻的值有整除现象时,将会使最坏复杂度变大,A 错。希尔排序相比于插入排序的优势在于大的增量使元素快速的移动到最终位置附近,D 选项明显有悖于此。
4. N P NP NP 问题的讨论是计算机科学中一个重要的话题。以下问题中,( )在一般情况下仍有着关于输入规模 n n n 的多项式复杂度的确定性正确算法:
A.0-1背包问题,n为物品个数
B.数字的质因数分解,n为数字位数
C.旅行商问题,n为点的个数
D.求矩阵行列式,n为矩阵的行数
答案:D
解析: .A 与背包容积有关,B,C 中答案与 n n n 的指数项有关。
5.只采用路径压缩的并查集最坏平均复杂度为( ):
A. O ( n ) O(n) O(n)
B. O ( n α ( n ) ) O(n α(n)) O(nα(n))
C. O ( n l o g n ) O(n log n) O(nlogn)
D. O ( n 2 ) O(n^2) O(n2)
答案:B
解析: 参见该博客。
6.现在有 20个人约定一起玩一局游戏。但是因为可能要补作业,所以每个人有 50%的概率最终参加。他们认为一局游戏的有趣程度为参加人数的平方,则游戏有趣程度的期望为( ):
A. 425/4
B. 105
C. 110
D. 100
答案:B
1. 在 8 位二进制补码中,10101011 表示的数是十进制下的 ____。
A. 43
B. -43
C. -85
D. -84
答案:C
解析:
对于一个正数,其原码、反码和补码完全相同。
对于一个负数,反码是符号位不变,其他位取反,补码是反码+1。
由于该数的补码为10101011,则反码为10101010,原码为11010101,即-85。
2. 下列有关 CPU 的说法,正确的有____。
A. CPU 的用途是将计算机系统所需要的显示信息进行转换驱动显示器。
B. CPU 的性能和速度取决于时钟频率(一般以赫兹或千兆赫兹计算,即 hz 与 Ghz)和每周期可处理的指令(IPC),两者合并起来就是每秒可处理的指令(IPS)。
C. AMD 是世界上最大的半导体公司,也是首家推出 x86 架构处理器的公司。
D. 目前的 CPU 一般都带有 3D 画面运算和图形加速功能,所以也叫做“图形加速器”或“3D 加速器”。
答案:B
解析: A中驱动显示器的是显卡,C中 x86 处理器由 Intel 首家推出, D中讲的是显卡。
3。若要使用 g++ 编译器,开启 -Ofast 优化,且使用 C++ 11 标准,将源文件prog.cpp 编译为可执行程序 exec,且保留调试信息,则需要使用的编译命令为____。
A. g++ prog.cpp -Ofast exec -std=c++11 -debug
B. g++ prog.cpp -Ofast exec -std=c++11 -g
C. g++ prog.cpp -o exec -Ofast -std=c++11 -debug
D. g++ prog.cpp -o exec -Ofast -std=c++11 -g
答案:D