一、选择题

1、关于面向过程和面向对象,下列说法错误的是(B)。

A.面向过程和面向对象都是解决问题的一种思路
B.面向过程是基于面向对象的
C.面向过程强调的是解决问题的步骤
D.面向对象强调的是解决问题的对象

2、关于类和对象的关系,下列描述正确的是(D)。

A.类是面向对象的核心
B.类是现实中事物的个体
C.对象是根据类创建的,并且一个类只能对应一个对象
D.对象描述的是现实的个体,它是类的实例

3、构造方法的作用是(C)。

A.一般成员方法 B.类的初始化
C.对象的初始化 D.对象的建立

4、构造方法是类的一个特殊方法,Python 中它的名称为(C)。

A.与类同名 B. _construct C. init D. init

5、Python 类中包含一个特殊的变量(A),它表示当前对象自身,可以访问类的成员

A. self B. me C.this D.与类同名

二、填空题

1、Python安装扩展库常用的是___工具。(pip

2、Python程序文件扩展名主要有__和__两种,其中后者常用于GUI程序。(py、pyw

3、查看变量类型的Python内置函数是______。(type()

4、列表对象的sort()方法用来对列表元素进行原地排序,该函数返回值为 _____。(None

5、查看变量内存地址的Python内置函数是_______。(id()

6、Python源代码程序编译后的文件扩展名为___。(pyc

7、为了提高Python代码运行速度和进行适当的保密,可以将Python程序文件编译为扩展名____的文件。(pyc

8、____命令既可以删除列表中的一个元素,也可以删除整个列表。(del

三、判断题

1、在 Python 中定义类时,如果某个成员名称前有 2 个下划线则表示是私有成员。(

2、在类定义的外部没有任何办法可以访问对象的私有成员。(错)

3、Python 中一切内容都可以称为对象。(

4、在一个软件的设计与开发中,所有类名、函数名、变量名都应该遵循统一的风格和规范。 (

5、定义类时所有实例方法的第一个参数用来表示对象本身,在类的外部通过对象名来调用
实例方法时不需要为该参数传值。(

6、对于 Python 类中的私有成员,可以通过“对象名._类名__私有成员名”的方式来访问。 (

7、使用内置函数 open()且以”w”模式打开的文件,文件指针默认指向文件尾。(

8、使用内置函数 open()打开文件时,只要文件路径正确就总是可以正确打开的。(

9、假设已导入 random 标准库,那么表达式 max([random.randint(1,10) for i in range(10)]) 的值一定是 10。(

10、Python是一种跨平台、开源、免费的高级动态编程语言。(

11、 Python 3.x完全兼容Python 2.x。(

12、 使用内置函数open()且以”w”模式打开的文件,文件指针默认指向文件尾。(

13、 使用内置函数open()打开文件时,只要文件路径正确就总是可以正确打开的。(

14、 Python变量使用前必须先声明,并且一旦声明就不能再当前作用域内改变其类型(

15、 Python采用的是基于值得自动内存管理方式。(

16、 在定义函数时,某个参数名字前面带有一个*符号表示可变长度参数,可以接收任意多个普通实参并存放于一个元组之中。(

17、 在定义函数时,某个参数名字前面带有两个*符号表示可变长度参数,可以接收任意多个关键参数并将其存放于一个字典之中。(

18、 定义函数时,带有默认值的参数必须出现在参数列表的最右端,任何一个带有默认值的参数右边不允许出现没有默认值的参数。(

19、 在调用函数时,可以通过关键参数的形式进行传值,从而避免必须记住函数形参顺序的麻烦。(

20、 在调用函数时,必须牢记函数形参顺序才能正确传值。(

21、 调用函数时传递的实参个数必须与函数形参个数相等才行。(

四、解答题

1、阅读下面的代码,并分析假设文件“D:\test.txt”不存在的情况下两段代码可能发生的问
题。
代码 1:

>>> try:
fp = open(r'd:\test.txt')
print('Hello world!', file=fp)
finally:
fp.close()

代码 2:

>>> try:
fp = open(r'd:\test.txt', 'a+')
print('Hello world!', file=fp)
finally:
fp.close()

答: 假设文件"D:\test.txt"不存在,那么第一段代码会抛出异常,提示fp没有定义;第二段代码执行正常。原因是第二段代码使用内置函数open()打开指定文件时如果不存在则会创建该文件,从而不会抛出异常。

2、写出下面代码的优化版本,提高运行效率。

x = list(range(500))
for item in x:
t = 5**5
print(item+t)

答:
x = list(range(500))
t = 5**5
for item in x:
print(item+t)

3、写出下面代码的运行结果。

def Sum(a, b=3, c=5):
return sum([a, b, c])
print(Sum(a=8, c=2))
print(Sum(8))
print(Sum(8,2))

答: 13 16 15
4、阅读下面的程序,判断其是否可以正常运行,如果可以运行则写出执行结果,如果不能
运行则写出理由。

class Test:
def __init__(self, value):
self.__value = value
@property def value(self):
return self.__value
t = Test(3)
t.value = 5
print(t.value)

答:不能运行,程序中定义的是只读属性,不能修改属性的值。

五、代码设计题

(部分题目略,考试后忘了题目后期补充)

1、

import re
value = []
print("请输入:")
items=[x for x in input().split(',')]
for p in items:if len(p)<6 or len(p)>12:continueelse:passif not re.search("[a-z]",p):continueelif not re.search("[0-9]",p):continueelif not re.search("[A-Z]",p):continueelif not re.search("[$#@]",p):continueelif re.search("\s",p):continueelse:passvalue.append(p)
print (",".join(value))

2、

x=input("x=")
l=x.split()
d={}
for i in l:d[i]=d.get(i,0)+1l2=sorted(d)
for i in l2:print("{}:{}".format(i,d[i]))l=[]
for i in range(3):x=int(input("x="))
l.append(x)
l.sort()
for i in l:print(i,end=" ")

3、小明爱跑步和吃东西。

1)小明体重75.0公斤
2)每次跑步会减肥0.5公斤
3)每次吃东西体重会增加1公斤
4)小美的体重是45.0公斤

class Person:def __init__(self, name, weight):self.name = nameself.weight = weightdef __str__(self):return '我的名字叫 %s 体重是 %.2f' % (self.name, self.weight)def run(self):print ('%s 爱跑步' % self.name)self.weight -= 0.5def eat(self):print ('%s 吃东西' % self.name)self.weight += 1
xx = Person('小明', 75.0)
xx.run()
xx.eat()
print (xx)
xm = Person('小美', 45.0)
xm.run()
xm.eat()
print (xm)
print (xx)

4、摆放家具
需求:
1)房子有户型,总面积和家具名称列表
新房子没有任何的家具
2)家具有名字和占地面积,其中
床:占4平米
衣柜:占2平面
餐桌:占1.5平米
3)将以上三件家具添加到房子中
4)打印房子时,要求输出:户型,总面积,剩余面积,家具名称列表

class Home:def __init__(self,home_type,area):self.home_type = home_typeself.area = areaself.freearea = area  #初始值等于总面积self.jiaju = []def __str__(self):#输出:户型,总面积,剩余面积,家具名称列表return (' 户型:%s \n 总面积:%.2f \n 剩余面积:%.2f \n 家具名 %s'%(self.home_type,self.area,self.freearea,self.jiaju))def add_jiaju(self,itm):print('要添加%s'%itm)#判断家具的面积if itm.area > self.freearea:print('%s的面积太大,无法添加!'%(itm.name))return#将家具的名称添加到列表self.jiaju.append(itm.name)#计算剩余面积self.freearea -=itm.area
class jiaju():def __init__(self,name,area):self.name = nameself.area = areadef __str__(self):return "[ %s ]:占地 [ %.2f ] 平米"%(self.name,self.area)
#创建家具
bed = jiaju("床",4)
chest = jiaju('衣柜',2)
table = jiaju('餐桌',1.5)
print('bed:',bed)
print('bed:',bed.name)
print('bed:',bed.area)
print(chest)
print(table)
#创建房子
myhome = Home('三室一厅',100)
myhome.add_jiaju(bed)
myhome.add_jiaju(chest)
myhome.add_jiaju(table)
print(myhome)

5、需求:
1)士兵瑞恩有一把AK47
2)士兵可以开火(士兵开火扣动的是扳机)
3)枪能够发射子弹(把子弹发射出去)
4)枪能够装填子弹 --增加子弹的数量

class Gun(object):def __init__(self,model):self.model = modelself.bullet_count = 0def add_bullet(self,count):self.bullet_count += countdef shoot(self):if self.bullet_count <= 0 :print('%s没有子弹' %(self.model))else:self.bullet_count -= 1print('%s的子弹数量为%s' %(self.model,self.bullet_count))
class Soldier(object):def __init__(self,name):self.name =nameself.gun = Nonedef fire(self):if self.gun == None:print('%s没有枪' %(self.name))else:self.gun.add_bullet(5)self.gun.shoot()
ak47 = Gun('AK47')
ak47.add_bullet(10)
ak47.shoot()
ruien = Soldier('RE')
ruien.gun = ak47
ruien.fire()

Python面向对象程序设计期末考试复习题及答案(含编程题)相关推荐

  1. java程序设计期末考试试题_JAVA语言程序设计期末考试试题及答案

    <JAVA语言程序设计期末考试试题及答案>由会员分享,可在线阅读,更多相关<JAVA语言程序设计期末考试试题及答案(13页珍藏版)>请在人人文库网上搜索. 1.JAVA语言程序 ...

  2. 大学c语言程序设计期末考试试卷,大学大一c语言程序设计期末考试试卷及答案.doc...

    大学大一c语言程序设计期末考试试卷及答案.doc 计算机科学学院C语言程序设计试卷A第1页(共8页)四川师范大学计算机科学学院20122013学年度第二学期期末考试C语言程序设计试卷试卷A答卷说明1. ...

  3. 大学c语言程序设计期末考试试卷,大学大一C语言程序设计期末考试试卷及答案...

    <大学大一C语言程序设计期末考试试卷及答案>由会员分享,可在线阅读,更多相关<大学大一C语言程序设计期末考试试卷及答案(8页珍藏版)>请在人人文库网上搜索. 1._______ ...

  4. c语言中在按回车键继续的这句话后面大什么程序可移执行,2018年C语言程序设计期末考试试题及其答案...

    2018年C语言程序设计期末考试试题及其答案 一.单项选择题(本大题共20题,每题2 分,共40分) 1.以下不是C语言的特点的是( ) A.C语言简洁.紧凑 B.能够编制出功能复杂的程序 C.C语言 ...

  5. c语言程序设计教程期末考试,C语言程序设计期末考试试题及其答案

    <C语言程序设计期末考试试题及其答案>由会员分享,可在线阅读,更多相关<C语言程序设计期末考试试题及其答案(44页珍藏版)>请在人人文库网上搜索. 1.一.单项选择题(本大题共 ...

  6. 2019c语言程序设计试题答案,2019年C语言程序设计期末考试试题及其答案【Word版资料】...

    版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如果有侵权请立即联系:55525090@qq.com,我 ...

  7. java语言程序设计期末考试试题及答案_《JAVA语言程序设计》期末考试试题及答案1-7.doc...

    <JAVA语言程序设计>期末考试试题及答案1-7 社望斡工耪纱访肝讫否稗仗族锯滥祥缀疏霹辐螟丁哥联退控罐绳屑铸氛券误滚烫周瞎鲸明垢礁蛀撞瓶蔬辗撞往件沽囊炕蔫消辉孽层束沁吨减攻匿少纳涡唆晚亦 ...

  8. c#期末考试知识点_c#期末考试复习题及答案

    基于 C# 的 OOP 技术课程 复习题 /// 一. 判 断题 (本大题共 10 个小题,每小题 1 分,共 10 分) 1. 在同一行上可以书写多条语句,每条语句间用分号分隔. (t ) 2. 在 ...

  9. 北京大学MOOC 程序设计与算法(三)C++面向对象程序设计 期末考试

    1单选(1分) 1) 关于复制构造函数,下列说法正确的是 A. 系统不会生成缺省复制构造函数,因此必须自己实现 B. 复制构造函数是形如X::X(X)的函数 C.  Myclass c1, c2;  ...

最新文章

  1. 【Qt】Qt再学习(八):Media Player(Qt实现多媒体播放器)
  2. 订阅点评有奖,本人获奖了
  3. php如何导入大文件数据库,PHP读取CSV大文件导入数据库的示例
  4. golang error信息 转 字符串 x := fmt.Sprintf(“%s“, err)
  5. pandas loc和iloc区别
  6. android 控件资源命名规范,Android 资源命名规范整理
  7. EasyRecovery,重新找寻丢失的文件
  8. hdu1864 最大报销额(01背包)
  9. 【TWVRP】基于matlab节约算法求解带时间窗的电动车路径规划问题【含Matlab源码 1169期】
  10. 利用PDM实现机械制造业的信息集成
  11. linux入门命令菜鸟,经典:Linux菜鸟入门级命令大全
  12. iphone 装 android系统,iPhone上安装Android系统详细步骤。
  13. summernote 富文本编辑器上传七牛云服务器
  14. iphone通用设置里显示UDID(tweak)
  15. CSS Flexbox布局
  16. IntelliJ IDEA 必知技巧(持续更新)
  17. 七夕常用的shell表白脚本
  18. Java-数据结构:树,这份资料可帮你解决95%的问题
  19. 不带符号的阵列乘法器_阵列乘法器.ppt
  20. 计算机桌面太大了,电脑显示器显示太大怎么办

热门文章

  1. vue实现竖向跑马灯
  2. eds图怎么绘制_EDS元素分析eds图像
  3. 智慧城市“黑科技”:国内厂商泰瑞SmartEarth首发数字孪生战略
  4. 【python爬虫】HIMCM2016 FedEx联邦快递的一日达地图
  5. 学习报告2020-8-31
  6. Python基础入门:从变量到异常处理(一)
  7. 关于微信刷票会被发现吗及活动主办方防止微信投票刷票行为的一些思考
  8. yy此次操作被计算机限制,win7系统运行yy提示本次操作由于这台计算机的限制而被取消的解决方法...
  9. iWatch 开发 1: 你想知道的 iWatch App 开发
  10. 计算机新教师汇报课报道,责任课堂促成长 初露头角展风采——江桥小学新进教师汇报展示课...