您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页正文

试卷python软件编程等级考试(三级)编程实操题程序填空阅读填空程序试题

来源:华佗小知识
试卷python软件编程等级考试(三级)编程实操题程序填空阅读填空程序试题

一、程序填空

1.程序设计:在舞会上,男生、女生各自排成一队。舞会开始时,依次从男队和女队的队头各出一人配成舞伴。跳完后的两人重新回到队尾。

例如:boy=['Alex','Steven','Jack'],girl=['Ada*,'Babs'.,'Danla','Jane'] 输出: Turn1:(Alex,Ada) Turn2:(Steven,Babs) Turn3:(Jack,Danla) Turn4:(Alex,jane) ……

Turn12:(Jack,jane) 代码如下:

boy=['Alex','Steven',‘Jack'] girl=['Ada','Babs','Danla','Jane'] for i in range(12): x,y= ① #出队

print(“Turn{:2}):({},{})\".format(i+1,x,y)) boy.append( ② ) #再进队 girl.append( ③ ) #再进队

(1)程序代码中①处正确的代码是(_______)。 A.boy.pop(l).girl.pop(l) B.girl.pop(l),boy.pop(l) C.boy.pop(0),girl.pop(0) D.girl.pop(0),boy.pop(0) (2)程序代码中②处正确的代码是(_______)。 A.x B.y C.i D.i+1

(3)程序代码中③处正确的代码是(_______)。 A.x B.y C.i D.i+1

2.请在空格处填写正确的代码,使程序完善。 实现功能:绘制y=x2-2x+ 1的图像

#加载numpy模块并限简洁的别名为np import numpy as np

#加载matplotlib.pyplot模块并限简洁的别名为plt import matplotlib.pyplot as plt #x在-7到9之间,每隔0.1取一个点 x=np.arange(-7,9,0.1) _____ = x**2-2*x+1 plt.plot(x,________) plt.title('y=x*x-2*x+1') plt.xlabel('x') plt.ylabel('y') plt._________

3.阅读程序。分析下列切片相关程序并回答问题。 list2=[5,6,7,8,9] print(list2[:]) print(list2[2:]) print(list2[:2]) print(list2[1:3]) print(list2[2:4])

(1)程序第一个print的输出结果是______________。 (2)程序第二个print的输出结果是______________。 (3)程序第三个print的输出结果是______________。 (4)程序第四个print的输出结果是______________。 (5)程序第五个print的输出结果是______________。

4.编写程序。信息社团的三个同学和Bruce一起做游戏,他们的游戏规则很简单,从1开始依次报数,每当一个数能被7整除或者十位是7就要跳过这个数,现在给出一个数N,请输入从1到N(包含N)中要跳过的数。 5.编写程序,找到并输出100以内的素数。 6.分析完善程序 某市出租车收费标准如下:

(1)3公里内(含3公里),收费8元

(2)超过3公里但未超过6公里部分,按1.5元/公里收费 (3)超过6公里部分,按2.25元/公里收费。

根据以上标准,输入出租车行驶的公里数,请计算顾客需付费多少元? [算法分析]

假设总费用为p,则可以分段计算

p=8 ‘(s≤3)

p=1.5*(s-3)+8 ‘(36) [参考代码] a=float(input(“s=”)) if s <= 3 : p= 8 if

p=1.5*(s-3)+8 if s > 6 :

p=2.25*(s-6)+1.5*3+8 print( p)

根据上述回答如下问题:

(1)本题采用的算法是________(填:解析法/枚举法/排序法/递归法)。 (2)程序代码中空白处应填写的条件是_______(填: A/B/C/D)。 A.33 and s<6 D.s>3 Or s<=6 7.利用for循环,分别计算1--100中奇数的和、偶数的和。 8.输入三个同学的成绩,然后大到小排列。

9.小明设计了一个可以输入日期得到当天是年度第几天的程序,请阅读程序,完成填空(闰年判断规则:能被4整除但不能被100整除或能被400整除,闰年的2月为29天) day=input(\"请输入年月日(格式举例:2000-01-05):\") year=int(day[:4]) month=_________ sun=int(day[8:10]) print(year,month,sun)

f_run=[31,28,31,30,31,30,31,31,30,31,30,31] tall_day=0 if ______:

for i in range(month-1): tall_day +=f_run[i] __________ else:

for i in range(month-1): tall_day +=f_run[i] tall_day += sun

print(day+\"是当年的第\"+str(tall_day)+\"天\") (1)将程序横线处补充完整

(2)如输入“2020-4-19”为当年的第_____天。

10.编写程序,实现从键盘输入数据,实现输入数据转换成大写并输出。

11.编写程序,实现从键盘输入数据,数据前三位的ASCII值加2,从第四位开始ASCII值加3。

12.输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 13.猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。 14.“百鸡百钱”问题是一个有名的数学问题,出自《张丘建算经》。其内容是:公鸡5文钱1只,母鸡3文钱1只,小鸡3只1文钱,用100文钱买100只鸡,其中公鸡、母鸡和小鸡都必须要有,问公鸡、母鸡和小鸡各多少只?

(1)请在空格处填写正确的代码,使程序完善实现以下功能。 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,_______): #公鸡只数可能为1-20 for hen_num in range(1,_________): #母鸡只数可能为1-33 for chick_num in range(1,101): #(3小鸡)只数可能为1-100

money1=cock_num*cock_price+hen_num*hen_price+chick_num/threechick_price num1=cock_num+hen_num+chick_num if money1==money and num1==num: print (cock_num,hen_num,__________) input(\"运行完毕,请按回车键退出...\") (2)运行程序,运行结果如图所示。

15.操作说明:打开文件“Y:/2/2.py”,在代码窗口指定位置<1>、<2>处修改完善程序代码,不得增加、删除语句或改变程序原有结构,操作结束后保存。

以下程序段的功能是:输入一个正整数n(1至100),输出它的约数的个数。 s=0

n=int(input(“请输入一个正整数:”)) if n<1 or n>100:

exit #输入的数不符合要求,退出 for i in range(1,n+1): if n//i=0:___<1> s=s+i <2>

print(“约数的个数是:”,s)

16.编写程序。如图所示的算法,请用Python程序写出实现该算法相应的代码。

17.地球绕太阳的运行周期为365天5小时48分46秒(合365.24219天),即一回归年。公历的平年只有365天,比回归年短约0.2422天,每四年累积约一天,把这一天加于2月末(即2月29日),使当年的时间长度变为366天,这一年就是闰年。判断某一年是否是闰年的方法是年份数能被4整除,但不能被100整除,或者年份数能被400整除。以下是一段用于判断某一年是否是闰年的程序。

请将上面程序框中空格处的内容填写完整,其中①处填写代码注释 ___________ ______ __________ _______ _______

18.广场上有许多(有数百人)小朋友在玩分组游戏,当他们分成三人一组时,发现最后多出两个;当他们分成五人一组时,发现最后多出三个;当他们分成七人一组时,发现最后多出两个。编写程序求出这些小朋友的可能人数。

实现上述功能的程序如下,请在程序划线处填入合适的代码。 ________ a=[ ]

for i in range(100,1000): if_____________: a.append(i) total + = 1

print(\"这群小朋友总的人数有:\") for j in range(len(a)): print(____,end='、') print('')

print('可能情况数为:',total,'种')

划线处①处应该填入的语句为: ; 划线处②处应该填入的语句为: ; 划线处③处应该填入的语句为: 。 19.完善代码并保存。

实现功能:从键盘输入10个学生的测试成绩,输出最高分和最低分。 cj=[]

for i in range(0,________): x=float(input(\"请输入一个数\")) cj.append(________) print(max(cj), min(________)) input(\"运行完毕,请按回车键退出...\")

20.某品牌手机第一年销量为20000台,假设平均每年的销量比上一年增加68%,请问几年后能使总销量达到60000台。下面的程序能实现上述的功能,请将缺失的代码补充完整。

total= every_year=20000 year=1

while __________________ : every_year + = ____________ total + = every_year year + = 1 print(year)

21.小敏有10万元本金,想要购买银行保证收益型理财产品。每年到期后连本带利仍购买此种理财。请你帮助小敏分析,在年收益率不变的情况下,多少年后小敏的累计收益能超过本金,请完成程序填空。(例如输人:5.15%,输出:14年后收益超过本金。)

1 s=input(\"请输入年利率:") 2 rate=float(s[:-1])*0.01 3 money=100000 4 year=0

5 while money<=200000: 6 money=round( ),2) 7 year=year+1

8 print(year,\"年后收益超过本金。”) (1)程序第6行下划线处应填入___________。

(2)程序第2行的作用是____________,并赋值给变量 rate。 (3)该程序主要是通过while实现____________结构。 22.已知6月份10位技术考试成绩: 1 78 2 88 3 89 4 90 5 83 6 76 7 75 8 98 9 100 10 65 技术老师想统计出80分(含80)以上的人数,请完善程序,代码如下: a=[78,88,89,90,83,76,75,98,100,65] ______ sum=0 for i in range(n): if a[i]>=80: ________ print(sum)

执行上述程序段后,输出的内容是______

23.现代生活半径的扩大和生活节奏加快使出行成本不断增长。滴滴快车应运而生,其以灵活快速的响应和经济实惠的价格为大众提供更高效、更经济、更舒适的出行服务,给人们生活带来了美好的变化。小C是滴滴快车忠实的粉丝,经常出行就提前预约,乘坐滴滴快车。小C就在思考这个滴滴快车是怎么计费的?可否用所学的Python语言也编写一个计费程序。于是小C开展了有关这个项目活动的探究。根据实际情况,回答问题。 (一)收集、分析数据,运用数理思维建模

登录滴滴出行官网,得到了如下信息,即“滴滴快车(普通型)计价规则”: 滴滴快车(普通型)计价规则 时段 普通时段 00:00-06:30 06:30-09:00 21:00-23:00 起步价 8.00元 8.50元 8.50元 8.50元 里程费 1.35元/公里 2.40元/公里 1.50元/公里 1.50元/公里 时长费 0.20元/分钟 0.50元/分钟 0.45元/分钟 0.40元/分钟 23:00-00:00 注意: 8.50元 2.40元/公里 0.50元/分钟 1.起步价包含里程3.3公里,包含时长9分钟,里程费、时长费合计不足基础费时,直接按照基础费计费。 2.实时计价是基于订单服务内容(里程、时长、时段),按各种费用项定价标准计算订单价格的计价方式,实际费用由两部分里程费与时长费累加而得。 小C同学19:33从“南内环恒地大厦停车场-入口”到“坞城新纪元大酒店(长风店)”乘坐滴滴快车(普通车型),里程4.1公里,时长约21分钟,按照表中的计费规则,小C同学此次出行应该支付的车费是:车费=8+(4.1-3.3)×1.35+(21-9)×0.2=9.68。

(1)小C登录滴滴出行官网搜索并下载“计价规则”,所采用的数字化工具:_____________

A.数字化可视化表达工具 B.信息加工工具 C.三维设计工具 D.信息检索工具

(2)假设Tot1表示时长费,Tot2表示里程费,S表示实际里程,T表示实际时长,Cost表示应支付费用。运用数学解析式归纳出计费公式为:

如果时长超过9分钟,则Tot1=_____________。如果里程小于等于3.3公里则

Tot2=_____________,否则Tot2=_____________。应支付费用:Cost=______________。 (二)运用算法描述方法将问题解决步骤化

小C明晰了滴滴快车车费的计算方法之后,设计求解滴滴快车普通时段车费的算法,并用自然语言和流程图的方式表述出来。 (3)自然语言描述:

第一步:_________________________ 第二步:计算时长费Totl 第三步:计算里程费Tot2

第四步:_________________________ 第五步:_________________________

(4)流程图描述:(如图)流程图中,表示计算与赋值的是_____________,表示算法流向的是______________。

A. B. C. D. E.

(5)算法描述中,用到了三种基本控制结构,分别是_______________、______________和______________。如图示中的流程图使用的控制结构是_______________和______________。(选填:顺序结构、选择结构、循环结构、树型结构)

(6)一个算法必须有______________或多个数据输入。有______________或多个数据输出。(选填:零个/一个)

(三)编写、调试、运行程序,验证算法并解决问题________ 24.某种数据加密方法描述如下(加密前数据是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)的数值变换过程如下: 变换前 密钥m 变换后 0 0 0 1 0 1 1 1 0 1 0 1 0 0 0 1 0 1 0 1 1 0 1 1 (1)已知“A”的ASCII码值是65,m=35,则“A”数值变换后的结果是_______(填二进制数据)。

(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

25.阅读程序。观察使用随机数求解百钱白鸡问题的代码并回答问题。

百千白鸡问题是经典的数学问题,原题为“鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,则翁、母、雏各几何?”翻译过来,意思是公鸡一个五块钱,母鸡一个三块钱,小鸡三个一块钱,现在要用一百块钱买一百只鸡,问公鸡、母鸡、小鸡各多少只? import random while True:

x=random.randrange(0,20) y=random.randrange(0,33) z=random.randrange(0,100) if 5*x+3*y+z/3==100 and x+y+z==100: print('公鸡',x) print('母鸡',y) print('小鸡',z)

(1)Python中导入库文件的命令是________。

(2)random.randrange(0,20)生成的随机数的范围是_________

(3)如果不想写类似random.randrange(0,20)这么长的句子,可以修改程序中的第一行为 ________

(4)while True 的作用是______ 。

(5)如果while True造成程序无法停止,我们可以在程序中添加一行 _________。 26.小金同学学完了进制转换后,对课后的不同进制的加减法很是头疼,爱动脑筋的小金突发奇想,能不能用python程序来完成这些作业呢?请帮小金完成代码编程. def convert(s): m=0 le=len(s) key=s[le-1] if key==\"B\": n=2 elif key==\"D\": _______ else: n=16 i=0 while i<=le-2: c=s[le-1-i] if c>=\"0\"and c<=\"9\": a=ord(c)-ord(\"0\") elif c>=\"A\"and c<=\"F\": a=ord(c)-ord(\"A\")+10 _____________ i+=1 return m

s=input(\"请输入算式\")

result=0;suanfu1=\"\";suanfu2=\"\";s1=\"\" for i in range(len(s)): c=s[i]

if c==\"+\" or c==\"-\" or c==\"=\": __________ suanfu1=suanfu2 suanfu2=c if suanfu1==\"\": result=t if suanfu1==\"+\": result=result+t if suanfu1==\"-\": result=result-t s1=\"\" else: s1=s1+c

print(\"计算结果为\"+str(result)+\"D\")

(1)将程序横线处补充完整

(2)如输入“1110B+10D-30H=”则输出结果为___________。

27.“枚举算法”又称为“穷举法”,其基本思想是:一一列举出所有可能的解,并验证每个可能的解是否是真正的解,若是,就采纳,否则,就抛弃。

小明利用枚举算法解决“百元买百鸡”问题。用100元钱买100只鸡,公鸡,母鸡,小鸡都要有。公鸡5元1只,母鸡3元1只,小鸡1元3只。请问公鸡,母鸡,小鸡各应该买多少只?

假设公鸡有X只,母鸡有Y只,小鸡有Z只。

以下Python程序段实现了“百元买百鸡”的功能,请补全①②③处代码。 c = 0

for x in ____① : for y in range(1,33): z = 100-x-y if ______② :

print(\"公鸡:\母鸡:\小鸡:\ _____③

print(\"共有买法\种\")

28.某仓库物品代码格式为“X-XXXXXXX-Y”,其中“X”和“Y”均为0到9之间的数字,“Y”为校验码。校验码由前面9个X计算得到,计算方法为:从左边开始,第1个数字乘以1加上第2个数字乘以2……依次类推,直到加上第9个数字乘以9,将该结果除以10,所得余数即为校验码。用Python设计一个程序,输入物品代码,判断输入的代码中校验码是否正确,如果正确输出“正确”,否则输出“错误\"。运行样例如下所示: 样例1:

输入:2-163-91475-4 输出:正确 样例2:

输入:2-163-91475-5 输出:错误

(1)Python程序实现如下,请在划线处填入正确的代码: s=input(\"输入物品代码: \") a=[]

for i in range (0, 13): if ___

a. append(int (s[i])) #append( )函数用于在列表末尾添加新的对象

sum=0

for i in range(0, 9) : ____ sdm=sum%10 ___ if sdm==ydm : print(\"正确\") else: print(\"错误\")

29.请编写Python程序,实现如下功能需求:

1)程序运行后,给出文字提示:“请输入一个正整数:”

2)输入一个整数n按回车后,程序输出从1-n所有整数中既是3的倍数又是5的倍数的数。

3)不要超过5行代码。 程序运行举例:

30.求1~100内奇数之和(使用range函数)

【参考答案】***试卷处理标记,请不要删除

一、程序填空

1.C A B 【详解】

本题主要考查队列数据结构及Python程序。①队列是从队头出队,队尾入队,使用pop函数出队,队头的索引值是0,故此处填boy.pop(0),girl.pop(0)。②队列入队使用append方法追加到队列尾,此处是男生入队boy.append(x),故选A选项。③同理,此处是女生入队girl.append(y),故选B选项。 2.y y show( ) 【详解】

本题主要考查Python程序绘制图像。 ①绘制y=x2-2x+ 1的图像,故此处填y。 ②根据横纵坐标x和y绘制图,故此处填y。 ③此处调用显示函数show( ),故填show()。 3.[5,6,7,8,9] [7,8,9] [5,6] [6,7] [7,8] 【详解】

本题主要考查Python列表截取。Python列表的正向索引下标是从零开始,不是1;当只有

冒号,表示全部元素;只有头下标i和冒号(代表的是从该头下标i的元素开始截取,一直到最后);只有冒号尾下标i(代表的是从开始一直截取到i-1的元素);头下标i,冒号和尾下标j都有(代表的是从i一直截取到j-1的元素),因此①[5,6,7,8,9]②[7,8,9]③[5,6]④[6,7]⑤[7,8]。 【点睛】

4.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。程序运行代码详见下图:

5.参考答案1: for i in range(2,101): j=2 while j<=i: if i%j==0: break j+=1 if jprint(i,end=\" \") 参考答:2:

for i in range(2,101): for j in range(2,i): if(i%j==0): break else: print(i) 【详解】

本题考查是Python语言编程解决问题。break 语句可以立即终止当前循环的执行,跳出当前所在的循环结构。无论是 while 循环还是 for 循环,只要执行 break 语句,就会直接结束当前正在执行的循环体。这就好比在操场上跑步,原计划跑 10 圈,可是当跑到第 2 圈的时候,突然想起有急事要办,于是果断停止跑步并离开操场,这就相当于使用了 break 语句提前终止了循环。答案中代码的实现过程见下图:

参考答案1:

参考答案2:

6.解析法或解析 A 【详解】

本题主要考查Python程序的执行与调试。①由算法分析可知,本题采用的算法是解析法或解析。②3公里内(含3公里),收费8元;超过3公里但未超过6公里部分,按1.5元/公里收费;超过6公里部分,按2.25元/公里收费,故此处填3for i in range(1,101): if i%2==0 : sum1+=i

else: sum2+=i print(sum1,sum2) 【详解】

本题主要考查程序设计。可以使用Python程序设计语言实现题干要求,通过if条件分支结构可以实现分别计算奇数的和、偶数的和,具体代码如下: sum1=0 sum2=0

for i in range(1,101): if i%2==0 : sum1+=i else: sum2+=i print(sum1,sum2)

8.

【详解】

本题主要考查程序设计与实现。可以使用Python程序实现题干要求:

9.int(day[5:7]) (year%4==0 and year%100!=0 or year%400==0) and month>=2 tall_day+=1 110

【详解】

本题主要考查Python程序的执行与调试。①此处是取出字符串day中的月份赋给变量month,month是第5~第6位,str[start:end],start会包含在结果中而end却不会,故此处填int(day[5:7])。②此处判断是不是闰年,因为闰年的二月有29天,故if判断还要判断当前的月份是不是包含2月即大于等于2月,故此处填(year%4==0 and year%100!=0 or year%400==0) and month>=2。③如果是闰年且当前日期包括2月,则循环完tall_day需增加1天,故填tall_day+=1。④输入“2020-4-19”为当年的第110天。

10.str = input(\"请输入要转换成大写的数据:\") c=len(str) for i in range(0,c): print(str[i].upper(),end=\" \") 【详解】

本题主要考查程序设计。题干要求可使用Python程序设计实现,通过upper函数可以将输入数据转换成大写并输出,具体代码如下: str = input(\"请输入要转换成大写的数据:\") c=len(str) for i in range(0,c): print(str[i].upper(),end=\" \")

11.s=input(\"请输入要转换的字符) c=len(s) #len 求字符串长度 for i in range(0,c):

if i<2:

print (chr(ord(s[i])+2)) # ord ord() 函数是 chr() 函数配对函数,将字符转ASCII值 else:

print(chr(ord(s[i]) + 3)) 【详解】

本题主要考查程序设计。题干要求可通过Python程序条件分支结构实现,具体代码如下: s=input(\"请输入要转换的字符) c=len(s) #len 求字符串长度 for i in range(0,c): if i<2:

print (chr(ord(s[i])+2)) # ord ord() 函数是 chr() 函数配对函数,将字符转ASCII值 else:

print(chr(ord(s[i]) + 3)) 12.s = input('input a string:') letter = 0 # 统计字母 space = 0 # 统计空格 digit = 0 # 统计数字 other = 0 # 统计其他字符 for c in s: if c.isalpha(): letter += 1 elif c.isspace(): space += 1 elif c.isdigit(): digit += 1 else: other += 1

print(\"字母:\空格:\数字:\其他字符:\ 【详解】

本题主要考查程序设计。题干要求可通过Python程序实现,使用for循环、多条件分支结构。其中实现分别统计出其中英文字母、空格、数字和其它字符的个数可通过函数isalpha、isspace、isdigit来判断统计,具体代码如下: s = input('input a string:') letter = 0 # 统计字母 space = 0 # 统计空格 digit = 0 # 统计数字 other = 0 # 统计其他字符 for c in s: if c.isalpha(): letter += 1

elif c.isspace(): space += 1 elif c.isdigit(): digit += 1 else: other += 1

print(\"字母:\空格:\数字:\其他字符:\ 13.s=1 for i in range(9): s=(s+1)*2 print(s) 【详解】

本题主要考查Python程序设计。第10天,只剩下一个桃子s=1,由题干每天早上都吃了前一天剩下的一半零一个,则第9天剩下的桃子为(s+1)*2,可以通过for循环求得第一天共摘了多少个桃子,具体代码如下: s=1

for i in range(9): s=(s+1)*2 print(s)

14.34 chick_num 【详解】

本题主要考查Python程序的执行。①公鸡数量的范围1-20,for cock_num in range(1,21)表示变量cock_num的范围是1-20,故此处填21。②母鸡的数量可能为1-33,同理,故此处填34。③此处是按顺序使用print()函数输出公鸡数量、母鸡数量、小鸡数量,故此处填chick_num。

15.<1>n%i==0 <2>s=s+1 【详解】

本题主要考查Python程序的执行。<1>变量i的取值范围是1~n,如果n能整除i,则i为n的一个约数,s统计约数的个数,故此处应修改为n%i==0。<2>如果n能整除i,则s递增,故此处应改为s=s+1。

16.a=float(input(\"请输入一个数\")) b=float(input(\"请输入一个数\")) c=float(input(\"请输入一个数\")) if c>a and c>b:

print(\"最大数为:\ elif b>a:

print(\"最大数数\ else:

print(\"最大小数为\

【详解】

本题主要考查算法描述及Python程序设计。分析算法流程图,首先输入a、b、c三个数,进行两两比较,输出最大数,故Python程序设计如下: a=float(input(\"请输入一个数\")) b=float(input(\"请输入一个数\")) c=float(input(\"请输入一个数\")) if c>a and c>b:

print(\"最大数为:\ elif b>a:

print(\"最大数数\ else:

print(\"最大小数为\

17.将year转换为整型数据,并赋值给year And year%100 != 0 or year 【详解】

本题主要考查Python程序设计。①input接收的数据类型是字符串型,该语句表示将year转换为整型数据,并赋值给year。判断某一年是否是闰年的方法是年份数能被4整除,但不能被100整除,或者年份数能被400整除,故第二、三、四空分别填② And ③year%100 != 0 ④or ⑤最后输出打印某一年是否是闰年,需要将year转换为字符型。 18.total=0 i%3 == 2 and i%5 == 3 and i%7 == 2 a[j] 【详解】

本题主要考查Python程序的执行与调试。①变量total用来统计有多少种情况,初始值为0,第一空填total=0。②当他们分成三人一组时,发现最后多出两个;当他们分成五人一组时,发现最后多出三个;当他们分成七人一组时,发现最后多出两个,即if判断条件为i%3 == 2 and i%5 == 3 and i%7 == 2,满足if条件时,将该值加到列表a中,故第二空填i%3 == 2 and i%5 == 3 and i%7 == 2。③最后通过for循环输出所有可能的数,用变量j控制,故第三空填a[j]。 19.x cj 【详解】

本题主要考查Python程序执行与调试。①从键盘输入10个学生的测试成绩,range(a,b)的范围是从a~b,但不包括b,故第一空填10。②每输入一个数x,将其通过append函数加到列表cj中,故第二空填x。③求最大值用max函数,求最小值用min函数,故第三空填cj。

20.total<60000 every_year*0.68 【详解】

本题主要考查Python程序执行与调试。①由题干可知,while循环条件是总销量total小

于60000,故第一空填total<60000。②平均每年的销量比上一年增加68%,即every_year + =every_year*0.68,故第二空填every_year*0.68。

21.money*(1+rate) 将输入的字符串年利率由百分制转换为浮点数 循环 【详解】

本题主要考查Python程序设计。①round(x,n)函数是将x取n位,此处是计算当前年份的收益,收益=本金+本金*年利率,故填money*(1+rate),并将结果取2位。②程序第2行的作用是将输入的字符串年利率由百分制转换为浮点数,并赋值给变量 rate。③该程序主要是通过while实现循环结构。

22.①n=len(a) sum+=1或sum=sum+1 6 【详解】

本题主要考查Python程序调试与执行。①变量n用来保存数组a的长度,使用len函数,故此处填n=len(a)。②使用for循环统计出80分(含80)以上的人数,用变量sum统计满足条件的人数,当满足if条件时,sum变量递增,故此处填sum+=1或sum=sum+1。③执行上述程序段后,sum=6,故输出的内容是6。

23.D Tot1=(T-9)×0.2 Tot2=8 Tot2=8+(S-3.3)×1.35 Cost=Totl+Tot2 第一步:输入实际里程S和实际时长T 第四步:计算应支付费用Cost 第五步:输出应支付费用Cost E A 顺序结构 选择结构 循环结构 顺序结构 选择结构 零个 一个 略 【详解】

本题主要考查算法及程序设计。①小C登录滴滴出行官网搜索并下载“计价规则”,所采用的数字化工具:信息检索工具,故选D选项。②如果时长超过9分钟,则Tot1=(T-9)×0.2。③如果里程小于等于3.3公里则Tot2=8。④里程大于3.3公里,则Tot2=8+(S-3.3)×1.35。⑤应支付费用:Cost=Totl+Tot2。⑥第一步:输入实际里程S和实际时长T。⑦第四步:计算应支付费用Cost。⑧第五步:输出应支付费用Cost。⑨流程图中,表示计算与赋值的是矩形框,即选项E。⑩表示算法流向的是箭头,即选项A。算法描述中,用到了三种基本控制结构,分别是⑪顺序结构⑫选择结构⑬循环结构。如图示中的流程图使用的控制结构是⑭顺序结构⑮选择结构。⑯一个算法必须有零个或多个数据输入。⑰有一个或多个数据输出。⑱略

24.①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))”。

25.import 0~19(包括0和19) import random as r 让程序无限循环 break; 【详解】

本题主要考查Python程序的执行与调试。①Python中导入库文件的命令是import,如import random。②random.randrange(0,20)生成的随机数的范围是0~19(包括0和19)。③如果不想写类似random.randrange(0,20)这么长的句子,可以修改程序中的第一行为import random as r(给random取个简单的别名)。④while True 的作用是让程序无限循环。⑤如果while True造成程序无法停止,我们可以在程序中添加一行break;(满足条件后,执行break;可以跳出循环)。

26.n=10 m=m+(n**(le-2-i))*a t=convert(s1) -24D 【详解】

本题主要考查Python程序的执行与调试。①二进制的权值是2,十进制的权值是10,十六进制的权值是16,此处是十进制的情况,故填n=10。②二进制、十六进制转化为十进制的方法是“按权展开、逐项相加”,从右往左加,变量i的初值等于0,故此处要变换为le-2-i,故此处填m=m+(n**(le-2-i))*a。③当字符c是“+”、“-”、“=”时,则表明第一个运算数已全部保存到变量s1中,此处需要将其转化为十进制保存到变量t中,故填t=convert(s1)。④1110B转化为十进制数是14D,30H转化为十进制数是48D,故1110B+10D-30H=-24D。

27.range(1,20) 5*x+3*y+z/3 == 100 c = c+1 【详解】

本题考查的是python编程。X代表的是公鸡,公鸡5元一只,所以此处的range函数为range(1,20),左闭右开区间。if条件是满足三种鸡的总价格为100元的条件,故答案为5*x+3*y+z/3 == 100,注意这里是一个判断条件,用==表示。c代表的是有几种购买方案,当if条件满足时,即满足一种方案,执行方案数加1,c=c+1。 28.\"0\"<=s[i]<=\"9\" 或s[i] in \"0123456789” sum=sum+a[i]*(i+1) ydm=a[9] 【详解】

本题主要考查Python程序执行与调试。①变量s保存商品仓库物品代码,若s[i]是数字则进入循环判断,否则跳过,故此处判断条件是\"0\"<=s[i]<=\"9\" 或s[i] in \"0123456789”。②校验码由前面9个X计算得到,计算方法为:从左边开始,第1个数字乘以1加上第2个数字乘以2……依次类推,直到加上第9个数字乘以9,用变量sum统计,故此处填sum=sum+a[i]*(i+1)。③变量sdm是计算得到的校验码,变量ydm是输入的校验码,此处需要将校验码a[9]赋给变量ydm,故填ydm=a[9]。 29.n=input(\"请输入一个正整数: \") n=int(n)

For i in range(15,n+1,15) print(i) 【详解】

本题考查的是Python循环语句。range函数,第一个参数表示开始,第二个参数表示停止,第三个参数表示步长。print缺省的话默认是换行输出。

30.Sum=0 for i in range(1,101,2): Sum+=i print(Sum) 【详解】

本题主要考查Python程序设计。求1~100内奇数之和,用Sum来求和,变量i的范围是1到100,每次递增2,可以使用range函数,具体代码如下: Sum=0

for i in range(1,101,2): Sum+=i print(Sum)

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务