全国计算机等级考试二级Python真题及解析8.docx
《全国计算机等级考试二级Python真题及解析8.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级Python真题及解析8.docx(21页珍藏版)》请在冰豆网上搜索。
![全国计算机等级考试二级Python真题及解析8.docx](https://file1.bdocx.com/fileroot1/2023-7/7/e40195e6-ec64-44fd-9e36-1ee0036351e8/e40195e6-ec64-44fd-9e36-1ee0036351e81.gif)
全国计算机等级考试二级Python真题及解析8
全国计算机等级考试二级Python真题及解析(8)
1.数据库设计中反映用户对数据要求的模式是。
A概念模式
B内模式
C设计模式
D外模式正确答案:
D
2.一个工作人员可使用多台计算机,而一台计算机被多个人使用,则实体工作人员与实体计算机之间的联系是。
A多对一
B多对多
C一对一
D一对多正确答案:
B
3.软件生命周期是指。
A软件的运行维护过程
B软件从需求分析、设计、实现到测试完成的过程
C软件产品从提出、实现、使用维护到停止使用退役的过程
D软件的开发过程
正确答案:
C
4.软件测试的目的是。
A改正程序中的错误
B发现并改正程序中的错误
C评估软件可靠性
D发现程序中的错误
正确答案:
D
5.面向对象方法中,继承是指。
A类之间共享属性和操作的机制
B各对象之间的共同性质
C一组对象所具有的相似性质
D一个对象具有另一个对象的性质正确答案:
A
6.层次型、网状型和关系型数据库划分原则是。
A数据之间的联系方式
B文件的大小
C记录长度
D联系的复杂程度
正确答案:
A
7.下列数据结构中,能够按照"先进后出"原则存取数据的是。
A栈
B二叉树
C队列
D循环队列正确答案:
A
8.下列数据结构中,属于非线性结构的是。
A二叉树
B带链栈
C队列循环
D带链队列正确答案:
A
9.下列叙述中正确的是。
A有序线性表既可以采用顺序存储结构,也可以采用链式存储结构
B队列是"先进后出"的线性表
C队列是"先进后出"的线性表
D循环队列是非线性结构
正确答案:
A
10.下列选项中不属于结构化程序设计原则的是。
A逐步求精
B逐步求精
C模块化
D可封装
正确答案:
D
11.以下选项不属于程序设计语言类别的是:
A机器语言
B汇编语言
C高级语言
D解释语言
正确答案:
D
12.s="theskyisblue',表达式print(s[-4:
],s[:
-4])的结果是:
Atheskyisblue
Bblueisskythe
Cskyisbluethe
Dbluetheskyis
正确答案:
D
13.以下关于程序控制结构描述错误的是:
A分支结构包括单分支结构和二分支结构
B二分支结构组合形成多分支结构
C程序由三种基本结构组成
DPython里,能用分支结构写出循环的算法正确答案:
D
14.以下关于python内置函数的描述,错误的是:
Ahash()返回一个可计算哈希的类型的数据的哈希值
Btype()返回一个数据对应的类型
Csorted()对一个序列类型数据进行排序
Did()返回一个数据的一个编号,跟其在内存中的地址无关正确答案:
D
15.以下关于函数参数传递的描述,错误的是:
A定义函数的时候,可选参数必须写在非可选参数的后面
B函数的实参位置可变,需要形参定义和实参调用时都要给出名称C调用函数时,可变数量参数被当做元组类型传递到函数中
DPython支持可变数量的参数,实参用”*参数名”表示正确答案:
D
16.以下程序的输出结果是:
x=[90,87,93]
y=["zhang","wang","zhao"]print(list(zip(y,x)))
A('zhang',90),('wang',87),('zhao',93)
B[['zhang',90],['wang',87],['zhao',93]]C['zhang',90],['wang',87],['zhao',93]
D[('zhang',90),('wang',87),('zhao',93)]正确答案:
D
17.以下关于组合数据类型的描述,正确的是:
A集合类型中的元素是有序的
B序列类似和集合类型中的元素都是可以重复的
C一个映射类型变量中的关键字可以是不同类型的数据
D利用组合数据类型可以将多个数据用一个类型来表示和处理正确答案:
D
18.以下不是Python语言关键字的选项是:
Areturn
Bdef
Cin
Ddefine
正确答案:
D
19.以下选项不属于Python整数类型的是:
A二进制
B十进制
C八进制
D十二进制
正确答案:
D
20.以下对Python程序缩进格式描述错误的选项是:
A不需要缩进的代码顶行写,前面不能留空白
B缩进可以用tab键实现,也可以用多个空格实现
C严格的缩进可以约束程序结构,可以多层缩进
D缩进是用来格式美化Python程序的
正确答案:
D
21.
当键盘输入”3”的时候,以下程序的输出结果是:
r=input("请输入半径:
")ar=3.1415*r*rprint("{:
.0f}".format(ar))A28
B28.27
C29
DTypeError
正确答案:
D
22.定义x=2.6,表达式int(x)的结果是:
A3
B2.6
C2.0
D2
正确答案:
D
23.
以下程序的输出结果是:
s="python\n编程\t很\t容易\t学"print(len(s))
A20
B12
C5
D16
正确答案:
D
24.以下关于循环结构的描述,错误的是:
A遍历循环的循环次数由遍历结构中的元素个数来体现
B非确定次数的循环的次数是根据条件判断来决定的
for语句来实
C非确定次数的循环用while语句来实现,确定次数的循环用
现
D遍历循环对循环的次数是不确定的
正确答案:
D
25.
以下程序的输出结果是:
foriinreversed(range(10,0,-2)):
print(i,end="")
A0246810
B12345678910
C9876543210
D246810
正确答案:
D26.以下程序的输出结果是:
foriin"thenumberchanges":
ifi=='n':
break
else:
print(i,end="")AtheumberchagesBthenumberchangesCtheumberchagesDthe正确答案:
D
27.
以下程序的输出结果是:
t="Python"
print(tift>="python"else"None")
APython
Bpython
Ct
DNone
正确答案:
D
28.以下程序的输出结果是:
fo=open("text.csv",'w')x=[[90,87,93],[87,90,89],[78,98,97]]b=[]
forainx:
foraaina:
b.append(str(aa))
fo.write(",".join(b))
fo.close()A[90,87,93,87,90,89,78,98,97]B90,87,9387,90,8978,98,97C[[90,87,93],[87,90,89],[78,98,97]]D90,87,93,87,90,89,78,98,97正确答案:
D
29.以下程序的输出结果是:
foriinrange(3):
forsin"abcd":
ifs=="c":
break
print(s,end="")
Aabcabcabc
Baaabbbccc
Caaabbb
Dababab正确答案:
D
30.以下程序的输出结果是:
ab=4
defmyab(ab,xy):
ab=pow(ab,xy)print(ab,end="")
myab(ab,2)
print(ab)
A44
B1616
C416
D164
正确答案:
D
31.以下关于字典类型的描述,错误的是:
A字典类型是一种无序的对象集合,通过键来存取
B字典类型可以在原来的变量上增加或缩短
C字典类型可以包含列表和其他数据类型,支持嵌套的字典
D字典类型中的数据可以进行分片和合并操作
正确答案:
D
32.以下程序的输出结果是:
ls=list("theskyisblue")
a=ls.index('s',5,10)
print(a)
A4
B5
C10
D9
正确答案:
D
33.以下程序的输出结果是:
L2=[1,2,3,4]
L3=L2.reverse()print(L3)
A[4,3,2,1]
B[3,2,1]
C[1,2,3,]
DNone
正确答案:
D
34.以下属于Python图像处理第三方库的是:
Amayavi
BTVTK
Cpygame
DPIL
正确答案:
D
35.以下关于Python文件的描述,错误的是:
Aopen函数的参数处理模式'b'表示以二进制数据处理文件
Bopen函数的参数处理模式'+'表示可以对文件进行读和写操作
Creadline函数表示读取文件的下一行,返回一个字符串
Dopen函数的参数处理模式'a'表示追加方式打开文件,删除已有内容
正确答案:
D
36.以下程序的输出结果是:
d={"zhang":
"China","Jone":
"America","Natan":
"Japan"}
forkind:
print(k,end="")
AChinaAmericaJapan
Bzhang:
ChinaJone:
AmericaNatan:
Japan
C“zhang””Jone””Natan”
DzhangJoneNatan正确答案:
D
37.以下程序的输出结果是:
fr=[]defmyf(frame):
fa=['12','23']
fr=fa
myf(fr)print(fr)A['12','23']
B'12','23'
C1223
D[]正确答案:
D
38.以下属于Python机器学习第三方库的是:
Ajieba
BSnowNLP
Closo
Dsklearn正确答案:
D
39.以下属于PythonWeb开发框架第三方库的是:
APanda3D
Bcocos2d
CPygame
DFlask正确答案:
D
40.以下关于random库的描述,正确的是:
A设定相同种子,每次调用随机函数生成的随机数不相同
B通过fromrandomimport*引入random随机库的部分函数
Cuniform(0,1)与uniform(0.0,1.0)的输出结果不同,前者输出随机整数,后者输出随机小数
Drandint(a,b)是生成一个[a,b]之间的整数
正确答案:
D
二、操作题
1.101
从键盘输入一个人的身高和体重的数字,以英文逗号隔开,在屏幕上显示输出这个人的身体质量指数(BMI),BMI的计算公式是BMI=体重(kg)/身高2(m2)。
参照代码模板完善代码,实现下述功能,本题支持自动评阅。
输入输出示例
输入
输出
示例1
1.6,50
BMI是19.5
习题讲解
h,w=eval(input())#请输入身高(m)和体重(kg),逗号隔开print("BMI是{:
.1f}".format(w/(h*h)))
#需要掌握浮点数的输出格式符和eval用法
2.102
参照代码模板完善代码,实现下述功能。
从键盘输入一个由1和0组成的二进制字符串s,转换为十进制数输出显
示在屏幕上,示例如下:
输入
请输入一个由1和0组成的二进制数字串:
1101
输出
转换成十进制数是:
13
本题支持自动评阅
输入输出示例
输入
输出
示例1
1101
13
习题讲解
s=input()#请输入一个由1和0组成的二进制数字串:
d=Owhiles:
d=d*2+(ord(s[0])-ord('O'))
s=s[1:
]print("转换成十进制数是:
{}".format(d))
#需要掌握print和format的格式用法,字符串的内置处理函数
3.103
参照代码模板完善代码,实现下述功能,本题支持自动评阅:
计算两个向量的内积。
从键盘接收一个整数n,作为一维向量的长度;然后输入n个整数,以英文逗号隔开,存成一个向量X,然后再接收另n个整数,以逗号隔开,存成另一个向量y,然后计算两个向量对应元素的乘积的和。
在屏幕上输出结果。
向星X=x1,x2l...xn:
y=ylfy2t-yn>
示例如下:
输入
3
1,2,3
4,5,6
输出
x和y的内积是:
32
输入输出示例
输入
输出
示例1
3
x和y的内积
1,2,3
是:
32
4,5,6
习题讲解
答案:
n=eval(input())#"请输入向量的长度n:
"
xin=input().split(',')#"请输入向量x的{}个整数,以英文逗号分隔:
".format(n)
yin=input().split(',')#"请输入向量y的{}个整数,以英文逗号分隔:
".format(n)sum=0foriinrange(n):
sum+=int(xin[i])*int(yin[i])print("x和y的内积是:
",sum)
要点:
1.要用输入进去的n来给用户提示,所以在input里用到了format()
2.输入的数据是带逗号的字符串格式,需要分割并且放到列表里,用到split()
3.求内积的公式需要记住,这属于基础知识
4•列表里的数据仍然还是字符串,所以计算的时候,每个元素要单个的用int做转换,成为证书,也可以用eval
5.题目没要求处理输入的异常,自己可以扩展一下,处理输入的异常,给出错误提示,不要让程序异常退出。
4.201
在代码模板中给出了程序框架,请按照框架中的说明,完善横线处代码,不得修改其它代码。
使用turtle库的turtle.circle()函数和turtle.seth()函数绘制套圈,最小的圆圈半径为10像素,不同圆圈之间的半径差是40像素。
效果如下图所示。
自动评阅说明
使用字符串形式输出①,②,③中应填代码即可
以自动评阅得分
例如,如果代码为:
#代码模板|#你的代码importturtle|importturtle
d=0|d=0foriinrange_1_:
|foriinrange
(1):
turtle.fd(2_)|turtle.fd(100)
turtle._3—|turtle.fd(100+(i*3))
turtle.seth(d)|turtle.seth(d)
则在提交代码页面输入:
print('1','100','fd(100+(i*3))')
提交后即可以查看得分
注:
如果有运算符,请在运算符两侧加上空格
习题讲解
importturtler=10
head=90foriinrange(4):
turtle.seth(head)turtle.circle(r)r=r+40
turtle.done()
会使用turtle库的主要函数,并利用循环结构提高代码简洁性
5.202
在代码模板中给出了程序框架,根据文件内的提示补充完善代码,可以修改其他代码。
从键盘输入一个中文字符串变量S,内部包含中文逗号和句号。
问题1:
(8分)计算字符串s中的中文字符个数,不包括中文逗号和句号字符。
示例如下:
输入:
没有人不爱惜他的生命,但很少人珍视他的时间。
输出:
中文字符数为20。
问题2:
(7分)用jieba分词后,显示分词的结果,用”/分”隔。
并显示输出分词后的中文词语的个数,不包含逗号和句号。
示例如下:
输入:
没有人不爱惜他的生命,但很少人珍视他的时间。
输出:
没有/人/不/爱惜/他/的/生命/但/很少/人/珍视/他/的/时间/中文词语数为14
自动评阅要求问题1和2同时输出,见示例。
输入输出示例
输入
输出
示例1
没有人不爱惜他的生命,但很少人珍视他的时间。
没有/人/不/爱惜/他/的/生命/但/很少/人/珍视/他/的/时间/
中文词语数为14。
中文字符数为20。
习题讲解
importjieba
s=input()#请输入一个中文字符串,包含逗号和句号
s=s.replace(:
","").replace("。
","")
n=len(s)
k=jieba.lcut(s)
m=len(k)foriink:
print(i,end="/")print("\n中文词语数为{}。
".format(m))print("中文字符数为{}。
".format(n))
会使用jieba分词的主要函数
6.301
使用字典和列表型变量完成学生通讯录管理,名单由考生目录下文件address.txt给出,每行是一个学生的信息。
示例如下:
学号,姓名,电话号码,地址
101,aa,12345678,Beijing
102,bb,23456781,shanghai
问题1:
参照代码模板完善代码,实现下述功能。
在屏幕上显示功能菜单,功能菜单示例如下:
显示所有信息
追加信息
删除信息
请输入数字1-3选择功能:
接收用户输入数字选择功能,如果输入错误,要求用户重新输入。
如果输入正确,在屏幕上显示提示语句:
您选择了功能1/2/3.(5分)
问题2:
在问题1的代码基础上完善代码,实现下述功能。
实现功能1――
当用户选择1的时候,从通讯录文件读取信息,显示所有信息。
(5分)
示例如下:
显示所有信息
追加信息
删除信息
请输入数字1-3选择功能:
1
101,aa,12345678,Beijing
102,bb,23456781,shanghai
问题3:
在问题2的代码基础上完善代码,实现下述功能。
实现功能2――
追加信息。
让用户从键盘输入一个学生的信息,用逗号隔开。
在屏幕上显示追加后的所有信息,并将信息写入文件new_address.txt中,文件格式与address相
同。
(10分)
New_address.txtd内容示例如下:
101,aa,12345678,Beijing
102,bb,23456781,shanghai
103,cc,34567,tianj
输入输出示例
输入输出
问题1
1
您选择了功能1.
问题2
1
101,aa,12345678,Beijing
102,bb,23456781,shanghai
问题3
2
103,cc,34567,tianj
101,aa,12345678,Beijing
102,bb,23456781,shanghai
103,cc,34567,tianj
内容输出到文件中,
new_address.txt
本题输出较为复杂,暂不支持自动评阅。
print('ok')提交即可得分
习题讲解
#P301-1
menu=["1.显示所有信息","2.追加信息","3.删除信息"]
flag=1whileflag:
forminmenu:
print(m)
try:
ch=int(input("请输入数字1-3选择功能:
"))
flag=0
except:
flag=1
ifch<1orch>3:
flag=1
print("您选择了功能",ch)
#P301-2##-*-coding=utf-8-*-defdisplay。
:
fi=open("text.csv",'r')
forlinfi:
l=l.replace('\n','')
print(l)
fi.close()
#
menu=["1.显示所有信息","2.追加信息","3.删除信息"]
flag=1whileflag:
forminmenu:
print(m)
try:
ch=int(input("请输入数字1-3选择功能:
"))
flag=0
except:
flag=1
ifch<1orch>3:
flag=1
ifch==1:
display()elifch==2:
passelifch==3:
pass
#P301-3defdisplay():
fi=open("address.txt",'r')
forlinfi:
l=l.replace('\n','')
print(l)
fi.close()
definsertrec():
fi=open("address.txt",'r')
fo=open("new_address.txt",'w')
la=[]
forlinfi:
la.append(l.replace('\n',''))
rec=input("请输入要插入的信息,以逗号隔开,示例:
103,cc,34567812,tianjing:
")
la.append(rec)
forlinla:
fo.write(l)
fo.write('\n')
fi.close()
fo.close()
menu=["1.显示所有信息","2.追加信息","3.删除信息"]
flag=1whileflag:
forminmenu:
print(m)
try:
ch=int(input("请输入数字1-3选择功能:
"))
flag=0
except:
flag=1
ifch<1orch>3:
flag=1
ifch==1:
display()elifch==2:
insertrec()elifch==3:
pass#
这个题目演示了一个简单的交互式的信息管理软件的开发思路,分为三个小题目,循序渐进,逐步扩展。
从菜单的显示到循环接收用户输入选项,主要使用了列表的显示,while循环结构和for循环结构,以及用try-except来处理用户输入异常。
利用功能函