Python软件编程等级考试五级——20220319

Python软件编程等级考试五级——20220319

理论

单选题

1、 下面有关random的常用方法,描述错误的是?

A、random.random()生产一个[0.0,1.0)之间的随机小数
B、random.randint(a,b)生成一个[a,b]之间的随机整数
C、random.choice(seq)从序列中随机选择一个元素
D、random.uniform(a,b)生成一个[a,b]之间的随机字符

2、有关jieba库的描述,错误的是?

A、jieba库的分词原理是利用中文词库,将待处理的内容与词库对比后找到最大概率的词组
B、jieba.lcut(s)返回的可能是一个列表类型
C、jieba.cut(s)返回的可能是一个字符串类型
D、jieba.add_word(w)向分词词典中增加新词w

3、根据以下代码,描述错误的选项是?

import wordcloud
txt="what's your name?"
w=wordcloud.WordCloud(background_color="white")
w.generate(txt)
w.to_file('px.png')
A、background_color指定词云图片的背景颜色,默认为白色
B、generate向WordCloud对象中加载文本txt
C、to_file将词云输出为图像文件,.png或.jpg格式
D、wordcloud.WordCloud()代表一个文本对应的词云

4、已知 l=[‘Hello’, ‘World’, ‘Good’, ‘morning’, ‘LUCK’],则 list[1][2]的返回值为?

A、'HW'
B、'e'
C、'o'
D、'r'

5、以下序列对象的描述,非法的或者值为False的选项是?

A、[]
B、[None,0,"",]
C、(3,)!=3
D、(3)==[3]

6、下列代码的运行结果是?

def ous(n):
    return n % 2 == 1
