admin 管理员组

文章数量: 1087139


2024年1月25日发(作者:gradle实战)

(完整版)python真题程序填空阅读填空程序试题

一、程序填空

1.有如下程序段:

sum=0

for i in range(1,20,3) :

sum+=i

print(“sum=”,sum)

(1)循环变量i的初值为:_________,终值为:_________,步长为:__________。

(2)该程序执行后,输出的结果为:____________________。

2.程序编写

求1+22+32+……+1002的结果

_______________________________

_______________________________

_______________________________

_______________________________

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

3.完善程序。以下是计算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)

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

#

i=0

sum=0

while i<10:

if i%3==0:

sum+=i

print(i)

i=i+1

print('sum',sum)

_________

5.编写程序,找到并输出100以内的素数。

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

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

7.求50以内所有5的倍数的和。

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

9.输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

10.编写一个程序,判定用户输入的两个数 a和 b,如果用户输入的第一个数大,则两数互换,否则原样输出。

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

代码如下:

n=int(input("请输入一个十进制数:"))

result=[]

while n>0:

(

① )

n=

e()

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

12.(最大公约数)用辗转相除法求两个正整数的最大公约数。

代码如下:

def gcd (m,n):

r=

while r!=0:

m=n

n=

return

a=int(input(‘请输入a的值:’))

b=int(input(‘请输入b的值:’))

print(‘最大公约数是:' )

填空:

________ ________ ________ ________ ________

13.“百鸡百钱”问题是一个有名的数学问题,出自《张丘建算经》。其内容是:公鸡5文钱1只,母鸡3文钱1只,小鸡3只1文钱,用100文钱买100只鸡,其中公鸡、母鸡和小鸡都必须要有,问公鸡、母鸡和小鸡各多少只?

打开文件“考生文件夹644百鸡百钱.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("运行完毕,请按回车键退出...")

14.请在空格处填写正确的代码,使程序完善。

实现功能:用辗转相除法求解两个正整数的最大公约数。

x = int(input('请输入第一个正整数:'))

y = int(input('请输入第二个正整数:'))

m = max(x,y) #找出x,y中的最大值

n = min(x,y) #找出x,y中的最小值

r = m%n #求得最大值除以最小值后的余数

while r!=0: #如果余数不等0,则进行以下循环

m =________ #把最小值赋给m

n =_________ #把余数赋给n

r = m%n #求得最大值除以最小值后的余数

print('这两个数的最大公约数为:',______)

input("运行完毕,请按任意键退出....")

15.完善程序实现如下功能并保存:

有5个人坐在一起,第5个人说他比第4个人小3岁;第4个人说他比第3个人小3岁;第3个人说他比第2个人小3岁;第2个人又说他比第1个人小3岁;第1个人说他是38岁。编写程序,计算出第5个人的年龄并显示。

def age(n):

if n == 1: c = ________

else: c = age(n - 1) - 3

return ________

print("第5人的年龄:",age(________))

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

16.学校气象小组使用自动测温仪在校园测量了1月12日的气温,并利用Python绘制了这天的气温图,该图如下所示:

(1)在以上Python程序中,变量Y的数据类型是_________。

(2)在以上Python程序中,第8行横线处的代码是_________。

(3)通过观察,气温釆样间隔时间是_________个小时。

17.已知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)

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

18.求解a到b内(包含a和b)所有的质数,并对每个质数的每一位数字求和。请完善程序。程序如下:

import math

def IsPrime(i):

if i==1:

return False

for j in range(2,int((i))+1):

if____:

return False

return True

a=int(input("请输入a:"))

b=int(input("请输入b:"))

summ=0

for i in range(a,b+1):

if IsPrime(i):

________

while t>0:

summ=summ+t%10

_________

print("数字和为:",summ)

19.辗转相除法,又称欧几里德算法,用于计算两个正整数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行划线处为__________。

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

(一)收集、分析数据,运用数理思维建模

登录滴滴出行官网,得到了如下信息,即“滴滴快车(普通型)计价规则”:

滴滴快车(普通型)计价规则

时段

普通时段

