中小学教育资源及组卷应用平台
2024信息技术学业水平考试专题练
优化集训12 函数与模块
1.下列有关模块化程序设计的说法错误的是( )
A.将问题分解为若干个子问题,用相对独立的程序段解决子问题
B.将常用的程序代码以模块化的形式保存
C.需要时模块可以被重复调用,提高程序设计的效率
D.程序设计时每次只能引入模块中的一个函数
Python Shell中运行语句“from math import ”和“import random”。回答以下2~3题。
2.下列表达式中值和其他不同的是( )
A.3 2 B.ceil(8.5)
C.floor(9.5) D.round(9.6)
3.下列表达式的值最大的是( )
A.pow(3 2) B.sqrt(81)
C.floor(9.5) D.ceil(9.5)
4.新年晚会上,小王安排了一个才艺表演环节,全班一共50名学生,编号从1到50,由电脑随机生成编号,被抽到编号的学生表演才艺。在导入random模块后,下列选项中符合条件的表达式为( )
A.random.uniform(1,50)
B.int(random.random() 50)+1
C.int(random.uniform(0,50))
D.random.randint(0,1) 50
5.以下Python程序段执行后,结果为2,横线处的代码为( )
def f(list1):
m=list1[0]
for i in range(1,len(list1)):
if :
m=list1[i]
return m
s=[4,5,2,6,5,8]
print(f(s))
A.m>list1[i] B.mC.m==list1[i] D.m!=list1[i]
6.有如下Python程序段:
def f(a,b):
if a>b:
return a-b
return a+b
print(f(20,15))
运行该程序后,程序输出的结果是( )
A.程序出错 B.45
C.5 D.35
7.某加密程序的代码如下:
def encrypt(code,key):
code_new=″ ″
for i in range(len(code)):
code_new=code[(i+key)%len(code)]+ code_new
return code_new
code=input(″请输入加密字符串:″)
key=int(input(″请输入偏移位数:″))
print(encrypt(code,key))
当输入“Python”和“3”后,程序输出的结果是( )
A.mvqelk B.sbwkrq
C.honPyt D.tyPnoh
8.编写Python程序,检测设置的密码是否合法,根据判断结果输出不同的反馈信息。密码构成规则如下:
(1)密码总位数为6;
(2)必须由小写字母、大写字母和数字组成,其他均为非法字符;且三种字符必须都有。
程序代码如下。为实现上述功能,请在划线处填入合适的代码。
def jc(k):
a=[0,0,0]
for① :
if i>='0' and i<='9':
a[0]=1
elif i>='a' and i<='z':
a[1]=1
elif i>='A' and i<='Z':
a[2]=1
②
key=input('请输入6位密码(密码由大写字母、小 写字母和数字组成,3种字符都有):')
if ③ :
print('密码位数不对!')
else:
if jc(key)==3:
print('密码检测通过!')
else:
print('3种字符不全!')
9.编写Python程序,模拟支付宝收益周周乐,随机抽取4位0~9之间的整数组成1组中奖号码。程序代码和程序界面如下。为实现上述功能,请在划线处填入合适的代码。
from random import choice
①
for i in range(1,5):
code=code+str(② )
print('中奖号码为'+code)
10.编写Python程序,随机抽取参加班级活动的幸运学号:输入班级总人数和需抽取幸运学号的个数,输出随机抽取的幸运学号。程序代码如下。为实现上述功能,请在划线处填入合适的代码。
from random import sample
s=int(input('请输入班级总人数:'))
n=int(input('请输入需要抽取的幸运学号:'))
print('抽取的幸运学号为:', )
11.编写Python程序,对名册中来自11个省辖市的55名与会代表进行随机分组。原报名号排列如下图所示:
运行程序后,输出打乱后的随机分组结果(5人1组)。程序代码和程序界面如下。为实现上述功能,请在划线处填入合适的代码。
from random import shuffle
a=[]
for i in range(1,56,1):
a.append(i)
①
c=0
b=[]
for i in a:
②
c+=1
if c%5==0:
print('第'+③ +'组:',b)
④
12.编写Python程序,实现如下功能:打开指定位置('D:\猫头.jpg')的图片,显示图片并输出其模式信息,将当前图片转换为灰度模式('L')后,再次显示图片查看效果并输出其模式信息。程序代码和界面图如下。在划线处填上合适的代码。
from PIL import Image
im=①
im.show()
print('转换前图像的模式:',im.mode)
new_im=② #将当前图像转换为其他模式(灰度),并且返回新的图像。
new_im.show()
print('转换后图像的模式:',new_im.mode)
优化集训12 函数与模块
1.D 解析 程序设计时有多种方式可以引入模块中的内容:可以引入指定的部分内容,也可以引入所有内容。
2.D 解析 A. 为乘幂,3的2次方为9;B.对 8.5向上取整得9;C.对9.5向下取整得9;D.对9.6四舍五入得10。
3.D 解析 A.3的2次幂运算,得9;B.求81的算术平方根,得9;C.对9.5向下取整,得9;D.对9.5向上取整,得10。
4.B 解析 本题考查随机数模块。random模块中,函数uniform(a,b)是随机生成[a,b]之间的实数,random()函数是生成[0,1)之间的实数,而randint(a,b)是生成[a,b]范围内的整数。根据题意学号的范围是1~50的整数,故选B。
5.A 解析 本题考查自定义函数。本题题意是找到并输出列表s中的最小值,自定义函数f()用于实现该功能。先将列表中第一个数赋值给m,然后遍历该列表,若发现有更小的值,则更新m。故选A。
6.C 解析 本题考查自定义函数。将实参20,15分别代入自定义函数f()中,可以得到结果5。故选C。
7.D 解析 本题考查自定义函数。由代码可知,此加密程序的规律是变换字符位置,然后倒序连接。key是移动位置的数量。将i=0代入即可发现,加密后最后一个字母为“h”(倒序连接)。故选D。
8.①i in k ②return sum(a) ③len(key)!=6 解析 ①主程序调用自定义函数jc时,将实参密码key传递给jc的形参k,for遍历k,判断其每个字符所属的种类。②从语句“print('密码检测通过!')”所属if语句的条件,反推出自定义函数jc返回的值是出现的字符的种类数,结合自定义函数jc中for内的if可知列表a的3个元素分别用于标志k中3种字符是否出现过a中3元素为数值型标志位,相应类型的字符出现,则其值为1,未出现为0列表a元素之和为出现的字符种类函数返回值为列表a的元素和(出现的字符种类数)。③满足条件输出密码位数不对条件用于判断密码key的位数len()函数。
9.①code='' ②choice(range(10)) 解析 ①Python中变量要先赋值才能使用,循环前对循环体中的字符串变量code赋初值空串。②循环体每次生成一个0—9之间的随机整数,并将新生成的数连接到中奖号码中。
10.sample(range(1,s+1,1),n) 解析 sample(序列,挑选的元素个数)从第1参数的序列中随机挑选第2参数相应的元素个数,班级学号从1号到s号range(1,s+1)。
11.①shuffle(a) ②b.append(i) ③str(c//5) ④b=[]或者b.clear() 解析 ①第1个for将报名号1—55添加到列表a,然后通过shuffle函数将a中的元素随机排序(该函数没有返回值,参数可以是列表);②第2个for将打乱顺序后的列表a中的报名号添加到列表b,满5个就输出一组报名号b,然后清空b后重新接收下5个;③c是计数器,统计打乱重排后的报名号被添加到b的累计个数,因为是5个一组,所以组号为c整除取商,参与字符连接运算前用str()函数转为字符串型;④打乱重排后的报名号,每5个添加到列表b输出后,需要清空列表b为下组输出做准备。
12.①Image.open('D:\猫头.jpg') ②im.convert('L')
解析 ①Image.open(file)用于文件加载。②图片对象.convert(mode)用于转换图片模式。
21世纪教育网 www.21cnjy.com 精品试卷·第 2 页 (共 2 页)
21世纪教育网(www.21cnjy.com)