id,question,A,B,C,D 0,"对于以下结构定义,++p->str中的++加在____ struct{ int len; char*str; }*P;",指针 p 上,指针 str 上,str 指的内容上,语法错误 1,下面关于m阶B树说法正确的是____①每个结点至少有两棵非空子树②树中每个结点至多有m-1个关键字;③所有叶子在同一层上;④当插入一个数据项引起B树结点分裂后,树长高一层。,① ② ③,② ③,② ③ ④,③ 2,对于具有n个项点的图,若采用邻接矩阵表示,则该矩阵的大小为____。,n,n^2,n-1,(n-1)^2 3,置换-选择排序的作用是:____,置换-选择排序是完成将一个磁盘文件排序成有序文件的有效的外排序算法,置换-选择排序生成的初始归并段长度是内存工作区的 2 倍,置换-选择排序用于生成外排序的初始归并段,置换-选择排序是对外排序中输入/归并/输出的并行处理 4,以下说法不正确的是____,public继承中派生类的成员函数可以访问基类中的私有成员,private继承中派生类对象不允许向上转换,显式调用基类构造函数只能在派生类构造函数的初始化成员列表中进行,如果基类的某个构造函数被声明为私有,则不能在派生类中调用该私有构造函数 5,以下时间复杂度,____不是O(Nlog_2N),快速挂序的最坏情况,堆排序的平均情况,归并排序的最坏情况,归并排序的最好情况 6,C++中,下列关于继承的描述,____是错误的。,继承是基于对象操作的层面而不是类设计的层面上的,子类可以继承父类的公共行为,继承是通过重用现有的类来构建新的类的一个过程,将相关的类组织起来,从而可以共享类中的共同的数据和操作 7,"一个顺序栈S,其栈顶指针为top,则将元素e入栈的操作是____。",*S->top=e;S->top++;,S->top++;*S->top=e;,*S->top=e;,S->top=e; 8,"假定在C++程序中有如下说明: double image[10][20]; 那么,下列c表达式会得到image数组的最后一个元素的地址?____",image[10][19],image[10][20],&image[9][19],&image[10][19] 9,在最坏情况下,二分查找算法的时间复杂度是____,O(1),O(N),O(log(N)),$O(N^2)$ 10,将长度为N的单链表链接在长度为M的单链表之后的算法的时间复杂度为____,O(1),O(N),O(M),O(M+N) 11,下列关于重载函数和虚函数的说法中,错误的是____,重载函数在类型和参数数量上一定不相同,而覆盖的虚函数则要求参数的类型和个数、函数返回类型相同。,只有类的成员函数可以是虚函数,重载函数既可以是成员函数之间重载,也可以是全局函数之间重载。,构造函数可以重载,但不能是虚函数。,析构函数不能作为虚函数。 12,以下说法正确的是____,同一个运算符可以被重载多次;,C++已有的运算符都可以重载;,自增运算符重载时,重载函数不允许有输入参数;,运算符函数的返回类型不能声明为基本数据类型。 13,"下面程序段的时间复杂度是____。 for(i=0;inext=NULL,head->next==head,head!=NULL 28,在public继承的情况下,派生类对象对基类中的public成员、protected成员和private成员的访问特性是____,只有 public 成员可以访问,只有 private 成员不可以访问,public 成员和 protected 成员可以访问,三种成员都可以访问 29,"在c++中,定义了以下的一个类 class example { private: int data; public: int set(int param); }; 下列操作____是正确的","example object; object.data=10;","example object; data=object.set(10);","example object; object.data=object.set(10)",example object; 30,"#include class One { public: void display(){cout<<""1""<<"""";} }; class Two:public One { public: void display(){cout<<""2""<<"""";} }; void main() { One first; Two second; first.display(); second.display(); One *p=&first; p->display(); p=&second; p->display(); }在 C++中,以上程序的运行结果为____。",1 1 1 2,1 2 1 2,1 2 1 1,2 1 1 2 31,以下对模板方法和策略模式说法不正确的是:____,在设计思路上,模板方法模式优先考虑组合,策略模式优先考虑继承,使用模板方法可以定义抽象概念,拥有不同的实现,使用策略模式可以减小单一类承担的指责,使用模板方法和策略模式定义的抽象概念时,都直接使用接口类来引用这一概念 32,一个文件中的全局变量,如果不允许其他的文件引用,则需要在声明时加上____关键词。,auto,register,extern,static 33,时间复杂度不受数据初始状态影响而恒为O(Nlog_2N)的是____,堆排序,冒泡排序,希尔排序,快速排序 34,下列语句正确的是____,char a[2]={a};,char 3a=\0';,char a[]='abc';,"char a= ""\0"";" 35,"有如下程序段,则以下选项中哪一项不可能导致it失效: #include using namespace std; int main(){ vectorvec; ... auto it=vec.begin()+5;//假设此时vec的长度大于5 ... }____",vec.push_back(2);,vec.erase(vec.begin());,"vec.insert(it, 2);",vec[5] = 2; 36,以下说法正确的是____,在 二叉査找树中, 最大的元素一定存放在叶结点中,已知二叉树的前序遍历序列和后序遍历序列, 可以唯一确定这棵二叉树,若初始森林中共有 n 棵二叉树, 最终求得的哈夫曼树共有 2n+1 个结点,"已知树的前序遍历序列和后序遍历序列, 可以唯一确定这棵树" 37,"广义表((a),a)的表尾是____.",a,(a),(),((a)) 38,若某线性表最常用的操作是读取第i个元素和第i个元素的前趋元素,则采用下面哪种存储方式最节省运算时间?____,单链表,顺序表,双链表,单循环链表 39,下列说法是在描述适配器模式的是____,将一个类的接口转换成客户希望的另外一个接口。本模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作;,定义一个用于创建对象的接口,让子类决定实例化哪一个类;,表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作;,将一个请求封装为一个对象,从而可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作。 40,下面关于虚函数的描述,错误的是____,在成员函数声明的前面加上 virtual 修饰,就可把该函数声明为虚函数,基类中说明了虚函数后,派生类中对应的函数也必须说明为虚函数,虚函数可以是另一个类的友元函数,但不能是静态成员函数,基类中说明的纯虚函数在其任何派生类中都必须实现 41,正常情况下,删除非空的顺序存储结构的堆栈的栈项元素,栈顶指针top的变化是____。,top不变,top=0,top=top+1,top=top-1 42,若类B是从类A派生而来,而语句p.Do();在被多次执行时,有的时候调用的是类A的Do成员函数,有的时候调用的是类B的Do成员函数,那么p的类型可以是____,A &,A *,B,A 43,深度为5的二叉树其结点数最多为____,16,30,31,32 44,下列关于图遍历的说法不正确的是____,连通图的深度优先搜索是一个递归过程,图的广度优先搜索中邻接点的寻找具有“ 先进先出” 的特征,非连通图不能用深度优先搜索法,图的遍历要求每一顶点仅被访问一次 45,设有50000个待排序的记录关键字,如果需要用最快的方法选出其中最小的10个记录关键字,则用下列____方法可以达到此目的。,快速排序,选择排序,归并排序,插入排序 46,以下说法正确的是____,派生类会继承基类的数据成员、函数成员和重载赋值运算符;,基类中没有指定访问说明符时,编译器将默认该说明符是public;,派生类不会继承基类的构造函数,因此不能用于创建派生类对象的基类部分;,派生类的构造函数可以调用特定的基类构造函数,间接访问基类的私有成员。 47,以下关于迭代器模式的说法不正确的是:____,迭代器是对“数据访问”设计的接口,迭代器提供一种方法访问一个聚合对象中各个元素,而不用关心具体存储类的算法,迭代器模式中,编写上层代码时需要根据使用需求和性能需求同时使用迭代器和存储类的方法对存储的数据进行访问,迭代器类通常设计为存储类的友元,从而迭代器类可以访问存储类内部的数据 48,在10阶B-树中根结点所包含的关键码个数最多为____,1,2,9,10 49,"字符指针和字符数组均可以作为C风格字符串首地址,但是二者是有区别的。观察以下程序 int main(){ char*a=""Hello""; char b[]=""World""; cout< int& func(int&num) { num++; return num; } void main() { int n1,n2=5; n1=func(n2); cout<='a')&(ch<='z'),(ch>='a')&&(ch<='z'),(ch>='a')l(ch<='z') 95,"下列程序的运行结果为____ #include int i=0; class A { public: A(){i++;} }; void main() { A a,b[3],*c; c=b; cout< class A { public: A(){cout<<""A construct"";} }; class B:public A { public: B():A(){cout<<""B construct""< #include void main() { cout.fill('*'); cout.width(10); cout<<""123.45""< using namespace std; class Timer{ private: int sec; public: Timer(){ sec=0; } Timer operator++(){//注意返回值不是引用 sec++; return *this; } void show(){ cout< using namespace std; class A{ public: virtual void f(){cout<<""A::f""<(&a); pa->f(); pb->f(); return 0; } 执行上面的程序将输出(\n表示换行)____",A::f\nB::f \n,B::f\nA::f\n,A::f\nA::f \n,B::f\nB::f\n 106,"灵活使用const关键字使程序的可读性和严谨性增强,观察如下程序 int main(){ int a=10; int b=20; const int*p=&a; int* const q=&a; *p=15;//① p=&b;//② *q=15;//③ q=&b;//④: return 0; } 其中会出现编译错误的语句是____",①和③,②和④,②和③,①和④ 107,"一个栈的入栈序列为1,2,3,...,n,其出栈序列是p1,p2,p3,…,pn。若p2=3,则p3可能取值的个数是____",n-3,n-2,n-1,无法确定 108,"下面这段代码的运行结果为____(\n表示换行) #include using namespace std; class Base{ public: virtual void foo(int){cout<<""Base::foo(int)""<foo(3,0); }",Base::foo(int)\nBase::foo(int)\n,Base::foo(int)\nDerived::foo(float)\n,Derived::foo(float)\nBase::foo(int)\n,Derived::foo(float)\nDerived::foo(float)\n 109,继承的主要目的是____,增加数据成员,增加成员函数,实现函数的重载,实现代码重用 110,有六个元素6,5,4,3,2,1的顺序进栈,问下列哪一个不是合法的出栈序列?____,5 4 3 6 1 2,4 5 3 1 2 6,3 4 6 5 2 1,2 3 4 1 5 6 111,稀疏矩阵的常见压缩存储方法有____两种。,二维数组和三维数组,三元组和散列表,三元组和十字链表,散列表和十字链表 112,在一个长度为的顺序表中,在第1个元素之前插入一个新元素时,需向后移动____个元素。,n-i,n-i+1,n-i-1,i 113,"建立派生类对象时,3种构造函数分别是a(基类的构造函数)、b(成员对象的构造函数)、c(派生类的构造函数)这3种构造函数的调用顺序为____",abc,acb,cab,cba 114,下列描述中,不属于抽象类特性的是____,可以声明虚函数,可以重载构造函数,可以定义友元函数,可以定义其对象 115,一个n个顶点的连通无向图,其边数至少为____。,n-1,n,n+1,n*logn 116,下列说法错误的是____,公有继承的基类中的 public 成员在派生类中仍是 public 的,公有继承的基类中的 private 成员在派生类中仍是 private 的,私有继承的基类中的 public 成员在派生类中变成 private 的,保护继承的基类中的 public 成员在派生类中变成 protected 的 117,"对于线性表(7,34,55,25,64,46,20,10)进行做列存储时,若远用HK)=K%9作为散列函数,则散列地址为1的元素有____个。",1,2,3,4 118,"对于类模板Base,执行语句Baseobject(2,3);后____",产生的模板类为 Base,产生的模板类为 object,产生的模板类为 Base,直接定义了类模板的对象 object 119,下面____可以判断出一个有向图中是否有环(回路)。,广度优先遍历,拓扑排序,求最短路径,求关键路径 120,Dijkstra算法不适用于寻找以下____种图的最短路径。,所有边权重均为1的有向图,边的权重均为正数的有向图,边的权重均为正数的无向图,边的权重可能出现负数的有向图 121,在二叉树结点的前序序列,中序序列和后序序列中,所有叶子结点的先后顺序____,完全相同,前序和中序相同,而与后序不同,都不相同,中序和后序相同,而与前序不同 122,下面关于模板的描述,错误的是____,函数模板和类模板的参数可以是任意的数据类型,类模板不能直接使用,必须先实例化为相应的模板类.然后定义了模板类的对象后才能使用,函数模板不能直接使用,需要实例化为模板函数后才能使用,类模板的成员函数都是模板函数 123,对于一棵M阶B+树,下列哪个选项是正确的?____,根节点一定有 2~M 个子节点,一个叶节点和一个非叶节点之间可以有相同的关键值,任意两个叶节点的深度不一定相同,所有的非叶节点都有M/2~M 个子节点 124,类的成员函数中,不能为virtual函数的是____,static函数,const函数,析构函数,运算符重载函数 125,如果>被重载成友元函数,则表达式objl>obj2被C++编译器解释为:____,"operator>(obj1,obj2)",">(objl,obj2)",obj2.operator>(objl),obj1.operator>(obj2) 126,下面哪一种设计原则可以提高代码的可复用性和可维护性____,对继承开放,对重载关闭;,对重载开放,对继承关闭;,对修改开放,对扩展关闭;,对扩展开放,对修改关闭。 127,深度为k的满二叉树若按自上而下,从左到右的顺序给结点进行编号(从1开始),则编号最小的叶子结点编号是____,2^(k-1),2^(k-1)-1,2^(k-1)+1,2^k-1 128,"#include class A { public: virtual~A(){cout<<""A""<<"""";} }; class B:public A { ~B(){cout<<""B""<<"""";} }; void main() { A *pObj=new B; delete pObj; } 上面的C++程序的运行结果是____",A,B,A B,B A 129,采用邻接表存储的图的广度优先遍历算法类似于二叉树的____,先序遍历;,中序遍历;,后序遍历,按层遍历 130,定义析构函数时,应该注意____。,其名与类名完全相同,返回类型是 void 类型,无形参,也不可重载,函数体中必须有 delete 语句 131,"设int a=9,b=8,c=7,x=1;则执行语句 if(a>7)if(b>8)if(c>9)x=2;else x=3;后x的值是____",0,1,2,3 132,"设指针变量P指向单链表中结点A,若删除单链表中结点A,则需要修改指针的操作序列为____",q = p->next; p->data = q->data; p->next = q->next; free(q);,q = p->next; q->data = p->data;p->next=q->next; free(q);,q=p->next;p->next=q->next;free(q);,q=p->next;p->data=q->data;free(q); 133,假定AB为一个类,则执行AB x;语句时将自动调用该类的____。,有参构造函数,无参构造函数,拷贝构造函数,赋值构造函数 134,"对顺序存储的线性表,设其长度为20,容量足够大。在任何位置上插入或删除操作都是等概率的。插入一个元素时平均要移动表中的____个元素",9.5,10,10.5,11 135,类的友元函数能访问该类的____,私有成员,保护成员,所有成员,公有成员 136,一个栈的输入序列为123…n,若输出序列的第一个元素是n,输出第i(1<=i<=n)个元素是____。,不确定,n-i+1,i,n-i 137,"设一组权值集合W={2,3,4,5,6},则由该权值集合构造的哈夫曼树中带权路径长度之和为____",20,30,40,45 138,系统中的文本显示类(TextView)和图片显示类(PictureView)都继承了组件类(Component),分别显示文本和图片内容,现需要构造带有滚动条或者带有黑色边框、或者既有滚动条又有黑色边框的文本显示控件和图片显示控件,但希望最多只增加三个类,____可以实现该目的。,代理模式,继承,策略模式,装饰模式 139,队列的插入操作是在____。,队尾,队头,队列任意位置,队头元素后 140,下列关于getline()和read()函数的叙述中,错误的是____,都可用于从键盘或文件读取字符串,getline()读取字符串长度是受限制的,read()读取字节数是受限制的,getline()终止符默认是换行符,也可以指定其他终止符 141,以下哪个不是使用设计模式进行编程的特点____,牺牲了代码维护的代价,降低模型复杂程度,不优先使用继承,指导经验不足的程序员灵活运用面向对象的特性,快速构建适用于不同场景的程序框架 142,从表中任一结点出发,都能扫描整个表的是____。,单链表,顺序表,循环链表,静态链表 143,"设广义表L=((a,b,c)),则L的长度和深度分别为____",1和1,1和3,1和2,2和3 144,下面____是死循环。,"for(i=0;i<10;i++) cout<=1;i--) cout<0);","i=0;while(i<=10);cout<<++i<<"" "";" 145,在最大化堆中,不正确的是____,任何节点的数值不超过其父亲,兄弟节点之间具有确定的大小关系,节点的数值不超过其任何一个祖先,整个堆中的最大元素在根节点 146,若C1是一个抽象类,下列语句中错误的是____,C1 *pC;,void fun(C1 arg);,void fun(C1 *arg);,void fun(C1 &arg); 147,关键路径是事件结点网络中____。,从源点到汇点的最长路径,从源点到汇点的最短路径,最长的回路,最短的回路 148,"若一个图的边集为{<1,2>,<1,4>,<2,5>,<3,1>,<3,5>,<4,3>},则从顶点1开始对该图进行深度优先搜索,得到的顶点序列可能为____","1,2,5,4,3","1,2,3,4,5","1,2,5,3,4","1,4,3,2,5" 149,线性表既可以用带头结点的链表表示,也可以用不带头结点的链表表示,前者最主要的好处是____。,使空表和非空表的处理统一,可以加快对表的遍历,节省存储空间,可以提高存取表元素的速度 150,在以下运算符中,优先级最低的是____,!,>=,*,|| 151,"对于下面定义的类 class Base { protected: int x; public: Base(int val = 1) { x = val; } virtual void disp(){cout<< x<< endl; } void print() {cout<post(b),a 是 b 的后代且 in(a) classArray{/**/} templateclassScreen{/*…*/}","const int hi = 40; const int wi = 80; Screen Sobj;","const int arr_size = 1024; Array al;","double db = 3.1415; Array a3;","Array a3;" 162,判断一个有向图中是否存在回路,下列选项中两种算法均可行的是____,Dijkstra算法和深度优先遍历算法,深度优先遍历算法和拓扑排序方法,拓扑排序方法和Kruskal算法,Kruskal算法和Floyd算法 163,"请问下面的代码的输出是____ #include using namespace std; class A{ public: void work(){cout<<""A"";} }; class B:public A{ public: void work(){cout<<""B"";} }; int main(){ B*c=newB(); A*d=newB(); c->work(); d->work(); }",AA,AB,BA,BB 164,C++类体系中,不能被派生类继承的有____。,转换函数,构造函数,虚函数,静态成员函数 165,"class Employee { private: int a; protected: int b; public: int c; void display(); }; class Director:public Employee { public: void show(); }; 在C++中,以下操作正确的是____。",void Employee::show(){cout< class line { public: int color; }; int startx; class box { private: int upx,upy; int lowx,lowy; public: int color; int same_color(line a,box b); void set_color(int c) { color=c; } void define_line(int x,int y) { startx=x; } }; int (在此添入答案)same_color(linea,boxb) { if(a.color==b.color) return 1; return 0; } 在括号中添入____,该程序才能正常运行.",line::,box::,line->,box-> 192,在循环单链表中,head指向头结点,设P为指向结点的指针,则判断P为尾结点的条件____,P==NULL,P->next==NULL,P->next==head,p==head 193,下面____方法可以判断出一个有向图中是否有环(回路)?,深度优先遍历,求最短路径,拓朴排序,求关键路径 194,"以下程序经过编译连接后的可执行文件名是How.exe,执行Howareyou!<回车>,输出结果是int main(int argc,char*argv[]) {int len=0; printf(""%c"",*(*(argv+1)+1)+1); while(--argc>0) len+=strlen(argv[argc]); printf(“%d,""len); }____","s,5","s,7","w,5","w,7" 195,"阅读以下程序: #include using namespace std; class Base{ public: void fun(){cout<<""Base::fun""<fun(); return 0; } 要使以上程序的输出为“Base::fun”,横线上可以填的语句为____",pb=a,pb=b,pb=&b,pb=&Base 196,图的广度优先队列遍历算法中使用队列作为其辅助数据结构,那么在算法执行过程中每个结点最多进队____。,1 次,2 次,3 次,4 次 197,如果基类A和A的派生类B中都有成员函数func();要在派生类的func()中调用同名的基类的func()成员函数,下列____操作下正确的。,func();,A::func();,B::func();,A.func(); 198,下列关键字序列中____是最大堆。,"94,23,31,12,16,13","16,72,31,23,94,53","16,23,53,31,94,72","16,53,23,94,31,72" 199,"#include class example { private: static int num; public: example(){num++;cout< using namespace std; int main(){ int i=0,a=0; while(cin>>a){ cout<b)cout<<""a>b""<b 4,ab 5,a #include using namespace std; int main(){ cout<<""hello""< using namespace std; class A{ public: static int num; A(){num++;} }; int A::num=0; int main(){ A a,*b,d[2]; cout<=(y+1)*(y+1)) y++; }",O( n^(1/2)),O(n),O(1),O(n^2) 236,在____情况下适宜采用inline定义内联函数。,函数体含有循环语句,函数体含有递归语句,函数代码少、频繁调用,函数代码多、不常调用 237,"有如下定义语句:int a[]={1,2,3,4,5};则对语句int *p=a;正确的描述是____",语句int *p=a;定义不正确,"语句int *p=a;初始化变量p,使其指向数组对象a的首元素",语句int *p=a;是把数组a的值赋给变量p,语句int *p=a;是把a[0]的值赋给变量p 238,"在双向循环链表中,在P指针所指向的结点前插入一个指针q所指向的新结点,其格改指针的操作是____备注:双向链表的结点结构为(prev,data,next).",p->prev=q;q->next=p;p->prev->next=q;q->prev =q;,p->prev=q;p->prev->next=q;q->next=p;q->prev=p->prev;,q->prev=p->prev;q->next=p;p->prev=q;p->prev =q,q->next=p;q->prev=p->prev;p->prev->next=q;p->prev =q; 239,"下面这段代码的运行结果为____ #include using namespace std; class A{ public: void f(){cout<<""A::f""<f(); delete p; return 0; }",A::f,B::f,A::f\nB::f(\n表示换行),不产生输出 240,对给定的关键字序列110,119,007,911,114,120,122进行基数排序,则第2趟分配收集后得到的关键字序列是____,007, 110, 119, 114, 911, 120, 122,007, 110, 119, 114, 911, 122, 120,007, 110, 911, 114, 119, 120, 122,110, 120, 911, 122, 114, 007, 119 241,如果图用邻接表结构存储,则常见操作的算法时间复杂度____,只和顶点的个数有关,只和边的条数有关,和顶点的个数、 边的条数都可能有关,和两者都无关 242,C++支持两种多态,包括编译时多态和运行时多态,编译时多态和运行时多态分别通过____来实现,重 载 和 虚 函数,重 载 和 重 载,虚 函 数 和 重 载,虚函数和虚函数 243,下面关于B树和B+树的叙述中,不正确的是____,都是平衡的多叉树,都能有效地支持顺序检索,都可以用于文件的索引结构,都能有效地支持随机检索 244,对于拷贝构造函数和赋值操作的关系,正确的描述是____,进行赋值操作时, 会调用类的构造函数。,当调用拷贝构造函数时, 类的对象正在被建立并被初始化。,拷贝构造函数和赋值操作是完全一样的操作,拷贝构造函数和赋值操作不能在同一个类中被同时定义 245,树最适合用来表示____。,有序数据元素,无序数据元素,元素之间具有分支层次关系的数据,元素之间无联系的数 246,下述对C++语言字符数组的描述中错误的是____,字符数组可以存放字符串,字符数组中的字符串可以整体输入、输出,"可以在赋值语句中通过赋值运算符”=""对字符数组整体赋值",不可以用关系运算符对字符数组中的字符串进行比较 247,"一个队列的入队序列是1,2,3,4,则队列的出队序列是____。","1,2,3,4","4,3,2,1","1,4,3,2","3,4,1,2" 248,"阅读代码,下列说法错误的是:____ #include #include using namespace std; class A { int *m_arr; int m_size; public: A(int i):m_size(i) { m_arr = new int[m_size]; memset(m_arr, 0, m_size*sizeof(int)); } ~A() { delete []m_arr; //(2) } void set(int index, int value) { m_arr[index] = value; } void print() { cout << ""m_arr: ""; for (int i = 0; i < m_size; ++ i) { cout << "" "" << m_arr[i]; } cout << endl; } }; int main() { A a(5); A b = a; //(1) b.set(3, 10); a.print(); //(3) return 0; }",(3)执行完之后,该程序的输出为: m_arr: 0 0 0 10 0,程序中的语句(1)调用了编译器自动合成的拷贝构造函数,该程序可以正常执行,且程序的返回值为0,如果将程序中的语句(2)改成delete m_arr,则可能会出现内存泄漏 249,下面的叙述中____是正确的。,若有一个结点是二叉树中某个子树的中序遍历结果序列的最后一个结点,则它一定是该子,若有一个结点是二叉树中某个子树的前序遍历结果序列的最后一个结点,则它一定是该子,若有一个叶子结点是二叉树中某个子树的中序遍历结果序列的最后一个结点,则它一定是,若有一个叶子结点是二叉树中某个子树的前序遍历结果序列的最后一个结点,则它一定是 250,对于std::string和std::vector定义的字符串str,以下选项正确的是:____,都可以使用str.length();获得字符串长度,都可以使用for(char c: str)遍历字符串中的所有字符,都可以使用cin>>str;从标准输入输入字符串,"都可以使用str+=""abc"";向字符串尾部添加字符" 251,"设入栈顺序为A,B,C,D,E,则出栈序列不可能是____",EDCBA,ABCDE,ADEBC,ABDEC 252,在无向图中定义顶点vi与vj之间的路径为从vi到vj的一个____。,顶点序列,边序列,权值总和,边的条数 253,"下面程序的运行结果是____ #include void main() { int num=1; int& ref=num; ref=ref+2; cout<top==0,S->top!=0,S->top==n,S->top!=n 255,"在一个单链表中,删除P指向的结点后的结点s,则执行____",delete s;,P->next=s-next;,P->next=NULL;,P->next=S->next; delete s; 256,"若已知char str[10];有语句cin>>str; 当输入为:This is a program,所得到的结果是str=____",This is a program,T,This,This is a 257,"当利用大小为n的数组顺序存储一个栈时,假定用top==n表示栈空,则向这个栈插入一个元素时,首先应执行____语句修改top指针。",top++,top--,top=0,top 258,下述文件中适合于磁带存储的是____,顺序文件,索引文件,散列文件,多关键字文件 259,"一棵深度为10的完全二叉树,从根结点开始,对所有结点按照层次依次编号:0,1,2…,则编号为18的结点,其父结点编号为____",10,9,8,5 260,"下列程序输出结果是:____ #include using namespace std; class AA{ public: void fun(){cout<<""AA"";} }; class BB:public AA{ public: BB(){cout<<""BB"";} }; class CC:public BB{ void fun(){ BB::fun(); cout<<""CC""; } }; int main(int argc,const char*argv[]){ AA aa,*p; BB bb; CC cc; p=&cc; p->fun(); return 0; }",BBBBAA,BBBBCC,BBBBAACC,BBCC 261,在c++中,下列关于友元函数和成员函数的区别,____是正确的。,都具有 this 指针,友员函数不具有 this 指针,而成员函数则具有。,友员函数的定义和成员函数的定义相同,都需要类名加上作用域算符::为前纵,友员函数的定义与成员函数一样需要以类名加上作用域运算符::为前纵 262,"由权值分别为11,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为____",24,73,48,53 263,"若一个栈的输入序列为1,2,3,…,n,输出序列的第一个元素是i,则第j个输出元素是____。",i-j-1,i-j,j-i+1,不确定的 264,以下正确的描述是____,预处理指令只能位于 C 源程序文件的首部。,凡是 C 源程序中行首以“#” 标识的控制行都是预处理指令。,C +语言的编译预处理就是对源程序进行初步的语法检查。,C 语言的预处理功能是指完成宏替换和包含文件的调用。 265,"定义如下的Test类,下列说法正确的是____ class Test{ const int member; float another_member; public: Test(int mem):member(mem){another_member=1.0;} int MyMember()const{return member;} float MyAnotherMember(){return another_member;} }",member的值在不同的Test对象中可以不同,初始化数据成员member时,可以采用类似于another_member的初始化方式,在构造函数的函数体中赋值,成员函数MyMember的函数体内可以增加语句,修改another_member的值,定义一个Test类的常量对象,其可以调用MyMember和MyAnotherMember两个成员函数 266,"设输入序列为1,2,3,4,5,6,则通过栈的作用后可以得到的输出序列为____","5, 3, 4, 6, 1, 2",3, 2, 5, 6, 4, 1,"3, 1, 2, 5, 4, 6","1, 5, 4, 6, 2, 3" 267,一个非空广义表的表头____。,不可能是子表,只能是子表,只能是原子,可以是子表或原子 268,以下类定义不正确的是____,class A { Public: void Func(int x){…};int Func(int x){…}; };,class B {public:void Func( int x){…};void Func( double x){…};};,"class C {public: void Func(int x,int y){…};void Func( int x){…}; };",class D {public:int Func( int x){…};char* Func( char x){…};}; 269,二叉查找树的查找时间复杂度最差为____,O(n^2),O(nlogn),0(n),0(log_2n) 270,如果类A被说明成类B的友元,则____,类 A 的成员即类 B 的成员,类 B 的成员即类 A 的成员,类 A 的成员函数不得访问类 B 的成员,类 B 不一定是类 A 的友元 271,若完全二叉树的结点总数为1001,则度为1的结点有____个。,0,1,500,501 272,后缀表达式823+-62/-的计算结果是____,-1,1,0,2 273,"设一组初始关键字记录关键字为(20,15,14,18,21,36,40,10),则以20为基准记录的一趟快速排序结束后的结果为____","10,15,14,18,20,36,40,21","10,15,14,18,20,40,36,21","10,15,14,20,18,40,36,21","15,10,14,18,20,36,40,21" 274,"在C++中,____一定不能创建类的对象和实例.",虚基类,抽象类,基类,派生类 275,下列输出字符'A'的方法中,错误的是____,char A = 'A'; cout< using namespace std; class BASE{ char c; public: BASE(char n):c(n){} virtual~BASE(){cout<next=p->next;rear=p;,rear->next=p;rear=p;,rear->next=rear;p->next=p;,(*rear ).next=rear;(*p).next=p; 292,设一个链表最常用的操作是在末尾插入结点和删除尾结点,则选用____最节省时间。,单链表,单循环链表,带尾指针的单循环链表,带头结点的双循环链表 293,下列不属于责任链模式的优点的是____,提高系统性能;,便于增加新的处理请求类;,降低耦合度;,简化对象。 294,若用一个大小为6的数组来实现循环队列,且当前rear和front的值分别为0和3。当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为____。,1 和 5,2 和 4,4 和 2,5 和 1 295,"char s, *p=&s,&ch=s; 则等价于 s='#'的语句为____",p='#',*p='#',*ch='#',&dr='#' 296,"定义如下所示的Base类和Derive类,下列说法错误的是:____ #include using namespace std; class Base { int data; public: Base() : data(0) { cout << ""Base::Base("" << data << "")\n""; } Base(int i) : data(i) { cout << ""Base::Base("" << i << "")\n""; } }; class Derive : public Base { int data{2018}; public: Derive() {} Derive(int i) : Base(i) {} void print() { cout << ""data = "" << data << endl; } }; int main() { Derive obj1; Derive obj2(2019); obj1.print(); obj2.print(); return 0; }",Derive类的默认构造函数没有显式调用Base类的构造函数,此时编译器会自动调用Base类的默认构造函数,Derive类的普通构造函数可以在初始化列表中显式调用Base类的普通构造函数,该程序的输出为Base::Base(0)\nBase::Base(2019)\ndata = 2018\ndata = 2019\n,obj1析构时先执行Derive类的析构函数,再执行Base类的析构函数 297,类CStudent的拷贝构造函数的声明语句为____,CStudent &CStudent (const CStudent other),CStudent CStudent(const CStudent other),CStudent (CStudent *other),CStudent (const CStudent &other) 298,下列说法错误的是____,求最短路径的Dijkstra算法中边的权值不可以为负,Dijkstra算法允许图中有回路,Floyd算法中边的权值不可以为负,深度优先搜索算法可用于判断有向图中是否存在回路 299,下面的循环体执行的次数与其它不同的是____,"i=0;while(++i<100){cout=1;--i){cout class Array{....}; 对该类模板实例化正确的是____","Array x;","Array x;","template x;","Array x;" 302,采用稀疏矩阵的三元组表形式进行压缩存储,若要完成对三元组表进行转置,只要将行和列对换,这种说法____。,正确,错误,无法确定,以上均不对 303,Sample是用户定义的某个类,obj是Sample类的对象,p是Sample类的指针,则执行语句p=new Sample时会调用____,Sample 类的构造函数,Sample 类的析构函数,Sample 类的赋值运算符重载函数,Sample 类的拷贝构造函数 304,在C++中,可以重载的运算符有____。,sizeof(),::,.*,++ 305,"#include { //This is my first program cout<<""My first program in C++""; } 这段C++程序的输出是____。",My first program in C++,This is my first program,My first Program in C,None of the above 306,"用某种排序方法对关键字序列(25,84,21,47,15,27,68,35,20)进行排序时,序列的变化情况如下: 20,15,21,25,47,27,68,35,84 15,20,21,25,35,27,47,68,84 15,20,21,25,27,35,47,68,84 则所采用的排序方法是____",选择排序,希尔排序,归并排序,快速排序 307,对10TB的数据文件进行排序,应使用的方法是____,希尔排序,堆排序,快速排序,归并排序 308,快速排序在最坏情况下的时间复杂度为____,O(log2n),O(nlog2n),O(n),O(n^2) 309,若将关键字1,2,3,4,5,6,7依次插入到初始为空的平衡二叉树T中,则T中平衡因子为0的非叶子结点的个数是____,0,1,2,3 310,对初始数据序列{8,3,9,11,2,1,4,7,5,10,6}进行希尔排序。若第一趟排序结果为{1,3,7,5,2,6,4,9,11,10,8},第二趟排序结果为{1,2,6,4,3,7,5,8,11,10,9},则两趟排序采用的增量分别是____。,3,1,3,2,5,2,5,3 311,"函数f声明为void f(int *n),在主程序中定义变量m为int m=10,则下面调用正确的是____",f(*m),f(&m),f(m),f(10+m) 312,"下列关于无向连通图特性的叙述中,正确的是____。 (1)所有顶点的度数之和为偶数。 (2)边数比顶点个数减1要大。 (3)至少有1个顶点的度为1。",只有(1),只有(2),(1)和(2),(1)和(3) 313,"int a=10,b=11,c=12,x=(a+b) using namespace std; class X{ private: int data=0; friend class Y; friend void print(X&x); }; class X_Son:public X{ private: int data=1; }; class Y{ private: int data=2; friend class Z; }; class Z{ private: int data=3; }; void print(X&x){ cout< class X { private: int num; public: X(int intx){num=intx;} X(X &Y) { num=++Y.num; } void disp(){cout< class A { public: A(){} ~A(){cout<<""A destroy"";} }; class B:public A {public: B():A(){} ~B(){cout<<""B destroy"";} }; void main(){B obj;} 上面的C++程序运行的结果是____。",B destroy A destroy,A destroy B destroy,A destroy,B destroy 337,"在任意一棵非空二叉查找树T1中,删除某结点v之后形成二叉查找树T2,再将v插入T2形成二叉查找树T3。下列关于T1与T3的叙述中,正确的是____ I.若v是T1的叶结点,则T1与T3不同 II.若v是T1的叶结点,则T1与T3相同 III.若v不是T1的叶结点,则T1与T3不同 IV.若v不是T1的叶结点,则T1与T3相同",仅 I、III,仅 I、IV,仅 II、III,仅 II、IV 338,下列二叉树哪种满足以下性质:从任意一个结点出发到根的路径上所经过的结点序列按其关键字有序____,二叉查找树,哈夫曼树,伸展树,堆 339,下列关于静态成员说法正确的是____,同一个类的所有类对象,共享该类的静态数据成员,即所有对象中的该数据成员存储在同一内存位置,类的常量静态成员数据只能在类外进行初始化,类的静态成员数据只能通过类名来访问,静态成员函数属于整个类,在第一个类实例化对象创建的时候分配它的内存空间 340,无向图G有22条边,度为5的顶点有3个,度为3的顶点有5个,其余都是度为2的顶点,则图G最多有多少个顶点?____,11,12,15,16 341,如果A是已经定义好的一个类,有如下定义语句:A*p[5];则当类对象数组指针p离开它的作用域时,系统自动调用类A的析构函数____次,5,1,0,10