【必会】《C++开发基础》备考题库宝典-2025核心题版_第1页
【必会】《C++开发基础》备考题库宝典-2025核心题版_第2页
【必会】《C++开发基础》备考题库宝典-2025核心题版_第3页
【必会】《C++开发基础》备考题库宝典-2025核心题版_第4页
【必会】《C++开发基础》备考题库宝典-2025核心题版_第5页
已阅读5页,还剩174页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

PAGEPAGE1一、单选题1.以下选项中,没有this指针的函数是________。A、内联成员函数B、构造函数C、静态成员函数D、析构函数答案:C2.下列错误的十六进制整型常量表示是()。A、0x11B、0xafC、0xgD、0x1f答案:C3.下列对构造函数和析构函数的描述中,错误的是()。A、析构函数可以重载B、析构函数名与类名相同C、构造函数中可以设置参数的缺省值D、类中只有一个析构函数答案:A4.已知某函数的一个形式参数被说明为MAT[3][10],在下列说明中,与此等效的形参说明是________。A、intMAT[][10]B、intMAT[3][]C、intMAT[10][3]D、intMAT[][]答案:A5.内联函数的特点是()A、减少代码量,加快访问速度B、减少代码量,减缓访问速度C、增加代码量,减缓访问速度D、增加代码量,加快访问速度答案:D解析:为了避免这种频繁的函数调用与返回,加快执行速度,C++语言引入了内联函数的概念。使用内联函数,编译器在编译时并不生成函数调用,而是将程序中出现的每一个内联函数的调用表达式直接用该内联函数的函数体进行替换,就像整个函数体在调用处被重写了一遍一样。很显然,使用内联函数会使最终可执行程序的体积增大。故综上,内联函数增加代码量,加快访问速度。6.已知print()函数是一个类的常成员函数,它无返回值,下列表示中正确的是A、voidprint()const;B、constvoidprint();C、voidconstprint();D、voidprint(const);答案:A7.字面常量42、4.2、42L的数据类型分别是()。A、long、double、intB、long、float、intC、int、double、longD、int、float、long答案:C8.为了使类中的某个成员能够被类的所有对象共享,应该将该类成员定义为________。A、常成员B、静态成员C、公有成员D、保护成员答案:B9.关于new运算符的下列描述中,错误的是()A、它可以用来动态创建对象和对象数组B、使用它创建的对象或对象数组可以使用运算符delete删除C、使用它创建对象时要调用构造函数D、使用它创建对象数组时必须指定初始值答案:D10.一个函数为voidx(int,charch=’a’),另一个函数为voidx(int),则它们()A、不能在同一程序中定义B、可以在同一程序中定义并可重载C、可以在同一程序中定义,但不可以重载D、以上说法均不正确答案:C11.若有如下程序#includeusingnamespacestd;voidfun(int*x,ints,inte){inti,j,t;for(i=s,j=e;iA、0987651234B、3210987654C、9876543210D、4567890123答案:D12.下列运算符中优先级最低的是()。A、++B、()C、%答案:B13.如果从原有类定义新类可以实现的是()A、信息隐藏B、数据封装C、继承机制D、数据抽象答案:C14.派生类的对象对它的基类成员中()是可以访问的。A、公有继承的公有成员B、公有继承的私有成员C、公有继承的保护成员D、私有继承的公有成员答案:A15.要求打开文件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);答案:D解析:A,选项创建了文件的读取流,且文件打开模式是读取方式,不符合。B,选项创建了文件的读取流,不符合。C,选项创建了文件的写入流,但是文件打开方式为读取方式,故而也不符合。D,选项创建了文件的读取写入流,同时文件打开方式也为可读可写方式,故而选D。16.在二叉树结点的先序序列,中序序列和后序序列中,所有叶子结点的先后顺序A、都不相同B、完全相同C、先序和中序相同,而与后序不同D、中序和后序相同,而与先序不同答案:B17.已知inta=3;,则执行完表达式a+=a-=a*a后,a的值是________。A、-3B、9C、-12D、6答案:C18.设a和b均为double型变量,且a=5.5,b=2.5,则表达式(int)a+b/b的值是________。A、6.500000B、6C、5.500000D、6.000000答案:D19.已知类A是类B的友元,类B是类C的友元,则()A、类A一定是类C的友元B、类C一定是类A的友元C、类C的成员函数可以访问类B的对象的任何成员D、类A的成员函数可以访问类B的对象的任何成员答案:C20.在文件包含预处理语句的中,被包含文件名用“<>”括起时,寻找被包含文件的方式是()A、直接按系统设定的标准方式搜索目录B、先在源程序所在目录搜索,再按系统设定的标准方式搜索C、仅仅在源程序所在目录搜索D、仅仅搜索当前目录答案:A21.已知x=43,ch='A',y=0,则表达式x>=y&&chA、0B、语法错误C、1D、假答案:C22.若有以下说明语句,则下列错误的引用是()。StructWorker{intno;Charname[20];};Workerw,*p=&w;A、w.noB、p->noC、(*p).noD、*p.no答案:D23.己知一个顺序存储的线性表,设每个结点需占m个存储单元,若第一个结点的地址al,则第i个结点的地址为A、al+(i-1)*mB、al+i*mC、al-i*mD、al+(i+1)*m答案:A24.下列表达式中表示int变量x可以被3整除的表达式是()。A、x/3==0B、x%3==0C、x%3!=0D、(x/3)答案:B25.派生类的对象对它的基类成员中()是可以访问的。A、公有继承的公有成员;B、公有继承的私有成员;C、公有继承的保护成员;D、私有继承的公有成员。答案:A26.执行下列语句后,x的值是(d),y的值是()。Intx,y;X=y=1;++x||++y;A、不确定B、0C、1D、2答案:C27.对于数据结构算法分析的两个主要方面是A、空间复杂性和时间复杂性B、正确性和简明性C、可读性和文档性D、数据复杂性和程序复杂性答案:A28.对以下说明语句的正确理解是()。Inta[10]={6,7,8,9,10};A、将5个初值一次赋给a[1]至a[5]B、将5个初值一次赋给a[0]至a[4]C、将5个初值一次赋给a[6]至a[10]D、因为数组长度与初值的个数不相同,所以语句不正确答案:B29.有以下程序Intf(intn){if(n==1)return1;Elsereturnf(n-1)+1;}Voidmain(){inti,j=0;For(i=1;i<3;i++)j+=f(i);Cout<<j<<endl;}程序运行后的输出结果是()。A、4B、3C、2D、1答案:B30.关于函数的调用下面正确的是______。A、f函数调用f1函数,f1函数调用f2函数,称为函数的递归调用B、函数可以嵌套定义,也可以嵌套调用C、一个函数可以自己调用自己,称为函数的嵌套调用D、函数返回时可以不带返回值,这时函数在定义时其返回值的类型用void表示答案:D31.设有定义inti;doublej=5;,则10+i+j值的数据类型是()(题)A、doubleB、intC、floatD、不确定答案:A32.如果调用带有默认参数的函数时缺少一个参数,则()参数就作为这一参数。A、第一个B、最后一个C、中间一个D、以上都不是答案:B33.以下有关类与对象的叙述中,错误的是()A、对象是类的一个实例B、一个类可以有多个对象C、任何一个对象都归属于一个具体的类D、只要是某个类的对象,那么该对象就可以访问这个类的所有成员答案:D解析:对象是类的一个具象,类是对象的一个抽象。类和对象的关系如同一个模具与用这个模具铸造出来的铸造件之间的关系。故一个类可以有多个对象,且任何一个对象都归属于一个具体的类。故ABC正确。类的对象只能访问公有成员,其他函数不能使用类的私有成员,也不能使用公有成员函数,它们只能通过类的对象使用类的公有成员函数。因此D错误。34.若运行时给变量输入12,则以下程序段的运行结果是()。intx,y;cin>>x;y=x>12?x+10:x-12;cout<<y;A、0B、22C、12D、10答案:A35.使用地址作为实参传给形参,下列说法正确的是()A、实参是形参的备份B、实参与形参无联系C、形参是实参的备份D、实参与形参是同一对答案:D36.流程控制语句的基本控制结构有三种,不属于这一种结构的是()。A、顺序结构B、选择结构C、循环结构D、计算结构答案:D37.栈和队都是A、顺序存储的线性结构B、链式存储的非线性结构C、限制存取点的线性结构D、限制存取点的非线性结构答案:C38.下面描述中,错误的是()。A、在基类定义的public成员在公有继承的派生类中可见,也能在类外被访问。B、在基类定义的protected成员在私有继承的派生类中可见。C、在基类定义的公有静态成员在私有继承的派生类中可见。D、访问声明可以在公有继承派生类中把基类的public成员声明为private成员。答案:D39.下列程序的输出结果是()#include<iostream.h>Voidmain(){intn[][3]={10,20,30,40,50,60};int(*p)[3];vnp=n;Cout<A、10,30,50B、10,20,30C、20,40,60D、10,30,60答案:B40.如下程序:charc1,c2,c3;cin>>c1>>c2>>c3;coutA、abcB、'a'C、abD、输入有误答案:B41.下述静态数据成员的特征中,()是错误的。A、说明静态数据成员时前边要加修饰符static;B、静态数据成员要在类体外进行初始化;C、引用静态数据成员时,要在静态数据成员名前加<类名>和作用域运算符;D、静态数据成员不是所有对象所共用的。答案:D42.当一个派生类公有继承一个基类时,基类中的所有公有成员成为派生类的()。A、public成员B、private成员C、protected成员D、友员答案:A43.若x是一个bool型变量,y是一个值为100的int型变量,则表达式!x&&y>0的值为()。A、trueB、falseC、与x的值相同D、与x的值相反答案:D44.存储以下数据,占用存储字节最多的是()。A、0B、‘0’C、“0”D、0.0答案:D45.以下叙述正确的是()。A、构造函数调用虚函数采用动态联编B、构造函数可以说明为虚函数C、当基类的析构函数是虚函数时,它的派生类的析构函数也是虚函数D、析构函数必须是虚函数答案:C46.关于以下代码:ClassCGame{Constinti=1;Public:Intf()const{i=3;}};说法正确的是()。"A、该代码编译无法通过B、该代码编译正常通过,变量i的值为3C、该代码编译正常通过,变量i的值为1D、该代码编译正常通过,如果调用函数f则i的值变为3,否则为1答案:A47.以下程序的输出结果是()。A、10B、20C、25D、30答案:C48.设有定义inti;doublej=5;,则10+i+j值的数据类型是()A、intB、doubleC、floatD、不确定答案:B49.下列有关引用的说法中,错误的是________。A、函数可以返回引用B、返回值的类型为引用时不产生值的副本C、形参和实参前加&均为引用类型变量D、若一个函数返回了引用,则该函数的调用也可以被赋值答案:C50.下列关于纯虚函数与抽象类的描述中,错误的是:A、纯虚函数是一种特殊的函数,它允许没有具体的实现B、抽象类是指具有纯虚函数的类C、一个基类的说明中有纯虚函数,该基类的派生类一定不再是抽象类D、抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出答案:D51.下列程序的运行结果是________。#includeusingnamespacestd;intmain(){inta=2;intb=a+1;coutA、0.666667B、0C、0.7D、0.6666666...答案:B52.当一个派生类保护继承一个基类时,基类中的所有公有成员和保护成员成为派生类的()。A、public成员B、private成员C、protected成员D、友员答案:C53.假设有宏定义:#defineA3#defineBA+A+A则cout<A、7B、27C、19D、9答案:C54.以下哪个C++容器不能用迭代器遍历A、setB、mapC、queueD、vector答案:C55.阅读下面代码,输出结果为()intmain(){charstr1[]="abc";charstr2[]="abc";constcharstr3[]="abc";constcharstr4[]="abc";constchar*str5="abc";constchar*str6="abc";coutA、truefalsetrueB、falsetruetrueC、falsefalsefalseD、falsefalsetrue答案:D56.if语句的语法格式可描述为:格式1:if()或格式2:if()else关于上面的语法格式,下列叙述中错误的是________。A、如果在前加上逻辑非运算符!并交换和的位置,语句功能不变B、部分可以是一个循环语句,例如if(...)while(...)...C、部分可以是一个if语句,例如if(if(a==0)...)...D、部分可以是一个if语句,例如if(...)if(...)...答案:C57.包含自定义头文件file.h的预处理指令是()A、#define<file.h>B、#includefile.hC、#definefile.hD、#include"file.h"答案:D解析:嵌入指令#include指示编译器将一个源文件嵌入到带有#include指令的源文件中该指令所在的位置。书写时,可以使用引号,也可以用尖括号。尖括号引用系统提供的包含文件。双引号引用自己定义的包含文件。根据题意,D选项正确。58.假定AB为一个类,则执行“ABa(2),b[3],*p[4];”语句时调用该类构造函数的次数为()A、3B、4C、5D、9答案:B59.C++类体系中,不能被派生类继承的有()A、常成员函数B、构造函数C、虚函数D、静态成员函数答案:B60.在一颗二叉树上第6层的结点数最多是A、8B、16C、32D、64答案:C61.程序的内存分配区域不包括A、从静态存储区域分配B、从栈区分配C、从堆区分配D、从文本区分配答案:D62.对于算法时间和空间复杂度下列叙述中正确的是()。A、一个算法的空间复杂度大,则其时间复杂度也必定大B、一个算法的空间复杂度大,则其时间复杂度必定小C、一个算法的时间复杂度大,则其空间复杂度必定小D、算法的时间复杂度与空间复杂度没有直接关系答案:D63.执行语句:for(i=1;i++A、3B、4C、5D、不定答案:C64.下列关于纯虚函数与抽象类的描述中,错误的是()A、纯虚函数是一种特殊的函数,它允许没有具体的实现B、抽象类是指具有纯虚函数的类C、一个基类的说明中有纯虚函数,该基类的派生类一定不再是抽象类D、抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出答案:C65.下列叙述中,正确的是________。A、只能在循环体内和switch语句体内使用break语句B、continue语句的作用是结束整个循环C、在循环体内使用break语句和continue语句可以起到同样的作用D、从多重循环中退出时,只能使用goto语句答案:A66.函数intsum(inta=10,intb=15,intc=25);不可与下列哪个函数同时声明()A、intsum(int,int,int,int)B、intsum(int,int,int)C、intsum(double)D、intsum(double,double,double);答案:B解析:名称相同,参数个数相同,参数类型相同,无法重载。67.符合先进后出规则的数据结构是()。A、堆栈B、队列C、链表D、二叉树答案:A68.以下正确的函数定义的首部是________。A、voidfun(void)B、doublefun(intx;inty)C、intfun(int=0,int);D、doublefun(intx,y)答案:A69.关于子类型的描述中,()是错的。A、子类型就是指派生类是基类的子类型B、一种类型当它至少提供了另一种类型的行为,则这种类型是另一种类型的子类型C、在公有继承下,派生类是基类的子类型D、子类型关系是不可逆的答案:A70.关于函数的返回值说法正确的是()。A、由return语句返回时,只带回一值,其类型在函数定义时确定。B、其类型由调用表达式决定。C、函数可以没有返回值,这时在函数定义,函数的类型说明就没必要了。D、函数调用就要有返回值,否则调用就没意义了。答案:A71.设x为int型变量,则执行以下语句后,x的值为________。x=10;x+=x-=x-x;A、10B、20C、40D、30答案:B72.下列程序的输出结果是________。#includeusingnamespacestd;intfun(intA,intb){staticintm,i=2;i+=m+1;m=i+a+b;return(m);}intmain(){intk=4,m=1,p;p=fun(k,m);coutA、8,17B、8,16C、8,20D、8,8答案:A73.下列为文件的扩展名,能被计算机直接执行的是()。A、cppB、oC、exeD、h答案:C74.下列非法的字符常量是()。A、‘#’B、‘’C、a’D、‘A’答案:C75.下面程序段:x=3;do{y=x--;if(!y){coutA、将输出##B、是死循环C、将输出###D、含有不合法的控制表达式答案:C76.设x,y,z,t均为int型变量,则执行以下语句后,t的值为________。x=y=z=1;t=++x||++y&&++z;A、不定值B、2C、1D、0答案:C77.以下程序运行后的输出结果是()#include<stdio.h>#defineF(x)x-2#defineD(x)x*F(x)intmain(void){printf("%d,%d\n",D(3),D(D(3)));Return0;}A、7,35B、2,-13C、7,-13D、2,35答案:C78.树的度为0的结点称为A、叶子B、分支结点C、根D、父结点答案:A79.对使用关键字new所开辟的动态存储空间,释放时必须使用()A、freeB、createC、deleteD、realse答案:C80.下列变量名正确的是()。A、1aB、intC、_n_2D、#a2答案:C81.下列关于类的权限描述错误的是()A、类本身的成员函数可以访问自己定义的任何成员B、类的对象只能访问公有成员C、普通函数只能通过对象访问类的公有成员D、一个类不能包含另一个类的对象作为成员答案:D解析:因为类本身就是一种新的数据类型,所以一个类的对象可以作为另一个类的成员。普通成员函数由类的对象调用。故D错误。访问类的成员变量及调用类的成员函数时,要考虑成员名的访问范围。类中定义的访问方法是public的,所以可以在类外(如主函数中)中直接调用。类内的函数仅作为类内其他函数的辅助函数使用,并不对外提供服务,这样的函数可以定义为私有的,也就是说,在类外不可以直接调用它们。故ABC正确。82.下列()的调用方式是引用调用。A、形参和实参都是变量B、形参是指针,实参是地址值C、形参是引用,实参是变量D、形参是变量,实参是地址值答案:D83.执行下列语句后,程序的输出结果是()。#include<iostream>Usingnamespacestd;Intmain(){Intn=10;While(n>7){N--;Cout<<n<<',';}Cout<<endl;}(题)A、9,8,7,B、10,9,8,C、10,9,8,7,D、9,8,7,6,答案:A84.已知递归函数f的定义如下:则函数调用语句f(6)的返回值是________。intf(intn){if(nA、24B、6C、12D、48答案:D85.if语句的语法格式可描述为:格式1:if()或格式2:if()else关于上面的语法格式,下列叙述中错误的是________。A、如果在<条件>前加上逻辑非运算符!并交换<语句1>和<语句2>的位置,语句功能不变B、<语句>部分可以是一个循环语句,例如if(...)while(...)...C、<条件>部分可以是一个if语句,例如if(if(a==0)...)...D、<语句>部分可以是一个if语句,例如if(...)if(...)...答案:C86.下面关于类的成员函数描述不正确的是:()A、静态成员函数内可以直接访问类的非静态成员数据B、静态成员函数内可以直接访问类的静态成员数据C、非静态成员函数可以直接访问类的非静态成员数据D、非静态成员函数可以直接访问类的静态成员数据答案:A87.同一双亲结点的孩子结点之间互称为()A、孩子结点B、双亲结点C、兄弟结点D、子孙结点答案:C88.有如下程序:运行时的输出结果是________。A、121B、21C、211D、12答案:B89.C++输入输出格式控制是在哪个头文件中定义的?()A、iostream.hB、iomanip.hC、istream.hD、ostream.h答案:A90.下面对友员的错误叙述是()。A、关键字friend用于声明友员B、一个类中的成员函数可以是另一个类的友员C、友员函数访问对象的成员不受访问特性影响D、友员函数通过this指针访问对象成员答案:D91.C++中的拷贝构造函数在下面哪些情况下不会被调用()A、对象创建的时候B、使用一个类的对象去初始化该类的一个新对象C、被调用函数的形参是类的对象D、当函数的返回值是类的对象时,函数执行完成返回调用者答案:A解析:在三种情况下系统会调用拷贝构造函数:(1)用类的一个对象去初始化另一个对象时(2)当函数的形参是类的对象时(也就是值传递时),如果是引用传递则不会调用(3)当函数的返回值是类的对象或引用时92.下列枚举符号中,用来定位文件开始位置的是________。A、ios_base::endB、ios_base::begC、ios_base::outD、ios_base::cur答案:B93.下面的哪个保留字不能作为函数的返回类型()。A、newB、intC、voidD、1ong答案:A94.已知inta=5,b=6,c=7,d=8,m=2,n=2;,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为________。A、0B、1C、2D、3答案:C95.在C++中,要实现动态联编,必须使用()调用虚函数。A、类名B、派生类指针C、对象名D、基类指针答案:D96.下列C++运算符中,优先级最高的是______。A、+B、*C、<=D、*=答案:B97.下列关于动态联编的描述中错误的是()。A、动态联编是以虚函数为基础的B、动态联编是在运行时确定所调用的函数代码C、动态联编调用函数操作是指向对象的指针或对象引用D、动态联编是在编译时确定操作函数的答案:D98.下面那个不属于编译器A、gccB、msvcC、clangD、vscode答案:D99.一个类的静态数据成员所表示属性()。A、是类的或对象的属性B、只是对象的属性C、只是类的属性D、类和友元的属性答案:C100.对n个不同的排序码进行冒泡排序,在元素无序的情况下比较的次数为A、n+1B、nC、n-1D、n(n-1)/2答案:D101.static的用途说法错误的是?A、在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变B、在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量C、在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用D、static修饰的变量是线程安全的答案:D102.以下不能对二维数组a进行正确初始化的语句是()。A、inta[2][3]={0};B、inta[][3]={{0,1},{0}};C、inta[2][3]={{0,1},{2,3},{4,5}};D、inta[][3]={0,1,2,3,4,5};答案:C103.执行C++程序时出现的“溢出”错误属于()错误。(题)A、运行B、编译C、连接D、逻辑答案:A104.以下说法中正确的是()。A、C++程序总是从第一个定义的函数开始执行B、C++程序总是从main函数开始执行C、C++函数必须有返回值,否则不能使用函数D、C++程序中有调用关系的所有函数必须放在同一个程序文件中答案:B105.下列关于派生类构造函数和析构函数的说法中,错误的是()A、派生类的构造函数会隐含调用基类的构造函数B、如果基类中没有缺省构造函数,那么派生类必须定义构造函数C、在建立派生类对象时,先调用基类的构造函数,再调用派生类的构造函数D、在销毁派生类对象时,先调用基类的析构函数,再调用派生类的析构函数答案:D106.以下定义常量数据成员和常量函数成员的语句正确的是()。A、constinti;constvoidf();B、inticonst;voidf()const;C、constinti;voidf()const;D、inticonst;constvoidf();答案:C107.在面向对象设计中,对象有很多基本特点,其中“一个系统中通常包含很多类,这些类之间呈树形结构”这一性质指的是对象的()A、分类性B、标识唯一性C、继承性D、封装性答案:C108.以下代码执行后,a、b、c的值分别为()。inta=8,b=10,c=3;if(a>b)c=a,a=b,b=c;A、10108B、1088C、1033D、8103答案:B109.有如下程序:#includeusingnamespacestd;voidconvert(intd){if(d<10){cout<<d;Convert(d+1);}Cout<<d;}Intmain(){convert(6);Return0;A、6677889910B、12344321C、67899876D、6789109876答案:D110.下列哪个不是面向对象的关键要素()A、抽象性B、结构性C、封装性D、多态性答案:B解析:面向对象的程序设计有“抽象”“封装”“继承”和“多态”4个基本特点。故不包括B。111.以下正确的说法是()。A、定义函数时,形参的类型说明可以放在函数体内B、return后边的值不能为表达式C、如果函数值的类型与返回值类型不一致,以函数值类型为准D、如果形参与实参类型不一致,以实参类型为准答案:C112.执行语句序列Inti=0;while(i<25)i+=3;cout<<i;输出结果是()。A、24B、25C、27D、28答案:C113.在c++中,类之间的继承关系具有()。A、自反性B、对称性C、传递性D、反对称性答案:C114.以下说法中不正确的是()A、C++程序中必须有一个主函数main(),而且是从main()的第一条语句开始执行B、非主函数都是在执行主函数时,通过函数调用或嵌套调用而得以执行的C、主函数可以在任何地方出现D、主函数必须出现在固定位置答案:D解析:程序中必须有且仅有一个主函数main(),这是程序执行的总入口。但并无固定位置。主函数也称为主程序。程序从主函数的开始处执行,按照其控制结构,一直执行到结束。故A、C正确,D错误。主函数中可以调用程序中定义的其他函数,但其他函数不能调用主函数。故B正确。答案为D。115.C++的break语句________。A、可用在能出现语句的任意位置B、只能用在循环体内C、能用在循环体内或switch语句中D、能用在任一复合语句中答案:C116.对n个元素的数组进行快速排序,所需要的额外空间为A、O(1)B、O(n)C、O(logn)D、O(n^2))答案:C117.设有一个递归函数如下intf(intn){if(nA、6B、7C、8D、9答案:D118.构造异质链表的意义是()。A、用数组组织类对象B、用链表组织类对象C、用抽象类指针指向派生类对象D、用抽象类指针构造派生类对象链表答案:D119.while(!x)中的(!x)与下面哪个条件等价?()。A、x==1B、x!=1C、x!=0D、x==0答案:D120.有如下定义语句:intaa[][3]={12,23,34,4,5,6,78,89,45};,则45在数组aa中的行列坐标各为()。A、3,2B、3,1C、2,2D、2,1答案:C121.如果有intx,*p;floaty,*q;则下面操作中,正确的是()A、p=xB、p=qC、p=&xD、p=&y答案:C解析:C选项,指针变量p指向整型变量×,正确。122.以下说法中正确的是()。A、C++程序总是从第一个定义的函数开始执行B、C++程序总是从main函数开始执行C、C++函数必须有返回值,否则不能使用函数D、C++程序中有调用关系的所有函数必须放在同一个程序文件中答案:B123.IO流中oftream继承于()类A、ostreamB、istreamC、ifstreamD、iostream答案:A124.有如下类说明:classBase{protected:intamount;public:Base(intn=0):{amount=n;}intgetAmount(){returnamount;}};classDerived:publicBase{protected:intvalue;public:Derived(intm,intn):Base(n){value=m;}intgetData(){returnvalue+amount;}};已知x是一个Derived对象,则下列表达式中正确的是________。A、x.value+x.getAmount()B、x.getData()-x.getAmount()C、x.getData()-x.amountD、x.value+x.amount答案:B125.以下哪种类型是C++比C语言新增的数据类型(题)A、整型(int)B、布尔类型(bool)C、指针类型(*)D、字符类型(char)答案:B126.下列有关内联函数叙述中,错误的是________。A、内联函数内不可以有循环语句和开关语句B、使用内联函数是以空间换取时间的C、内联函数降低了函数的执行效率D、内联函数的定义必须出现在内联函数第一次被调用之前答案:C127.函数重载必须满足的条件是()A、函数名相同B、参数个数不同C、参数类型不同D、函数名不相同答案:A解析:函数重载:指在程序的同一范围内声明几个功能类似的同名函数。实现函数的重载必须满足下列条件之一:1)参数表中对应的参数类型不同。2)参数表中参数个数不同。以上两个条件满足之一即可,但函数重载必须满足的是函数名相同。故本题选A128.设存在整型变量intx,则下列句与其它三项含义不同的是()A、int*p=&x;B、int&p=x;C、int&p=x;D、int&p=x;答案:A129.以下哪种操作最适合先进行排序处理A、找最大、最小值B、计算算术平均值C、找中间值D、找出现次数最多的值答案:C130.以下描述对应哪种排序算法:对待排序进行划分为左、右两个子序列,对两个子序列进行同样的排序操作,直到子序列为空或只剩下一个元素为止。A、冒泡排序B、折半插入排序C、快速排序D、希尔排序答案:C131.在inta=3,int*p=&a;中,*p的值是(A、变量a的地址值B、无意义C、变量p的地址值D、3答案:D132.关于联合类型,以下说法正确的是()。A、联合类型的内存大小是第1个成员变量的内存大小B、联合类型的内存大小是所有成员变量的内存大小之和C、联合类型的内存大小由内存大小最大的成员变量决定D、联合类型的内存大小由系统自动分配,在赋值前是不确定的答案:C133."以下代码片段的输出结果为。()Char*ps=""hellogame"";Printf(""%s\n"",ps+6);"A、gameB、gC、ogameD、编译错误答案:A134.设有如下定义:Structst{Inta;Intb;}data;Int*p;则要使p指向data中的成员a的正确赋值语句是()。A、p=&a;B、p=data.aC、p=&data.aD、p=data.&a答案:C135.以下正确的函数定义是()。A、doublefun(intx,inty){}B、doublefun(intx;inty){}C、floatfun(int,int){}D、voidfun(intx,y){}答案:A136.采用函数重载的目的在于A、实现共享B、节约空间C、提高速度D、使用方便,提高可靠性答案:D解析:C++函数重载的作用:1.多个函数共用一个名字,减少对用户的复杂性。2.函数重载是指在同一作用域内,可以有一组具有相同函数名,不同参数列表的函数,这组函数被称为重载函数。重载函数通常用来命名一组功能相似的函数,这样做减少了函数名的数量,避免了名字空间的污染,对于程序的可读性有很大的好处。3.类的构造函数跟类名相同,也就是说:构造函数都同名。如果没有函数重载机制,要想实例化不同的对象,那是相当的麻烦!137.设n是描述问题规模的非负整数,下面程序片段的时间复杂度是()。x=2;while(xA、O(log2n)B、O(n)C、O(nlog2n)D、O(n2)答案:A138.下列特性中不是面向对象程序设计语言所特有的是()。A、数据封装B、继承C、多态性D、模板答案:D139.应在下列程序划线处填入的正确语句是()#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();答案:C140.下列表达式中表示int变量x可以被3整除的表达式是()。A、x/3==0B、x%3==0C、x%3!=0D、(x/3)答案:B141.函数参数的默认值不允许为()A、全局常量B、直接常量C、局部变量D、函数调用答案:C解析:局部变量是函数调用之后,才会被构造出来,而函数参数的值的存在,是在调用函数的时候就必须存在的。142.二叉树的第k层的结点数最多为A、2^k-1B、2K+1C、2K-1D、2^(k-1)答案:D143.intsolve(intx){}intsolve2(inty){}inty;intmain(){x++;//1x=solve(x);//2x=solve2(y);//3x=1;//4}对于上面代码,main函数内注释的1、2、3、4只会同时存在一行,下面说法错误的是()A、多线程对x的操作需要同步的包括x++B、多线程对x的操作需要同步的包括x=solve(x)C、多线程对x的操作需要同步的包括x=solve2(y)D、多线程对x的操作需要同步的包括x=1答案:D解析:x=1是一个原子操作,原子操作不需要加锁144.为了提高程序的运行速度,可将不太复杂的功能用函数实现,此函数应选择()。A、内联函数B、重载函数C、递归函数D、函数模板答案:A145.如下代码:intarr[8]={1,6,3,3,8,0,7,4};int*p=arr;下面答案中不能够正确输出全部偶数的是()A、for(inti=0;i<8;i++)If(arr[i]%2==0)Printf("%d",arr[i]);B、for(inti=0;i<8;i++)If(p[i]%2==0)Printf("%d",p[i]);C、inti=0;While(i<8){If(*(p+i)%2==0)Printf("%d",*(p+i));I++;}D、inti=0;While(i<8){If((arr+i)%2==0)Printf("%d",arr+i);I++;}答案:D146.map随机读的时间复杂度是?A、O(1)B、O(n)C、O(logN)D、O(n²)答案:C147.已知函数f的原型是:voidf(int*a,long&b);变量v1、v2的定义是:intv1;longv2;,正确的调用语句是()。A、f(v1,&v2);B、f(v1,v2);C、f(&v1,v2);D、f(&v1,&v2);答案:C148.在一个链队列中,假定front和rear分别为队首和队尾指针,则插入一个结点的操作为A、front=front->next;B、rear=rear->next;C、rear=front->next;D、front=rear->next;答案:B149.已知:charc='\010';则变量c中包含的字符个数为()。A、4B、1C、2D、3答案:B解析:正确答案B150.下列有关new和delete运算符的描述中,错误的是________。A、new运算符分配的空间只能用delete运算符撤销B、对一个指针只能使用一次deleteC、当用于删除数组时,在delete运算符后面可直接跟数组名,而不用管数组的维数D、new运算符分配数组空间时不能指定初值答案:C151.设一个链表最常用的操作是在末尾插入结点和删除尾结点,则选用什么最节省时间A、单链表B、单循环链表C、带尾指针的单循环链表D、带头结点的双循环链表答案:D152.在下面存储类中,()的对象不是局部变量。A、外部静态类B、自动类C、函数形参D、寄存器类答案:A153.作用域运算符“::”的功能是()A、标识作用域的级别B、指出作用域的范围C、给定作用域的大小D、标识成员是属于哪个类答案:B解析:类体外函数定义的前面必须用“类名::”来限定,格式如下:返回值类型类名::成员函数名(参数列表){成员函数的函数体}类名是成员函数所属类的名字,符号::是类作用域运算符,表明它后面的成员函数是属于类名标识的这个类的。故用于指出作用域的范围,选B。154.布尔类型标识符是()A、voidB、shortC、longD、bool答案:D解析:布尔类型标识符是bool。如果函数没有返回值,那么应声明为void类型。Short短整型。Long长整型。155.假定a和b为int型变量,则执行以下语句后b的值为______。#include<iostream>Usingnamespacestd;Voidmain(){Inta=1;Intb=10;Do{B-=a;A++;}while(b--<0);}(题)A、-1B、-2C、8D、9答案:C156.在开发一个C++程序的过程中,第3个步骤为()。A、链接B、运行C、编辑D、编译答案:A157.执行下列程序语句后,屏幕输出为()。#include<iostream〉Usingnamespacestd;Intn=5;Intmain(){Intn=3;N++;N++;Cout<<n<<endl;Return0;}A、3B、4C、5D、6答案:B158.下列关于类的继承描述中,()是正确的。A、派生类公有继承基类时,可以访问基类的所有数据成员,调用所有成员函数。B、派生类也是基类,所以它们是等价的。C、派生类对象不会建立基类的私有数据成员,所以不能访问基类的私有数据成员。D、一个基类可以有多个派生类,一个派生类可以有多个基类。答案:D159.有如下程序段:Inti=5;While(inti=0){cout<<'*';i--;}执行时输出"*"的个数是()。A、0B、1C、5D、无穷答案:A解析:循环条件一开始就为假。160.有以下程序中:#include<iostream>Usingnamespacestd;Voidmain(){Intm=0,n=0;Charc='B';Cin>>m>>c>>n;Cout<<m<<c<<n;}若从键盘上输入:20A30<回车>,则输出结果是_____。(题)A、20A30B、20B30C、30A30D、20A20答案:A161.C++对C语言作了很多改进,下列描述中()使得C语言发生了质变,从面向过程变成了面向对象。A、增加了一些新的运算符;B、允许函数重载,并允许设置缺省参数;C、规定函数说明必须用原型;D、引进了类和对象的概念;答案:D162.能实现删除文件数据的语句是()。A、ofstreamfs(“date.dat“,ios::trunc);B、ifstreamfs(“date.dat“,ios::trunc);C、ofstreamfs(“date.dat“,ios::out);D、ifstreamfs(“date.dat“,ios::in);答案:A163.一趟排序结束后不一定能够选出一个元素放在其最终位置上的是()A、冒泡排序B、快速排序C、希尔排序D、以上说法都正确答案:C164.有以下程序段,其输出结果是()#include<iostream>Usingnamespacestd;Voidmain(){charb[]='Hello,you';B[5]='!';Cout<A、Hello,youB、HelloC、Hello!youD、!答案:C解析:数组b用来存放'Hello,you'中的每个个字符,下标从0开始。数组b开始存放的是字符串“Hello,you”,原来b[5]=',',执行b[5]='!'后,数组b存放的是字符串变成“Hello!you”,所以输出Hello!you。选C。165.执行下列程序后,输出的结果是()。Inta=-5,b=0;While(++a)B++;Cout<<b<<endl;A、0B、1C、4D、5答案:C166.关于纯虚函数和抽象类的描述中,错误的是()。A、纯虚函数是1种特殊的虚函数,它没有具体实现B、抽象类是指具有纯虚函数的类C、1个基类说明中有纯虚函数,该基类的派生类一定不再是抽象类D、抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出答案:C167.下列程序段的输出是________。unsignedshorti=65538;coutA、65538B、有语法错误,无法编译通过C、0D、2答案:D168.对类中声明的变量,下列描述中正确的是()A、属于全局变量B、只属于该类C、属于该类,某些情况下也可被该类不同实例所共享D、任何情况下都可被该类所有实例共享答案:C169.表达式3*2^(4+2*2-6*3)-5在求值过程在,当扫描到6时,数字栈中内容为A、3,2,4,1,1B、3,2,8C、3,2,4,2,2D、以上都不对答案:B170.有如下4个语句:①cout<<'A'<A、①和④B、①和③C、②和③D、②和④答案:C171.fstreamiofile说法正确的是A、只输入用B、既输入又输出用C、只输出用D、它是从ifstream类派生的。答案:B172.下列函数原型声明中,错误的是________。A、intfun(intm,intn);B、intfun(int,int);C、intfun(intm=3,intn);D、intfun(int&m,int&n);答案:C173.作用域运算符“::”的功能是()A、标识作用域的级别B、指出作用域的范围C、给定作用域的大小D、标识成员是属于哪个类答案:B解析:类体外函数定义的前面必须用“类名::”来限定,格式如下:返回值类型类名::成员函数名(参数列表){成员函数的函数体}类名是成员函数所属类的名字,符号::是类作用域运算符,表明它后面的成员函数是属于类名标识的这个类的。故用于指出作用域的范围,选B。174.下列选项中,if语句语法正确的是()。A、if(x>0)printf("%f",x)elseprintf("%f",-x);B、if(x>0){x=x+y;printf("%f",x);}elseprintf("%f",-x);C、if(x>0){x=x+y;printf("%f",x);};elseprintf("%f",-x);D、if(x>0){x=x+y;printf("%f",x)};elseprintf("%f",-x);答案:B175.以下对于排序算法的稳定性的描述正确的是()A、经过排序之后,能使值相同的数据保持原顺序中的相对位置不变B、经过排序之后,能使值相同的数据保持原顺序中的绝对位置不变C、算法的排序性能与被排序元素的数量关系不大D、算法的排序性能与被排序元素的数量关系密切答案:A176.关于内联函数说法错误的是()。A、不是任何一个函数都可定义成内联函数。B、内联函数的函数体内不能含有复杂的结构控制语句。C、递归函数可以被用来作为内联函数。D、内联函数一般适合于只有1~5行语句的小函数。答案:C177.从一个栈顶指针为HS的链栈中删除一个结点,用x保存被删除结点的值,则执行A、x=HS;HS=HS->next;B、HS=HS->next;x=HS->data;C、x=HS->data;HS=HS->next;D、s->next=Hs;Hs=HS->next;答案:C178.函数voidfoo(){staticintval;……}变量val的内存地址位于()A、未初始化数据段B、已初始化数据段C、堆D、栈答案:A解析:1)栈区(stack)-由编译器自动分配释放,存放函数的参数值,局部变量的值等。2、堆区(heap)-一般由程序员分配释放,若程序员不释放,程序结束时可能由os回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。3、全局区(静态区)(static)-全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。程序结束后有系统释放。4、文字常量区-常量字符串就是放在这里的。程序结束后由系统释放。5、程序代码区-存放函数体的二进制代码。179.下列条件语句中,功能与其他语句不同的是________。A、if(a)cout<<x<<"\n";elsecout<<y<<"\n";B、if(a==0)cout<<y<<"\n";elsecout<<x<<"\n";C、if(a!=0)cout<<x<<"\n";elsecout<<y<<"\n";D、if(a==0)cout<<x<<"\n";elsecout<<y<<"\n";答案:B180.设有如下程序段:intx=2002,y=2003;cout<<(x,y)<<"\n";则以下叙述中正确的是________。A、编译时产生出错信息,不能正确输出B、输出2002,2003C、输出值为2002D、输出值为2003答案:D181.函数重载发生在那个时期?A、编译期B、运行期答案:A182.所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体也就是()A、类B、对象C、函数体D、数据块答案:A解析:面向对象方法中的类:是对具有相同属性和行为的同一类对象的抽象描述。故封装将对象属性和操作结合在一起,构成独立的单元,即实体。故本题选A。183.在编译指令中,嵌入指令是指()A、#includeB、#defineC、#ifD、#else答案:A解析:嵌入指令#include指示编译器将一个源文件嵌入到带有#include指令的源文件中该指令所在的位置处。故本题选A。184.关于抽象类,下列表述中正确的是()。A、抽象类的成员函数中至少有一个是没有实现的函数(即无函数体定义的函数)B、派生类必须实现作为基类的抽象类中的纯虚函数C、派生类不可能成为抽象型D、抽象类可以用来定义对象答案:A185.有如下程序:#include<iostream>#include<stdlib.h>Usingnamespacestd;Intmain(){Inti,n;For(i=0;i<8;i++){n=rand()%5;//rand()为伪随机函数,可产生任意正整数Switch(n){case1:Case3:cout<<n<<endl;break;Case2:Case4:cout<<n<<endl;continue;Case0:exit(0);//exit()为终止程序函数}Cout<<n<<endl;}Return0;}以下有关程序执行情况的叙述,正确的是()。A、for循环语句固定执行8次B、当产生的随机数n为4时结束循环C、当产生的随机数n为1和2不做任何操作D、当产生的随机数n为0时结束程序运行答案:D186.若有以下类T说明,函数fFriend的错误定义是()。ClassT{inti;FriendvoidfFriend(T&,int);};A、voidfFriend(T&objT,intk){objT.i=k;}B、voidfFriend(T&objT,intk){k=objT.i;}C、voidT::fFriend(T&objT,intk){k+=objT.i;}D、voidfFriend(T&objT,intk){objT.i+=k;}答案:C187.若有11个顶点的生成树,则它的边数是A、11B、12C、9D、10答案:C188.#include<iostream>Usingnamespacestd;Intmain(){Inta=3;If(a=5)Cout<<a++<<endl;ElseCout<<a<<endl;Return0;}程序的输出是()。(题)A、5B、3C、4D、6答案:A189.以下循环体的执行次数是________。intmain(){inti,j;for(i=0,j=1;i<=j+1;i+=2,j--)cout<A、3B、2C、1D、0答案:C190.所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体也就是()。A、类B、对象C、函数体D、数据块答案:A191.执行语句boolx=5;inta=x==5;变量a的值为()。A、0B、1C、5D、false答案:A解析:x=5,x的值为真,x==5结果为假,所以a为0.192.执行下列程序后,屏幕的输出是()。#include<iostream>Usingnamespacestd;Voidswap(intA,intb){Inttemp=a;A=b;B=temp;Cout<<"a="<<a<<",b="<A、a=2,b=3A=3,b=2B、a=3,b=2A=3,b=2C、a=2,b=3A=2,b=3D、a=3,b=2A=2,b=3答案:A193.请问对一个排好序的数组进行查找,用平均时间复杂度最小的算法,时间复杂度为()A、O(n)B、O(logn)C、O(nlogn)D、O(1)答案:B194.设x,y,z,t均为int型变量,则执行以下语句后,t的值为________。x=y=z=1;t=++x||++y&&++z;A、不定值B、2C、1D、0答案:C195.下列关于break语句描述中,______是错误的。A、break语句可用于if语句体内,它将退出if语句B、break语句可用于循环体内,它将退出该重循环C、break语句可用于switch语句中,它将退出switch语句D、break语句在一个循环体内可以出现多次答案:A196.在if语句中的表达式是()。A、只能是表达式B、只能是关系表达式和逻辑表达式C、只能是逻辑表达式D、可以是任意表达式答案:D197.下列选项中,全部都是C++关键字的选项为()。A、whileIFStaticB、breakchargoC、sizeofcaseexternD、switchfloatinteger答案:C198.线性表采用顺序存储的缺点是()A、存储密度降低B、只能顺序访问C、元素的逻辑顺序与物理顺序不一致D、插入、删除操作效率低答案:D199.若有语句int*point,a=4;和point=&a;下面均代表地址的一组选项是()A、A,point,*&aB、&*a,&a,*pointC、*&point,*point,&aD、&a,&*point,point答案:D200.有如下类定义classA{intx;protected:inty;public:intz;A():x(0),y(0){}intGetX(){returnx;}voidSetX(intx){A::x=x;}}obj;已知obj是类A的对象,下列语句中错误的是________。A、obj.y;B、obj.z;C、obj.GetX();D、obj.SetX(0);答案:A201.除个别节点外,其余结点只能有一个前驱结点,可有任意多个后继结点,这样的结构为A、线性结构B、链表C、栈D、树形结构答案:D202.在下面有关析构函数特征的描述中,正确的是()。A、一个类可以有多个析构函数B、析构函数与类名完全相同C、析构函数不能指定返回类型D、析构函数可以有一个或多个参数答案:A203.下列不会调用复制构造函数的是()A、用类的一个对象去初始化另一个对象时。B、函数的形参是类的对象,函数调用时,进行形参和实参结合。C、函数的返回值是类的对象,函数执行完返回调用者时。D、一个类中有另一个的对象作为成员,形成类的组合时。答案:D204.下列关于return语句的叙述中,正确的是()。A、任何函数的函数体中至少有一个return语句B、任何函数的函数体中最后一条语句必须是return语句C、如果函数的返回类型为void,则其函数体中可以没有return语句D、如果函数的返回类型为int,则其函数体中可以没有return语句答案:C205.下列对派生类的描述中,()是错误的。A、一个派生类可以作为另外一个派生类的基类B、派生类至少有一个基类C、派生类的成员除了它自己的成员外,还包含了它的基类的成员D、派生类继承的基类成员的访问权限到派生类保持不变答案:D206.class的默认的继承访问权限是?A、publicB、private答案:B207.关于C++语言中return语句正确的说法是()A、只能在主函数中出现B、在每个函数中都必须出现C、可以在一个函数中出现多次D、只能在除主函数之外的函数中出现答案:C208.在参数传递过程中,对形参和实参的要求是()A、函数定义时,形参一直占用存储空间B、实参可以是常量、变量或表达式C、形参可以是常量、变量或表达式D、形参和实参类型和个数都可以不同答案:B209.下列程序的输出结果是________。#includeusingnamespacestd;intd=1;voidfun(intp){intd=5;d+=p++;coutA、84B、96C、94D、85答案:A210.已知inti=0,x=1,y=0;在下列选项使i的值变成1的语句是()。A、if(x&&y)i++;B、if(x==y)i++;C、if(x||y)i++;D、if(!x)i++;答案:C211.已知有声明inta[10];,若用其中某个数组元素作函数实参,则下列说法正确的是________。A、形参应为符号常量B、形参应为数组名C、形参应为表达式D、形参应为简单变量答案:D212.C++函数中未指定存储类别的局部变量,其隐含的存储类别是________。A、autoB、staticC、externD、register答案:A213.下列虚基类的声明中正确的是()。A、classvirtualB:publicAB、virtualclassB:publicAC、classB:publicAvirtualD、classB:virtualpublicA答案:D214.若有以下说明和定义,在必要的赋值之后,对fun函数的正确调用语句是()intfun(int*c){…}intmain(){int(*a)(int*)=fun,*b(),w[10],c;…}A、a=a(w);B、(*a)(&c);C、b=*b(w);D、fun(b);答案:B解析:在答案A中,a(w)调用正确,但将其返回值赋值给a是错误的,因为返回值是整型数,而a是一函数指针,所以答案A是错误的。在答案C中,因b是一个返回值为整型数指针的函数,*b(w)本身就是错误的;在答案D中,b后面省掉了括号,因为b是函数,故也是错误的;而对于答案B来说,因为a指向了函数fun,所以它等价于fun(&c)的调用,是正确的。所以正确答案是B。215.在C++语言的数据类型中,int,short等类型的长度是()。A、固定的B、任意的C、用户自定义的D、与机器字长有关的答案:D216.下列说法中错误的是()。A、静态局部变量的初值是在编译时赋予的,在程序执行期间不再赋予初值B、若全局变量和某一函数中的局部变量同名,则在该函数中,此全局变量被屏蔽C、静态全局变量可以被其他的编辑单位所引用D、所有自动类局部变量的存储单元都是在进入这些局部变量所在的函数体(或复合语句)时生成,退出其所在的函数体(或复合语句)时消失答案:C217.下列标识符中,属于块作用域的是________。A、函数形参B、语句标号C、函数外定义的变量D、函数原型的参数列表中的参数名答案:A218.C++语言的函数体必须放在一对()中A、{}B、""C、[]D、()答案:A219.有以下程序intmain(){inta=3,b=4,c=5,d=2;if(a>b)if(b>c)coutA、2B、3C、43D、44答案:A220.C++的继承性允许派生类继承基类的()A、部分特性,并允许增加新的特性或重定义基类的特性B、部分特性,但不允许增加新的特性或重定义基类的特性C、所有特性,并允许增加新的特性或重定义基类的特性D、所有特性,但不允许增加新的特性或重定义基类的特性答案:A221.若一个类中含有纯虚函数,则该类称为()。A、基类B、纯基类C、抽象类D、派生类答案:C222.考虑函数原型voidtest(intA,intb=7,charch='*'),下面的函数调用中,属于不合法调用的是()A、test(5)B、test(5,8)C、test(6,'#')D、test(0,0,'*')答案:C解析:在C++语言中,可以在声明函数时为形参指定默认值。当调用有默认参数值的函数时,调用语句中可以不给出对应的实参,这就相当于调用该函数时以默认值作为参数。调用函数时,主调函数的实参与被调函数的形参按从左至右的顺序进行匹配对应。C选项中,实参有2个,少于形参的个数3,故从左至右匹配,将会把字符型实参#赋值给整型形参b,则会产生编译错误。故选C。223.关于文件包含,下列描述错误的是__________A、文件包含命令行必须以#include开头B、文件包含命令行的两种形式是有区别的,当#include后面的文件名用<>括起来时,应该先在源程序所在目录中进行搜索C、文件包含是可以嵌套的,即在被包含的文件中又使用文件包含命令行包含其他文件D、一个#include命令只能包含一个文件,当多个文件需要包含时,应使用多个#include命令行答案:B224.以下关于构造函数和析构函数的说法,错误的是()。A、析构函数中调用虚函数采用静态联编B、对虚析构函数的调用可以采用动态联编C、当基类的析构函数是虚函数时,其派生类的析构函数一定时虚函数D、构造函数可以声明为虚函数答案:D225.有关析构函数的说法不正确的是()。A、析构函数有且只有一个B、析构函数和构造函数一样可以有形参C、析构函数的功能是用来释放一个对象D、析构函数无任何函数类型答案:B226.C++程序从上机到得到结果的几个操作步骤依次是()。A、编译、编辑、连接、运行B、编辑、编译、连接、运行C、编译、运行、编辑、连接D、编辑、运行、编辑、连接答案:B227.函数调用:strcat(strcpy(str1,str2),str3)的功能是______A、将串str1到串str2中后再连接到串str3之后B、将串str1连接到串str2之后再到串str3之后C、将串str2连接到串str1之后再将串str1到串str3中D、将串str2到串str1中后再将串str3连接到串str1之后答案:D228.执行C++程序时出现的“溢出”错误属于()错误。A、编译B、连接C、运行D、逻辑答案:C229.关于成员函数特征的下列描述中,()是错误的。A、成员函数一定是内联函数;B、成员函数可以重载;C、成员函数可以设置缺省参数值;D、成员函数可以是静态的;答案:A230.有以下程序#include<stdio.h>main(){intm=1,n=2,*p=&m,*q=&n,*r;r=p;p=q;q=r;printf("%d,%d,%d,%d\n",m,n,*p,*q);}程序运行后的输出结果是()A、1,2,1,2B、1,2,2,1C、2,1,2,1D、2,1,1,2答案:B231.以下程序inta=15;a>>2;则a的值变为()。A、3B、15C、13D、2答案:A232.如果定义:floata[10],x;则以下叙述中正确的是()A、语句a=&x;是非法的B、表达式a+1是非法的C、三个表达式a[1]、*(a+1)、&a[1]代表的变量互不相同D、表达式*&a[1]是非法的,应该写成*(&(a[1]))答案:A解析:B选项中,表达式a+1不是非法的;C选项中,*(a+1)即指a[1];D选项中,*&a[1]不是非法的。因此A选项正确。233.下列输出语句中,正确的是()A、cout<<("%c\n","student")B、cout<<("%s\n","hello")C、cout<<("%c\n","c")D、cout<<("%s\n",&a)答案:B解析:%c是输岀单个字符的格式控制符。%s是输出字符串的格式控制符。故只有B正确。选项C中"c"是字符串,不能用c%格式输出。234.下列给字符

温馨提示

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

评论

0/150

提交评论