newlist = filter(ous, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
n=list(newlist)
print(n)
A、[1,2,3,4,5,6,7,8,9,10]
B、[10,9,8,7,6,5,4,3,2,1]
C、[2,4,6,8,10]
D、[1,3,5,7,9]

7、对于列表的方法pop()与remove()的区别与相同点,错误的描述是?

A、都是删除对象中的元素
B、pop()有返回值
C、remove()没有返回值
D、pop()如果不带参数,则表示默认参数值为0

8、执行下列代码,正确的答案是?

l =[1,2,3,4,5]
a1=1;a2=1
for i in l:
    if i % 3 == 0:
        a1 += i
    else:
        a2 += i
print(a1-a2)
A、-10
B、-9
C、-8
D、-7

9、执行下列代码,正确的答案是?

a,b,c = 16,17,18
s = 0
if a > b:
    s = x
elif b > c:
    s += c
s-= 1
print(s)
A、2
B、1
C、-1
D、0

10、下列函数或操作,错误的为哪一项?

A、>>>tuple('hello world')
B、>>>tuple(range(1:3))
C、>>>tuple(range(3))
D、>>>tuple(map(str,range(3)))

11、已知 s=‘3.1415926535898’,则 s[4:5]+s[-4:-2]的返回值为?

A、'41589'
B、'4158'
C、'458'
D、'158'

12、print(‘\x66’)的结果是?

A、\x66
B、'\x66'
C、B
D、f

13、求执行下列操作后的正确结果?

>>> st='www.lxjy.com'
>>> st.split()
A、[www,lxjy,com]
B、['www','lxjy','com']
C、['www.lxjy.com']
D、[www.lxjy.com]

14、运行下列代码,正确的结果是?

st = ['zhangsan','lisi','wangwu','zhaoliu','zhouba']
ans = st[0]
n = len(st[0])
for i in st:
    if len(i)> n:
        n = len(i)
        ans = i
print(ans)
A、zhangsan
B、lisi
C、zhaoliu
D、zhouba

15、运行下列代码,输出结果为?

s = [1,3,4, 3,1]
m,sum =s [0],0
for i in range(1,len(s)):
    if s[i] > m:
        m = s[i]
    sum += m
print(sum)
A、12
B、15
C、18
D、8

16、请确认以下程序中有几处错误?

import turtle
colors=['blue','red','green','yellow']
t=turtle.Pen()
for i in range(100)
    t.color(colors[i%5])
    w+=2
    t.forward(w)
    t.left(89)
A、1
B、2
C、3
D、4

17、下列语句的输出结果是?

for i in range(1,7):
    if i%3==0:
        break
    else:
        print(i,end=',')
A、1,2
B、1,2,
C、1,2,3,4
D、没有输出

18、执行如下 Python 程序段后, 说法不正确的选项是?

a=[2,1,3,2,4,3]
n=len(a)
for i in range(2):
    k=i
    for j in range(i+1,n):
        if a[k]>a[j]:
            k=j
    if i!=k:
        a[i],a[k]=a[k],a[i]
print(a) 
A、a = [1, 2, 3, 2, 4, 3]
B、for i in range(2)for i in range(0,2)等价
C、k的值为1
D、for j in range(i+1, n):for j in range(i+1,n+1):等价

19、2班级同学的分组情况以及考试成绩分别存储在字典xs和列表cj中。若xs={“第1组”:[“小张”,“小李”,“小王”],“第2组”:[“小黄”,“小霞”,“小斌”],“第3组”:[“小蓝”,“小华”,“小诚”]},cj=[{“小张”:90,“小李”:80,“小王”:75},{“小黄”:86,“小霞”:70,“小斌”:89},{“小蓝”:67,“小华”:90,“小诚”:77}],访问第1组第2位同学姓名以及他的考试成绩的方法为?

A、xs['第1组'][1],cj[0]['小李']
B、xs['第1组'][1],cj[1]['小李']
C、xs['第1组'][2],cj[0]['小李']
D、xs['第1组'][2],cj[1]['小李']

20、执行如下 Python 程序段后,结果正确的选项是?

d={1:2,3:4,5:6,7:8}
s=[5,1,7]
ans=""
for i in s:
	ans +=str(d[i])
print(ans)
A、517
B、846
C、628
D、625

21、下列说法,正确的是?

A、集合类型是一个元素集合,元素之间无序
B、集合类型是一个元素集合,元素可能重复
C、s = set{1,2,'3'},声明了一个集合S对象
D、集合类型是一个元素集合,元素之间无序,元素类型必须相同

22、运行下列代码,正确的结果是?

>>>x = set('runoob')
>>> y = set(('g','o','o','g','l','e'))
>>> x | y 
A、{'o','o'}
B、{'n','u','g','r',',','o','b','l','e',''}
C、{'n', 'b', 'l', 'r', 'e', 'u', 'o', 'g'}
D、{'o'}

23、使用map函数可以实现列表数据元素类型的转换,而无需通过循环。则将列表s=[‘1’,‘2’,‘3’,‘4’]转换为列表[1,2,3,4]的函数写法为?

A、map(int,s)
B、map(s,int)
C、list(map(s,int))
D、list(map(int,s))

24、4 if 2>3 else 5的结果的是?

A、4
B、5
C、False
D、抛出错误

25、运行下面程序段,输出结果不可能是?

import random
st='nihaoworld'
a=random.randint(3,6)
n=len(st)
if len(st[:a])
    ans=st[a:]+st[:a]
else:
    ans=st[:a]+st[a:]
print(ans)
A、oworldniha
B、aoworldnih
C、haoworldni
D、nihaoworld

判断题

26、对于列表l=[(0),1,2,3,4],all(l)的值是True。

27、>>>tuple(zip(“abcd”,range(3))) 返回一个元组结果。

28、>>> ‘{0:%}’.format(3)返回’300%‘;>>>’{0:6.2f}‘.format(3)返回’3.00’。

29、>>>str=‘nihao\nliping\nzhang san’ >>> str.split()
结果是:[‘nihao liping zhang san’]

30、range(10,0,-1)表示从对象的下标为10的元素开始,倒序取到下标为0的元素,但是不包括下标为0元素。

31、字典是由键值对组成的。字典的键必须唯一,且不可变。字典通过键key去修改value值,如果key不存在,则会报错。

32、对于集合S,S.remove(x)可以移除S中元素x,如果x不在集合S中,产生KeyErrror异常。

33、列表、元组、字符串均可以用set()转换为集合,例如:>>>set((1,2,2,3,4)),结果是{1,2,2,3,4}。

34、下列语句的功能是创建一个0-10之间偶数的列表:a = [x for x in range(11) if x%2==0]

35、利用日期时间模块datetime,可以获取“今天”的日期,方法如下,如果“今天”是星期六,则返回6。

>>> import datetime
>>> datetime.date.today().weekday()

实操

第一题

二进制数转十六进制数,可以先采用“按权展开,逐项相加”法,把二进制转十进制;再采用

“除16求余法,逆序输出”的方法,把十进制数转为十六进制数。下列程序实现将二进制数

转十六进制数,请完善以下程序代码。

st="0123456789ABCDEF"
num = input("请输入一个二进制整数:")
n =    ①    
s=0
ss=""
for i in range(n):
    x=      ②      
    s+=x
t=s
while t>0:
    ss=      ③    
    t=print(ss)

第二题

验证哥德巴赫猜想

2000以内的不小于4的正偶数都能够分解为两个素数之和,验证哥德巴赫猜想对2000以内的

正偶数成立。根据问题描述,为了验证哥德巴赫猜想对2000以内的正偶数都是成立的,要将

正偶数整数分解为两部分,然后判断分解出的两个正整数是否均为素数。若是,则满足题意,

否则应重新进行分解和判断。

输入:每次输入一个2000以内的不小于4的正偶数n。

输出:输出n能被分解成的素数a和b,如果不止一组解,则输出其中a最小的那组解即可。

请你补全代码。

import math
# 判断是否为素数
def fun(n):
    if n == 2:
        return 1
    if n % 2 == 0:
        return 0
    i = 3
    while i <= math.sqrt(n):
        if:
            return 0
        i += 2
    return 1  # n是除2以外的素数返回1
# 验证哥德巴赫猜想
def guess(n):
    k = 0
    i = 2
    while i <= (n // 2):
        if fun(i):
            if fun(n - i):
                print("%d  %d\n" % ())if i != 2:
            i += 1
        if k == 1:#结果得到验证,跳出循环
        i += 1

while True:
    n = input("请输入2000以内>=4的正偶数:(输入'stop'结束运行)")
    if n=="stop":
        break
    else:# 调用方法验证哥德巴赫猜想

第三题

二维数组打印杨辉三角形

在屏幕上打印杨辉三角形,杨辉三角形又称贾宪三角形、帕斯卡三角形,是二项式系数在三角

形中的一种几何排列。由于位于杨辉三角形两个腰上的数都为1,其他位置上的数等于它肩上

两个数之和,基于杨辉三角形的这个特点,可以使用二维数组打印出杨辉三角形。Python程

序实现打印杨辉三角形如下,请你补全代码。

# 控制打印的行数,行数过大会造成显示不规范
# 定义一个行为14,列为14的二维列表
n = 0
a = [([0] * 14) for i in range(14)]  
n = int(input("请输入杨辉三角的行数(1-13):"))
# 计算杨辉三角中的数值
for row in range(1, n+1):
    a[row][1] = a[row][row] = 1
for row in range(3, n+1):
    for column in range(2, (row-1)+1):
        a[row][column] =+# 打印杨辉三角
for row in range(1, n+1):
    for k in range(1,):
        print("   ", end="")  
    for column in range(1, row+1):
        print("%6d" %(), end=" ")
    print()
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

青岛少儿编程-王老师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值