1、设二叉树的前序序列为ABDEGHCFIJ,中序序列为DBGEHACIFJ。则按层次输出(从上到下,同一层从左到右)的序列为()。
A.DGHEBIJFCA
B.JIHGFEDCBA
C.GHIJDEFBCA
D.ABCDEFGHIJ
本题的考查知识点是二叉树的遍历。 前序遍历的顺序为根结点→左结点→右结点,中序遍历的顺序为左结点→根结点→右结点。由前序序列可知,该二叉树的根结点为A,A的左子结点为B。按层次输出时,最左边的两位是AB。所以本题答案是D。
2、设二叉树的前序序列为ABDEGHCFIJ,中序序列为DBGEHACIFJ。则后序序列为()。
A.ABCDEFGHIJ
B.DGHEBIJFCA
C.JIHGFEDCBA
D.GHIJDEFBCA
本题的考查知识点是二叉树的遍历。 二叉树前序遍历顺序是DLR,即先访问根结点,然后遍历左子树,最后遍历右子树,并且遍历子树的时候也按照DLR的顺序递归遍历。中序遍历顺序是LDR,即左-根-右,而后序遍历是左-右-根。根据前序序列,A是根结点,根据中序序列,BDEGH是左子树的结点,CFIJ是右子树的结点。所以本题答案是B。
3、设表的长度为n。在下列结构所对应的算法中,最坏情况下时间复杂度最低的是()。
A.循环链表中寻找最大项
B.有序链表查找
C.堆排序
D.希尔排序
本题的考查知识点是时间复杂度。 最坏情况下,希尔排序的时间复杂度为O(n1.5);堆排序的时间复杂度是O(nlog2n);有序链表查找的时间复杂度为O(n);循环链表中寻找最大项的时间复杂度为O(n-1)。所以本题答案是A。
4、设二叉树的后序序列为DGHEBIJFCA,中序序列为DBGEHACIFJ。则前序序列为()。
A.GHIJDEFBCA
B.JIHGFEDCBA
C.ABDEGHCFIJ
D.ABCDEFGHIJ
本题的考查知识点是二叉树的遍历。 二叉树前序遍历顺序是DLR,即先访问根结点,然后遍历左子树,最后遍历右子树,并且遍历子树的时候也按照DLR的顺序递归遍历。中序遍历顺序是LDR,即左-根-右,而后序遍历是左-右-根。由题面后序序列为DGHEBIJFCA,中序序列为DBGEHACIFJ,可知A是根结点,DGHEB是左子树的结点,CIFJ是右子树的结点。所以本题答案是C。
5、 下列叙述中正确的是()。
A. 算法的时间复杂度是指算法在执行过程中基本运算的次数
B. 算法的时间复杂度是指算法执行所需要的时间
C. 算法的时间复杂度是指算法执行的速度
D. 算法复杂度是指算法控制结构的复杂程度
算法的复杂度主要包括时间复杂度和空间复杂度:算法在运行过程中需辅助存储空间的大小称为算法的空间复杂度;算法的时间复杂度是指执行算法所需要的计算工作量,即算法执行过程中所需要的基本运算次数。所以本题答案是A。
6、设二叉树中有20个叶子结点,5个度为1的结点,则该二叉树中总的结点数为()。
A.44
B.46
C.45
D.不可能有这样的二叉树
二叉树的性质3:在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。本题中度为2的结点数为20-1=19,该二叉树的总结点数为20+5+19=44。所以本题答案是A。
7、设栈与队列初始状态为空。首先A,B,C,D,E依次入栈,再F,G,H,I,J依次入队;然后依次出队至队空,再依次出栈至栈空。则输出序列为()。
A.E,D,C,B,A,F,G,H,I,J
B.E,D,C,B,A,J,I,H,G,F
C.F,G,H,I,J,A,B,C,D,E,
D.F,G,H,I,J,E,D,C,B,A
本题的考查知识点是栈和队列。 栈是一种特殊的线性表,这种线性表只能在固定的一端进行插入和删除操作,允许插入和删除的一端称为栈顶,另一端称为栈底。一个新元素只能从栈顶一端进入,删除时,只能删除栈顶的元素,即刚刚被插入的元素。这表明栈的运算规则是"先进后出"(或称"后进先出")。在栈顶进行插入运算,称为进栈(或入栈),在栈顶进行删除运算,称为退栈(或出栈)。 队列是指允许在一端进行插入、而在另一端进行删除的线性表。在队列这种数据结构中,最先插入的元素将最先能够被删除,反之,最后插入的元素将最后才能被删除。因此队列又称为先进先出或后进后出的线性表。 本题中A,B,C,D,E依次入栈,栈中元素:A,B,C,D,E;F,G,H,I,J依次入队,队中元素:F,G,H,I,J。然后依次出队至队空,再依次出栈至栈空,输出结果为:F,G,H,I,J,E,D,C,B,A。所以D选项正确。所以本题答案是D。
8、树的度为3,且有9个度为3的结点,5个度为1的结点,但没有度为2的结点。则该树总的结点数为()。
A.33
B.14
C.32
D.19
本题考查的知识点是树。 在树中,结点数为树中所有结点的度之和再加1。所以n-1=n0*0+n1*1+n2*2+n3*3,该树的总结点数为5+9*3+1=33。所以本题的答案是A。
9、设栈与队列初始状态为空。首先A,B,C,D,E依次入栈,再F,G,H,I,J依次入队;然后依次出栈至栈空,再依次出队至队空。则输出序列为()。
A.E,D,C,B,A,J,I,H,G,F
B.F,G,H,I,J,E,D,C,B,A
C.E,D,C,B,A,F,G,H,I,J
D.F,G,H,I,J,A,B,C,D,E,
本题的考查知识点是栈和队列。 栈是一种特殊的线性表,这种线性表只能在固定的一端进行插入和删除操作,允许插入和删除的一端称为栈顶,另一端称为栈底。一个新元素只能从栈顶一端进入,删除时,只能删除栈顶的元素,即刚刚被插入的元素。这表明栈的运算规则是"先进后出"(或称"后进先出")。在栈顶进行插入运算,称为进栈(或入栈),在栈顶进行删除运算,称为退栈(或出栈)。 队列是指允许在一端进行插入、而在另一端进行删除的线性表。在队列这种数据结构中,最先插入的元素将最先能够被删除,反之,最后插入的元素将最后才能被删除。因此队列又称为先进先出或后进后出的线性表。 本题中A,B,C,D,E依次入栈,栈中元素:A,B,C,D,E;F,G,H,I,J依次入队,队中元素:F,G,H,I,J。然后依次出栈至栈空,再依次出队至队空,输出结果为:E,D,C,B,A,F,G,H,I,J。所以C选项正确。所以本题答案是C。
10、设二叉树的中序序列为BCDA,前序序列为ABCD,则后序序列为()。
A.DCBA
B.CBDA
C.BCDA
D.ACDB
本题考查的是二叉树的遍历。 二叉树前序遍历顺序是DLR,即先访问根结点,然后遍历左子树,最后遍历右子树,并且遍历子树的时候也按照DLR的顺序递归遍历。中序遍历顺序是LDR即左-根-右,而后序遍历是左-右-根。由题面二叉树的中序序列为BCDA,前序序列为ABCD,可知A是根结点,且根结点A没有右子树。中序序列的左子树与前序序列的左子树都为BCD,说明D是C的右子树,C是B的右子树,故该二叉树的后序序列为DCBA。所以本题答案是A。
11、以下不属于Python语言保留字的是()。
A.do
B.pass
C.while
D.def
do不是Python保留字。本题选A。
12、表达式3*4**2//8%7的计算结果是()。
A.3
B.6
C.4
D.5
x**y的作用是计算x的y次幂。 x//y的作用是计算x与y的整数商,即不大于x与y之商的最大整数。 x%y的作用是计算x与y之商的余数。表达式中的运算符中,**的运算级最高,所以先计算4**2,即3*4**2//8%7=3*16//8%7=48//8%7=6%7=6。本题选B。
13、以下关于Python字符串的描述中,错误的是()。
A.空字符串可以表示为""或''
B.在Python字符串中,可以混合使用正整数和负整数进行索引和切片
C.字符串'my\\text.dat'中第一个\表示转义符
D.Python字符串采用[N:M]格式进行切片,获取字符串从索引N到M的子字符串(包含N和M)
对字符串中某个子串或区间的检索成为切片。切片的使用方式如下: <字符串或字符串变量>[N:M] 切片获取字符串从N到M(不包含M)的子字符串,其中,N和M为字符串的索引序号,可以混合使用正向递增序号和反向递减序号。本题选D。
14、Python语言提供三种基本的数字类型,它们是()。
A.整数类型、浮点数类型、复数类型
B.整数类型、二进制类型、浮点数类型
C.复数类型、二进制类型、浮点数类型
D.整数类型、二进制类型、复数类型
Python语言提供3种数字类型:整数类型、浮点数类型和复数类型。本题选A。
15、以下关于语言类型的描述中,错误的是()。
A.解释是将源代码逐条转换成目标代码同时逐条运行目标代码的过程
B.C语言是静态编译语言,Python语言是脚本语言
C.编译是将源代码转换成目标代码的过程
D.静态语言采用解释方式执行,脚本语言采用编译方式执行
高级语言根据计算机执行机制的不同可分成两类:静态语言和脚本语言,静态语言采用编译方式执行,脚本语言采用解释方式执行。本题选D。
16、以下关于Python分支的描述中,错误的是()。
A.Python分支结构使用保留字if、elif和else来实现,每个if后面必须有elif或else
B.if-else结构是可以嵌套的
C.if语句会判断if后面的逻辑表达式,当表达式为真时,执行if后续的语句块
D.缩进是Python分支语句的语法部分,缩进不正确会影响分支功能
Python的单分支结构使用if保留字对条件进行判断;二分支结构使用if-else保留字对条件进行判断;多分支结构使用if-elif-else保留字对多个相关条件进行判断,并根据不同条件的结果按照顺序选择执行路径。其中,else子句是可选的。本题选A。
17、列表变量ls共包含10个元素,ls索引的取值范围是()。
A.-1到-9(含)的整数
B.0到10(含)的整数
C.1到10(含)的整数
D.0到9(含)的整数
列表的索引采用正向递增序号或反向递减序号,正向递增序号从0开始,即ls索引的取值范围是0到9(含)的整数;反向递减符号从-1开始,即ls索引的取值范围是-1到-10(含)的整数。本题选D。
18、键盘输入数字5,以下代码的输出结果是()。
n = eval(input("请输入一个整数: "))
s = 0
if n>=5:
n -= 1
s = 4
if n<5:
n -= 1
s = 3
print(s)
A.3
B.4
C.0
D.2
键盘输入数字5,则n的值为5,s的值为0。此时n>=5条件成立,n减1为4,s被赋值为4。此时n<5条件成立,n减1为3,s被赋值为3。程序结束,输出s的值为3。本题选A。
19、以下关于Python循环结构的描述中,错误的是()。
A.while循环使用break保留字能够跳出所在层循环体
B.while循环可以使用保留字break和continue
C.while循环也叫遍历循环,用来遍历序列类型中元素,默认提取每个元素并执行一次循环体
D.while循环使用pass语句,则什么事也不做,只是空的占位语句
Python语言的循环结构包括两种:遍历循环和无限循环。遍历循环使用保留字for,无限循环使用保留字while。本题选C。
20、键盘输入数字5,以下代码的输出结果是()。
try:
n = input("请输入一个整数: ")
def pow2(n):
return n*n
except:
print("程序执行错误")
A. 程序没有任何输出
B. 25
C. 出程序执行错误
D. 5
输入数字5之后,程序执行try之后的语句块。语句块中只包含函数定义过程,并未调用函数,所以程序没有任何输出。本题选A。
21、以下代码的输出结果是()。
t=10.5
def above_zero(t):
return t>0
A.10.5
B.False
C.没有输出
D.True
代码中只定义了函数above_zero(),未向函数中传递参数,函数不执行,没有输出。本题选C。
22、以下关于Python语言的描述中,错误的是()。
A.函数中return语句只能放在函数定义的最后面
B.定义函数需要使用保留字def
C.使用函数最主要的作用之一是复用代码
D.Python函数可以定义在分支或循环语句的内部
return语句用来结束函数并将程序返回到函数被调用的位置继续执行。return语句可以出现在函数中的任何部分,同时将0个、1个或多个函数运算的结果返回给函数被调用处的变量。本题选A。
23、以下代码的输出结果是()。
def young(age):
if 12 <= age <= 17:
print( "作为一个大学生,你很年轻")
elif age <12:
print( "作为一个大学生,你太年轻了")
elif age <= 28:
print( "作为一个大学生,你要努力学习")
else:
print( "作为一个大学生,你很有毅力")
young(18)
A. 作为一个大学生,你很有毅力
B. 作为一个大学生,你很年轻
C. 作为一个大学生,你太年轻了
D. 作为一个大学生,你要努力学习
age取值为18时,if 12 <= age <= 17条件不成立,不执行输出语句;elif age <12条件不成立,不执行输出语句;elif age <= 28条件成立,执行输出语句,最后输出:作为一个大学生,你要努力学习。本题选D。
24、以下代码的输出结果是()。
def fibRate(n):
if n <= 0:
return -1
elif n == 1:
return -1
elif n == 2:
return 1
else:
L = [1, 1]
for i in range(2,n):
L.append(L[-1]+L[-2])
return L[-2]/L[-1]
print(fibRate(5))
A.-1
B.0.625
C.0.6
D.0.5
n=5时,执行else后的语句,i的取值范围为range(2,5),即2、3、4。 ls.append(x)的作用是在列表ls最后增加一个元素x。初始状态时,L=[1,1]。第一次循环,n=2,L[-1]+L[-2]=2,L=[1,1,2];第二次循环,n=3,L[-1]+L[-2]=3,L=[1,1,2,3];第三次循环,n=4,L[-1]+L[-2]=5,L=[1,1,2,3,5]。循环结束,返回值L[-2]/L[-1],即3/5=0.6。本题选C。
25、以下关于函数返回值的描述中,正确的是()。
A.Python函数的返回值使用很灵活,可以没有返回值,可以有一个或多个返回值
B.函数定义中最多含有一个return语句
C.在函数定义中使用return语句时,至少给一个返回值
D.函数只能通过print语句和return语句给出运行结果
函数定义中可以含有多个return语句,可以返回0个、1个或多个函数运算的结果。函数可以没有return,此时函数不返回值。本题选A。
26、以下代码的输出结果是()。
def Hello(famlyName,age):
if age > 50:
print("您好!"+famlyName+"大爷")
elif age > 40:
print("您好!"+famlyName+"叔叔")
elif age > 30:
print("您好!"+famlyName+"大哥")
else:
print("您好!"+"小"+famlyName)
Hello(age=60, famlyName="王")
A. 函数调用出错
B. 您好!王叔叔
C. 您好!王大哥
D. 您好!王大爷
Python的多分支结构使用if-elif-else保留字对多个相关条件进行判断,并根据不同条件的结果按照顺序选择执行路径。题目中代码为变量age赋值60,条件if age > 50成立,输出:您好!王大爷。本题选D。
27、以下描述中,错误的是()。
A.Python语言通过索引来访问列表中元素,索引可以是负整数
B.列表用方括号来定义,继承了序列类型的所有属性和方法
C.Python列表是各种类型数据的集合,列表中的元素不能够被修改
D.Python语言的列表类型能够包含其它的组合数据类型
列表是包含0个或多个元组的有序序列,属于序列类型。列表可以进行元素增加、删除、替换、查找等操作。本题选C。
28、以下描述中,错误的是()。
A.如果s是一个序列,s =[1,"kate",True],s[3]返回True
B.如果x不是s的元素,x not in s返回True
C.如果x是s的元素,x in s返回True
D.如果s是一个序列,s =[1,"kate",True],s[-1]返回True
如果序列长度为L,正向递增需要以最左侧序列符号为0,向右依次递增,最右侧序列符号为L-1;反向递减序号以最右侧序列符号为-1,向左依次递减,最左侧序列符号为-L。选项"如果s是一个序列,s = [1,"kate",True],s[3]返回True"中的索引序号"3"超过列表的元素范围,出现IndexError错误,返回的结果不是True。本题选A。
29、以下代码的输出结果是()。
S = 'Pame'
for i in range(len(S)):
print(S[-i],end="")
A. ameP
B. emaP
C. Pema
D. Pame
Python通过保留字for实现遍历循环,使用方法如下: for <循环变量> in <遍历结构> <语句块> 遍历循环可以理解为从遍历结构中逐一提取元素,放在循环变量中,对于每个所提取的元素执行一次语句块。for语句的循环执行次数是根据遍历结构中元素个数确定的。 len(S):字符串S的长度,这里为4。i的取值范围为range(4),即0、1、2、3。 题目中的代码循环过程如下: i = 0,S[-i]=P; i = 1,S[-i]=e; i = 2,S[-i]=m; i = 3,S[-i]=a。代码执行后的输出结果是Pema。本题选C。
30、以下代码的输出结果是()。
for s in "HelloWorld":
if s=="W":
continue
print(s,end="")
A. Helloorld
B. Hello
C. World
D. HelloWorld
Python通过保留字for实现遍历循环,使用方法如下: for <循环变量> in <遍历结构> <语句块> 遍历循环可以理解为从遍历结构中逐一提取元素,放在循环变量中,对于每个所提取的元素执行一次语句块。for语句的循环执行次数是根据遍历结构中元素个数确定的。 Python的单分支结构使用if保留字对条件进行判断,使用方法如下: if <条件>: <语句块> 其中,if、:和<语句块>前的缩进都是语法的一部分。<条件>是一个产生True或False结果的语句,当结果为True时,执行<语句块>,否则跳过<语句块>。 continue用来结束当前当次循环,即跳出循环体中下面尚未执行的语句,但不跳出当前循环。 题目中的代码循环过程如下: s = H,输出结果H; s = e,输出结果e; s = l,输出结果l; s = l,输出结果l; s = o,输出结果o; s = W,跳出当前当次循环,继续下一次循环; s = o,输出结果o; s = r,输出结果r; s = d,输出结果d。代码执行后的输出结果是Helloorld。本题选A。
31、下面的d是一个字典变量,能够输出数字5的语句是()。
d = {'food':{'cake':1,'egg':5},'cake':2,'egg':3}
A. print(d['egg'])
B. print(d['food']['egg'])
C. print(d['food'][-1])
D. print(d['cake'][1])
索引是按照一定顺序检索内容的体系。由于字典元素"键值对"中键是值的索引,因此,可以直接利用键值对关系索引元素。 字典中键值对的索引模式如下(采用中括号格式): <值> = <字典变量>[<键>] d['food'][-1]和d['cake'][1]中括号里的内容不是键,与字典类型中的索引模式不一样;d['egg']执行后的值是3,不是5。本题选B。
32、以下代码的输出结果是()。
s =[4,2,9,1]
s.insert(2,3)
print(s)
A.[4,2,9,2,1]
B.[4,3,2,9,1]
C.[4,2,3,9,1]
D.[4,2,9,1,2,3]
s.insert(i,x):在列表第i位置增加元素x。列表中的索引值从0开始,s.insert(2,3)表示在列表的第三个位置增加元素3,则题目中的代码执行后输出结果为[4,2,3,9,1]。本题选C。
33、以下关于文件的描述中,错误的是()。
A.使用read()可以从文件中读入全部文本
B.可以使用open()打开文件,用close()关闭文件
C.文件是存储在磁盘上的数据,也是序列的集合
D.使用readline()可以从文件中读入一行文本
文件是存储在辅助存储器上的一组数据序列,可以包含任何数据内容。概念上,文件是数据的集合和抽象。本题选C。
34、以下关于文件的描述中,错误的是()。
A.文件打开后,可以用seek()控制对文件内容的读写位置
B.采用readlines()可以读入文件中的全部文本,返回一个列表
C.使用open()打开文件时,必须要用r或w指定打开方式,不能省略
D.如果没有采用close()关闭文件,Python程序退出时文件将被自动关闭
Python通过open()函数打开一个文件,并返回一个操作这个文件的变量,语法形式如下: <变量名> = open(<文件路径及文件名>,<打开模式>) open()函数有两个参数:文件名和打开模式。打开模式用于控制使用何种方式打开文件,open()函数提供7中基本的打开模式,如下: r:只读模式,如果文件不存在,返回异常FileNotFoundError,默认值 w:覆盖写模式,文件不存在则创建,存在则完全覆盖原文件 x:创建写模式,文件不存在则创建,存在则返回异常FileExistsError a:追加写模式,文件不存在则创建,存在则在原文件最后追加内容 b:二进制文件模式 t:文本文件模式,默认值 +:与r/w/x/a一同使用,在原功能基础上增加读写功能本题选 C。
35、以下不属于Python文件操作方法的是()。
A.split
B.write
C.writelines
D.readline
split()方法是常用的字符串处理方法之一。 Python文件操作方法: f.read(size):从文件中读入整个文件内容。参数可选,如果给出,读入前size长度的字符串或字节流。 f.readline(size):从文件中读入一行内容。参数可选,如果给出,读入该行前size长度的字符串或字节流。 f.readlines(hint):从文件中读入所有行,以每行为元素形成一个列表。参数可选,如果给出,读入hint行。 f.seek(offset):改变当前文件操作指针的位置,offset的值:0为文件开头;1为当前位置;2为文件结尾。 f.write(s):向文件写入一个字符串或字节流。 f.writelines(lines):将一个元素为字符串的列表整体写入文件。本题选A。
36、以下关于数据组织的描述中,错误的是()。
A.更高维数据组织由键值对类型的数据构成,可以用Python字典类型表示
B.一维数据采用线性方式组织,可以用Python集合或列表类型表示
C.二维数据采用表格方式组织,可以用Python列表类型表示
D.字典类型仅用于表示一维和二维数据
一维数据由对等关系的有序或无序数据构成,采用线性方式组织,对应于数学中数组的概念。 二维数据,也称表格数据,由关联关系数据构成,采用二维表格方式组织,对应于数学中的矩阵,常见的表格都属于二维数据。高维数据由键值对类型的数据构成,采用对象方式组织,可以多层嵌套。高维数据相比一维和二维数据能表达更加灵活和复杂的数据关系,可以用字典类型表示。本题选D。
37、文件exam.txt与以下代码在同一目录下,其内容是一段文本:bigBen,以下代码的输出结果是()。
f = open("exam.txt")
print(f)
f.close()
A.bigBen
B.exam.txt
C.<_io.TextIOWrapper ...>
D.exam
open()方法的作用是打开一个文件,而所给的代码未对文件exam.txt进行读写操作,直接关闭,运行后代码输出的结果是<_io.TextIOWrapper name='book.txt' mode='r' encoding='cp936'>。本题选C。
38、以下不属于Python数据分析领域第三方库的是()。
A.scrapy
B.numpy
C.pandas
D.matplotlib
scrapy是Python语言中网络爬虫方向的第三方库,而numpy、scipy和pandas是Python语言中数据分析方向的第三方库,matplotlib是数据可视化方向的第三方库,也属于数据分析领域。本题选A。
39、在Python语言中,用来安装第三方库的工具是()。
A.PyQt5
B.pygame
C.pip
D.pyinstaller
Python语言中第三方库有三种安装方式:pip工具安装、自定义安装、文件安装,而pygame、PyQt5、pyinstaller是python语言中的第三方库。本题选C。
40、以下属于Python机器学习领域第三方库的是()。
A.Scikit-learn
B.numpy
C.pygame
D.pandas
Python语言中机器学习方向的第三方库有Tensorflow、Theano、scikit-learn,而numpy、pandas是数据分析方向的第三方库,pygame是游戏开发方向的第三方库。本题选A。