NCTPython编程二级模拟卷2含答案图文程序填空阅读填空程序试题.docx
- 文档编号:10969272
- 上传时间:2023-02-24
- 格式:DOCX
- 页数:33
- 大小:822.33KB
NCTPython编程二级模拟卷2含答案图文程序填空阅读填空程序试题.docx
《NCTPython编程二级模拟卷2含答案图文程序填空阅读填空程序试题.docx》由会员分享,可在线阅读,更多相关《NCTPython编程二级模拟卷2含答案图文程序填空阅读填空程序试题.docx(33页珍藏版)》请在冰豆网上搜索。
NCTPython编程二级模拟卷2含答案图文程序填空阅读填空程序试题
NCT-Python编程二级-模拟卷2(含答案图文程序填空阅读填空程序试题
一、程序填空
1.完善程序实现如下功能并保存:
有5个人坐在一起,第5个人说他比第4个人小3岁;第4个人说他比第3个人小3岁;第3个人说他比第2个人小3岁;第2个人又说他比第1个人小3岁;第1个人说他是38岁。
编写程序,计算出第5个人的年龄并显示。
defage(n):
ifn==1:
c=________
else:
c=age(n-1)-3
return________
print("第5人的年龄:
",age(________))
input("运行完毕,请按回车键退出...")
2.请在空格处填写正确的代码,使程序完善。
实现功能:
绘制y=x2-2x+1的图像
#加载numpy模块并限简洁的别名为np
importnumpyasnp
#加载matplotlib.pyplot模块并限简洁的别名为plt
importmatplotlib.pyplotasplt
#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
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.请编写一个密码登陆系统,接收用户从键盘输入的密码和你自己的密码进行比对,如果正确就显示“恭喜你进入系统”如果不正确让用户重新输入,有三次机会。 8.输入三个同学的成绩,然后大到小排列。 9.哥德巴赫在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”则结果显示_____ 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(“请输入一个正整数: ”)) ifn<1orn>100: exit#输入的数不符合要求,退出 foriinrange(1,n+1): ifn//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']#设置选手列表 foriin__________: #循环读取选手编号 cond=(i! ='A')+(i=='C')+(i=='D')+(i! ='D')#查找符合条件的选手 ifcond==_____: #说真话是否是3人 print("冠军是: ",_________)#输出冠军 input("运行完毕,请按回车键退出...") 15.完善程序实现以下功能并保存。 输入一元二次方程的系数a,b,c的值,求解一元二次方程ax2+bx+c=0(a≠0) #请不要更改源程序的结构,删除原题里的①、②。 填写正确的代码,使程序完善 importmath a=float(input("请输入方程系数a(! =0): ")) b=float(input("请输入方程系数b: ")) c=float(input("请输入方程系数c: ")) delta=b*b-4*a*c ifdelta>________: x1=(-b+math.sqrt(delta))/(2*a) x2=(-b-math.sqrt(delta))/(2*a) print("方程有两个不同的解",x1,x2) elifdelta==0: x1=________ print("方程有两个相同的解",x1) else: print("方程无解") input("运行完毕,请按回车键退出...") 16.编写程序。 如图所示的算法,请用Python程序写出实现该算法相应的代码。 17.完善代码并保存。 实现功能: 从键盘输入10个学生的测试成绩,输出最高分和最低分。 cj=[] foriinrange(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 foriinrange(1,20,3): sum+=i print(“sum=”,sum) (1)循环变量i的初值为: _________,终值为: _________,步长为: __________。 (2)该程序执行后,输出的结果为: ____________________。 20.小敏有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实现____________结构。 21.已知6月份10位技术考试成绩: 1 2 3 4 5 6 7 8 9 10 78 88 89 90 83 76 75 98 100 65 技术老师想统计出80分(含80)以上的人数,请完善程序,代码如下: a=[78,88,89,90,83,76,75,98,100,65] ______ sum=0 foriinrange(n): ifa[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 importpandasaspd importnumpyasnp importmatplotlib.pyplotasplt detail=pD.read_excel(___) print(detail) foriinrange(len(detail[: ])): ifdetail[‘成交与否’][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(“请输入要检测的密码: ”) ①_______________ ifn<8: print(“密码位数不能少于8位,请重新输入! ”) else: n1=0 n2=0 n3=0 foriinrange(0,n,1): ②_______ if“0”<=ch<=“9”: n1=1 elif“a”<=ch<=“z”or“A”<=ch<=“Z”: n2=1 else: n3=1 ③_____ ifx==3: print(“强”) elifx==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的值为整数,从键盘输入)。 请阅读如下程序,在空白处填写适当的表达式或语句,使程序完整。 deff(n): ifn==0: return1 else: return_________ s=0 n=int(input("请输入n: ")) foriin_______: s=________ print(s) 25.小金同学学完了进制转换后,对课后的不同进制的加减法很是头疼,爱动脑筋的小金突发奇想,能不能用python程序来完成这些作业呢? 请帮小金完成代码编程. defconvert(s): m=0 le=len(s) key=s[le-1] ifkey=="B": n=2 elifkey=="D": _______ else: n=16 i=0 whilei<=le-2: c=s[le-1-i] ifc>="0"andc<="9": a=ord(c)-ord("0") elifc>="A"andc<="F": a=ord(c)-ord("A")+10 _____________ i+=1 returnm s=input("请输入算式") result=0;suanfu1="";suanfu2="";s1="" foriinrange(len(s)): c=s[i] ifc=="+"orc=="-"orc=="=": __________ suanfu1=suanfu2 suanfu2=c ifsuanfu1=="": result=t ifsuanfu1=="+": result=result+t ifsuanfu1=="-": 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集成开发环境录入以下代码及调试 运行,检测结果。 #鸡兔同笼 forxinrange(1,23): y=35-x if4*x+2*y==94: print("兔子有%s只,鸡有%s只"%(x,y)) 特别提示: 代码录入完毕,调试运行,检测错误,讨论错误原因,上网查找错误格式的处置办法,直至能正确输出结果。 28.蒙特卡洛方法不仅可以用来模拟投针实验,还可以用来模拟求解圆周率T。 请根据所学知识,并上网搜索有关资料,找到利用蒙特卡洛方法求解圆周率Π的原理、方法和Python程序。 29.一家商场在降价促销,如果购买金额不高于200元,会给10%的折扣,如果购买金额高于200元,会给20%的折扣。 编写一个Python程序,输入消费额(整数),显示折扣后的应付金额。 30.(最大公约数)用辗转相除法求两个正整数的最大公约数。 代码如下: defgcd(m,n): r= whiler! =0: m=n n= return a=int(input(‘请输入a的值: ’)) b=int(input(‘请输入b的值: ’)) print(‘最大公约数是: ') 填空: ________________________________________ 【参考答案】***试卷处理标记,请不要删除 一、程序填空 1.c5 【详解】 本题主要考查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.yyshow() 【详解】 本题主要考查Python程序绘制图像。 ①绘制y=x2-2x+1的图像,故此处填y。 ②根据横纵坐标x和y绘制图,故此处填y。 ③此处调用显示函数show(),故填show()。 3.字符串类型你及格了喔表现不错程序结束不及格学习方法可能不对程序结束6080错 【详解】 本题主要考查Python编程。 ①input()函数接受一个标准输入数据,返回为string类型,因此此处为字符串类型;②输入期末成绩为85时,满足大于等于60及大于等于80条件,因此此处输出为“你及格了喔表现不错程序结束”;③输入期末成绩为55时,满足小于60及大于等于30,因此此处输出为“不及格学习方法可能不对程序结束”;评价是“还可以再提升”项,属于大于等于60且小于80范围,因此④为60,⑤为80;elif后需添加判断条件,因此⑥为错。 【点睛】 4.layer=int(input("请输入需要打印的层数: ")) forxinrange(1,layer+1): foryinrange(1,x+1): print("*",end="") print("") 【详解】 本题主要考查Python循环结构。 Pythonfor循环可以遍历任何序列的项目,如一个列表或者一个字符串。 range可以生成一个整数列表,列表范围根据接收的layer来确定。 外层循环用于确定输出行数,内层循环用于控制每行符号个数。 【点睛】 5.参考答案1: foriinrange(2,101): j=2 whilej<=i: ifi%j==0: break j+=1 ifj continue else: print(i,end="") 参考答: 2: foriinrange(2,101): forjinrange(2,i): if(i%j==0): break else: print(i) 【详解】 本题考查是Python语言编程解决问题。 break语句可以立即终止当前循环的执行,跳出当前所在的循环结构。 无论是while循环还是for循环,只要执行break语句,就会直接结束当前正在执行的循环体。 这就好比在操场上跑步,原计划跑10圈,可是当跑到第2圈的时候,突然想起有急事要办,于是果断停止跑步并离开操场,这就相当于使用了break语句提前终止了循环。 答案中代码的实现过程见下图: 参考答案1: 参考答案2: 6.AAs-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): ifpw==password: print("恭喜你进入系统! ") break else: print("请重新尝试: ",i) pw=input("请输入密码: ") i=i+1 【详解】 本题
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- NCTPython 编程 二级 模拟 答案 图文 程序 填空 阅读 试题
![提示](https://static.bdocx.com/images/bang_tan.gif)