完整word版python入门精选题计算机二级考试可用0001.docx

上传人:b****7 文档编号:8734862 上传时间:2023-02-01 格式:DOCX 页数:20 大小:286.42KB
下载 相关 举报
完整word版python入门精选题计算机二级考试可用0001.docx_第1页
第1页 / 共20页
完整word版python入门精选题计算机二级考试可用0001.docx_第2页
第2页 / 共20页
完整word版python入门精选题计算机二级考试可用0001.docx_第3页
第3页 / 共20页
完整word版python入门精选题计算机二级考试可用0001.docx_第4页
第4页 / 共20页
完整word版python入门精选题计算机二级考试可用0001.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

完整word版python入门精选题计算机二级考试可用0001.docx

《完整word版python入门精选题计算机二级考试可用0001.docx》由会员分享,可在线阅读,更多相关《完整word版python入门精选题计算机二级考试可用0001.docx(20页珍藏版)》请在冰豆网上搜索。

完整word版python入门精选题计算机二级考试可用0001.docx

完整word版python入门精选题计算机二级考试可用0001

Python入门精选30题

1.输入一个三位整数,判断这个数是不是“所谓“水仙花

数”是指一个三位数,其各位数字立方和等于该数,例如:

153=1^3

+5八3+3八3,153就是水仙花数。

考点:

循环结构、分支结构

n二eval(inputO)

i=n

a二0

whilei:

a=a+(i%10)**3

i=i//10

ifa二二n:

printC'yes")

else:

pnnt(MnoM)

2.随机产生一个两位数的数字,然后用户输入一个两位数的数字,如果用户输入的数字与随机产生的数字完全相同(包括顺序),则输岀

奖励100分;如果用户输入的数字与随机产生的数字相同(不包括

顺序),则输出奖励50分;如果用户输入的数字与随机产生的数字有一位数相同,则奖励10分,如果都不相同,则输入没有奖励。

考点:

产生随机数、取出一个整数各位上的数.分支结构

importrandoma=random.randint(10,99)b=eval(inputO)al=a%10a2=a//10bl=b%10b2=b//10ifa==b:

printClOO1)

elifal==b2anda2==bl:

printC50')

elifal==blora2二二b2oral==b2ora2==bl:

printflO)

else:

printCO1)

3式中显示数字

(编写一个嵌套

for循环来显示下面

的输岀):

 

1

21

42I

8421

16S42I

32168421

0432ie•42I

128643?

”8a2

a=eval(input())foriinrange(a):

ifi==0:

考点:

循环结构、制表

forjin「ange(a・i):

printf,,end=,\t,)printcr,end=")forjinrange(a-i):

print('■|end='\t,)printO

elifi!

=0:

forkinrange(a・i):

