第9章 面向对象编程习题及答案

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、关于python类说法错误的是:

A 类的实例方法必须创建对象后才可以调用

B 类的实例方法必须创建对象前才可以调用

C 类的类方法可以用对象和类名来调用

D 类的静态属性可以用类名和对象来调用

答案:B

2、如下类的定义,下列描述错误的是?

class A(object):

pass

class B(A):

pass

b=B()

A、i sinstance(b,A)==True

B、isinstance(b,object)==True

C、i ssubclass(B,A)==True

D、i ssubclass(b,B)==True

答案:D

3、定义类如下

class Hello():

def __init__(self,name)

=name

def showInfo(self)

print()

下面代码能正常执行的:

A、h = Hello

h.showInfo()

B、h = Hello()

h.showInfo(‘张三’)

C、h = Hello(‘张三’)

h.showInfo()

D、h = Hello(‘admin’)

showInfo

答案:C

4、导入模块的方式错误的是:

A、i mport mo

B、from mo import *

C、i mport mo as m

D、i mport m from mo

答案:D

5、以下关于模块说法错误的是:

A、一个xx.py就是一个模块

B、任何一个普通的xx.py文件可以作为模块导入

C、模块文件的扩展名不一定是 .py

D、运行时会从制定的目录搜索导入的模块,如果没有,会报错异常答案:C

6、多重继承的执行顺序,请解答以下输出结果是什么?并解释。class A(object):

def __init__(self):

print('A')

super(A, self).__init__()

class B(object):

def __init__(self):

print('B')

super(B, self).__init__()

class C(A):

def __init__(self):

print('C')

super(C, self).__init__()

class D(A):

def __init__(self):

print('D')

super(D, self).__init__()

class E(B, C):

def __init__(self):

print('E')

super(E, self).__init__()

class F(C, B, D):

def __init__(self):

print('F')

super(F, self).__init__()

class G(D, B):

def __init__(self):

print('G')

super(G, self).__init__()

g = G()

f = F()

答案:

G

D

A

B

F

C

B

D

A

7、编写程序,创建类Temperature,其包含成员变量degree(表示温度)以及实例方法

ToFahrenheit(将摄氏温度转换为华氏温度)和ToCelsius(将华氏温度转换为摄氏温度),其中,(华氏度-32)*5/9=摄氏度,摄氏度*9/5+32=华氏度

答案:

class Temperature:

def __init__(self, degree):

self.degree = degree

def toFahrenheit(self):

return self.degree*9/5 + 32

def toCelsius(self):

return (self.degree -32) * 5/9

n1 = float(input("请输入摄氏温度:"))

t1 = Temperature(n1)

print("摄氏温度= {0:.2f},华氏温度= {1:.2f}".format(n1, t1.toFahrenheit()))

n2 = float(input("请输入华氏温度:"))

t2 = Temperature(n2)

print("摄氏温度= {0:.2f},华氏温度= {1:.2f}".format(t2.toCelsius(), n2))

8、定义一个至少有两个方法的类: getString:从控制台输入获取字符

串 printString:打印输入字符串对应的大写形式。

答案:

class InputOutString(object):

def __init__(self):

self.s = ""

def getString(self):

print('请输入字符串:')

self.s = input()

def printString(self):

print(self.s.upper())

strObj = InputOutString()

strObj.getString()

strObj.printString()

9、定义一个学生Student类。有下面的类属性:1)姓名name 2)年龄age 3)成绩score

(语文,数学,英语) [每课成绩的类型为整数]

类方法:1)获取学生的姓名:get_name() 2)获取学生的年龄:get_age() 3)返回3门科目中最高的分数。

写好类以后,可以定义2个同学测试下:

zm = Student('zhangming',20,[69,88,100])

返回结果:

zhangming

20

100

答案:

class Student():

# 构造函数

# 对当前对象的实例的初始化

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

= name

self.age = age

self.score = score

def get_name(self):

return

def get_age(self):

return self.age

def get_course(self):

a = max(self.score)

if isinstance(a, int):

return a

zm = Student('zhangming', 20, [69, 88, 100])

相关文档
最新文档