您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 市场营销 > 南开《程序设计基础(下)》20春期末考核题目《奥鹏颜老师答案》
《程序设计基础(下)》20春期末考核-00001试卷总分:100得分:70一、单选题(共20道试题共40分)1.类模板的静态数据成员由()共享。A.一个类模板的所有模板类B.一个模板类的所有对象C.一个模板类的一个对象D.一个类模板的所有对象2.设线性表有n个元素以下算法中()在顺序表上实现比在链表上实现效率更高。A.输出第i(0≤i≤n—1)个元素值B.交换第0个元素与第1个元素的值C.顺序输出这n个元素的值D.输出与给定值x相等的元素在线性表中的序号3.在一个无向图中若两顶点之间的路径长度为k则该路径上的顶点数为()。A.kB.k+1C.k+2D.2k4.在一个链接队列中假设f和r分别是队头和队尾指针则删除一个结点的运算时()。A.r=f-next;B.r=r-next;C.f=f-next;D.f=r-next;5.下列()不是构造函数的特征。A.构造函数的函数名与类名相同B.构造函数可以重载C.构造函数可以设置默认参数D.构造函数必须指定类型说明6.在一个长度为n的顺序存储的线性表中向第i个元素(1≤i≤n+1)位置插入一个新元素时需要将()个元素向后移动一个位置。A.n-iB.n-i+1C.n-i-1D.i7.在二叉树的第i层上至多有()个结点(i≥1)。A.2的i次方减1B.2的i-1次方C.2的i次方加+1D.2的i+1次方8.对于任意一个类析构函数的个数最多为()。A.0B.1C.2D.39.若让元素123依次进栈则出栈次序不可能出现()的情况。A.3,2,1B.2,1,3C.1,3,2D.3,1,210.类模板的模板参数()。A.只可作为数据成员的类型B.只可作为成员函数的返回类型C.只可作为成员函数的参数类型D.以上三者皆可11.在一棵完全二叉树中根结点的编号为1按照由上到下由左到右的顺序为二叉树结点编号。若编号为5的结点存在右孩子则右孩子结点的编号为()。A.9B.10C.11D.1212.在下述结论中正确的是()。A.在树中,互为堂兄弟的结点拥有相同的双亲B.二叉树的度为2C.二叉树的左右子树可任意交换D.深度为K的完全二叉树的结点个数小于或等于深度相同的满二叉树13.包含类fstream定义的头文件是()。A.fstreamB.ofstreamC.ifstreamD.iostream14.基类和派生类可以分别叫做()。A.“大类”和“小类”B.“父类”和“子类”C.“小类”和“大类”D.“子类”和“父类”15.撤消对象时系统自动调用()函数。A.成员函数B.构造函数C.析构函数D.普通函数16.关于对象成员的构造函数的调用顺序说法正确的是()。A.与它们在成员初始化列表中给出的顺序相同B.与析构函数的调用顺序相同C.与它们在类中说明顺序相同D.以上说法都不对17.有关类和对象的说法不正确的是()。A.对象是类的一个实例B.一个类只能有一个对象C.任何一个对象只能属于一个具体的类D.类与对象的关系和数据类型和变量的关系相似18.关于类和对象不正确的说法是()。A.类是一种类型,它封装了数据和操作B.对象是类的实例C.一个类的对象只有一个D.一个对象必属于某个类19.在C++中要实现动态联编可以使用()调用虚函数。A.类名B.派生类指针C.对象名D.基类指针20.下面描述中错误的是()。A.在基类定义的public成员在公有继承的派生类中可见,也能在类外被访问B.在基类定义的public和protected成员在私有继承的派生类中可见,在类外可以被访问C.在基类定义的public和protected成员在保护继承的派生类中可见D.在派生类中不可见的成员要变成可访问的,需要进行访问声明二、多选题(共5道试题共10分)21.已知Circle类定义如下所示则下列说法正确的是()。classCircle{public:doublem_xm_y;doublem_radius;voidsetCenter(doublexdoubley){m_x=x;m_y=y;}voidsetRadius(doubleradius){m_radius=radius;}doublegetArea(){return3.14*m_radius*m_radius;}};A.m_x、m_y和m_radius都是Circle类的成员变量B.setCenter、setRadius和getArea都是Circle类的成员函数C.类定义体后面的分号可以省略D.将doublem_radius;改为doublem_radius=1;,则表示m_radius成员变量的初值为122.对静态成员的错误描述是()。A.静态成员不属于对象,是类的共享成员B.静态数据成员要在类外定义和初始化C.调用静态成员函数时要通过类或对象激活,所以静态成员函数拥有this指针D.静态成员函数可以操作非静态数据成员23.下列关于函数模板的描述中正确的是()。A.函数模板和普通函数重载时,函数调用会优先调用符合要求的普通函数B.函数模板和普通函数重载时,函数调用会优先调用符合要求的函数模板C.函数模板的主要作用是减少可执行程序文件的尺寸D.函数模板的主要作用是简化程序编写24.下面对析构函数的正确描述是()。A.系统可以提供默认的析构函数B.析构函数必须由用户定义C.析构函数没有参数D.析构函数可以设置默认参数25.当类的继承方式为公有继承时基类的()成员的访问属性在派生类中不变A.公有成员B.保护成员C.私有成员D.友元成员三、判断题(共10道试题共20分)26.在线性表的链式存储结构中插入和删除操作时元素移动次数与插入和删除元素的位置有关。27.线性表中的元素可以是任意类型的但同一线性表中的数据元素必须具有相同的类型。28.getline()函数从流中提取终止字符但终止字符被丢弃。29.在面向对象程序设计中每个对象可以单独设置属性值。30.在删除一个动态对象时将自动调用该动态对象所属类的析构函数。31.对链表进行插入和删除操作时不必移动链表中的结点。32.一个类的构造函数中可以不包含对其子对象的初始化。33.对象成员的访问与结构变量成员的访问相同使用运算符.或-。34.对于树中的任一结点如果其各棵子树的相对次序被用来表示数据之间的关系即交换子树位置会改变树所表示的内容则称该树为有序树;否则称为无序树。35.线性表的顺序存储结构的特点是逻辑关系上相邻的两个元素在物理位置上也相邻。四、主观填空题(共2道试题共20分)36.下面的程序是在SHUZU类中重载运算符[]程序的运行结果为“B[4]=6”请将程序补充完整。#includeiostreamusingnamespacestd;classSHUZU{private:int*v;ints;public:SHUZU(inta[]intn);~SHUZU(){delete[]v;}intsize(){returns;}int#(inti);};SHUZU::SHUZU(inta[]intn){if(n=0){v=NULL;s=0;return;}s=n;v=newint[s];for(inti=0;in;i++)v[i]=a[i];}int&SHUZU::operator[](inti){returnv[i];}intmain(){intb[7]={02346710};SHUZUB(b7);coutB[4]=##;return0;}37.下面的程序是在str类中重载运算符=,请将程序补充完整,使程序的输出结果为:heshehehe#includeiostreamusingnamespacestd;classstr{private:char*st;public:str(char*a){set(a);}str&operator=(##){delete[]st;set(a.st);return*this;}voidshow(){coutstendl;}~str(){delete[]st;}voidset(char*s){st=newchar[strlen(s)+1];strcpy(sts);}};intmain(){strs1(he)s2(she);s1.show();s2.show();##;s1.show();s2.show();}五、问答题(共1道试题共10分)38.读程序写结果题,具体题目内容如下:已知顺序表类模板的C++描述如下:templateclassTclassLinearList{public:LinearList(intLLMaxSize);//构造函数,创建空表~LinearList();//析构函数,删除表LinearListT&Insert(intkconstT&x);//在第k个位置插入元素x,返回插入后的线性表boolIsEmpty()const;//判断表是否为空,表空返回true,表非空返回falseintGetLength()const;//返回表中数据元素的个数boolGetData(intkT&x);//将表中第k个元素保存到x中,不存在则返回falseboolModifyData(intkconstT&x);//将表中第k个元素修改为x,不存在则返回falseintFind(constT&x);//返回x在表中的位置,如果x不在表中返回0LinearListT&DeleteByIndex(constintkT&x);//删除表中第k个元素,并把它保存到x中,返回删除后的线性表LinearListT&DeleteByKey(constT&xT&y);//删除表中关键字为x元素,返回删除后的线性表voidOutPut(ostream&out)const;//将线性表放到输出流out中输出private:intlength;//当前数组元素个数intMaxSize;//线性表中最大元素个数T*element;//一维动态数组};intmain(){LinearListintIntegerLList(10);intix;for(i=1;i11;i++)IntegerLList.Insert(ii*5);for(i=2;i=3;i++){IntegerLList.DeleteByIndex(ix);coutxendl;}coutendl;return0;}请写出主函数main执行后在屏幕上的输出结果。
本文标题:南开《程序设计基础(下)》20春期末考核题目《奥鹏颜老师答案》
链接地址:https://www.777doc.com/doc-6995263 .html