您好,欢迎来到微智科技网。
搜索
您的当前位置:首页资料高中信息技术期学科Python语言基础期中考试word程序填空阅读填空程序试题

资料高中信息技术期学科Python语言基础期中考试word程序填空阅读填空程序试题

来源:微智科技网
资料高中信息技术期学科Python语言基础期中考试word程序填空阅读填空程

序试题

一、程序填空

1.输入n,计算s=1!+2!+...+n!的未6位(不含前导0)。N<=1000000,n!表示前n个正整数之积。

2.阅读程序。分析条件语句的代码并回答问题。

(1)如果不能使用int()函数,那么变量s的类型将会变成 ______ 。 (2)如果你的期末成绩是85,你得到的评价将会是____________ 。 (3)如果你的期末成绩是55,你得到的评价将会是____________ 。

(4)如果你得到的评价是“还可以再提升”,你的期末成绩应该在_____和______之间。 (5)“程序中出现的所有else都可以替换为elif,程序效果一样”,这种说法是____(填“对”或“错”)的。

3.阅读程序。分析有关多项式的代码并回答问题。 求1!+2!+3!+……+20!的和。 n=0 s=0 t=1

for n in range(1,21): t*=n s+=t print(s)

(1)n的作用是________________。 (2)s的作用是 ______________。

(3)t的初值必须赋值为1,这是因为_________。 (4)t*=n的等价语句是 __________ (5)s+=t的等价语句是 ______。

4.完善程序。以下是计算S=1+6+11+…+101的程序代码。请你在处填写正确的语句。

s=0 k=1 while(k<=101) __ s=0 k=1 while(k<101): k=k+5 s=s+k print(s+1)

5.调试程序。请阅读以下程序并写出运行结果。

fruites=['banana','apple','mango'] for fruit in fruites: print(fruit) a=len(fruites) print('a=',a) _________________

6.调试程序。请阅读以下程序并写出运行结果。

#ex16.py i=0 sum=0 while i<10:

if i%3==0: sum+=i print(i) i=i+1 print('sum',sum) _________

7.编写程序。信息社团的三个同学和Bruce一起做游戏,他们的游戏规则很简单,从1开始依次报数,每当一个数能被7整除或者十位是7就要跳过这个数,现在给出一个数N,请输入从1到N(包含N)中要跳过的数。

8.编写程序,用*打印一个如下所示的等腰直角三角形,将测试结果截图。 * * * * * * * * * *

9.编写程序,找到并输出100以内的素数。 10.程序分析题

学校举行校园歌手大赛,评委由6人组成。评分方法:去掉一个最高分和一 个最低分,计算其余4位评委的平均分,作为选手的最终得分。max记录最高分; min记录最低分; s记录六位评委的总分; aver记录最终得分。

第1步:从文本框中分别读入6位评委的打分并依次存入到a(1)至a(6)中 第2步:将第1位评委的打分a(1)分别赋给最高分max ,最低分min和总分S

第3步:利用循环结构把另外5位评委的打分累加给s从而求出6位评委的总分s ,同时把5位评委的打分与max和min进行比较,得出6位评委中的最高分max和最低分min。 第4步:从总分中s中去掉最高分max和最低分min,求出其他4位评委的平均分aver作为选手的最终得分。 max=a[0] min=a[0] s=0

for i in range(6) : s=s+a[i]

if a[i]>max: max=a[ i] if a[i] (1)在引用tkinter模块进行界面设计的过程中,窗体中录入评委打分的对象是由______控件生成的。

A.Entry B.Label C.Frame D.Button

(2)题目中算法描述采用的是__________A、自然语言B、伪代码 C、流程图 D、.N-S图 (3)下列程序代码片段对应于算法描述中的第2步至第4步。请填写片段中空白处的表达式填写完整________ 11.分析完善程序 某市出租车收费标准如下:

