Minimind/ceval/ceval-exam/test/college_programming_test.csv
2024-08-28 16:41:44 +08:00

74 KiB
Raw Blame History

1idquestionABCD
20对于以下结构定义,++p->str中的++加在____ struct{ int len; char*str; }*P;指针 p 上指针 str 上str 指的内容上语法错误
31下面关于m阶B树说法正确的是____①每个结点至少有两棵非空子树②树中每个结点至多有m-1个关键字③所有叶子在同一层上④当插入一个数据项引起B树结点分裂后树长高一层。① ② ③② ③② ③ ④
42对于具有n个项点的图若采用邻接矩阵表示则该矩阵的大小为____。nn^2n-1(n-1)^2
53置换-选择排序的作用是____置换-选择排序是完成将一个磁盘文件排序成有序文件的有效的外排序算法置换-选择排序生成的初始归并段长度是内存工作区的 2 倍置换-选择排序用于生成外排序的初始归并段置换-选择排序是对外排序中输入/归并/输出的并行处理
64以下说法不正确的是____public继承中派生类的成员函数可以访问基类中的私有成员private继承中派生类对象不允许向上转换显式调用基类构造函数只能在派生类构造函数的初始化成员列表中进行如果基类的某个构造函数被声明为私有,则不能在派生类中调用该私有构造函数
75以下时间复杂度____不是O(Nlog_2N)快速挂序的最坏情况堆排序的平均情况归并排序的最坏情况归并排序的最好情况
86C++中下列关于继承的描述____是错误的。继承是基于对象操作的层面而不是类设计的层面上的子类可以继承父类的公共行为继承是通过重用现有的类来构建新的类的一个过程将相关的类组织起来,从而可以共享类中的共同的数据和操作
97一个顺序栈S,其栈顶指针为top,则将元素e入栈的操作是____。*S->top=e;S->top++;S->top++;*S->top=e;*S->top=e;S->top=e;
108假定在C++程序中有如下说明: double image[10][20]; 那么下列c表达式会得到image数组的最后一个元素的地址____image[10][19]image[10][20]&image[9][19]&image[10][19]
119在最坏情况下二分查找算法的时间复杂度是____O(1)O(N)O(log(N))$O(N^2)$
1210将长度为N的单链表链接在长度为M的单链表之后的算法的时间复杂度为____O(1)O(N)O(M)O(M+N)
1311下列关于重载函数和虚函数的说法中错误的是____重载函数在类型和参数数量上一定不相同,而覆盖的虚函数则要求参数的类型和个数、函数返回类型相同。只有类的成员函数可以是虚函数,重载函数既可以是成员函数之间重载,也可以是全局函数之间重载。构造函数可以重载,但不能是虚函数。析构函数不能作为虚函数。
1412以下说法正确的是____同一个运算符可以被重载多次;C++已有的运算符都可以重载;自增运算符重载时,重载函数不允许有输入参数;运算符函数的返回类型不能声明为基本数据类型。
1513下面程序段的时间复杂度是____。 for(i=0;i<m;i++) for(j=0;j<n;j++) a[i][j]=i*j;O(m^2)O(n^2)O(m*n)O(m+n)
1614某二叉树有N个节点高度为在其中插入一个新的节点高度发生改变的节点个数最多为____O(1)O(N)O(h)O(hlog_2N)
1715对已十分接近按键值排序的初始序列插入法、归并法和一般的快速分类法对其排序算法的时间复杂度各为____。O(N)O(N)O(N)O(N)O(Nlog_2N)O(Nlog_2N)O(N)O(Nlog_2N) O(N^2)O(N^2)O(Nlog_2N)O(N^2)
1816分别按照下列序列构造二叉查找树与用其它三个序列所构造的结果不同的是____( 105, 84, 97 63 122, 118, 131 )( 105, 122, 118, 131, 84, 63, 97 )( 105, 63, 84, 97, 122, 118, 131 )( 105, 84, 63, 97, 122, 131, 118 )
1917以下代码能够通过编译的是____class A { public: A* a; }; int main() {A a; return 0;}class B { public: B& b; }; int main() {B b; return 0;}class C { public: C c; }; int main() {C c; return 0;}class E {}; class D { public: E& d; }; int main() {D d; return 0;}
2018在C++语言中自定义的标识符____能使用关键字并且不区分大小写能使用关键字并且区分大小写不能使用关键字并且不区分大小写不能使用关键字并且区分大小写
2119若以一个大小为6的数组来实现循环队列当前的rear和front的位置分别为0和3当依次执行两次出队、两次入队、一次出队后当前rear和front位置分别是____5,12,52,04,0
2220已知函数定义的形式如下: struct data f(void) {…} 则函数f____没有参数,返回值是一个结构有一个参数void,返回值是一个结构没有参数,返回值是一个结构指针有一个参数void,返回值是一个结构指针
2321下列关于哈希查找的说法正确的是____哈希函数构造得越复杂越好, 因为这样随机性好, 冲突小除留余数法是所存哈希函数中最好的。不存在特别好与坏的哈希函数, 视情况而定。在哈希表中删除一个元素, 不管用何种方法解决冲突都只需简单地将该元素刪去即司
2422快速构建适用于不同场景的程序框架____行为型结构型组合型创建型
2523在常用的描述二叉查找树的存储结构中关键字值最大的结点____。左指针一定为空右指针一定为空左右指针均为空左右指针均不为空
2624在C语言中下列表达式的值最大的是____sizeof('a');sizeof(97);sizeof("aaaa");sizeof(97.0);
2725对于一个具有n个顶点和e条边的无向图进行拓扑排序时总的时间为____nn+1n-1n+e
2826C++语言建立类族是通过____类的嵌套类的继承虚函数抽象类
2927对于一个头指针为head的带头结点的单链表判定该表为空表的条件是____head==NULLhead->next=NULLhead->next==headhead!=NULL
3028在public继承的情况下派生类对象对基类中的public成员、protected成员和private成员的访问特性是____只有 public 成员可以访问只有 private 成员不可以访问public 成员和 protected 成员可以访问三种成员都可以访问
3129在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;
3230#include<iostream.h> 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 21 2 1 21 2 1 12 1 1 2
3331以下对模板方法和策略模式说法不正确的是____在设计思路上,模板方法模式优先考虑组合,策略模式优先考虑继承使用模板方法可以定义抽象概念,拥有不同的实现使用策略模式可以减小单一类承担的指责使用模板方法和策略模式定义的抽象概念时,都直接使用接口类来引用这一概念
3432一个文件中的全局变量如果不允许其他的文件引用则需要在声明时加上____关键词。autoregisterexternstatic
3533时间复杂度不受数据初始状态影响而恒为O(Nlog_2N)的是____堆排序冒泡排序希尔排序快速排序
3634下列语句正确的是____char a[2]={a};char 3a=\0';char a[]='abc';char a= "\0";
3735有如下程序段则以下选项中哪一项不可能导致it失效 #include<vector> using namespace std; int main(){ vector<int>vec; ... auto it=vec.begin()+5;//假设此时vec的长度大于5 ... }____vec.push_back(2);vec.erase(vec.begin());vec.insert(it, 2);vec[5] = 2;
3836以下说法正确的是____在 二叉査找树中, 最大的元素一定存放在叶结点中已知二叉树的前序遍历序列和后序遍历序列, 可以唯一确定这棵二叉树若初始森林中共有 n 棵二叉树, 最终求得的哈夫曼树共有 2n+1 个结点已知树的前序遍历序列和后序遍历序列, 可以唯一确定这棵树
3937广义表((a),a)的表尾是____.a(a)()((a))
4038若某线性表最常用的操作是读取第i个元素和第i个元素的前趋元素则采用下面哪种存储方式最节省运算时间____单链表顺序表双链表单循环链表
4139下列说法是在描述适配器模式的是____将一个类的接口转换成客户希望的另外一个接口。本模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作;定义一个用于创建对象的接口,让子类决定实例化哪一个类;表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作;将一个请求封装为一个对象,从而可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作。
4240下面关于虚函数的描述错误的是____在成员函数声明的前面加上 virtual 修饰,就可把该函数声明为虚函数基类中说明了虚函数后,派生类中对应的函数也必须说明为虚函数虚函数可以是另一个类的友元函数,但不能是静态成员函数基类中说明的纯虚函数在其任何派生类中都必须实现
4341正常情况下删除非空的顺序存储结构的堆栈的栈项元素栈顶指针top的变化是____。top不变top=0top=top+1top=top-1
4442若类B是从类A派生而来而语句p.Do();在被多次执行时有的时候调用的是类A的Do成员函数有的时候调用的是类B的Do成员函数那么p的类型可以是____A &A *BA
4543深度为5的二叉树其结点数最多为____16303132
4644下列关于图遍历的说法不正确的是____连通图的深度优先搜索是一个递归过程图的广度优先搜索中邻接点的寻找具有“ 先进先出” 的特征非连通图不能用深度优先搜索法图的遍历要求每一顶点仅被访问一次
4745设有50000个待排序的记录关键字如果需要用最快的方法选出其中最小的10个记录关键字则用下列____方法可以达到此目的。快速排序选择排序归并排序插入排序
4846以下说法正确的是____派生类会继承基类的数据成员、函数成员和重载赋值运算符;基类中没有指定访问说明符时编译器将默认该说明符是public派生类不会继承基类的构造函数,因此不能用于创建派生类对象的基类部分;派生类的构造函数可以调用特定的基类构造函数,间接访问基类的私有成员。
4947以下关于迭代器模式的说法不正确的是____迭代器是对“数据访问”设计的接口迭代器提供一种方法访问一个聚合对象中各个元素,而不用关心具体存储类的算法迭代器模式中,编写上层代码时需要根据使用需求和性能需求同时使用迭代器和存储类的方法对存储的数据进行访问迭代器类通常设计为存储类的友元,从而迭代器类可以访问存储类内部的数据
5048在10阶B-树中根结点所包含的关键码个数最多为____12910
5149字符指针和字符数组均可以作为C风格字符串首地址但是二者是有区别的。观察以下程序 int main(){ char*a="Hello"; char b[]="World"; cout<<a[0]<<endl;//① a[0]='h';//② cout<<b[0]<<endl;//③ b[0]='w';//④ return 0; } 则下列说法正确的是____程序无法通过编译程序在执行到第②条语句会有运行错误程序在执行到第④条语句会有运行错误程序可以正常运行
5250int a[4][5];则和a[3][2]的值等价的表达式为____*(*a[3]+2)*(a+17)*((a+3)+2)*(a[3]+2)
5351静态链表中指针表示的是____内存地址数组下标下一元素地址左、右孩子地址
5452下列关于类对象说法错误的是____函数静态对象,在程序执行到该局部静态对象的代码时被初始化;程序第二次执行到该对象代码时,不再初始化在不同编译单元中,全局对象的初始化顺序不确定当A类对象是B类的常量静态成员时可以在B类内初始化当A类对象是B类的静态非常量成员变量时只能在B类外初始化
5553设一组初始记录关键字序列为25,50,15,35,80,85,20,40,36,70)其中含有5个长度为2的有序子表则用归并排序的方法对该记录关键字序列进行一趟归并后的结果为____15 25 35 50 20 40 80 85 36 7015 25 35 50 80 20 85 40 70 3615 25 35 50 80 85, 20 36 40, 7015, 25, 35, 50, 80, 20, 36, 40, 70, 85
5654若B知一个栈的入找序列是1,2,3,...,n.其输出序列为pi,p2.p3,…,pN,若pN是n,则pi是____in-in-i+1不确定
5755稳定的排序方法是____直接插入排序和快速排序二分插入排序和冒泡排序直接选择排序和四路归并排序堆排序和希尔排序
5856如果class类中的所有成员在定义时都没有使用关键字pubilc,private,protected则所有成员缺省定义为____。publicprotectedprivatestatic
5957下列关于AOE网的叙述中不正确的是____。某些关键活动提前,则整个工程将会提前完成任一关键活动提前,则整个工程将会提前完成所有关键活动提前,则整个工程将会提前完成关键活动不按期完成会影响整个工程的完成时间
6058具有线性结构的数据结构是____。广义表
6159设有一个递归算法如下 int x(int n){ if(n<=3)return 1; else return x(n-2)+x(n-4)+1;} 试问计算x(x(8))时需要计算____次x函数。8次9次16次18次
6260静态成员函数不能说明为____。整型函数浮点函数虚函数字符型函数
6361二叉查找树的查找效率与二叉树的____有关。高度结点的多少树型结点的位置
6462广义表G=(a,b(c,d,(e,f)),g)的长度是____。3478
6563当使用ifstream流类定义一个流对象并打开一个磁盘文件file时与语句ifstream infile; infile.open("file”)等价的文件的打开方式为____ofstream infile; infile.open("file");ifstream infile; infile.open("file", ifstream::out );ifstream infile("file");fstream infile; infile.open("file");
6664用函数H(k)=key%17构造散列表则链地址法解决冲突需____个链表。171316任意
6765二叉树先序遍历x在y之前后序遍历x在y之后则x是y的____。左兄弟右兄弟祖先后裔
6866依次在初始为空的队列中插入元素a,b,c,d以后紧接若做了两次删除操作此时的队头元素是____。abcd
6967五节车厢以编号1,2,3,4,5顺序进入铁路调度站可以得到____的编组。3,4,5,1,22,4,1,3,53,5,4,2,11,3,5,2,4
7068C++对C语言作了很多改进下列描述中____使得C语言发生了质变从面向过程变成了面向对象。增加了一些新的运算符;允许函数重载, 并允许设置缺省参数:规定函数说明必须用原型;弓I进了类和对象的概念
7169若有以下定义和语句则不能合法表示a数组元素的是:____ char a[]="abcdefg"; int *p=a;p[7]a[p-a]*aa[8]
7270若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算则利用____存储方式最节省时间。顺序表双链表带头结点的双循环链表单循环链表
7371一个图有30个结点这些结点的平均度数为10那么该图拥有多少条边____75150300600
7472下列不能作为类的成员的是____自身类对象的指针自身类对象自身类对象的引用另一个类的对象
757312个数据有序顺序存储采用二分查找查找失败时的ASL值是____。1385063/13Dec-3949/13
7674在一个有向图中所有顶点的入度之和等于所有顶点的出度之和的____倍。1月2日124
7775设二叉树的先序遍历序列和后序遍历序列正好相反则该二叉树满足的条件是____空或只有一个结点高度等于其结点数任一结点无左孩子任一结点无右孩子
7876类Sample的拷贝构造函数的声明语句为____Sample (Sample other)Sample Sample (Sample other)Sample (const Samplet &other)Sample Sample (const Sample &other)
7977在操作系统内部函数调用是用下面哪种数据结构来实现的____线性表队列
8078设给定权值总数有n个其哈夫曼树的结点总数为____不确定2n2n+12n-1
8179以下关于工厂模式和抽象工厂模式说法正确的是____工厂方法的目的是构造单个类的对象在工厂方法中,构造多个有特定组合方式的对象,应当为每一个组成成分单独设立工厂工厂方法不能处理不同重载的构造函数工厂模式中,对象的删除不可以交由用户负责
8280关于纯虚函数和抽象类的描述中错误的是____抽象类只能作为基类使用, 其纯虚函数的实现由派生类给出纯虚函数是一个特殊的虚函数, 它没有具体的实现一个基类中说明有纯虚函数, 该基类的派生类一定不再是抽象类。抽象类是指具有纯虚函数的类
8381己知一个线性表中最常用的操作是删除第一个元素和在最后一个元素之后插入一个元素则采用____存储方式最节省运算时间。双链表仅有头指针的单循环链表单链表仅有尾指针的单循环链表
8482数组可以使用花括号进行初始化,则对于以下程序 int main(){ int a[10]={1,2,3,4}; int b[10]; return 0; } 其中a[8]和b[8]的值为____a[8]为 0 b[8]为随机值二者均为 0二者均为随机值以上代码段不能通过编译
8583将递归算法转换成对应的非递归算法时通常需要使用____来保存中间结果。队列链表
8684以下关于复制构造函数的说法错误的是____系统默认的复制构造函数实现的是深层复制类成员有指针类型时,浅层复制存在着隐患一个对象以值传递的方式传入函数时会调用复制构造函数一个对象以值传递的方式作为函数返回值时会调用复制构造函数
8785下列选项中不能构成折半查找中关键字比较序列的是____500 200 450 180500 450 200 180180 500 200 450180 200 500 450
8886#include<iostream.h> int& func(int&num) { num++; return num; } void main() { int n1,n2=5; n1=func(n2); cout<<n1<<""<<n2<<endl; } 上面C++程序运行结果是____56656655
8987快速排序在下列哪种情况下最不利于发挥其长处____。要排序的数据量很大要排序的数据中含有多个相同值要排序的数据个数为奇数要排序的数据已基本有序
9088对某二叉树进行先序遍历的结果为ABDEFC,中序遍历的结果为DBFEAC,则后序遍历的结果是____。DBFEACDFEBCABDFECABDEFAC
9189用某种排序方法对线性表{4,9,3,7,1,5,8,6,2}进行排序时,元素序列的变化情况如下: 14,9,3,7,1,5,8,6,2 22,1,3,4,7,5,8,6,9 31,2,3,4,6,5,7,8,9 41,2,3,4,5,6,7,8,9 所采用的排序方法是____插入排序选择排序快速排序二路归并排序
9290对于下列关键字序列不可能构成某二叉排序树中一条查找路径的序列是____98,22,91,24,94,7192,18,90,34,86,3523,89,77,29,36,3810,25,71,68,33,34
9391假定A是一个类的名字下面哪个语句不会引发类A构造函数的调用____A * p = new A;A a;A a[10];A * a[10];
9492classwheel { int num; public: wheel(int w){num=w;} }; class car { wheel carWheel; public: ____//写出car的构造函数 }在 C++中上面程序中空白处正确的语句是____。void car(int n)::carWheel(n){}car(int n): carWheel(n){}void car(int n):: carWheel(n){}car(int n):: carWheel(n){}
9593顺序存储的线性表其长度为n。假设在任何位置上插入或删除操作都是等概率的。插入一个元素时平均要移动表中元素个数为____n/2(n+1)/2(n-1)/2n
9694ch为char类型判断ch为小写字符的表达式是____a'<=ch<='z'(ch>='a')&(ch<='z')(ch>='a')&&(ch<='z')(ch>='a')l(ch<='z')
9795下列程序的运行结果为____ #include<iostream.h> int i=0; class A { public: A(){i++;} }; void main() { A a,b[3],*c; c=b; cout<<i<<endl;}2345
9896#include<iostream.h> class A { public: A(){cout<<"A construct";} }; class B:public A { public: B():A(){cout<<"B construct"<<endl;} }; void main(){B obj;} 上面的C++程序运行的结果是____。B construct A constructA construct B constructA constructB construct
9997下列关于对象概念的描述中____是错误的对象就是 C 语言中的结构变量对象代表着正在创建的系统中的一个实体对象是一个状态和操作(或方法)的封装体对象之间的信息传递是通过消息进行的
10098假定M为一个类int a()为该类的一个成员函数,若该成员函数在类定义体外定义,则函数头为____AA::a();int AA:a();int AA::a();AA::int a() ;
10199#include<iostream.h> #include<iomanip.h> void main() { cout.fill('*'); cout.width(10); cout<<"123.45"<<endl; cout.width(8); cout<<"1234.45"<<endl; cout.width(4); cout<<"1234.45"<<endl; } 程序运行的结果是____。****123.45 **1234.45 *1234.45****123.45 *1234.45 1234.45****123.45 **1234.45 *1234.45*****123.45 ***1234.45 *1234.45
102100C++语言的跳转语句中对于break和continue说法正确的是____break语句只应用于循环体中continue语句用于跳出循环语句continue语句用于跳出当前的循环周期break语句用于跳出当前的循环周期
103101下面描述中正确的是____virtual 可以用来声明虚函数含有纯虚函数的类是不能用来创建对象的, 因为它是虚基类即使基类的构造函数没有参数, 派生类也必须建立构造函数静态数据成员可以通过成员初始化列表来初始化
104102函数void f(void) {int i=12,j; for(j=0;j<20;j++) i++;} 当f执行完退出后i的值为____123229无定义
105103与后置++不同,前置++运算符在C++语法中可以连续对变量使用,即可以++(++a),这也是在重载前置++运算符时需要返回引用的原因。那么观察以下计时器类Timer的定义 #include<iostream> using namespace std; class Timer{ private: int sec; public: Timer(){ sec=0; } Timer operator++(){//注意返回值不是引用 sec++; return *this; } void show(){ cout<<sec<<endl; } }; int main(){ Timer t; ++(++(++t));//连续调用三次前置++ t.show(); return 0; } 其中在重载前置++中代码错误地没有返回Timer类的引用那么下列说法正确的是____程序无法通过编译程序可以通过编译,程序仍然正确,输出 3程序可以通过编译,程序逻辑错误,输出 0程序可以通过编译,程序逻辑错误,输出 1
106104哪个是类test的复制构造函数的合法原型____test::test()test::test (test other)test::test(const test &other)void test::test(const test &other)
107105有如下程序段: #include<iostream> using namespace std; class A{ public: virtual void f(){cout<<"A::f"<<endl;} }; class B:publicA{ public: void f(){cout<<"B::f"<<endl;} }; int main() { A *pa, a; B *pb, b; pa = &b; pb = static_cast<B*>(&a); pa->f(); pb->f(); return 0; } 执行上面的程序将输出(\n表示换行____A::f\nB::f \nB::f\nA::f\nA::f\nA::f \nB::f\nB::f\n
108106灵活使用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; } 其中会出现编译错误的语句是____①和③②和④②和③①和④
109107一个栈的入栈序列为1,2,3,...,n其出栈序列是p1,p2,p3,…,pn。若p2=3则p3可能取值的个数是____n-3n-2n-1无法确定
110108下面这段代码的运行结果为____(\n表示换行) #include<iostream> using namespace std; class Base{ public: virtual void foo(int){cout<<"Base::foo(int)"<<endl;} }; class Derived:public Base{ public: void foo(float){cout<<"Derived::foo(float)"<<endl;} }; int main(){ Derived d; Base *p=&d; d.foo(3,0); p->foo(3,0); }Base::foo(int)\nBase::foo(int)\nBase::foo(int)\nDerived::foo(float)\nDerived::foo(float)\nBase::foo(int)\nDerived::foo(float)\nDerived::foo(float)\n
111109继承的主要目的是____增加数据成员增加成员函数实现函数的重载实现代码重用
112110有六个元素654321的顺序进栈问下列哪一个不是合法的出栈序列____5 4 3 6 1 24 5 3 1 2 63 4 6 5 2 12 3 4 1 5 6
113111稀疏矩阵的常见压缩存储方法有____两种。二维数组和三维数组三元组和散列表三元组和十字链表散列表和十字链表
114112在一个长度为的顺序表中在第1个元素之前插入一个新元素时需向后移动____个元素。n-in-i+1n-i-1i
115113建立派生类对象时,3种构造函数分别是a(基类的构造函数)、b(成员对象的构造函数)、c(派生类的构造函数)这3种构造函数的调用顺序为____abcacbcabcba
116114下列描述中不属于抽象类特性的是____可以声明虚函数可以重载构造函数可以定义友元函数可以定义其对象
117115一个n个顶点的连通无向图其边数至少为____。n-1nn+1n*logn
118116下列说法错误的是____公有继承的基类中的 public 成员在派生类中仍是 public 的公有继承的基类中的 private 成员在派生类中仍是 private 的私有继承的基类中的 public 成员在派生类中变成 private 的保护继承的基类中的 public 成员在派生类中变成 protected 的
119117对于线性表(7,34,55,25,64,46,20,10)进行做列存储时若远用HK)=K%9作为散列函数则散列地址为1的元素有____个。1234
120118对于类模板Base,执行语句Base<int>object(2,3);后____产生的模板类为 Base产生的模板类为 object产生的模板类为 Base<int>直接定义了类模板的对象 object
121119下面____可以判断出一个有向图中是否有环回路广度优先遍历拓扑排序求最短路径求关键路径
122120Dijkstra算法不适用于寻找以下____种图的最短路径。所有边权重均为1的有向图边的权重均为正数的有向图边的权重均为正数的无向图边的权重可能出现负数的有向图
123121在二叉树结点的前序序列中序序列和后序序列中所有叶子结点的先后顺序____完全相同前序和中序相同,而与后序不同都不相同中序和后序相同,而与前序不同
124122下面关于模板的描述错误的是____函数模板和类模板的参数可以是任意的数据类型类模板不能直接使用,必须先实例化为相应的模板类.然后定义了模板类的对象后才能使用函数模板不能直接使用,需要实例化为模板函数后才能使用类模板的成员函数都是模板函数
125123对于一棵M阶B+树下列哪个选项是正确的____根节点一定有 2~M 个子节点一个叶节点和一个非叶节点之间可以有相同的关键值任意两个叶节点的深度不一定相同所有的非叶节点都有M/2~M 个子节点
126124类的成员函数中不能为virtual函数的是____static函数const函数析构函数运算符重载函数
127125如果>被重载成友元函数则表达式objl>obj2被C++编译器解释为____operator>(obj1,obj2)>(objl,obj2)obj2.operator>(objl)obj1.operator>(obj2)
128126下面哪一种设计原则可以提高代码的可复用性和可维护性____对继承开放,对重载关闭;对重载开放,对继承关闭;对修改开放,对扩展关闭;对扩展开放,对修改关闭。
129127深度为k的满二叉树若按自上而下从左到右的顺序给结点进行编号从1开始则编号最小的叶子结点编号是____2^(k-1)2^(k-1)-12^(k-1)+12^k-1
130128#include<iostream.h> class A { public: virtual~A(){cout<<"A"<<"";} }; class B:public A { ~B(){cout<<"B"<<"";} }; void main() { A *pObj=new B; delete pObj; } 上面的C++程序的运行结果是____ABA BB A
131129采用邻接表存储的图的广度优先遍历算法类似于二叉树的____先序遍历;中序遍历;后序遍历按层遍历
132130定义析构函数时应该注意____。其名与类名完全相同返回类型是 void 类型无形参,也不可重载函数体中必须有 delete 语句
133131设int a=9,b=8,c=7,x=1;则执行语句 if(a>7)if(b>8)if(c>9)x=2;else x=3;后x的值是____0123
134132设指针变量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);
135133假定AB为一个类则执行AB x语句时将自动调用该类的____。有参构造函数无参构造函数拷贝构造函数赋值构造函数
136134对顺序存储的线性表设其长度为20,容量足够大。在任何位置上插入或删除操作都是等概率的。插入一个元素时平均要移动表中的____个元素9.51010.511
137135类的友元函数能访问该类的____私有成员保护成员所有成员公有成员
138136一个栈的输入序列为123…n若输出序列的第一个元素是n输出第i1<=i<=n个元素是____。不确定n-i+1in-i
139137设一组权值集合W={2,3,4,5,6}则由该权值集合构造的哈夫曼树中带权路径长度之和为____20304045
140138系统中的文本显示类TextView和图片显示类PictureView都继承了组件类Component分别显示文本和图片内容现需要构造带有滚动条或者带有黑色边框、或者既有滚动条又有黑色边框的文本显示控件和图片显示控件但希望最多只增加三个类____可以实现该目的。代理模式继承策略模式装饰模式
141139队列的插入操作是在____。队尾队头队列任意位置队头元素后
142140下列关于getline()和read()函数的叙述中错误的是____都可用于从键盘或文件读取字符串getline()读取字符串长度是受限制的read()读取字节数是受限制的getline()终止符默认是换行符,也可以指定其他终止符
143141以下哪个不是使用设计模式进行编程的特点____牺牲了代码维护的代价,降低模型复杂程度不优先使用继承指导经验不足的程序员灵活运用面向对象的特性快速构建适用于不同场景的程序框架
144142从表中任一结点出发都能扫描整个表的是____。单链表顺序表循环链表静态链表
145143设广义表L=((a,b,c)),则L的长度和深度分别为____1和11和31和22和3
146144下面____是死循环。for(i=0;i<10;i++) cout<<i<<" ";for(i=10;i>=1;i--) cout<<i<<" ";i=10;do cout<<i--<<" ";while(i>0);i=0;while(i<=10);cout<<++i<<" ";
147145在最大化堆中不正确的是____任何节点的数值不超过其父亲兄弟节点之间具有确定的大小关系节点的数值不超过其任何一个祖先整个堆中的最大元素在根节点
148146若C1是一个抽象类下列语句中错误的是____C1 *pC;void fun(C1 arg);void fun(C1 *arg);void fun(C1 &arg);
149147关键路径是事件结点网络中____。从源点到汇点的最长路径从源点到汇点的最短路径最长的回路最短的回路
150148若一个图的边集为{<1,2><1,4><2,5><3,1><3,5><4,3>}则从顶点1开始对该图进行深度优先搜索得到的顶点序列可能为____1,2,5,4,31,2,3,4,51,2,5,3,41,4,3,2,5
151149线性表既可以用带头结点的链表表示也可以用不带头结点的链表表示前者最主要的好处是____。使空表和非空表的处理统一可以加快对表的遍历节省存储空间可以提高存取表元素的速度
152150在以下运算符中优先级最低的是____!>=*||
153151对于下面定义的类 class Base { protected: int x; public: Base(int val = 1) { x = val; } virtual void disp(){cout<< x<< endl; } void print() {cout<<x<< endl; } }; class Derived: public Base { int y; public: Derived(int vail = 0, int val2 = 0): Base(vall) { y = val2; } void disp(){ cout<< "x="<< x<< " y="<< y<< endl; } void print() { cout<<"x="<<x<<" y="<< y<< endl; } }; 有定义Derived dd(3,4); Base *bp=&dd,bb=dd; 则dd.disp()执行的是____派生类的 disp 函数派生类的 pririt 函数基类的 disp 函数基类的 print 函数
154152下面有关重载函数的说法中正确的是____重载函数必须具有不同的返回值类型;重载函数形参个数必须相同重载函数必须有不同的形参列表;重载函数名可以不同;
155153在快速排序过程中下列结论正确的是____。左、右两个子表都已各自排好序左边的元素都不大于右边的元素左边子表长度小于右边子表长度左、右两边元素的平均值相等
156154公有成员提供了类对外部的接口私有成员是类的内部实现而____不许外界访问,但允许派生类的成员访问,这样既有一定的隐藏能力,也提供了开放的接口。私有成员私有成员函数保护成员公有成员
157155链表不具有的特点是____插入、删除不需要移动元素可随机访问任一元素不必事先估计存储空间所需空间与线性长度成正比
158156在派生类中重新定义虚函数时除了____方面,其他方面都必须与基类中相应的虚函数保持一致。参数个数和类型函数体函数名称返回类型
159157对二叉树T中的某个结点x它在先根序列、中根序列、后根序列中的序号分别为prexinx、postxa和b是T中的任意两个结点下列选项一定错误的是____。a 是 b 的后代且 prea<preba 是 b 的祖先且 posta>postba 是 b 的后代且 ina<inba 在 b 的左边且 ina<inb
160158当图中各条边的权值____时广度优先搜索算法可用来解决单源最短路径问题。不一定相等均互不相等均相等对权值无特别要求
161159对友元(friend)不正确的描述是____友元关系既不对称也不传递。友元声明可以出现在 private 部分, 也可以山现在 public 部分整个类都可以声明为另一个类的友元。类的友元函数必须在类的作WJ 域以外被定义。
162160在有向图的逆邻接表中每个顶点邻接表链接着该顶点所有____邻接点。入边出边入边和出边不是出边也不是入边
163161对于如下定义的两个类模板____中的模板实例化是无效的。Template<classT,int size> classArray{/**/} template<int hi,int wid>classScreen{/*…*/}const int hi = 40; const int wi = 80; Screen <hi, wi + 32> Sobj;const int arr_size = 1024; Array<string, arr_size> al;double db = 3.1415; Array <double,db> a3;Array <double,12> a3;
164162判断一个有向图中是否存在回路下列选项中两种算法均可行的是____Dijkstra算法和深度优先遍历算法深度优先遍历算法和拓扑排序方法拓扑排序方法和Kruskal算法Kruskal算法和Floyd算法
165163请问下面的代码的输出是____ #include<iostream> 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(); }AAABBABB
166164C++类体系中不能被派生类继承的有____。转换函数构造函数虚函数静态成员函数
167165class Employee { private: int a; protected: int b; public: int c; void display(); }; class Director:public Employee { public: void show(); }; 在C++中以下操作正确的是____。void Employee::show(){cout<<a<<b<<c<<endl;}void Director::display(){cout<<a<<b<<c<<endl;}void Director::show(){cout<<a<<b<<c<<endl;}void Director::show(){cout<<b<<c<<endl;};
168166当使用fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为____ios::inios::outfstream::in| fstream::out没有指定打开方式
169167以下说法不正确的是____sum为自定义类的一个变量可以通过 sum.operator()(5, 6);去调用()运算符重载函数通过重载[]运算符: int operator[] (const char* name);使得我们可以像map一样使用 beijing["mon"] = -3;ClassName& operator++();为前缀自增运算符的重载声明运算符()必须作为成员函数重载
170168设有关键字初始序列{Q,H,C,Y,P,A,M,S,R,D,F,X}新序列F,H,C,D,P,A,M,Q,R,S,Y,X}是采用____方法对初始序列进行第一趟扫描的结果。直接插入排序二路归并排序以第一元素为标准元素的快速排序冒泡排序
171169二叉树在线索化后仍不能有效求解的问题是____。前序线索二叉树中求前序后继中序线索二叉树中求中序后继中序线索二叉树中求中序前驱后序线索二叉树中求后序后继
172170若将n个顶点e条弧的有向图采用邻接表存储则拓扑排序算法的时间复杂度是____O(n)O(n+e)O(n^2)O(ne)
173171在具有n个结点的单链表上查找值为x的元素时其时间复朵度为____。O(n)O(1)O(n^2)O(n-1)
174172如果从无向图的任一顶点出发进行一次深度优先搜索即可访问所有顶点则该图一定是____完全图连通图有回路一棵树
175173下面几个符号串编码集合中不是前缀编码的是____。{0,10,110,1111}{11,10,001,101,0001}{00,010,0110,1000}{b,c,aa,ac,aba,abb,abc}
176174下面关于静态数据成员的描述中正确的是____静态数据成员可以直接用类名调用静态数据成员可以在类体内进行初始化静态数据成员不能受 private 控制符的作用类的不同对象有不同的静态数据成员值
177175设森林中有三棵树第一、第二和第三颗树中的结点个数分别为m1、m2和m3。那么在由该森林转化成的二叉树中根结点的右子树上有____个结点。m1+m2m2+m3m1+m3m1+m2+m3
178176下列专门用于读取单个字符的是____cin.read()cin.get()cin.put()cin.getline()
179177任一个有向图的拓扑序列____。不存在有一个一定有多个有一个或多个
180178若char p[20]=”helloworld”;则输出该字符串正确的语句是____cout<<p[20];cout<<&p;cout<<*p;cout<< P;
181179分析下面的C++代码段: class Employee { private: int a; protected: int b; public: int c; }; class Director:public Employee{}; 在main()中下列____操作是正确的。Employee obj; obj.b=1;Director boj; obj.b=10;Employee obj; obj.c=3;Director obj; obj.a=20;
182180下列关于虚函数的描述中正确的是____派生类中要覆盖基类的虚函数, 必须使用 virtual静态函数不得声明为虚函数虚函数不得声明为另一个类的友元函数派生类必须-覆盖基类的虚函数
183181下列选项给出的是从根分别到达两个叶结点路径上的权值序列,能属于同一棵哈夫曼树的是____24 10 5 和 24 10 724 10 5 和 24 12 724 10 10 和 24 14 1124 10 5 和 24 14 6
184182非递归后序遍历二叉树时考察栈中的数据若当前结点为x,且x没有右儿子这时栈顶的结点为y,且它的TimesPop值为2.则栈顶结点y必是x的____前序的后件中序的后件后序的前件后序的后件
185183下列对派生类的描述中错误的是____基类中成员访问权限继承到派生类中都保持不变.派生类至少有一个基类。一个派生类可以作为另一个派生类的基类。派生类的成员除了自己定义的成员外, 还包含了它的基类成员。
186184在函数明中____是不必要的形式参数的类型形式参数名函数的返回类型函数名
187185关于重载运算符下列说法正确的是____同一个运算符不可以被重载多次;C++已有的运算符都可以重载;运算符重载函数只能作为类的成员函数;运算符函数的返回类型可以声明为基本数据类型。
188186要输出整形二维数组inta[5][5]中第i行第j列的元素则对以下三条语句 cout<<a[i][j]<<endl;//① cout<<*(*(a+i)+j)<<endl;//② cout<<*(*a+i*5+j)<<endl;//③ 说法正确的是____语句①有错误语句②有错误语句③有错误语句①②③都是正确的
189187以下说法不正确的是____被声明为友元的函数或类,具有对出具友元声明的类的一切成员有访问权限。A函数是B类的友元函数B类是C类的友元类A函数对C类没有特殊访问权限编译器认为某个函数不值得内联,就会忽略内联修饰符编译期间建立虚函数表VTABLE和虚函数指针VPTR
190188若有以下说明: int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则对数组元素地址的正确表示是____&(a+1)a++&pa+1
191189用邻接表来存储图则常见的操作的算法复杂度____。与图的结点数和边数都有关只与图的边数有关只与图的结点数有关与结点数和边数都无关
192190顺序搜索算法适合于存储结构为____的线性表。散列存储顺序存储或链接存储压缩存储索引存储
193191读下面C++程序: #include<iostream.h> 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->
194192在循环单链表中head指向头结点设P为指向结点的指针则判断P为尾结点的条件____P==NULLP->next==NULLP->next==headp==head
195193下面____方法可以判断出一个有向图中是否有环回路深度优先遍历求最短路径拓朴排序求关键路径
196194以下程序经过编译连接后的可执行文件名是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,5s,7w,5w,7
197195阅读以下程序: #include<iostream> using namespace std; class Base{ public: void fun(){cout<<"Base::fun"<<endl;} }; class Derived:public Base{ public: void fun(){cout<<"Derived::fun"<<endl;} }; int main(int argc,const char *argv[]){ Base a,*pb; Derived b; ; pb->fun(); return 0; } 要使以上程序的输出为“Base::fun”横线上可以填的语句为____pb=apb=bpb=&bpb=&Base
198196图的广度优先队列遍历算法中使用队列作为其辅助数据结构那么在算法执行过程中每个结点最多进队____。1 次2 次3 次4 次
199197如果基类A和A的派生类B中都有成员函数func()要在派生类的func()中调用同名的基类的func()成员函数下列____操作下正确的。func();A::func();B::func();A.func();
200198下列关键字序列中____是最大堆。94,23,31,12,16,1316,72,31,23,94,5316,23,53,31,94,7216,53,23,94,31,72
201199#include<iostream.h> class example { private: static int num; public: example(){num++;cout<<num<<"";} ~example(){num--;cout<<num<<"";} }; int example::num=1; void main() { example object1; example object2; } 上面c++程序的输出结果是____。1 1 1 12 1 2 12 2 3 22 3 2 1
202200某二叉树的前序和后序序列正好相反则该二叉树一定是____的二叉树。空或只有一个结点高度等于其结点数任一结点无左孩子任一结点无右孩子
203201下面对静态数据成员的描述中正确的是____静态数据成员是类的所有对象共享的数据类的每个对象都有自己的静态数据成员类的不同对象有不同的静态数据成员值静态数据成员不能通过类的对象调用
204202假定对元素序列(7,3,5,9,1,12)进行堆排序并且采用小根堆则由初始数据构成的初始堆为____1,3,5,7,9,121,3,5,9,7,121,5,3,7,9,121,5,3,9,12,7
205203计算机中的算法指的是解决某一个问题的有限运算序列它必须具备输入、输出、____等5个特性。可执行性、可移植性和可扩充性可执行性、有穷性和确定性确定性、有穷性和稳定性易读性、稳定性和确定性
206204在一株高度为2的5阶B树中根结点所含关键字的个数最少是____5781
207205设有两个串S1和S2,求串S2在S1中首次出现位置的运算称作____。连接求子串模式匹配判断子串
208206用哈希散列方法处理冲突碰撞时可能出现堆积聚集现象下列选项中会受堆积现象直接影响的是____存储效率散列函数装填(装载)因子平均查找长度
209207下面关于线性表的叙述中错误的是哪一个____线性表采用顺序存储,必须占用一片连续的存储单元。线性表采用顺序存储,便于进行插入和删除操作。线性表采用链接存储,不必占用一片连续的存储单元。线性表采用链接存储,便于插入和删除操作。
210208已知程序如下: int S(int n) {return(n<=0)?0:s(n-1)+n;} void main() {cout<<S(1);} 程序运行时使用栈来保存调用过程的信息自栈底到栈顶保存的信息依次对应的是____main( )→S(1)→S(0)S(0)→S(1)→main()main( )→S(0)→S(1)S(1)→S(0)→main( )
211209对类的构造函数和析构函数描述正确的是____构造函数可以重载, 析构函数不能重载构造函数不能重载, 析构函数可以重载构造函数可以重载, 析构函数也能重载构造函数不能重载, 析构函数也不能重载
212210以下类定义不能通过编译的是____class A { public: void func(int a,int b) {}; };class B { public: void func(int a,int b=1){} };class C { public: void func(int a=3,int b){} };class D { public: void func(int a=3,int b=1){} };
213211数据的逻辑结构可以分为____。静态结构和动态结构物理结构和存储结构线性结构和非线性结构虚拟结构和抽象结构
214212若二叉树的前序序列和后序序列正好相反则该二叉树一定是____的二叉树。空或只有一个结点任一结点无左子树任一结点无右子树高度等于其结点数
215213空串和空格串____。相同不相同可能相同无法确定
216214以下关于装饰模式和代理模式说法错误的是____可以把“装饰”看成是一连串的“代理”。在对类进行装饰时,被装饰对象增加的行为通常重新实现原有功能。代理模式中少见多重嵌套。装饰模式通过对象的组合修改对象的功能。
217215当输入为”12345c6”后敲回车键下列函数的输出为____ #include<iostream> using namespace std; int main(){ int i=0,a=0; while(cin>>a){ cout<<a; ++i; } cout<<"*"<<i; return 0; }1234*212 34 5*112345*312 34 *4
218216下列叙述错误的是____派生类一般都用公有派生;对基类成员的访问必须是无二义性的;基类的公有成员在派生类中仍然是公有的;赋值兼容规则也适用于多重继承的组合。
219217C++基类中的private成员通过____类型的继承可以被派生类访问。publicprotectedprivate任何类型的继承都不能使得派生类可以访问基类的 private 成员
220218设有100个结点用二分法查找时最大比较次数是____。2550107
221219观察以下程序片段 int a[5]={1,2,4,8,16}; int*p=&a[0]; int*q=&a[4]; cout<<q-p<<endl; 其输出为____15416程序片段中存在语法错误
222220循环队列的队头和队尾指针分别为front和rear,则判断循环队列为空的条件是____。front==rearfront==0rear==0front=rear+1
223221派生类的对象对它的基类成员中什么是可访问的____公有继承的公有成员公有继承的私有成员公有继承的保护成员私有继承的公有成员
224222观察以下程序段 string a="abcd"; string b="bcd"; if(a>b)cout<<"a>b"<<a.length()<<endl; else cout<<"a<b"<<a.length()<<endl; 那么程序的输出为____a>b 4a<b 4a>b 5a<b 5
225223已知字符集{abcdefgh}若各字符的哈夫曼编码依次是01001000000101001011110001则编码序列0100011001001011110101的译码结果是____a c g a b f ha d b a g b ba f b e a g da f e e f g d
226224下列关于图的描述错误的是____。在一个无向图中,所有结点的度数之和等于所有边数的 2 倍在一个有向图中,所以结点的入度或出度之和均等于所有边的数目n 个结点的完全有向图包含n (n-1)条边若要连通具有n 个结点的无向图至少需要n 条边
227225下列程序输出结果是____ #include<iostream> #include<iomanip> using namespace std; int main(){ cout<<"hello"<<setw(4)<<"dear"<<"friends!"<<endl; cout<<22<<""<<hex<<33<<""<<44<<endl; return 0; }hellodearfriends! 22 21 2chello dearfriends! 22 21 2chello dear friends! 22 21 44hello dearfriends! 22 21 44
228226静态查找表与动态查找表二者的根本差别在于____。它们的逻辑结构不一样施加在其上的操作不同包含的数据元素的类型不一样存储实现不一样
229227有如下程序段: #include<iostream> using namespace std; class A{ public: static int num; A(){num++;} }; int A::num=0; int main(){ A a,*b,d[2]; cout<<A::num<<endl; return 0; } 执行上面的程序将输出____0134
230228现有一棵无重复关键字的平衡二叉树(AVL树)对其进行中序遍历可得到一个升序序列。下列关于该平衡二叉树的叙述中正确的是____根结点的度一定为 2树中最小元素一定是叶结点最后插入的元素一定是叶结点树中最大元素一定无右子树
231229在C++中下列类的成员函数____属于纯虚函数。void display();Virtual void display();Virtual void display()=0;Virtual void display(){int a=0};
232230设一组初始记录关键字序列为(50,40,95,20,15,70,60,45)则以增量d=4的一趟希尔排序结束后前4条记录关键字为____40,50,20,9515,40,60,2015,20,40,4545,40,15,20
233231下面叙述正确的是____抽象基类中所有的virtual函数都必须声明为纯virtual函数使用基类指针引用一个派生类的对象是非常危险的如果基类申明了一个纯virtual函数 派生类只有实现该函数才能成为具体类。一个类中有virtual函数 该类就成为抽象类。
234232以下说法不正确的是____静态成员函数可以调用静态成员函数;静态成员函数可以调用非静态成员函数;非静态成员函数可以调用静态成员函数;非静态成员函数可以调用非静态成员函数。
235233若平衡二叉树的高度为6且所有非叶子结点的平衡因子均为-1则该平衡二叉树的结点总数为____12203233
236234语句ofstreamf("SALARY.DAT",ios::appiios::binary);的功能是建立流对象f,试图打开文件SALARY.DAT并与之连接并且____若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件若文件存在,将其置为空文件;若文件不存在,打开失败若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件若文件存在,打开失败;若文件不存在,建立一个新文件
237235以下程序段的时间复杂度为____。 void main(){ int n=10,x=n,y=0; while(x>=(y+1)*(y+1)) y++; }O( n^(1/2))O(n)O(1)O(n^2)
238236在____情况下适宜采用inline定义内联函数。函数体含有循环语句函数体含有递归语句函数代码少、频繁调用函数代码多、不常调用
239237有如下定义语句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
240238在双向循环链表中在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 =qq->next=p;q->prev=p->prev;p->prev->next=q;p->prev =q;
241239下面这段代码的运行结果为____ #include<iostream> using namespace std; class A{ public: void f(){cout<<"A::f"<<endl;} }; class B:public A{ public: void f(){cout<<"B::f"<<endl;} }; int main() { A *p=new B(); p->f(); delete p; return 0; }A::fB::fA::f\nB::f\n表示换行不产生输出
242240对给定的关键字序列110119007911114120122进行基数排序则第2趟分配收集后得到的关键字序列是____007 110 119 114 911 120 122007 110 119 114 911 122 120007 110 911 114 119 120 122110 120 911 122 114 007 119
243241如果图用邻接表结构存储则常见操作的算法时间复杂度____只和顶点的个数有关只和边的条数有关和顶点的个数、 边的条数都可能有关和两者都无关
244242C++支持两种多态包括编译时多态和运行时多态编译时多态和运行时多态分别通过____来实现重 载 和 虚 函数重 载 和 重 载虚 函 数 和 重 载虚函数和虚函数
245243下面关于B树和B+树的叙述中不正确的是____都是平衡的多叉树都能有效地支持顺序检索都可以用于文件的索引结构都能有效地支持随机检索
246244对于拷贝构造函数和赋值操作的关系正确的描述是____进行赋值操作时, 会调用类的构造函数。当调用拷贝构造函数时, 类的对象正在被建立并被初始化。拷贝构造函数和赋值操作是完全一样的操作拷贝构造函数和赋值操作不能在同一个类中被同时定义
247245树最适合用来表示____。有序数据元素无序数据元素元素之间具有分支层次关系的数据元素之间无联系的数
248246下述对C++语言字符数组的描述中错误的是____字符数组可以存放字符串字符数组中的字符串可以整体输入、输出可以在赋值语句中通过赋值运算符”="对字符数组整体赋值不可以用关系运算符对字符数组中的字符串进行比较
249247一个队列的入队序列是1,2,3,4则队列的出队序列是____。1,2,3,44,3,2,11,4,3,23,4,1,2
250248阅读代码下列说法错误的是____ #include <iostream> #include <string.h> 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则可能会出现内存泄漏
251249下面的叙述中____是正确的。若有一个结点是二叉树中某个子树的中序遍历结果序列的最后一个结点,则它一定是该子若有一个结点是二叉树中某个子树的前序遍历结果序列的最后一个结点,则它一定是该子若有一个叶子结点是二叉树中某个子树的中序遍历结果序列的最后一个结点,则它一定是若有一个叶子结点是二叉树中某个子树的前序遍历结果序列的最后一个结点,则它一定是
252250对于std::string和std::vector<char>定义的字符串str以下选项正确的是____都可以使用str.length();获得字符串长度都可以使用for(char c: str)遍历字符串中的所有字符都可以使用cin>>str;从标准输入输入字符串都可以使用str+="abc";向字符串尾部添加字符
253251设入栈顺序为A,B,C,D,E,则出栈序列不可能是____EDCBAABCDEADEBCABDEC
254252在无向图中定义顶点vi与vj之间的路径为从vi到vj的一个____。顶点序列边序列权值总和边的条数
255253下面程序的运行结果是____ #include<iostream.h> void main() { int num=1; int& ref=num; ref=ref+2; cout<<num; num=num+3; cout<<ref<<endl; }13163633
256254判定一个顺序栈s(栈空间大小为n)为空的条件是____。S->top==0S->top!=0S->top==nS->top!=n
257255在一个单链表中删除P指向的结点后的结点s,则执行____delete s;P->next=s-next;P->next=NULL;P->next=S->next; delete s;
258256若已知char str[10];有语句cin>>str; 当输入为This is a program,所得到的结果是str=____This is a programTThisThis is a
259257当利用大小为n的数组顺序存储一个栈时假定用top==n表示栈空则向这个栈插入一个元素时,首先应执行____语句修改top指针。top++top--top=0top
260258下述文件中适合于磁带存储的是____顺序文件索引文件散列文件多关键字文件
261259一棵深度为10的完全二叉树从根结点开始对所有结点按照层次依次编号:0,1,2…则编号为18的结点其父结点编号为____10985
262260下列程序输出结果是____ #include<iostream> 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; }BBBBAABBBBCCBBBBAACCBBCC
263261在c++中下列关于友元函数和成员函数的区别____是正确的。都具有 this 指针友员函数不具有 this 指针,而成员函数则具有。友员函数的定义和成员函数的定义相同,都需要类名加上作用域算符::为前纵友员函数的定义与成员函数一样需要以类名加上作用域运算符::为前纵
264262由权值分别为11,8,6,2,5的叶子结点生成一棵哈夫曼树它的带权路径长度为____24734853
265263若一个栈的输入序列为1,2,3,…,n输出序列的第一个元素是i则第j个输出元素是____。i-j-1i-jj-i+1不确定的
266264以下正确的描述是____预处理指令只能位于 C 源程序文件的首部。凡是 C 源程序中行首以“#” 标识的控制行都是预处理指令。C +语言的编译预处理就是对源程序进行初步的语法检查。C 语言的预处理功能是指完成宏替换和包含文件的调用。
267265定义如下的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两个成员函数
268266设输入序列为1,2,3,4,5,6,则通过栈的作用后可以得到的输出序列为____5, 3, 4, 6, 1, 23 2 5 6 4 13, 1, 2, 5, 4, 61 5 4 6, 2 3
269267一个非空广义表的表头____。不可能是子表只能是子表只能是原子可以是子表或原子
270268以下类定义不正确的是____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){…};};
271269二叉查找树的查找时间复杂度最差为____O(n^2)O(nlogn)0(n)0(log_2n)
272270如果类A被说明成类B的友元则____类 A 的成员即类 B 的成员类 B 的成员即类 A 的成员类 A 的成员函数不得访问类 B 的成员类 B 不一定是类 A 的友元
273271若完全二叉树的结点总数为1001则度为1的结点有____个。01500501
274272后缀表达式823+-62/-的计算结果是____-1102
275273设一组初始关键字记录关键字为(20,15,14,18,21,36,40,10)则以20为基准记录的一趟快速排序结束后的结果为____10,15,14,18,20,36,40,2110,15,14,18,20,40,36,2110,15,14,20,18,40,36,2115,10,14,18,20,36,40,21
276274在C++中,____一定不能创建类的对象和实例.虚基类抽象类基类派生类
277275下列输出字符'A'的方法中错误的是____char A = 'A'; cout<<A;cout<<'A';cout<<put('A');cout.put('A');
278276现有一个实现数据结构“栈”的需求程序员X对栈的设计进行了如下思考其中你认为有问题的是____可以利用C++ STL中的vector使用适配器模式将其适配为符合栈的抽象接口的类对于栈中元素的内存分配和释放,可以使用策略模式来实现不同内存分配/释放算法如果使用装饰器模式对一个栈数据结构进行多次功能扩展,就不会出现多重嵌套的问题可以使用代理/委托模式设计智能指针,对栈中元素进行内存分配和释放
279277设计一个判别表达式中左右括号是否配对出现的算法采用____数据结构最佳。线性表的顺序存储结构队列线性表的链式存储结构
280278通过____调用虚函数时采用动态束定。对象指针对象名成员名限定派生类名
281279一组纪录的关键字序列为(33,66,43,25,27,71)为排序非递减序列利用堆排序的方法建立的初始堆为____(66,33,43,25,27,71)(71,66,43,33,27,25)(71,66,43,25,27,33)(71,43,66,27,33,25)
282280在类的说明符中被指定为私有的数据可以被以下____访问。程序中的任何函数其他类的成员函数类中的成员函数派生类中的成员函数
283281内排和外排的不同在于____内排数据元素的类型简单,外排数据类型复杂内排数据元素在内存中能全部放下,外排不能,一部分要存在外存储器上内排数据存储用顺序结构,外排数据存储用链式结构内排是稳定排序,外排是不稳定排序
284282设某散列表的长度为100,散列函数H(k)=k%P,则P通常情况下最好选择____99979193
285283图的邻接矩阵表示法适用于表示____无向图有向图稠密图稀疏图
286284有如下程序段: #include<iostream> using namespace std; class BASE{ char c; public: BASE(char n):c(n){} virtual~BASE(){cout<<c;} }; class DERIVED:public BASE{ char c; public: DERIVED(char n):BASE(n+1),c(n){} ~DERIVED(){cout<<c;} }; int main() { DERIVED('X'); return 0; } 执行上面的程序将输出____XYYXXY
287285在类中说明的成员可以使用关键字____进行修饰。privateexternautoregister
288286表达式a*(b+c)-d的前缀表达式是____abcdd+--*a+bcdabc*+d--+*abcd
289287从空栈开始依次将字符A、B、C、D、E入栈在所有可能的出栈序列中最后一个出栈元素是C的序列的个数是____5143
290288结构类型Date作为函数的参数如果该参数在函数中只读不写,则以下参数说明中最好的是____const Date &dconst Date dDate &dDate d
291289以下序列不是堆的是____。100,85,98,77,80,60,82,40,20,10,66100,98,85,80,77,82,66,60,40,20,1010,20,40,60,66,77,80,82,85,98,100100,85,40,77,80,60,66,98,82,10,20
292290下列说法正确的是____非常量左值引用与常量左值引用既可以绑定左值,也可以绑定右值int y=2,z=3;int &&w = y * z;不能够正常运行int y=3,z=3;const int &w = y * z;能够正常运行在函数中的临时左值引用可以先定义,再赋值
293291链表结点的结构类型为struct linkRec{int data;linkRec *next;},如果指针rear指向尾结点将节点p链入表尾并将p作为新的表尾可用语句____rear->next=p->next;rear=p;rear->next=p;rear=p;rear->next=rear;p->next=p;(*rear ).next=rear;(*p).next=p;
294292设一个链表最常用的操作是在末尾插入结点和删除尾结点则选用____最节省时间。单链表单循环链表带尾指针的单循环链表带头结点的双循环链表
295293下列不属于责任链模式的优点的是____提高系统性能;便于增加新的处理请求类;降低耦合度;简化对象。
296294若用一个大小为6的数组来实现循环队列且当前rear和front的值分别为0和3。当从队列中删除一个元素再加入两个元素后rear和front的值分别为____。1 和 52 和 44 和 25 和 1
297295char s, *p=&s,&ch=s; 则等价于 s='#'的语句为____p='#'*p='#'*ch='#'&dr='#'
298296定义如下所示的Base类和Derive类下列说法错误的是____ #include <iostream> 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\nobj1析构时先执行Derive类的析构函数再执行Base类的析构函数
299297类CStudent的拷贝构造函数的声明语句为____CStudent &CStudent (const CStudent other)CStudent CStudent(const CStudent other)CStudent (CStudent *other)CStudent (const CStudent &other)
300298下列说法错误的是____求最短路径的Dijkstra算法中边的权值不可以为负Dijkstra算法允许图中有回路Floyd算法中边的权值不可以为负深度优先搜索算法可用于判断有向图中是否存在回路
301299下面的循环体执行的次数与其它不同的是____i=0;while(++i<100){cout<i<" ";}for(i=0;i<100;++i){cout<<i<<” ";}for(i=100;i>=1;--i){cout<i<" ";}i=0;while(i++<100){cout<<i<<" ";}
302300在按层次遍历二叉树的算法中需要借助的辅助数据结构是____队列线性表有序表
303301类模板定义如下: template<classT,int low,int high> class Array{....}; 对该类模板实例化正确的是____Array<float,0,20> x;Array<int,int,int> x;template<int,0,20> x;Array<int,0,int> x;
304302采用稀疏矩阵的三元组表形式进行压缩存储若要完成对三元组表进行转置只要将行和列对换这种说法____。正确错误无法确定以上均不对
305303Sample是用户定义的某个类obj是Sample类的对象p是Sample类的指针则执行语句p=new Sample时会调用____Sample 类的构造函数Sample 类的析构函数Sample 类的赋值运算符重载函数Sample 类的拷贝构造函数
306304在C++中可以重载的运算符有____。sizeof()::.*++
307305#include<iostream.h> { //This is my first program cout<<"My first program in C++"; } 这段C++程序的输出是____。My first program in C++This is my first programMy first Program in CNone of the above
308306用某种排序方法对关键字序列(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 则所采用的排序方法是____选择排序希尔排序归并排序快速排序
309307对10TB的数据文件进行排序应使用的方法是____希尔排序堆排序快速排序归并排序
310308快速排序在最坏情况下的时间复杂度为____O(log2n)O(nlog2n)O(n)O(n^2)
311309若将关键字1234567依次插入到初始为空的平衡二叉树T中则T中平衡因子为0的非叶子结点的个数是____0123
312310对初始数据序列8391121475106进行希尔排序。若第一趟排序结果为1375264911108第二趟排序结果为1264375811109则两趟排序采用的增量分别是____。31325253
313311函数f声明为void f(int *n),在主程序中定义变量m为int m=10,则下面调用正确的是____f(*m)f(&m)f(m)f(10+m)
314312下列关于无向连通图特性的叙述中正确的是____。 1所有顶点的度数之和为偶数。 2边数比顶点个数减1要大。 3至少有1个顶点的度为1。只有1只有21213
315313int a=10,b=11,c=12,x=(a+b)<c&&(b=7):则此时b的值是____11071
316314下列排序算法中____算法可能会出现下面情况初始数据有序时花费时间反而更多。堆排序冒泡排序快速排序希尔排序
317315以下说法正确的是____。数据元素是数据的最小单位数据项是数据的基本单位数据结构是带有结构的各数据项的集合一些表面上很不相同的数据可以有相同的逻辑结构
318316已知各变量的类型说明如下: int a=0; double x=1.42; char ch; 则以下不符合C+语言语法的表达式是____a+=0x123fdx=12e-8ch="y"ch='\0'
319317在C++中,运算符new的作用是____创建名为 new 的对象获取一个新类的内存返回指向所创建对象的指针,并为创建的对象分配内存空间返回为所创建的对象分配内存的大小
320318以下关于单例模式说法不正确的是____单例模式只需要显式删除构造函数与拷贝构造函数即可保证只能构造一份类的实例CRPT模式与虚函数不同实现了编译时多态静态虚函数可以实现和单例模式类似的“全局访问”功能我们可以使用惰性初始化返回单例实例的引用。但这种方法仍然存在用户自行delete所生成单例实例引发错误的可能
321319判断一个有向图是否存在回路除了可以利用拓扑排序方法外还可以利用____。求关键路径的方法求最短路径的Dijkstra方法深度优先遍历算法广度优先遍历算法
322320在含n个顶点和e条边的无向图的邻接矩阵中空元素的个数为____e2en^2-en^2-2e
323321B+树不同于B树的特点之一是____能支持顺序查找结点中含有关键字根结点至少有两个分支不适合外部文件建立索引用
324322以下说法不正确的是____类的静态成员(数据、函数)既可以通过对象来访问,也可以通过类名来访问非静态成员函数可以调用静态成员函数静态数据成员可以在.h文件中声明在.cpp文件中初始化常量静态数据成员必须在类外进行初始化
325323如果A是已经定义好的一个类函数f的原型为A f()r2是A类的一个对象在函数f中执行return r2时系统将自动调用____缺省的构造函数拷贝构造函数赋值运算符重载函数不调用任何函数
326324在int a=3,*p=&a;中,*p的值是____。变量 a 的地址值无意义变量 p 的地址值3
327325比较次数与排序的初始状态无关的排序方法是____直接插入排序起泡排序快速排序简单选择排序
328326线性表采用链式存储时结点的存储地址____必须是不连续的连续与否均可必须是连续的和头结点的存储地址相连续
329327设栈S和队列Q的初始状态为空元素a,b,c,d,e,f依次通过栈S,—个元素出站后即进队列Q。若6个元岽出队的序列为b,d,c,f,e,a,则栈的容量至少应为____6432
330328由两个栈共享一个向量空间的好处是____减少存取时间,降低下滥发生的机率节省存储空间,降低上溢发生的机率减少存取时间,降低上溢发生的机率节省存储空间。降低下溢发生的机率
331329若表达式y*x++中,“*”是作为成员函数重载的运算符,“++”是作为友元函数重载的运算符采用运算符函数调用格式该表达式还可以表达为____x.operator++(0).operator*(y)operator*(x.operator++(0),y)y.operator*(operator++(x,0))operator*(operator++(x,0),y)
332330某二叉树的前序遍历序列和后序遍历序列正好相反则该二叉树一定是____的二叉树。空或只有一个结点叶子结点数至多为1任一结点无左儿子任一结点无右儿子
333331一个具有N个顶点的连通无向图的最小生成树中有____条边N-1NN/2N+1
334332根据下面程序,判断下列说法不正确的是: #include<iostream> 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<<x.data<<endl; }____print是X的友元函数Z是Y的友元类Y是X的友元类Z是X的友元类
335333#include<iostream.h> class X { private: int num; public: X(int intx){num=intx;} X(X &Y) { num=++Y.num; } void disp(){cout<<num<<"";} }; void main() { X a(10); X b(a); a.disp(); b.disp(); }在 C++中以上程序的运行结果为____。10 1010 1111 1111 10
336334可以用p.a的形式访问派生类对象p的基类成员a,其中a是____私有继承的公有成员公有继承的私有成员公有继承的保护成员公有继承的公有成员
337335表达式a*(b+c)-d的后缀表达式是____。abcd+-abc+*d-abc*+d--+*abcd
338336#include<iostream.h> 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 destroyA destroy B destroyA destroyB destroy
339337在任意一棵非空二叉查找树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
340338下列二叉树哪种满足以下性质:从任意一个结点出发到根的路径上所经过的结点序列按其关键字有序____二叉查找树哈夫曼树伸展树
341339下列关于静态成员说法正确的是____同一个类的所有类对象,共享该类的静态数据成员,即所有对象中的该数据成员存储在同一内存位置类的常量静态成员数据只能在类外进行初始化类的静态成员数据只能通过类名来访问静态成员函数属于整个类,在第一个类实例化对象创建的时候分配它的内存空间
342340无向图G有22条边度为5的顶点有3个度为3的顶点有5个其余都是度为2的顶点则图G最多有多少个顶点____11121516
343341如果A是已经定义好的一个类有如下定义语句A*p[5];则当类对象数组指针p离开它的作用域时系统自动调用类A的析构函数____次51010