NCTPython编程三级模拟卷5含答案word程序填空阅读填空程序试题.docx
- 文档编号:9528680
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:31
- 大小:1,023.36KB
NCTPython编程三级模拟卷5含答案word程序填空阅读填空程序试题.docx
《NCTPython编程三级模拟卷5含答案word程序填空阅读填空程序试题.docx》由会员分享,可在线阅读,更多相关《NCTPython编程三级模拟卷5含答案word程序填空阅读填空程序试题.docx(31页珍藏版)》请在冰豆网上搜索。
NCTPython编程三级模拟卷5含答案word程序填空阅读填空程序试题
NCT-Python编程三级-模拟卷5(含答案word程序填空阅读填空程序试题
一、程序填空
1.编写一个程序,实现九九乘法口诀表。
2.程序补充:
(1)有5万元资金存入银行,选择“1年定期.自动转存”的存款方式,由于银行利率是不断变化的,这5年利率分别是3.25%.3%.3%.2%.1.75%,5年后会有多少收益呢?
调用round()函数,保留结果两位小数。
money=_______________________________
rate=_________________________________
for___________________________________
____________________________________
print(“5年以后存款总额:
”,money,“元”)
(2)某投资者购买了10万元一年期收益率3.7%的银行保证收益型理财产品。
每年理财赎回后,他会提取2万元用作生活所需,余下资金仍购买此种理财。
在收益率不变的情况下,多少年后本金被全部取出?
money=________________________________
year=__________________________________
while_________________________________
_________________________________
________________________________
print(year,“年后资金被全部取出”)
3.将下列程序代码补充完整:
某同学参加了学校体检,体检的医生告诉他体重超重,需要加强运动。
该同学了解到运动时,心率如能控制在一定范围内,对增强心血管系统和呼吸系统的功能都有很好的效果;超出范围,对身体反而会有损伤。
男最适宜运动心率=(220-年龄数-安静心率)×(60%~80%)+安静心率,女最适宜运动心率=(210-年龄数-安静心率)×(60%~80%)+安静心率,补充程序帮他(她)计算最适宜的运动心率。
age=float(input('请输入age='))
HRrest=float(input('请输入HRrest='))
gender=input(“请输入maleorfemale:
”)
if____________________:
____________________
else:
_____________________
low=(n-age-HRrest)*0.6+HRrest
high=(n-age-HRrest)*0.8+HRrest
print('最适宜的心率是:
',low,'~',high)
input(“运行完毕,请按回车键退出...”)
4.程序编写
求1+22+32+……+1002的结果
_______________________________
_______________________________
_______________________________
_______________________________
input(“运行完毕,请按回车键退出...”)
5.完善程序。
以下是计算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)
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
foriinrange(6):
s=s+a[i]
ifa[i]>max:
max=a[i]
ifa[i] min=a[i] aver=()/4 (1)在引用tkinter模块进行界面设计的过程中,窗体中录入评委打分的对象是由______控件生成的。 A.EntryB.LabelC.FrameD.Button (2)题目中算法描述采用的是__________A、自然语言B、伪代码C、流程图D、.N-S图 (3)下列程序代码片段对应于算法描述中的第2步至第4步。 请填写片段中空白处的表达式填写完整________ 7.(项目情境)在中国古代,出自数学家张丘建的《算经》中这样一个值得研究的问题: 今有鸡翁一,直钱五;鸡母一,直钱三;鸡雏三,直钱一。 凡百钱,买鸡百只。 问鸡翁、母、雏各几何? 这个问题就是著名的“百钱买百鸡问题”。 即: 现有100文钱,公鸡5文钱一只,母鸡3文钱一只,小鸡一文钱3只,要求: 公鸡,母鸡,小鸡都要有,把100文钱买100只鸡,买的鸡是整数。 问公鸡、母鸡和小鸡各几何? (问题求解)设用变量g、m、x三个变量分别存放公鸡、母鸡和小鸡的数量,请阅读如下程序,在空白处填写适当的表达式或语句,使程序完整。 forginrange(1,20): formin_______: forxinrange(3,98,3): if_________and__________==100: print("公鸡: ",g,"母鸡: ",m,"小鸡: ",x) 8.计算机解决问题的过程为“分析问题——设计算法(流程图)——编写程序——调试程序”, 请输入以下代码,自己输入数据运行,结果截图提交 9.编写一个程序,它将找到所有这些数字,可被7整除,但不是5的倍数,2000年至3200年(包括在内)。 得到的数字应按逗号分隔的顺序打印在一行上。 提示: 考虑使用range(#begin,#end) 10.哥德巴赫在1742年提出了以下猜想: 任何一个大于2的偶数都可以写成两个质数之和,请完善代码帮助哥德巴赫验证他的猜想。 importmath defss(n): Flag=True i=2 whilei<=int(math.sqrt(n))andFlag: if_____________ Flag=False _____________ returnFlag n=int(input(“输入一个大于2的偶数”)) foriinrang(2,n//2+1): if____________ print(str(n)+"="+str(i)+"+"+str(n-i)) 如果输入“8”则结果显示_____ 11.编写程序,找到并输出100以内的偶数个数。 12.编写程序,实现从键盘输入数据,数据前三位的ASCII值加2,从第四位开始ASCII值加3。 13.猴子吃桃问题: 猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。 以后每天早上都吃了前一天剩下的一半零一个。 到第10天早上想再吃时,见只剩下一个桃子了。 求第一天共摘了多少。 14.请在空格处填写正确的代码,使程序完善。 实现功能: 用辗转相除法求解两个正整数的最大公约数。 x=int(input('请输入第一个正整数: ')) y=int(input('请输入第二个正整数: ')) m=max(x,y)#找出x,y中的最大值 n=min(x,y)#找出x,y中的最小值 r=m%n#求得最大值除以最小值后的余数 whiler! =0: #如果余数不等0,则进行以下循环 m=________#把最小值赋给m n=_________#把余数赋给n r=m%n#求得最大值除以最小值后的余数 print('这两个数的最大公约数为: ',______) input("运行完毕,请按任意键退出....") 15.求100以内素数。 16.蒙特卡洛方法不仅可以用来模拟投针实验,还可以用来模拟求解圆周率T。 请根据所学知识,并上网搜索有关资料,找到利用蒙特卡洛方法求解圆周率Π的原理、方法和Python程序。 17.广场上有许多(有数百人)小朋友在玩分组游戏,当他们分成三人一组时,发现最后多出两个;当他们分成五人一组时,发现最后多出三个;当他们分成七人一组时,发现最后多出两个。 编写程序求出这些小朋友的可能人数。 实现上述功能的程序如下,请在程序划线处填入合适的代码。 ________ a=[] foriinrange(100,1000): if_____________: a.append(i) total+=1 print("这群小朋友总的人数有: ") forjinrange(len(a)): print(____,end='、') print('') print('可能情况数为: ',total,'种') 划线处①处应该填入的语句为: ; 划线处②处应该填入的语句为: ; 划线处③处应该填入的语句为: 。 18.有如下程序段: sum=0 foriinrange(1,20,3): sum+=i print(“sum=”,sum) (1)循环变量i的初值为: _________,终值为: _________,步长为: __________。 (2)该程序执行后,输出的结果为: ____________________。 19.小敏有10万元本金,想要购买银行保证收益型理财产品。 每年到期后连本带利仍购买此种理财。 请你帮助小敏分析,在年收益率不变的情况下,多少年后小敏的累计收益能超过本金,请完成程序填空。 (例如输人: 5.15%,输出: 14年后收益超过本金。 ) 1s=input("请输入年利率: ") 2rate=float(s[: -1])*0.01 3money=100000 4year=0 5whilemoney<=200000: 6money=round(),2) 7year=year+1 8print(year,"年后收益超过本金。 ”) (1)程序第6行下划线处应填入___________。 (2)程序第2行的作用是____________,并赋值给变量rate。 (3)该程序主要是通过while实现____________结构。 20.求解a到b内(包含a和b)所有的质数,并对每个质数的每一位数字求和。 请完善程序。 程序如下: importmath defIsPrime(i): ifi==1: returnFalse forjinrange(2,int(math.sqrt(i))+1): if____: returnFalse returnTrue a=int(input("请输入a: ")) b=int(input("请输入b: ")) summ=0 foriinrange(a,b+1): ifIsPrime(i): ________ whilet>0: summ=summ+t%10 _________ print("数字和为: ",summ) 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.(项目情境)递归就是自己调用自己,它是设计和描述算法的一种有力工具,常常用来解决比较复杂的问题。 为求解规模为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的值为整数,从键盘输入)。 请阅读如下程序,在空白处填写适当的表达式或语句,使程序完整。 deff(n): ifn==0: return1 else: return_________ s=0 n=int(input("请输入n: ")) foriin_______: s=________ print(s) 23.学习了Python绘制图形操作后,信息小组接到了编程演示的任务。 为此,小组同学编写了一段代码,绘制出多个不同颜色的圆形。 代码如下: importturtle turtle.bgcolor("black") colors=["red","green","blue","yellow"] forx①range(100): turtle.pencolor(colors[x%4]) turtle.circle(x) turtle.left(90) 请分析任务,完成下列题目。 (1)程序中①处应填写(________)。 A.printB.inputC.inD.colors (2)程序中x%4的作用是(________)。 A.计算x乘以4的结果 B.计算x除以4的整数部分 C.计算x除以4的小数部分 D.计算x除以4的余数 (3)执行此程序,绘制出圆形的总颜色数是(________)。 A.1B.4C.5D.100 (4)执行此程序,绘制出圆形的总个数是(________)。 A.1B.4C.99D.100 (5)此程序属于程序设计结构中的(________)。 A.顺序结构B.分支结构 C.循环结构D.跳转结构 24.某企业开展“运动打卡动动有奖”活动: 若员工在本月累计运动时间30小时以下,奖励0元;达到30但不足45小时奖励300元;达到45但不足60小时奖励450元;60小时及以上奖励500元。 小强用python编写程序实现相关功能: 输入某员工本月累计运动时间(时),输出其能获得的奖励金额。 (1)实现上述功能的程序如下,请在划线处填入合适的代码。 t=int(input(“请输入您本月累计运动时间(时): ”)) ift<0: print(“输入错误”) else: ift<30: ①_ elift<45: m=300 ②_____ m=450 else: m=500 print(“您的奖励是: ”,m) (2)当输入“-1”时,输出信息为_________(选填,填字母: A.输入错误/B.您的奖励是: 0/C.您的奖励是: 500) 25.若两个素数之差为2,则该对素数称为双胞胎数,如3,5就是一对双胞胎数。 编写python程序,实现如下功能: 输入n的值,统计显示n以内的所有双胞胎数。 程序运行界面如图所示: 实现上述功能的程序如下,请在划线处填入合适的代码。 defisprime(x): foriinrange(2,x): if①__________: returnFalse returnTrue n=int(input(“请输入一个正整数n: ”)) c=0 k=3 whilek<=n-2: ifisprime(k)and②___________: print(k,k+2) ③___________ k=k+1 print(“共有”+str(c)+“对双胞胎数”) 26.设计完成算法之后,小C打算用所学的Python程序设计语言完成程序的编写。 (1)Python程序设计语言属于程序设计语言中的_______________。 A.机器语言B.汇编语言C.高级语言D.翻译程序 (2)小C将设计好的算法转为Python程序语言(如下)。 其中“Tot2=8”是一个___________,“#初始化时长费为0”是一个__________,“S<=3.3”是一个___________,“float(input(“请输入时长”))”是一个__________。 A.函数B.表达式C.赋值语句D.注释语句 1Tot1=0#初始化时长费为0 2Tot2=0#初始化里程费为0 3S=float(input(“请输入里程数”)) 4T=float(input(“请输入时长”))#输入里程数和时长 5if(T>9): #计算时长费用 6Tot1=(T-9)*0.2 7if(S<=3.3): #算里程费用 8Tot2-8 9else: 10Tot2=8+(S-3.3)*1.35 11Cost-Totl+tot2 12print(Cost)#输出总车费 (3)小C写好代码之后,编译运行发现报错了,根据下图中所示的错误信息分析该程序报错的原因是: ____________________________________________________________________________________________。 NameErrorTraceback(mostrecentcalllast) 9else: 10 —→11Cost=Tot1+tot2 12 NameError: name’tot2’isnotdefined (4)经过修改之后,小C对照某次滴滴打车的订单,将对应的公里数和时长输入程序,运行得到的结果与实际支付的费用一致,小C会心一笑验证得知程序正确无误。 小C借助于计算机编写程序解决问题的这个过程是: ①设计算法②编写程序③分析问题④调试运行程序,合理的顺序是_________。 (填写序号即可) (5)总结用计算机解决问题的优势主要有: _______________________________________________。 27.阅读程序。 分析以下两段Python程序并回答问题。 #程序1 i=1 whilei<101: print('把这句话打印100遍') i+=1 #程序2 i=100 whilei: print('把这句话打印100遍') i=i-2 (1)在程序1中,i+=1这句话的含义是______________。 (2)在程序1中,‘把这句话打印100遍’实际输出了_____遍。 (3)在程序2中,i的初值是___。 (4)在程序2中,‘把这句话打印100遍’实际输出了_____遍。 (5)在程序2中,whilei的含义是_________。 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=[] foriinrange(0,13): if___ a.append(int(s[i]))#append()函数用于在列表末尾添加新的对象 sum=0 foriinrange(0,9): ____ sdm=sum%10 ___ ifsdm==ydm: print("正确") else: print("错误") 29.使用Python自身提供的IDLE集成开发环境录入以下代码及调试 运行,检测结果。 #鸡兔同笼 forxinrange(1,23): y=35-x if4*x+2*y==94: print("兔子有%s只,鸡有%s只"%(x,y)) 特别提示: 代码录入完毕,调试运行,检测错误,讨论错误原因,上网查找错误格式的处置办法,直至能正确输出结果。 30.输入n,计算s=1! +2! +...+n! 的未6位(不含前导0)。 N<=1000000,n! 表示前n个正整数之积。 【参考答案】***试卷处理标记,请不要删除 一、程序填空 1.foriinrange(1,10): forjinrange(1,i+1): print(str(j)+"*"+str(i)+"="+str(i*j),end="") print("") 【详解】 本题主要考查Python程序的执行。 九九乘法口诀表可以通过嵌套for循环实现,内层循环完一次,执行print("")换行,具体代码如下: foriinrange(1,10): forjinrange(1,i+1): print(str(j)+"*"+str(i)+"="+str(i*j),end="") print("") 2.[0.0325,0.03,0.03,0.02,0.0175]iinr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- NCTPython 编程 三级 模拟 答案 word 程序 填空 阅读 试题