00:00-06:30

06:30-09:00

21:00-23:00

23:00-00:00

注意:

1.起步价包含里程3.3公里,包含时长9分钟,里程费、时长费合计不足基础费时,直接按照基础费计费。

2.实时计价是基于订单服务内容(里程、时长、时段),按各种费用项定价标准计算订单价格的计价方式,实际费用由两部分里程费与时长费累加而得。

起步价

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元/分钟

小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)一个算法必须有______________或多个数据输入。有______________或多个数据输出。(选填:零个/一个)

(三)编写、调试、运行程序,验证算法并解决问题________

21.某种数据加密方法描述如下(加密前数据是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

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

代码如下:

import turtle

turtle. bgcolor("black")

colors=["red", "green", "blue", "yellow"]

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.跳转结构

23.模拟一个简单计算器,实现如下功能:输入两个整数和一个运算符(加、减、乘、除),进行算术运算,并输出运算结果。程序运行时,依次输入第一个数、运算符和第二个数,输出运算结果。当输入的运算符是加减乘除(+-*/)四种以外的符号时,则输出“运算符不正确”。当进行除法运算时,如果除数为“0”,提示输出“除数不能为0!”。Python程序实现如下,在划线处填入合适的代码。

a=int(input("请输入第一个数: "))

fh=input ("请输入运算符: ")

b=int(input("请输入第二个数: "))

flag=True

s= ____

if fh in s:

if fh=="+":

c=a+b

elif fh=="-":

c=a-b

elif fh=="*":

c=a*b

else:

if ____

print("除数不能为0! ")

flag=False

else:

c=a/b

if flag==True:

print("运算的结果为: "+____)

else:

print ("运算符不正确")

24.奇偶校验码是一种增加二进制传输系统可靠性的简单且广泛采用的方法,该方法通过增加一个校验位使得传输的二进制码中“1”的个数恒为奇数或偶数,因此该校验码也分为“奇校验”和“偶校验”。“奇校验”的原理:在发送端发送的每个字节二进制码后增加一个校验位(0或1),使得“1”的个数为奇数;接收端接收并统计每个字节及其校验位中“1”的个数,若为偶数,则意味着传输过程中存在差错。例如:

接收到的每个字节及校验码

100101001

011010101

101011010

1的个数

4

5

5

传输正误

错误

正确

正确

根据以上原理,小强编写了一个Python程序,对接收到的9位二进制编码进行“奇校验”,判断其传输的正误,若判断正确则将前一个字节的编码转成十六进制并输出。

请回答下列问题:

(1)若接收到的二进制码为“101011011”,传输过程__________(选填:是/否)存在差错。

(2)实现上述功能的Python程序如下,请在划线处填入合适的代码。

s=input("请输入9位二进制编码:")

code={10:"A",11:"B",12:"C",13:"D",14:"E",15:"F"}

k=0;p=0;ans=“”

for i in s:#统计9位二进制编码中“1”的个数

k=k+int(i)

if ____:

print("传输错误!")

else:

print("传输正确!")

for j in range(0,8,4):

p=int(s[j:j+4],2)

# int(x,[base]):将x(字符串或者数字)按照base进制转换成整数

if 0<=p<=9:

ans=ans+str(p)

else:

ans=___

print("字节编码用十六进制表示:",___

25.阅读程序。分析以下关于字符拼接与转换的Python程序并回答问题。

students=[ '小明','小红','小刚']

scores={ '小明':95,'小红':90,'小刚':90}

print(len(students))

print(len(scores))

(1)students的数据类型是______________。

(2)scores的数据类型是_____________。

(3)在scores中,每个字符与后面的数值共同构成了一个____________。

(4)len(students)的返回值是____________。

(5)print(len(scores))的输出结果是__________。

26.小强想要快速了解“十四五规划”内容的关键词,他先把“十四五规划”内容存储在文档中,如图a所示,统计文档中出现次数最多的前十个关键词,结果如图b所示。文本数据处理的算法设计如图c所示,用Python语言编写的程序段如图d所示。

请根据流程图的每个步骤,填写程序段编号,如A:⑦B:①D:③。现填写C、E、F、G对应的程序段编号.C:__________E:__________F:__________G:__________

图a

图b

图c

图d

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

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

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

3)不要超过5行代码。

程序运行举例:

28.蒙特卡洛方法不仅可以用来模拟投针实验,还可以用来模拟求解圆周率T。请根据所学知识,并上网搜索有关资料,找到利用蒙特卡洛方法求解圆周率Π的原理、方法和Python程序。

29.一家商场在降价促销,如果购买金额不高于200元,会给10%的折扣,如果购买金额高于200元,会给20%的折扣。编写一个Python程序,输入消费额(整数),显示折扣后的应付金额。

30.在一千多年前的《孙子算经》中,有这样一道算术题:“今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?”。即一个数除以3余2,除以5余3,除以7余2,求这个数。

i=①________

while (i%3!=2

②________ i%5!=3 or i%7!=2):

i=③________

print(i)

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

一、程序填空

1.初值为1

终值为:20

步长为:3

sum=70

【详解】

本题主要考查Python循环结构。由代码for i in range(1,20,3)

,可知循环变量i的初值为1,终值为20,步长为3。该程序执行后,输出的结果为sum=sum+i=0+1+4+7+10+13+16+19=70。

2.total=0 #变量可任选(符合规则) for i in range(1,101): total=total+i*i

#total=total+i**2 print(total)

【详解】

本题主要考查Python程序的编写。①变量total用来统计最终的计算结果,其初始值为0,故填total=0 #变量可任选(符合规则)。②求1+22+32+……+1002的结果,用for循环结构,变量i的范围是从1到100,故填for i in range(1,101):。③计算语句是total=total+i*i #total=total+i**2。④最后用print()函数输出计算结果total,故填print(total)。

3. 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)。

