Python考试题库(含答案)

题目答案(代码部分博主手打)不唯一,仅供参考,可提供修改意见。

  1. 编写程序,使用循环语句输出1+2+3+…+100的和。
sum=0

for i in range(1,101):

sum+=i

print("1+2+3+…+100的和为",sum)

2编写程序,使用循环语句输出1+4+7+10+13+…+112的和。

sum=0

for i in range(1,113,3):

    sum+=i

print("1+4+7+10+13+…+112的和为",sum)

3.编程程序,使用循环语句输出5+10+15+20+25+…+100的和

sum=0

for i in range(5,101,5):

    sum+=i

print("5+10+15+20+25+…+100的和为",sum)

4. 编写程序,从键盘输入两个正整数,计算并输出这两个数的最大公约数。

a=int(input("请输入第一个正整数:"))

b=int(input("请输入第一个正整数:"))

while(a):

    if a

5. 编写程序,输入一个18位的身份证号码,从中提取出生日期,并以“出生日期是*年*月*日”样的格式输出。

m=input('请输入一个18位的身份证号:')

if len(m)<18:

    print("输入错误!")

else:

    a=int(m[6:10])

    b=int(m[10:12])

    c=int(m[12:14])

    print('出生日期是%d年%d月%d日'%(a,b,c))

6. 编写程序,用户输入一个月份,输出该月份所属0的季节。要求对输入的非法数据进行判断,直到输入正确的月份为止。

i=1

while i:

    m=float(input('请输入一个月份:'))

    if m>12 or m<=0 or m%1!=0:

        i=1

        print('输入的数据为非法数据,请重新输入!')

    else:

        i=0

if m>0 and m<=3:

    print('%d月所属第一季度'%m)

elif m>=4 and m<=6:

    print('%d月所属第二季度'%m)

elif m>=7 and m<=9:

    print('%d月所属第三季度'%m)

elif m>=10 and m<=12:

    print('%d月所属第四季度'%m)

7. 编写函数IsPrime(n),用来判断整数n是否为素数,并编写测试代码,调用该函数。

def IsPrime(n):

    a=int(n/2+1)

    j=0

    for i in range(2,a):

        if n%i==0:

            j+=1

    if j>0:

        print('%d不是素数'%n)

    else:

        print('%d是素数'%n)

n=int(input('请输入一个正整数:'))

IsPrime(n)

8. 编写程序,输出100~200之间的所有素数。

def IsPrime(n):

    a=int(n/2+1)

    j=0

    for i in range(2,a):

        if n%i==0:

            j+=1

    if j>0:

        print('%d不是素数'%n)

    else:

        print('%d是素数'%n)

for n in range(100,201):

    IsPrime(n)

9. 编写函数Fac(n),用于求n!,其中n>=0, 并编写测试代码调用该函数。

def Fac(n):

    i=1

    for j in range(2,n+1):

        i*=j

    print('%d!=%d'%(n,i))

n=int(input('请输入一个正整数:'))

Fac(n)

10. 编写程序,求:今有鸡兔同笼,上有35头,下有94足,问鸡兔各几何?

for chicken in range(0,36):

    if chicken*2+(35-chicken)*4==94:

        print('鸡有%d'%chicken,'兔有%d'%(35-chicken))

11.编写程序,能完成简单的指法练习功能:由系统随机从26个大小写字母中选出10个,由用户输入,并统计用户输入的准确率。

import random

chars="abcdefghijklmnopqrstuvwxyz"

a=[random.choice(chars) for j in range(10)]

a=''.join(a) #将列表中所有字符连接成字符串

print(a)

b=input('请输入上文内容:')

num=0

i=1

while i:

    if len(a)!=len(b):

        print('输入长度不相等')

        i=1

    else:

        i=0

for a_ch,b_ch in zip(a,b):

    if a_ch==b_ch:

        num+=1

rate=num/len(a)

print('准确率为:',rate)

12.编写程序,生成一个文件,文件名为“学号姓名.txt”(写自己真实的学号和姓名,机器不支持汉字的可以用拼音);文件内容为学Python这门课的收获、感想或建议。

a=['学号:1907381106',

   '姓名:陈佳'

   ]

f=open("学号姓名.txt",'w',encoding='utf8')

f.writelines(a)

f.close()

print('写入成功!')

13.读取一个Python源程序文件“text1.py”,去掉其中的空行和注释行,然后写入另一文件“text2.py”。

f1=open("text1.py","r",encoding='utf8')

f2=open("text2.py","w",encoding='utf8')

lines=f1.readlines()

for i in lines:

    if len(i)!=1 and not(i.startswith("#")):

        f2.writelines(i)

f1.close()

f2.close()

print('成功!')

14. 编写程序,将九九乘法表按照规范的格式输出到文件“9981.txt”中。

