一、程序填空
1.完善程序实现如下功能并保存:
有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(\"运行完毕,请按回车键退出...\") 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.阅读程序。分析条件语句的代码并回答问题。
(1)如果不能使用int()函数,那么变量s的类型将会变成 ______ 。 (2)如果你的期末成绩是85,你得到的评价将会是____________ 。 (3)如果你的期末成绩是55,你得到的评价将会是____________ 。
(4)如果你得到的评价是“还可以再提升”,你的期末成绩应该在_____和______之间。 (5)“程序中出现的所有else都可以替换为elif,程序效果一样”,这种说法是____(填“对”或“错”)的。
4.编写程序,用*打印一个如下所示的等腰直角三角形,将测试结果截图。 * * * * * * * * * *
5.编写程序,找到并输出100以内的素数。 6.程序分析题
学校举行校园歌手大赛,评委由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] A.Entry B.Label C.Frame D.Button (2)题目中算法描述采用的是__________A、自然语言B、伪代码 C、流程图 D、.N-S图 (3)下列程序代码片段对应于算法描述中的第2步至第4步。请填写片段中空白处的表达式填写完整________ 7.请编写一个密码登陆系统,接收用户从键盘输入的密码和你自己的密码进行比对,如果正确就显示“恭喜你进入系统”如果不正确让用户重新输入,有三次机会。 8.输入三个同学的成绩,然后大到小排列。 9.哥德巴赫在1742年提出了以下猜想:任何一个大于2的偶数都可以写成两个质数之和,请完善代码帮助哥德巴赫验证他的猜想。 import math def ss(n): Flag=True i=2 while i <= int(math.sqrt(n))and Flag: if _____________ Flag = False _____________ return Flag n=int(input(“输入一个大于2的偶数”)) for i in rang(2,n//2+1): if____________ print(str(n)+\"=\"+str(i)+\"+\"+str(n-i)) 如果输入“8”则结果显示_____ 10.编写程序,实现从键盘输入数据,数据前三位的ASCII值加2,从第四位开始ASCII值加3。 11.求100以内素数。 12.求1~100内奇数之和(使用range函数) 13.操作说明:打开文件“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) 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.完善程序实现以下功能并保存。 输入一元二次方程的系数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(\"运行完毕,请按回车键退出...\") 16.编写程序。如图所示的算法,请用Python程序写出实现该算法相应的代码。 17.完善代码并保存。 实现功能:从键盘输入10个学生的测试成绩,输出最高分和最低分。 cj=[] for i in range(0,________): x=float(input(\"请输入一个数\")) cj.append(________) print(max(cj), min(________)) input(\"运行完毕,请按回车键退出...\") 18.已知圆柱体的底面半径为r,高为h,(均为正整数),小张编写了一个程序计算圆柱体的地面周长和面积,圆柱体侧面积以及圆柱体体积,其中圆周率定义为:3.14,请根据下列代码回答问题: r=int(input(“请输入半径r:”)) h=int(input(“请输入高h:”)) _________________________ c=2*pi*r s=pi*r**2 S=c*h V=s*h print(c,s,S,V) (1)解决问题的程序用到的控制结构有:__________________(填:顺序结构、分支结构、循环结构) (2)请将程序补充完整。 (3)请找出程序中的错误代码,并改正。 ____________________________________________ 19.有如下程序段: sum=0 for i in range(1,20,3) : sum+=i print(“sum=”,sum) (1)循环变量i的初值为:_________,终值为:_________,步长为:__________。 (2)该程序执行后,输出的结果为:____________________。 20.小敏有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实现____________结构。 21.已知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) 执行上述程序段后,输出的内容是______ 22.小强开展网上直播售货,为此购买了以下直播硬件设备:①手机②耳机③自拍杆④数码照相机⑤背景画⑥无线路由器 请回答下列问题: (1)在购买的直播硬件设备中,属于模数转换的设备是__________(多选,填序号) (2)小强选择借助某著名直播平台售货,根据直播平台要求,直播画面是1080*1920像素、24位真彩色、帧频为25fps,视频压缩比为100:1,在不考虑视频传输优化的情况下,问小强家目前10Mbps的宽带__________(选填:能/不能)满足直播要求。请列式证明__________。 (3)小强将某一天的售货情况从平台导出,保存为文件shqk.xlsx.数据已按“流水号”升序排序,如图a所示。流水号为2019030602的售货记录中,已成交的商品类别数是__________(填写数字),该流水号的总利润是__________元(填写数字,保留1位小数) 图a (4)为了快速了解各类别商品的利润,小强用python编程处理。处理的结果界面如图b所示。部分代码如下,请在①②划线处填写合适的代码。 图b import pandas as pd import numpy as np import matplotlib. pyplot as plt detail=pD.read_excel (___) print(detail) for i in range(len(detail[:])): if detail[‘成交与否’][i]==1: detail[‘lirun’]=___ dg=detai1[[‘类别’, ‘lirun’]]. groupby(by=‘类别’) print(“总利润”,detail[‘lirun’].sum()) ’数据可视化代码略 23.密码强度检测。编写python程序,实现如下功能:输入要检测的密码,输出密码强度结果。密码字符分为数字字符、字母和其他符号三类。密码强度的检测方法为:若密码位数少于8位,则不进行强度检测,给出提示“密码位数不能少于8位,请重新输入!”。若密码位数在8位及以上,则进行强度检测:若密码字符属于同一类字符,则密码强度为“弱”;若密码字符属于不同的二类字符,则密码强度为“中等”;若密码字符属于不同的三类字符,则密码强度为“强”。 (1)若输入“12abcd5!”,则输出结果为_________(选填,选字母:A.密码位数不能少于8位,请重新输入! / B.弱 / C.中等 / D.强) (2)实现上述功能的程序如下,请在划线处填入合适的代码。 password=input(“请输入要检测的密码:”) ①_______________ if n<8: print(“密码位数不能少于8位,请重新输入!”) else: n1=0 n2=0 n3=0 for i in range(0,n,1): ②_______ if “0”<=ch<=“9”: n1=1 elif “a”<=ch<=“z” or “A”<=ch<=“Z”: n2=1 else: n3=1 ③_____ if x==3: print(“强”) elif x==2: print(“中等”) else: print(“弱”) 24.(项目情境)递归就是自己调用自己,它是设计和描述算法的一种有力工具,常常用来解决比较复杂的问题。为求解规模为N的问题,设法将它分解成规模较小的问题,从小问题的解容易构造出大问题的解,并且这些规模问题较小的问题也能采用同样的分解方法,分解成规模更小的问题,并能从这些更小问题的解构造出规模较大问题的解。一般情况下,规模N=1时,问题的解是已知的。已知:从1到n的连续自然数相乘的积、叫做阶乘、用符号n!表示。如5!=1×2×3×4×5,规定0!=1。我们用递归算法可以较容易求n的阶乘。求n的阶乘算法可以描述如下: n!=n*(n-1)! (n-1)!=(n-1)*(n-2)! (n-2)!=(n-2)*(n-3)! 2!=2*1! 1!=0! 0!=1 如果把n!写成函数形式,即f(n),f(n)=n*f(n-1)。如f(5)就是表示5!,求5!的过程可以写成如下形式: f(5)=5*f(4) f(4)=4*f(3) f(3)=3*f(2) f(2)=2*f(1) f(1)=1 (问题求解)在python中用递归算法求1!+2!+……+n!(n的值为整数,从键盘输入)。请阅读如下程序,在空白处填写适当的表达式或语句,使程序完整。 def f(n): if n==0: return 1 else: return _________ s=0 n=int(input(\"请输入n:\")) for i in_______: s=________ print(s) 25.小金同学学完了进制转换后,对课后的不同进制的加减法很是头疼,爱动脑筋的小金突发奇想,能不能用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=”则输出结果为___________。 26.小强想要快速了解“十四五规划”内容的关键词,他先把“十四五规划”内容存储在ssw.txt文档中,如图a所示,统计文档中出现次数最多的前十个关键词,结果如图b所示。文本数据处理的算法设计如图c所示,用Python语言编写的程序段如图d所示。 请根据流程图的每个步骤,填写程序段编号,如A:⑦B:①D:③。现填写C、E、F、G对应的程序段编号.C:__________E:__________F:__________G:__________ 图a 图b 图c 图d 27.使用Python自身提供的IDLE集成开发环境录入以下代码及调试 运行,检测结果。 # 鸡兔同笼 for x in range(1,23): y=35-x if 4*x+2*y==94: print(\"兔子有%s只,鸡有%s只\"%(x,y)) 特别提示:代码录入完毕,调试运行,检测错误,讨论错误原因,上网查找错误格式的处置办法,直至能正确输出结果。 28.蒙特卡洛方法不仅可以用来模拟投针实验,还可以用来模拟求解圆周率T。请根据所学知识,并上网搜索有关资料,找到利用蒙特卡洛方法求解圆周率Π的原理、方法和Python程序。 29.一家商场在降价促销,如果购买金额不高于200元,会给10%的折扣,如果购买金额高于200元,会给20%的折扣。编写一个Python程序,输入消费额(整数),显示折扣后的应付金额。 30.(最大公约数)用辗转相除法求两个正整数的最大公约数。 代码如下: def gcd (m,n): r= while r!=0: m=n n= return a=int(input(‘请输入a的值:’)) b=int(input(‘请输入b的值:’)) print(‘最大公约数是:' ) 填空: ________ ________ ________ ________ ________ 【参考答案】***试卷处理标记,请不要删除 一、程序填空 1.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。 2.y y show( ) 【详解】 本题主要考查Python程序绘制图像。 ①绘制y=x2-2x+ 1的图像,故此处填y。 ②根据横纵坐标x和y绘制图,故此处填y。 ③此处调用显示函数show( ),故填show()。 3.字符串类型 你及格了喔 表现不错 程序结束 不及格 学习方法可能不对 程序结束 60 80 错 【详解】 本题主要考查Python编程。① input() 函数接受一个标准输入数据,返回为 string 类型,因此此处为字符串类型;②输入期末成绩为85时,满足大于等于60及大于等于80条件,因此此处输出为“你及格了喔 表现不错 程序结束”;③输入期末成绩为55时,满足小于60及大于等于30,因此此处输出为“不及格 学习方法可能不对 程序结束”;评价是“还可以再提升”项,属于大于等于60且小于80范围,因此④为60,⑤为80;elif后需添加判断条件,因此⑥为错。 【点睛】 4.layer = int(input(\"请输入需要打印的层数:\")) for x in range(1,layer+1): for y in range (1,x+1): print(\"*\ print(\"\") 【详解】 本题主要考查Python循环结构。Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。range可以生成一个整数列表,列表范围根据接收的layer来确定。外层循环用于确定输出行数,内层循环用于控制每行符号个数。 【点睛】 5.参考答案1: for i in range(2,101): j=2 while j<=i: if i%j==0: break j+=1 if j 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 A s-max-min 【详解】 本题主要考查Python程序的执行与调试。①在引用tkinter模块进行界面设计的过程中,窗体中录入评委打分的对象是由Entry控件生成的(Entry 是Tkinter 用来接收字符串等输入的控件,该控件允许用户输入一行文字),故选A选项。②题目中算法描述采用的是伪代码,故选A选项。③从总分中s中去掉最高分max和最低分min,求出其他4位评委的平均分aver作为选手的最终得分,故此处填s-max-min。 7.pw=input(\"请输入密码:\") password=\"123456\" i=1 while(i<=3): if pw==password: print(\"恭喜你进入系统!\") break else: print(\"请重新尝试:\ pw = input(\"请输入密码:\") i=i+1 【详解】 本题主要考查程序设计。可以通过Python程序设计语言实现题干要求,可以通过while循环控制三次机会,使用if条件分支结构判断是否输入正确,具体代码如下: pw=input(\"请输入密码:\") password=\"123456\" i=1 while(i<=3): if pw==password: print(\"恭喜你进入系统!\") break else: print(\"请重新尝试:\ pw = input(\"请输入密码:\") i=i+1 8. 【详解】 本题主要考查程序设计与实现。可以使用Python程序实现题干要求: 9.n%i==0: i+=1 ss(i) and ss(n-i): 8=3+5 【详解】 本题主要考查Python程序的执行与调试。①函数ss(n)用来判断n是否为质数,若是则返回True,否则返回False,此处是通过while循环逐个判断n是不是能整除i,故填n%i==0:。②若不满足if条件,则i递增,继续循环判断,故填i+=1。③此处判断i与n-i是否都是质数,若是,则表明该偶数可以写成两个质数之和,并输出,故填ss(i) and ss(n-i):。④如果输入“8”则结果显示8=3+5。 10.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)) 11.for i in range(1,100): if i > 1: for j in range(2,i): if (i % j) == 0: break else: print(i) 【详解】 本题主要考查Python程序设计。可以通过for循环找出100以内的素数,用i依次整数2~i-1,如果能整除表明i不是素数,否则i为质数,具体代码如下: for i in range(1,100): if i > 1: for j in range(2,i): if (i % j) == 0: break else: print(i) 12.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) 13.<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。 14.champion 3 i 【详解】 本题主要考查Python程序的执行。①champion是选手编号列表,此处是循环读取选手编号,使用for i in champion,故此处填champion。②四人中有一人说了假话,即3个人说真话,即当cond=3时,则表示找到了谁是冠军,故此处填3。③当cond是3时,i即为冠军,故此处填i。 15.-b/(2*a) 【详解】 本题主要考查Python程序执行与调试。①delta大于0,方程有两个不同的解,delta等于0,方程有两个相同的解,delta小于0,方程无解,故第一空填0。②delta=0,则方程有两个相同的根,x=-b/(2*a),故第二空填-b/(2*a)。 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.x cj 【详解】 本题主要考查Python程序执行与调试。①从键盘输入10个学生的测试成绩,range(a,b)的 范围是从a~b,但不包括b,故第一空填10。②每输入一个数x,将其通过append函数加到列表cj中,故第二空填x。③求最大值用max函数,求最小值用min函数,故第三空填cj。 18.顺序结构 pi=3.14 r=float(input(“请输入半径r:”)) 整型和实数型不能直接运算,结果会有误差 h=float(input(“请输入高h:”)) 【详解】 本题主要考查Python程序执行与调试。①分析程序可知,解决问题的程序用到的控制结构有:顺序结构。②圆周率定义为:3.14,故第二空填pi=3.14。③r=float(input(“请输入半径r:”)) 整型和实数型不能直接运算,结果会有误差 h=float(input(“请输入高h:”))。 19.初值为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。 20.money*(1+rate) 将输入的字符串年利率由百分制转换为浮点数 循环 【详解】 本题主要考查Python程序设计。①round(x,n)函数是将x取n位,此处是计算当前年份的收益,收益=本金+本金*年利率,故填money*(1+rate),并将结果取2位。②程序第2行的作用是将输入的字符串年利率由百分制转换为浮点数,并赋值给变量 rate。③该程序主要是通过while实现循环结构。 21.①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。 22.①④ 不能 1080*1920*24*25*1/1024/1024/100≈10.8Mbps,大于网络传输带宽10Mbps,所以不能满足直播要求。 1 2或2.0 ‘shqk. xlsx’或“shqk. xlsx” (detai1[‘售价’]-detail[‘进价’])*detai1[‘数量’] 【详解】 本题主要考查Python程序设计相关知识点。①手机、数码照相机均属于模数转换的设备,可以实现模拟信号与数字信号的转换,故填①④。②根据直播平台要求,直播画面是1080*1920像素、24位真彩色、帧频为25fps,视频压缩比为100:1,在不考虑视频传输优化的情况下,小强家目前10Mbps的宽带不能满足直播要求。③视频存储容量=像素*颜色深度*帧频*时长,1080*1920*24*25*1/1024/1024/100≈10.8Mbps,大于网络传输带宽10Mbps,所以不能满足直播要求。④由图可知,1表示成交,0表示未成交,流水号为2019030602的售货记录中,已成交的商品类别数是1,都是饮料(即货号17和货号5)。⑤该流水号的总利润是(2.9-2.5)*3+(1-0.8)*4=2.0,故填2或2.0。⑥该表格文件名是 shqk.xlsx,此处读入该表格文件,故填‘shqk. xlsx’或“shqk. xlsx”。⑦利润=(售价-进价)*数量,数据已经读到detail中,故此处填(detai1[‘售价’]-detail[‘进价’])*detai1[‘数量’]。 23.D n=len(password) ch=password[i] x=n1+n2+n3 【详解】 本题主要考查Python程序的执行与调试。①“12abcd5!”含有三类字符,则输出结果为强,选D选项。②此处取密码的长度,将其赋给变量n,len()是返回字符串的长度,故填n=len(password)。③ch是取密码的每一位进行判断,故此处填ch=password[i]。④当出现数字时n1=1,当出现字母时n2=1,当出现其他字符时n3=1,x用来统计有几类字符,故此处填x=n1+n2+n3。 24.n*f(n-1) range(1,n+1) s+f(i) 【详解】 本题主要考查Python程序的执行与调试。①此处是定义递归函数f(n),由题干,当n=0时,返回1,否则返回n*f(n-1),故此处填n*f(n-1)。②用递归算法求1!+2!+……+n!,故变量i的范围应是1—n,for i in range(1,n+1)表示i的范围是[1,n],故此处填range(1,n+1)。③循环体实现累加,将每一项阶乘f(i)加到s中,故此处填s+f(i)。 25.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。 26.② ⑤ ⑥ ④ 【详解】 本题主要考查算法及Python程序实现。①jieba 模块是一个用于中文分词的模块,lcut 方法直接返回 list,流程图中分词后存入words中对应的代码是words=jieba.lcut(txt),故填②。②流程图中循环结构对应的是程序中的⑤。③对counts的值进行排序,可以使用sort方法实现,对应程序中的⑥。④使用循环结构将值一一输出,对应程序中的④。 27.错误1:兔子4只腿,最多只能是23只,而 range(1,23)只取到22,没取到23,故应改为: range(1,24) 错误2:缩进错误,y=35-x、if 4*x+2*y==94:是for语句中的语句块,应缩进。print(\"兔子有%s只,鸡有%s只\"%(x,y))是if语句中的语句块,应缩进。 【详解】 本题考查的是Python调试。本题程序错误如下: 错误1:兔子4只腿,最多只能是23只,而 range(1,23)只取到22,没取到23,故应改为: range(1,24) 错误2:缩进错误,y=35-x、if 4*x+2*y==94:是for语句中的语句块,应缩进。print(\"兔子 有%s只,鸡有%s只\"%(x,y))是if语句中的语句块,应缩进。 调试完最终输出:兔子有12只,鸡有23只。 28.原理:通常蒙特•卡罗方法通过构造符合一定规则的随机数来解决数学上的各种问题。对于那些由于计算过于复杂而难以得到解析解或者根本没有解析解的问题,蒙特•卡罗方法是一种有效的求出数值解的方法。一般蒙特•卡罗方法在数学中最常见的应用就是蒙特•卡罗积分。方法:蒙特卡罗方法的解题过程可以归结为三个主要步骤:构造或描述概率过程;实现从已知概率分布抽样;建立各种估计量。利用蒙特卡洛方法实现求解圆周率 #!/usr/bin/Python #-*- coding:utf-8 -*- import random import math def monteCarlo(N): i = 0 count = 0 while i <= N: x = random.random() y = random.random() 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 = random.random() y = random.random() 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(\"折扣后的应付金额是:\ 【详解】 本题主要考查Python程序的执行与调试。用键盘通过输入函数input输入消费额,并用int 函数将其转换为整数类型,通过if条件分支结构,判断如果购买金额不高于200元,会给10%的折扣,如果购买金额高于200元,会给20%的折扣,最后用print输出函数输出折扣后的应付金额。 30.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)。 因篇幅问题不能全部显示,请点此查看更多更全内容