大学Python程序题题库

大学Python程序题题库
大学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

else (m

low=mid+1

else:

return mid

return -1

def main():

a =[-3,4,7,9,13,45,67,89,100,180]

print("a数组中的数据如下:")

for i in range(len(a)):

print("%d " %a[i])

m = int(input("请输入要查找的整数m,并按回车继续:"))

k=fun(a,m)

if(k>=0):

print("m={},index={}".format(m,k))

else:

print("没有找到!")

if __name__ == '__main__':

main()

'''------------------------------------------------------

【程序改错】

---------------------------------------------------------

题目:输入一个时间(小时:分钟:秒),输出该时间经过5分30秒后的时间。

---------------------------------------------------------

注意:不可以增加或删除程序行,也不可以更改程序的结构。

------------------------------------------------------'''

def main():

hour,minute,second=input('请输入一个时间(h:m:s):').split(':')

hour=int(hour)

minute=int(minute)

second=int(second)

second+=30

if second >=60:

second = second-60

minute += 1

minute+=5

if minute >= 60:

minute = minute-60

hour += 1

if hour == 24:

hour =0

print('%d:%d:%d'%(hour,minute,second))

if __name__ == '__main__':

main()

'''------------------------------------------------------

【程序设计】

---------------------------------------------------------

题目:请编写fun函数,其功能为根据整型形参m,计算如下公式的值:y=1/2+1/4+1/6+...+1/2m 。

例如:若m=9,则应输出:1.414484

---------------------------------------------------------

注意:部分源程序给出如下。请勿改动主函数main和其它函数中的任何内容,仅在函数的注释标志之间填入所编写的若干语句。------------------------------------------------------'''

def fun(m):

i,j,sum=1,0,0

while i<=m:

sum+=1/(2*i)

i+=1

return sum

def main():

print("【请连续三次计算公式的值:】")

for n in range(3):

print("【第%d次:】" %(n+1))

m=int(input('【请输入任意正整数m:】'))

print('【当前结果为:】%.6f' %fun(m))

if __name__ == '__main__':

main()

'''------------------------------------------------------

【程序设计】

---------------------------------------------------------

题目:假设一年期定期利率为n%,计算一下需要过多少年,一万元的定期存款连本带息能翻番?

说明:利率为用户输入的浮点型变量,范围是:0.0<n≤10.0

例如:输入n=3.25,则输出:22年以后,存款会翻番

---------------------------------------------------------

注意:部分源程序给出如下。请勿改动主函数main和其它函数中的任何内容,仅在函数的注释标志之间填入所编写的若干语句。------------------------------------------------------'''

def main():

print("【请分别三次计算问题:】")

for i in range(3):

print("【第%d次:】" %(i+1))

n = float(input("【请输入定期利率n(0.0<n≤10.0):】"))

cunkuan = 10000 #本金10000元

years=0

while cunkuan<20000:

years+=1

cunkan=cuankan*(1+n/100)

print(str(years)+"【年以后,存款会翻番】")

if __name__ == '__main__':

main()

相关主题
相关文档
最新文档