试题NCTPython编程三级模拟卷4含答案程序填空阅读填空程序试题.docx

上传人:b****7 文档编号:25366829 上传时间:2023-06-07 格式:DOCX 页数:39 大小:1.39MB
下载 相关 举报
试题NCTPython编程三级模拟卷4含答案程序填空阅读填空程序试题.docx_第1页
第1页 / 共39页
试题NCTPython编程三级模拟卷4含答案程序填空阅读填空程序试题.docx_第2页
第2页 / 共39页
试题NCTPython编程三级模拟卷4含答案程序填空阅读填空程序试题.docx_第3页
第3页 / 共39页
试题NCTPython编程三级模拟卷4含答案程序填空阅读填空程序试题.docx_第4页
第4页 / 共39页
试题NCTPython编程三级模拟卷4含答案程序填空阅读填空程序试题.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

试题NCTPython编程三级模拟卷4含答案程序填空阅读填空程序试题.docx

《试题NCTPython编程三级模拟卷4含答案程序填空阅读填空程序试题.docx》由会员分享,可在线阅读,更多相关《试题NCTPython编程三级模拟卷4含答案程序填空阅读填空程序试题.docx(39页珍藏版)》请在冰豆网上搜索。

试题NCTPython编程三级模拟卷4含答案程序填空阅读填空程序试题.docx

试题NCTPython编程三级模拟卷4含答案程序填空阅读填空程序试题

试题NCT-Python编程三级-模拟卷4(含答案程序填空阅读填空程序试题

一、程序填空

1.广场上有许多(有数百人)小朋友在玩分组游戏,当他们分成三人一组时,发现最后多出两个;当他们分成五人一组时,发现最后多出三个;当他们分成七人一组时,发现最后多出两个。

编写程序求出这些小朋友的可能人数。

实现上述功能的程序如下,请在程序划线处填入合适的代码。

________

a=[]

foriinrange(100,1000):

if_____________:

a.append(i)

total+=1

print("这群小朋友总的人数有:

")

forjinrange(len(a)):

print(____,end='、')

print('')

print('可能情况数为:

',total,'种')

划线处①处应该填入的语句为:

划线处②处应该填入的语句为:

划线处③处应该填入的语句为:

2.程序编写

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

_______________________________

_______________________________

_______________________________

_______________________________

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

3.阅读程序。

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

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

例如:

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无法取到的数值是________。

4.阅读程序。

分析条件语句的代码并回答问题。

(1)如果不能使用int()函数,那么变量s的类型将会变成______。

(2)如果你的期末成绩是85,你得到的评价将会是____________。

(3)如果你的期末成绩是55,你得到的评价将会是____________。

(4)如果你得到的评价是“还可以再提升”,你的期末成绩应该在_____和______之间。

(5)“程序中出现的所有else都可以替换为elif,程序效果一样”,这种说法是____(填“对”或“错”)的。

5.阅读程序。

分析下列切片相关程序并回答问题。

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的输出结果是______________。

6.调试程序。

请阅读以下程序并写出运行结果。

fruites=['banana','apple','mango']

forfruitinfruites:

print(fruit)

a=len(fruites)

print('a=',a)

_________________

7.程序分析题

学校举行校园歌手大赛,评委由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步。

请填写片段中空白处的表达式填写完整________

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

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])

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

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

10.求50以内所有5的倍数的和。

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

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

13.程序设计:

键盘输入任意的正整数,程序输出与其相应的二进制数。

代码如下:

n=int(input("请输入一个十进制数:

"))

result=[]

whilen>0:

result.append(①)

n=②

result.reverse()

foriinresult:

print(i,end=”)

(1)程序代码中①处正确的代码是(_______)。

A.n%2B.n/2C.n//2D.n*2

(2)程序代码中②处可能的代码是(_______)。

A.n%2B.n/2C.n//2D.n*2

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.地球绕太阳的运行周期为365天5小时48分46秒(合365.24219天),即一回归年。

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

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

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

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

_________________________________________

16.一家商场在降价促销,如果购买金额不高于200元,会给10%的折扣,如果购买金额高于200元,会给20%的折扣。

编写一个Python程序,输入消费额(整数),显示折扣后的应付金额。

17.小王编写了“字符串缩写”程序,实现如下功能:

1.输入一串由英文字母和数字组成的字符串,

2.如果字符串有连续字符构成的升序段(后面字符的ASCII值比前面的字符的ASCII值大1),则把升序段缩写成由第一个字符加上“—”和最后一个字符组成的新字符段,

3.例如:

字符串为“abcdf12345becomexy”,则缩写成“a-df1-5becomex-y”。

程序运行时,输入一串字符,输出缩写的字符串,程序运行效果如下图所示:

实现上述功能的程序如下,请在程序划线处填入合适的代码。

s=input("请输入字符串s:

")

_______

flag=False

result=""

foriinrange(0,k-1):

if___________________:

result=result+s[i]+"-"

flag=True

eliford(s[i])!

=ord(s[i+1])-1:

result=result+s[i]

_____

result=result+s[i+1]

print("缩写后的字符串为:

",result)

划线处①处应该填入的语句为:

划线处②处应该填入的语句为:

划线处③处应该填入的语句为:

18.完善程序实现以下功能并保存。

输入一元二次方程的系数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("运行完毕,请按回车键退出...")

19.完善程序实现以下功能并保存。

输出数组的最大值。

arr1=[12,435,76,24,78,54,866,43]

________=-32768

foriinrange(0,7):

ifarr1[i]>max1:

max1=________

print("最大值是:

",________)

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

20.某品牌手机第一年销量为20000台,假设平均每年的销量比上一年增加68%,请问几年后能使总销量达到60000台。

下面的程序能实现上述的功能,请将缺失的代码补充完整。

total=every_year=20000

year=1

while__________________:

every_year+=____________

total+=every_year

year+=1

print(year)

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

将字符串(均为大写字符)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

22.现今信息化时代,信息的传输十分迅速,足不出户便知天下事。

许多社交平台都有设置本平台的热点排行榜,方便用户了解正在发生的热门事件。

但社交平台数量众多,平台用户种类和数量也大不相同,导致不同平台热点的实际热度大小也不同。

小钟为了确保自己知道的热点是真正的热点,于是打算用功能强大的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)

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.若两个素数之差为2,则该对素数称为双胞胎数,如3,5就是一对双胞胎数。

编写python程序,实现如下功能:

输入n的值,统计显示n以内的所有双胞胎数。

程序运行界面如图所示:

实现上述功能的程序如下,请在划线处填入合适的代码。

importmath

defisprime(x):

______

foriinrange(2,int(math.sqrt(x))+1):

ifx%i==0:

f=False

returnf

n=int(input("请输入一个正整数n:

"))

c=0

k=3

whilek<=n-2:

ifisprime(k)and______________:

c+=1

print("第"+str(c)+"对双胞胎数:

",k,'和',k+2)

_______

print("共有"+str(c)+"对双胞胎数")

划线处①处应该填入的语句为:

划线处②处应该填入的语句为:

划线处③处应该填入的语句为:

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.若两个素数之差为2,则该对素数称为双胞胎数,如3,5就是一对双胞胎数。

编写python程序,实现如下功能:

输入n的值,统计显示n以内的所有双胞胎数。

程序运行界面如图所示:

实现上述功能的程序如下,请在划线处填入合适的代码。

defisprime(x):

foriinrange(2,x):

if①__________:

re

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

当前位置:首页 > 高等教育 > 哲学

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

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