高中信息技术期学科Python语言基础期末考试程序填空阅读填空程序试题.docx
- 文档编号:8335486
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:29
- 大小:1,009.15KB
高中信息技术期学科Python语言基础期末考试程序填空阅读填空程序试题.docx
《高中信息技术期学科Python语言基础期末考试程序填空阅读填空程序试题.docx》由会员分享,可在线阅读,更多相关《高中信息技术期学科Python语言基础期末考试程序填空阅读填空程序试题.docx(29页珍藏版)》请在冰豆网上搜索。
高中信息技术期学科Python语言基础期末考试程序填空阅读填空程序试题
高中信息技术期学科Python语言基础期末考试程序填空阅读填空程序试题
一、程序填空
1.在一千多年前的《孙子算经》中,有这样一道算术题:
“今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?
”。
即一个数除以3余2,除以5余3,除以7余2,求这个数。
i=①________
while(i%3!
=2②________i%5!
=3ori%7!
=2):
i=③________
print(i)
2.完善程序。
以下是计算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)
3.调试程序。
请阅读以下程序并写出运行结果。
#ex16.py
i=0
sum=0
whilei<10:
ifi%3==0:
sum+=i
print(i)
i=i+1
print('sum',sum)
_________
4.程序分析题
学校举行校园歌手大赛,评委由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步。 请填写片段中空白处的表达式填写完整________ 5.分析完善程序 已知包含25项的数列: 1,2/3,3/5,....,24/47,25/49。 问题1: 写出该数列的通项公式f(n)=_① 问题2: 以下是计算S=1+2/3+3/5+...+24/47+25/49的程序,请补全代码: s=0 foriinrange(1,26): s=s+② print(“s=”,s) 补充完成上述通项公式和程序: ①f(n)=_________ ②___________ 6.求50以内所有5的倍数的和。 7.哥德巴赫在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”则结果显示_____ 8.编写程序,实现从键盘输入数据,实现输入数据转换成大写并输出。 9.编写程序,实现从键盘输入数据,数据前三位的ASCII值加2,从第四位开始ASCII值加3。 10.求水仙花数(一个三位数,其各位数字立方和等于该数字本身) 11.求1~100内奇数之和(使用range函数) 12.操作说明: 打开文件“Y: /1/1.py”,将程序补充完整,不得增加,删除语句、或改变程序原有结构,操作结束后保存。 以下程序段的功能是: 根据从键盘上输入的表示星期几的数字,若输入的数字不是在范围(1至7)输出“输入错误! ”,否则输出对应的英文星期的简称如“Mon、Tue、Wed、Thu、Fri、Sta、Sun”。 n=int(input(“请输入一个数: ”)) list=[“Mon”,”Tue”,”Wed”,”Thu”,”Fri”,”Sta”,”Sun”] if________: print(“输入错误! ”) else: print(________) 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.阅读程序。 分析下列切片相关程序并回答问题。 list2=[5,6,7,8,9] print(list2[: ]) print(list2[2: ]) print(list2[: 2]) print(list2[1: 3]) print(list2[2: 4]) (1)程序第一个print的输出结果是______________。 (2)程序第二个print的输出结果是______________。 (3)程序第三个print的输出结果是______________。 (4)程序第四个print的输出结果是______________。 (5)程序第五个print的输出结果是______________。 15.(最大公约数)用辗转相除法求两个正整数的最大公约数。 代码如下: defgcd(m,n): r= whiler! =0: m=n n= return a=int(input(‘请输入a的值: ’)) b=int(input(‘请输入b的值: ’)) print(‘最大公约数是: ') 填空: ________________________________________ 16.小明用Python语言写了一个货币兑换程序如下: (1)参数currency指: ____________。 (2)该程序用了哪一种算法结构: _____________。 (3)输出结果为“50$=325.25人民币”。 则代码应该如何编写: ____________。 17.完善程序实现以下功能并保存。 输入一元二次方程的系数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("运行完毕,请按回车键退出...") 18.完善程序实现如下功能并保存: 有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("运行完毕,请按回车键退出...") 19.已知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) 执行上述程序段后,输出的内容是______ 20.辗转相除法,又称欧几里德算法,用于计算两个正整数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行划线处为__________。 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)的数值变换过程如下: 变换前 0 1 1 1 0 1 0 0 密钥m 0 0 1 0 0 0 1 1 变换后 0 1 0 1 0 1 1 1 (1)已知“A”的ASCII码值是65,m=35,则“A”数值变换后的结果是_______(填二进制数据)。 (2)小李根据上述算法,设计了一个数据加密程序,其VB代码如下,请在划线处填入合适的代码。 Constn=1024 Dimc(1To8)AsInteger PrivateSubForm_Load() ‘产生位置变换密钥数组c,代码略 EndSub Functionconvert(cAsInteger)AsString ‘程序功能: 把整数c转成8位二进制数,代码略 EndFunction PrivateSubCommand1_Click() DimsAsString,stAsString,ssAsString,resAsString DimiAsInteger,jAsIntegerstartAsInteger Dima(1Ton)AsString,b(1Ton)AsString s=Text1.Text st=convert(Val(Text2.Text)) Fori=1ToLen(s) a(i)=Mid(s,i,1) Nexti i=1: start=-8 DoWhile①________ IfiMod8=1Thenstart=start+8 b(i)=②_______ i=i+1 Loop Forj=iToLen(s) b(j)=a(j) Nextj Fori=1ToLen(s) ③________ Forj=1To8 IfMid(ss,j,1)=Mid(st,j,1)Then res=res+"0"Elseres=res+"1" '按位异或 Nextj Nexti Text3.Text=res EndSub 22.密码强度检测。 编写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(“弱”) 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.现今信息化时代,信息的传输十分迅速,足不出户便知天下事。 许多社交平台都有设置本平台的热点排行榜,方便用户了解正在发生的热门事件。 但社交平台数量众多,平台用户种类和数量也大不相同,导致不同平台热点的实际热度大小也不同。 小钟为了确保自己知道的热点是真正的热点,于是打算用功能强大的python把各个平台的热点排行榜进行合并,形成自己的热点排行榜。 为了热点之间比较方便,小钟设置了一个热度值来衡量一个热点的热度大小,热度值越大说明这个热点的热度越高。 现在小钟已经获得了如下两个平台的热度值从小到大的排行榜,正当他打算将之合并为一个从小到大的排行榜时,却被老师叫走了。 于是他决定把这个小功能交给他的好朋友——你来实现,你想到2种算法,请把下列程序填写完整。 A P10 P9 P8 P7 P6 P5 P4 P3 P2 P1 11 66 116 329 438 582 652 714 756 925 B E10 E9 E8 E7 E6 E5 E4 E3 E2 E1 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 if(A[i] (6)______ i+=1 else: myRank.append(B[j]) j+=1 while(i myRank.append(A[i]) i+=1 else: while((7)______): myRank.append(B[j]) j+=1 print(myRank) 算法二: 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.小金同学学完了进制转换后,对课后的不同进制的加减法很是头疼,爱动脑筋的小金突发奇想,能不能用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.某市普通高中选课数据如图1所示,学生从地理、化学、生物等科目中选择三门作为高考选考科目,“1”表示已选择的选考科目。 使用Python编程分析每所学校各科目选考的总人数、全市各科选考总人数及其占比,经过程序处理后,保存结果如图2 图1 图2 实现上述功能的Python程序如下: importpandasaspd importitertools #读数据到pandas的DataFrame结构中 df=________(”xk73.csv”,sep=‘.’,header=‘infer’,encoding=‘utf-8’) km=[‘物理’,‘化学’,‘生物’,‘政治’,‘历史’,‘地理’,‘技术’] #按学校分组计数 sc=df.groupby(‘___________’,as_index=False).count() #对分组计数结果进行合计,合计结果转换为DF结构并转置为行 df_sum=pd.DataFrame(data=sc.sum()).T df_sum[‘学校代码’]=‘合计’ #增加"合计"行 result=sc.append(df_sum) #百分比计算 df_percent=df_sum df_percent[‘学校代码’]=‘比例’ forkinkm: per=df_percent.at[0,k]/zrs df_percent[k]=per #增加"百分比"行 result=result.append(df_percent) #删除"姓名"列 result=______________ #修改"学生编号
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高中 信息技术 学科 Python 语言 基础 期末考试 程序 填空 阅读 试题