python软件编程等级考试二级编程实操题03word程序填空阅读填空程序试题.docx

上传人:b****8 文档编号:9564011 上传时间:2023-02-05 格式:DOCX 页数:38 大小:1.26MB
下载 相关 举报
python软件编程等级考试二级编程实操题03word程序填空阅读填空程序试题.docx_第1页
第1页 / 共38页
python软件编程等级考试二级编程实操题03word程序填空阅读填空程序试题.docx_第2页
第2页 / 共38页
python软件编程等级考试二级编程实操题03word程序填空阅读填空程序试题.docx_第3页
第3页 / 共38页
python软件编程等级考试二级编程实操题03word程序填空阅读填空程序试题.docx_第4页
第4页 / 共38页
python软件编程等级考试二级编程实操题03word程序填空阅读填空程序试题.docx_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

python软件编程等级考试二级编程实操题03word程序填空阅读填空程序试题.docx

《python软件编程等级考试二级编程实操题03word程序填空阅读填空程序试题.docx》由会员分享,可在线阅读,更多相关《python软件编程等级考试二级编程实操题03word程序填空阅读填空程序试题.docx(38页珍藏版)》请在冰豆网上搜索。

python软件编程等级考试二级编程实操题03word程序填空阅读填空程序试题.docx

python软件编程等级考试二级编程实操题03word程序填空阅读填空程序试题

python软件编程等级考试(二级)编程实操题03word程序填空阅读填空程序试题

一、程序填空

1.有如下程序段:

sum=0

foriinrange(1,20,3):

sum+=i

print(“sum=”,sum)

(1)循环变量i的初值为:

_________,终值为:

_________,步长为:

__________。

(2)该程序执行后,输出的结果为:

____________________。

2.阅读程序。

阅读求水仙花数的代码并回答问题。

“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。

例如:

153是一个“水仙花数”,因为153=13+53+33,请计算并输出所有三位数的水仙花数。

forninrange(100,1000):

i=n//100

j=n//100%10

k=n%10

ifn==i*i*i+j*j*j+k*k*k:

print(n)

(1)//的符号作用是_____。

(2)%的符号作用是_____。

(3)==的符号作用是_____。

(4)在代码中,变量i表示的是三位数中的______位。

(5)在代码中,变量j表示的是三位数中的______位。

(6)在代码中,变量k表示的是三位数中的______位。

(7)在range(100,1000)这个区域内,变量n无法取到的数值是________。

3.(项目情境)在中国古代,出自数学家张丘建的《算经》中这样一个值得研究的问题:

今有鸡翁一,直钱五;鸡母一,直钱三;鸡雏三,直钱一。

凡百钱,买鸡百只。

问鸡翁、母、雏各几何?

这个问题就是著名的“百钱买百鸡问题”。

即:

现有100文钱,公鸡5文钱一只,母鸡3文钱一只,小鸡一文钱3只,要求:

公鸡,母鸡,小鸡都要有,把100文钱买100只鸡,买的鸡是整数。

问公鸡、母鸡和小鸡各几何?

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

forginrange(1,20):

formin_______:

forxinrange(3,98,3):

if_________and__________==100:

