程序片段编程题
1. 题库:列表元素循环右移一位
【问题描述】
以下列表里所有元素循环右移一位。请补充函数体。
【输入形式】
输入列表的元素,以逗号隔开
【输出形式】
循环右移一位后的列表
【样例输入】
1,2,3,4,5
【样例输出】
['5', '1', '2', '3', '4']
【样例说明】
因为样例是通过键盘输入的,所有元素均为字符串形式。
【评分标准】
3个样例
def shift(lst):
lst.insert(0,lst.pop())
return lst
list1 = input().split(",") #输入格式 1,2,3,4,5
shift(list1)
print(list1)
2. 题库:本金与年利率
【问题描述】李先生有本金N元(N>=10000)存入银行,年利率是千分之三,每过1年,将本金和利息相加作为新的本金。计算M年后,获得的本金是多少?
【输入形式】输入一行,内容为以空格分隔的两个正整数N和M。
【输出形式】输出李先生所获得的本金,结果保留小数点后四位。
【样例输入】10000 5
【样例输出】10150.9027
【样例说明】
【评分标准】
def main():
N,M = map(int,input().split())
calculate_capital(N,M)
def calculate_capital(N,M):
p=N*(1+0.003)**M
print('%.4f'%p)
main()
3. 题库:卖西瓜
【问题描述】农夫有N(N大于0)个西瓜,第一天卖掉总数的一半后又多卖出两个,以后每天卖剩下的一半多两个,问几天以后能卖完?
【输入形式】输入一个正整数N,表示农夫拥有的西瓜数。
【输出形式】输出一个整数,表示农夫卖完全部瓜所需要的天数。
【样例输入】10
【样例输出】2
【样例说明】农夫有10个瓜,第一天卖出(5+2)个,剩余3个;第二天卖出(1+2)个,剩余0个。注:农夫只卖整瓜!
【评分标准】
def main():
total_count = int(input())
calculate_days(total_count)
def calculate_days(total_count):
a=0
while total_count>0:
total_count=total_count/2-2
a+=1
print(a)
main()
4. 题库:多项求和
【问题描述】求s=a+aa+aaa+aaaa+aaaaa+aa…a的值,其中a是一个数字,表示s由几个数相加。例如当a=3时,s等于三个数相加的和,即s=3+33+333=369。
【输入形式】从键盘输入一个正整数a。
【输出形式】输出此时s的值。
【样例输入】3
【样例输出】369
【样例说明】
【评分标准】
def main():
a=int(input())
calculate_sum(a)
def calculate_sum(a):
s=0
n=0
m=a
while n < a :
s += m * a * 10**n
n += 1
m -= 1
print(s)
main()
5. 题库:计算e
【问题描述】编写程序使用下列公式计算e。e=1+1/1!+1/2!+1/3!+…+1/n!
【输入形式】输入一个正整数n。
【输出形式】输出对应的e的值,结果保留小数点后六位有效数字
【样例输入】10
【样例输出】2.718282
【样例说明】
【评分标准】
def main():
num = eval(input())
calculate_e(num)
def calculate_e(num):
e=1
for x in range(num):
m=1
for y in range(x+1):
m*=y+1
e+=1/m
print('%.6f'%e)
main()
6. 题库:偶数和
【问题描述】编程实现:从 0 开始到 n(n>0,包括n) 以内的所有偶数之和
【输入形式】输入一个正整数n
【输出形式】结果以整数形式输出
【样例输入】10
【样例输出】30
n=eval(input())
h1=0
for
x in range(n+1):
if x%2==0:
h1+=x
print(h1)
7. 题库:整数的各位数字之和
【问题描述】输入一个整数,求该整数的各位数之和
【输入形式】
【输出形式】
【样例输入】123
【样例输出】6
【样例说明】
【评分标准】
n=eval(input())
sum1=0
while n>0:
sum1+=n%10
n=int(n/10)
print(sum1)
8. 题库:是否包含数字5
【问题描述】输入一个整数,求该整数上的各位数是否包含数字5,若有,则按从低到高的顺序输出第几位,若没有则输出-1
【输入形式】
【输出形式】每一行代表包含数字5的位数
【样例输入】
1223
【样例输出】
-1
【样例输入】
125
【样例输出】
1
【样例输入】
525
【样例输出】
1
3
【样例说明】
【评分标准】
n=int(input())
j=1
b=-1
flag=False
while n>0:
if n%10==5:
print(j)
flag=1
n=n//10
j+=1
if
flag==False:
print(b)
9. 题库:二月的天数
二月通常有28天,但如果是闰年,二月就有29天。 请编写一个程序,根据用户输入的年份计算当年2月的天数并输出,其中,判断闰年请用自定义函数实现。 提示:能被400整除的是闰年,能被4整除但是不能被100整除的也是闰年
【输入形式】
整数(代表年份)
【输出形式】
In 【年份】 February has [29 or 28] days.
【样例输入】
2021
【样例输出】
In 2021 February has 28 days.
【样例说明】
【评分标准】
通过测试数据
def leapyear(x):
if x%400==0 or (x%4==0 and x%100!=0):
return 1
else:
return 0
year=int(input())
if leapyear(year):
print("In %d February has 29 days."%year)
else:
print("In %d February has 28 days."%year)
10. 题库:计算个人所得税和工资
【问题描述】
应纳个人所得税税额= 应纳税所得额× 适用税率- 速算扣除数
扣除标准5000元/月(2019年1月1日起正式执行)(工资、薪金所得适用)
个税免征额5000元 (工资薪金所得适用)
级数全年应纳税所得额 税率(%)速算扣除数
1不超过36,000元 3 0
2超过36,000元至144,000元的部分 10 2,520
3超过144,000元至300,000元的部分 20 16,920
4超过300,000元至420,000元的部分 25 31,920
5超过420,000元至660,000元的部分 30 52,920
6超过660,000元至960,000元的部分 35 85,920
7超过960,000元的部分 45 181,920
输入一个人年薪,根据公式,计算出个人所得税,以及税后年薪
【输入形式】
年薪
【输出形式】
个人所得税
税后年薪
【样例输入】
180000
【样例输出】
9480.00
170520.00
【样例说明】
【评分标准】
通过测试数据
salary = float(input())
tax = 0.0
salary -= 5000*12
if salary <= 0:
tax = 0.0
elif salary <= 36000:
tax = salary * 0.03
elif salary <= 144000:
tax = salary * 0.1 - 2520
elif salary <= 300000:
tax = salary * 0.2 - 16920
elif salary <= 420000:
tax = salary * 0.25 - 31920
elif salary <= 660000:
tax = salary * 0.3 - 52920
elif salary <= 960000:
tax = salary * 0.35 - 85920
else:
tax = sala