抽象数据类型 一 、选择题(每小题列出的四个备选项中只有一个是符合题目要求 的,不选、多选、错选均不得分) 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 ... ...
~~ 您好,已阅读到文档的结尾了 ~~