print('',end=,\t')

forIinrange(0.i+l):

al=2**lprint(al1end='\t,)

foryinrange(i-l.-l,・1):

al=2**yprint(al.end=,\ti)forxinrange(a-i):

printf',end=,\t')printQ

e

yp>>r->

creditsorlicense\j

lortoremiormation.

RESTART:

C:

/Users/3tft/Desktoc./2.py

1248

12481632

624

1248136

1246163264⑵

248W3264

12481632

1248

a=evaiiinputuj

•n1rang*(a):

ifiss0:

forjtnrange(a-lj:

print(*,ends,\t')

printCL\end-)、forj仃ranse(a-f:

print(*,end=,\t'>

print0

ellfi!

-0:

forkinrange(a-f:

tprintC,end=,\t')t'x1range(0,i-1):

al-2**lprint(al.endB,\t*)fory「ranseCi-],-],-1):

al=2**yprint(al.ends,\t)forxInranBe(a-f:

tprintC,ends,\t')print0

 

4、如果一个素数可以写成2Ap-l的形式,其中p为一个正整数,那么这个数被称编写程序找出所有的p<=31的梅森素

考点:

素数、循环结构、分支结构

数。

defissushu(n):

k=l

foriinrange(2.n):

a二n/i

ifaHl==0:

k=0

returnFalse

ifk==l:

returnTrue

P=1

whilep<=31:

a二(2"p)-l

p+=l

ifissushu(a):

print(a,end二’*)

5.写一个函数计算下面

 

 

考点:

循环结构

defm(n):

S~1

m=0

whiles<=n

a=s

s=s+lm=m+(a/s)returnm

n二eval(inputO)print(m(n))

6、神奇的Collatz序列。

编写一个名为collatz的函数,它接收一

个名为number的整数参数,如果number是偶数,就打印

number//2,并返回该值。

否则打印3*number+l并返回。

同时编

写主程序,让用户输入一个整数,并不断地调用该函数(用第一次的

返回值做第二次的参数,以此类推),直到函数返回1.例如用户输

考点:

函数、循环结构.分支结构

入3则打印输出应为

10

5

16

8

4

2

1

defcollatz(number):

ifnumber^2==0:

a二number//2print(a)return(a)

else:

b二number*3+lprint(b)return(b)

number二eval(inputO)

while1:

number=collatz(number)

ifnumber==l:

break

7、一个数如果恰好等于它的除自身外的因子之和,这个数就称为“完

数'。

例如6二1+2+3,6是编写程序输出1至1000之间

的所有完数。

考点:

完数、print输出格式.循环结构.分支结构

defwanshu(n):

s=0

foriinrange(l,n):

a=n/iifaWl==0:

s=s+i

ifs二二n:

returnTrue

foriinrange(l,1001,l):

ifwanshu(i):

print(i£nd="*)

8、使用turtle绘制一(五角星的每个

太阳花:

importturtleturtlepensize(3)turtle.speed(lO)

turtle.colorCyellowWed*)turtle.beginJillOforiinrange(30):

turtle,colorCrecT)turtlepenupOturtle.goto(250,0)turtlependownOturtlecircle(lOO)

turtle.color(,,yellowM)turtlepenup()

turtlegoto(-125,-70*(3**0.5))

turtlependownO

turtle.circle(lOO)

turtlecolorCgreen*1)turtlepenup()

turtle.goto(125,-70*(3**0.5))turtlependownO

turtlecircle(lOO)

turtle.forward(lOO)turtle.right(165)turtle.forward(lOO)turtle.end.fillO

1*1=1

 

foriinrange(l.lO):

ifi==l:

printfl♦1=1")

else:

forjinrange(l.i+l):

print(j:

'*,,,i:

=,,,j*i,end=,,\r)#、广是制表符

printQ

>py-欢top/2py()&0)

□X

F乂

td

for

Ibranged.10):

1

If—】:

2

1

print("1•!

•!

*)

4

)ranteCl,KI):

printG・♦・1,\t")

print0

