一、单选题
1、请选择,下面代码运行之后的结果是?( )
a = ‘2’
b = ‘4’
try:
c = a * b
print(c)
except:
print(‘程序出错!’)
else:
print(‘程序正确!’)
A、24
B、8
C、程序出错!
D、程序正确!
2、下面程序执行结果是?( )
a=[‘春’,‘夏’,‘秋’,‘冬’]
c=list(enumerate(a))
print(c)
A、[(0, '春'), (1, '夏'), (2, '秋'), (3, '冬')]
B、[[0, '春'], [1, '夏'], [2, '秋'], [3, '冬']]
C、[(1, '春'), (2, '夏'), (3, '秋'), (4, '冬')]
D、[[1, '春'], [2, '夏'], [3, '秋'], [4, '冬']]
3、下面程序执行结果是?( )
s=‘123456789’
print(min(s)+max(s))
A、1
B、9
C、10
D、19
4、打开b.txt文件,将"Hello Tom!"写入文件,下列语句正确的是?( )
A、f.write(['Hello'],[Tom!])
B、f.read('Hello',' Tom!')
C、f.write('Hello Tom!')
D、f.read('Hello Tom!')
5、下列数据中,最大的数值是?( )
A、int('16',10)
B、int('110',2)
C、int('11',16)
D、int('1111',2)
6、十六进制数7E转换为二进制数是几位数?( )
A、7
B、6
C、4
D、2
7、表达式int(‘13’,8)的返回值是?( )
A、12
B、11
C、10
D、15
8、有如下代码:
res = []
f = open(‘Python08.txt’,‘r’) #Python08.txt中共4行诗句
p = f.readlines()
for s in p:
res.append(s)
print(res)
f.close()
对于该段代码,说法不正确的是?( )
A、程序的功能是按行读取文本文件中的内容,并将其逐一写入列表res
B、此处readlines()用法错误,应改成readline()
C、该文本文件和程序代码文件在同一文件夹下
D、参数'r'不允许修改该文本文件
9、有代码如下:
s=[“白日依山尽”,“黄河入海流”,“欲穷千里目”,“更上一层楼”]
f=open(‘sj.txt’,‘w’)
f.write(‘\n’.join(s))
f.close()
关于上述代码,说法不正确的是?( )
A、写入文本文件的步骤主要是打开——写入——关闭
B、f.write('\n'.join(s))与f.write(' '.join(s)+'\n')的功能是相同的
C、write()的参数是一个字符串,而writelines()的参数可以是字符串也可以是字符序列
D、该代码的功能是将列表中的诗句按行写入文本文件
10、编写程序代码时,我们经常会犯错,对于Python的异常处理,描述正确的是?( )
A、可以用if…elif…else…进行异常处理
B、异常处理可以弥补程序漏洞,让程序在任何情况下都不会终止运行
C、通过异常处理语句,当程序输入错误时,仍可以让程序继续运行
D、当遇到错误语句时,将执行try代码块语句
11、若scores=“9,7,8,9,6,5”,则list(scores)的结果是?( )
A、[9,7,8,9,6,5]
B、['9','7','8','9','6','5']
C、['9', ',', '7', ',', '8', ',', '9', ',', '6', ',', '5']
D、9,7,8,9,6,5
12、下列表达式的结果为True的是?( )
A、len("13"+"4")>14
B、ord(min("banana"))<65
C、sum([13,14,16])==53
D、any(["a","b","","d"])
13、下列有关于函数的说法,正确的是?( )
A、bool( )函数是一个类型转换函数,用于将给定参数转换为布尔类型,若没有参数,则出错
B、ascii()函数和ord()函数功能都是返回一个数值类型的数据
C、filter()函数用于过滤序列,过滤不符合条件的元素,一般由两个参数组成,即函数和序列
D、map()函数主要用于画地图
14、下列表达中,和range(8)的结果相同的是?( )
A、range(0,8)
B、range(1,8)
C、range(0,8,2)
D、range(1,9)
15、已知x,y,z=map(int,[‘20’,‘2’,‘3’]),则表达式x+y+z的结果是?( )
A、程序出错
B、2023
C、21
D、25
16、《孙子算经》是我国古代重要的数学著作,其中有一题:"今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?"小王同学用Python编写了如下程序:
x=1
while x>0:
if not ( ):
x+=1
else:
print(x)
x+=1
关于上述程序,下列说法不正确的是?( )
A、把第一个x+=1改成break,则程序输出一个结果
B、括号内应填入的代码是x%3==2 and x%5==3 and x%7==2
C、该程序是个死循环
D、该程序将有无穷多个输出
17、下列关于二维数据的描述,正确的是?( )
A、二维数据就是由两个一维数据组成
B、二维数据由多个一维数据组成
C、二维数据的每一个一维数据之间,只能采用逗号进行分隔
D、二维数据不适合以表格的形式进行存储
18、使用open函数打开某个CSV格式文件后,如果要将整个文件里的内容读取到一个列表中,需要使用以下文件对象的哪个函数?( )
A、read()
B、readline()
C、readlines()
D、flush()
19、
abs()是Python的内置函数,执行abs(-1.00)语句返回的结果是?( ) |
A、-1.00
B、1
C、1.0
D、1.00
20、divmod()是Python的内置函数。对应变量x和y,divmod(y,x)返回的结果是?( )
A、(x//y, x%y)
B、(x%y, x//y)
C、(y//x, y%x)
D、(y%x,y//x)
21、在交互式编程环境下执行a = input(“请输入考试成绩:”)语句后,通过数字键盘输入数值89.5。输入完成后,查看变量a的数据类型,会是下列哪一种?( )
A、float
B、int
C、str
D、bool
22、执行print(list(range(4)))语句后,显示的结果是?( )
A、[0,1,2,3]
B、[1,2,3,4]
C、[0,0,0,0]
D、['' ,'' ,'' ,'' ]
23、暴力破解是一种常见的网络攻击行为,它采用反复试错的方法去尝试破解用户的密码。这种黑客工具主要使用以下哪种算法进行设计?( )
A、枚举算法
B、解析算法
C、排序算法
D、对分查找算法
24、
对一组数据"6,1,3,2,8"进行排序,按从小到大的顺序进行排列,使用冒泡算法进行编程,则第一轮过后,排序的结果是?( ) |
A、1,6,3,2,8
B、1,3,6,2,8
C、1,3,2,6,8
D、1,2,3,6,8
25、二进制数11110010转换为十六进制数是?( )
A、1502
B、152
C、F2
D、F02
二、判断题
26、下列这段代码能够正常运行。对吗?( )while True : a = input('请输入一个整数,若不是整数将会让你重新输入: ' ) try: b = int(a) except: print('你输入的不是整数!将返回重输。') else: print('你输入的是整数,程序结束。') break
A 正确
B 错误
27、一组有n个元素的数列,如采用顺序查找法找到数列中的某一个元素,平均查找次数为 (n+1)/2 次。( )
A 正确
B 错误
28、十进制数转十六进制数以后,位数一定变少了。( )
A 正确
B 错误
29、二进制数1101011011转换成十六进制数是35B。( )
A 正确
B 错误
30、使用open()方法一定要保证关闭文件对象,即调用close()方法。( )
A 正确
B 错误
31、file=open('fruits.csv','r')name=file.read().strip('\n').split(',')file.close()上述代码的功能是读取文件中的数据到列表。( )
A 正确
B 错误
32、a=['shanghai','beijing','tianjin','chongqing','hangzhou']with open ('city.csv','w')as f:f.write(','.join(a)+'\n')本段代码最后还缺少一条'f.close()'语句以关闭文件。( )
A 正确
B 错误
33、sort()与sorted()函数的区别在于前者默认是升序,后者默认是降序。( )
A 正确
B 错误
34、round()函数属于数学函数,可用于近似保留小数位数。( )
A 正确
B 错误
35、sum()函数不仅可以对列表数据进行求和,也可以对元组数据进行求和。( )
A 正确
B 错误
三、编程题
36、某班级期中考试成绩汇总在文件"score.csv"中,包含了语文、数学、英语三科的分数,数据内容如下图显示:
小明编写了如下程序,读取成绩文件中的数据,并分别计算语文、数学、英语三科成绩的平均分,请你补全代码。
import csv
ChineseNum=0
MathNum=0
EnglishNum=0
num=0
with open(‘/data/score.csv’,encoding=‘utf-8’) as csv_file:
row = csv.reader(csv_file, delimiter=‘,’)
next(row) # 读取首行
for r in row:
ChineseNum += float(++①++)
MathNum += float(++②++ )
EnglishNum += float(++③++ )
num += ++④++
print(“语文平均成绩是:%.2f”%(ChineseNum/num))
print(“数学平均成绩是:%.2f”%(MathNum/num))
print(“英语平均成绩是:%.2f”%(EnglishNum/num))
参考答案:
参考程序: import csv ChineseNum=0 MathNum=0 EnglishNum=0 num=0 with open(‘/data/score.csv’,encoding=‘utf-8’) as csv_file: row = csv.reader(csv_file, delimiter=‘,’) next(row) # 读取首行 for r in row: ChineseNum += float(r[0] ) MathNum += float**(** r[1] ) EnglishNum += float(r[2] ) num += 1 print(“语文平均成绩是:%.2f”%(ChineseNum/num)) print(“数学平均成绩是:%.2f”%(MathNum/num)) print(“英语平均成绩是:%.2f”%(EnglishNum/num)) |
37、
新学期到了,学校接收了一批捐赠的图书,小明编写了一个简单的程序用来管理图书,并支持借阅功能。为了提高查找图书的效率,小明使用了二分查找法来设计图书借阅功能。以下是小明编写的图书借阅管理程序,请你补全代码。 library=dict() #用字典生成一个图书管理数据结构(字典的键为编号,字典的值为[‘书名’,本数]) #书籍入库 nums=len(library) #先计算图书编号总数 library[nums+1]=[‘红楼梦’,5] #在编号总数的基础上继续添加新书:library[新编号]=[‘书名’,本数] library[nums+2]=[‘西游记’,10] library[nums+3]=[‘水浒传’,5] library[nums+4]=[‘三国演义’,10] print(library) blist=list(library.keys()) #按书名借阅: bookname=input(‘请输入借阅图书名称:’) min_v = blist[0] max_v = blist[-1] turns=0 while min_v <= ++①++: turns += 1 cur = (min_v + max_v)++②++ print(cur) if library[cur][0] == ++③++ : if library[cur][1] > 0: library[cur][1] -= ++④++ print(‘《%s》借阅成功!’%bookname) else: print(‘抱歉,您选择的书籍已被借完!’) break elif blist[cur-1] > cur: min_v = ++⑤++ else: max_v = ++⑥++ print(“经过%d轮二分查找,完成图书的搜索。”%turns) |
参考答案:
参考程序:
学校图书管理系统
library=dict() #用字典生成一个图书管理数据结构(字典的键为编号,字典的值为[‘书名’,本数])
书籍入库
nums=len(library) #先计算图书编号总数 library[nums+1]=[‘红楼梦’,5] #在编号总数的基础上继续添加新书:library[新编号]=[‘书名’,本数] library[nums+2]=[‘西游记’,10] library[nums+3]=[‘水浒传’,5] library[nums+4]=[‘三国演义’,10] print(library)
blist=list(library.keys())
按书名借阅:
bookname=input(‘请输入借阅图书名称:’)
min_v = blist[0] max_v = blist[-1] turns=0
while min_v <= max_v: turns += 1 cur = (min_v + max_v) **//**2 print(cur) if library[cur][0]==bookname: if library[cur][1] > 0: library[cur][1] -= 1 print(‘《%s》借阅成功!’%bookname) else: print(‘抱歉,您选择的书籍已被借完!’) break elif blist[cur -1] > cur: min_v = cur +1 else: max_v =cur -1 print(“经过%d轮二分查找,完成图书的搜索。”%turns)
38、
某班"天天向上"小组共有6个同学,姓名和身高数据分别存放在列表a中,编写程序实现小组同学按身高从高到低输出名单,运行结果如图所示: ![]() |
参考答案:
参考程序:
a=[[“李洪全”,135],[“王倩倩”,154],[“吴乐天”,148],[“周立新”,165],[“鲁正”,158],[“杨颖颖”,150]]
for i in range(1,len(a)):
for j in range(0, len(a)-i):
if a[j][1] < a[j+1][1]:
a[j],a[j+1]=a[j+1],a[j]
print(“小组名单是:”)
for i in range(len(a)):
print(a[i][0])
本题考查冒泡排序算法。从外循环看,6个元素排5趟,应该能全部排整齐。内循环每趟主要从第一个元素开始,相邻元素两两相比,i=1时,j最终取到4,i=2时,j最终取到3,i=3时,j最终取到2,i=2时,j最终取到1,i=1时,j最终取到0,由于range()的终值是取不到的,故第一空应填len(a)-i;根据题目从高到低的要求,若前一个数小于后一个数,则应将其往后移,故第二空应为"<";由输出结果观察可知,只需要输出排序后列表中的姓名部分,故第三空应填a[i][0]。
喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!