with open('9981.txt','w') as f:

    for i in range(1,10):

        for j in range(1,i+1):

            a=str(j)+'*'+str(i)+'='+str(i*j)+'\t'

            print(a,end='')

            f.write(a)

        print()

        f.write('\n')

15. 编写程序,创建基类Person,其成员包括实例属性name和age,实例方法setName()和setAge()分别用来给实例属性赋值,实例方法show()用来输出实例属性name和age的值;创建派生类Student,继承Person类,新增实例属性major(专业),新增实例方法setMajor()用来给实例属性major赋值,重写基类的实例方法show()输出所有实例属性的值。利用__init__()构造方法完成Person和Student类的对象初始化工作,并编写测试代码。

class Person:

    def __init__(self,name,age):

        self.name=name

        self.age=age

    def setName(self,name):

        self.name=name

    def setAge(self,age):

        self.age=age

    def show(self):

        print(self.name,self.age)

class Student(Person):

    def __init__(self,name,age,major):

        Person .__init__(self,name,age)

        self.major=major

    def setMajor(self,major):

        self.major=major

    def show(self):

        print(self.name,self.age,self.major)

p=Person('陈一',21)

p.setName('程二')

p.setAge(20)

p.show()

f=Student('陈二',15,'初中生')

f.setName('陈一')

f.setAge(21)

f.setMajor('大数据')

f.show()

16. 编写程序,创建基类Shape,其成员包括实例属性color,实例方法getColor()用于获取实例属性color的值,实例方法setColor()用来设置实例属性color的值;创建派生类Rectange,继承Shape类,新增实例属性length(长)和width(宽),新增实例方法getPerimeter ()和getArea()用来分别获取长方形的周长和面积。利用__init__()构造方法完成Shape和Rectange类的对象初始化工作,并编写测试代码。

class Shape:

    def __init__(self,color):

        self.color=color

    def getColor(self):

        print(self.color)

    def setColor(self,color):

        self.color=color

class Rectange(Shape):

    def __init__(self,color,length,width):

        Shape .__init__(self,color)

        self.length=length

        self.width=width

    def setPerimeter(self,length,width):

        self.length=length

        self.width=width

        print('周长为:',(self.length+self.width)*2)

    def setArea(self,length,width):

        self.length=length

        self.width=width

        print('周长为:',self.length*self.width)

p=Shape('蓝色')

p.getColor()

p.setColor('绿色')

p.getColor()

f=Rectange('红色',3,4)

f.setPerimeter(2,3)

f.setArea(2,3)

17.编写程序,创建基类Vehicle,其成员包括实例属性brand(品牌)和color(颜色),实例方法showInfo()用来输出实例属性brand和color的值;创建派生类Car,继承Vehicle类,新增实例属性seat(座位数),重写基类的实例方法showInfo ()输出所有实例属性的值。利用__init__()构造方法完成Vehicle和Car类的对象初始化工作,并编写测试代码。

class Vehicle:

    def __init__(self,brand,color):

        self.brand=brand

        self.color=color

    def showInfo(self):

        print(self.brand,self.color)

class Car(Vehicle):

    def __init__(self,brand,color,seat):

        Vehicle .__init__(self,brand,color)

        self.seat=seat

    def showInfo(self):

        print(self.brand,self.color,self.seat)

p=Vehicle('兰博基尼','蓝色')

p.showInfo()

f=Car('红旗','白色',4)

f.showInfo()

18.用Windows记事本创建一个文本文件,其中每行包含一段英文,编写程序,读出文件的全部内容,并输出该文本文件的行数,以及一行中包含字符最多的和包含字符最少的分别在第几行。

f=open("English.txt",'r')

lines=f.readlines()

count=len(lines)

l=[]

m=0

n=0

for i in lines:

    num=len(i)

    l.append(num)

print("这文本文件共有%d行"%count)

print("一行中字符最多的在第%d行"%(l.index(max(l))+1))

print("一行中字符最少的在第%d行"%(l.index(min(l))+1))

19.编写程序,产生两个0~100之间的随机整数a和b,求这两个整数的最大公约数和最小公倍数。( 两个数的最小公倍数 = 两个数的乘积 / 两个数的最大公约数)。

import random

a=random.randint(0,100)

b=random.randint(0,100)

i=a

j=b

print('a=',a)

print('b=',b)

while(a):

    if a

20.编写程序,输入一个百分制成绩,要求输出成绩等级'A'、'B'、'C'、'D'和'E',90~100分为'A',80~89分为'B',70~79分为'C',60~69分为'D',60分以下为'E'。
 

n=int(input('请输入一个百分制成绩:'))

if n<=100 and n>=90:

    print('成绩等级为A')

if n<=89 and n>=80:

    print('成绩等级为B')

if n<=79 and n>=70:

    print('成绩等级为C')

if n<=69 and n>=60:

    print('成绩等级为D')

if n<60:

    print('成绩等级为E')

你可能感兴趣的:(python)