1、 描述数据库系统中全局数据逻辑结构、且为全体用户公共数据视图的是()。
A. 概念模式
B. 外模式
C. 内模式
D. 中间模式
解析:本题考查的是数据库系统的内部结构体系。 数据库的三级模式结构包括:概念模式、内模式、外模式。概念模式,是数据库系统中全局数据逻辑结构的描述,是全体用户公共数据视图;外模式也称为子模式或用户模式。它是用户的数据视图,也就是用户所见到的数据模式,它由概念模式推导而出;内模式又称物理模式,它给出了数据库物理存储结构与物理存取方法。故本题答案为A。
2、定义课程的关系模式如下:
Course(C#,Cn,Cr,prC1#,prC2#)(其属性分别为课程号、课程名、学分、先修课程号1和先修课程号2),并且不同课程可以同名,则该关系最高是()。
A.2NF
B.BCNF
C.1NF
D.3NF
解析:本题考查点是范式。 对于关系模式,若其中的每个属性都已不能再分为简单项,则它属于第一范式模式(1NF)。 如果某个关系模式R为第一范式,并且R中每一个非主属性完全函数依赖于R的某个候选键,则称其为第二范式模式(2NF)。 如果关系模式R是第二范式,并且每个非主属性都不传递依赖于R的候选键,则称R为第三范式模式(3NF)。 比3NF更高级的范式是BCNF,它要求所有属性都不传递依赖于关系的任何候选键。 由题意可知,C#->Cn,C#->Cr,C#-> prC1#,C#-> prC2#,符合BCNF的定义。故本题答案为B。
3、在数据库的数据模型中,面向客观世界和用户,并与具体数据库管理系统无关的是()。
A.逻辑模型
B.概念模型
C.物理模型
D.面向对象的模型
解析:本题考查的是数据模型。 概念数据模型简称概念模型,它是一种面向客观世界、面向用户的模型、它与具体的数据库管理系统无关,与具体的计算机平台无关。概念模型着重于对客观世界复杂事物的结构描述及它们之间的内在联系的刻画。概念模型是整个数据模型的基础。故本题答案为B。
4、 数据库系统内部采用三级模式和模式间的二级映射,是为了提高数据库的物理独立性和()。
A. 逻辑独立性
B. 数据独立性
C. 安全性
D. 并发性
解析:本题考查的是数据库的内部结构体系。 数据库系统内部采用三级模式和模式间的二级映射,是为了提高数据库的数据独立性,即物理独立性与逻辑独立性。故本题答案为A。
5、定义学生选修课程的关系模式如下:
SC(S#,Sn,class,C#,Cn,G,Cr,T#)(其属性分别为学号、姓名、班级,课程号、课程名、成绩、学分、授课教师号),假定学生和课程都会有重名,并且每班的每门课只有一个老师教授,则下面不是非主属性对主属性部分依赖的是()。
A.(S#,C#)→G
B.S#→Sn
C.C#→Cn
D.C#→Cr
解析:本题考查的是数据库的逻辑设计。 函数依赖就是一个属性集依赖于别的属性集,或一个属性集决定别的属性集。属性集Y依赖于属性集X记为X->Y。 学号S#是主属性,学生姓名Sn会有重复值,为非主属性,学生姓名部分依赖于学号,即S#→Sn。 课程号C#是主属性,课程名Cn和学分Cr会有重复值,为非主属性,课程名和学分部分依赖于课程号,即C#→Cn,C#→Cr。故本题答案选A。
6、设栈的存储空间为S(1:60),初始状态为top=61。现经过一系列正常的入栈与退栈操作后,top=25,则栈中的元素个数为()。
A.25
B.35
C.26
D.36
解析:本题的考查知识点是栈及其基本运算。 根据题意,栈空间如图所示: / 也就是说,栈是向上增长的,每次压入一个元素,栈的TOP指针向上移动一位。 当压入第一个元素时,TOP指针指向61-1 = 60 当压入第二个元素时,TOP指针指向61-2 = 59 ...... 以此类推,当压入第N个元素时,TOP指针指向61-N,则N = 61-25 = 36。所以本题答案是D。
7、下列排序方法中,最坏情况下时间复杂度(即比较次数)最低的是()。
A.希尔排序
B.快速排序
C.简单插入排序
D.冒泡排序
解析:(1)冒泡排序:是一种最简单的交换类排序法,它是通过相邻数据元素的交换逐步将线性表变成有序。假设线性表的长度为n,则在最坏情况下,冒泡排序需要经过n/2遍的从前往后的扫描和n/2遍的从后往前的扫描,需要比较的次数为n(n-1)/2次。因此冒泡排序总的时间复杂度为/。 (2)快速排序:通常,快速排序被认为是,所有同数量级O(nlogn)的排序方法中,其平均性能最好。但是,若初始记录序列按关键字有序或基本有序时,快速排序将蜕化为起泡排序,其时间复杂度为/。 (3)希尔排序:将整个无序序列分割成若干小的子序列分别进行插入排序。在最坏情况下,希尔排序所需的比较次数为/。 (4)简单插入排序:是指将无序序列中的各元素依次插入到已经有序的线性表中。在简单插入排序中,每一次比较后最多移掉一个逆序,因此,这种排序方法的效率与冒泡排序法相同。在最坏情况下,简单插入排序需要n(n-1)/2次比较。所以本题答案是A。
8、某二叉树的后序遍历序列与中序遍历序列相同,均为ABCDEF,则按层次输出(同一层从左到右)的序列为()。
A.FEDCBA
B.CBAFED
C.DEFCBA
D.ABCDEF
解析:本题的考查知识点是二叉树的遍历。 二叉树遍历可以分为3种: 前序遍历:根结点→左子树→右子树; 中序遍历:左子树→根结点→右子树; 后序遍历:左子树→右子树→根结点。 二叉树的后序遍历序列和中序遍历序列均为ABCDEF,可知该树只有左子树结点,没有右子树结点,F为根结点。因此该树有6层,从顶向下从左向右依次为FEDCBA。所以本题答案是A。
9、下列排序法中,每经过一次元素的交换会产生新的逆序的是()。
A.冒泡排序
B.快速排序
C.简单插入排序
D.简单选择排序
解析:在数据元素的序列中,对于某个元素,如果其后存在一个元素小于它,则称之为存在一个逆序。 冒泡排序只交换相邻元素,但不是每次移动都产生新的逆序。 简单插入排序每一次比较后最多移掉一个逆序。 快速排序每一次交换移动都会产生新的逆序,因为当不会有新的逆序产生时,本轮比较结束。 简单选择排序的基本思想是先从所有n个待排序的数据元素中选择最小的元素,将该元素与第一个元素交换,再从剩下的n-1个元素中选出最小的元素与第2个元素交换,这样做不会产生逆序。所以本题答案是B。
10、某带链栈的初始状态为top=bottom=NULL,经过一系列正常的入栈与退栈操作后,top=bottom=20。该栈中的元素个数为()。
A.1
B.0
C.20
D.不确定
解析:本题的考查知识点是栈。 栈顶指针top动态反映了栈中元素的变化情况,栈元素入栈时在栈顶插入一个新元素,top指向新结点的数据域,元素退栈时取出栈顶元素并赋给一个指定的变量,top指向此时的第1个结点的数据域。经过一系列正常的操作后,如果top=bottom不等于NULL,则top=bottom同时指向唯一一个元素的数据域,此时栈中的元素个数为1;如果top=bottom=NULL,则栈中的元素个数为0。所以本题答案是A。
11、在Python语言中,可以作为源文件后缀名的是()。
A.png
B.pdf
C.py
D.ppt
解析:py可作为源文件后缀名。本题选C。
12、以下不属于Python语言保留字的是()。
A.goto
B.except
C.True
D.pass
解析:goto不属于Python语言保留字。本题选A。
13、以下代码的输出结果是()。
print( 0.1 + 0.2 == 0.3 )
A. True
B. False
C. -1
D. 0
解析:双等号==用于判断值是否相等,判断后的结果是True(真)或False(假),分别对应值相等或值不相等。左侧运算结果为0.30000000000000004,右侧结果为0.3,值不相等,所以输出False。本题选B
14、以下关于Python字符编码的描述中,错误的是()。
A.print(chr(65))输出A
B.chr(x)和ord(x)函数用于在单字符和Unicode编码值之间进行转换
C.Python字符编码使用ASCII编码
D.print(ord('a'))输出97
解析:Python字符编码可以使用ASCII编码和Unicode编码。本题选C。
15、以下代码的输出结果是()。
a = 10.99
print(complex(a))
A.0.99
B.10.99+j
C.10.99
D.(10.99+0j)
解析:complex(r,i)函数的作用是创建一个复数r+i*1j,其中i可以省略。本题选D。
16、以下关于Python循环结构的描述中,错误的是()。
A.continue只结束本次循环
B.遍历循环中的遍历结构可以是字符串、文件、组合数据类型和range()函数等
C.Python通过for、while等保留字构建循环结构
D.break用来结束当前当次语句,但不跳出当前的循环体
解析:break用来跳出最内层for或while循环,脱离该循环后程序从循环后的代码继续执行。本题选D。
17、以下构成Python循环结构的方法中,正确的是()。
A.if
B.loop
C.while
D.do...for
解析:Python语言的循环结构包括两种:遍历循环和无限循环。遍历循环使用保留字for,无限循环使用保留字while。本题选C。
18、以下代码绘制的图形是()。
import turtle as t
for i in range(1,5):
t.fd(50)
t.left(90)
A.五边形
B.正方形
C.三角形
D.五角星
解析:t.fd(50)表示沿着当前方向前进指定距离,t.left(90)表示向左旋转90度。range(start, stop[, step])表示计数从start开始,到stop结束,但不包括stop,步长默认为1,则i的取值为1、2、3、4,所以绘制的图形是正方形。本题选B。
19、以下关于Python语言的描述中,正确的是()。
A.条件11<=22<33是合法的,输出True
B.条件11<=22<33是合法的,输出False
C.条件11<=22<33是不合法的
D.条件11<=22<33是不合法的,抛出异常
解析:分支结构中的判断条件可以使用任何能够产生True或False的语句或函数。形成判断条件最常见的方式是采用关系操作符。11<=22<33是合法的条件,输出为True。本题选A。
20、以下代码的输出结果是()。
for i in range(1,6):
if i%4 == 0:
break
else:
print(i,end =",")
A.1,2,3,5,
B.1,2,3,4,
C.1,2,3,
D.1,2,3,5,6
解析:range(start, stop[, step])表示计数从start开始,到stop结束,但不包括stop,步长默认为1,则i的取值为1、2、3、4、5。根据程序可知,当i不能被4整除时,执行输出语句;当i能被4整除时,跳出for循环,则输出结果为"1,2,3,"。本题选C。
21、以下关于Python语言return语句的描述中,正确的是()。
A.return只能返回一个值
B.函数必须有return语句
C.函数可以没有return语句
D.函数中最多只有一个return语句
解析:函数中可以有多个return语句。函数可以没有return,此时函数不返回值。当函数使用return返回多个值时,可以使用一个变量或多个变量保存结果。本题选C。
22、以下关于Python全局变量和局部变量的描述中,错误的是()。
A.局部变量在函数内部创建和使用,函数退出后变量被释放
B.全局变量一般指定义在函数之外的变量
C.使用global保留字声明后,变量可以作为全局变量使用
D.当函数退出时,局部变量依然存在,下次函数调用可以继续使用
解析:局部变量指在函数内部定义的变量,仅在函数内部有效,当函数退出时变量将不再存在。本题选D。
23、以下代码的输出结果是()。
CList = list(range(5))
print(2 in CList)
A.0
B.False
C.True
D.-1
解析:range(start, stop[, step])表示计数从start开始,到stop结束,但不包括stop,步长默认为1。start默认从0开始,range(5)等价于range(0,5),则CList中的元素取值为0、1、2、3、4。 x in S方法的作用是如果x是S的元素,返回True,否则返回False。2是CList中的元素,所以输出True。本题选C。
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()函数是Python内置函数
解析:代码中的n是非可选参数。可选参数一般放在非可选参数的后面,即定义函数时,先给出所有非可选参数,然后再分别列出每个可选参数即对应的默认值。本题选A。
25、以下代码的输出结果是()。
def func(a,b):
a *= b
return a
s = func(5,2)
print(s)
A.25
B.20
C.10
D.5
解析:由代码可知,a被赋值为5,b被赋值为2,执行语句a *= b,即a=a*b,a的值为10,func(5,2)返回值为10,即s的值为10。本题选C。
26、以下代码的输出结果是()。
ls = ["car","truck"]
def funC(A):
ls.append(A)
return
funC("bus")
print(ls)
A.["bus"]
B.["car","truck"]
C.["car","truck", "bus"]
D.[]
解析:ls.append(x)的作用是在列表ls最后增加一个元素x。输出["car","truck", "bus"]。本题选C。
27、在Python语言中,不属于组合数据类型的是()。
A.列表类型
B.字符串类型
C.复数类型
D.字典类型
解析:Python语言中的组合数据类型包括集合类型、序列类型(列表类型)和映射类型(字典类型),而复数类型属于基本数据类型中的数字类型。本题选C。
28、以下代码的输出结果是()。
vlist = list(range(5))
print(vlist)
A.0;1;2;3;4;
B.0 1 2 3 4
C.0,1,2,3,4,
D.[0, 1, 2, 3, 4]
解析:range(a,b,s)的作用是从a到b以s为步长产生一个序列。 list(x)的作用是创建或将变量x转换成一个列表类型。代码执行后的输出结果是[0, 1, 2, 3, 4]。本题选D。
29、以下关于列表变量ls操作的描述中,错误的是()。
A.ls.reverse():反转列表ls中所有元素
B.ls.append(x):在ls最后增加一个元素
C.ls.copy():生成一个新列表,复制ls的所有元素
D.ls.clear():删除ls的最后一个元素
解析:ls.clear():删除ls中所有元素。本题选D。
30、以下关于Python字典变量的定义中,错误的是()。
A.d = {1:[1,2], 3:[3,4]}
B.d = {[1,2]:1, [3,4]:3}
C.d = {(1,2):1, (3,4):3}
D.d = {'张三':1, '李四':2}
解析:Python语言中的字典使用大括号{}建立,每个元素是一个键值对,使用方式如下: {<键1>:<值1>,<键2>:<值2>……<键n>:<值n>} 其中,键和值通过冒号连接,不同键值对通过逗号隔开,键不可变。本题选B。
31、列表listV = list(range(10)),以下能够输出列表listV中最大元素的是()。
A.print(listV.reverse(i)[0])
B.print(listV.max())
C.print(max(listV()))
D.print(max(listV))
解析:max(ls)是列表的常用操作函数,表示列表ls中的最大值。本题选D。
32、以下代码的输出结果是()。
ls = []
for m in 'AB':
for n in 'CD':
ls.append(m+n)
print(ls)
A. ABCD
B. AABBCCDD
C. ACADBCBD
D. ['AC', 'AD', 'BC', 'BD']
解析:Python通过保留字for实现遍历循环,使用方法如下: for <循环变量> in <遍历结构> <语句块> 遍历循环可以理解为从遍历结构中逐一提取元素,放在循环变量中,对于每个所提取的元素执行一次语句块。for语句的循环执行次数是根据遍历结构中元素个数确定的。 ls.append(x)方法是列表的常用操作方法,作用是在列表最后增加一个元素x。 题目中的代码循环过程如下: m = A,n = C,m+n = AC; m = A,n = D,m+n = AD; m = B,n = C,m+n = BC; m = B,n = D,m+n = BD。代码执行后的输出结果是['AC', 'AD', 'BC', 'BD']。本题选D。
33、以下关于Python文件打开模式的描述中,错误的是()。
A.只读模式r
B.覆盖写模式w
C.追加写模式a
D.创建写模式n
解析:创建写模式x,文件不存在则创建,存在则返回异常FileExistsError。本题选D。
34、以下关于CSV文件的描述中,错误的是()。
A.CSV文件可以保存一维数据或二维数据
B.CSV文件的每一行是一维数据,可以使用Python的列表类型表示
C.CSV格式是一种通用的文件格式,主要用于不同程序之间的数据交换
D.CSV文件只能采用Unicode编码表示字符
解析:逗号分隔的存储格式叫作CSV格式(逗号分隔值),是一种通用的、相对简单的文件格式,用途广泛,主要用于不同程序之间的数据交换;CSV文件不需要特定的字符编码;CSV文件的每一行是一维数据,整个CSV文件是一个二维数据;一维数据和二维数据都可以使用CSV格式保存成CSV文件。本题选D。
35、给定列表ls = [1, 2, 3, "1", "2", "3"],其元素包含2种数据类型,列表ls的数据组织维度是()。
A.二维数据
B.一维数据
C.多维数据
D.高维数据
解析:一维数据由对等关系的有序或无序数据构成,采用线性方式组织,对应于数学中数组的概念。一维数据十分常见,任何表现为序列或集合的内容都可以看作是一维数据。本题选B。
36、在Python语言中,使用open()打开一个Windows操作系统D盘下文件,路径名错误的是()。
A.D:\PythonTest\a.txt
B.D:\\PythonTest\\a.txt
C.D:/PythonTest/a.txt
D.D:// PythonTest//a.txt
解析:打开并关闭文件的操作,需要文件的路径名,由于"\"是字符串中的转义符,所以表示路径时,使用"\\"或"//"或"/"代替"\"。本题选A。
37、在Python语言中,将二维数据写入CSV文件,最可能使用的函数是()。
A.exists()
B.split()
C.strip()
D.join()
解析:join()方法用于将序列中的元素以指定的字符连接生成一个新的字符串。 二维数据存储为CSV格式,需要将二维列表对象写入CSV格式文件以及将CSV格式读入成二维列表对象。 二维列表对象输出为CSV格式文件方法采用遍历循环和字符串的join()方法相结合。实例如下: #ls代表二维列表,此处省略 f = open("cpi.csv","w") for row in ls: f.write(",".join(row)+"\n") f.close()本题选D。
38、在Python语言中,属于网络爬虫领域的第三方库是()。
A.PyQt5
B.numpy
C.openpyxl
D.scrapy
解析:Python网络爬虫领域的第三方库:scrapy和request。 numpy是Python语言中数据分析方向的第三方库,openpyxl是python语言中文本处理方向的第三方库,PyQt5是Python语言中用户图形界面方向的第三方库。本题选D。
39、在Python语言中,用于数据分析的第三方库是()。
A.PIL
B.pandas
C.Django
D.flask
解析:Python语言中数据分析方向的第三方库:numpy、scipy、pandas,而PIL第三方库可以完成图像归档和图形处理两方面功能需求。本题选B。
40、在Python语言中,不属于机器学习领域第三方库的是()。
A.MXNet
B.Tensorflow
C.PyTorch
D.Arcade
解析:Aracde是python语言中的图形库。本题选D。