0
点赞
收藏
分享

微信扫一扫

第3章 - 课后习题 程序流程控制

邯唐情感 2022-03-18 阅读 113

(1)三名面试者的基本数据如表 3-2 所示。

序号年龄工作经验/年所学专业
1240计算机
2324电子
3368电子
4262通信

分别输入每一位面试者的基本数据,输出是否符合面试要求。
要求满足下列面试条件中的一种即可:
①计算机专业,年龄小于25岁。
②电子专业,有4年以上工作经验。
③通信专业,无年龄和工作经验要求。
满足面试要求的,输出“获得面试机会”;不满足要求的,输出“抱歉,您不符合面试要求”。

age = eval(input("输入年龄:"))
year= eval(input("输入工作经验/年:"))
pro = input("输入专业:")

if pro == '计算机' and age < 25:
    print("获得面试机会")
elif pro == '电子' and year > 4:
    print("获得面试机会")
elif pro == '通信':
    print("获得面试机会")
else:
    print("抱歉,您不符合面试要求")

2)输入百分制成绩,输出相应的等级:90分以上为‘A’;80~89分为‘B’;70~79分为‘C’;60~69分为‘D’;60分以下为‘E’;如果分数大于100或者小于0,则输出“成绩有误”。

score = eval(input("输入百分制成绩:"))
if score < 0 or score >100:
    input("输入错误!")
    score = eval(input("输入百分制成绩:"))
    
elif score >= 90:
    print("成绩等级为A")
elif score >= 80:
    print("成绩等级为B")
elif score >= 70:
    print("成绩等级为C")
elif score >= 60:
    print("成绩等级为D")
else:
    print("成绩等级为E")

(3)编写程序,输出公元2000年~公元3000年之间所有的闰年。

print("公元2000年~公元3000年所有的闰年为:")

for i in range(2000,3001):
    if (i % 400 == 0) or (i % 4 == 0 and i % 100 != 0):
        print(i)

(4)编写程序,输出0~90°之间(包括端点)每隔5°时的角度值以及其正弦、余弦函数值。

from math import *

for i in range(0,91):
    if (i == 0 or i == 90) or (i % 5 == 0):
        print(str(i)+"°的正弦值:", sin(i), "余弦值:", cos(i))

(5)利用“牛顿迭代法”求出1~n之间的所有整数的算术平方根,并与math库中sqrt()函数的结果进行比较。

n = eval(input("请输入整数n的值:"))

def newton_method(number, r=0.001):
    x0 = number
    x1 = x0/2 + number/(2*x0)
    while abs(x1 - x0) > r:
        x0 = x1
        x1 = x0/2 + number/(2*x0)
    return x1

for num in range(1, n+1):
    newton = newton_method(num)
    print(num, newton, sqrt(num))

(6)输入正整数n,求n以内能被17整除的最大正整数。

n = eval(input("输入正整数n:"))

for num in range(1,n+1):
    if num%17 == 0:
        max = num

print("能被17整除的最大正整数是:", max)

(7)编写程序,计算S=1 + 1/3 - 1/5 + 1/7 - 1/9 +...的结果。

n = eval(input("请输入n的值:"))
sign = 1

for i in range(1, n+1):
    sum +=  sign * (1 / (i*2 - 1))
    sign = -sign

print("sum=", sum)

(8)在1~100之间(包含1和100)产生三个随机整数:a,b,c,求a,b,c的最大公约数和最小公倍数。

import random

def gcd(a,b):
    if a%b==0:
        return b
    return gcd(b,a%b)

def lcm(a,b):
    return a//gcd(a,b)*b

a=random.randint(1,100)     #返回随机生成的一个实数,它在[0,1)范围内
b=random.randint(1,100)
c=random.randint(1,100)

print(a,b,c,gcd(gcd(a,b),c),lcm(lcm(a,b),c))
举报

相关推荐

0 条评论