4.0

【详解】

本题主要考查Python中While循环结构。Python

编程中 while

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

【点睛】

5.参考答案1:

for i in range(2,101):

j=2

while j<=i:

if i%j==0:

break

j+=1

if j

continue

else:

print(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.

【详解】

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

7.

【详解】

本题主要考查Python程序设计。可以采用Python程序设计语言实现50以内所有5的倍数的和,可以结合while循环以及if条件分支结构实现,具体代码及实现如下:

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

9.s = input('input a string:')

letter = 0 #

统计字母

space = 0 #

统计空格

digit = 0 #

统计数字

other = 0 #

统计其他字符

for c in s:

if a():

letter += 1

elif e():

space += 1

elif t():

digit += 1

else:

other += 1

print("字母:",letter,"空格:", space,"数字:",digit,"其他字符:", other)

【详解】

本题主要考查程序设计。题干要求可通过Python程序实现,使用for循环、多条件分支结构。其中实现分别统计出其中英文字母、空格、数字和其它字符的个数可通过函数isalpha、isspace、isdigit来判断统计,具体代码如下:

s = input('input a string:')

letter = 0 #

统计字母

space = 0 #

统计空格

digit = 0 #

统计数字

other = 0 #

统计其他字符

for c in s:

if a():

letter += 1

elif e():

space += 1

elif t():

digit += 1

else:

other += 1

print("字母:",letter,"空格:", space,"数字:",digit,"其他字符:", other)

10.a=int(input("

请输入数 a:"))

b=int(input("

请输入数 b:"))

if a>b:

t=a

a=b

b=t

print("用户输入的数按小到大排序结果是: ", a, b)

else :

print("原样输出 ",a,b)

【详解】

本题主要考查Python程序设计。使用input函数接收两个数a和b,用if条件分支结构判断a和b的大小,如果a大于b,则交换,否则原样输出,具体代码如下:

a=int(input("

请输入数 a:"))

b=int(input("

请输入数 b:"))

if a>b:

t=a

a=b

b=t

print("用户输入的数按小到大排序结果是: ", a, b)

else :

print("原样输出 ",a,b)

11.A

C

【详解】

本题主要考查Python程序设计。①此处将n取余2,用append函数将值追加到列表result中,故此处填n%2,选A选项。②当n大于0时,n整除2继续循环,循环结束使用reverse函数,将result列表中的元素逆转,故此处填n//2,选C选项。

12.m%n r r=m%n n gcd(a,b)

【详解】

本题主要考查Python程序设计。①首先对m和n求余得到r,判断r是否为0,故此处填m%n。②如果r为0则结束,否则更新m的值为n,n的值为r。③此处用更新后的m和n继续求r,继续判断,故填r=m%n。④循环结束后当r=0时,n即为最大公约数,故填n。⑤输入a、b的值,使用函数gcd求a和b的最大公约数,故填gcd(a,b)。

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

14.n

r

n

【详解】

本题考查的是Python循环语句。辗转相除法:用较大数除以较小数,再用出现的余数(第一余数)去除除数,再用出现的余数(第二余数)去除第一余数,如此反复,直到最后余数是0为止。如果是求两个数的最大公约数,那么最后的除数就是这两个数的最大公约数。

由n = min(x,y)

可知最小值为n,故①处为n,由r = m%n

可知余数为r,故②处为r,最后的除数是n(即最大公约数为n),故③处为n。

15.c 5

【详解】

本题主要考查Python程序执行与调试。①第一个人38岁,n标记第几个人,变量c保存年龄,当n=1时,c=38,故第一空填38。②后面的人都比前一个人小3岁,故当n不等于1时,调用递归函数age, c = age(n - 1) - 3,最后返回第n个人的年龄c,第二空填c。③此处是返回第5个人的年龄,即age(5),填5。

16.list (X,Y) 2

【详解】

本题主要考查Python程序调试与执行。①由代码Y=[6,4,4,3,3,6,9,12,12,11,9,7],可知变量Y的数据类型是list(列表类型)。②scatter是绘制散点图函数,图中还需要使用绘图函数plot,故第8行横线处的代码是(X,Y)。③通过观察,气温釆样间隔时间是2个小时。

17.①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。

18.i%j==0 t=i t=t//10

【详解】

本题主要考查Python程序执行与调试。①此处是处理从2开始到i开方加1,若能整除i

则表明i不是素数,否则直到循环结束,表明i是素数,故此处填i%j==0。②若i是素数,则将变量i赋给变量t,并通过while循环将t的每一位取出来并加到summ中,故此处填t=i。③同理此处取出个位数后,更新t的值继续循环,故此处填t=t//10。

19.自然语言

确保m>=n r!=0

【详解】

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

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

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

22.C D B D C

【详解】

本题主要考查Python程序调试。①Python程序for循环格式是:for

变量 in range( ),故程序中①处应填写in,选C选项。②程序中x%4的作用是计算x除以4的余数,选D选项。

③colors=["red", "green", "blue", "yellow"],依次循环从colors中取颜色,故执行此程序,绘制出圆形的总颜色数是4,故本题选B选项。④x的范围是从0到99,故执行此程序,绘制出圆形的总个数是100个,选D选项。⑤此程序属于程序设计结构中的循环结构,选C选项。

23."+-*/" b==0 str(c)

【详解】

本题主要考查Python程序执行与调试。①变量fh用来接收运算符,由代码“if fh in s”可知,变量s保存加减乘除(+-*/)四种运算符,故此处填"+-*/"。②变量b保存第二个数,当进行除法运算时,如果除数为“0”,提示输出“除数不能为0!”,此处是处理b=0的情况,故填b==0。③变量c保存运算结果,此处输出 c的结果,故填str(c)。

24.是 k%2==0或(k+1)%2==1或(k-1)%2==1 ans+code[p] ans

【详解】

本题主要考查Python程序的执行与调试。①若接收到的二进制码为“101011011”,1的个数有6个,则传输过程存在差错。②变量k统计1的个数,若k是偶数则表明传输错误,否则传输正确,故此处填k%2==0或(k+1)%2==1或(k-1)%2==1。③如果p是1~9之间的数字,则直接将p拼接到ans中,否则从字典code中取对应的字母,故此处填ans+code[p]。④变量ans保存转换后的十六进制,故此处填ans。

25.列表

字典

键值对 3 3

【详解】

本题考查的是python语言的数据类型,列表和字典。(1)列表是写在方括号[]之间,用逗号分隔开的元素列表,students=[ '小明','小红','小刚']就是列表。(2)字典用{}标识,它是一个无序的“键(key):值(value)”对集合,字典当中的元素是通过键来存取的,而不是通过偏移存取。scores={ '小明':95,'小红':90,'小刚':90}就是一个字典类型。(3)其中“'小明':95”就构成了一个键值对。(4)len()

方法返回列表元素个数。students=[ '小明','小红','小刚'],里面有三个元素,故返回值是3。(5)print(len(scores)),其中scores={ '小明':95,'小红':90,'小刚':90}该字典有3个键值对,故输出结果是3。

26.②

【详解】

本题主要考查算法及Python程序实现。①jieba

模块是一个用于中文分词的模块,lcut

方法直接返回 list,流程图中分词后存入words中对应的代码是words=(txt),故填②。②流程图中循环结构对应的是程序中的⑤。③对counts的值进行排序,可以使用sort方法实现,对应程序中的⑥。④使用循环结构将值一一输出,对应程序中的④。

27.n=input("请输入一个正整数: ")

n=int(n)

For i in range(15,n+1,15)

print(i)

【详解】

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

28.原理:通常蒙特•卡罗方法通过构造符合一定规则的随机数来解决数学上的各种问题。对于那些由于计算过于复杂而难以得到解析解或者根本没有解析解的问题,蒙特•卡罗方法是一种有效的求出数值解的方法。一般蒙特•卡罗方法在数学中最常见的应用就是蒙特•卡罗积分。方法:蒙特卡罗方法的解题过程可以归结为三个主要步骤:构造或描述概率过程;实现从已知概率分布抽样;建立各种估计量。利用蒙特卡洛方法实现求解圆周率

#!/usr/bin/Python

#-*- coding:utf-8 -*-

import random

import math

def monteCarlo(N):

i = 0

count = 0

while i <= N:

x = ()

y = ()

if pow(x, 2) + pow(y, 2) < 1:

count += 1

i += 1

pi = 4 * count / N

print(pi)

monteCarlo(1000000)

【详解】

本题考查的知识点是Python程序。原理:通常蒙特•卡罗方法通过构造符合一定规则的随机数来解决数学上的各种问题。对于那些由于计算过于复杂而难以得到解析解或者根本没有解析解的问题,蒙特•卡罗方法是一种有效的求出数值解的方法。一般蒙特•卡罗方法在数学中最常见的应用就是蒙特•卡罗积分。方法:蒙特卡罗方法的解题过程可以归结为三个主要步骤:构造或描述概率过程;实现从已知概率分布抽样;建立各种估计量。利用蒙特卡洛方法实现求解圆周率#!/usr/bin/Python#-*- coding:utf-8 -*-import randomimport mathdef

monteCarlo(N): i = 0 count = 0 while i <= N: x = () y = () if pow(x,

2) + pow(y, 2) < 1: count += 1 i += 1 pi = 4 * count / N print(pi)monteCarlo(1000000)

29.price=int(input("请输入消费额(整数):"))

if price < 200:

price=price-price*0.1

else:

price=price-price*0.2

print("折扣后的应付金额是:",price)

【详解】

本题主要考查Python程序的执行与调试。用键盘通过输入函数input输入消费额,并用int函数将其转换为整数类型,通过if条件分支结构,判断如果购买金额不高于200元,会给10%的折扣,如果购买金额高于200元,会给20%的折扣,最后用print输出函数输出折扣

后的应付金额。

30.or i+1

【详解】

本题主要考查Python程序执行与调试。①分析程序可知,程序采用枚举的算法找出该数,当不满足条件时,i递增继续判断,故i的初始值是0,第一空填0。②一个数除以3余2,除以5余3,除以7余2,此处是取不满足情况时,i递增,and取反变为or,故第二空填or。③同理第三空填i+1。


本文标签: 程序 循环 结构 数据 输出