Python三级真题2024-12

本试卷分为单选题、判断题和编程题三个部分,满分100分,请考生仔细审题,按要求完成作答,祝您考试顺利!
*1. 以下选项中,哪一项转换后对应十进制数不是10?( )
*2. 以下选项中不会报错的是?( )
*3. 将十进制数52转换为二进制数时,该二进制数的位数是?( )
*4. 下面哪个数值和其他不一样?( )
*5. 将十进制数522转换为十六进制数,最低位上的数是?( )
*6. 以下代码的运行结果是?( )numbers = [1, 2, 3, 4, 5]

result = list(map(str, numbers) ) print(result)

*7. divmod(134, 4)的结果是?( )
*8. 函数round(3.576, 2) 的返回结果是?( )
*9. 函数bool(None)的返回结果是?( )
*10. 以下哪个函数可以用来将列表转换为集合?( )
*11. 在Python中,以下哪个表达式将返回False?( )
*12. 以下哪个表达式将返回字符串'123'?( )
*13. 下列哪个选项是用正确的方式来处理 input() 函数返回的字符串,以便将其转换为一个整数?( )
*14. 下列程序运行的结果是?( )try: 

     a=6

     b=0 

     c=a/b 

     print(c)

 except:

     print('error!')

*15. 函数abs(-2.6)的返回值是?( )
*16. 函数ord("C")的返回值是什么?( )
*17. 以下哪个选项不是算法的基本结构?( )
*18. 超市购物促销:购物满49元减5元,购物满99元减15元,根据所购物品金额求优惠率。解决此问题的合适算法是?( )
*19. 关于二分查找算法,下列描述错误的是?( )
*20. Python表达式abs(int(-4.6))的计算结果是?( )
*21. 小明编写了下列4行代码,请问,代码运行到最后,屏幕上打印出来的结果是?( ) 

a = ['红','橙','黄'] 

b = [1,2,3] 

c = [b,a] 

print(c[1][0])

*22. 下面代码从"成绩.csv"文件中读出数据,并将数据以列表形式存储。请问,划线处的代码应该为?( )

 f=open('成绩.csv','r')

a=f.read().strip().split(______)

f.close()

*23. 以下代码将建立一个名为"姓氏.csv"的文件,划线处的代码应该为?( ) 

a = ['赵','钱','孙','李','周','吴','郑','王']

f=open('姓氏.csv',______)

f.write(','.join(a)+'\n')

f.close()

*24. 如下图所示,有一个名为"价格.csv"的文件。小明针对这个文件编写了5行代码。 请问,代码运行到最后,打印在屏幕上的结果是?( )

with open('价格.csv', 'r', encoding='utf-8') as f:

    for line in f.readlines():

        a = line.strip().split(",")

        if a[1] == '9' :

            print(a[0])
 

*25. 如下所示的2行代码,最后print()函数打印出来的结果是?( )

c = [['赵大',21,'男','北京'],['钱二',20,'男','西安'],['孙三',18,'女','南京'],['李四',20,'女','杭州']] 

print(c[1][3])

*26. hex()函数可以将十进制数转换成十六进制数。在Python交互式编程环境下,执行语句hex(11)后,显示的运行结果是'b'。( )
*27. 二进制数、八进制数与十六进制数的末位如果是“1”,各转换为十进制数后都是奇数。( )
*28. 使用with语句打开文件并处理文件后,必须使用close()函数关闭文件,以确保所有数据都被写入磁盘并释放系统资源。( )
*29. range(1, 11, 2)会生成一个包含数字1, 3, 5, 7, 9, 11的序列。( )
*30. 使用sorted()函数可以给列表排序,参数reverse设置为True时,按从小到大排序;参数reverse设置为False时,按从大到小排序。( )
*31. 以下代码可以计算列表a中各元素(得分)的平均分。( ) 

a = [90, 80, 70, 60, 50] 

print( sum(a) / len(a) )

*32. all([])和any([])的结果都是True。( )
*33. 列表中的pop()方法和del语句都能删除列表中被指定的元素。所以,如下4行代码运行之后,屏幕上将打印出 ['红','绿','蓝'],这个运行结果是对的。( )

list1 = ['红','绿','蓝','白','紫']

del list1[3]

list2=list1.pop(3)

print(list2)

*34. 如果

list1 = ['赵','钱','孙','李','周','吴','郑','王'],

那么:

list1[1:-4] 肯定与 list1[1:4] 相等。请判断对吗?( )

*35. 读以下程序代码,运行程序后,输出的是:发生了一个异常。( )

try:

    print(x)

except:

    print("发生了一个异常")

finally:

    print("请修改程序,再试一次!")

*36. 分解质因数

输入一个整数,分解质因数。例如:输入90,打印出90=2*3*3*5。请完善以下代码,运行程序。

target=int(input('输入一个整数:'))
print(target,'= ',end='')
if target<0:
    target=                (target)
    print('-1*',end='')
flag=0
if target<=1:
    print(target,end='')
    flag=                
while True:
    if flag:
        break
    for i in range(2,int(target+1)):
        if                 :
            print("%d"%i,end='')
            if target==i:
                flag=1
                break
            print('*',end='')
                            
            break

填空1
填空2
填空3
填空4

*37. 成绩系统

小王同学编写了一个成绩录入和查询系统,能实现输入多个互不相同的分数,自动进行从高到低排名,同时输入要查询的分数,可以获得相应同学的姓名。程序运行结果如下图所示,实现代码如下,请你补全空缺处。

n=int(input("请输入总人数:"))

name=[""]*n

score=[0]*n

#输入功能,分别输入姓名与分数

for i in range(n):

    name[i]=input("请输入第"+str(i+1)+"个人名:")

                   =int(input("请输入第"+str(i+1)+"个分数:"))

#排名功能

for i in range(n-1):

    for j in range(0,n-1-i):

        if score[j]                score[j+1]:

            score[j],score[j+1]=score[j+1],score[j]

            name[j],name[j+1]=name[j+1],name[j]

print("——————各个同学分数排名如下——————")

print(name)

print(score)

#查询功能

i=0

                

key=int(input("请输入要查询的分数:"))

b=-1

while i<=j and b==-1:

    m=(i+j)//2

    if score[m]==key:

        b=m

填空1
填空2
填空3
填空4
填空5

*38. 有下图左边名为“虚拟学校5年级学生数据.csv”的文件,要实现下图右边统计每位同学语、数、外三门学科的总分,小明编写了以下程序,请将红色 ①、② 两处的代码补充完整:

f = open('/data/                ','r',encoding='utf-8')

i = 1
for line in f:
    s = ""
    a = line.strip("").split(",") 
    if i >= 2 :     #第一行是每列的标题,不用计算,要从第二行开始计算
        s = str(                ) + ' 的总分为:' + str(int(a[5]) +int(a[6]) +int(a[7]) )
    i = i + 1
    print(s)
f.close()

填空1
填空2