print("公鸡:

",g,"母鸡:

",m,"小鸡:

",x)

4.约瑟夫问题是个有名的问题:

N个人围成一圈,顺序为0,1,2,3,4,5,从0号这个人开始报数,报到2的将被杀掉,接下去重新开始报数,报到3的将被杀掉...以此类推,最后剩下一个,其余人都将被杀掉。

例如N=6,被杀掉的顺序是:

1,4,3,0,5;最后只剩下2这个人。

llist=

n=int(input(“请输入参与人数:

”))

foriinrange(0,n-1):

llist.append([i,i+1])

___________

___________

long=n

k=head

i=1

p=2

while(____):

ifi==p-1:

t=llist[k][1]

print(llist[t][0])#索引为t的删除

__________________

ift==head:

___________________

i=1

p+=1

long=long-1

k=llist[k][1]

______________

i+=1

print(llist[head][0])

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

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

6.请编写一个密码登陆系统,接收用户从键盘输入的密码和你自己的密码进行比对,如果正确就显示“恭喜你进入系统”如果不正确让用户重新输入,有三次机会。

7.利用for循环,分别计算1--100中奇数的和、偶数的和。

8.哥德巴赫在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”则结果显示_____

9.小明设计了一个可以输入日期得到当天是年度第几天的程序,请阅读程序,完成填空(闰年判断规则:

能被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______:

foriinrange(month-1):

tall_day+=f_run[i]

__________

else:

foriinrange(month-1):

tall_day+=f_run[i]

tall_day+=sun

print(day+"是当年的第"+str(tall_day)+"天")

(1)将程序横线处补充完整

(2)如输入“2020-4-19”为当年的第_____天。

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

11.猴子吃桃问题:

猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。

以后每天早上都吃了前一天剩下的一半零一个。

到第10天早上想再吃时,见只剩下一个桃子了。

求第一天共摘了多少。

12.求100以内素数。

13.地球绕太阳的运行周期为365天5小时48分46秒(合365.24219天),即一回归年。

公历的平年只有365天,比回归年短约0.2422天,每四年累积约一天,把这一天加于2月末(即2月29日),使当年的时间长度变为366天,这一年就是闰年。

判断某一年是否是闰年的方法是年份数能被4整除,但不能被100整除,或者年份数能被400整除。

以下是一段用于判断某一年是否是闰年的程序。

请将上面程序框中空格处的内容填写完整,其中①处填写代码注释

_________________________________________

14.程序编写

求1+22+32+……+1002的结果

_______________________________

_______________________________

_______________________________

_______________________________

input(“运行完毕,请按回车键退出...”)

15.完善代码并保存。

实现功能:

从键盘输入10个学生的测试成绩,输出最高分和最低分。

cj=[]

foriinrange(0,________):

x=float(input("请输入一个数"))

cj.append(________)

print(max(cj),min(________))

input("运行完毕,请按回车键退出...")

16.小明用Python语言写了一个货币兑换程序如下:

(1)参数currency指:

____________。

(2)该程序用了哪一种算法结构:

_____________。

(3)输出结果为“50$=325.25人民币”。

则代码应该如何编写:

____________。

17.辗转相除法,又称欧几里德算法,用于计算两个正整数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行划线处为__________。

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

19.某字符转置算法描述如下:

将字符串(均为大写字符)s依次转换为相对应的数值(字符A~Z对应数值1~26);

·转换后的数值以K个数据为一段,将n个待处理的数据依次分割成若干段(最后一段不足部分用0来补充);

每一段中K个数据与K*K转置矩阵进行乘法运算;

将乘法运算得到的每一个结果值除以26求余数,依次转换成相应字符(数值1~26对应字符A~Z),最后按原始字符串长度输出。

乘法运算规则如下:

第i个元素c(i)=第j个元素a(j)*转置矩阵第j行第i个元素b(t)的乘积之和(其中j=1,2…K)

例如:

字符串s=PYTHON,区块大小K=4,的转置过程如下:

(1)根据算法描述,上述示例中,字符“N”的相乘结果(即图中(★)处)为________。

(2)请在划线处填入合适代码。

PrivateSubCommandl_Click()

Dima(1To100)AsInteger´存储字符串,长度不超过100个字符

Dimb(1To100)AsInteger存储转置矩阵,长度不超过10*10

Dimc(1To100)AsLong

DimsAsString,tmpAsString

DimkAsInteger,tAsInteger,iAsInteger,jAsInteger

DimnAsInteger,mAsInteger,lensAsInteger

s=Textl.Text´在Textl中输入原始字符串

k=Val(Text2.Text)´在Text2中输入区块大小K

Randomize

Fori=1Tok^2

b(i)=Int(Rnd*9)+1

tmp=tmp十Str(b(i))

IfiModk=0Then

List2.AddItemtmp

tmp="".

EndIf

Nexti

lens=Len(s):

n=lens

Fori=1Ton

tmp=Mid(s,i,1)

①__________

Listl.AddItemStr(a(i))

Nexti

DoWhilenModk<>0

n=n十1

a(n)=0

Listl.AddItemStr(a(n))

Loop

Fori=1Ton

m=(i―1)Modk+1

t=1

Forj=②__________

c(i)=a(j)*b((m-1)*k+t)+c(i)

t=t+1

Nextj

Nexti

Fori=1Ton

List3.AddItemStr(c(i))

Nexti

s=″″

Fori=1Tolens

③__________

s=s+Chr(t+64)}

Nexti

Text3.Text=s´在Text3中输出转置后的字符串

EndSub

20.密码强度检测。

编写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(“弱”)

21.(项目情境)递归就是自己调用自己,它是设计和描述算法的一种有力工具,常常用来解决比较复杂的问题。

为求解规模为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)

22.学习了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.跳转结构

23.某餐馆近期推出“消费1000元及以上享受8折优惠,1000元以下享受每满100减15优惠”的活动。

以下Python程序段实现了生成顾客消费清单的功能,请补全①②③处代码。

defgs(n):

#字符串长度统一

iflen(n)>=5:

n=_____#取字符串的前5个字符

else:

n=n+""*(5-len(n))

returnn

r=1000;x=100;y=15;z=0.8#从系统中分别获取消费额度、满和减以及打折的数值

dis=["红烧排骨","香炸刀鱼","虾仁","菜心","米饭"]#某顾客所点菜品名称

num=[1,1,1,1,3]#某顾客所点菜品数量

mon=[46,45,68,16,1]#某顾客所点菜品单价

print("菜品名称","数量","小计")

_____

foriinrange(len(dis)):

print(gs(dis[i]),num[i],"",num[i]*mon[i])

s=s+num[i]*mon[i]

ifs>=r:

total=s*z

else:

______

print("消费合计:

",s)

print("应收现金:

",total)

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.小金同学学完了进制转换后,对课后的不同进制的加减法很是头疼,爱动脑筋的小金突发奇想,能不能用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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 少儿英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1