内容发布更新时间 : 2025/7/23 1:22:47星期一 下面是文章的全部内容请认真阅读。
f(h=7) f(a=3) 答案:1 2 3 2 1 7 错误
24. 阅读程序,打印结果是
def sort(number1,number2): if number1
n1,n2=sort(3,2) print('n1 is ',n1) print('n2 is ',n2) 答案:n1 is 2 n2 is 3
25. 阅读程序,打印结果是 10 60 def demo(m, n): if m>n:
m, n = n, m p = m*n while m!=0: r = n%m n = m m = r return (n,p//n) print( demo(20, 30))
三、程序填空题
1. 下面代码的功能是,随机生成50个介于[1,20]之间的整数,然后统计每个整数出现频率。请把
缺少的代码补全。 import random
x = [random.____________(1,20) for i in range(_______)] r = dict() for i in x:
r[i] = r.get(i, _____)+1 for k, v in r.items():
print(k, v) 答:
分别填写randint、50、0
2. 生成包含1000个随机字符的字符串,然后统计前20个高频字符,最后以15个位左对齐输出高
频字符,以5个位右对齐输出个数。请把缺少的代码补全。
import random
x = string.ascii_letters + string.digits + string.punctuation y = [ for i in range(1000)] d = dict()
for ch in y:
d[ch] = d.get(ch, 0) + 1
items=list(d.items())
items.sort( ,reverse=True) for i in range(20):
word,count = items[i]
print( %(word,count))
答案:import string 、 random.choice(x) 、key= lambda x:x[1]、“%-15s]”
3. 用户输入5,打印如右图字符金字塔图形,请补全代码: n=input('输入行数:') for i in range(1,n+1):
print( ,end=‘ ') for j in range(1,2*i):
print('&', ) print()
答案:n=int(n),' '*(n-i),end=''
4. 质因数分解,如输入60,则得到60 = 2 * 2 * 3 * 5. 请补全代码: x=eval(input(\请输入小于1000的整数:\)) k=2
while x>1:
if : print(k,end=\) x = x//k if x >1:
print(\,end=\) else:
答案:print(x,\,end=\),x % k==0 ,k += 1
5. 验证哥德巴赫猜想:一个大于等于6的偶数可以表示为两个素数之和,请补全代码。 import math
x=eval(input(“输入一个数”))
while x<6 or x%2==1: #大于6的偶数 x=eval(input(“输入一个数”))
for n1 in :
m1=int(math.sqrt(n1)+1)
for i in range(2,m1): #2-sqrt(n1) if : break else:
m2=math.ceil(math.sqrt(n2)+1) for j in range(2,m2):
if n2%j==0 and j
else:
print(x,'=',n1,'+',n2)
答案:range(3,x//2,2),n1%i==0, n2=x-n1, break 6. 右对齐九九乘法表,请补全代码:
for i in range(1,10):
s1=str(i)+'×'+str(j)+'='+str(i*j) print( )
print()
答案:for j in range(1,i+1):,'%8s'%(s1),end=''
7. 输出右边图形,请补充程序:
for i :
print((‘ *’*(2*i-1)).center(30)) for i in range(6, 0, -1):
print( )
答案:in range(6);(' *‘(2*i-1)).center(5*n)
8. 下面代码判断回文串,请补全代码:
s='雾锁山头山锁雾' low=0
high= while low
if : #倒序和顺序不一样 print(s,\不是回文\ low +=1
else:
print(s,\是回文串\
答案:len(s)-1,s[low]!=s[high],break,high -=1;
9. 输出右边图形,请补充程序:
s='''I am a teacher! You are students!''' print('='*30)
print('统计信息'.center(28)) print( ) item_width=25 line=s.count('\\n')+1 word=s.split()
char=list(s) #包含空格、标点符号 w_num=0
for w in word:
w_num+=
print('%-*s ]'%(item_width-3,'行数',line))
print('%-*s ]'%( ,'单词数',len(word)))
print('%-*s ]'%(item_width-10,'字符数(包含空格)', )) print('%-*s ]'%(item_width-11,'字符数(不包含空格)',w_num)) print('-'*30)
答案:'-'*30;len(w);item_width-4;len(char)
10. 输出右边图形,请补充程序:
[1]def demo(t):
[1, 1] print([1]) [1, 2, 1][1, 3, 3, 1] [1, 4, 6, 4, 1] line = [1,1]
[1, 5, 10, 10, 5, 1] for i in range(2,t): [1, 6, 15, 20, 15, 6, 1][1, 7, 21, 35, 35, 21, 7, 1]
[1, 8, 28, 56, 70, 56, 28, 8, 1] for j in range(0,len(line)-1): [1, 9, 36, 84, 126, 126, 84, 36, 9, 1] r.append( ) line = [1]+r+[1] print(line) demo( )
答案:print([1,1]),r = [],line[j]+line[j+1],10
四、编程题
1. 编写程序,在D盘根目录下创建一个文本文件test.txt,并向其中写入字符串hello world。 答:
fp = open(r’D:\\test.txt’, ‘a+’) print(‘hello world’, file=fp) fp.close()
2. 编写程序,生成一个包含20个随机整数的列表,然后对其中偶数下标的元素进行降序排列,奇
数下标的元素不变。(提示:使用切片。) 答:
import random
x = [random.randint(0,100) for i in range(20)] print(x) y = x[::2]
y.sort(reverse=True) x[::2] = y print(x)
3. 编写函数,判断一个数字是否为素数,是则返回字符串YES,否则返回字符串NO。再编写测
试函数。 答:
import math def IsPrime(v):
n = int(math.sqrt(v)+1) for i in range(2,n): if v%i==0: return 'No' else:
return 'Yes' print(IsPrime(77))
4. 编写函数,模拟Python内置函数sorted(lst)。 答:
def sorted(v): t = v[::] r = [] while t:
tt = min(t) r.append(tt) t.remove(tt)
return r
print(sorted([1,3,2,4])
5. 编写程序,生成包含20个随机数的列表,然后将前10个元素升序排列,后10个元素降序排列,
并输出结果。 答:
import random
x = [random.randint(0,100) for i in range(20)] print(x) y = x[0:10] y.sort() x[0:10] = y y = x[10:20]
y.sort(reverse=True) x[10:20] = y print(x)
x y 6. 编写程序,运行后用户输入4位整数作为年份,判断其是
否为闰年。如果年份能被400整除,则为闰年;如果年份能被4整除但不能被100整除也为闰年。 x<0 0 答:
x = input('Please input an integer of 4 digits meaning the year:')
0<=x<5 x x = eval(x)
if x@0==0 or (x%4==0 and not x0==0):
5<=x<10 3x-5 print('Yes')
else:
print('No') 10<=x<20 0.5x-2 7. 编写程序,实现分段函数计算,如下表所示。
20<=x 0 答:
x = input('Please input x:') x = eval(x)
if x<0 or x>=20: print(0) elif 0<=x<5: print(x) elif 5<=x<10: print(3*x-5) elif 10<=x<20:
print(0.5*x-2)