1.在最坏情况下比较次数相同的是()。
A.冒泡排序与快速排序
B.简单插入排序与希尔排序
C.简单选择排序与堆排序
D.快速排序与希尔排序
A 【解析】冒泡排序、快速排序、简单插入排序、简单选择排序在最坏情况下比较次数均为n(n-1)/2,堆排序在最坏情况下比较次数为nlog2n,在最坏情况下希尔排序需要比较的次数是nr(1
2.设二叉树的中序序列为BCDA,前序序列为ABCD,则后序序列为( )。
A.CBDA
B.DCBA
C.BCDA
D.ACDB
B 【解析】二叉树的前序序列为ABCD,由于前序序列首先访问根节点,可以确定该二叉树的根节点是A。再由中序序列为BCDA,可知以A为根的该二叉树只存在左子树,不存在右子树,且B为左子树的根结点。由于后序序列最后访问根结点,因此最后访问的是树的根结点A,倒数第二个访问的是左子树的根结点B。故本题选B项。
3.树的度为3,且有9个度为3的结点,5个度为1的结点,但没有度为2的结点。则该树中的叶子结点数为()。
A.18
B.33
C.19
D.32
C 【解析】设叶子结点数为n,则该树的结点数为n+9+5=n+14, 根据树中的结点数=树中所有结点的度之和+1,得9×3+0×2+5×1+n×0+1=n+14,则n=19。
4.下列叙述中错误的是()。
A.向量属于线性结构
B.二叉链表是二叉树的存储结构
C.栈和队列是线性表
D.循环链表是循环队列的链式存储结构
D 【解析】循环链表是线性表的一种链式存储结构,循环队列是队列的一种顺序存储结构。因此D选项叙述错误。
5.下面对软件特点描述错误的是()。
A.软件的使用存在老化问题
B.软件的复杂性高
C.软件是逻辑实体具有抽象性
D.软件的运行对计算机系统具有依赖性
A 【解析】软件具有以下特点。
①软件是一种逻辑实体,具有抽象性。
②软件没有明显的制作过程。
③软件在使用期间不存在磨损、老化问题。
④对硬件和环境具有依赖性。
⑤软件复杂性高,成本昂贵。
⑥软件开发涉及诸多的社会因素。
6.数据流图(DFD)的作用是( )。
A.描述软件系统的控制流
B.支持软件系统功能建模
C.支持软件系统的面向对象分析
D.描述软件系统的数据结构
B 【解析】数据流图是系统逻辑模型的图形表示,从数据传递和加工的角度,来刻画数据流从输入到输出的移动变化过程,它直接支持系统的功能建模。
7.结构化程序的三种基本控制结构是( )。
A.递归、堆栈和队列
B.过程、子程序和函数
C.顺序、选择和重复
D.调用、返回和转移
C 【解析】1966年Boehm和Jacopini证明了程序设计语言仅仅使用顺序、选择和重复三种基本控制结构就足以表达出各种其他形式结构的程序设计方法。
8.同一个关系模型的任意两个元组值()。
A.可以全相同
B.不能全相同
C.必须全相同
D.以上都不对
B 【解析】关系具有以下7条性质:
①元组个数有限性:二维表中元组的个数是有限的。
②元组的唯一性:二维表中任意两个元组不能完全相同。
③元组的次序无关性:二维表中元组的次序,即行的次序可以任意交换。
④元组分量的原子性:二维表中元组的分量是不可分割的基本数据项。
⑤属性名唯一性:二维表中不同的属性要有不同的属性名。
⑥属性的次序无关性:二维表中属性的次序可以任意交换。
⑦分量值域的同一性:二维表属性的分量具有与该属性相同的值域,或者说列是同质的。满足以上7个性质的二维表称为关系,以二维表为基本结构所建立的模型称为关系模型。
9.在银行业务中,实体客户和实体银行之间的联系是( )。
A.一对一
B.一对多
C.多对一
D.多对多
D 【解析】一个客户可以在多家银行办理业务,一家银行也有多个客户办理业务,因此,实体客户和实体银行之间的联系是多对多。
10.定义学生选修课程的关系模式如下: SC (S#, Sn, C#, Cn, G,Cr)(其属性分别为学号、姓名、课程号、课程名、成绩、学分) 则对主属性部分依赖的是( )。
A.C#→Cn
B.(S#,C#)→G
C.(S#,C#)→S#
D.(S#,C#)→C#
A 【解析】关系SC中的主键是(S#,C#),但C#(课程号)单独就可以决定Cn(课程名),存在着对主键的部分依赖。
11.在Python语言中,IPO模式不包括( )。
A.Program (程序)
B.Input (输入)
C.Process (处理)
D.Output (输出)
A 【解析】程序设计IPO模式:
I:Input 输入,程序的输入。程序的输入包括:文件输入、网络输入、控制台输入、随机数据输入、程序内部参数输入等。输入是一个程序的开始。
P:Process 处理,程序的主要逻辑。程序对输入进行处理,输出产生结果。处理的方法也叫算法,是程序最重要的部分。可以说,算法是一个程序的主要灵魂。
O:Output 输出,程序的输出。程序的输出包括:屏幕显示输出、文件输出、网络输出、操作系统内部变量输出等。输出是一个程序展示运算成果的方式。
12.在屏幕上打印输出Hello World,使用的Python语句是( )。
A.printf(‘Hello World’)
B.print(Hello World)
C.print(“Hello World”)
D.printf(“Hello World”)
C 【解析】在Python语言中,打印是print()函数,Hello World是字符串类型,需要加单引号或双引号。
13.以下关于二进制整数的定义,正确的是( )。
A.0B1014
B.0b1010
C.0B1019
D.0bC3F
B 【解析】二进制整数以0b或0B开头,后面跟二进制数0和1。A、C、D三项中有4、9、C、3、F,这些都不是二进制数。
14.以下关于Python语言复数类型的描述中,错误的是( )。
A.复数可以进行四则运算
B.实部不可以为0
C.Python语言中可以使用z.real和a.imag分别获取它的实部和虚部
D.复数类型与数学中复数的概念一致
B 【解析】在Python语言中,复数类型表示数学中的复数,D项正确。复数可以看作是二元有序实数对(a,b),表示a+bj,其中a是实数部分,简称实部,b是虚数部分,简称虚部。虚数部分通过后缀”J”或”j”来表示,实部、虚部都可为0。复数可以进行四则运算。A项正确,B项错误。复数类型中,实部和虚部都是浮点类型,对于复数z,可以使用z.real和z.imag分别获取它的实部和虚部。C项正确。
15.以下变量名中,符合Python语言变量命名规则的是()。
A.33_keyword
B.key@word33_
C.nonlocal
D._33keyword
D 【解析】Python采用大写字母、小写字母、数字、下划线和汉字等字符及其组合进行命名,但名字的首字符不能是数字,标识符中间不能出现空格,长度没有限制。变量名不能与保留字相同。
16.以下关于Python分支的描述中,错误的是( )。
A.Python分支结构使用保留字if、elif和else来实现,每个if后面必须有elif或else
B.if-else结构是可以嵌套的
C.if语句会判断if后面的逻辑表达式,当表达式为真时,执行if后续的语句块
D.缩进是Python分支语句的语法部分,缩进不正确会影响分支功能
A 【解析】Python分支结构使用保留字if、elif和else来实现,每个if后面不一定要有elif或else,A项错误;if-else结构是可以嵌套的,B项正确;if语句会判断if后面的逻辑表达式,当表达式为真时,执行if后续的语句块,C项正确;缩进是Python分支语句的语法部分,缩进不正确会影响分支功能,D项正确。
17.列表变量ls共包含10个元素,ls索引的取值范围是( )。
A.(0,10)
B.[0,10]
C.(1,10]
D.[0,9]
D 【解析】列表使用中括号作为索引操作符,索引从0开始,即第一个元素的索引是0,第二个元素的索引是1,依此类推。本题列表中有10个元素,则索引取值范围是[0,9]。
18.键盘输入数字5,以下代码的输出结果是( )。
n = eval(input(“请输入一个整数: “))
s = 0
if n>=5:
n -= 1
s = 4
if n<5:
n -= 1
s = 3
print(s)
A.4
B.3
C.0
D.2
B 【解析】输入5,因为n=5满足第一个if条件,所以n=n-1,n=4,s=4;由于现在n=4,满足第二个if条件,所以执行n=n-1,n=3,s=3。print(s),输出3。
19.以下关于Python循环结构的描述中,错误的是( )。
A.while循环使用关键字continue结束本次循环
B.while循环可以使用保留字break和continue
C.while循环也叫遍历循环,用来遍历序列类型中元素,默认提取每个元素并执行一次循环体
D.while循环使用pass语句,则什么事也不做,只是空的占位语句
C 【解析】Python中循环包括两种:遍历循环和无限循环。遍历循环使用保留字for依次提取遍历结构元素进行处理;无限循环使用保留字while根据判断条件执行程序。
循环结构有两个辅助循环控制保留字:break和continue。break用来跳出最内层for或while循环,脱离该循环后程序从循环后的代码继续执行。continue用来结束当前当次循环,即跳出循环体中下面尚未执行的语句,但跳不出当前循环。 两者的区别是:continue语句只结束本次循环,不终止整个循环的执行,而break具备结束循环的能力。
20.键盘输入数字10,以下代码的输出结果是( )。
try:
n = input(“请输入一个整数: “)
def pow2(n):
return n*n
except:
print(“程序执行错误”)
A.100
B.10
C.程序执行错误
D.程序没有任何输出
D 【解析】Python语言使用保留字try和except进行异常处理,基本的语法格式如下:
try:
except:
语句块1是正常执行的程序内容,当执行这个语句块发生异常时,则执行except保留字后面的语句块2.这里当输入10时,执行try后面的语句,n=10,函数pow2()只进行了定义,但未进行调用,所以此时程序只执行了输入语句,函数不执行,语句运行正常,并不执行except后面的语句,故程序没有任何输出。
21.以下关于Python语言return语句的描述中,正确的是( )。
A.函数只能返回一个值
B.函数必须有return语句
C.函数可以没有return语句
D.函数中最多只有一个return语句
C 【解析】在Python语言中,return语句用来结束函数并将程序返回到函数被调用的位置继续执行。return语句可以出现在函数中的任何部分,可以同时将0个、1个或多个函数运算结果返回给函数被调用处的变量。函数可以没有return,此时函数并不返回值。当函数使用return返回多个值时,这些值形成了一个元组数据类型,由小括号和逗号分隔,如(a,b,c),可以使用一个变量或多个变量保存结果。
22.以下关于Python全局变量和局部变量的描述中,错误的是( )。
A.当函数退出时,局部变量依然存在,下次函数调用可以继续使用
B.全局变量一般指定义在函数之外的变量
C.使用global保留字声明后,变量可以作为全局变量使用
D.局部变量在函数内部创建和使用,函数退出后变量被释放
A 【解析】根据程序中变量所在的位置和作用范围,变量分为局部变量和全局变量。局部变量指在函数内部定义的变量,仅在函数内部有效,且作用域也在函数内部,当函数退出时变量将不再存在。全局变量一般指在函数之外定义的变量,在程序执行全过程有效。全部变量在函数内部使用时,需要提前使用保留字global声明,语法形式:global 。使用global对全局变量声明时,该变量要与外部全局变量同名。
23.以下代码的输出结果是( )。
CLis = list(range(5))
print(5 in CLis)
A.True
B.False
C.0
D.-1
B 【解析】range()函数的语法:range(start,stop,step),作用是生成一个从start参数的值开始,到stop参数的值结束的数字序列(注意不包含数stop),step是步进参数。CLis = list(range(5)),生成一个列表,包含0,1,2,3,4。因为5不在CLis列表中,故返回False。
24.关于以下代码的描述中,正确的是( )。
def fact(n):
s = 1
for i in range(1,n+1):
s *= i
return s
A.代码中n是可选参数
B.fact(n)函数功能为求n的阶乘
C.s是全局变量
D.range()函数的范围是[1,n+1]
B 【解析】函数定义时的语法如下:
def (,=):
return
可选参数一般都放置在非可选参数的后面。本题代码中,n为非可选参数,fact(n)函数的功能为求n的阶乘。s在函数内部定义,为局部变量。根据range函数的定义,range(1,n+1)的范围是[1,n],不包含n+1。
25.以下代码的输出结果是( )。
def func(a,b):
a **= b
return a
s = func(2,5)
print(s)
A.10
B.20
C.32
D.5
C 【解析】该函数功能是计算a的b次方,运算符**表示幂运算,s=2**5=32。
26.以下代码的输出结果是( )。 ls = [“apple”,”red”,”orange”]
def funC(a):
ls.append(a)
return
funC(“yellow”)
print(ls)
A.[]
B.[“apple”,”red”,”orange”]
C.[“yellow”]
D.[“apple”,”red”,”orange”,”yellow”]
D 【解析】列表ls中有三个元素,函数funC(“yellow”),将”yellow”传递给形参a,用append()方法将a中内容添加到列表ls中,最后返回,故最终的ls=[“apple”,”red”,”orange”,”yellow”],print(ls),即将列表ls中的内容输出。
27.以下描述中,错误的是( )。
A.Python语言通过索引来访问列表中元素,索引可以是负整数
B.列表用方括号来定义,继承了序列类型的所有属性和方法
C.Python列表是各种类型数据的集合,列表中的元素不能够被修改
D.Python语言的列表类型能够包含其他的组合数据类型
C 【解析】列表用中括号([])表示,由于列表属于序列类型,故继承了序列类型的所有属性和方法,B项正确。索引是列表的基本操作,用于获得列表中的一个元素,该操作沿用序列类型的索引方式,即正向递增序号或反向递减序号,使用中括号作为索引操作符,索引号不得超过列表的元素范围,否则将产生IndexError错误。A项正确。列表可以进行元素增加、删除、替换、查找等操作。列表没有长度限制,元素类型可以不同,能够包含其他的组合数据类型。故D项正确、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返回1
D.如果s是一个序列,s =[1,”kate”,False],s[-1] 返回True
B 【解析】序列的索引序号从0开始编号,所以s=[1,”kate”,True]时,s[3]=0,返回False,A项错误。x in s(如果x是s的元素,返回True;否则返回False);x not in s(如果x不是s的元素,返回True;否则返回False),B项正确、C项错误。序列类型使用的索引体系可以是正向递增序号(从0开始递增),也可以是反向递减序号(从-1开始递减),所以s[-1]=False,返回的是False,D项错误。
29.以下代码的输出结果是( )。
S = ‘Pame’
for i in range(len(S)):
print(S[-i],end=””)
A.Pame
B.emaP
C.ameP
D.Pema
D 【解析】range()函数的语法:range(start,stop,step),作用是生成一个从start参数的值开始,到stop参数的值结束的数字序列(注意不包含数stop),step是步进参数。一般默认start为0,步进step=1,如range(5),生成0,1,2,3,4。len(S)=4,for i in range(4)表示i从0,1,2,3开始取值,当i=0时,print(S[0],end=””),输出P;当i=1时,print(S[-1],end=””),输出e;当i=2时,print(S[-2],end=””),输出m;当i=3时,print(S[-3],end=””),输出a。故代码输出结果为Pema。
30.以下代码的输出结果是( )。
for s in “HelloWorld”:
if s==”W”:
continue
print(s,end=””)
A.World
B.Hello
C.Helloorld
D.HelloWorld
C 【解析】for s in “HelloWorld”:将字符串”HelloWorld”中的字符依次赋给变量s,之后进行if判断,如果s=”W”,则continue,执行下一个循环,不执行print(s,end=””),否则执行print(s,end=””),所以最后输出的结果是Helloorld。
31.下面的d是一个字典变量,能够输出数字2的语句是( )。
d = {‘food’:{‘cake’:1,’egg’:5},’cake’:2,’egg’:3}
A.print(d[‘food’][‘egg’])
B.print(d[‘cake’])
C.print(d[‘food’][-1])
D.print(d[‘cake’][1])
B 【解析】在Python语言中,字典是存储可变数量键值对的数据结构,键和值可以是任意数据类型,通过键索引值,并可以通过键修改值。因此,可以直接利用键值对关系索引元素。索引模式:=[]。故能够正确索引字典并输出数字2的语句是print(d[‘cake’]),B项正确。
32.以下代码的输出结果是( )。
s =[4,2,9,1]
s.insert(3,3)
print(s)
A.[4,2,9,1,2,3]
B.[4,3,2,9,1]
C.[4,2,9,2,1]
D.[4,2,9,3,1]
D 【解析】在Python语言中,想要在列表中的任意位置插入元素,一般使用insert()方法。insert()方法有两个参数:第一个参数代表在列表中的位置,第2个参数是在这个位置处插入的元素,注意:插入时,是插入该位置之前。列表下标从0开始,s=[4,2,9,1],s[3]=1,则执行s.insert(3,3)后,s =[4,2,9,3,1],最后print(s),结果为D选项。
33.在Python语言中,写文件操作时定位到某个位置所用到的函数是( )。
A.write()
B.writeall()
C.seek()
D.writetext()
C 【解析】在Python语言中,写文件操作时定位到某个位置所用到的函数是seek()。设f为文件变量,用法:f.seek(offset),含义:改变当前文件操作指针的位置,offset的值:0为文件开头;2为文件结尾。
34.以下对Python文件处理的描述中,错误的是( )。
A.当文件以文本方式打开时,读写按照字节流方式
B.Python能够以文本和二进制两种方式处理文件
C.Python通过解释器内置的open()函数打开一个文件
D.文件使用结束后可以用close()方法关闭,释放文件的使用授权
A 【解析】文件包括文本文件和二进制文件两种类型。Python对文本文件和二进制文件采用统一的操作步骤,即“打开-操作-关闭”,B项正确。采用文本方式读入文件,文件经过编码形成字符串,打印出有含义的字符;采用二进制方式打开文件,文件被解析为字节流,A项错误。Python通过open()函数打开一个文件,并返回一个操作这个文件的变量,语法:=open(,),C项正确。文件使用结束后要用close()方法关闭,释放文件的使用授权,语法:.close(),D项正确。
35.以下关于Python二维数据的描述中,错误的是( )。
A.表格数据属于二维数据,由整数索引的数据构成
B.二维数据由多条一维数据构成,可以看作一维数据的组合形式
C.一种通用的二维数据存储形式是CSV格式
D.CSV格式每行表示一个一维数据,用英文半角逗号分隔
A 【解析】二维数据也称表格数据,由关联关系数据构成,A项错误。二维数据由多个一维数据构成,可以看作是一维数据的组合形式,B项正确。CSV是二维数据的存储格式,C项正确。CSV格式的每行是一维数据,用英文逗号分隔,D项正确。
36.在Python语言中,读入CSV文件保存的二维数据,按特定分隔符抽取信息,最可能用到的函数是( )。
A.read()
B.join()
C.replace()
D.split()
D 【解析】在Python语言中,读取CSV格式文件中的二维数据采用遍历循环和字符串的split()方法相结合,示例如下:
f=open(“cpi.csv”,”r”)
ls = []
for line in f:
ls.append(line.strip(“\n”).split(“,”))
f.close()
37.以下代码执行后,book.txt文件的内容是( )。 fo = open(“book.txt”,”w”)
ls = [‘book’,’23’,’201009′,’20’]
fo.write(str(ls))
fo.close()
A.[‘book’,’23’,’201009′,’20’]
B.book,23,201009,20
C.[book,23,201009,20]
D.book2320100920
A 【解析】执行fo=open(“book.txt”,”w”),打开book.txt文本文件,打开模式为’w’(覆盖写模式);创建列表ls = [‘book’,’23’,’201009′,’20’];str()函数返回一个对象的字符串格式,str(ls)将列表类型的ls转换为字符串类型,fo.write(str(ls))将字符串写入book.txt文本文件中。故选A项。
38.在Python语言中,属于网络爬虫领域的第三方库是( )。
A.wordcloud
B.numpy
C.scrapy
D.PyQt5
C 【解析】属于网络爬虫领域的第三方库是scrapy;numpy库是Python语言在数据分析方面的第三方库;使用wordcloud可以方便地生成词云图,这是Python在数据可视化方面的第三方库;PyQt5库是Python语言在用户图形界面方向的第三方库。
39.在Python语言中,用于数据分析的第三方库是( )。
A.pandas
B.PIL
C.Django
D.flask
A 【解析】用于数据分析的第三方库是pandas,PIL是Python语言在图像处理方面的第三方库,Django和Flask库是Python在Web开发方向的第三方库。
40.在Python语言中,不属于机器学习领域第三方库的是( )。
A.Tensorflow
B.time
C.PyTorch
D.mxnet
B 【解析】在Python语言中,time是Python重要的标准库之一,用于处理时间相关的问题,不属于机器学习领域的第三方库。Tensorflow、PyTorch、mxnet均属于机器学习领域第三方库。
Loading …