1. Preguntas de respuesta corta (7 preguntas en total, 120.0 puntos)
1 Ingrese el fondo superior, el fondo inferior y la altura del trapecio, diseñe la función y genere el área del trapecio.
Mi respuesta:
def S(a,b,h):
if a>0 and b>0 and h>0:
return (a+b)*h/2
a =int(input('请输入梯形上底a:'))
b = int(input('请输入梯形下底b:'))
h = int(input('请输入梯形下底h:'))
print('输出梯形的面积:',S(a,b,h))
Resultado de la operación:
Ingrese el trapecio superior inferior a: 2
Por favor, introduzca la parte inferior del trapecio b: 8
Por favor, introduzca el fondo trapezoidal h: 2
Área de salida del trapecio: 10.0
2 Use el método de llamada de función para encontrar 1! +2! +… + N!
Mi respuesta:
x = int(input("请输入n(不小于1):"))
def f(n):
a = 0
Sum = 0
for i in range (1,n+1):
a+=i
Sum+=a
print('1!+2!+...+ %d!=%d'% (i,Sum))
f(x)
Resultado de la operación:
Ingrese n (preferiblemente mayor que 2): 4
1! +2! +… + 4! = 20
3 Escriba una función, ingrese tres números como los tres lados del triángulo y calcule el área del triángulo. Fórmula de Helen: p = (x + y + z) / 2 S = sqrt (p * (px) (py) (pz))
Mi respuesta:
def S(x,y,z):
p=(x+y+z)*0.5
w = (p*(p-x)*(p-y)*(p-z))**0.5
print("三角形的面积为:",w)
a = int(input("请输入三角形的边长a:"))
b = int(input("请输入三角形的边长b:"))
c = int(input("请输入三角形的边长c:"))
S(a,b,c)
Resultado de la operación:
Ingrese la longitud del triángulo a: 3
Ingrese la longitud del lado b del triángulo: 4
Ingrese la longitud del lado c del triángulo: 5
El área del triángulo es: 6
4
定义函数接收年份和月份,返回对应月份有多少天。
(20.0 puntos)
Respuesta correcta:
def get_days_in_month(year,month):
if month == 4 or month == 6 or month == 9 or month == 11:
return 30
elif month == 1 or month == 3 or month == 5 or month == 7 or month == 8 or month == 10 or month == 12:
return 31
else:
if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:
return 29
else:
return 28
year = int(input("请输入年份:"))
month = int(input("请输入月份:"))
days = get_days_in_month(year,month)
print(year, "年", month, "月", "有",days,"天")
Mi respuesta:
def year_month(year,month):
a = [0,31,29,31,30,31,30,31,31,30,31,30,31]
b = [0,31,28,31,30,31,30,31,31,30,31,30,31]
if year % 400 == 0 or (year % 4 == 0 and year % 100 != 0):
print('该月有%d天' % (a[month]))
else:
print('该月有%d天' % (b[month]))
y = int(input("请输入年份:"))
m = int(input("请输入月份:"))
year_month(y,m)
Resultado de la operación:
Por favor, introduzca el año: 1999
Por favor, introduzca el mes: 6
Hay 30 días en el mes
5 Escriba una función para recibir una hora (horas, minutos y segundos) y devolver el siguiente segundo de esa hora.
(20.0 puntos)
Respuesta correcta:
def get_next_second(hour,minute,second):
hour = int(hour)
minute = int(minute)
second = int(second)
second += 1
second = second % 60
if second == 0:
minute += 1
minute = minute % 60
if minute == 0:
hour += 1
hour = hour % 24
return [hour,minute,second]
time = input("请输入时间:")
time = time.split(" ")
print("下一秒的时间是:",get_next_second(time[0],time[1],time[2]))
Mi respuesta:
import datetime
def time(time):
time=datetime.datetime.strptime(time,"%H:%M:%S")+datetime.timedelta(seconds=1)
print("下一秒的时间是:",time.strftime("%H:%M:%S"))
a=input("请以xx:xx:xx格式输入时间:")
time(a)
Resultado de la operación:
Ingrese la hora en formato xx: xx: xx: 22:11:10
El siguiente segundo es: 22:11:11
6
编写函数,实现冒泡排序算法。
(20.0 puntos)
Respuesta correcta:
from random import randint
def bubbleSort(lst, reverse=False):
length = len(lst)
for i in range(0, length):
flag = False
for j in range(0, length-i-1):
#比较相邻两个元素大小,并根据需要进行交换
#默认升序排序
exp = 'lst[j] > lst[j+1]'
#如果reverse=True则降序排序
if reverse:
exp = 'lst[j] < lst[j+1]'
if eval(exp):
lst[j], lst[j+1] = lst[j+1], lst[j]
#flag=True表示本次扫描发生过元素交换
flag = True
#如果一次扫描结束后,没有发生过元素交换,说明已经按序排列
if not flag:
break
lst = [randint(1, 100) for i in range(20)]
print('排序前:\n', lst)
bubbleSort(lst, True)
print('排序后:\n', lst)
Mi respuesta:
def sort(a):
L = list(map(int, a.split()))
for i in range(len(L)):
for k in range(len(L)-1):
if L[k]> L[k+1] :
t = L[k]
L[k] = L[k+1]
L[k+1] = t
return L
a = input("请输入要排序的数:")
l=sort(a)
print('排序后:', l)
Resultado de la operación:
Ingrese el número para ordenar: 9 8 2 4 3 5
Después de ordenar: [2, 3, 4, 5, 8, 9]
7 Preguntas opcionales: escriba un programa para simular un juego de adivinanzas. Cuando el programa se está ejecutando, el sistema genera un número aleatorio, y luego le pide al usuario que haga una suposición, y hace las indicaciones necesarias de acuerdo con la entrada del usuario (adivinado, demasiado grande, demasiado pequeño), si la suposición es correcta, el programa se termina antes de tiempo, y si el número se agota Todavía no adivina correctamente, indica el final del juego y da la respuesta correcta.
(20.0 puntos)
Respuesta correcta:
from random import randint
def guessNumber(maxValue=10, maxTimes=3):
# 随机生成一个整数
value = randint(1,maxValue)
for i in range(maxTimes):
prompt = 'Start to GUESS:' if i==0 else 'Guess again:'
# 使用异常处理结构,防止输入不是数字的情况
try:
x = int(input(prompt))
except:
print('Must input an integer between 1 and ', maxValue)
else:
if x == value:
# 猜对了
print('Congratulations!')
break
elif x > value:
print('Too big')
else:
print('Too little')
else:
# 次数用完还没猜对,游戏结束,提示正确答案
print('Game over. FAIL.')
print('The value is ', value)
guessNumber()
Mi respuesta:
import random
def guess(value,num):
for i in range(num):
gue = int(input("请输入猜测的数字:"))
if gue<value:
print("太小了")
elif gue>value:
print("太大了")
else:
print("猜对了")
break
if i==num-1:
print("游戏结束,该数字为%d"%(value))
value=random.randint(0,100)
num = int(input("请输入您要猜测的次数:"))
guess(value,num)
Resultado de la operación:
Ingrese la cantidad de veces que desea adivinar: 10
Por favor, introduzca el número adivinado: 4
Demasiado pequeño
Por favor, introduzca el número adivinado: 50
Demasiado pequeño
Por favor, introduzca el número adivinado: 80
Demasiado grande
Por favor, introduzca el número adivinado: 65
Demasiado grande
Por favor, introduzca el número adivinado: 57
Demasiado pequeño
Por favor, introduzca el número adivinado: 61
Demasiado grande
Por favor, introduzca el número adivinado: 59
Adivina bien