一、单项选择题
                    (共15题,每题2分,共计30分;每题有且仅有一个正确选项)
                
1) 下列C++表达式,值最大的是( ) 。
查看答案 
                 
                
2) 下列属于解释执行的程序设计语言是( )。
查看答案 
                 
                
3) 对于64KB的存储器,其最大地址码用十六进制表示是( )。
查看答案 
                 
                
4) 为解决Web应用中的不兼容问题,保障信息的顺利流通,( )制定了一系列标准,涉及HTML,XML,CSS等,并建议开发者遵循。
查看答案 
                 
                
5) 若一个整数是另一个整数的平方,则称该数是“完全平方数”,如4、9、25等。下列表达式无法判断该整数是否为完全平方数的是()。
查看答案 
                 
                
6) 将8个名额分给5个不同的班级,允许有的班级没有名额,有几种不同的分配方案()。
查看答案 
                 
                
7) 同时查找2n个数中的最大值和最小值,最少比较次数为( )。
查看答案 
                 
                
8) 具有n个顶点,e条边的图采用邻接表存储结构,进行深度优先遍历和广度优先遍历运算的时间复杂度均为()。
查看答案 
                 
                
9) 两根粗细相同、材料相同的蜡烛,长度比是21∶16,它们同时开始燃烧,18分钟后,长蜡烛与短蜡烛的长度比是15:11,则较长的那根蜡烛还能燃烧( )。
查看答案 
                 
                
10) 一次数学考试试题由两部分组成,结果全班有15人得满分,第一部分做对的有31人,第二部分做错的有19人,那么两部分都做错的有( )。
查看答案 
                 
                
11) 设一组初始记录关键字序列为(50,40,95,20,15,70,60,45),则以初始增量值d=4进行希尔排序,第二趟结束后前4条记录关键字为( )。
 
查看答案 
                 
                
12) 给出以下邻接矩阵,其表示的图是DAG(有向无环图)的是( )。
查看答案 
                 
                
13) 下列关于最短路算法的说法正确的是( )。
查看答案 
                 
                
14) 数列{an}是等差数列,首项 a1>0, a2020+a2021>0, a2020*a2021<0,则使前n 项和sn≥0成立的最大项数n是( )。
查看答案 
                 
                
15) 给定长为n (n≤1000)的字符串,每次可以将连续一段回文序列消去,消去后左右两边会 接到一起,求最少消去几次能消完整个序列(单个字符也算回文字符串)。设f(i,j)表示消去闭区间[i,j]内字符串所需要的最小次数,那么当1≤i≤j≤n时,在不考虑回文串的情况下,f(i,j)的动态规划方程中包含( )。
查看答案 
                 
                
                    
                二、阅读程序
                    (程序输入不超过数组或字符串定义的范围;除特殊说明外,判断题1.5分,选择题4分,共计40分)
                
# include <iostream>
16)  第35行若改成 MAXN(down(x,y), cross(x,y)),运行结果不变。()
查看答案 
 
17)  第34行输入值包含0时,程序可能会产生Runtime Error。( )
查看答案 
 
18)  程序输出的ans可能等于0。( )
查看答案 
 
19)  当第34行输入值x>y时,cross(x,y)返回值必然大于down(x,y)返回值。( )
查看答案 
 
20)  对于输入的L×L.的字符矩阵,ans值最大是( )。
查看答案 
 
21)  若输入L=5,x=y=3,aij={{abcba} , {bcdcb} ,{cdedc},{bcdcb},{abcba}},则输出是( )。
查看答案 
 
                 
                
#include <cstdio>
22)  若去掉第12行,程序也能得到正确结果。()
查看答案 
 
23)  若去掉第23行,程序也能得到正确结果。()
查看答案 
 
24)  若输入的 n≤10^8,则第10行j<pcnt条件可以省略。()
查看答案 
 
25)  若输入的 n≤10^8,则第21行j<pcnt条件可以省略。()
查看答案 
 
26)  当n=504时,输出ans 为() 。
查看答案 
 
27)  getPrime函数的时间复杂度是( ) 。
查看答案 
 
                 
                
#include <iostream>
28)  第33,34行只需保留任意一行也不会影响程序的正确性。()
查看答案 
 
29)  第37行函数调用dfs(x,y),只需保证1≤x≤n,y≤0即可。()
查看答案 
 
30)  第32行输入若有重复(重边),不影响输出结果的正确性。()
查看答案 
 
31)  程序运行结束时可能存在正整数i(i≤n)使sz[i]等于mxs[i]。()
查看答案 
 
32)  n=6,二元组(u,v)各个值分别是{(1,3),(6.3),(2,6),(5,6),(3,4)},则输出是()。
查看答案 
 
33)  若n=1000,则程序运行后mxs[]数组中除初始值 inf 外,最大值是( )。
查看答案 
 
                 
                三、完善程序
                    (单选题,每题2.5分,共计30分)
                
(翻硬币)
 一摞硬币共有m枚,每一枚都是正面朝上。取下最上面的一枚硬币,将它翻面后放回原处。然后取下最上面的2枚硬币,将他们整体一起翻面后放回原处(如101111前5个翻面结果是000101),再取3枚,取4枚……直至m枚。然后再从这摞硬币最上面的一枚开始,重复刚才的做法。这样一直做下去,直到这摞硬币中每一枚又是正面朝上为止。例如,m为1时,翻两次即可;m 为4时﹐翻11次;m为9时,翻80 次。
 【输入】
 仅有的一个数字是这摞硬币的枚数m(0 <m < 1000),
 【输出】
 为了使这握硬币中的每一枚都是正面朝上所必须翻的次数。
 【输入样例】
 30
 【输出样例】
 899
#include <iostream> 
                
(FBZ串问题)
 已知一个由0,1字符组成的长度为2^n的字符串。请按以下规则分解为FBZ串:
 ·若其中字符全为1,则称其为B串:
 ·若其中字符全为0,则称其为Z串;
 ·若不全为0,也不全为1,则称F串。
 若此串为F串,则应将此串分解为2个长为2^(i-1)的子串。对分解后的子串,仍按以上规则继续分解直到全部为B串或为Z串为止。例如n=3时,给出0-1串为“10111001”
 最后输出:FFFBZBFFBZFZB。给定一个0-1串,分解成FBZ串。
#include <iostream>