2022-12 Python三级真题
分数:100
题数:38
测试时长:60min
一、单选题(共25题,共50分)
1. 列表L1中全是整数,小明想将其中所有奇数都增加1,偶数不变,于是编写了如下图所示的代码。请问,图中红线处,代码应该是?( )(2分)
A.x || 2
B.x ^ 2
C.x && 2
D.x % 2
2. 小明为了学习选择排序的算法,编写了下面的代码。针对代码中红色文字所示的一、二、三处,下面说法正确的是?( )(2分)
a = [8,4,11,3,9]
count = len(a)
for i in range(count-1):
mi = i
for j in range(i+1,count):
if a[mi] > a[j]: #代码一
mi = j #代码二
if i!=mi:
a[mi],a[i] = a[i],a[mi] #代码三
print(a)
A.如果找到更大的元素,则记录它的索引号。
B.如果找到更小的元素,则记录它的索引号。
C.在一趟选择排序后,不管是否找到更小的元素,mi所在元素都得与i所在的元素发生交换。
D.代码三所在的行必然要运行。
3. 小明编写了一段演示插入排序的代码,代码如下。请问红色“缺失代码”处,应该填写哪段代码?( )(2分)
a = [8,4,11,3,9]
count = len(a)
for i in range(1, count):
j = i
b = a[i]
while j>0 and b<a[j-1] :
a[j] = a[j-1]
缺失代码
a[j] = b
print(a)
A.j=j-1
B.j=j+1
C.j=i+1
D.j=i-1
4. 在计算机中,信息都是采用什么进行存储?( )(2分)
A.二进制数
B.八进制数
C.十进制数
D.十六进制数
5. 十进制数(100)10,转化为二进制数为( )2?( )(2分)
A.0010011
B.1010001
C.1100100
D.0101100
6. 十六进制数每一位至多可以表示几位二进制位?( )(2分)
A.2
B.3
C.4
D.16
7. 八进制数(35)8,转化为十进制数为() 10?( )(2分)
A.100011
B.110001
C.232
D.29
8. 执行代码a=min(3,2,4.3),变量a的值是?( )(2分)
A.3
B.2
C.4.3
D.4
9. print(max('python+'))的运行结果是?( )(2分)
A.'p'
B.p
C.'y'
D.y
10. a=5.12596
print(round(a,2))运行结果是?( )(2分)
A.5
B.5.1
C.5.12
D.5.13
11. type([{2.6}])运行的结果是?( )(2分)
A.float
B.dict
C.True
D.list
12. 执行如下代码
a=[1,2,3,4]
print(list(enumerate(a)))
运行结果是?( )(2分)
A.((0, 1), (1, 2), (2, 3), (3, 4))
B.[(0, 1), (1, 2), (2, 3), (3, 4)]
C.[1,2,3,4]
D.(1,2,3,4)
13. set('hello')运行结果是?( )(2分)
A.('h', 'e', 'l', 'l','o')
B.{'h', 'e', 'l', 'l','o'}
C.{'e', 'h', 'l', 'o'}
D.('e', 'h', 'l', 'o')
14. print(sum([5,10,min(7,4,6)]))的运行结果是?( )(2分)
A.22
B.21
C.4
D.19
15. divmod(100,3)的执行结果是?( )(2分)
A.(1, 33)
B.(33, 1)
C.[33,1]
D.[1,33]
16. 下列表达式结果是False的是?( )(2分)
A.all({})
B.all([10])
C.all(['1','2','3',''])
D.all(['1','2','3'])
17. 将字符串或数字转换为浮点数的函数是?( )(2分)
A.chr()
B.float()
C.int()
D.str()
18. 以下表达式的值为True是?( )(2分)
A.bool(2022)
B.bool(0)
C.bool()
D.bool({})
19. 有这样一段程序:
a=[“香蕉“,”苹果”,”草莓”,“哈密瓜”]
fs=open(“fruits.csv”,”w”)
fs.write(“,”.join(a)+‘\n’)
fs.close()
该段程序执行后,该csv文件中的内容是?( )(2分)
A.香蕉 苹果 草莓 哈密瓜
B.香蕉,苹果,草莓,哈密瓜
C.香蕉苹果草莓哈密瓜
D.["香蕉","苹果","草莓","哈密瓜"]
20. 关于文件的读写操作,下列说法不正确的是?( )(2分)
A.read( )函数读取文件内容后,生成的是一个字符串 。
B.readline( )每次只读取文件中的一行,并返回字符串类型数据。
C.readlines( )函数每次按行读取整个文件的内容,并返回list类型数据。
D.读取文件内容只能用reader( )对象。
21. 关于下列列表,说法正确的是?( )(2分)
s=[ [“佩奇”,“100”,“86”,“85”,“90”],
[“苏西”,“78”,“88”,“98”,“89”],
[“佩德罗”,“80”,“66”,“80”,“92”]]
A.这是一组二维数据
B.这样的数据不能存储到CSV文件中
C.无法读取[“佩奇”,“100”,“86”,“85”,“90”]这条数据
D.必须手动写入到CSV文件中
22. 有关于write()函数的说法正确的是?( )(2分)
A.write( )函数只能向文件中写入一行数据
B.write( )函数的参数不是字符串类型
C.write( )函数也可以向文件中写入多行数据
D.write( )函数和writelines( )函数完全相同
23. 对于在csv文件中追加数据,下列说法正确的是?( )(2分)
A.只能以单行方式追加数据
B.只能以多行方式追加数据
C.多行数据追加的函数是writerow( )
D.以单行方式或多行方式追加都可以
24. Python的异常处理try....except...else...finally机制中,以下哪部分语句一定能得到全部执行?( )(2分)
A.try子句
B.except子句
C.else子句
D.finally子句
25. Python的异常处理机制中,以下表述哪项是错误的?( )(2分)
A.如果当try中的语句执行时发生异常,Python就执行匹配该异常的except子句。
B.如果当try中的语句执行时发生异常,try代码块的剩余语句将不会被执行。
C.如果在try子句执行时没有发生异常,Python将执行else语句后的语句。
D.异常处理结构能够发现程序段中的语法错误。
二、判断题(共10题,共20分)
26. 二进制数转化为十进制数的方法是:按权展开、逐项相加,如:(101)2=(10)10。( )
27. 语句print(round(2.785, 2))运行后的结果是2.79。( )
28. map() 不会根据提供的函数对指定序列做映射。( )
29. 语句print(tuple(range(5)))的输出结果是(0, 1, 2, 3, 4)。( )
30. 运行语句set('2022'),其输出结果是{'2','0','2','2'}( )
31. f=open(‘ss.csv’,’r’)
n=f.read().strip(“\n”).split(“,”)
f.close()
这段代码的功能是读取文件中的数据到列表。( )
32. 一维数组可以用列表实现,二维数组则不能用列表实现。( )
33. 用with open (‘fruits.csv’,’r’)as f 语句,打开fruits.csv文件,在处理结束后不会自动关闭被打开的文件,因此需要写上f.close( )语句。( )
34. 异常处理结构中,finally程序段中的语句不一定都会得到执行。( )
35. 在计算机中,每一个二进制位可以表示0和1两种信息。( )
三、编程题(共3题,共30分)
36. 下面程序实现对二维数据的处理,请你补全代码。
f=open('/data/score2.csv','r')a=[]for i in f:a.append(i.strip().split(','))f.close()① for i in a:s=''for j in i:② print(s)程序执行结果为:[['王鑫', '86', '90', '92', '99', '94', '95'], ['杨小虹', '93', '97', '95', '90', '86', '85'], ['李静', '89', '98', '99', '94', '90', '85']]王鑫 86 90 92 99 94 95 杨小虹 93 97 95 90 86 85 李静 89 98 99 94 90 85
参考程序:
f=open('/data/score2.csv','r')a=[]for i in f:a.append(i.strip().split(','))f.close()print(a,'\n')for i in a:s=''for j in i:s=s+'{:6}\t'.format(j)print(s)
评分标准:
(1)print(a,'\n')或等效答案;(2分)
(2)s=s+'{:6}\t'.format(j)或等效答案。(2分)
37. 在三位数的自然数中,找出至少有一位数字是5的,至少能被3整除的所有整数,并统计个数,具体代码如下:
count=0lst=[]for i in range( ① ):if i%3==0:a=i%10b=i//10%10c= ② if ③ :count+=1lst.append(i)print("这样的三位数有:",lst)print("总数量有:",count)
参考程序:
count=0lst=[]for i in range(100,1000):if i%3==0:a=i%10b=i//10%10c=i//100if a==5 or b==5 or c==5:count+=1lst.append(i)print("这样的三位数有:",lst)print("总数量有:",count)
评分标准:
(1)100,1000 或者100,1000,1 ;(3分)
(2)i//100 ;(3分)
(3)a==5 or b==5 or c==5 。(4分)
38. 输入一个正数,以下代码编程求出它的平方根。请你补全代码。
in_var = float(input("请输入一个需要开方的正数,可以使用2位小数:\n x = "))
if in_var < 0:x = - in_varelse:x = in_varlow = 0.0high = xs_root = ① if x > 0 and x < 1:high = 1.0low = 0s_root = ② if x >= 0:while abs( ③ ) > 0.0001:if x > 1.0:if s_root ** 2 < x:low = s_rootelse:high = s_roots_root = ④ if x == 1.0 and x == 0.0:s_root = xelse:if s_root ** 2 < x:low = s_rootelse:high = s_roots_root = ⑤ if in_var >= 0:print("所求数的平方根为:s_root = %.1f"%(s_root))
参考程序:
in_var = float(input("请输入一个需要开方的正数,可以使用2位小数:\n x = "))if in_var < 0:x = - in_varelse:x = in_varlow = 0.0high = xs_root =(low + high) / 2if x > 0 and x < 1:high = 1.0low = 0s_root =(low + high) / 2if x >= 0:while abs( s_root ** 2 - x) > 0.0001:if x > 1.0:if s_root ** 2 < x:low = s_rootelse:high = s_roots_root =(low + high) / 2if x == 1.0 and x == 0.0:s_root = xelse:if s_root ** 2 < x:low = s_rootelse:high = s_roots_root =(low + high) / 2 if in_var >= 0:print("所求数的平方根为:s_root = %.1f"%(s_root))
评分标准:
(1)(low + high) / 2 ; (2分)
(2)(low + high) / 2 ; (2分)
(3)s_root ** 2 - x ; (4分)
(4)(low + high) / 2 ; (4分)
(5)(low + high) / 2。 (4分)
————————————————
版权声明:本文为CSDN博主「Lemon Liu」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_46227121/article/details/128808779