子,也称之为素因子(即将一个正整数分例如:

输入整

数为90,输出90=2*3*3*5•

n二eval(inputO)

p「int(n,end='=')

whilen:

foriinrange(2,n+1):

考点^循环结构求因子、分支结构、输出格式

a=n/i

ifaHl==Oanda!

=l:

print(i,end=,**)break

elifa%l==Oandint(a)==l:

print(i,end=")break

n=int(a)

12.从键盘输入整数n,。

例如瀚入n=5,输出如下:

12345

23451

34512

45123

51234

n=eval(inputO)

foriinrange(l,n+1):

forjinrange(i,n+l):

print(j,end=,\t,)ifi==l:

printO

ifi!

=l:

forkinrange(ljl):

print(k.end=,\t)printQ

考点:

循环结构、分支结构、制表

n=eval(input0?

foriinranged.n4l):

forjirrarse(l.n+1):

print(j,endc:

\t‘)

Ifi==l:

printOif1!

=1:

f:

rkir.range(1,i,1.':

prlr.t(k.end-*)printO

1

2

3

4

5

6

2

3

4

5

6

1

3

4

5

6

1

2

4

5

6

1

2

3

5

6

1

2

3

4

6

1

2

3

i

5

»>

6

13.素数是指一对差值为2的素数。

如3和5就是一对双素数。

写程序,输入正整数n,输出大于等于n的最小的

defissushu(n):

k=l

foriinrange(2fn):

a=n/iifaWl==0:

k=0

考点:

循环结构.分支结构、素数

 

returnFalse

ifk==l:

returnTrue

n二eval(inputO)

while1:

ifissushu(n)andissushu(n+2):

print(n,n+2.sep=')break

else:

n二n+1

14.反素数(逆向拼写的素数)是指一个将其逆向拼写后也是

例如"7和71都是素数,所以,27和71都是反素

数。

编写程序,输入一个正整数,显示大于该数的前10

考点:

函数:

素数、回文数

defissushu(n):

a二True

foriinrange(2,n):

if(n/i)%l==0:

a=FalsereturnFalseifa==True:

returnTrue

defnixiang(m):

m=str(m)

m=eval(m)

returnm

defnothuiwenshu(s):

s二str⑸

ifs==s[:

:

-l]:

returnFalse

else:

returnTruez=eval(inputO)s=0

whiles<10:

z=z+l

ifissushu(z)andissushu(nixiang(z))andnothuiwenshu(z):

s+=l

ifs<10:

print(乙end=**)

elifs==10:

print(乙end二J

15.

编写一个函数,计算一个

例如:

sumDigits(234)返回9(2+3+4)。

提示:

使用求余运算符%提取数字,而使用除号〃去掉提取出来的数字。

使用一个循环来反复提取和去掉每个数字,直到所有数字被提取完为止。

编写程序提示用户输入一个整数,然后显示这个整数所有数字的和。

考点:

函数.求各位上的数

defsumDigits(n):

s=0

while1:

a=n%10

s=s+an=n//10#取出各位上的数的循环方法

returns

n二eval(inputO)print(sumDigits(n))

16、通过键盘输入一串小写字母(2〜Z)组成的字符串,编写一个测试程序,(即在一个字符串中,如果遇到连续重复的字符只出现一次),然后输出处理后的字符串°例如:

strl=iaaabbccddaabbccddN9输出结果为:

"abcdabcd".

a二inputO

c=0考点:

字符串、列表

e=-l

k=list(a)

foriina:

e+=l

b=ord(i)

ifc==b:

k[e]='•

c=b

k=[xforxinkifx!

=*']

k=".]oin(k)#列表变字符串输岀形式print(k)

变形:

输入一个字符串a,你需要通过将字符串中连续的字母表示为:

字母+出

现次数的方式来压缩这个字符串。

例如MaabcccccaaaMffi缩输出成Ma2blc5a3Mo

x二inputO

S=1

c=x[O]#初始字母.从此开始缩减字母显示次数

SS二““#创建空字符串

foriinrange(l」en(x)):

ifx[i]==c:

s+=1ss+=c+str(s)

c=x[i]

s=1

ss+=c+str⑸号表示字符串连接print(ss)

17.编写下面的函数合并两个有序列表构成一个新的有序列表:

defmerge(listljist2):

编写测试程序提示用户输入两个有序列表,然后显示合

要求:

不允许使用系统提供的sort方法。

Ed

输入格式:

两个有序列表(列表元素之间空格分隔,结尾无空格,回车

考点:

函数、列表

换行输入下一个有序列表)

defmerge(listl,list2):

Iist3=listl+list2

Iist31=[]

forxinIist3:

x=int(x)

Iist31append(x)

Iist31=sorted(list31,reverse=False)returnIist31

al=inputObl=list(al.splitf*))a2=inputOb2=list(a2.splitC'))print(merge(bl,b2))

18.输入30个数,输出其

考点:

循环结构.列表与max函数

方法一

maxi二0

foriinrange(30):

x=eval(inputO)ifx>maxl:

maxi二xprint(maxl)

方法二

a=D

foriinrange(30):

x=eval(inputO)

a.append(x)

maxl=max(a)

print(maxl)

19x初始化一个小写英文字符串a和一个非负数b(0<=b<26),将a

中的每个小写换成字母表中比它大b。

这里将字母表的

z和a相连,如果超过了z就回到了a。

例如a二"cagy”,b二3,则输出:

考点:

字符串.Unicode码与ord.chr函数

fdjb.

a二inputO

b=eval(inputO)l=D

foriina:

x=chr(ord(i)+b)

ifx>'z':

x=chr(ord(i)+b-26)#如果超过了z就回到了a

l.append(x)

I二:

join(l)

print(l)

20、输入一个字符串a和一个正整数n,判断a中是否存在长度为n

如果存在,则输出YES,否则输出NO。

考点:

字符串及其索引的应用

a二inputOb=eval(inputO)c=len(a)o=0

foriinrange(c-b+l):

k=a[i:

i+b]

ifk二二k[二andlen(k)==b:

o=lprintCYES')

ifo==0:

printCNO)

21、N的阶乘定义为:

N!

=Nx(N-1)x……x2xl

请编写一个程序,输出N的十进制表示中0

开始现在给你N和K(0<=N<=10000,

二Kv二5),请你输出要求的数字(保证存在)。

例如:

N二5,K二2,则输出1

note:

(5!

=120);

N=8,K=3,结果为0

note:

(8!

=40320)

考点:

循环结构求阶乘.字符串索引.strip方法

N=eval(input())K=eval(inputO)jiecheng=lifN>1:

foriinrange(l.N+l,l):

jiecheng二jiecheng*ix=jiechengw=str(jiecheng)w^w.rstripfO*)

w=w[:

:

k=w[K-l]print(k)

22、编写函数defrepeat(string,n,delim):

返回string重复n次的字符串,并且使用字符串delim分隔。

例如,

repeat(uhoH,3,T)返回“ho,ho,ho”

defrepeat(string.n.delim):

X二""

foriinrange(n):

x=x+string+delim

returnx

string二inputO

n二eval(inputO)delim二input。

print(repeat(stringrn,delim))

考点:

循环结构、字符串.函数

23、编写函数defmerge(a,b),合并两个列表,其中元素交替来自

于两个列表。

如果一个列表比另一个短,则把短的处理完,然后追加

长列表中的剩余元素。

defmerge(a.b):

c=D

ll=len(a)

I2=len(b)

ifI1==I2:

foriinrange(ll):

c.append(ap])cappend(b[i])elifll

foriinrange(ll):

c.append(ap])cappend(b[i])c=c+(bp+i:

])elifll>l2:

foriinrange(l2):

cappend(a[i])c.append(b[i])

考点:

循环结构.列表及其内置函数、函数

优化答案

defmerge(atb):

I=o

foriinrange(min(len(a).len(b))):

l.append(a.pop(0))#把列表a开头第一个元素删除并将返回值添加到列表I中

l.append(b.pop(0))

l.extend(a)#把列表a添加到列表I的尾部

Iextend(b)

returnI

 

c=c+(a[i+l:

])returnc

24、有1、2、3、4个数字,能组成多少个互不相同且无重复数字的

三位数?

都是多少?

foriinrange(l,5):

forjinrange(l,5):

forkinrange(1.5):

ifi!

=kandi!

=jandj!

=k:

print(i,j,k)

25、一球从100米髙度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?

第10次反弹多髙?

defjianban(n):

n二n/2

returnn

a=eval(input(Mi»输入高度:

”))b=eval(inputCit输入落地次数:

J)

e二a

#反弹高度

foriinrange(b):

a=jianban(a)

#路程

ifb==l:

c=a

elifb==2:

c=2*c

elifb>2:

forjinrange(0.b-2.1):

c二c+jianban(d)

d=jianban(d)

c=c+e

print(”经过:

c,”米第:

b,”次反弹'a”米:

sep=““)

26、最大公约数和最小公倍数的计算。

从键盘接收两个整数,编写程序求出这两个整数的最大公约数和最小公倍数(两个数的乘积等于这两个数的最大公约数与最小公倍数的积。

即(a,b)x[a,b]=axb)

#求最大公约数

a=eval(inputO)

b=eval(inputO)

c=min(a,b)

ys=D

k=0

foriinrange(2,c+l):

if(a/i)%l==Oand(b/i)Wl==0:

ys.append(i)

k=l

ifk==0:

maxyueshu^l

else:

maxyueshu=max(ys)

print(maxyueshu)

#求最小公倍数

minbeishu=(a*b)/maxyueshu

print(MHdM%minbeishu)

27、将1,2,…,9共9个数分成三组,分别组成三个三位数,且使这三个三位数构成1:

2:

3的比例,试求出所有满足条件的三个三位数。

例如:

三个三位数192,384,576满足以上条件。

foriinrange(100,1000):

a=2*i

b=3*i

if100

print(i.a,b,sep=,')

28、若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数。

例如:

给定一个10进制数56,将56加56(即把56从右向左读),

得到121是一个回文数。

又如:

对于10进制数87:

STEP2:

165+561

STEP4:

1353+3531

上例最少用了4步得

STEP1:

87+78=165

=726

STEP3:

726+627=1353

=4884

在这里的一步是指进行了一次N进制的加法,

到回文数4884。

defishui(n):

n=str(n)

ifn==n[:

:

-l]:

returnTrue

else:

returnFalse

defm(n):

n二str(n)

n=n[:

-l]

n=eval(n)

returnn

N=eval(inputO)

if2<=N<=10:

N=N

else:

N=16

M=eval(inputO)

ifN!

=10:

M=str(M)

M=int(M.N)#将一个任意进制的数转化为十进制数

M=int(M)

cn=0

whilenotishui(M):

M=M+ni(M)

c

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

当前位置:首页 > 初中教育

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

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