(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

12.计算机解决问题的过程为“分析问题——设计算法(流程图)——编写程序——调试程序”,

请输入以下代码,自己输入数据运行,结果截图提交

13.小明设计了一个可以输入日期得到当天是年度第几天的程序,请阅读程序,完成填空(闰年判断规则:能被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”为当年的第_____天。 14.请在空格处填写正确的代码,使程序完善。

实现功能:绘制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._________

15.求水仙花数(一个三位数,其各位数字立方和等于该数字本身)

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

17.操作说明:编写一个程序实现以下功能,将程序以“Y:/3/3.py”作为文件名保存。 题目:设计100以内的数中能同时被3或5整除的个数。

18.程序设计:键盘输入任意的正整数,程序输出与其相应的二进制数。 代码如下:

n=int(input(\"请输入一个十进制数:\")) result=[] while n>0: result.append( ① ) n= ② result.reverse() for i in result: print(i,end=”)

(1)程序代码中①处正确的代码是(_______)。 A.n%2 B.n/2 C.n//2 D.n*2

(2)程序代码中②处可能的代码是(_______)。 A.n%2 B.n/2 C.n//2 D.n*2

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

下是一段用于判断某一年是否是闰年的程序。

请将上面程序框中空格处的内容填写完整,其中①处填写代码注释 ___________ ______ __________ _______ _______ 20.完善程序实现以下功能并保存。

输入一元二次方程的系数a,b,c的值,求解一元二次方程 ax2+bx+c=0(a≠0)

#请不要更改源程序的结构,删除原题里的①、②。填写正确的代码,使程序完善 import math

a=float(input(\"请输入方程系数a(!=0):\")) b=float(input(\"请输入方程系数b:\")) c=float(input(\"请输入方程系数c:\")) delta=b*b-4*a*c if delta>________:

x1=(-b+math.sqrt(delta))/(2*a) x2=(-b-math.sqrt(delta))/(2*a) print(\"方程有两个不同的解\",x1,x2) elif delta==0: x1=________

print(\"方程有两个相同的解\",x1) else:

print(\"方程无解\")

input(\"运行完毕,请按回车键退出...\")

21.辗转相除法,又称欧几里德算法,用于计算两个正整数m、n的最大公约数。它是已知最古老的算法,其可追溯至公元前300年前。

辗转相除法的算法步骤是,对于给定的两个正整数m、n(m>n),用m除以n得到余数r,若余数r不为0,就将n和r构成新的一对数(m=n,n=r),继续上面的除法,直到余数为0,这时m就是原来两个数的最大公约数。因为这个算法需要反复进行除法运算,故被形象地命名为“辗转相除法”。小曲设计了辗转相除法的算法,请根据下面算法回答问题。

描述一 描述二 描述三 ①输入两个正整数m,n(m>n); ②计算m除以n所得的余数r; ③m=n,n=r; ④若r=0,则m,n的最大公约数等于m;否则转到步骤②; ⑤输出最大公约数m; ⑥结束。 (1)描述一是________描述法;描述二是流程图描述法;描述三是计算机程序语言描述法。

(2)在描述三中代码4到6行作用是__________。

(3)在描述三程序设计中,补充代码第8行划线处为__________。

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

登录滴滴出行官网,得到了如下信息,即“滴滴快车(普通型)计价规则”: 滴滴快车(普通型)计价规则 时段 普通时段 00:00-06:30 06:30-09:00 21:00-23:00 23:00-00:00 注意: 1.起步价包含里程3.3公里,包含时长9分钟,里程费、时长费合计不足基础费时,直接按照基础费计费。 起步价 8.00元 8.50元 8.50元 8.50元 8.50元 里程费 1.35元/公里 2.40元/公里 1.50元/公里 1.50元/公里 2.40元/公里 时长费 0.20元/分钟 0.50元/分钟 0.45元/分钟 0.40元/分钟 0.50元/分钟 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)一个算法必须有______________或多个数据输入。有______________或多个数据输出。(选填:零个/一个)

(三)编写、调试、运行程序,验证算法并解决问题________ 23.某种数据加密方法描述如下(加密前数据是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

24.某字符转置算法描述如下:

将字符串(均为大写字符)s依次转换为相对应的数值(字符A~Z对应数值1~26); ·转换后的数值以K个数据为一段,将n个待处理的数据依次分割成若干段(最后一段不足部分用0来补充);

每一段中K个数据与K*K转置矩阵进行乘法运算;

将乘法运算得到的每一个结果值除以26求余数,依次转换成相应字符(数值1~26对应字符A~Z),最后按原始字符串长度输出。 乘法运算规则如下:

第i个元素c(i)=第j个元素a(j)*转置矩阵第j行第i个元素b(t)的乘积之和(其中j=1,2…K)

例如:字符串s=PYTHON,区块大小K=4,的转置过程如下:

(1)根据算法描述,上述示例中,字符“N”的相乘结果(即图中(★)处)为________。

(2)请在划线处填入合适代码。

Private Sub Commandl_Click()

Dim a(1 To 100)As Integer ´存储字符串,长度不超过100个字符 Dim b(1 To 100)As Integer 存储转置矩阵,长度不超过 10*10 Dim c(1 To 100)As Long Dim s As String, tmp As String

Dim k As Integer, t As Integer, i As Integer, j As Integer Dim n As Integer, m As Integer, lens As Integer s=Textl. Text ´在 Textl 中输入原始字符串 k=Val(Text 2.Text) ´在 Text 2 中输入区块大小K Randomize For i=1 To k^2 b(i)=Int(Rnd*9)+1 tmp=tmp十Str(b(i)) If i Mod k=0 Then List 2. AddItem tmp tmp=\"\" . End If Next i

lens=Len(s):n=lens For i=1 To n tmp=Mid(s,i,1) ①__________ Listl. AddItem Str(a(i)) Next i

Do While n Mod k<>0

n=n十1 a(n)=0

Listl. AddItem Str(a(n)) Loop For i=1 To n m=(i―1)Mod k+1 t=1

Forj= ②__________ c(i)=a(j) * b((m-1) * k+t)+c(i) t=t+1 Next j Next i For i=1 To n

List 3. AddItem Str(c(i)) Next i s=″″ For i=1 To lens ③__________ s=s+Chr(t+)} Next i

Text 3.Text=s ´在Text 3 中输出转置后的字符串 End Sub

25.学习了Python绘制图形操作后,信息小组接到了编程演示的任务。为此,小组同学编写了一段代码,绘制出多个不同颜色的圆形。 代码如下: import turtle

turtle. bgcolor(\"black\")

colors=[\"red\ for x ① range(100): turtle. pencolor(colors[x%4]) turtle. circle(x) turtle. left(90)

请分析任务,完成下列题目。

(1)程序中①处应填写(________) 。

A.print B.input C.in D.colors (2)程序中x%4的作用是(________)。 A.计算x乘以4的结果 B.计算x除以4的整数部分 C.计算x除以4的小数部分 D.计算x除以4的余数

(3)执行此程序,绘制出圆形的总颜色数是(________)。 A.1 B.4 C.5 D.100 (4)执行此程序,绘制出圆形的总个数是(________)。 A.1 B.4 C.99 D.100 (5)此程序属于程序设计结构中的(________)。 A.顺序结构 B.分支结构 C.循环结构 D.跳转结构

26.现今信息化时代,信息的传输十分迅速,足不出户便知天下事。许多社交平台都有设置本平台的热点排行榜,方便用户了解正在发生的热门事件。但社交平台数量众多,平台用户种类和数量也大不相同,导致不同平台热点的实际热度大小也不同。小钟为了确保自己知道的热点是真正的热点,于是打算用功能强大的python把各个平台的热点排行榜进行合并,形成自己的热点排行榜。

为了热点之间比较方便,小钟设置了一个热度值来衡量一个热点的热度大小,热度值越大说明这个热点的热度越高。现在小钟已经获得了如下两个平台的热度值从小到大的排行榜,正当他打算将之合并为一个从小到大的排行榜时,却被老师叫走了。于是他决定把这个小功能交给他的好朋友——你来实现,你想到2种算法,请把下列程序填写完整。

P10 A 11 E10 B 35 116 215 271 309 428 576 772 806 950 Python程序如下: A= [11,66,116,329,438,582,652,714,756,925] B = [35,116,215,271, (5)__,428,576,772,806,950] 算法一: myRank = i = 0 j = 0

while (i < len(A) and j < len(B)): if (A[i] < B[j]): (6)______ i += 1 else:

myRank.append(B[j]) j += 1 while (i < len(A)): myRank.append(A[i]) i += 1 else:

66 E9 116 E8 329 E7 438 E6 582 E5 652 E4 714 E3 756 E2 925 E1 P9 P8 P7 P6 P5 P4 P3 P2 P1 while ((7)______): myRank.append(B[j]) j += 1 print(myRank)

算法二:

myRank = [0]*(len(A)+len(B)) i = 0 j = 0 k = 0

while ((8)_____): k = i+j if (i >= len(A)): myRank[k] = B[j] j += 1 elif (j >= len(B)): myRank[k] = A[i] i += 1 elif ((9)_____): myRank[k] = A[i] i += 1 else:

myRank[k] = B[j] j += 1 print(myRank)

27.小金同学学完了进制转换后,对课后的不同进制的加减法很是头疼,爱动脑筋的小金突发奇想,能不能用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=”则输出结果为___________。

28.某市普通高中选课数据如图1所示,学生从地理、化学、生物等科目中选择三门作为高考选考科目,“1”表示已选择的选考科目。使用 Python编程分析每所学校各科目选考的总人数、全市各科选考总人数及其占比,经过程序处理后,保存结果如图2

图1

图2

实现上述功能的 Python程序如下: import pandas as pd import itertools

#读数据到pandas的 DataFrame结构中

df=________ (”xk73.csv”,sep=‘.’,header=‘infer’,encoding=‘utf-8’) km=[‘物理’ ,‘化学’ ,‘生物’ ,‘政治’ ,‘历史’ ,‘地理’ ,‘技术’ ]

#按学校分组计数

sc=df.groupby(‘___________ ’ ,as_index=False).count() #对分组计数结果进行合计,合计结果转换为 DF结构并转置为行 df_sum=pd.DataFrame(data=sc.sum()).T df_sum[‘学校代码’]=‘合计’ #增加"合计"行 result=sc.append(df_sum) #百分比计算 df_percent=df_sum

df_percent[‘学校代码’]=‘比例’ for k in km:

per=df_percent.at[0,k]/zrs df_percent[k]=per #增加"百分比"行

result=result.append(df_percent) #删除"姓名"列 result=______________

#修改"学生编号"为"总人数"

result=result.rename(columns={‘学生编号’:‘总人数’})

#保存结果,创建 Excel文件.生成的 Excel文件 result.to_excel("学校人数统计.xlsx") (1)请在划线处填入合适的代码:

(2)加框处语句的作用是__________________

29.小强想要快速了解“十四五规划”内容的关键词,他先把“十四五规划”内容存储在ssw.txt文档中,如图a所示,统计文档中出现次数最多的前十个关键词,结果如图b所示。文本数据处理的算法设计如图c所示,用Python语言编写的程序段如图d所示。 请根据流程图的每个步骤,填写程序段编号,如A:⑦B:①D:③。现填写C、E、F、G对应的程序段编号.C:__________E:__________F:__________G:__________ 图a

图b

图c

图d

30.编写程序,找到并输出100以内的偶数个数。

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

一、程序填空 1.s=0

n=eval(input(\" 请输入一个数:\")) for i in range(0,n): f=1

for j in range(1,i): f=f*j s+=f

print(s%1000000) 【详解】

本题主要考查Python程序设计。可以通过嵌套for循环实现题干要求,外层循环进行求和,内层循环实现阶乘,具体代码如下: s=0

n=eval(input(\" 请输入一个数:\")) for i in range(0,n): f=1

for j in range(1,i): f=f*j s+=f

print(s%1000000)

2.字符串类型 你及格了喔 表现不错 程序结束 不及格 学习方法可能不对 程序结束 60 80 错 【详解】

本题主要考查Python编程。① input() 函数接受一个标准输入数据,返回为 string 类型,因此此处为字符串类型;②输入期末成绩为85时,满足大于等于60及大于等于80条件,因此此处输出为“你及格了喔 表现不错 程序结束”;③输入期末成绩为55时,满足小于60及大于等于30,因此此处输出为“不及格 学习方法可能不对 程序结束”;评价是“还可以再提升”项,属于大于等于60且小于80范围,因此④为60,⑤为80;elif后需添加判断条件,因此⑥为错。 【点睛】

3.计算每一项的阶乘 记录阶乘相加后的和 t记录的是每一项阶乘的结果,t*=n即t=t*n,t初值为1,能计算出每项的阶乘结果,若为0,则每项的阶乘结果都是0,不符合题意。 t=t*n s=s+t 【详解】

本题考查的是python语言编程。本题考查的是1-20阶乘的求和。本题的重点是要先计算出对应的每一项阶乘的结果t,然后20项阶乘的结果记录在s中。在此过程中既要考虑到

累乘求阶乘结果,又要考虑到累加求所有阶乘的和。初值n=0,在1-21的循环过程中,记录每一项的阶乘,s=0记录阶乘累加的和,t=1记录每一项阶乘的结果。每求一次阶乘就要进行一次求和,故语句t*=n,s+=t均在“for n in range(1,21):”的循环体内。 4. s=s+k k=k+5 print(s) 【详解】

本题主要考查Python程序的执行与调试。s=0,k=1,计算S=1+6+11+…+101,循环条件是k<=101,故循环体应为s=s+k,k=k+5,循环结束后,输出计算结果,故print(s)。 5.banana apple mango a= 3 【详解】

本题主要考查Python中For循环结构。 for循环可以遍历任何序列的项目,如一个列表或者一个字符串;len() 方法返回列表元素个数。因此本题输出为各列表内容及列表元素个数。 【点睛】 6.0 【详解】

本题主要考查Python中While循环结构。Python 编程中 while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。题中循环体内含If选择结构,即当i%3为0时,执行sum变量累加i,输出i,i自增加1操作,因此本题输出0后,循环无限执行下去。 【点睛】

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

8.layer = int(input(\"请输入需要打印的层数:\")) for x in range(1,layer+1): for y in range (1,x+1): print(\"*\

print(\"\")

【详解】

本题主要考查Python循环结构。Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。range可以生成一个整数列表,列表范围根据接收的layer来确定。外层循环用于确定输出行数,内层循环用于控制每行符号个数。 【点睛】 9.参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:

10.A A s-max-min 【详解】

本题主要考查Python程序的执行与调试。①在引用tkinter模块进行界面设计的过程中,窗体中录入评委打分的对象是由Entry控件生成的(Entry 是Tkinter 用来接收字符串等输入的控件,该控件允许用户输入一行文字),故选A选项。②题目中算法描述采用的是伪代码,故选A选项。③从总分中s中去掉最高分max和最低分min,求出其他4位评委的平均分aver作为选手的最终得分,故此处填s-max-min。 11.解析法或解析 A 【详解】

本题主要考查Python程序的执行与调试。①由算法分析可知,本题采用的算法是解析法或解析。②3公里内(含3公里),收费8元;超过3公里但未超过6公里部分,按1.5元/公里收费;超过6公里部分,按2.25元/公里收费,故此处填312.

【详解】

本题主要考查Python程序的执行与调试。运行结果如下:

13.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天。

14.y y show( ) 【详解】

本题主要考查Python程序绘制图像。 ①绘制y=x2-2x+ 1的图像,故此处填y。 ②根据横纵坐标x和y绘制图,故此处填y。 ③此处调用显示函数show( ),故填show()。 15.for i in range(100,1000): a=i//100 b= (i//10)%10 c=i%10

if i==a*a*a+b*b*b+c*c*c: print(i) 【详解】

本题主要考查程序设计。可通过Python程序设计实现题干要求,通过for循环找出水仙花数,依次取出三位数的每一位数,其中百位a= i//100,十位b= (i//10)%10,个位c=i%10,然后判断是否是水仙花数,具体代码如下: for i in range(100,1000): a=i//100 b= (i//10)%10 c=i%10

if i==a*a*a+b*b*b+c*c*c: print(i)

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.c=0

print(\"能同时被3或5整除的数是:\ for i in range(1,101): if i%3==0 and i%5==0: c+=1 print(i,end=\" \") print(\"\")

print(\"能同时被3或5整除的个数是:\"+str(c)) 【详解】

本题主要考查Python程序设计。设计100以内的数中能同时被3或5整除的个数,使用for循环变量i的范围是从1~99,用变量c统计能同时被3或5整除的个数,如果满足if判断条件,则变量c递增,循环完输出c的值,具体代码及运行结果如下:

18.A C 【详解】

本题主要考查Python程序设计。①此处将n取余2,用append函数将值追加到列表result中,故此处填n%2,选A选项。②当n大于0时,n整除2继续循环,循环结束使用reverse函数,将result列表中的元素逆转,故此处填n//2,选C选项。 19.将year转换为整型数据,并赋值给year And year%100 != 0 or year 【详解】

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

本题主要考查Python程序执行与调试。①delta大于0,方程有两个不同的解,delta等于0,方程有两个相同的解,delta小于0,方程无解,故第一空填0。②delta=0,则方程有两个相同的根,x=-b/(2*a),故第二空填-b/(2*a)。 21.自然语言 确保m>=n r!=0 【详解】

本题主要考查算法及Python程序实现。①描述一是自然语言描述法;描述二是流程图描述法;描述三是计算机程序语言描述法。②在描述三中代码4到6行,当m=n。③由题干可知,循环条件是余数r不等于0,故代码第8行划线处为r!=0。

22.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。算法描述中,用到了三种基本控制结构,分别是⑪顺序结构⑫选择结构⑬循环结构。如图示中的流程图使用的控制结构是⑭顺序结构⑮选择结构。⑯一个算法必须有零个或多个数据输入。⑰有一个或多个数据输出。⑱略

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

24.①a(i)=Asc(tmp)-或a(i)=Asc(tmp)-Asc(\"A\")+1 ②i–m+1To i–m+k ③t=(c(i)–1) Mod 26+1 【详解】

本题考查乘法运算规则的理解以及转置矩阵中行列数据的读取。(1)根据算法描述,图中(1)处的值为15×5+14×1+0×2+0×9=。(2)程序先随机生成数组b,其下标为1到k×k,并以行列的形式显示在列表框list2中(即为转置矩阵),然后读取大写字符串s中的每个字符,并将每个字符转换成相应字母表中的位置存储在数组a中。代码①处为字符转成相应的字母表中位置值,下方代码将a(i)输出在列表框listl中,故此处应获取a(i)的值。根据题干描述“字符A~Z对应数值1~26”,此处为将tmp获取的字符通过Asc函数进行转换,语句为“a(i)=Asc(tmp)-”,还可以是“a(i)=Asc(tmp)-Asc(″A″)+1”。代码②处为循环变量j的取值范围,根据乘法规则,变量j的范围是每一段中的1到k之间的值,需要获取每一段的起始位置下标,结合上文得到的m值,可得循环变量的范围是“i-m+1 To i-m十k”。代码③处是将计算结果c(i)按原长度转换成相应大写字符,计算结果要求除以26取余,若直接写成c(i)Mod 26,则导致数值26的结果为0,因此需要先减1,Mod后再加1这样的处理技巧,因此答案为“(c(i)-1)Mod 26+1”。 25.C D B D C

【详解】

本题主要考查Python程序调试。①Python程序for循环格式是:for 变量 in range( ),故程序中①处应填写in,选C选项。②程序中x%4的作用是计算x除以4的余数,选D选项。③colors=[\"red\,依次循环从colors中取颜色,故执行此程序,绘制出圆形的总颜色数是4,故本题选B选项。④x的范围是从0到99,故执行此程序,绘制出圆形的总个数是100个,选D选项。⑤此程序属于程序设计结构中的循环结构,选C选项。

26.myRank.append(A[i]) j < len(B) k本题主要考查python编程。根据表格所示,列表B中第5个元素为309,因此①处为309;A[i] < B[j]时,将列表末尾添加A[i],因此②处为myRank.append(A[i]);当列表未结束时,列表末尾添加相应元素,因此③处为j < len(B);算法二中引入变量k,用以记录i与j的和,当k小于len(A)+len(B)-1说明两列表未结束,因此④处为k27.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。

28.pd.read_ csv 学校代码 result.drop (‘姓名’ ,axis=1) 将总人数存储到变量zrs中 【详解】

本题主要考查Python程序的执行与调试。①将csv文件读入并转化为数据框形式,故填pd.read_ csv。②groupby函数主要的作用是进行数据的分组,此处按学校分组计数,故填学校代码。③此处删除"姓名"列,可以使用drop()函数来删除,故填result.drop (‘姓名’ ,axis=1)。④zrs=len(df.index),该语句是统计df内有多少个元素,即将总人数存储到变量zrs中。 29.② ⑤ ⑥ ④ 【详解】

本题主要考查算法及Python程序实现。①jieba 模块是一个用于中文分词的模块,lcut 方法直接返回 list,流程图中分词后存入words中对应的代码是words=jieba.lcut(txt),故填②。②流程图中循环结构对应的是程序中的⑤。③对counts的值进行排序,可以使用sort方法实现,对应程序中的⑥。④使用循环结构将值一一输出,对应程序中的④。 30.c=0

for i in range(1,101):

if i%2==0: c=c+1 print(c) 【详解】

本题主要考查程序设计。题干要求可通过Python程序设计实现,通过for循环以及if判断条件可统计出100以内的偶数个数,具体代码如下: c=0

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

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

Copyright © 2019- 7swz.com 版权所有 赣ICP备2024042798号-8

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

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