您的当前位置:首页正文

试卷python入门实例word程序填空阅读填空程序试题

2023-01-27 来源:星星旅游
试卷python入门实例word程序填空阅读填空程序试题

一、程序填空

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

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

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

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

6.编写程序,找到并输出100以内的素数。 7.分析完善程序

[背景知识]为了保障空气质量,减少雾霾,某市决定当空气污染严重时,实行汽车单双号限行,违反规定的车辆将予以处罚。

如何让高清摄像头自动判断车牌的单双号,交警犯了愁,他需要编程高手的你帮忙,完善下面的程序。( 提示:①所有车牌号中都含有数字,并且车牌号的长度都是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 8.以下是计算s = 1+6+11+...+ 101的程序代码,请补全程序。 s=0

for i in range(1,102, ): s= print( s)

请补充完成上述程序①_________ ②_________

9.(项目情境)在中国古代,出自数学家张丘建的《算经》中这样一个值得研究的问题:今有鸡翁一,直钱五;鸡母一,直钱三;鸡雏三,直钱一。凡百钱,买鸡百只。问鸡翁、母、雏各几何?这个问题就是著名的“百钱买百鸡问题”。即:现有100文钱,公鸡5文钱一只,母鸡3文钱一只,小鸡一文钱3只,要求:公鸡,母鸡,小鸡都要有,把100文钱买100只鸡,买的鸡是整数。问公鸡、母鸡和小鸡各几何?

(问题求解)设用变量g、m、x三个变量分别存放公鸡、母鸡和小鸡的数量,请阅读如下程序,在空白处填写适当的表达式或语句,使程序完整。 for g in range(1,20): for m in _______: for x in range(3,98,3):

if _________ and __________ ==100: print(\"公鸡:\母鸡:\小鸡:\

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

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

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

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

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

14.冠军在A、B、C、D四位同学中。A说:“不是我”,B说:“是C”,C说:“是D”, D说:“C说的不对”,已知四人中有一人说了假话。判断出到底谁是冠军。 请在空格处填写正确的代码,使程序完善。 champion=['A','B','C','D'] #设置选手列表 for i in__________: #循环读取选手编号

cond=(i!='A') +(i=='C') + (i=='D')+(i!='D') #查找符合条件的选手 if cond== _____: #说真话是否是3人 print(\"冠军是:\输出冠军 input(\"运行完毕,请按回车键退出...\")

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

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

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

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

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

17.程序设计:唐三藏又被妖怪抓走了,这次孙悟空还是没打得过妖怪,于是来求观音菩萨。观音菩萨告诉孙悟空,在天庭里身高正好为1000米的那位神仙可以降伏此妖。于是悟空立刻来到天上,在玉皇大帝的神仙册上看到了按身高从矮到高排列有10000个神仙。由

于时间紧迫,悟空想用最短的时间找到这位神仙,这样才可以尽快解救唐僧。 代码如下:

List=list(map(int,input(“请按身高递增顺序依次输入10000个神仙的身高”).split())) left=1 right=10000 while ① mid= ② if List[mid]==1000: ③

elif List[mid]<1000: ④ else: ⑤

print(“能帮孙悟空的神仙在第{0}位上”.format(mid+l)) (1)程序代码中①处正确的代码是(_______)。

A.left<right B.left<=right C.left!=right D.left>right (2)程序代码中②处正确的代码是(_______)。 A.(left+right)/2 B.(left+right)\\2 C.(left+right)//2 D.(left+right)\\\\2

(3)程序代码中③处正确的代码是(_______)。 A.pass B.print(mid)z C.break D.continue (4)程序代码中④处正确的代码是(_______)。-

A.left=mid B.right=mid C.left=mid+1 D.right=mid-1 (5)程序代码中⑤处正确的代码是(_______)。

A.left=mid B.right=mid C.left=mid+1 D.right=mid-1 18.(最大公约数)用辗转相除法求两个正整数的最大公约数。 代码如下: def gcd (m,n): r= while r!=0: m=n n= return

a=int(input(‘请输入a的值:’)) b=int(input(‘请输入b的值:’)) print(‘最大公约数是:' ) 填空:

________ ________ ________ ________ ________

19.“百鸡百钱”问题是一个有名的数学问题,出自《张丘建算经》。其内容是:公鸡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(\"运行完毕,请按回车键退出...\") 20.完善程序实现以下功能并保存。

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

2

#请不要更改源程序的结构,删除原题里的①、②。填写正确的代码,使程序完善 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.求解a到b内(包含a和b)所有的质数,并对每个质数的每一位数字求和。请完善程序。程序如下: import math def IsPrime(i): if i==1: return False

for j in range(2,int(math.sqrt(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(\"数字和为:\

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

23.学校开展“奇妙的数字”研究性学习活动。张轩小组4人决定把课题定为《探秘水仙花数》。

(1)张轩使用百度搜索引擎搜索到“水仙花数”是这样定义的: “水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153 = 13+53+33,那么这个数就是一个“水仙花数”。百度属于____搜索引擎(全文,分类)

(2)为了求解100--999这些数字中,哪些数字是“水仙花数”?张轩小组进行了算法设计,并使用python编写了一段程序来求解所有的“水仙花数”,程序和运行结果下图:

k是可以重新赋值的,k是变量还是常量?____程序中①处有空缺,请补充完整①处的代码。____程序中逐一验证了100到999之间所有的三位数是否符合“水仙花数”的定义条件,这种算法叫做______(解析法,枚举法,递归法,二分法)。

(3)在研究成果展示环节, 张轩小组可以使用什么软件制作《探秘水仙花数》的研究成果报告? (_____)

24.现今信息化时代,信息的传输十分迅速,足不出户便知天下事。许多社交平台都有设置本平台的热点排行榜,方便用户了解正在发生的热门事件。但社交平台数量众多,平台用户种类和数量也大不相同,导致不同平台热点的实际热度大小也不同。小钟为了确保自

己知道的热点是真正的热点,于是打算用功能强大的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:

while ((7)______): myRank.append(B[j]) j += 1 print(myRank)

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

算法二:

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)

25.若两个素数之差为 2,则该对素数称为双胞胎数,如 3,5 就是一对双胞胎数。编写 python 程序,实现如下功能:输入 n 的值,统计显示 n 以内的所有双胞胎数。程序运行界面如图所示:

实现上述功能的程序如下,请在划线处填入合适的代码。 import math def isprime(x): ______

for i in range(2,int(math.sqrt(x))+1): if x % i = = 0 : f=False return f

n=int(input(\"请输入一个正整数 n:\")) c=0 k=3 while k < = n-2:

if isprime( k ) and______________ :

c + = 1

print(\"第\"+ str( c ) +\"对双胞胎数:\和',k+2) _______

print(\"共有\"+str(c)+\"对双胞胎数\")

划线处①处应该填入的语句为: ; 划线处②处应该填入的语句为: ; 划线处③处应该填入的语句为: 。

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.水仙花数是指一个三位数,它的每个位上的数字的3次方之和就等于它本身,例如:1**3+5**3+3**3=153。这类三位数也被叫做自恋数、自幂数或者阿姆斯特朗数。 [问题求解]设这个数存放于变量x中,变量g、s、b分别存放个位、十位、百位上的数。需得分离数字得到每位上的数,即将变量g、s、b表示为x的形式。请阅读如下python程序,在空白处填写适当的表达式或语句,使程序完整。 print (\"三位数之内的水仙花是:\") for x in___(100,1000): b=x//100 s=(x//10)___ g=___

If x=(b**3 +s**3+g**3): print(___)

28.若两个素数之差为2,则该对素数称为双胞胎数,如3,5就是一对双胞胎数。编写python程序,实现如下功能:输入n的值,统计显示n以内的所有双胞胎数。程序运行界面如图所示:

实现上述功能的程序如下,请在划线处填入合适的代码。 def isprime(x): for i in range(2,x): if①__________: return False return True

n=int(input(“请输入一个正整数n:”)) c=0 k=3

while k<=n-2:

if isprime(k) and②___________:

print(k,k+2) ③___________ k=k+1

print(“共有”+str(c)+“对双胞胎数”)

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

图b

图c

图d

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

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

一、程序填空

1.A C 【详解】

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

本题主要考查Python程序绘制图像。 ①绘制y=x2-2x+ 1的图像,故此处填y。 ②根据横纵坐标x和y绘制图,故此处填y。 ③此处调用显示函数show( ),故填show()。 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.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.layer = int(input(\"请输入需要打印的层数:\")) for x in range(1,layer+1): for y in range (1,x+1): print(\"*\ print(\"\")

【详解】

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

7.n=n-1或 n-=1 B 【详解】

本题主要考查算法及Python程序设计。①此处是判断x是否为数字,若不是数字,则n递减取前一位字符继续进行判断,故此处填n=n-1或 n-=1。②当while循环结束,表明此时x为数字,若int(x)%2 ==0,即x为偶数,输出“双号”,否则输出单号,故选B选项。 8.s+i 【详解】

本题主要考查Python循环结构。题目要求计算1、6、11.. 101等差数列之和,其中公差为5,因此①为5;s变量用于记录等差数列之和,需进行累加计算,因此②为s+i。 【点睛】

9.range(1,33) g+m+x==100 5*g+3*m+x/3 【详解】

本题考查的是算法中的经典问题。百鸡百钱问题是典型的枚举算法解决,枚举算法的关键就是找到问题解决的条件和枚举范围。

10.

【详解】

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

11.

【详解】

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

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

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

14.champion 3 i 【详解】

本题主要考查Python程序的执行。①champion是选手编号列表,此处是循环读取选手编号,使用for i in champion,故此处填champion。②四人中有一人说了假话,即3个人说真话,即当cond=3时,则表示找到了谁是冠军,故此处填3。③当cond是3时,i即为

冠军,故此处填i。 15.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)

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

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

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

本题主要考查二分查找算法及Python程序实现。①二分查找的循环条件是left<=right,故选B选项。②此处是取中间值,需要整除2,故填(left+right)//2 ,故选C选项。③如果mid对应的列表值是1000,表示已找到,则用break跳出循环,选C选项。④如果mid对应的列表值小于1000,则需要更新left的值为mid+1继续循环,选C选项。⑤否则更新right的值为mid-1,选D选项。 18.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)。

19.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。 20.-b/(2*a) 【详解】

本题主要考查Python程序执行与调试。①delta大于0,方程有两个不同的解,delta等于0,方程有两个相同的解,delta小于0,方程无解,故第一空填0。②delta=0,则方程有两个相同的根,x=-b/(2*a),故第二空填-b/(2*a)。 21.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。 22.①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))”。

23.全文 变量 k+1 枚举法 Word/WPS/PowerPoint等 【详解】

本题主要考查Python程序的执行与调试。①百度属于全文搜索引擎,也是关键词搜索。②变量可以反复赋值,故k是变量。③循环体执行完,k递增,继续找水仙花数,故此处填k+1。④逐一验证了100到999之间所有的三位数是否符合,这种算法叫做枚举法。⑤在研究成果展示环节, 张轩小组可以使用Word/WPS/PowerPoint等软件制作《探秘水仙花数》的研究成果报告。

24.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说明两列表未结束,因此④处为k25.f = True isprime(k+2) k=k+1 或 k+=1 或 k=k+2 或 k+=2 【详解】

本题主要考查Python程序的执行与调试。①isprime(x)用来判断x是不是素数,通过用x整除2~int(math.sqrt(x)),如果余数为0则表明该数不是素数,赋值f为假退出循环,f的初值为True,故第一空填f = True。②若两个素数之差为 2,则该对素数称为双胞胎数,此处判断相差为2的两个数是不是素数,故第二空填isprime(k+2)。③素数都是奇数,此处需要更新k的值继续循环判断,可以将k的值递增1或递增2,故填k=k+1 或 k+=1 或 k=k+2 或 k+=2。

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 %10 x% 10或x-b*100-s*10或其它同等答案 x 【详解】

本题考查的是Python程序设计。水仙花数是指一个三位数,故使用range函数遍历100~999;s存放的是十位数,故可以选对x取整后再除以10求余,故第二空应填%10(求余符号%);g是存放个位,直接除以10求余,或减去前面整百和整十的数,故第三空为:x% 10或x-b*100-s*10或其它同等答案;如果找到满足条件的数,则输出,故第四空为:x。

28.x%i==0或x//i==x/i或其他等价表达式 isprime(k+2)或isprime(k+2)==True c=c+1或c+=1 【详解】

本题主要考查Python程序的执行与调试。①isprime(x)函数判断x是不是素数,此处通过for循环判断(用x依次除i,看能不能整除,i的范围时从2~x),故填x%i==0或x//i==x/i。②此处判断相差2的两个数是不是素数,若是,则输出这两个数,故此处填isprime(k+2)或isprime(k+2)==True。③c用来统计双胞胎数的对数,若满足是双胞胎数的条件,故此处填c=c+1或c+=1。 29.② ⑤ ⑥ ④

【详解】

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

print(\"用户输入的数按小到大排序结果是: \ else :

print(\"原样输出 \ 【详解】

本题主要考查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(\"用户输入的数按小到大排序结果是: \ else :

print(\"原样输出 \

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