国家二级Python(基本编程题)模拟试卷2(题后含答案及解析)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
国家二级Python(基本编程题)模拟试卷2(题后含答案及解析) 全部题型 2. 基本编程题
基本编程题
1.从键盘输入一个汉字,在屏幕上显示输出该汉字的Unicode编码值,请完善代码。
#请输入一个汉字:s=input( )print(‘‘\’’{}\’’汉字的Unicode编码:{}’’.format(①))
正确答案:s=input(‘‘‘‘)print(‘‘\’’{}、’’汉字的Unicode编码:{}’’.format(s,ord(s)))
2.从键盘输入两个数(换行),调用函数gcd( )输出两个数的最大公约数显示在屏幕上。
请完善代码。
def gcd(x,y):if x①x=yy=rreturn y#输入第一个正整数:a=eval(input( ))#请输入第二个正整数:b=eval(input( ))gcdab=gcd(a,b)print(‘‘{}与{}的最大公约数是{}’’.format(a,b,②))
正确答案:def gcd(x,y):if x<y:x,y=y,xwhile x%y!=0:r=x%yx=yy=rreturn ya=eval(input(‘‘‘‘))b=eval(input(‘‘‘‘))gcdab=gcd(a,b)print(‘‘{}与{}的最大公约数是{}’’.formatf a.b.gcd(a b)))
3.从键盘输入一个列表,计算输出列表元素的平均值。
请完善代码。
def mean(numlist):s=0.0for num in numlist:s=s+numreturn ①#请输入一个列表:ls=eval(input( ))print(‘‘平均值为:’’,②)
正确答案:def mean(numlist):s=0.0for num in numlist:s=s+numreturn s/len(numlist)ls=eval(input(‘‘‘‘))print(‘‘平均值为:’’,mean(ls))
4.从键盘输入3个数作为三角形的边长,在屏幕上显示输出由这3个边长构成三角形的面积(保留2位小数)。
请完善代码。
a,b,c=eval(input( ))P=(a+b+c)/2area=pow(p*(p-a)?(p-b)*(p-c),0.5)print(①)
正确答案:a,b,c=eval(input( ))P=(a+b+c)/2area=pow(p*(p-a)*(p-b)*(p -c),0.5)print(‘‘{:.2f}’’.format(area))
5.将一个列表中所有的单词首字母转换成大写。
请完善代码。
ls=eval(input( ))for i in range(len(ls)):ls[i]=①print(ls)
正确答案:ls=eval(input( ))for i in range(len(ls)):ls[i]=ls[i].capitalize( )print(ls)
6.从键盘输入一个列表,计算输出列表元素的均方差。
请完善代码。
def
mean(numlist):s=0.0for Rum in numlist:s=s+numreturn s/len(numlist)def dev(numlist,mean):sdev=0.0for num in numlist:sdev=sdev+(num—mean)**2return(sdev/(len(numlist)一1))**0.5#输入一个列表:ls=eval(input(‘‘‘‘))print(‘‘均方差为:{:.2f}’’.format(①))
正确答案:def mean(numlist):s=0.0for num in numlist:s=s+numreturn s/len(numlist)def dev(numlist,mean):sdev=0.0for num in numlist:sdev=sdev+(num —mean)**2return(sdev/(len(numlist)一1))**0.5ls=eval(input(‘‘‘‘))print(‘‘均方差为:{:.2f}’’.format(dev(ls,mean(ls))))
7.输入字符串,使用中文分词库输出精确模式的中文分词结果。
请完善代码。
import jiebaTempstr=input( )Is=①print(ls)
正确答案:import jiebaTempstr=input( )ls=jieba.lcut(Tempstr)print(ls)
8.若某自然数除它本身之外的所有因子之和等于该数,则称该数为完数。
输出1000以内的完数。
请完善代码。
for i in range(2,1001):#此段代码请完善
正确答案:for i in range(2,1001):s=ifor j in range(1,i):if i%j==0:s一=jif s==0:print(i)
9.输入一个自然数n,如果n为奇数,输出表达式1+1/3+…+1/n的值;如果n为偶数,输出表达式1/2+1/4+…+1/n的值;输出表达式结果保留2位小数。
请完善代码。
deff(n):①if②:for i in range(1,n+1,2):sum+=1/ielse:for i in range(2,n+1,2):sum+=1/ireturn sumn=int(input( ))print(③)
正确答案:def f(n):sum=0.0if n%2==1:for i in range(1,n+1,2):sum+:1/ielse:for i in range(2,n+1,2):sum+=1/ireturn sumn=int(input( ))print(‘‘{:.2f}’’.format(f(n)))
10.输出字典fruits中键值最大的键值对。
请完善代码。
fruits={‘‘apple’’:10,’’mango’’:12,’’durian’’:20,’’banana’’:5}m=‘apple’for key in fruits.keys( ):#此段代码请完善print(‘{}:{}’.format(m.fruits[m]))
正确答案:fruits={‘‘apple’’:10,’’mango’’:12,’’durian’’:20,’’banana’’:5}m=‘apple’for key in fruits.keys( ):if fruits[m]<fruits[key]:m=keyprint(‘{}:{}’.format(m,fruits[m]))
11.获得用户的输入当作填充符号,以30字符宽居中输出PYTHON字符串。
请完善代码。
a=input(‘‘请输入填充符号:’’)s=‘‘PYTHON’’print(‘‘{①}’’.format(②))
正确答案:print(‘‘{0:{1}∧30}’’.format(s,a))
12.获得用户的输入当作宽度,以*作为填充符号右对齐输出PYTHON字符串。
请完善代码。
w=input(‘‘请输入输出宽度:’’)s=‘‘PYTHON’’print(‘‘{①}’’.format(②))
正确答案:print(‘‘{0:*>{1}}’’.format(s,w))
13.获得用户的输入当作对齐模式,用户输入:左、右、中,分别表示:左对齐、右对齐和居中对齐,以*作为填充符号,30字符宽度输出PYTHON字符串。
请完善代码。
m=input(‘‘请输入对齐模式:’’)s=‘‘PYTHON’’if in==‘‘右’’:m=‘‘>‘‘elif m==‘‘中’’:m=‘‘∧’’else:m=‘‘}’’.format(②))
正确答案:print(‘‘{0:*{1}30}’’.format(s.m))
14.获得用户输入的一个数字,增加数字的千位分隔符,以30字符宽度居中输出。
请完善代码。
n=input(‘‘请输入数字:’’)print(‘‘{①}’’.format(②)) 正确答案:print(‘‘{:∧30,}’’.format(eval(n)))
15.获得用户输入,无论输入内容多少,以30字符宽度居中输出其中最多前10个字符,如果不足10个字符,则全部输出。
请完善代码。
s=input(‘‘请输入信息:’’)print(‘‘{①}’’.format(②))
正确答案:print(‘‘{:∧30.10}’’.format(s))
16.获得用户输入的一个数字,以30字符宽度右对齐输出,保留小数点后3位。
请完善代码。
n=input(‘‘请输入一个数字:’’)print(‘‘{①}’’.format(②)) 正确答案:print(‘‘{:>30.3f}’’.format(eval(n)))
17.获得用户输入的一个整数,以30字符宽度居中输出其十六进制大写形式,大十六进制形式不包含前导符0X。
请完善代码。
n=input(‘‘请输入一个整数:’’)print(‘‘{①}’’.format(②))
正确答案:print(‘‘{:∧30X}’’.format(eval(n)))
18.获得用户输入的一个字符串,统计中文字符的个数。
基本中文字符的Unicode编码范围是:4E00~9FA5。
请完善代码。
s=input(‘‘请输入:’’)count=0for ①in s:if②:count+=1print(count)
正确答案:s=input(‘‘请输入:’’)count=0for c in 8:if 0x4e00<=ord(c)<=0x9fa5:count+=1print(count)
19.获得用户输入的一个整数,一行输出以该整数作为Unicode开始并逐一递增的10个字符。
请完善代码。
n=input(‘‘请输入一个整数:’’)for i in range(①):
print(②)
正确答案:n=input(‘‘请输入一个整数:’’)for i in range(10):print(chr(eval(n)+i),end=‘‘‘‘)
20.获得用户输入的一个整数,一行输出以该整数作为Unicode开始并逐一递减的10个字符。
请完善代码。
n=input(‘‘请输入一个整数:’’)for i in range(①):print(②)
正确答案:n=input(‘‘请输入一个整数:’’)for i in range(10):print(chr(eval(n)一i),end:’’’’)
21.获得用户输入的一个字符串,输出每个字符对应的UniCode值,这些值一行输出,采用逗号分隔,最后没有逗号。
请完善代码。
s=input(‘‘请输入一个字符串:’’)ls=[]for c in s:①print(②)
正确答案:s=input(‘‘请输入一个字符串:’’)ls=[]for c in s:ls.append(str(ord(c)))print(‘‘,’’.join(ls))
22.获得用户输入的一个字符串,去除字符串两侧出现的a~z共26个小写字母,并打印输出结果。
请完善代码。
s=input(‘‘请输入一个字符串:’’)print(①)
正确答案:s=input(‘‘请输入一个字符串:’’)print(s.strip(‘‘abcdefghijklmnopqrstuvwxyz’’))
23.获得用户输入的一个字符串,将其中所有英文字符变成小写,并打印输出结果。
请完善代码。
s=input(‘‘请输入一个字符串:’’)print(①) 正确答案:s=input(‘‘请输入一个字符串:’’)print(s.lower( ))
24.获得用户输入的一个中文字符串,将所有中文字符替换为其Unicode 编码值小3的字符,并在一行内打印输出结果。
请完善代码。
S=input(‘‘请输入一个中文字符串:’’)for ①in s:print(②)
正确答案:s=input(‘‘请输入一个中文字符串:’’)for c in s:print(chr(ord(c)一3),end=‘‘‘‘)
25.获得用户输入的一个字符串,将字符串循环左移1位输出。
请完善代码。
s=input(‘‘请输入一个字符串:’’)print(①)
正确答案:s=input(‘‘请输入一个字符串:’’)print(s[1:]+s[0])
26.获得用户输入的一个字符串,将字符串逆序输出。
请完善代码。
s=input(‘‘请输入一个字符串:’’)print(①)
正确答案:s=input(‘‘请输入一个字符串:’’)print(s[::一1])
27.获得用户输入的一个数字N,计算并输出2的Ⅳ次幂结果的后10位。
请完善代码。
s=input(‘‘请输入一个整数:’’)print(①)
正确答案:s=input(‘‘请输入一个整数:’’)print(pow(2,eval(s),pow(10,10)))
28.获得用户输入的一个数字N,计算并输出N平方结果的长度。
请完善代码。
n=input(‘‘请输入一个整数:’’)print(②)
正确答案:n=input(‘‘请输入一个整数:’’)print(len(str(eval(n)**2)))
29.获得用户输入的一个数字N,计算并输出1000/N的结果,如果计算产生异常,要求用户重新输入数字N。
请完善代码。
while True:n=input(‘‘请输入一个整数:’’)try:print(①)②except:pass
正确答案:while True:n=input(‘‘请输入一个整数:’’)try:print(1000/eval(n))breakexcept:pass
30.获得用户输入的一个数字,替换其中0~9为中文字符“O一二三四五六七八九”,输出替换后结果。
请完善代码。
n=input(‘‘请输入一个数字:’’)s=‘‘O 一二三四五六七八九’’for c in’’0123456789’’:n=①print(n)
正确答案:n=input(‘‘请输入一个数字:’’)s=‘‘O一二三四五六七八九’’for c in’’0123456789’’:n=n.replace(c,s[eval(c)])print(n)。