(新版)《C++开发基础》易考易错高频考试题库(附答案)_第1页
(新版)《C++开发基础》易考易错高频考试题库(附答案)_第2页
(新版)《C++开发基础》易考易错高频考试题库(附答案)_第3页
(新版)《C++开发基础》易考易错高频考试题库(附答案)_第4页
(新版)《C++开发基础》易考易错高频考试题库(附答案)_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

(新版)《C++开发基础》易考易错高频考试题库(附答案)单选题1.作用域运算符“::”的功能是()A、标识作用域的级别B、指出作用域的范围C、给定作用域的大小D、标识成员是属于哪个类参考答案:B2.执行语句boolx=5;inta=x==5;变量a的值为()。A、0B、1C、5D、false参考答案:A3.执行下述程序的输出是________。A、1B、11C、111D、1111参考答案:D4.执行下列代码,程序的输出结果是(用下划线表示空格)____________。inta=29,b=100;coutA、29_100B、_29_100C、29100D、_29100参考答案:D5.执行下列程序语句后,屏幕输出为()。#include<iostream〉Usingnamespacestd;Intn=5;Intmain(){Intn=3;N++;N++;Cout<<n<<endl;Return0;}A、3B、4C、5D、6参考答案:B6.执行下列程序后,输出的结果是()。Inta=-5,b=0;While(++a)B++;Cout<<b<<endl;A、0B、1C、4D、5参考答案:C7.在下面的do-while循环语句中,其循环体语句被执行的次数为()?inti=0;do{i++;}while(i<10)A、8B、9C、10D、11参考答案:C8.在下列运算符中,()优先级最低。A、!B、&&C、!=D、?:参考答案:D9.在函数调用时,如某一默认参数要指明一个特定值,则有()A、其之前所有参数都必须赋值B、其之后所有参数都必须赋值C、其前、后所有参数都必须赋值D、其前、后所有参数都不必赋值参考答案:A10.在C++语言的数据类型中,int,short等类型的长度是()。A、固定的B、任意的C、用户自定义的D、与机器字长有关的参考答案:D11.在32位编译器上,设有定义char*str1="Hello",str2[]="Hello";则以下语句printf("%d%d",sizeof(str1),sizeof(str2));的输出结果是()A、56B、55C、66D、46参考答案:D12.有以下程序:#include<iostream>Usingnamespacestd;Voidmain(){Chara='A',b;Cout<<++a;Cout<<(b=a++)<<endl;}程序运行后的输出结果是_____。(题)A、BBB、BCC、ACD、AB参考答案:A13.有以下程序#include<iostream>Usingnamespacestd;Intmain(){Inta;Cin>>a;If(a++<9)cout<<a;Elsecout<<a--;Return0;}程序运行时从键盘输入9回车,则输出结果是()。A、10B、11C、9D、8参考答案:A14.有序数组123456789查找3的二分查找序列是:A、1->2->3B、5->2->3C、9->5->3D、5->1->4->3参考答案:B15.有如下程序:#include<iostream>Usingnamespacestd;Classshapes{Protected:Intx,y;Public:Voidsetvalue(intD,intw=0){x=d;y=w;}Virtualvoiddisp()=0;};Classsquare:publicshapes{Public:Voiddisp(){cout<<x*y<<endl;}};Intmain(){Shapes*p;Squares1;P=&s1;P->setvalue(10,5);P->disp();Return0;ABoperator+(AB&A,AB&b)}执行上面的程序将输出()A、50B、0C、5D、10参考答案:A16.有如下4个语句:①cout<<'A'<<setfill('*')<<setiosflags(ios::left)<<setw(7)<<'B'<<endl;②cout<<setfill('*')<<setiosflags(ios::left)<<setw(7)<<'A'<<'B'<<endl;③cout<<'A'<<setfill('*')<<setiosflags(ios::right)<<setw(7)<<'B'<<endl;④cout<<setfill('*')<<setiosflags(ios::right)<<setw(7)<<'A'<<'B'<<endl;其中能显示A******B是()。(题)A、②和④B、①和③C、①和④D、②和③参考答案:D17.应在下列程序划线处填入的正确语句是()#include<iostream.h>>Usingnamespacestd;ClassBase{public:Voidfun({cout<<"Base::fun"<<ENDL;}};ClassDerived:publicBase{voidfun({__//显示调用基类的函数fun(Cout<<"Derived::fun"<ENDL;}};A、fun0;B、Base.fun();C、Base::fun();D、Base->fun();参考答案:C18.以下正确的函数定义是()。A、doublefun(intx,inty){}B、doublefun(intx;inty){}C、floatfun(int,int){}D、voidfun(intx,y){}参考答案:A19.以下正确的二维数组定义是________。A、inta[][]={1,2,3,4,5,6};B、inta[2][]={1,2,3,4,5,6};C、inta[][3]={1,2,3,4,5,6};D、inta[2,3]={1,2,3,4,5,6};参考答案:C20.以下选项中可作为C++语言合法整数的是()。A、101011BB、0286C、0xffaD、x2ba参考答案:C21.以下叙述正确的是()。A、构造函数调用虚函数采用动态联编B、构造函数可以说明为虚函数C、当基类的析构函数是虚函数时,它的派生类的析构函数也是虚函数D、析构函数必须是虚函数参考答案:C22.以下叙述不正确的是()A、在不同的函数中可以使用同名的变量B、函数中的形式参数是局部变量C、在函数内定义的变量只在本函数范围内有效D、在函数内复合语句中定义的变量也可在本函数范围内有效参考答案:D23.以下哪种类型是C++比C语言新增的数据类型(题)A、整型(int)B、布尔类型(bool)C、指针类型(*)D、字符类型(char)参考答案:B24.以下哪个GCC编译环境下的链接器A、ldB、link参考答案:A25.以下关于内存泄漏说法正确的是()A、如果一个进程在运行过程中占用的内存无限制上升,那么该进程可能有内存泄漏B、单线程程序不可能内存泄漏C、内存泄漏是操作系统内存管理出错导致的问题D、只要进程在退出之前释放了所有分配的内存,那么就不会内存泄漏参考答案:A26.以下程序片段输出0011,Area=1。classCRect//定义长方形类{private:intleft,top;//左上角坐标intright,bottom;//右下角坐标public:(1)();//设置坐标值,函数原型声明voidgetcoord(int*L,int*T,int&R,int&B)//获取坐标值{(2)();}//可填写多条语句voidprint(){cout<<"Area="<A、(1)处可填写voidsetcoord(int,int,int,int);B、(1)处可填写voidsetcoord(inta,intb,intc,intd);C、(2)处可填写*L=left;*T=top;R=right;B=bottom;D、(2)处可填写*L=left;*T=top;&R=right;&B=bottom;参考答案:D27.以下程序的运行结果是()。#include<iostream>Usingnamespacestd;Intmain(){Intx=1;Switch(x){case1:++x;Case0:--x;Default:x+=7;}Cout<<x<<endl;Return0;}A、2B、1C、7D、8参考答案:D28.已知有函数定义:intfun(intx,inty){…},下列函数原型声明中错误的是________。A、intfun(intx,int);B、intfun(int,int);C、intfun(int,int=4);D、intfun(intx;inty);参考答案:D29.已知如下程序:ClassB{Public:B(){}B(intc):count(c){}Virtualvoidprint()const=0;Private:Intcount;};ClassD:publicB{Public:D():B(0){}D(intc):B(c){}Voidprint()const{cout<<""hello""<<endl;}};Voidmain(){Dd(10);B*pb;Pb=&d;//OKB&cb=d;Ddd=*pb;//2B对象不能转换为DD&cd=cb;//3B对象不能转换为D&Bbb=d;//4B类,不能实例化抽象类}则在标出的几个语句中,没有错误的是()。A、1B、2C、3D、4参考答案:A30.已知类MyClass的定义如下:classMyClass{public:MyClass(intd){data=d;}~MyClass(){}private:intdata;};下列对MyClass类对象数组的定义和初始化语句中,正确的是________。A、MyClassarrays[2];B、MyClassarrays[2]={MyClass(5)};C、MyClassarrays[2]={MyClass(5),MyClass(6)};D、MyClass*arrays=newMyClass[2];参考答案:C31.已知函数func的原型为intfunc(int,double);下列重载函数原型中错误的是________。A、floatfunc(int,double,int)B、boolfunc(int,double,bool)C、charfunc(int,double)D、intfunc(int,char*)参考答案:C32.已知print()函数是一个类的常成员函数,它无返回值,下列表示中正确的是A、voidprint()const;B、constvoidprint();C、voidconstprint();D、voidprint(const);参考答案:A33.已知A是基类、B是派生类,并有语句:Aa,*pa=&a;Bb,*pb=&b;则下列正确的语句是________。A、pb=pa;B、b=a;C、a=b;D、*pb=*pa;参考答案:C34.已知:intm=10;下列表示引用的方法中,______是正确的。A、int&x=m;B、int&y=10;C、int&z;D、float&t=&m;参考答案:A35.一棵树深度为K的完全二叉树至少有多少个结点A、2^k-1B、2^(k-1)-1C、2^(k-1)D、2^k参考答案:C36.要求打开文件D:\file.dat,并能够写入数据,正确的语句是()?A、ifstreaminfile("D:\\file.dat",ios::in);B、ifstreaminfile("D:\\file.dat",ios::out);C、ofstreamoutfile("D:\\file.dat",ios::in);D、fstreaminfile("D:\\file.dat",ios::in|ios::out);参考答案:D37.要禁止修改指针p本身,又要禁止修改p所指向的数据,这样的指针应定义为()A、constchar*p=“ABCD”;B、char*constp=“ABCD”;C、charconst*p=“ABCD”;D、constchar*constp=“ABCD”;参考答案:D38.循环队列的队满条件为()A、(sq.rear+1)%maxsize==(sq.front+1)%maxsize;B、(sq.front+1)%maxsize==sq.rearC、(sq.rear+1)%maxsize==sq.frontD、sq.rear==sq.front参考答案:C39.线性表采用顺序存储的缺点是()A、存储密度降低B、只能顺序访问C、元素的逻辑顺序与物理顺序不一致D、插入、删除操作效率低参考答案:D40.下述关于开关语句的描述中,()是正确的。A、开关语句中default子句可以没有,也可以有一个;B、开关语句中每个语句序列中必须有break语句;C、开关语句中default子句只能放在最后;D、开关语句中case子句后面的表达式可以是整形表达式参考答案:A41.下述程序中,含有错误的行是________。A、1行B、2行C、3行D、4行参考答案:B42.下面有关构造函数的描述中,正确的是()。A、构造函数可以带有返回值B、构造函数的名字与类名完全相同C、构造函数必须带有参数D、构造函数必须定义,不能缺省参考答案:B43.下面描述中,错误的是()。A、在基类定义的public成员在公有继承的派生类中可见,也能在类外被访问。B、在基类定义的protected成员在私有继承的派生类中可见。C、在基类定义的公有静态成员在私有继承的派生类中可见。D、访问声明可以在公有继承派生类中把基类的public成员声明为private成员。参考答案:D44.下面描述是哪个排序算法的特点:在进行一趟排序结束后,不一定能够选出一个元素放在其最终位置上A、冒泡排序B、快速排序C、希尔排序D、以上说法都正确参考答案:C45.下面关于对象概念的描述中错误的是()A、任何对象都必须有继承性B、对象是属性和方法的封装体C、对象间的通信靠消息传递D、操作是对象的动态属性参考答案:A46.下面对数组的初始化,不合法的是()。A、inta[2][]={{1},{2,3,4}};B、inta[4]={1,2,3};C、chars[]={'\013','\0','\n','\0'};D、chars[]="abcde";参考答案:A47.下面程序输出的结果是()。Intmain(){inti;Inta[3][3]={1,2,3,4,5,6,7,8,9};For(i=0;i<3;i++)Cout<<a[2-i][i];Return0;}A、159B、753C、357D、591参考答案:B48.下面程序的输出结果是()#includeusingnamespacestd;intfun(intA,intb){return(++a*b++);}intmain(){intx=3,y=4,z=5,r;r=fun(fun(x,y),z);coutA、8534B、6034C、12645D、8545参考答案:A49.下列有关内联函数叙述中,错误的是________。A、内联函数内不可以有循环语句和开关语句B、使用内联函数是以空间换取时间的C、内联函数降低了函数的执行效率D、内联函数的定义必须出现在内联函数第一次被调用之前参考答案:C50.下列有关C++函数中形参和实参说法错误的是_________。A、实参可以为任意类型B、实参一般应与其对应的形参类型一致C、实参可以是常量、变量和表达式D、形参可以是常量、变量和表达式参考答案:D51.下列选项中能作为C++用户标识符为()。A、a+bB、doubleC、MainD、if参考答案:C52.下列选项中不能作为C++用户标识符为()。A、MainB、sizeofC、_intD、Return参考答案:B53.下列选项中,用于清除基数格式位设置以十六进制输出的语句是()。A、cout<<setf(ios::dec,ios::basefield);B、cout<<setf(ios::hex,ios::basefield);C、cout<<setf(ios::oct,ios::basefield);D、cin>>setf(ios::hex,ios::basefield);参考答案:B54.下列选项中,合法的字符常量是()。A、‘x’(注:半角)B、’xxx’C、"x"D、68参考答案:D55.下列叙述中,错误的是________。A、"x"是一个字符型常量B、2.71828是一个double常量C、true是一个逻辑型常量D、100是一个int常量参考答案:A56.下列说法中不正确的是()。A、对象是类的一个实例B、任何一个对象只能属于一个类C、一个类只能有一个对象D、类与对象间的关系和数据类型与变量间关系相类似参考答案:C57.下列是为字符数组赋字符串的语句组,其中错误是________。A、chars[10];s="program”;B、chars[]="program”;C、chars[10]="Hello!”;D、chars[10];strcpy(s,"hello!”);参考答案:A58.下列排序算法中,已基本有序却反而变得更复杂的排序算法是:()。A、冒泡排序B、快速排序C、简择排序D、插入排序参考答案:B59.下列关于动态联编的描述中,错误的是()。A、动态联编是以虚函数为基础B、动态联编是运行时确定所调用的函数代码的C、动态联编调用函数操作是指向对象的指针或对象引用D、动态联编是在编译时确定操作函数的参考答案:D60.下列关于this指针的叙述中,正确的是________。A、任何与类相关的函数都有this指针B、类的成员函数都有this指针C、类的友元函数都有this指针D、类的非静态成员函数才有this指针参考答案:D61.下列程序的输出结果是________。#includeusingnamespacestd;intd=1;voidfun(intp){intd=5;d+=p++;cout<A、84B、96C、94D、85参考答案:A62.下列程序的输出结果是________。#includeusingnamespacestd;intd=1;voidfun(intp){intd=5;d+=p++;coutA、84B、96C、94D、85参考答案:A63.下列程序的输出结果是()。#includeusingnamespacestd;voidmain(){chara[]="Hello,World";har*ptr=a;while(*ptr){if(*ptr>='a'&&*ptrA、HELLO,WORLDB、Hello,WorldC、hELLO,wORLDD、hello,world参考答案:A64.下列for循环的次数为()。For(inti(0),x=0;!x&&i<=5;i++)A、5B、6C、1D、无限参考答案:B65.为实现快速排序算法,待排序序列宜采用的存储方式是()。A、顺序存储B、链式存储C、堆D、栈参考答案:A66.数据结构中,对于希尔排序的组内排序采用的方式是。A、冒泡排序B、折半插入排序C、快速排序D、以上都不对参考答案:D67.设有一个递归函数如下intf(intn){if(nA、6B、7C、8D、9参考答案:D68.设一个栈的输入序列是1,2,3,4,5,则下列序列中,是栈的合法输出序列的是A、51234B、45132C、43125D、32154参考答案:D69.若有以下说明语句:structdata{inti;doublef;charch;}b;则理论上计算,结构变量b占用内存的字节数为______。A、1B、2C、8D、13参考答案:D70.若有以下定义,则对结构体变量错误操作的是。StructCC{Intnum;Charname[10];Floatscore[2];}s;(题)A、cin>>s.num;B、s.score[1]=66.5;C、cin>>s.score[0];D、=”LiMing”;参考答案:D71.若有以下程序段,intc1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是________。A、0B、0.5C、1D、2参考答案:A72.若有如下函数声明:voidFun(intx);,则下列()能与该函数进行重载。A、voidFun(inty);B、voidFun(intx,inty='1');C、intFun(intx);D、voidFun(int)const;参考答案:B73.若有定义“intx=17;”,则语句“coutA、11B、0x11C、21D、20参考答案:C74.若一棵二叉树具有12个度为2的结点,6个度为1的结点,则度为0的结点个数是()。A、10B、11C、13D、不确定参考答案:C75.若MyClass是一个类名,且有如下语句序列MyClassc1,*c2;MyClass*c3=newMyClass;MyClass&c4=c1;上面的语句序列所定义的类对象的个数是()A、1B、2C、3D、4参考答案:B76.派生类的对象对它的基类成员中()是可以访问的。A、公有继承的公有成员;B、公有继承的私有成员;C、公有继承的保护成员;D、私有继承的公有成员;参考答案:A77.能正确表示逻辑关系:“0≤a≤10”的C++语言表达式是________。A、a<=10anda>=0B、0<=a<=10C、a<=10&&a>=0D、a<=10||a>=0参考答案:C78.内部静态变量的作用域是()A、定义该静态变量的函数外部B、定义该静态变量的函数内部C、定义该静态变量的文件外部D、定义该静态变量的文件内部参考答案:B79.模板函数的真正代码是在()时候产生。A、源程序中声明函数时B、源程序中定义函数时C、源程序中的调用函数时D、运行执行函数时参考答案:C80.快速排序的平均时间复杂度A、O(n)B、O(logN)C、O(n²)D、O(nlogN)参考答案:D81.考虑函数原型voidtest(intA,intb=7,charch='*'),下面的函数调用中,属于不合法调用的是()A、test(5)B、test(5,8)C、test(6,'#')D、test(0,0,'*')参考答案:C82.静态数据成员的初始化必须在()。A、类内B、类外C、在构造函数内D、静态成员函数内参考答案:B83.节点按中序遍历为xyz的二叉树可能有_____种A、5B、4C、3D、2参考答案:A84.假设给出如下的函数声明:voidfunc(intA,intb=2,intc=3);,则下列函数调用正确的是()A、func(1,22,333);B、func();C、func("#",20);D、func(5,,9);参考答案:A85.假定一条定义语句为“inta[10],x,*p=a;”,若要把数组a中下标为3的元素值赋给x,则不正确的语句为()A、x=p[3]B、x=*(a+3)C、x=a[3]D、x=*p+3参考答案:D86.假定一个类的构造函数为“A(intaa=1,intbb=0){a=aa;b=bb;}”,则执行“Ax(4);”语句后,x.a和x.b的值分别为()。A、1和0B、1和4C、4和1D、4和0参考答案:D87.假定机器数为8位,则-50的补码为()。A、10001110B、11001110C、01001110D、10110011参考答案:B88.关于文件包含,下列描述错误的是__________A、文件包含命令行必须以#include开头B、文件包含命令行的两种形式是有区别的,当#include后面的文件名用<>括起来时,应该先在源程序所在目录中进行搜索C、文件包含是可以嵌套的,即在被包含的文件中又使用文件包含命令行包含其他文件D、一个#include命令只能包含一个文件,当多个文件需要包含时,应使用多个#include命令行参考答案:B89.关于跳转语句,下列说法正确的是()。A、break语句只用于循环体中B、continue语句只用于循环体中C、break是无条件跳转语句,continue不是D、break和continue的跳转范围不够确定,容易产生问题参考答案:B90.关于类模板的模板参数说法正确的是()。A、只可作为数据成员的类型B、只可作为成员函数的返回值类型C、只可作为成员函数的参数类型D、既可作为数据成员的类型,也可说明成员函数的类型参考答案:D91.关于局部变量,下面说法正确的是()。A、定义该变量的程序文件中的函数都可以访问B、定义该变量的函数中的定义处以下的任何语句都可以访问C、定义该变量的复合语句中的定义处以下的任何语句都可以访问D、定义该变量的函数中的定义处以上的任何语句都可以访问参考答案:C92.关于C++与C语言的关系的描述中,()是错误的。A、C语言是C++的一个子集;B、C语言与C++是兼容的;C、C++对C语言进行了一些改进;D、C++和C语言都是面向对象的参考答案:D93.关键字unsigned不能修饰的类型是________。A、charB、intC、floatD、longint参考答案:C94.二叉树的第k层的结点数最多为A、2^k-1B、2K+1C、2K-1D、2^(k-1)参考答案:D95.对数组名作函数参数,下面描述正确的是()。A、调用时将实参数组复制给形参数组B、实参和形参占用同一段存储单元C、形参定义的数组长度不能省略D、不能改变主调函数中的数据参考答案:B96.对类中声明的变量,用new运算符创建一维数组的正确形式是()A、int*p=newa[10];B、float*p=newfloat[10];C、int*p=newfloat[10];D、int*p=newint[5]={1,2,3,4,5,6};参考答案:B97.对类中声明的变量,下列描述中正确的是()A、属于全局变量B、属于该类,某些情况下也可被该类不同实例所共享C、只属于该类D、任何情况下都可被该类所有实例共享参考答案:B98.对待排序的元素序列进行划分,将其分为左、右两个子序列,再对两个子序列进行同样的排序操作,直到子序列为空或只剩下一个元素为止。这样的排序方法是A、冒泡排序B、折半插入排序C、快速排序D、希尔排序参考答案:C99.对n个数字进行排序,其中两两不同的数字的个数为k,n远远大于k,而n的取值区间长度超过了内存的大小,时间复杂度最小可以是A、O(nlogk)B、O(nk)C、O(n)D、O(nlogn)参考答案:C100.对n个不同数进行冒泡排序,下面哪种比较次数最多A、从小到大排列好的B、从大到小排列好的C、元素无序D、元素基本有序参考答案:B101.定义以下的类:classA{inta;public:A(intx=0){a=x;}};classB:publicA{intb;public:B(intx=0,inty=0):A(y){b=x;}};下列语句中,存在语法错误的是________。A、A*pa=newB(1,2);B、Aa1=B(1,3);C、Ab2(2,3);B&a2=b2;D、Bb3(10);Aa3(b3);参考答案:C102.当一个派生类公有继承一个基类时,基类中的所有公有成员成为派生类的()。A、public成员B、private成员C、protected成员D、友员参考答案:A103.存在定义inta[10],x,*pa;,若pa=&a[0],下列的哪个选项和其他3个选项不是等价的?()。A、x=*pa;B、x=*(a+l);C、x=*(pa+1);D、x=a[1];参考答案:A104.不能作为函数重载的判断依据的是()A、constB、返回类型C、参数个数D、参数类型参考答案:B】解析:实现函数的重载必须满足下列条件之一:1)参数表中对应的参数类型不同。2)参数表中参数个数不同。用const修饰传递参数,意思是通知函数,它只能使用参数而无权修改它,可以作为函数重载的判断依据。返回类型不能作为函数重载的依据。故本题选B。#105.不能实现函数之间数据传递的是()A、全局变量B、局部变量C、函数接口D、函数返回值参考答案:B106.必须用一对大括号括起来的程序段是________。A、switch语句中的case标号语句B、if语句的分支C、循环语句的循环体D、函数的函数体参考答案:D107.比较C语言与C++语言,最明显的差异在于()。A、输入输出流B、数据结构C、流程控制D、类参考答案:D108.intFunc(int,int);不可与下列哪个函数构成重载()A、intFunc(int,int,int);B、doubleFunc(int,int);C、doubleFunc(double,double);D、doubleFunc(int,double);参考答案:B109.inta=0;intb=++a;b的值是多少?A、0B、1C、2D、4参考答案:B110.include"stdio.h"#defineSUB(a)(a)-(a)voidmain(){inta=2,b=3,c=5,d;d=SUB(a+b)*c;printf("%d\n",d);}程序运行后的输出结果是()A、0B、-12C、-20D、10参考答案:C111.cout功能正确的是A、标准输入B、标准输出C、标准打开D、标准关闭参考答案:B112.C++中注释“/*”的有效范围是()A、从“/*”开始到行尾B、从“/*”开始后不终止C、从“/*”开始到“//”为止D、从“/*”开始到“*/”为止参考答案:D113.C++语言中,编译后生成的文件扩展名为________。A、*.cppB、*.objC、*.exeD、*.h参考答案:B114.C++的break语句________。A、可用在能出现语句的任意位置B、只能用在循环体内C、能用在循环体内或switch语句中D、能用在任一复合语句中参考答案:C115.C++程序从上机到得到结果的几个操作步骤依次是()。A、编译、编辑、连接、运行B、编辑、编译、连接、运行C、编译、运行、编辑、连接D、编辑、运行、编辑、连接参考答案:B116.c++11的智能指针类型不包括?A、shared_ptrB、unique_ptrC、weak_ptrD、auto_ptr参考答案:D117.()能正确输出结果:C++。A、chars[]="C++";cout<<s<<endl;B、chars[3]="C++";cout<<s<<endl;C、chars[3]={'C','+','+','\0'};cout<<s<<endl;D、chars[3]={'C','+','+'};cout<<s<<endl;参考答案:A118.#include<iostream>Usingnamespacestd;Intmain(){Inta=3;If(a=5)Cout<<a++<<endl;ElseCout<<a<<endl;Return0;}程序的输出是()。(题)A、5B、3C、4D、6参考答案:A多选题1.在学习队列时,下列关于队列的叙述中正确的是()A、在队列中只能插入数据B、在队列中只能删除数据C、队列是先进先出的线性表D、在队列中既能插入数据又能删除数据参考答案:CD2.在数据结构中,在队列中存取数据元素的原则是A、先进先出B、后进后出C、后进先出D、没有限制参考答案:AB3.在决定选取何种存储结构时,一般要考虑__A、各结点的值如何B、结构个数的多少C、对数据有哪些运算D、所用编程语言实现这种结构是否方便参考答案:BCD4.在二叉排序树(二叉搜索树)中,最小值结点的说法不正确的是A、其左孩子一定为空指针B、其右孩子一定为空指针C、其左、右指针均为空D、其左、右指针均不为空参考答案:BCD5.在C++中,有函数原型voidfun1(int);以下正确的是()。A、inta=21;fun1(a);B、inta=15;fun1(a*3);C、intb=100;fun1(&b);D、fun1(256);参考答案:ABD6.以下序列中可能是一棵二叉查找树的后序遍历结构的是A、1,2,3,4,5B、3,5,1,4,2C、1,2,5,4,3D、5,4,3,2,1参考答案:ACD7.以下关于函数重载的说法正确的是()。A、重载函数都是同名函数B、函数重载可以通过返回值不同来实现C、函数重载可以通过参数类型不同来实现D、函数重载可以通过参数顺序不同来实现参考答案:ACD8.以下关于哈希表的说法正确的是()。A、哈希表是有序存储的B、哈希表中存储了元素和与之一一对应的关键字C、在哈希表中查询元素可以根据元素对应的关键字查找D、哈希表中删除1个元素需要同时删除元素和元素对应的关键字参考答案:BCD9.已知如下定义:Typedefstructstu{Charname[10];Intage}STU;则以下说法正确的是()。A、typedef定义符可以让用户自定义数据类型B、使用typedef定义符可以替代基本数据类型C、使用typedef定义新数据类型与使用宏定义是相同的D、以下语句是合法的:STUper;per.age;参考答案:ABD10.已知M,N,O顺序进栈(进的过程中允许出栈),下列可以的出栈排列是A、MNOB、NOMC、OMND、ONM参考答案:ABD11.已知1个数组inta[10],则以下说法正确的是()。A、a[1]表示数组的第1个元素B、a[0]表示数组的第1个元素C、a[10]表示数组的最后1个元素D、a[10]会出现程序编译错误参考答案:BD12.一棵树可转换成为与其对应的二叉树,则下面叙述不正确的是A、树的先根遍历序列与其对应的二叉树的先序遍历相同B、树的后根遍历序列与其对应的二叉树的后序遍历相同C、树的先根遍历序列与其对应的二叉树的中序遍历相同D、只有A正确参考答案:BC13.要想删除1个链表中的节点,必须的操作包括:()A、判断该节点是否是头节点B、删除该节点C、将前1节点的指针指向被删除节点的后1节点D、将被删除节点的指针设为空参考答案:ABC14.循环队列存储在数据A[0..m]中,不是入队时的操作为A、rear=rear+1B、rear=(rear+1)%(m-1)C、rear=(rear+1)%mD、rear=(rear+1)%(m+1)参考答案:ABC15.线性结构和树形结构的前驱结点的说法正确的是A、在线性结构中,第一个结点没有前驱结点B、在树形结构中,树根结点没有前驱结点C、在线性结构中,第一个结点有前驱结点D、以上说法都正确参考答案:AB16.下面哪些数据类型所占的内存一定不会大于10字节?()A、只包含基本数据类型的结构B、只包含基本数据类型的联合C、枚举D、类类型参考答案:BC17.下面哪些数据结构是链表的变种?()A、顺序表B、栈C、队列D、二叉树参考答案:ABC18.下面哪些情况应该采用动态内存管理?()A、在多个地方和场合会被用到的数据B、全局变量C、内存容量很大的局部变量D、在执行前不明确其大小的数据参考答案:CD19.下面关于线性表链式存储的叙述不正确的是A、线性表在链式存储时,查找第i个元素的时间同i值无关B、线性表在链式存储时,查找第i个元素的时间同i值成正比C、线性表在顺序存储时,查找第i元素的时间同i值无关D、线性表在顺序存储时,查找第i个元素的时间同i值成正比参考答案:AD20.下面关于数组指针说法正确的是()。A、1个数组是由连续的1块内存单元组成的B、数组元素可以通过下标访问C、数组元素可以通过对数组名进行指针运算来访问D、数组名就是这块连续内存单元的首地址参考答案:ABCD21.下面关于树的说法中正确的是()。A、1个树可能有1个根,也可能有多个B、1个树可以看成是由更小的子树构成的C、1个非空树必然有叶子D、1个树的叶子的数目有可能多于树的深度参考答案:BCD22.下面对于二叉树的计算正确的是A、一棵具有n个结点的二叉树,若它有m个叶子结点,则该二叉树中度为1的结点个数是n-2m+1B、深度为k(k>0)的二叉树至多有2^k-1个结点C、高度为6的完全二叉树至少有32个结点D、高度为6的完全二叉树至少有31个结点参考答案:ABC23.下列运算符中,()运算符在C++中能重载。A、:B、+C、-D、>=参考答案:BCD24.下列选项中哪几个函数属于C++语言的标准库函数?()A、mainB、printfC、freadD、caldata参考答案:BC25.下列数据结构中,属于线性数据结构的是A、栈B、队列C、树D、图参考答案:AB26.下列数据结构中,能采用顺序存储结构的是A、非完全二叉树B、数组C、队列D、栈参考答案:BCD27.下列排序算法为稳定的是A、冒泡排序B、快速排序C、直接插入排序D、以上都是稳定的排序算法参考答案:AC28.下列哪一条不是顺序存储结构的优点A、存储密度大B、插入运算方便C、可方便的用于各种逻辑结构的存储表示D、删除运算方便参考答案:BCD29.下列关于数据结构中树的叙述中不正确的是A、数组是同类型值的集合B、递归算法的程序结构比迭代算法的程序结构更为复杂C、树是一种线性的数据结构D、树最适合用来表示元素之间具有分支层次关系的数据参考答案:BC30.下列关于枚举类型的说法中正确的是()。A、各个枚举值是变量B、枚举值系统会自动赋值,也可以手动初始化C、枚举变量可用整数直接赋值D、枚举类型也是1种基本数据类型参考答案:BD31.下列关于C++函数的描述中错误的是A、主函数是程序的入口,它是由用户定义的函数调用B、函数是C++中面向对象程序设计框架的基本组成元素。C、函数在调用前必须先被声明。D、每个用户定义函数只能被其他函数调用一次。参考答案:ABD32.下列表达式结果可以表示“true”的有()。A、x=1B、intx=1,x==1C、intx=1,!xD、x=3参考答案:ABD33.数据结构中栈在哪些地方应用A、递归调用B、子程序调用C、表达式求值D、以上全对参考答案:ABCD34.数据结构中,与所使用的计算机有关的是数据的__结构A、存储B、物理C、逻辑D、物理和存储参考答案:ABD35.数据结构中,线性结构的特点描述正确的是A、研究数据元素之间的一对一关系B、除第一个和最后一个元素外,任何一个元素都有唯一的一个直接前驱和直接后继C、比树结构更复杂D、比图结构更复杂参考答案:AB36.数据结构中,图结构的特点描述正确的是A、是研究数据元素之间的多对多的关系B、在这种结构中,任意两个元素之间可能存在关系C、在这种结构中,任意两个元素之间一定存在关系D、图中任意元素之间都可能相关参考答案:ABD37.数据结构中,树的表示方式有()A、双亲表示法B、孩子表示法C、孩子兄弟表示法D、叶子表示法参考答案:ABC38.数据结构中,排序算法不稳定的有哪些A、快速排序B、冒泡排序C、直接插入排序D、希尔排序参考答案:AD39.数据结构在研究算法分析时主要是研究分析A、空间复杂性B、正确性C、数据复杂性D、时间复杂性参考答案:AD40.数据结构在判断栈是否为空时,设栈ST用顺序存储结构表示,则不是栈ST为空的条件是A、ST.top-ST.base<>0B、ST.top-ST.base==0C、ST.top-ST.base<>nD、ST.top-ST.base==n参考答案:ACD41.数据结构的算法分析的两个主要方面是什么A、空间复杂性B、正确性C、数据复杂性D、时间复杂性参考答案:AD42.数据的运算最常用的是A、插入B、删除C、修改D、查找参考答案:ABCD43.深度为k的完全二叉树,其叶子结点可能在哪几层上A、k-2B、1C、kD、k-1参考答案:CD44.设一条单链表的头指针变量为head且该链表没有头结点,则不能其判空条件是()A、head==0B、head->next==0C、head->next==headD、head!=0参考答案:BCD45.若一棵二叉树的前序遍历序列和后序遍历序列分别为1,2,3,4和4,3,2,1,则该二叉树的中序遍历序列可能是A、1,2,3,4B、2,3,4,1C、3,2,4,1D、4,3,2,1参考答案:ABD46.权相关的说法正确的有哪些A、权与图的弧有关B、权可以表示从一个顶点到另一个顶点的距离或耗费C、权与图的边有关D、以上说法都正确参考答案:ABCD47.某队列允许在其两端进行入队操作,但仅允许在一端进行出队操作。若元素a、b、c、d、e依次入此队列后再进行出队操作,则可能得到的出队序列是()。A、bacdeB、dbaceC、dbcaeD、ecbad参考答案:ABD48.假设在有序线性表A[1..20]上进行折半查找,则下面说法正确的是A、比较一次查找成功的结点数为1B、比较两次查找成功的结点数为2C、比较三次查找成功的结点数为4D、以上说法都正确参考答案:ABCD49.关于字符数组与字符串,说法正确的有()。A、字符数组可以用字符串进行赋值B、字符串是以’\0’为结尾标志的字符数组C、字符串有输入输出函数,而字符数组没有D、C语言中自带了字符串的数据类型参考答案:ABC50.关于自动类型转换,以下说法正确的有()。A、int型可以转换为long型B、int型可以转换为double型C、double型可以转换为float型D、char型不能参与算术运算参考答案:AB51.关于以下两段代码,说法正确的是()。代码1:Inta=1;#ifaA=4;#elseA=5;#endif代码2:Inta=1;If(a)A=4;Elsea=5;A、代码1和代码2是完全一样的B、代码1和代码2的执行结果是一样的C、代码1编译生成的代码比代码2编译生成的代码短D、代码1中的#else后的代码段经过编译会被舍去参考答案:BCD52.关于线性结构和树形结构中元素的说法正确的是A、线性结构中元素之间存在一对一关系B、树形结构中元素之间存在一对多关系C、线性结构中元素之间存在一对多关系D、树形结构中元素之间存在一对一关系参考答案:AB53.关于下面的代码片段,说法正确的是()。Int*pa;Pa==0;"A、指针变量pa指向整数0的地址B、语法有错误C、指针变量pa没有被赋值D、如果要赋值空指针,可以用如下语句:int*pa=0;参考答案:CD54.关于算法的时间复杂度的描述中正确的是A、对于各种特定的输入,算法的时间复杂度是固定不变的B、算法的时间复杂度与使用的计算机系统无关C、算法的时间复杂度与使用的程序设计语言无关D、算法的时间复杂度与实现算法过程中的具体细节无关参考答案:BCD55.关于数据结构中树的结点说法正确的是A、树中任意结点允许有零个或多个孩子结点B、树中除根结点外,其余结点有且仅有一个双亲结点C、树中除根结点外,其余结点可能有多个双亲结点D、以上说法都正确参考答案:AB56.关于树的一些概念中正确的是A、树的度为0的结点称为叶子B、树的度不为0的结点称为分支结点C、一个结点的直接后继称为该结点的孩子结点D、一个结点的直接前驱称为该结点的双亲结点参考答案:ABCD57.关于树的度的描述正确的是A、树的度为0的结点称为叶子B、树的度不为0的结点称为分支结点C、树的度为0的结点称为分支结点D、树的度不为0的结点称为叶子参考答案:AB58.关于排序算法是否稳定,下面说法正确的是A、若待排序的序列中存在多个记录具有相同的键值,经过排序,这些记录的相对次序仍然保持不变,则称这种排序方法是稳定的B、若待排序的序列中存在多个记录具有相同的键值,经过排序,这些记录的相对次序发生改变,称这种排序方法是不稳定的C、若待排序的序列中存在多个记录具有相同的键值,经过排序,这些记录的相对次序仍然保持不变,则称这种排序方法是不稳定的D、若待排序的序列中存在多个记录具有相同的键值,经过排序,这些记录的相对次序发生改变,称这种排序方法是稳定的参考答案:AB59.关于类的概念,以下说法正确的是()。A、类是对客观事物的抽象B、类中包含了属性和方法C、类的属性就是类的数据成员D、C++中,类和结构(struct)之间可以进行转化参考答案:ABCD60.关于二叉树的数据结构不正确的是A、它不能用顺序存储结构存储;B、它不能用链式存储结构存储;C、顺序存储结构和链式存储结构都能存储;D、顺序存储结构和链式存储结构都不能使用参考答案:ABD61.关于二叉树的概念,下面正确的说法是A、在二叉树的第i(i≥1)层上至多有2^(i-1)个结点B、深度为k(k≥1)的完全二叉树至多2^k-1个结点C、深度为k(k≥1)的完全二叉树最少有2^(k-1)个结点D、以上说法都正确参考答案:ABCD62.关于堆栈,说法正确的是()。A、堆和栈是同1种数据结构B、堆和栈是两种存储规则截然不同的数据结构C、堆和栈满足先进后出的存储规则D、堆和栈都是线性表的1种参考答案:CD63.关于查找的描述,下列说法不正确的是A、在查找树(二叉树排序树)中插入一个新结点,总是插入到叶结点下面B、查找相同结点的效率折半查找总比顺序查找高。C、对无序表用二分法查找比顺序查找快。D、任一查找树(二叉分类树)的平均查找时间都小于用顺序查找法查找同样结点的线性表的平均查找时间参考答案:ABCD64.关于for(表达式1;表达式2;表达式3)循环语句,以下说法正确的是()。A、如果表达式1为空,会出现编译错误B、如果表达式2为空,会进入死循环C、如果表达式3为空,会进入死循环D、3个表达式都可以在for()语句外部执行参考答案:BD65.关键字可分为哪几种类型?()A、类型说明符B、运算符C、语句定义符D、预处理命令字参考答案:ACD66.根据先序序列ABDEC和中序序列BDEAC确定对应的二叉树,关于该二叉树的说法正确的是A、是完全二叉树B、不是完全二叉树C、不是满二叉树D、是满二叉树参考答案:AC67.二叉树的遍历可以分为()。A、中序遍历B、先序遍历C、后序遍历D、倒序遍历参考答案:ABC68.对于折半查找方法,下面的说法正确的是A、折半查找方法不适用于按值有序链接的链表的查找B、折半查找方法适用于按值有序的顺序表的查找C、折半查找方法适用于按关键字值大小有序排列的顺序文件的查找D、折半查找方法适用于排序连续顺序文件的查找参考答案:BCD69.对于图结构,下面说法正确的有哪些A、是研究数据元素之间的多对多的关系B、在这种结构中,任意两个元素之间可能存在关系C、在这种结构中,任意两个元素之间一定存在关系D、图中任意元素之间都可能相关参考答案:ABD70.对于数据结构中循环队列,下列叙述中不正确的是A、队头指针是固定不变的B、队头指针一定大于队尾指针C、队头指针一定小于队尾指针D、队头指针可以大于队尾指针,也可以小于队尾指针参考答案:ABC71.当在一个有序的顺序存储表上查找一个数据时,即可用折半查找,也可用顺序查找,下列说法不正确的是A、前者比后者的查找速度必定快B、前者比后者的查找速度必须不快C、前者比后者的查找速度在大部分情况下快D、前者比后者的查找速度取决于表递增还是递减参考答案:ABD72.大多数排序算法都有两个基本的操作是A、比较B、删除C、移动D、增加参考答案:AC73.采用链结构存储线性表时,对于其地址描述错误的是A、必须是连续的;B、部分地址必须是连续的;C、一定是不连续的;D、连续与否均可以。参考答案:ABC74.不是栈中元素出入原则的是A、先进先出B、后进先出C、栈空则进D、栈满则出参考答案:ACD75.IO流中,ostream是哪些类的父类·A、iostreamB、ofstreamC、ifstreamD、istream参考答案:AB判断题1.栈和队列是一种非线性数据结构()。A、正确B、错误参考答案:B2.在语句constchar*ptr中,ptr是指向字符串的常量指针。A、正确B、错误参考答案:B3.在由n个元素组成的有序表上进行折半搜索时,对任一个元素进行搜索的长度(即比较次数)都不会大于log2n+1。A、正确B、错误参考答案:A4.在一个类的对象空间里不包含静态成员的空间。A、正确B、错误参考答案:A5.在说明语句inta(15),&b=a,*p=&a;中,b的值的*P的是不相等的。A、正确B、错误参考答案:B6.在数据结构中,数据的物理结构是指数据在计算机内的实际存储形式。A、正确B、错误参考答案:A7.在派生类的构造函数的初始化表中不能对包含基类的子对象初始化。A、正确B、错误参考答案:A8.在类的继承过程中包括构造函数在内的所有成员都能被继承。()A、正确B、错误参考答案:B9.在表结构中最常用的是线性表,栈和队列不太常用A、正确B、错误参考答案:B10.在C++中的类封装了数据和操作两项。A、正确B、错误参考答案:A11.在C++程序编译过程中,包含预处理过程、编译过程和连接过程,并且这三个过程的顺序是不能改变的。()A、正确B、错误参考答案:A12.有序表(12,18,24,35,47,50,62,83,90,115,134)使用二分法查找90时,需2次查找成功A、正确B、错误参考答案:A13.友元函数是类的成员函数,所以可以存取或修改该类中的私有成员A、正确B、错误参考答案:B14.友元本身就是类的成员A、正确B、错误参考答案:A15.由于希尔排序的最后一趟与直接插入排序过程相同,因此前者一定比后者花费的时间更多()A、正确B、错误参考答案:B16.由二叉树的前序和后序遍历序列能唯一确定这棵二叉树A、正确B、错误参考答案:B17.用“r”打开文件,若打开的文件不存在,则以指定的文件名建立该文件,若打开的文件已经存在,则将该文件删去,重建一个新文件。()A、正确B、错误参考答案:B18.以下代码inta=5;printf("%d\n",++a);输出结果为5A、正确B、错误参考答案:B19.已知x为整型变量,x的值为-1,则x和bool值"false"是等价的A、正确B、错误参考答案:B20.已知:inta(5),b(10);表达式++a+b++有二义性。A、正确B、错误参考答案:B21.一般来说,递归函数的执行效率不高。A、正确B、错误参考答案:A22.虚析构函数是为了解决基类的指针指向派生类对象,并用基类的指针删除派生类对象的时候可能出现的内存泄漏。此说法是否正确A、正确B、错误参考答案:A23.线性结构研究数据元素一对多的关系A、正确B、错误参考答案:B24.线性表中的所有元素都有一个前驱元素和后继元素A、正确B、错误参考答案:B25.希尔排序能保证每趟排序至少能将一个元素放到其最终的位置上A、正确B、错误参考答案:B26.无论是私有继承还是保护继承中,基类中所有成员对派生类对象都是不可见的。A、正确B、错误参考答案:A27.图是比线性表和树更为复杂的数据结构A、正确B、错误参考答案:A28.顺序存储的线性表可以实现随机存取。A、正确B、错误参考答案:A29.顺序表的每个结点只能是一个简单类型,而链表的每个结点可以是一个复杂类型。()A、正确B、错误参考答案:B30.数组定义时不能使用变量来说明数组元素的数量,而在调用数组元素时可以使用变量A、正确B、错误参考答案:A31.数据结构对表的说明,线性表的每个结点只能是一个简单类型,而链表的每个结点可以是一个复杂类型。A、正确B、错误参考答案:B32.使用C风格字符串处理函数时要包含头文件<string>。A、正确B、错误参考答案:B33.若只对整型数组的部分元素进行了初始化,则未初始化的元素值是不确定的。A、正确B、错误参考答案:B34.求表长、定位这两种运算在采用顺序存储结构时实现的效率不比采用链式存储结构时实现的效率低A、正确B、错误参考答案:A35.内部排序方法的稳定性是指该排序算法不允许有相同的关键字记录。A、正确B、错误参考答案:B36.某类中的友元类的所有成员函数可以存取或修改该类中的私有成员A、正确B、错误参考答案:A37.冒泡排序是否是稳定的排序A、正确B、错误参考答案:A38.类封装了数据和操作。A、正确B、错误参考答案:A39.快速排序总比简单排序快。A、正确B、错误参考答案:B40.快速排序的最好时间复杂度是O(n^2)A、正确B、错误参考答案:B41.函数类型不同也可以构成函数重载。A、正确B、错误参考答案:B42.函数参数传递使用值传递是否会触发拷贝?A、正确B、错误参考答案:A43.哈希表中,关键字能够唯一的确定一条记录A、正确B、错误参考答案:A44.给出不同的输入序列建造二叉排序树,一定得到不同的二叉排序树。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论