一. 单选题(共6题,30分)
1. (单选题, 5分)2.3e2 等于
- A. 2.3乘以e的平方
- B. 2.3除以100
- C. 2.3乘以10的平方
- D. 2.30
我的答案: C正确答案: C
5分
2. (单选题, 5分)
c='hello'
d=c
c=100
print(type(d))
- A. <class 'string'>
- B. <class 'str'>
- C. <class 'int'>
- D. <class 'short int'>
我的答案: B正确答案: B
5分
3. (单选题, 5分)
下列不属于Python语言的优点的是( )。
- A.
简单易学
- B.
免费开源
- C.
强制缩进
- D.
丰富的库
我的答案: C正确答案: C
5分
4. (单选题, 5分)
下面的选项中,正确的变量名是( )。
- A.
圆面积2
- B.
for
- C.
2sum
- D.
it is
我的答案: A正确答案: A
5分
5. (单选题, 5分)
执行Python语句“name,age=‘张三’,20“之后,下面说法正确的是( )
- A.
Name的值为“张三”,age的值为20,两个变量的类型不一定
- B.
程序报错,因为两个变量没有定义,不能直接赋值
- C.
定义两个变量,name是字符串类型,值为”张三“,age是整型,值为20
- D.
不能同时给两变量赋值,程序报错
我的答案: C正确答案: C
5分
6. (单选题, 5分)关于Python注释,以下选项中描述错误的是
- A. Python注释语句不被解释器过滤掉,也不被执行
- B. 注释可以辅助程序调试
- C. 注释可用于标明作者和版权信息
- D. 注释用于解释代码原理或者用途
我的答案: A正确答案: A
5分
二. 填空题(共4题,20分)
7. (填空题, 5分)
高级语言翻译为机器机器语言的方式有两种:一种编译,一种是解释。Python属于( )型语言。
我的答案:
5分
(1) 解释
正确答案:
(1) 解释
8. (填空题, 5分)( )函数的功能是接收标准输入数据(即从键盘输入),返回String类型(字符串类型)。
我的答案:
5分
(1) input
正确答案:
(1) input()
9. (填空题, 5分)
( )是指在程序运行过程中值可以发生改变的量。
我的答案:
5分
(1) 变量
正确答案:
(1) 变量
10. (填空题, 5分)
( )函数的功能是将各种类型(字符串,整数、浮点数、列表、字典等)的数据输出到屏幕上。
我的答案:
5分
(1) print
正确答案:
(1) print()
三. 其它(共2题,50分)
11. (其它, 25分)
大学第一学期必选课程及其学分如下:
Python | 高等数学 | 大学英语 | 大学体育 | 军事理论 | 哲学 |
3学分 | 4学分 | 4学分 | 2学分 | 2学分 | 2学分 |
请计算并输出大学第一学期共修多少学分?输入每学分应缴纳的学费(整数,单位为元),计算并输出第一学期应缴纳多少学费?输出格式请参考输入输出示例。
输入
输入一个表示每学分应缴纳的学费的整数
输出
按示例格式分两行输出学分和学费
我的答案:
20分
import numbers
l0=["python" ,"高等数学 ","大学英语 ","大学体育 ","军事理论 ","哲学"]
l1=[3,4,4,2,2,2]
a=int(input('请输入一学分需缴费?(元): '))
# l2=[i*a for i in l1]
print(l0)
for i in l1:
print(" %d学分"%i,end=" , ")
print("\n")
sum=0
b=0
for i in l1:
b=i*a
sum+=b
print("学费:%d元"%b,end=" , ")
print("\n总学费为:%.2f元"%sum)
正确答案:
python = 3
math = 4
english = 4
physical_education = 2
military_theory = 2
philosophy = 2
tuition_per_credit = int(input())
total_credits = (python + math + english + physical_education + military_theory + philosophy)
total_tuition = total_credits * tuition_per_credit
print(f'你本学期选修了{total_credits}个学分。')
print(f'你应缴纳的学费为{total_tuition}元。')
12. (其它, 25分)
在三行中依次分别输入当前的年、月、日的整数值,按要求分行依次完成如下输出。
1 输出年月日,空格分隔,格式:2020 09 16
2 输出年-月-日,连字符“-”分隔,格式:2020-09-16
3 输出年/月/日,斜线“/”分隔,格式:2020/09/16
4 输出月,日,年,逗号“,”分隔,格式:09,16,2020
5 用str.format()格式输出,格式:2020年09月16日
6 用字符串拼接方法输出,格式:2020年09月16日
year = input() # 输入当前年,2022
month = input() # 输入当前月,09
date = input() # 输入当前日,16
我的答案:
20分
from calendar import month
year=input()
month=input()
day=input()
print(year,month,day)
print(year,month,day,sep='-')
print(year,month,day,sep='/')
print(month,day,year,sep=',')
print('{}年{}月{}日'.format(year,month,day))
print(year+'年'+month+'月'+day+'日')
正确答案:
year = input() # 输入当前年,2020
month = input() # 输入当前月,09
date = input() # 输入当前日,16
#=======================================================
# 补充你的代码
print(year, month, date) # 年 月 日,2020 09 16
print(year, month, date, sep='-') # 年-月-日,2020-09-16
print(year, month, date, sep='/') # 年/月/日,2020/09/16
print(month, date, year, sep=',') # 月,日,年,09,16,2020
print('{}年{}月{}日'.format(year,month,date)) # 2020年09月16日
print(year+'年'+month+'月'+date+'日') # 2020年09月16日
一. 单选题(共6题,30分)
1. (单选题, 5分)下面关于time库引用不正确的是( )。
- A. from time import strftime
- B. from * import time
- C.
from time import *
- D. import time
我的答案: B
2. (单选题, 5分)以下关于字符串.strip()方法功能说明正确的是( )。
- A. 掉字符串两侧指定字符
- B. 按照指定字符分割字符串为数组
- C. 替换字符串中特定字符
- D. 连接两个字符串序列
我的答案: A
3. (单选题, 5分)#0037003900390032003200371664422374045val=pow(2,1000),请用一行代码返回val结果的长度值。
- A. len(val)
- B. len(pow(2,1000))
- C. len(str(val))
- D. 其他答案均不正确
我的答案: C
4. (单选题, 5分)
0037003900390032003200371664422521805下面代码的输出结果是( )。
print(round(0.1 + 0.2,1) == 0.3)
- A. True
- B. 0
- C. false
- D. 1
我的答案: A
5. (单选题, 5分)表达式3+5%6*2//8的值是( )。
- A. 6
- B. 4
- C. 7
- D. 5
我的答案: B
6. (单选题, 5分)#0037003900390032003200371664422994407以下关于函数说法错误的是( )。
- A. 函数是一段具有特定功能的、可重用的语句组
- B. 对函数的使用必须了解其内部实现原理
- C. 函数通过函数名来调用
- D. 函数可以看做是一段具有名字的子程序
我的答案: B
二. 填空题(共6题,30分)
7. (填空题, 5分)
#0037003900390032003200371664423171541
下面代码的输出结果是________。
list1 = [m+n for m in 'AB' for n in 'CD']
print(list1)
我的答案:
(1) ['AC', 'AD', 'BC', 'BD']
8. (填空题, 5分)二维列表ls=[[1,2,3], [4,5,6],[7,8,9]],使用________可获取其中元素5?
我的答案:
(1) ls[1][1]
9. (填空题, 5分)
写出下述程序的执行结果( )。
s1 = [1, 3, '5', '7', True]
s1.append('False')
del s1[-2]
我的答案:
(1) [1, 3, '5', '7', 'False']
10. (填空题, 5分)
写出下述代码的执行结果________。
lst = [23, 56, 8, 900, 24]
print(llst.index(8))
我的答案:
(1) 2
11. (填空题, 5分)
请补充横线处的代码,让 Python 帮你随机选一个饮品吧!
import random
random.seed(1)listC = ['加多宝','雪碧','可乐','勇闯天涯','椰子汁']
print(random. ________ (listC))
我的答案:
(1) choice
12. (填空题, 5分)
下面代码的输出结果是________ 。
list1 = [i*2 for i in 'Python']
print(list1)
我的答案:
(1) ['PP', 'yy', 'tt', 'hh', 'oo', 'nn']
三. 简答题(共2题,40分)
13. (简答题, 20分)身份证号码验证:输入几个身份证号,首先判断输入的身份证号是否有效,如果有效,提取每个人的出生日期,性别,并获得其生肖,将每个人的出生日期、性别和生肖信息作为一个元组放入列表中输出。如果无效则输出身份证输入有误。
我的答案:
def check_id_data(n):
if len(n) != 18:
information1 = "身份证输入有误"
tuple1 = (information1,)
return tuple1
n2 = n[:16]
count = 0
var = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
var_id = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2']
zod = ['猴', '鸡', '狗', '猪', '鼠', '牛', '虎', '兔', '龙', '蛇', '马', '羊']
is_digit = (not (n2.isdigit())) or (not (n[17].isdigit()) and (n[17]) != "X")
year = int(n[6:10])
idx = year % 12
for i in range(0, 17):
count += int(n[i]) * var[i]
count %= 11
if (len(n) == 18) and (var_id[count]) == str(n[17]) and (not is_digit):
birth = n[6:10]+"年"+n[10:12]+"月"+n[12:14]+"日"
if int(n[16]) % 2 == 0:
gender = "女"
else:
gender = "男"
tuple1 = ("出生日期:"+birth, "性别:"+gender, "生肖:"+zod[idx])
return tuple1
else:
information1 = "身份证输入有误"
tuple1 = (information1,)
return tuple1
def main():
v = input("请输入2个18位身份证号,用空格分开:")
[a, b] = map(str, v.split())
information = []
for x in [a, b]:
x = check_id_data(x)
information.append(x)
print(information)
main()
14. (简答题, 20分)随机验证码生成。编写程序,在26个字母大小写和9个数字组成的列表中随机生成一个8位验证码。
我的答案:
import random
data = []
for i in range(65, 91):
data.append(chr(i))
for j in range(97, 123):
data.append(chr(j))
for k in range(48, 58):
data.append(chr(k))
Verification_code_first = random.sample(data, 8)
Verification_code_final = "".join(Verification_code_first)
print(Verification_code_final)
一. 单选题(共6题,30分)
1. (单选题, 5分)
0037003900390032003200371666839365318
下面代码的输出结果是( )。
for i in range(1,6):
if i/3 == 0:
break
else:
print(i,end =",")
- A.
1,2
- B.
1,2,3,4,
- C.
1,2,3,4,5,
- D. 1,2,3,
我的答案: A
2. (单选题, 5分)
下面对Python语言的for循环描述正确的是( )。
- A. 遍历循环
- B. 计数循环
- C. 无限循环
- D. 枚举循环
我的答案: A
3. (单选题, 5分)关于Python循环结构,以下选项中描述错误的是( )。
- A.
Python通过for、while等保留字构建循环结构
- B.
遍历循环中的遍历结构可以是字符串、文件、组合数据类型和range()函数等
- C.
continue结束整个循环过程,不再判断循环的执行条件
- D.
continue用来结束当前当次语句,但不跳出当前的循环体
我的答案: C
4. (单选题, 5分)
k=10000
while k>1:
print(k)
k=k/2
哪个选项给出了上述程序的输出次数?( )
- A. 1000
- B. 15
- C. 14
- D. 13
我的答案: C
5. (单选题, 5分)下列Python保留字中,不用于表示分支结构的是( )。
- A. if
- B. elif
- C. in
- D. else
我的答案: C
6. (单选题, 5分)对于Python的分支结构,以下选项中描述错误的是( )。
- A. Python中if-elif-else语句描述多分支结构
- B. Python中if-else语句用来形成二分支结构
- C. 分支结构可以向已经执行过的语句部分跳转
- D. 分支结构使用if保留字
我的答案: C
二. 填空题(共6题,30分)
7. (填空题, 5分)
下列程序的运行结果是 。
scopeTem = {}
scopeTem['x'] = 3
scopeTem['y'] = 4
exec("mul=x*y", scopeTem)
print(scopeTem['mul'])
我的答案:
(1) 12
8. (填空题, 5分)
下列程序的运行结果是 。
s1 = "ABCCCCBB"
counts = {}
for x in s1:
counts[x] = counts.get(x,0) + 1
lst = list(counts.items())
lst.sort(key=lambda x:x[1], reverse=True)
print("{}出现{}次".format(lst[0][0], lst[0][1]))
我的答案:
(1) C出现4次
9. (填空题, 5分)
下列程序的运行结果是 。
i = 1
while i + 1:
if i > 4:
i+=1
break
i += 1
i += 1
print(i)
我的答案:
(1) 6
10. (填空题, 5分)
下列程序的运行结果是 。
phoneBook = {'Alex':'6511-2002', 'Betty':'6512-7252',
'Dora':'6546-2708'}
phoneBook2 = phoneBook
phoneBook2['Betty'] = '1111-2222'
print(phoneBook['Betty'])
我的答案:
(1) 1111-2222
11. (填空题, 5分)
输出字典 fruits 中键值最大的键值对。请完善代码。
fruits = {"apple":10, "mango":12, "durian":20, "banana":5}
m = 'apple'
for key in fruits.keys():
#此段代码请完善
print('{}:{}'.format(m,fruits[m]))
我的答案:
(1) if fruits[key] == max(fruits.values()): m = key
12. (填空题, 5分)
请补充如下代码,将字典 d 中所有值以列表形式输出
d = {123:"123", 456:"456", 789:"789"}
print( )
我的答案:
(1) list(d.values())
三. 简答题(共2题,40分)
13. (简答题, 20分)
你刚刚大学毕业,在北京找到了一份很好的工作,决定开始存钱买房。由于北京的房价很高,你要攒几年钱才能付得起房子的首付。
现根据以下假定来计算你需要多长时间才能攒够首付款:
1.将你想购买的房子的总价称为total_cost。
2.将首付款占总房价的比例称为portion_down_payment。为简单起见,假设portion_down_payment = 0.30(30%)。
3.将存款金额称为current_savings。你的存款从0元开始。
4.假设你的年薪是annual_salary,按12个月平均发放,单位是元。
5.假设你每个月都要拿出一定百分比的工资来存首付。称为portion_saved,此值为一个表示百分比的整数,例如50表示50%。
6.假定你每6个月加一次工资,每半年加薪比例semi_annual_raise是一个表示百分比的整数,例如7表示7%,即第7个月的月初涨一次工资,工资涨幅为7%,以后每过6个月再涨一次工资。
写一个程序来计算你需要多少个月才能攒够钱付定金。
我的答案:
total_cost = float(input())
annual_salary = float(input())
portion_saved = float(input())
semi_annual_raise = float(input())
portion_down_payment = 0.3
def down_payment():
down_payment = total_cost * portion_down_payment
return down_payment
down_payment = down_payment()
print('首付', down_payment)
current_savings = 0
number_of_months = 1
monthly_salary = annual_salary / 12
monthly_deposit = monthly_salary * portion_saved
def print_current(number_of_months, monthly_salary, semi_annual_raise, monthly_deposit ):
enough = True
current_saving = 0
while enough:
current_saving = current_saving + monthly_deposit # 发工资了,先给自己存一笔
if current_saving >= down_payment:
print(f'需要{number_of_months}个月可以存够首付')
enough = False
return
if number_of_months % 12 == 0:
print("第{}个月月末有{:,.0f}元存款".format(number_of_months, current_saving)) # 每12个月输出一次存款,保留0位小数,使用千分符
if number_of_months % 6 == 0:
monthly_deposit = monthly_deposit * (1 + semi_annual_raise)
number_of_months = number_of_months + 1
print_current(number_of_months, monthly_salary, semi_annual_raise, monthly_deposit)
14. (简答题, 20分)
个人所得税计算器
2018年10月1日以前,个税免征额为3500元/月,调整后,个税免征额为5000元/月,7级超额累进个人所得税税率表如下:
所得税计算公式如下:
应纳税额 = (工资薪金所得 - 五险一金 - 个税免征额) × 适用税率 - 速算扣除数
请编写一个个人所税计算器,用户输入应发工资薪金所得、五险一金金额和个税免征额,输出应缴税款和实发工资,结果保留小数点后两位。当输入应发工资小于0或等于0时,输出“error”。
其中:实发工资 = 应发工资 - 五险一金 - 应缴税款
我的答案:
a=int(input("输入应发工资薪金所得:"))
b=int(input("输入五险一金金额:"))
c=int(input("输入个税免征额:"))
if a<=0:
print("error")
else:
if a<c:
d=0
else:
if a-c<=3000:
d=(a-b-c)*0.03
elif 3000<a-c<=12000:
d=(a-b-c)*0.1-210
elif 12000<a-c<=25000:
d=(a-b-c)*0.2-1410
elif 25000<a-c<=35000:
d=(a-b-c)*0.25-2660
elif 35000<a-c<=55000:
d=(a-b-c)*0.3-4410
elif 55000<a-c<=80000:
d=(a-b-c)*0.35-7160
elif 80000<a-c:
d=(a-b-c)*0.45-15160
e=a-b-d
print("应缴税款{:.2f}元,实发工资{:.2f}元。".format(d,e))