Python全国计算机等级考试(2021)
⽬录
第⼆章Python语⾔基本语法元素
1.获得⽤户输⼊的⼀个整数N,计算并输出N的32次⽅。
N=eval(input("请输⼊⼀个整数N:"))
print(N**32)
2.获得⽤户输⼊的⼀段⽂字,将这段⽂字进⾏垂直输出。
str=input("请输⼊⼀句话:")
n=len(str)
for i in range(n):
print(str[i])
3.获得⽤户输⼊的⼀个合法算式,例如1.2+3.4,输出运算结果。
print(eval(input("请输⼊⼀个合法算式:")))
4.获得⽤户输⼊的⼀个⼩数,提取并输出其整数部分。
num=eval(input("请输⼊⼀个⼩数:"))
print(int(num))
5.下⾯这段代码能够获得⽤户输⼊的⼀个整数N,计算并输出1到N相加的和。然⽽,这段代码存在多处语法错误,请指出错误所在并纠正。
n=eval(input("请输⼊整数N:"))
sum=0
for i in range(n):
sum+=i+1
print(n)
print("1到N求和结果:{}".format(sum))
第三章基本数据类型
编程题
1.获得⽤户输⼊的⼀个整数,输出该整数百位及以上数字。
num=input('请输⼊⼀个整数:')
if len(num)<3:
print('该整数⽆百位及以上的数字')
else:
print(num[:-2])
2.获得⽤户输⼊的⼀个字符串,将字符串按空格分割,然后逐⾏打印出来。
n=" ".join(str)
for i in n:
print(i)
3.程序读⼊⼀个表⽰星期⼏的数字(1-7),输出对应的星期字符串名称。例如:输⼊3,返回“星期三”。
day=eval(input("请输⼊星期⼏的数字(1-7):"))
week=["星期⼀","星期⼆","星期三","星期四","星期五","星期六","星期⽇"]
print(week[day-1])
4.设n是⼀个⾃然数,如果n的各位数字反向排列所得的⾃然数与n相等,则被称为回⽂数。从键盘输⼊⼀个5位数字,请编写程序判断这个数字是不是回⽂数字。
num=input("请输⼊任意⼀个5位数:")
if num[0]==num[4] and num[1]==num[3]:
print("这个数字是回⽂数")
else:
print("这个数字不是回⽂数")
或者
num=input("请输⼊任意⾃然数:")
n=num[::-1]
if num==n:
print("这个数字是回⽂数")
else:
print("这个数字不是回⽂数")
5.输⼊⼀个⼗进制整数,分别输出其⼆进制、⼋进制、⼗六进制字符串。
num=eval(input("请输⼊⼀个⼗进制整数:"))
print("⼗进制{0}转换为⼆进制数为{0:b},转换为⼋进制数为{0:o},\
转换为⼗六进制数为{0:x}".format(num,))
第四章程序的控制结构
1.输⼊⼀个年份,输出是否为闰年。#闰年条件,能被4整除但不能被100整除,或者能被400整除的年份都是闰年。
year=eval(input("请输⼊⼀个年份:"))
if year % 4 == 0 and year % 100 != 0:
print("{}是闰年".format(year))
elif year % 400 == 0:
print("{}是闰年".format(year))
else:
print("{}不是闰年".format(year))
2.最⼤公约数计算。获得两个整数,求出这两个最⼤整数的最⼤公约数和最⼩公倍数。最⼤公约数的计算⼀般使⽤辗转相除法,最⼩公倍数则使⽤两个数的乘积除以最⼤公约数。
b=int(input("请输⼊第⼆个数:"))
m=max(a,b)
n=min(a,b)
while m%n!=0:
m,n=n,m%n
print("两个数字的最⼤公约数为{}".format(n))
print("两个数字的最⼩公倍数为{}".format(a*b/n))
3.统计不同字符个数。⽤户从键盘键⼊⼀⾏字符,编写⼀个程序,统计并输出其英⽂字符、数字、空格和其他字符的个数。
str=input("请输⼊⼀⾏字符:")
m=n=o=p=0
for c in str:
if "a"<=c<="z" or "A"<=c<="z":
m+=1
elif "0"<=c<="9":
n+=1
elif c==" ":
o+=1
else:
p+=1
print("英⽂字符个数为{},数字字符个数为{},\
空格字符个数为{},其他字符个数为{}".format(m,n,o,p))
4.猜数字游戏续。当⽤户输⼊的不是整数(如字母、浮点数等)时,程序会终⽌执⾏退出。改编题⽬1中的程序,当⽤户输⼊错误时给
出“输⼊内容必须为整数!”的提⽰,并让⽤户重新输⼊。
import random
targe=random.randint(1,1000)
count=0
while True:
try:
guess=eval(input("请输⼊⼀个整数:"))
except:
print("输⼊内容必须为整数")
continue
count+=1
if guess>targe:
print("猜⼤了")
elif guess<targe:
print("猜⼩了")
else:
print("猜对了")
break
print("此轮的猜测次数是:",count)
5.⽺车门问题。有三扇关闭的门,⼀扇门后⾯停着汽车,其余门后是⼭⽺,只有主持⼈知道每扇门后⾯
是什么。参赛者可以选择⼀扇门,在开启它之前,主持⼈会开启另⼀扇门,露出门后的⼭⽺,然后允许参赛者更换⾃⼰的选择。请问:参赛者更换选择后能否增加猜中汽车的机会?这是⼀个经典问题。请使⽤random库对这个随机事件进项预测,分别输出参赛者改变选择和坚持选择获胜的概率。
times=1000      #实验次数
guess_1_count=0              #改变的⼈猜中的次数
guess_2_count=0              #坚持的⼈猜中的次数
for i in range(times):
car=random.randint(1,3)
guess=random.randint(1,3)
if guess==car:                          #坚持选择的⼈始终选中的是车
guess_2_count+=1
if guess!=car:                          #改变选择的⼈能选中说明最开始选中的不是车
guess_1_count+=1
print("坚持选择获胜的概率为{:.1%}".format(guess_2_count/times))
print("更换选择获胜的概率为{:.1%}".format(guess_1_count/times))
第五章函数和代码复⽤
1.实现isNum()函数,参数为⼀个字符串,如果这个字符串属于整数、浮点数或复数的表⽰,则返回True,否则返回False。
def isNum(x):
try:
x=eval(x)
if type(x)==type(1) or type(x)==type(1.1) or type(x)==type(1+1j):
return True
else:
return False
except:
return False
x=input("请输⼊⼀个字符串:")
print(isNum(x))
2.实现isPrime()函数,参数为整数,要有异常处理。如果整数是质数,返回True,否则返回False。
def isPrime(x):
while True:
try:
x=eval(x)
while type(x)!=int or x<=1:
x=eval(input("输⼊的不是⼤于1的整数!请重新输⼊:"))
if x==2:
return True
for i in range(2,x):
if  x%i==0:
return False
else:
return True
break
except:
x=input("输⼊的不是⼤于1的整数!请重新输⼊:")
continue
x=input("请输⼊的⼀个⼤于1的整数:")
print(isPrime(x))
3.编写⼀个函数计算传⼊字符串中数字、字母、空格以及其他字符的个数。
a=b=c=d=0
for i in str:
if "0"<= i <="9":
a+=1
elif "a"<= i <="z" or "A"<= i <="Z":
b+=1
elif i==" ":
c+=1
else:
d+=1
print("数字{}个,字母{}个,空格{}个,其他字符{}个".format(a,b,c,d))
str=input("请输⼊⼀段字符串:")
num(str)
4.编写⼀个函数,打印200以内的所有素数,以空格分隔。
def n(x):
for i in range(2,x):
n=True
for j in range(2,i):
if i%j==0:
n=False
if n:
print(i,end=" ")
n(200)
5.编写⼀个函数,参数为⼀个整数n。利⽤递归获取斐波那契数列中的第n个数并返回。
def Fib(n):
if n==1 or n==2:
return 1
else:
return Fib(n-1)+Fib(n-2)
n=eval(input("请输⼊整数:"))
计算机语言排行榜2021
print(Fib(n))
第六章组合数据类型
1.英⽂字符频率统计。编写⼀个程序,对给定字符串中出现的a~z字母频率进⾏分析,忽略⼤⼩写,采⽤降序排列。
str=input("请输⼊⼀段字符串:")
a=str.lower()
b={}
for i in a:
if "a"<=i<="z":
b[i]=b.get(i,0)+1
c=list(b.items())
c.sort(key=lambda x:x[1],reverse=True)                    #对⼆维数据进⾏降序排列
for i in range(len(c)):
character,count=c[i]
print("{0:<3}{1:>5}".format(character,count))
2.中⽂字符频率统计。编写⼀个程序,对给定字符串中出现的全部字符(含中⽂字符)频率进⾏分析,采⽤降序⽅式排列。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。