4.3抽象数据类型 同步练习(Word版,有答案)2022—2023学年浙教版(2019)高中信息技术选修1

资源下载
  1. 二一教育资源

4.3抽象数据类型 同步练习(Word版,有答案)2022—2023学年浙教版(2019)高中信息技术选修1

资源简介

抽象数据类型
一 、选择题(每小题列出的四个备选项中只有一个是符合题目要求
的,不选、多选、错选均不得分)
1. 下列关于抽象数据类型作用的说法,正确的是 ( ) A.抽象数据类型将生活中的一些细小规模的问题抽象成规模较大 的问题
B.抽象数据类型不允许程序员自由选择数据结构,目的是规范设
计,减少出错
C.使用抽象数据类型编写出来的程序结构清晰,层次分明
D.抽象数据类型具有封装性,因此不易优化算法和提高程序的运
行效率
2. 下列关于Python 抽象数据类型(ADT) 的说法,不正确的是( ) A.抽象数据类型是指一个数学模型及定义在该模型上的一组操作 B.Python的一个内置类型不是一个抽象数据类型
C.抽象数据类型是一种思想,也是一种技术
D.定义一个抽象数据类型(ADT) 的目的是要定义一类计算对象,
使它们具有某些特定的功能
3. 某Python程序如下:
def fun(a):
m=0
for i in a:
if i>m:
m=i
return m
则Python内置函数中,与自定义函数fun(a)的功能相似的是( )
A.len(a) B.sum(a)
C.max(a) D.min(a)
4. 下列是一个简单的ADT:
class qt:
def ini (self,str1):
self.ss=str1
def revst(self,s1):
return self.ss[:- 1]
sstr=input("please input:")
x=qt(sstr)
if sstr==x.revst(sstr):
print("Yes")
else:
print("No")
下列关于该抽象数据类型(ADT) 实例的说法,不正确的是( )
A.qt为抽象数据类型名
B.x为qt类的一个对象
C.程序运行后,输入123421,输出的结果为“Yes”
D.程序运行后,输入abccba, 输出的结果为“Yes”
二、非选择题
5.下列是一个加减乘除四则运算的ADT:
lass operator():
def init (self,datal,data2,ch):
self.datal=datal
self.data2=data2

def cal(self):
if self.ch=="+":
c=self.datal+self.data2
print(self.data1,"+",self.data2,"=",c)
if self.ch=="-":
c=self.datal-self.data2
print(self.data1,"-",self.data2,"=",c)
if self.ch=="*":
c=self.data1*self.data2
print(self.data1,"*",self.data2,"=",c)
if self.ch=="/":
if self.data2!=0:

print(self.data1,"/",self.data2,"=",c)
else:
print("分母不能为0")
#创建实例:
my operator=operator(2,6,"*")
my operator.cal()
请回答下列问题:
(1)程序运行后,输出的结果是
(2)请在划线处填入合适的代码。
6. 下面给出了字符串抽象数据类型的部分描述信息
ADT String:
String(self,sseq)
#基于字符串序列sseq建立一个字符串
is empty(self)
#判断字符串是不是空串
len(self)
#取得字符串的长度
char(self,index)
#取得字符串中位置index的字符
substr(self,a,b)
#取得字符串中[a:b]的子串,左闭右开区间
match(self,string)
#查找串string在本字符串中第一次出现的位置
........
现有一字符串对象s,请回答下列问题:
(1)根据字符串抽象数据类型的描述,若要获取字符串s下标位置为 [x:y](左闭右闭)区间内容的子串,正确的调用方式为 。
(2)基于字符串序列sseq建立一个字符串的操作s=String(sseq),可 以理解为对字符串s的初始化操作,初始的值为 。
(3)当s=""时 ,s.is empty()的返回值为True,则 当s="ABCDEF" 时, s.is empty()的返回值为 ,s.len()的返回值为 。
(4)当要调用match方法时,需要提供的参数个数为 。
参考答案
C
B
C
C
(1) 2*6=12 (2)①self.ch=ch ② c=self.data1/self.data2
(1)s.substr(x,y+1) (2)sseq (3)False 6 (4)1

展开更多......

收起↑

资源预览