A、
2
B、
2
C、
2
D、
x>2 or x<=10
正确答案: B 我的答案:B 得分: 5.0分
6
在Python中,以下赋值语句正确的是()。
A、
x+y=10
B、
x=2y
C、
x=y=20
D、
3y=x+1
正确答案: C 我的答案:C 得分: 5.0分
7
为了给整型变量x、y、z赋初值10.下面的Python赋值语句正确的是()。
A、
xyz=10
B、
x=10 y=10 z=10
C、
x=y=z=10
D、
x=10,y=10,z=10
正确答案: C 我的答案:C 得分: 5.0分
8
为了给整型变量x、y、z赋初值5,下面Python赋值语句正确的是()。
A、
x=5;y=5;z=5
B、
xyz=5
C、
x,y,z=5
D、
x=5,y=5,z=5
正确答案: A 我的答案:C 得分: 0.0分
9
x=2并且y=3,复合赋值语句x*=y+5执行后,x变量中的值是()。
A、
11
B、
16
C、
13
D、
26
正确答案: B 我的答案:B 得分: 5.0分
10
在整型变量x中存放了一个两位数,如果要将该两位数的个位数字和十位数字交换,例如将13变成31,以下Python表达式正确的是()。
A、
(x%10)*10+x//10
B、
(x%10)//10+x//10
C、
(x/10)%10+x//10
D、
(x%10)*10+x%10
正确答案: A 我的答案:A 得分: 5.0分
二.填空题(共10题,50.0分)
1
Python语句分为( )语句和复合语句。
正确答案:
第一空:
简单
我的答案: 得分: 5.0分
第一空:
简单
批语
2
在Python使用( )格式划分语句块。
正确答案:
第一空:
缩进对齐
我的答案: 得分: 0.0分
第一空:
缩进
批语
3
在Python中如果语句太长,可以使用( )作为续行符。
正确答案:
第一空:
\
我的答案: 得分: 5.0分
第一空:
\
批语
4
在Python中书写两条语句时,语句之间可以使用( )作为分隔符。(填符号)
正确答案:
第一空:
;
我的答案: 得分: 5.0分
第一空:
,
批语
5
Python中要表示一个空的代码块,可以使用空语句( )。
正确答案:
第一空:
pass
我的答案: 得分: 0.0分
第一空:
_
批语
6
Python表达式4.5/2的值为( )。
正确答案:
第一空:
2.25
我的答案: 得分: 0.0分
第一空:
2
批语
7
4.5//2的值为( )。
正确答案:
第一空:
2.0
我的答案: 得分: 0.0分
第一空:
2.25
批语
8
4.5%2的值为( )。
正确答案:
第一空:
0.5
我的答案: 得分: 5.0分
第一空:
0.5
批语
9
Python表达式12/4-2+5*8/4%5/2的值为( )。
正确答案:
第一空:
1.0
我的答案: 得分: 0.0分
第一空:
1
批语
10
Python语句序列“a,b=3,4;a,b=b,a;print(a,b)”的执行结果是( )。
正确答案:
第一空:
4 3
我的答案: 得分: 5.0分
第一空:
4,3
一.其它(共6题,100.0分)
1
从键盘输入一个正整数列表,以-1结束,分别计算列表中奇数和偶数的和。
(10.0分)
正确答案:
#exercise4_1.py
#coding=utf-8
list1=[]
sum1,sum2=0,0
a=int(input("请输入一个正整数(-1表示结束):"))
while a!=-1:
list1.append(a)
if a%2!=0:
sum1+=a
else:
sum2+=a
a=int(input("请输入一个正整数(-1表示结束):"))
print("列表为:" , list1)
print("奇数和:",sum1,",偶数和:",sum2,sep="")
我的答案:
键盘输入的过程我就不写了,随机生成一个类似的列表代替
import random
L = [ random.randint(1, 100) for x in range(10) ]
A = [ x for x in L if not x % 2 ]
B = [ x for x in L if x % 2 ]
print(L)
print("偶数列表:{0} 和为:{1}".format(A,sum(A)))
print("奇数列表:{0} 和为:{1}".format(B,sum(B)))
2
已知10个学生的成绩为68,75,32,99,78,45,88,72,83,78,请将成绩存放在列表中,请对其进行统计,输出优(100~90)、良(89~80)、中(79~60)、差(59~0)4个等级的人数。
(10.0分)
正确答案:
#exercise4_2.py
#coding=utf-8
score=[68, 75, 32, 99, 78, 45, 88, 72, 83, 78]
a,b,c,d = 0,0,0,0
#输出所有成绩以及进行分段统计
print("成绩分别为:",end=' ')
for s in score:
print(s,end=' ')
if s < 60:
d = d + 1
elif s < 80:
c = c + 1
elif s < 90:
b = b + 1
else:
a = a + 1
#换行
print()
print("分段统计结果:优",a,"人,良",b,"人,中",c,"人,差",d,"人")
3
利用while循环创建一个包含10个奇数的列表,如果输入的不是奇数要给出提示信息并能继续输入,然后计算该列表的和与平均值。
(10.0分)
正确答案:
#exercise4_3_1.py
#coding=utf-8
print("请输入数字构建一个包含10个奇数的列表")
count=0
list1=[]
while count<10:
a=int(input("请输入数字:"))
if a%2!=0:
list1.append(a)
count+=1
else:
print("输入的不是奇数!!")
print("列表为:" , list1)
print("和:",sum(list1))
print("平均值:",sum(list1)/len(list1))
我的答案:
4
请用字典编程,已知某班学生的姓名和成绩如下:
姓名 成绩 姓名 成绩
张三 45 司音 90
李四 78 赵敏 78
徐来 40 张旭宁 99
沙思思 96 柏龙 60
如一 65 思琪 87
输出这个班的学生姓名和成绩,并求出全班同学的人数和平均分并显示。
(10.0分)
正确答案:
#exercise4_4.py
#coding=utf-8
studscore = {"张三": 45, "李四": 78, \
"徐来": 40,"沙思思": 96, \
"如一": 65, "司音": 90, \
"赵敏": 78, "张旭宁": 99, \
"柏龙": 60, "思琪": 87}
#输出所有成绩:
print("成绩分别为:")
for key in studscore.keys():
print(key,studscore[key])
ss = len(studscore)
avrscore = sum(studscore.values())/ss
print("全班共有",ss,"人,平均成绩为:",avrscore,"分。")
我的答案:
5
某家商店根据客户消费总额的不同将客户分为不同的类型。如果消费总额≥10万元,为铂金卡客户(platinum);如果消费总额≥5万元且<10万元,为金卡客户(gold);如果消费总额≥3万元且<5万元,为银卡客户(silver);如果消费总额<3万元,为普卡客户(ordinary)。现有一批顾客的消费金额(单位:万元)分别为2.3、4.5、24、17、1、7.8、39、21、0.5、1.2、4、1、0.3,将消费金额存储在列表list1中,输出一个字典,分别以platinum、gold、silver、ordinary为键,以各客户类型人数为值。
(30.0分)
正确答案:
#exercise4_5.py
#coding=utf-8
list1=[2.3,4.5,24,17,1,7.8,39,21,0.5,1.2,4,1,0.3]
s1,s2,s3,s4=0,0,0,0
dict1={}
for i in list1:
if i>=10:
s1+=1
elif i>=5:
s2+=1
elif i>=3:
s3+=1
else:
s4+=1
dict1['platinum']=s1
dict1['gold']=s2
dict1['silver']=s3
dict1['ordinary']=s4
print(dict1)
我的答案:
6
某企业为职工发放奖金:如果入职超过5年,且销售业绩超过15000元的员工,奖金比例为0.2;销售业绩超过10000元的员工,奖金比例为0.15;销售业绩超过5000元的员工,奖金比例为0.1;其他奖金比例为0.05。如果是入职不超过5年,且销售业绩超过4000的员工,奖金比例为0.045;否则为0.01。输入入职年限、销售业绩,输出奖金比例、奖金,并将奖金存放到列表中并输出该列表。入职年限(为整数)输入一1的时候结束输入,为了简化所有输入均假定正确,不需判断小于0的情况。奖金为销售业绩与奖金比例的乘积。
(30.0分)
正确答案:
#exercise4_6.py
#coding=utf-8
#变量说明:bonus奖金 n入职年限 sales销售业绩 ratio奖金比例
list1=[]
n=int(input("请输入入职年限:"))
while n!=-1:
sales=float(input("请输入销售业绩:"))
if n>5:
if sales>15000:
ratio=0.2
elif sales>10000:
ratio=0.15
elif sales>5000:
ratio=0.1
else:
ratio=0.05
else:
if sales>4000:
ratio=0.045
else:
ratio=0.01
bonus=sales*ratio
print("您的奖金比例:",ratio,"您的奖金:",bonus)
list1.append(bonus)
n=int(input("请输入入职年限:"))
print("奖金列表为:",list1)
我的答案:
一.其它(共4题,100.0分)
1
输入5个整数放到列表list1中,输出下标及值,然后将列表list1中大于平均值的元素组成一个新列表list2,输出平均值和列表list2。请利用列表推导式解决该问题。
正确答案:
#exercise4_7.py
#coding=utf-8
list1=[int(input("请输入第"+str(i+1)+"个数字:")) for i in range(5)]
for i,x in enumerate(list1):
print('下标:',i,' 值:',x)
avg = sum(list1)/len(list1)
list2 = [i for i in list1 if i>avg]
print("平均值:",avg)
print(list2)
我的答案:
def main():
#list1=[100-i-j for i in range(0,10) for j in range(0,33) ]
#list1=[[u,w,q] for q in range(0,10) for w in range(0,33) for u in list1 if 3 * w + 5 * q + u / 3.0 == 100 ]
#list2=[1,9,8,7,6,5,13,3,2,1]
#list3=[u for u in list2 if u%2!=0]
list1=[]
sum=0
for i in range(0,5):
i=eval(input("输入整数"))
list1.append(i)
sum+=i
avg=sum/5
list3=[u for u in list1 if u>avg]
print(list3)
if __name__ == '__main__':
main()
转存失败重新上传取消
2
编写程序,将由1、2、3、4这4个数字组成的每位数都不相同的所有三位数存入一个列表中并输出该列表。请利用列表推导式解决该问题。
正确答案:
#exercise4_8.py
#coding=utf-8
digits=(1,2,3,4)
a=[i*100+j*10+k for i in digits for j in digits for k in digits \
if i!=j and j!=k and i!=k]
print(a)
我的答案:
def main():
i=1
list1=[i*100+j*10+k for i in range(1,5) for j in range(1,5) for k in range(1,5) if i!=j and i!=k and j!=k ]
print(list1)
if __name__ == '__main__':
main()
转存失败重新上传取消
3
编写程序,给定列表[1,9,8,7,6,5,13,3,2,1],先输出原列表,删除其中所有奇数后再输出。请利用列表推导式解决该问题。
正确答案:
#exercise4_9.py
#coding=utf-8
list1=[1,9,8,7,6,5,13,3,2,1]
print("列表:",list1)
list1=[i for i in list1 if i%2==0]
print("删除其中所有奇数:",list1)
我的答案:
def main():
#list1=[100-i-j for i in range(0,10) for j in range(0,33) ]
#list1=[[u,w,q] for q in range(0,10) for w in range(0,33) for u in list1 if 3 * w + 5 * q + u / 3.0 == 100 ]
list2=[1,9,8,7,6,5,13,3,2,1]
list3=[u for u in list2 if u%2!=0]
print(list3)
if __name__ == '__main__':
main()
转存失败重新上传取消
批语
刚好保留了奇数,删除了偶数。
4
百钱买百鸡:一只公鸡5元钱,一只母鸡3元钱,三只小鸡1元钱,现在要用100元钱买100只鸡,问公鸡、母鸡、小鸡各多少只?请利用列表推导式解决该问题。
正确答案:
#exercise4_10.py
#coding=utf-8
kk=[(x,y,100-x-y) for x in range(21) \
for y in range(34) if (5*x+3*y+(100-x-y)/3==100)]
for i in kk:
print("公鸡:",i[0],"母鸡:",i[1],"小鸡:",i[2])
我的答案:
def main():
list1=[100-i-j for i in range(0,10) for j in range(0,33) ]
list1=[[u,w,q] for q in range(0,10) for w in range(0,33) for u in list1 if 3 * w + 5 * q + u / 3.0 == 100 ]
print(list1)
if __name__ == '__main__':
main()
正在上传…重新上传取消
1 编写函数,判断一个数是否为素数。调用该函数判断从键盘输入的数是否为素数。素数也称为质数,是指只能被1和它本身整除的数。
import math
def IsPrime(Num):
if Num ==1:
return False
else:
for n in range(2,int(math.sqrt(Num))+1):
if Num%n==0:
return False
else:
return True
n=input('输入回你要判断的数:')
n=int(n)
if IsPrime(n)==True:
print(n,'是素数答')
else:
print(n,'不是素数')
2 编写函数,求出一个数除了1和自身以外的因子。从键盘输入一个数,调用该函数输出除了1和它本身以外的所有因子。
x=int(input("input x="))
a=2
s=[]
for i in range(1,x+1):
if x>a and x%a==0:
s.append(a)
a=a+1
print("answer is",s)
3编写函数,判断一个数是否为水仙花数。调用该函数打印出1000以内的所有水仙花数。
水仙花数是指一个n位数(n>=3),它的每个位上的数字的n次幂之和等于它本身。例如:13+53+33=153,则153是水仙花数。水仙花数知识自幂数的一种,严格来说三位数的3次幂数才称为水仙花数。
# Python 检测用户输入的数字是否为阿姆斯特朗数
# 获取用户输入的数字
num = int(input("请输入一个数字: "))
# 初始化变量 sum
sum = 0
# 每位数需要的指数
n = len(str(num))
# 检测
temp = num
while temp > 0:
digit = temp % 10#digit取得temp位数的最后位
sum += digit ** n
temp //= 10#逐渐将个、十、百的位数去掉
# 输出结果
if num == sum:
print(num,"是阿姆斯特朗数")
else:
print(num,"不是阿姆斯特朗数")
4 编写函数,求斐波那契数列的前20项。斐波那契数列的第1项和第2项分别是0和1,从第3项开始,每一项都是前两项之和。如:0,1,1,2,3,5,8,13,21…。试用递归函数实现。
f1 = 1;f2 = 1
for i in range(1,11):
print(str.format("{0:6}{1:6}", f1, f2), end=" ")
#每行输出两个数,每个占6位,空格分隔
if i % 2 == 0:print() #显示4项后换行
f1 += f2; f2 += f1 #关键
基础编程题(共60分,每题20分)代码复制,运行结果截图。
1.从键盘输入一个正整数n,用while循环找出小于等于该整数n且能被23整除的最大正整数。如果找到了,输出该整数;如果没有找到,则输出“未找到”。
x = eval(input("请输入一个正整数:"))
for i in range(x, 0, -1):
if i%23== 0:
print("{}是能被23整除的最大正整数。".format(i))
break
else:
print("未找到")
2.先定义函数fact(n)完成n!,并依次调用函数fact(n)来实现1/1!+1/3!+1/5!+1/7!+1/9!的运算,并用print函数输出求得的结果。
def fact(n):
if n==1:
return 1
else:
result=1
for i in range(1,n+1):
result*=i
return result
def main():
sum=0
for i in range(0,10):
if i%2!=0:
print(i)
sum+=1/fact(i)
print(sum)
if __name__ == '__main__':
main()
3.编写程序生成九九乘法表,并将之写入到文本文件multiply.txt中。并同时输出到屏幕上。
if __name__ == '__main__':
with open("test01.txt","w+",encoding="utf-8") as wq:
for i in range(1,10):
for j in range(1,i+1):
wq.write(str(j)+"*"+str(i)+"="+str(i*j)+" ")
wq.write("\n")
面向对象编程题(共40分,)代码复制,运行结果截图。
4.定义一个学生Student类。
有下面的类属性:
学号 num
姓名 name
性别 sex
年龄 age
成绩 score(语文,数学,英语) [用列表类型保存,成绩的类型为整数]
有下面的类方法:
自定义一个__init__()方法
获取学生的姓名:get_name() 返回类型:str
获取学生的年龄:get_age() 返回类型:int
返回3门科目中最高的分数。get_course() 返回类型:int
定义2个学生实例,其中一个实例的基本信息用自己的真实信息,另一个自己随机定义,合理即可。并通过实例引用每个类方法,并输出相应结果。
class student:
def __init__(self,a,b,c,d,e):
self.__num=a
self.__name=b
self.__sex=c
self.__age=d
self.__score=e
def get_name(self):
return self.__name
def get_age(self):
return self.__age
def get_course(self):
max=0
for i in self.__score:
if i>max:
max=i
return max
def main():
s=student('2018754127','魏**',"男",20,[60,60,61])
print(s.get_age())
print(s.get_course())
print(s.get_name())
if __name__ == '__main__':
main()