程序填空
1. # 请写代码替换横线,不修改其它代码,实现以下功能:
# 使用turtle库的turtle.seth()函数和turtle.fb()函数绘制一个每方向100像素的长度的十字型,如图所示:
# 请在______处使用一行代码或表达式替换
#
# 注意:请不要修改其他已给出代码
import turtle
for i in range(4):
turtle.fd(100)
######FILL######
___(1)___(-100)
######FILL######
___(2)___((i+1)*90)
【空 1 】 turtle.fd(-100)
【空 2 】 turtle.seth((i+1)*90)
2. # 请写代码替换横线,不修改其它代码,实现以下功能:
# 使用turtle库的turtle.seth()函数和turtle.fb()函数绘制一个菱形,边长200像素,4个内角度数为90度,如下图:箭头与图片保持一致。
# 请在______处使用一行代码替换
#
# 注意:请不要修改其他已给出代码
import turtle
turtle.pensize(2)
######FILL######
d = ____(1)____
for i in range(4):
turtle.seth(d)
######FILL######
d += ____(2)____
######FILL######
turtle.fd(____(3)____)
【空 1 】 d = -45
【空 2 】 d += 90
【空 3 】 turtle.fd(200)
3. # 请写代码替换横线,不修改其它代码,实现以下功能:
# 使用turtle库的turtle.right()函数和turtle.fb()函数绘制一个菱形,边长200像素,4个内角度数为2个60度和2个120度,如下图:
# 请在______处使用一行代码或表达式替换
#
# 注意:请不要修改其他已给出代码
import turtle
turtle.right(-30)
######FILL######
___(1)___
turtle.right(60)
turtle.fd(200)
######FILL######
___(2)___
turtle.fd(200)
turtle.right(60)
turtle.fd(200)
turtle.right(120)
【空 1 】 turtle.fd(200)
【空 2 】 turtle.right(120)
4. # 请写代码替换横线,不修改其它代码,实现以下功能:
# 使用turtle库的turtle.seth()函数和turtle.fb()函数绘制一个等边三角形,边长200像素,效果如图所示:
# 请在______处使用一行代码或表达式替换
#
# 注意:请不要修改其他已给出代码
######FILL######
import turtle as ___(1)___
######FILL######
for i in range(___(2)___):
######FILL######
___(3)___(i*120)
t.fd(200)
【空 1 】 import turtle as t
【空 2 】 for i in range(3):
【空 3 】 t.seth(i*120)
5. #点击答题开始作答
#请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
#不得增行或删行,也不得更改程序的结构!
#题目:判断101-200之间有多少个素数,并输出所有素数。(判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。)
#结果如下图
(上图倒过来看哈)
h = 0
leap = 1
from math import sqrt
from sys import stdout
for m in range(101,201):
k = int(sqrt(m + 1))
for i in range(2,k + 1):
if m % i == 0:
leap = 0
break
if leap == 1:
print ('%-4d' % m)
######FILL######
h += ____
if h % 10 == 0:
print ('')
leap = 1
######FILL######
print ('The total is %d' % ___)
【空 1 】 1
【空 2 】 h
6. #从键盘输入 4 个数字,各数字采用空格分隔,对应为变量 x0 , y0 , xl , yl 。
#计算两点( x0 , y0)和( x1 , yl )之间的距离.屏幕输出这个距离.保留 2 位小数。例如:键盘输入: 0 1 3 5 屏幕输出: 5 . 00
# 请在______处使用一行代码或表达式替换
#
# 注意:请不要修改其他已给出代码
ntxt = input("请输入4个数字(空格分隔):")
######FILL######
______
x0 = eval(nls[0])
y0 = eval(nls[1])
x1 = eval(nls[2])
y1 = eval(nls[3])
######FILL######
r = pow(pow(x1-x0, 2) + pow(y1-y0, 2), ______)
print("{:.2f}".format(r))
【空 1 】 nls=ntxt.split()
【空 2 】 0.5
7. #请写代码替换横线.不修改其它代码.实现以下功能:键盘输入正整数 n ,
#按要求把 n 输出到屏幕.格式要求:宽度为 20 个字符.减号字符"-"填充,
#右对齐,带千位分隔符。如果输入正整数超过 20字符,
#则按真实长度#输出。
#例如:键盘输入正整数 n 为 1234 .屏幕输出--------------1 , 234 (14个)
# 请在______处使用一行代码或表达式替换
# 注意:请不要修改其他已给出代码
n = eval(input("请输入正整数:"))
######FILL######
print("{______}".format(n))
【空 1 】 print("{:->20,}".format(n))
8. #点击答题开始作答
#请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
#不得增行或删行,也不得更改程序的结构!
#求一个3*3矩阵对角线元素之和 如输入
#1,2,3
#1,2,3
#1,2,3 结果为6.0
a = []
sum = 0.0
######FILL######
for i in range(____):
a.append([])
for j in range(3):
a[i].append(float(input("input num:n")))
for i in range(3):
######FILL######
sum += a[__][__]
print (sum)
【空 1 】 3
【空 2 】 a[i][i]
9. # 请写代码替换横线,不修改其它代码,实现以下功能:
# 根据斐波那契数列的定义,F(0)=0,F(1)=1,F(n)=F(n-2)+F(n-2)(n>=2),
# 输出不大于100的序列元素。
# 例如:屏幕输出实例为:
# 0,1,1,2,3,...(略)
# 请在______处使用一行代码或表达式替换
# 注意:请不要修改其他已给出代码
a, b = 0, 1
######FILL######
while ______:
print(a, end=',')
######FILL######
a, b = ______
【空 1 】 while a<=100:
【空 2 】 a, b = b,a+b
10. #点击答题开始作答
#请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
#如输入 year 2020 month 12 day 20 结果为it is the 355th day.
#不得增行或删行,也不得更改程序的结构
#题目:输入某年某月某日,判断这一天是这一年的第几天?
year = int(input('year:n'))
month = int(input('month:n'))
day = int(input('day:n'))
months = (0,31,59,90,120,151,181,212,243,273,304,334)
if 0 <= month <= 12:
sum = months[month - 1]
else:
print ('data error')
sum += day
leap = 0
if (year % 400 == 0) or ((year % 4 == 0) and (year % 100 != 0)):
leap = 1
if (leap == 1) and (month > 2):
######FILL######
sum += _____
######FILL######
print ('it is the %dth day.' % _____)
【空 1 】 1
【空 2 】 sum
11. #点击答题开始作答
#请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
#结果为
#不得增行或删行,也不得更改程序的结构!
#有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
for i in range(1,5):
######FILL######
for____in range(1,5):
for k in range(1,5):
######FILL######
if( ______ ) and (i != j) and (j != k):
print(i,j,k)
【空 1 】 j
【空 2 】 i!=k
12. #点击答题开始作答
#请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
#不得增行或删行,也不得更改程序的结构!
#题目 利用选择法,对10个数进行排序。
if __name__ == "__main__":
N = 10
# input data
print ('please input ten num:n')
l = []
for i in range(N):
l.append(int(input('input a number:n')))
for i in range(N):
######FILL######
print (___)
print()
# sort ten num
for i in range(N - 1):
min = i
for j in range(i + 1,N):
if l[min] > l[j]:min = j
l[i],l[min] = l[min],l[i]
print ('after sorted')
for i in range(N):
######FILL######
print (____)
【空 1 】 l[i]
【空 2 】 l[i]
13. '''
请写代码替换横线,不修改其它代码,实现以下功能:
fun函数的功能是根据两个直角边x和y,计算并返回斜边的长度。
例如输入:3,5
输出参考格式如下,其中冒号为英文冒号:
斜边的长度为2.8
'''
# 请在______处使用一行代码或表达式替换
# 注意:请不要修改其他已给出代码
def fun(x,y):
######FILL######
return___1____
######FILL######
a,b=eval(__2__('请输入两条直角边,以逗号分隔:'))
######FILL######
print('斜边的长度为"{:.1f}'.format(__3__))
【空 1 】 (x**2+y**2)**0.5
【空 2 】 input
【空 3 】 fun(a,b)
14. '''
请写代码替换横线,不修改其它代码,实现以下功能:
列表list1中保存了6名参赛选手的评委打分,每组有5位评委,计算每组选手的得分。(计算规则:去掉最高分和最低分,剩下的计算平均分作为选手的最后得分。)其中函数df用来计算选手得分。
例如:输出参考格式如下:
第1名选手的得分是7.9
第2名选手的得分是8.3
第3名选手的得分是8.3
第4名选手的得分是7.2
第5名选手的得分是8.7
第6名选手的得分是8.1
'''
# 请在______处使用一行代码或表达式替换
# 注意:请不要修改其他已给出代码
def df(ls):
######FILL######
return (sum(ls)-max(ls)-min(ls))/(len(ls)___1____)
list1=[[7,8,7.5,8.3,8.2],
[8,8.3,8.5,8.8,8.2],
[9,8,7.5,8.3,8.2,8.8],
[6,7,7.5,7.3,7.2],
[8,9,9,8,10],
[7.5,8.8,9,8,7]]
for i in range(6):
######FILL######
print("第{}名选手的得分是{__2__}".format(i+1,df(list1[i])))
【空 1 】 -2
【空 2 】 {:.1f}
15. '''
请写代码替换横线,不修改其它代码,实现以下功能:
编写函数,判断正整数是否为素数,并打印100以内的所有素数,以空格分隔。
例如:
输出参考格式如下:
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
'''
# 请在______处使用一行代码或表达式替换
# 注意:请不要修改其他已给出代码
def n_is_prime(n):
'''
判断正整数 n 是否为素数
素数,返回 True
非素数。返回 False
'''
for i in range(2,n):
if n % i == 0:
return False
else:
return True
def main():
######FILL######
for n in range(2,__1__):
if n_is_prime(n):
######FILL######
print(n,__2__)
main()
【空 1 】 101
【空 2 】 end=" "
16. '''
请写代码替换横线,不修改其它代码,实现以下功能:
找到2到100中所有的孪生素数。孪生素数就是指相差2的素数对,例如3和5,5和7,11和13等。
例如:
输出参考格式如下:
( 3 , 5 )
( 5 , 7 )
( 11 , 13 )
( 17 , 19 )
( 29 , 31 )
( 41 , 43 )
( 59 , 61 )
( 71 , 73 )
'''
# 请在______处使用一行代码或表达式替换
# 注意:请不要修改其他已给出代码
def prime(n):
for i in range(2,n):
######FILL######
if n%i__1__:
return False
else:
return True
for i in range(2,100+1):
if prime(i)==True and prime(i+2)==True:
print("({:^4},{:^4})".format(i,i+2))
【空 1 】 ==0
17. '''
请写代码替换横线,不修改其它代码,实现以下功能:
功能:编写一个函数,返回两个整数本身,以及它们的商和余数是多少。
例如:
输入格式:
两个整数是:10和20
输出参考格式如下:
它们的商是: 0
余数是: 10
'''
# 请在______处使用一行代码或表达式替换
# 注意:请不要修改其他已给出代码
def fun(a,b):
######FILL######
return(a,b,__1__,a%b)
n1,n2,m,d=fun(10,20)
######FILL######
print("两个整数是:{}和{}".format(n1,__2__))
print("它们的商是:",m)
print("余数是:",d)
【空 1 】 a//b
【空 2 】 n2
18. # 请写代码替换横线,不修改其它代码,实现随机选择一个手机品牌屏幕输出。
# 请在______处使用一行代码替换
# 注意:请不要修改其他已给出代码
######FILL######
import ______
brandlist = ['华为','苹果','诺基亚','OPPO','小米']
######FILL######
name=______
print(name)
【空 1 】 import random
【空 2 】 random.choice(brandlist)
19. # 请写代码替换横线,不修改其它代码,实现以下功能:
# 以123为随机数种子,随机生成10个在1(含)到999(含)之间的随机数,每个随机数后跟随一个逗号进行分隔,屏幕输出这10个随机数。
# 请在______处使用一行代码或表达式替换
#
# 注意:请不要修改其他已给出代码
import random
######FILL######
________
######FILL######
for i in range(______):
######FILL######
print(____________, end=",")
【空 1 】 random.seed(123)
【空 2 】 for i in range(10):
【空 3 】 print(random.randint(1,1000), end=",")
20. #点击答题开始作答
#请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
#结果为 21 261 1581
#不得增行或删行,也不得更改程序的结构!
#题目:在10万以内判断,一个整数,它加上100后是一个完全平方数,再加上268又是一个完全平方数,请问该数是多少?
import math
for i in range(100000):
#转化为整型值
x = int(math.sqrt(i + 100))
######FILL######
y = int(math.sqrt(i + ___))
######FILL######
if(x * x == i + 100) and (y * y == ______):
print (i)
【空 1 】 268
【空 2 】 i+268 268+i
21. # 请写代码替换横线,不修改其它代码,实现以下功能:
# 根据斐波那契数列的定义,F(0)=0,F(1)=1,F(n)=F(n-2)+F(n-1)(n>=2),
# 输出不大于100的序列元素。
# 例如:屏幕输出实例为:
# 1,1,2,3,...(略)
# 请在______处使用一行代码或表达式替换
# 注意:请不要修改其他已给出代码
a, b = 1, 1
######FILL######
while ______:
print(a, end=',')
######FILL######
a, b = ______
【空 1 】 while a<=100:
【空 2 】 a, b = b,a+b
22. #点击答题开始作答
#请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
#结果如下图:
#不得增行或删行,也不得更改程序的结构!
#题目:用*号输出字母P的图案。
######FILL######
print ('Hello Python world!____')
print ('*' * 10)
for i in range(5):
print ('* *')
print ('*' * 10)
######FILL######
【空 1 】 n
【空 2 】 *n
23. #点击答题开始作答
#请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
#不得增行或删行,也不得更改程序的结构!
#打印出如下图案(菱形)
from sys import stdout
######FILL######
for i in range(___):
for j in range(2 - i + 1):
stdout.write(' ')
for k in range(2 * i + 1):
stdout.write('*')
print()
for i in range(3):
for j in range(i + 1):
stdout.write(' ')
for k in range(4 - 2 * i + 1):
######FILL######
stdout.write(___)
print()
【空 1 】 4
【空 2 】 '*'
24. #点击答题开始作答
#请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
#不得增行或删行,也不得更改程序的结构!
#题目:判断101-200之间有多少个素数,并输出所有素数。(判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。)
#结果如下图
h = 0
leap = 1
from math import sqrt
from sys import stdout
for m in range(101,201):
k = int(sqrt(m + 1))
for i in range(2,k + 1):
if m % i == 0:
leap = 0
break
if leap == 1:
print ('%-4d' % m)
######FILL######
h += ____
if h % 10 == 0:
print ('')
leap = 1
######FILL######
print ('The total is %d' % ___)
【空 1 】 1
【空 2 】 h
25. #点击答题开始作答
#请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
#不得增行或删行,也不得更改程序的结构!
#求一个3*3矩阵对角线元素之和 如输入
#1,2,3
#1,2,3
#1,2,3 结果为6.0
a = []
sum = 0.0
######FILL######
for i in range(____):
a.append([])
for j in range(3):
a[i].append(float(input("input num:n")))
for i in range(3):
######FILL######
sum += a[__][__]
print (sum)
【空 1 】 3
【空 2 】 a[i][i]
26. # 请写代码替换横线,不修改其它代码,实现以下功能:
# 键盘输入一段中文文本,不含标点符号和空格,命名为变量s,采用jieba库对其进行分词,输出该文本中词语的平均长度,保留1位小数。
# 例如:键盘输入:吃葡萄不吐葡萄皮 屏幕输出:1.6
# 请在______处使用一行代码或表达式替换
#
# 注意:请不要修改其他已给出代码
######FILL######
import ______
txt = input("请输入一段中文文本:")
######FILL######
______
print("{:.1f}".format(len(txt)/len(ls)))
【空 1 】 import jieba
【空 2 】 ls=jieba.lcut(txt)



