
一、选择题
1.Python中幂运算(指数运算)的运算符为( )。
A.* .** .% .//
2.设a=2,b=5,在python中,表达式a>b And b>3的值是( )
A.False .True .-1 .1
3.在python中,下列哪个选项是正确的赋值语句( )
A.5s= 80 .2018 =x .a+b=c .s=s+5
4.小明想要通过编程来解决由昆明到景东锦屏耗时最短行程问题时,最核心的工作是( )
A.设计出解决问题的算法 .设计出解决问题的PPT
C.编写出Python代码 .选择一种编程软件
5.现有如下python程序段:
for i in range( 6 ):
p.append( int( random() * 10 ) + 1 )
for i in range( 2, 6 ):
if i % 2 == 1 and p[ i ] % 2 == 0:
p[ i ] += p[ i - 1]
elif i % 2 == 0 and p[ i ] % 2 == 1:
p[ i ] -= p[ i - 1]
执行该程序段后,在下列选项中,列表p中的元素值不可能的是()
A.1, 2, 3, 4, 7, 2
B.1, 2, 14, -9, -5, 8
C.6, 8, 1, 4, 6, 10
D.6, 4, 14, -7, 3, 8
6.我们可以对文本中词频较高的分词,通过词云图给予视觉上的突出,小明打算用Python程序来生成词云图,程序中需要用到以下哪个第三方库?( )
A.WordCloud .math .random .turtle
7.有python程序如下
a=int(input())
b=int(input())
c=input()
if c=='+':
print(a+b)
elif c=='-':
print(a-b)
elif c=='*':
print(a*b)
elif c=='/':
print(a/b)
else:
print(“输入错误,请重试”)
当程序运行后,小新依次输入 9 2 *
程序输出结果应为( )
A.18 .11 .7 .4
8.在python中,语句print(a,b)的意思是( )
A.打印a,b .输出(a,b) .输出a,b .输出a,b的值
9.下列序列拼接错误的是()
A.list = [ None ] * 4
B.msg = “Python”, ”语言”
C.tup = “/”.join( ( “123”, ”234” ) )
D.set = { 1, 2, 3 } + { 4, 5, 6 }
10.下列选项中,不能作为python程序变量名的是( )
A.abc .abc123 .123abc .abc__123
11.以下Python程序运行后,变量x和st的值分别是( )。
A.801 123678 .801 “123678” .801 801 .123678 “123678”
12.下面Python代码运行后,a、b的值为( )
a=23
b=int(a/10)
a= a-b * 10
print(a,b)
A.23 2 .3 2 .3 20 .2 3
13.下列哪个语句在Python中是非法的?( )
A.x=y=z=1 .x=(y=z+1) .x,y=y,x .x+=y
14.下列选项中,可以作为 Python程序变量名的是( )
A.a/b .ab .a+b .a-b
15.在Python中要交换变量a和b中的值,应使用的语句组是( )
A.a,b = b,a .a = c ;a = b;b = c
C.a = b;b = a .c = a;b = a;b = c
二、程序填空
16.阅读程序。分析以下Python程序并回答问题。
who='我的'
action='是'
destination='镜像世界'
number='153'
code='通行密码'
print( who+destination+code+action+str(number))
(1)变量who的数据类型_______________。
(2)类似number的数据类型______________ 。
(3)print语句输出的结果是______________。
(4)str(number)的作用是_________。
(5)“+”在程序中的作用是____________。
17.某种数据加密方法描述如下(加密前数据是ASCII字符):
●以8个数据为一段,将n个待加密数据依次分割成若干个数据段,剩余数据(个数小于8)为数据段。
●数据加密规则:数据个数等于8的数据段,对各个字符进行位置变换;数据个数小于8的数据段,不进行位置变换。
位置变换:用位置变换密钥数组c,将数据段每个字符进行位置变换,方法如下:
加密后某数据段的第i个元素=对应原数据段的第c(i)个元素,其中i=1,2,……,8。
数值变换:位置变换后,依次取出各个字符进行数值变换:把该字符的ASCII码转二进制,然后与密钥m对应的二进制数(m为1到255之间的整数)按位异或运算。异或运算(⊕)规则:如果a、b两个值不相同,则a⊕b结果为1;如果a、b两个值相同,则a⊕b结果为0,即:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0。
●把上述处理的得到二进制数依次拼接,即构成最后的加密数据例如,待加密数据为“python3.50”,数组c各元素的值依次是
| 数组c | 3 | 6 | 1 | 5 | 2 | 8 | 4 | 7 |
如值变换密钥m为35(二进制表示是00100011),则字符“t”(ASCII码值是116,二进制表示是010100)的数值变换过程如下:
| 变换前 | 0 | 1 | 1 | 1 | 0 | 1 | 0 | 0 |
| 密钥m | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 1 |
| 变换后 | 0 | 1 | 0 | 1 | 0 | 1 | 1 | 1 |
(2)小李根据上述算法,设计了一个数据加密程序,其VB代码如下,请在划线处填入合适的代码。
Const n = 1024
Dim c(1 To 8) As Integer
Private Sub Form _ Load()
‘产生位置变换密钥数组c,代码略
End Sub
Function convert(c As Integer)As String
‘程序功能:把整数c转成8位二进制数,代码略
End Function
Private Sub Command1_Click()
Dim s As String,st As String,ss As String,res As String
Dim i As Integer,j As Integer start As Integer
Dim a(1 To n) As String,b(1 To n) As String
s = Text1. Text
st = convert(Val(Text2. Text))
For i = 1 To Len(s)
a(i) = Mid(s,i,1)
Next i
i = 1:start = -8
Do While①________
If i Mod 8 = 1 Then start = start + 8
b(i)=②_______
i = i + 1
Loop
For j = i To Len(s)
b(j) = a(j)
Next j
For i = 1 To Len(s)
③________
For j = 1 To 8
If Mid(ss,j,1)= Mid(st,j,1)Then
res = res + "0" Else res = res + "1"
'按位异或
Next j
Next i
Text3. Text = res
End Sub
18.“百鸡百钱”问题是一个有名的数学问题,出自《张丘建算经》。其内容是:公鸡5文钱1只,母鸡3文钱1只,小鸡3只1文钱,用100文钱买100只鸡,其中公鸡、母鸡和小鸡都必须要有,问公鸡、母鸡和小鸡各多少只?
打开文件“考生文件夹\\4\\百鸡百钱.py”,完善程序实现以下功能并保存。
(1)请不要更改源程序的结构,删除原题里的①、②、③。填写正确的代码,使程序完善。
(2)运行程序,运行结果如图所示。
# 请不要更改源程序的结构,删除原题里的①、②、③。填写正确的代码,使程序完善
money=100 #一共100文钱
num=100 #一共100只鸡
cock_price=5 #公鸡价格5文
hen_price=3 #母鸡价格3文
threechick_price=1 #3只小鸡1文
for cock_num in range(1,money//cock_price+1): #公鸡只数可能为1-20
for hen_num in range(1,①________): #母鸡只数可能为1-33
for chick_num in range(1,②________): #(3小鸡)只数可能为1-100
money1=cock_num*cock_price+hen_num*hen_price+chick_num*threechick_price
num1=cock_num+hen_num+chick_num*3
if money1==money and num1==num:
print (cock_num,hen_num,③________) #(③小鸡数)
input("运行完毕,请按回车键退出...")
19.分析完善程序
[背景知识]为了保障空气质量,减少雾霾,某市决定当空气污染严重时,实行汽车单双号限行,违反规定的车辆将予以处罚。
如何让高清摄像头自动判断车牌的单双号,交警犯了愁,他需要编程高手的你帮忙,完善下面的程序。( 提示:①所有车牌号中都含有数字,并且车牌号的长度都是6;②以车牌中最后一位阿拉伯数字的奇、偶来决定单双号。)如:
请根据上述算法描述补全代码
s=input("车牌号s=")
n=6
x=s[n-1:n]
while x.isdigit()== False:
①
x=s[n-1:n]
if ② ==0:
print(“双号”)
else:
print(“单号”)
(提示: s[n:m]的功能:从字符串s的
下标为n的元素开始,截取到下标为m-1的元素。例如: s=" 12345" ,s[2:4]=" 34" 。s.isdigit) :判断是否为数字。)
(1)根据题意,程序中空白①处应填写:______
(2)根据题意,程序中空白②处应填写:______(填: A/B/C/D )。
A.int(x)/2==0 B.int(x)%2 ==0 C.int(x)%2=0 D.int(x)%2!=0
20.编写程序。信息社团的三个同学和Bruce一起做游戏,他们的游戏规则很简单,从1开始依次报数,每当一个数能被7整除或者十位是7就要跳过这个数,现在给出一个数N,请输入从1到N(包含N)中要跳过的数。
21.程序补充:
(1)有5万元资金存入银行,选择“1年定期.自动转存”的存款方式,由于银行利率是不断变化的,这5年利率分别是3.25%.3%.3%.2%.1.75%,5年后会有多少收益呢?调用round()函数,保留结果两位小数。
money =_______________________________
rate=_________________________________
for___________________________________
____________________________________
print(“5年以后存款总额:”,money,“元”)
(2) 某投资者购买了10万元一年期收益率3.7%的银行保证收益型理财产品。每年理财赎回后,他会提取2万元用作生活所需,余下资金仍购买此种理财。在收益率不变的情况下,多少年后本金被全部取出?
money= ________________________________
year= __________________________________
while _________________________________
_________________________________
________________________________
print(year,“年后资金被全部取出”)
【参】***试卷处理标记,请不要删除
一、选择题
1.B
【详解】
本题主要考查Python的运算。Python中幂运算(指数运算)的运算符为**,故本题选B选项。
解析:B
【详解】
本题主要考查Python的运算。Python中幂运算(指数运算)的运算符为**,故本题选B选项。
2.A
【详解】
本题主要考查Python表达式的运算。a=2,b=5,a>b值为False,b>3值为True,逻辑运算符“And”两边都为真,表达式的值才为真,故表达式a>b And b>3的值是F
解析:A
【详解】
本题主要考查Python表达式的运算。a=2,b=5,a>b值为False,b>3值为True,逻辑运算符“And”两边都为真,表达式的值才为真,故表达式a>b And b>3的值是False,故本题选A选项。
3.D
【详解】
本题主要考查Python赋值语句。“5s”不是一个合法的变量名,不能将变量x赋给一个数值或表达式,可以将s+5赋给变量s,故本题选D选项。
解析:D
【详解】
本题主要考查Python赋值语句。“5s”不是一个合法的变量名,不能将变量x赋给一个数值或表达式,可以将s+5赋给变量s,故本题选D选项。
4.A
【详解】
本题考查的是计算机解决问题。计算机解决问题的步骤:分析问题、设计算法、编写程序、调试运行、检测结果,其中最核心的步骤是设计算法。故本题应选A。
解析:A
【详解】
本题考查的是计算机解决问题。计算机解决问题的步骤:分析问题、设计算法、编写程序、调试运行、检测结果,其中最核心的步骤是设计算法。故本题应选A。
5.BD
【详解】
本题主要考查Python程序执行。第一个for循环生成列表p,值是[1,10]之间随机整数,第二个for循环处理后4个元素,当i是奇数且生成的p[i]是偶数,则将前一个值累加到p[i
解析:BD
【详解】
本题主要考查Python程序执行。第一个for循环生成列表p,值是[1,10]之间随机整数,第二个for循环处理后4个元素,当i是奇数且生成的p[i]是偶数,则将前一个值累加到p[i],若i是偶数且生成的p[i]是奇数,则p[i]减去前一个值,分析选项B、D第三个元素14,此时i=2,如果p[2]原来生成的是奇数,则需要执行 p[ i ] -= p[ i - 1],否则不变,即p[2]不会大于10,故执行该程序段后,列表p中的元素值不可能是1, 2, 14, -9, -5, 8或6,4, 14, -7, 3, 8,故本题选BD选项。
6.A
【详解】
本题主要考查Python库。WordCloud是优秀的词云展示第三方库 ,math库提供常用的数学函数,random提供常用的随机函数,turtle库用于绘图,故本题选A选项。
解析:A
【详解】
本题主要考查Python库。WordCloud是优秀的词云展示第三方库 ,math库提供常用的数学函数,random提供常用的随机函数,turtle库用于绘图,故本题选A选项。
7.A
【详解】
本题考查Python程序段。当程序运行后,小新依次输入9 2 *,即a=9,b=2,c=*,则elif c==‘*’:成立,执行print(a*b),结果为18,故本题选A。
解析:A
【详解】
本题考查Python程序段。当程序运行后,小新依次输入9 2 *,即a=9,b=2,c=*,则elif c==‘*’:成立,执行print(a*b),结果为18,故本题选A。
8.D
【详解】
本题主要考查Python输出函数。在python中,语句print(a,b)的意思是输出a,b的值,故本题选D选项。
解析:D
【详解】
本题主要考查Python输出函数。在python中,语句print(a,b)的意思是输出a,b的值,故本题选D选项。
9.D
【详解】
本题主要考查Python序列拼接运算。set = {} 生成的是字典类型,而不是集合类型,不支持使用+,故本题选D选项。
解析:D
【详解】
本题主要考查Python序列拼接运算。set = {} 生成的是字典类型,而不是集合类型,不支持使用+,故本题选D选项。
10.C
【详解】
本题考查的是python的变量命名。python的变量名是由数字、字母、下划线组成,并且数字不能打头。故选项C符合题意。
解析:C
【详解】
本题考查的是python的变量命名。python的变量名是由数字、字母、下划线组成,并且数字不能打头。故选项C符合题意。
11.B
【详解】
本题主要考查Python语句执行。语句X=123+678是整型类型运算,值为801;语句St="123"+"678"是字符串运算,直接拼接,值为"123678",故本题选B选项。
解析:B
【详解】
本题主要考查Python语句执行。语句X=123+678是整型类型运算,值为801;语句St="123"+"678"是字符串运算,直接拼接,值为"123678",故本题选B选项。
12.B
【详解】
本题主要考查Python程序的执行。a=23,b=int(a/10)=2(int(x)是返回不大于x的最大整数),a=a-b*10=23-2*10=3,故代码运行后,a、b的值为3和2
解析:B
【详解】
本题主要考查Python程序的执行。a=23,b=int(a/10)=2(int(x)是返回不大于x的最大整数),a=a-b*10=23-2*10=3,故代码运行后,a、b的值为3和2,故本题选B选项。
13.B
【详解】
本题主要考查Python程序的语句。x=y=z=1(给变量x、y、z均赋值为1),x,y=y,x(交换x和y的值),x+=y等价于x=x+y,x=(y=z+1)是非法的语句,故本题选B
解析:B
【详解】
本题主要考查Python程序的语句。x=y=z=1(给变量x、y、z均赋值为1),x,y=y,x(交换x和y的值),x+=y等价于x=x+y,x=(y=z+1)是非法的语句,故本题选B选项。
14.B
【详解】
本题主要考查Python变量的命名。变量的命名规则有:只能以字母或下划线开头,不能包含特殊符号,不能是关键字。故ab可以作为 Python程序变量名,故本题选B选项。
解析:B
【详解】
本题主要考查Python变量的命名。变量的命名规则有:只能以字母或下划线开头,不能包含特殊符号,不能是关键字。故ab可以作为 Python程序变量名,故本题选B选项。
15.A
【详解】
本题考查Python语句。在Python中要交换变量a和b中的值,可以使用的语句组是t=a;a=b;b=t也可以是a,b=b,a,故本题选A。
解析:A
【详解】
本题考查Python语句。在Python中要交换变量a和b中的值,可以使用的语句组是t=a;a=b;b=t也可以是a,b=b,a,故本题选A。
二、程序填空
16.字符串 字符串 我的镜像世界通行密码是153 转换为字符串 连接字符串
【详解】
本题主要考查Python程序的执行与调试。①who='我的',可知变量who的数据类型字符串。②number='153' ,类似number的数据类型也为字符串。③print( who+destination+code+action+str(number)),是将变量字符串拼接后输出,故print语句输出的结果是我的镜像世界通行密码是153。④str(number)的作用是转换为字符串。⑤“+”在程序中的作用是连接字符串。
17.①i <=(Len(s)\\8)*8 ②a(start + c((i-1)Mod 8+1)) ③ss = convert(Asc(b(i)))
【详解】
(1)“A”的ASCII码值是65,用二进制表示为0100001,m=35,用二进制表示为0010001,位做异或运算,相同为0,相异为1,可得:01100010。
(2)①以8个数据为一段进行分段处理,个数等于8的数据段需进行位置变换,故需进行位置变换的数据段有(Len(s)\\8)个,数据个数为i <=(Len(s)\\8)*8。
②位置变换方法:加密后数据段的第ⅰ个元素=原数据段的第c(i)个元素,其中i=1,2,……,8,i表示段内位置。代码“Do While i <=(Len(s)\\8)*8”中的i对应段内位置可为“1+(i-1)Mod8”,start表示该数据段第一个数据的前个位置,故数组b第i位置元素是来自数组a第start + c(1+(i*-1)Mod 8)位置,故②处代码为“a(start + c(i-1)Mod8+1))”。
③位置变换后的数据需转二进制,再按位做异或运算,故③处的代码是调用自定义函数convert把b(i)中字符的ASCII码转二进制后存入变量ss,故此处代码为“ss = convert(Asc(b(i))”。
18.34或 money//hen_price+1 101 或 money//threechick_price+1 chick_num*3
【详解】
本题主要考查Python程序执行与调试。①母鸡只数可能为1-33,对比最外层循环范围,第一空填34或 money//hen_price+1。②小鸡只数可能为1-100,同理第二空填101 或 money//threechick_price+1。③公鸡5文钱1只,母鸡3文钱1只,小鸡3只1文钱,故第三空填chick_num*3。
19.n=n-1或 n-=1 B
【详解】
本题主要考查算法及Python程序设计。①此处是判断x是否为数字,若不是数字,则n递减取前一位字符继续进行判断,故此处填n=n-1或 n-=1。②当while循环结束,表明此时x为数字,若int(x)%2 ==0,即x为偶数,输出“双号”,否则输出单号,故选B选项。
20.N=int(input("请输入一个数"))
for i in range(1,N+1):
if(i%7==0 or i/10==7):
print(i,end=" ")
【详解】
本题考查Python语言编程解决实际问题。本题要找到能被7整除或者十位是7的数,并且这两个条件是或的关系,其关键代码为i%7==0 or i/10==7。程序运行代码详见下图:
21.[0.0325,0.03,0.03,0.02,0.0175] i in rate:(没有冒号算错误) money=round(money*(1+i),2) 100000 0 money>0 或 money>=0 money=round(money*1.037-20000,2) year=year+1
【详解】
本题主要考查Python程序语句。①此处是变量money的初始化,有5万元资金存入银行,故填50000。②5年利率分别是3.25%、3%、3%、2%、1.75%,用rate数组保存,故填[0.0325,0.03,0.03,0.02,0.0175]。③通过for循环,从rate数组中取值,故填i in rate:(没有冒号算错误)。④调用round()函数,保留结果两位小数,故填money=round(money*(1+i),2)。⑤购买了10万元一年期收益率3.7%的银行保证收益型理财产品,故money的初始值为100000,故填100000。⑥year的初始值也为0,故填0。⑦循环条件是money大于0或大于等于0,故填money>0 或 money>=0。⑧收益率3.7%,每年理财赎回后,会提取2万元用作生活所需,余下资金仍购买此种理财,使用round函数保留2位小数,故填money=round(money*1.037-20000,2)。⑨循环变量是year,此处year递增进入下一轮循环,故填year=year+1。
