大学Python程序题题库
程序设计
题目:补充fun函数,其功能是判断一个整数是否是素数,在主函数main中输入一个整数,调用该fun函数进行判断并输
出结果。
要求:使用math相关函数
import math
def fun(n):
i,w=2,0
if n<=1:
w=1
while i<=int(math.sqrt(n)) and w==0:
if n%i==0:
w=1
break
else:
i=i+1
return w
def main():
print("【请连续四次判断输入的整数是否是素数:】")
for i in range(4):
print("【第%d次:】" %(i+1))
n=int(input('【请输入一个整数n:】'))
if fun (n)==0:
print("%d是素数" %n)
else:
print("%d不是素数" %n)
if __name__ == '__main__':
main()
题目:求100-999之间的水仙花数
说明:水仙花数是指一个三位数的各位数字的立方和是这个数本身。例如:153=1^3+5^3+3^3)。
---------------------------------------------------------
注意:除要求填空的位置之外,请勿改动程序中的其他内容。
------------------------------------------------------'''
def main():
for i in range(100,1000):
h= i//100
t=(i-100*h)//10
s=i-100*h-t
if i==h**3+t**3+s**3:
print(i)
if __name__ == '__main__':
main()
【程序填空】
---------------------------------------------------------
题目:输入某年某月某日,判断这一天是这一年的第几天?
---------------------------------------------------------
注意:除要求填空的位置之外,请勿改动程序中的其他内容。------------------------------------------------------'''
def main():
date = input("输入年月日(yyyy-mm-dd):")
y,m,d = (int(i) for i in date.split('-'))
sum=0
special = (1,3,5,7,8,10)
for i in range(1,int(m)):
if i == 2:
if y%400==0 or (y%100!=0 and y%4==0 ):
sum+=29
else:
sum+=28
elif(i in special):
sum+=31
else:
sum+=30
sum=sum+d
print("这一天是一年中的第%d天"%sum)
if __name__ == '__main__':
main()
【程序填空】
---------------------------------------------------------
题目:求输入数字的平方,如果平方运算后小于50 则退出。
---------------------------------------------------------
注意:除要求填空的位置之外,请勿改动程序中的其他内容。------------------------------------------------------'''
def power(x):
if x**2>=50:
print('%d的平方为:%d,不小于50,继续'%(x,x**2)) else:
print('{}的平方为:{},小于50,退出'.format(x,x**2))
quit()
def main():
while True:
x = int(input('输入数字:'))
power(x)
if __name__ == '__main__':
main()
【程序改错】
---------------------------------------------------------
题目:main()函数中实现按逗号分隔列表,并打印输出
---------------------------------------------------------
注意:不可以增加或删除程序行,也不可以更改程序的结构。------------------------------------------------------'''
def main():
l = [1,2,3,4,5,6,7];
k = 1;
for i in l:
print(i,end= ('' if (k == len(l)) else ','));
k=k+1
if __name__ == '__main__':
main()
题目:根据整型形参m的值,计算如下公式的值。
1 1 1
t = 1- —— - —— - ... - ——
2x2 3x3 mxm
例如:若m=5,则应输出:0.536389
---------------------------------------------------------
注意:不可以增加或删除程序行,也不可以更改程序的结构。------------------------------------------------------'''
def fun(m):
y=1.0
for i in range(2,m+1):
y-=1.0/(i*i)
return y
def main():
m = int(input("请输入整型形参m的值:"))
print('结果为:%.6f'%fun(m))
if __name__ == '__main__':
main()
【程序改错】
---------------------------------------------------------
题目:读取7个数(1-50)的整数值,每读取一个值,程序打印出该值个数的*。
请改正程序中的错误,使它能得出正确的结果。
---------------------------------------------------------
注意:不可以增加或删除程序行,也不可以更改程序的结构。
------------------------------------------------------'''
def main():
n = 1
while n <=7:
a = int(input('请输入一个整数值,并按回车继续:'))
while a < 1 or a > 50:
a = int(input('范围是1-50,请重新输入:'))
print(a * '*')
n += 1
if __name__ == '__main__':
main()
【程序设计】
---------------------------------------------------------
题目:请编写函数fun,其功能是:用for循环语句求1到n之间所有偶数之和(若n为偶数包括n),并将结果返回给主函数。
(n值由用户输入)
例如:运行程序后若输入:10,则输出为:sum=30。
---------------------------------------------------------
注意:部分源程序给出如下。请勿改动主函数main和其它函数中的任何内容,仅在函数的注释标志之间填入所编写的若干语句。------------------------------------------------------'''
def fun(n):
s=0
for i in range(1,n+1,2):
s=s+i
return s
def main():
print("【请分别三次计算问题:】")
for i in range(3):
print("【第%d次:】" %(i+1))
n = int(input("【请输入一个大于1的正整数n:】"))
if(n <= 1):
print("【请输入一个大于1的正整数!】");
else:
print("【1到"+str(n)+"之间所有偶数之和是:】",fun(n))
if __name__ == '__main__':
main()
''------------------------------------------------------
【程序设计】
---------------------------------------------------------
题目:请编写main函数,输入一个百分制成绩score,根据成绩打印5级等级。
(即0~59:E;60~69:D;70~79:C;80~89:B;90~100:A)
要求:使用if语句,根据成绩输出A等!或B等!或C等!或D等!或E等!
---------------------------------------------------------
注意:部分源程序给出如下。请勿改动主函数main和其它函数中的
任何内容,仅在函数的注释标志之间填入所编写的若干语句。
------------------------------------------------------'''
def main():
print("【请连续五次根据输入的成绩打印等级:】")
for n in range(5):
print("【第%d次:】" %(n+1))
score = int(input("【请输入一个百分制成绩: 】"))
if score>=0 and score<=59:
print("E等!")
if score>=60 and score<=69:
print("D等!")
if score>=70 and score<=79:
print("C等!")
if score>=80 and score<=89:
print("B等!")
else:
print("A等!")
if __name__ == '__main__':
main()'''------------------------------------------------------
【程序设计】
---------------------------------------------------------
题目:请补充函数fun,其功能是:求出n!并将结果返回给主函数。
完成程序后请编译并运行程序。
例如:括号内是说明
输入:
5 (n=5)
输出:
5的阶乘为120
---------------------------------------------------------
注意:部分源程序给出如下。请勿改动主函数main和其它函数中的任何内容,仅在函数的注释标志之间填入所编写的若干语句。------------------------------------------------------'''
def fun(num):
factorial = 1
if num < 0:
print("抱歉,负数没有阶乘")
elif num==0:
return 1
else:
for i in range(1,num+1):
factorial=factorial*i
return factorial
def main():
print("【请连续三次计算n!的值:】")
for n in range(3):
print("【第%d次:】" %(n+1))
num = int(input("【请输入一个数字num:】"))
factorial = fun(num)
print("【%d 的阶乘为】%d" %(num,factorial))
if __name__ == '__main__':
main()
'''------------------------------------------------------
【程序填空】
---------------------------------------------------------
题目:从键盘输入一个字符串,将小写字母全部转换成大写字母,然后输出到一个磁盘文件“test”中保存。输入的字符串
以!结束。
---------------------------------------------------------
注意:除要求填空的位置之外,请勿改动程序中的其他内容。
------------------------------------------------------'''
def main():
fp = open('test.txt','w')
string = input('请输入一个字符串:\n')
string = string.upper()
fp.write(string)
fp = open('test.txt','r')
print(fp.read())
fp.close()
if __name__ == '__main__':
main()
''------------------------------------------------------
【程序填空】
---------------------------------------------------------
题目:以每行5个数来输出300以内能被7或17整除的偶数,并求出其和。
---------------------------------------------------------
注意:除要求填空的位置之外,请勿改动程序中的其他内容。
------------------------------------------------------'''
def main():
sum=0
n=0
for i in range(1,300):
if(i%7==0 or i%17==0):
if(i%2==0):
sum=sum+i;
n+=1
print("%6d" %i,end=" ");
if(n%5==0):
print()
print()
print(" total=%d" %sum);
if __name__ == '__main__':
main()
'''------------------------------------------------------
【程序填空】
---------------------------------------------------------
题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。
---------------------------------------------------------
注意:除要求填空的位置之外,请勿改动程序中的其他内容。------------------------------------------------------'''
def main():
letter = input("请输入首字母:")
letter = letter.upper()
if letter == 'S':
letter = input("请输入第二个字母:")
if letter == 'a':
print ('Saturday')
elif letter == 'u':
print ('Sunday')
else:
print ('data error')
elif letter == 'F':
print ('Friday')
elif letter == 'M':
print ('Monday')
elif letter == 'T':
letter = input("请输入第二个字母:")
if letter == 'u':
print ('Tuesday')
elif letter == 'h':
print ('Thursday')
else:
print ('data error')
elif letter == 'W':
print ('Wednesday')
else:
print ('data error')
if __name__ == '__main__':
main()
'''------------------------------------------------------
【程序改错】
---------------------------------------------------------
题目:用起泡法对n个整数从小到大排序。
---------------------------------------------------------
注意:不可以增加或删除程序行,也不可以更改程序的结构。
------------------------------------------------------'''
def Sort(date):
length = len(date)
for i in range(length-1):
for j in range(0,length-i-1):
if(date[j]>date[j+1]):
t = date[j]
date[j] = date[j+1]
date[j+1] = t
return date
def main():
n = int(input("请输入n个整数的个数n:"))
a=[]
for i in range(n):
a.append(int(input("请分别输入整数元素,并按回车继续:")))
print('排序前的数组为:',a)
print('排序后的数组为:',Sort(a))
if __name__ == '__main__':
main()
'''------------------------------------------------------
【程序改错】
---------------------------------------------------------
题目:由N个有序整数组成的数列已放在一维数组中,下列给定程序中函数fun的功能是:利用折半查找法查找整数m在
数组中的位置。若找到,返回其下标值;否则,返回-1。
请改正程序中的错误,使它能得出正确的结果。
说明:折半查找的基本算法是:每次查找前先确定数组中待查的范围low和high(low 元素的值进行比较。如果m的值大于中间位置元素的值, 则下一次的查找范围落在中间位置之后的元素中;反之, 下一次的查找范围落在中间位置之前的元素中。直到low>high, 查找结束。 ----------------------------------------------------------- 注意:不可以增加或删除程序行,也不可以更改程序的结构。 ------------------------------------------------------''' def fun(a,m): low=0 high=len(a)-1 while(low<=high): mid=(low+high)//2 if(m high=mid-1