




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
试卷科目:C++开发基础C++开发基础(习题卷10)PAGE"pagenumber"pagenumber/SECTIONPAGES"numberofpages"numberofpagesC++开发基础第1部分:单项选择题,共156题,每题只有一个正确答案,多选或少选均不得分。[单选题]1.当一个类A中没有声明任何成员变量与成员函数,sizeof(A)的值是多少?A)0B)1C)4答案:B解析:[单选题]2.对重载函数形参的描述中,错误的是()。A)参数的个数可能不同B)参数的类型可能不同C)参数的顺序可能不同D)参数的个数、类型、顺序都相同,只是函数的返回值类型不同答案:D解析:[单选题]3.以下代码片段的输出结果是。()unionstudent{Struct{intx,y,z;}i;intk;}a;a.i.x=4;a.i.y=5;a.k=0;printf(""%d"",a.i.x);"A)4B)0C)5D)9答案:B解析:[单选题]4.如果定义: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选项正确。[单选题]5.下列为文件的扩展名,能被计算机直接执行的是()。A)cppB)oC)exeD)h答案:C解析:[单选题]6.下列对派生类的描述中错误的说法是:()。A)派生类至少有一个基类B)派生类可作为另一个派生类的基类C)派生类除了包含它直接定义的成员外,还包含其基类的成员D)派生类所继承的基类成员的访问权限保持不变答案:D解析:[单选题]7.以下描述错误的是_________A)无论何种继承方式,在派生类内部均不可以直接访问基类的私有成员;B)无论何种继承方式,在派生类内部均可以直接访问基类的公有成员。C)无论何种继承方式,在派生类内部均可以直接访问基类的保护成员。D)通过派生类对象,可以直接访问以公有继承方式继承的基类的公有成员和保护成员。答案:D解析:[单选题]8.若有以下函数首部,则下面针对此函数的函数声明语句中正确的是________。intfun(doublex[10],int*n)A)intfun(doublex,int*n);B)intfun(doublex,intn);C)intfun(double*,int*);D)intfun(double*,int&);答案:C解析:[单选题]9.循环队列存储在数组A[0..m]中,则入队时的操作为A)rear=rear+1B)rear=(rear+1)mod(m-1)C)rear=(rear+1)modmD)rear=(rear+1)mod(m+1)答案:D解析:[单选题]10.已知定义inta=1,b=2,c=3;则表达式a>b?(a>c?a:c):b的值为()。A)1B)2C)3D)不确定答案:B解析:[单选题]11.若有语句int*point,a=4;和point=&a;下面均代表地址的一组选项是()A)A,point,*&aB)&*a,&a,*pointC)*&point,*point,&aD)&a,&*point,point答案:D解析:[单选题]12.ASCII码(含扩展ASCII码)可以用一个字节表示,则可以表示的ASCII码值个数为_____。(题)A)1024B)512C)256D)128答案:C解析:[单选题]13.[默认继承方式]有类定义如下:ClassA{};classB{};ClassC:publicA,B{};则下列说法正确的是:A)C类公有继承了A类和B类B)C类公有继承A类,私有继承B类C)语法错误,一个类不能继承两个类D)语法错误,继承时必须写明继承方式答案:B解析:[单选题]14.在下列成对的表达式中,运算符?+?的意义不相同的一对是()A)5.0+2.0和5.0+2B)5.0+2.0和5+2.0C)5.0+2.0和5+2D)5+2.0和5.0+2答案:C解析:[单选题]15.下列控制格式输入输出的操作符中,能够设置浮点数精度的是A)setprecisionB)showpointC)setfillD)setw答案:A解析:[单选题]16.判断字符型变量ch是否为大写英文字母,应使用表达式()。A)ch>='A'&ch<='Z'B)ch>='A'&&ch<='Z'C)'A'<=ch<='Z'D)ch<='A'||ch>='Z'答案:B解析:[单选题]17.希尔排序算法中,最后一趟排序的地址增量一定是下面的哪种情况()。A)nB)n/2C)1D)任意值答案:C解析:[单选题]18.设某棵二叉树中有2000个结点,则该二叉树的最小高度为A)9B)10C)11D)12答案:C解析:[单选题]19.函数fun计算prod=1*2*3*…*n,并返回计算结果值。但当n=100时,程序不正确。要找出该程序的错误,正确的调试方法是()。intfun(intn){intprod,i;prod=1;for(i=1;i<=n;i++)prod*=i;returnprod;}A)监视变量prod的值,在prod*=i;行处设置断点,然后单步运行,直到发现错误原因B)监视变量prod的值,在returnprod;行处设置断点,程序中断后,即可发现错误原因C)在prod=1;处设置断点,然后在函数调用堆栈中即可发现错误原因D)监视变量i的值,在for(i=1;i答案:A解析:prod的值会溢出!监视该值.[单选题]20.在C++语言中,自定义的标识符()。A)能使用关键字并且区分大小写B)不能使用关键字并且区分大小写C)能使用关键字并且不区分大小写D)不能使用关键字并且不区分大小写答案:B解析:[单选题]21.intget();的功能是A)读入一个字符串并返回它的值B)读入一个字符并返回它的值C)输出一个字符串D)输出一个字符答案:B解析:[单选题]22.欲使下列程序输出?Point:(1,1),Radius:6?,下列填空错误的是______。A)第(1)空填Point(x,y)B)第(1)空填x=1,y=1C)第(2)空填Point(c)D)第(2)空填Point(c.x,c.y)答案:B解析:[单选题]23.下列函数中,不能重载运算符的函数是()。A)成员函数B)构造函数C)普通函数D)友员函数答案:B解析:[单选题]24.#includeusingnamespacestd;classDATA{DATA(inta,intb)//1{x=a;y=b;}voidshow(){cout<A)第1行开始的构造函数定义语法有错误B)第2行中不能直接访问x和yC)第3行建立obj对象时,无法调用构造函数D)第4行obj可以调用show函数答案:C解析:[单选题]25.以下哪个不是容器操作函数()A)assignB)swapC)eraseD)length答案:D解析:[单选题]26.二叉树T的前序遍历序列和中序遍历序列分别是bdcaef和cdeabf,则其后序遍历序列为A)ceadfbB)feacdbC)eacdfbD)以上都不对答案:A解析:[单选题]27.二叉树是非线性数据结构,所以()。A)它不能用顺序存储结构存储B)它不能用链式存储结构存储C)顺序存储结构和链式存储结构都能存储D)顺序存储结构和链式存储结构都不能使用答案:C解析:[单选题]28.有如下语句序列:Intk=0;Do{k+=5;cout<<'$';}while(k<19);While(k-->0)cout<<'*';执行上面的语句序列输出字符$和*的个数分别是()。A)4和20B)5和20C)4和21D)5和21答案:A解析:[单选题]29.关于字符常量的写法,错误的是()。A)"a"B)'/'C)'\0'D)'\a'答案:A解析:[单选题]30.一个函数为voidx(int,charch=?a?),另一个函数为voidx(int),则它们________。A)可以在同一程序中定义,但不可以重载B)不能在同一程序中定义C)可以在同一程序中定义并可重载D)以上说法均不正确答案:A解析:[单选题]31.map的底层数据结构是?A)数组B)链表C)红黑树D)哈希表答案:C解析:[单选题]32.以下描述对应哪种排序算法:对待排序进行划分为左、右两个子序列,对两个子序列进行同样的排序操作,直到子序列为空或只剩下一个元素为止。A)冒泡排序B)折半插入排序C)快速排序D)希尔排序答案:C解析:[单选题]33.有定义如下:inta[5],*p=a;则下列描述错误的是_______。A)表达式p=p+1是合法的B)表达式a=a+1是合法的C)表达式p-a是合法的D)表达式a+2是合法的答案:B解析:[单选题]34.内联函数的特点是()A)减少代码量,加快访问速度B)减少代码量,减缓访问速度C)增加代码量,减缓访问速度D)增加代码量,加快访问速度答案:D解析:为了避免这种频繁的函数调用与返回,加快执行速度,C++语言引入了内联函数的概念。使用内联函数,编译器在编译时并不生成函数调用,而是将程序中出现的每一个内联函数的调用表达式直接用该内联函数的函数体进行替换,就像整个函数体在调用处被重写了一遍一样。很显然,使用内联函数会使最终可执行程序的体积增大。故综上,内联函数增加代码量,加快访问速度。[单选题]35.下列设置函数参数默认值的说明语句中,错误的是______。A)intfun(intx,inty=10)B)intfun(intx=5,int=10)C)intfun(intx=5,inty)D)intfun(intx,inty=a+b)答案:C解析:[单选题]36.运行如下程序段,输出结果是()。inta=2,b=-1,c=2;//语句1if(a<b)//语句2if(b<0)c=0;elsec+=1;cout<<c<<endl;//语句3A)0B)1C)2D)3答案:C解析:共3条语句.第2条语句是if语句且只有if子句,else子句缺省,用{}表示出子句范围如下:inta=2,b=-1,c=2;//语句1if(a<b)//语句2开始{if(b<0){c=0;}else{c+=1;}}//语句2结束.cout<<c<<endl;//语句3[单选题]37.有如下函数定义:voidfunc(inta,int&b){a++;b++;}若执行代码段:intx=0,y=1func(x,y);则变量x和y值分别是()A)0和1B)1和1C)0和2D)1和2答案:C解析:[单选题]38.函数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解析:名称相同,参数个数相同,参数类型相同,无法重载。[单选题]39.递归函数中的形参是()A)自动变量B)外部变量C)静态变量D)可根据需要自定义存储类型答案:A解析:[单选题]40.一棵有n个结点的二叉树,按层次从上到下,同一层从左到右顺序存储在一维数组A[1..n]中,则二叉树中第i个结点(i从1开始用上述方法编号)的右孩子在数组A中的位置是A)A[2i](2i<=n)B)A[2i+1](2i+1<=n)C)A[i-2]D)条件不充分,无法确定答案:D解析:[单选题]41.下列选项中,均是合法的实型常量的是()A)+1e+15e-9.403e2B)-0.1012e-4-8e5C)123e1.2e-.4+2e-1D)-e3.8e-45.e-0答案:B解析:[单选题]42.若有定义intx[10]={0,1,2,3,4,5,6,7,8,9},*p1;则数值不为3的表达式是________。A)x[3]B)p1=x+3,*p1++C)p1=x+2,*(p1++)D)p1=x+2,*++p1答案:C解析:[单选题]43.已知定义int*p[3],则以下说法正确的是()。A)定义了1个int类型的指针变量,该变量具有3个指针B)定义了1个指针数组,该数组有3个元素,每个元素都是int类型的指针变量C)定义了1个名为*p的int类型数组,该数组含有3个int类型的变量D)定义了1个指向一维数组的指针变量p,该一维数组有3个int类型的元素答案:B解析:[单选题]44.已知intx=5,y=5,z=5;执行语句x%=y+z;后,x的值是()。A)0B)5C)6D)1答案:B解析:[单选题]45.若已经声明了函数原型"voidfun(intA,doubleb=0.0);",则下列重载函数声明中正确的是()。A)voidfun(inta=90,doubleb=0.0);B)intfun(intA,doubleB);C)voidfun(doubleA,intB);D)boolfun(intA,doubleb=0.0);答案:C解析:[单选题]46.执行如下语句,输出结果为()Charstr[]="Beijing";Cout<<strlen(strcpy(str,"China"));A)5B)7C)8D)12答案:A解析:[单选题]47.下列有关函数定义和调用的叙述中,错误的是________。A)一个函数必须定义后才能使用B)在一个函数体内可以定义另一个函数C)用户定义的函数可以被一个和多个函数调用任意多次D)一般要求在函数调用时,实参的个数和类型必须与形参的个数和类型一致答案:B解析:[单选题]48.对于"int*pa[5];"的描述中正确的是A)pa是一个指向数组的指针,所指向的数组是5个int型元素B)pa是一个指向某数组中第5个元素的指针,该元素是int型变量C)pa[5]表示某个元素的第5个元素的值D)pa是一个具有5个元素的指针数组,每个元素是一个int型指针答案:D解析:[单选题]49.C++对C语言作了很多改进,下列描述中()使得C语言发生了质变,从面向过程变成了面向对象。A)增加了一些新的运算符;B)允许函数重载,并允许设置缺省参数;C)规定函数说明必须用原型;D)引进了类和对象的概念;答案:D解析:[单选题]50.下列字符串可以用做C++标识符的是()。A)A123B)foo~barC)caseD)3var答案:A解析:[单选题]51.下列有关函数的说法正确的是()。A)在C++语言中,若对函数类型未加说明,则系统隐含类型为void。B)C++函数必须有返回值,否则无法使用。C)C++函数既可以嵌套定义,又可以可递归调用。D)C++函数中,形式参数必须指定为确定的类型。答案:D解析:[单选题]52.友员的作用之一是()A)提高程序的运行效率B)加强类的封装C)实现数据的隐蔽性D)增加成员函数的种类答案:A解析:[单选题]53.有如下语句序列:ifstreaminfile("DATA.DAT");if(infile.good())cout<<"A";else{cout<<"B";ofstreamoutfile("DATA.DAT");if(outfile.fail())cout<<"C";elsecout<<"D";}若执行这个语句序列显示的是BD,则说明文件DATA.DAT________。A)以读方式打开成功B)以读方式打开失败,但以写方式打开成功C)以读方式打开失败,以写方式打开也失败D)以读方式打开成功,以写方式打开也成功答案:B解析:[单选题]54.以下有关C语言的说法中,错误的是()。A)内存泄露一般是指程序申请了一块内存,使用完后,没有及时将这块内存释放,从而导致程序占用大量内存。B)可以通过malloc(size_t)函数调用申请超过该机器物理内存大小的内存块。C)无法通过内存释放函数free(void*)直接将某块已经使用完的物理内存直接还给操作系统。D)可以通过内存分配函数malloc(size_t)直接申请物理内存。答案:D解析:内存泄漏也称作?存储渗漏?,用动态存储分配函数动态开辟的空间,在使用完毕后未释放,结果导致一直占据该内存单元。直到程序结束。即所谓内存泄漏。free释放的内存不一定直接还给操作系统,可能要到进程结束才释放。可以直到malloc不能直接申请物理内存,它申请的是虚拟内存[单选题]55.包含自定义头文件file.h的预处理指令是()A)#define<file.h>B)#includefile.hC)#definefile.hD)#include"file.h"答案:D解析:[单选题]56.在C程序的源文件中如果需要使用函数strcpy,需要在该文件开头引入哪个头文件()A)iostream.hB)string.hC)math.hD)不需要任何头文件答案:B解析:[单选题]57.假定T是一个C++类,下列语句执行之后,内存里创建了()个T对象。Tb(5);Tc[6];T&d=b;Te=b;T*p=newT(4);A)5B)8C)9D)12答案:C解析:1+6+0+1+1=9个[单选题]58.非线性结构是数据元素之间存在一种A)一对多关系B)多对多关系C)多对一关系D)一对一关系答案:B解析:[单选题]59.在具有n个结点的有序单链表中插入一个新结点并仍然有序的时间复杂度是()A)O(1)B)O(n)C)O(n^2)D)O(nlog2n)答案:B解析:[单选题]60.若有定义int*p=newint(0),则下列说法正确的是()A)系统用指针变量p来表示所指整型变量B)声明一个指针变量p,指向名为new的存储单元C)系统为指针变量p分配一个整型数据的存储空间D)通过运算符new,分配一个整型数据的存储空间,并将其内存地址赋予指针变量答案:D解析:在C++语言中,使用new运算符实现动态内存分配。例如,可以写如下的语句:p=newT;其中,T是任意类型名,p是类型为T*的指针。这样的语句会动态分配出一片大小为sizeof(T)字节的内存空间,并且将该内存空间的起始地址赋值给指针p。本题中,int*p=newint(0)表示通过运算符new,分配一个整型数据的存储空间,并将其内存地址赋予指针变量。D正确。[单选题]61.下列关于C++标识符的命名不合法的是()A)PadB)name_1C)A#bcD)_a12答案:C解析:一般的标识符命名规则:字母、数字和下划线的组合,大小写敏感,但不能以数字开头,也不能和系统中使用的关键字完全相同。故C错误,?#?不属于字母、数字和下划线的任何一种。[单选题]62.关于以下代码片段说法正确的是()。inta[5],*pa;pa=a;pa=pa+2;A)pa指向a[2];B)pa的内容是a[0]+2C)pa指向a[0]D)语法有错误答案:A解析:[单选题]63.要求用成员函数重载的运算符是()。A)=B)==C)<=D)++答案:A解析:[单选题]64.给定的一个长度为N的字符串str,查找长度为P(PA)不存在比最坏时间复杂度O(NP)好的算法B)不存在比最坏时间复杂度O(N^2)好的算法C)不存在比最坏时间复杂度O(P^2)好的算法D)存在最坏时间复杂度为O(N+P)的算法答案:D解析:[单选题]65.若已定义的函数有返回值,则有关该函数调用的叙述中错误的是()。A)函数调用可以作为独立的语句存在B)函数调用可以作为一个函数的形参C)函数调用可以作为一个函数的实参D)函数调用可以出现在表达式中答案:B解析:[单选题]66.对n个元素进行直接插入排序时间复杂度为A)O(1)B)O(n)C)O(n^2)D)O(logn)答案:C解析:[单选题]67.以下输入输出语句错误的是()A)cout<<x<<endl;B)cin>>y>>z;C)cout>>a>>b;D)cout<<?a?;答案:C解析:[单选题]68.设有一个递归函数如下intf(intn){if(nA)6B)7C)8D)9答案:D解析:[单选题]69.已知函数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);答案:C解析:[单选题]70.下列()的调用方式是引用调用。A)形参和实参都是变量B)形参是指针,实参是地址值C)形参是引用,实参是变量D)形参是变量,实参是地址值答案:D解析:[单选题]71.假设以数组A[m]存放循环队列的元素,其头尾指针分别为front和rear,则当前队列中的元素个数为A)(rear-front+m)%mB)rear-front+1C)(front-rear+m)%mD)(rear-front)%m答案:A解析:[单选题]72.在一棵有n个结点的二叉树中,若度为2的结点数为n2,度为1的结点数为n1,度为0的结点数为n0,则树的最大高度为A)n0+n1+n2B)n1+n2C)n2+1D)1答案:A解析:[单选题]73.下面代码执行结果为()classA{public:voidB(){coutA)wantfuncptrB)编译错误,A类中没有成员*func函数C)没有任何输出D)不能A::B取地址答案:A解析:[单选题]74.若x是一个boo型变量,y是一个值为100的int型变量,则表达式x&&y>0的值()。A)为trueB)为falseC)与x的值相同D)与x的值相反答案:C解析:[单选题]75.有如下程序段:……For(inti=1;i<4;i++){If(i%2==0)Continue;Cout<<i<<",";}……其输出的结果为()。A)1,B)1,3,C)1,3,4,D)1,3答案:B解析:[单选题]76.在C++中,容器是一种()A)标准类B)标准对象C)标准函数D)标准类模板答案:D解析:[单选题]77.下面是关于派生类声明的开始部分,其中正确的是________。A)classvirtualB:publicAB)virtualclassB:publicAC)classB:publicAvirtualD)classB:virtualpublicA答案:D解析:[单选题]78.一个类可包含析构函数的个数是()A)0个B)1个C)至少一个D)0个或多个答案:B解析:[单选题]79.快速排序在下列哪种情况下最易发挥其长处。A)被排序的数据中含有多个相同排序码B)被排序的数据已基本有序C)被排序的数据完全无序D)被排序的数据中的最大值和最小值相差悬殊答案:C解析:[单选题]80.用链接方式存储的队列,在进行删除运算时A)仅修改头指针B)仅修改尾指针C)头、尾指针都要修改D)头、尾指针可能都要修改答案:D解析:[单选题]81.设有:inta=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值是()A)1B)2C)3D)0答案:B解析:exp1&&exp2若exp1为0,则exp2不执行.m=0,所以(n=c>d)不执行,n值不变[单选题]82.数据结构的二叉链表进行树的存储时,根结点的右指针是()A)指向最左孩子B)指向最右孩子C)空D)非空答案:C解析:[单选题]83.若有定义intx[6]={2,4,6,8,5,7},*p=x,i;要求依次输出x数组6个元素中的值,不能完成此操作的语句是________。A)for(i=0;i<6;i++)cout<B)for(i=0;i<6;i++)cout<C)for(i=0;i<6;i++)cout<D)for(i=0;i<6;i++)cout<答案:D解析:[单选题]84.流程控制语句的基本控制结构有三种,不属于这一种结构的是()。A)顺序结构B)选择结构C)循环结构D)计算结构答案:D解析:[单选题]85.以下关于C++析构函数的描述中,错误的是________。A)析构函数名必须以字符~开B)不可定义析构函数的形式参数C)析构函数由系统自动调用D)可以重载析构函数答案:D解析:[单选题]86.若有如下程序:intmain(){inty=3,x=3,z=1;printf("%d%d\n",(++x,y++),z+2);}运行该程序的输出结果是(A)34B)42C)43D)33答案:D解析:逗号表达的求值顺序是从左向右以此计算用逗号分隔的各表达式的值,最后一个表达式的值就是整个逗号表达式的值,所以(++x,y++)的值将是y++,因为是先输出y的值,再将y增1,所以轴线输出3,再输出Z+2的值,即3;所以应选择D[单选题]87.阅读下列程序,则在执行后,程序的运行结果为()。#include<iostream>"#include<string>Usingnamespacestd;Intmain(){chara[30]="nicetomeetyou!";strcpy(a+strlen(a)/2,"you");cout<<a;return0;}A)nicetomeetyouyouB)nicetoC)meetyouyouD)nicetoyou答案:D解析:[单选题]88.以下关于链表说法正确的是()。A)链表的头节点中只存放下1个节点的指针B)链表的尾节点中不存放指向下1个节点的指针C)删除链表的头节点与尾节点操作完全相同D)删除链表的头节点,意味着整个链表都被删除答案:A解析:[单选题]89.设有定义:intn=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是(D)。A)p=1;B)*q=2;C)q=p;D)*p=5;答案:D解析:[单选题]90.下面关于类和对象说法不正确是()A)类由数据与函数组成B)一个对象必属于某个类对象是类的实例C)对象是类的实例D)一个类的对象只有一个答案:D解析:对象是类的一个具象,类是对象的一个抽象。一个类的对象可以不只有一个。故D错误。[单选题]91.已知:charc='\010';则变量c中包含的字符个数为()。A)4B)1C)2D)3答案:B解析:字符型变量只能存放一个字符,题干中是转义字符[单选题]92.下列关于C++函数的叙述中,错误的是________。A)函数必须有返回值B)一个函数中可以有多条return语句C)在不同的函数中可定义同名的变量D)函数不能嵌套定义,但可以嵌套调用答案:A解析:[单选题]93.下列选项中,()不能交换变量a和b的值。A)a=b;b=a;B)t=b;b=a;a=t;C)a=a+b;b=a-b;a=a-b;D)t=a;a=b;b=t;答案:A解析:[单选题]94.下列不合法的变量名为()。A)intB)int1C)name_0D)name1答案:A解析:[单选题]95.一个类的成员函数也可以成为另一个类的友元函数,这时的友元说明()。A)需加上类域的限定B)不需加上类域的限定C)类域的限定可加可不加D)不需要任何限定答案:A解析:[单选题]96.C++对C语言做了很多改进,即从面向过程变成为面向对象的主要原因是()A)增加了一些新的运算符B)允许函数重载,并允许设置缺省参数C)规定函数说明符必须用原型D)引进了类和对象的概念答案:D解析:[单选题]97.设有定义:intn=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是()。A)p=1B)*q=2C)q=p;D)*p=5答案:D解析:[单选题]98.[成员覆盖]已知有下列类定义:ClassX{public:intf(){return1;}};ClassY:publicX{public:intf(){return0;}};主函数代码:Intmain(){Yy;cout<<y.f()<<endl;return0;}该程序的输出是:A)0B)1C)10D)y.f()答案:A解析:[单选题]99.对函数intmax(inta,intb=0,intc=0,intd=0,inte=0);下列调用方式正确的是()A)intm=max(10,11,12,13,14);B)intm=max(10,,12,13,14);C)intm=max(10,11,,13,14);D)intm=max(10,11,12,,14);答案:A解析:调用函数时,主调函数的实参与被调函数的形参按从左至右的顺序进行匹配对应。总之,定义函数时,只能为函数最后面的连续若干个参数设置默认值,且在调用处也只能缺省后面的连续若干个实参。BCD选项中的默认值都不是放在最后的连续参数,故都错误。[单选题]100.已知如下程序: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答案:A解析:[单选题]101.假如指针p已经指向整型变量x,则(*p)++相当于________。A)x++B)p++C)*(p++)D)&x++答案:A解析:[单选题]102.下列访问成员的方式哪个是正确的()A)对象名.对象成员名B)对象指针名.对象成员名C)对象名->对象成员名D)类名->对象成员名答案:A解析:定义了类和对象后,就可以访问对象的成员。通过对象访问成员变量的一般格式如下:对象名.成员变量名故本题选A。还可以使用指针或引用的方式来访问类成员。如果是通过指针访问成员变量,则点运算符.换为箭头运算符->,即使用?指针->成员名?的方式来访问对象的成员。故BCD错误。[单选题]103.下列程序执行后的输出结果是_____。#include<iostream>Usingnamespacestd;Voidmain(){Intx='f';Cout<<char('A'+(x-'a'+1));}A)GB)HC)ID)J答案:A解析:[单选题]104.双精度浮点型的字节数是()。A)4B)1C)0D)8答案:D解析:[单选题]105.若指定有n个元素的向量,则建立一个有序单链表的时间复杂性的量级是A)O(1)B)O(n)C)O(n^2)D)O(nlog2n)答案:C解析:[单选题]106.类模板的使用实际上是将类模板实例化为1个具体的()。A)类B)对象C)函数D)模板类答案:B解析:[单选题]107.下列有关常量、变量的说法错误的是()。A)C++语言中变量必须?先定义、后使用?B)使用符号常量可增加程序的可读性C)定义变量时可以对变量进行初始化D)在程序中可以改变符号常量的值答案:D解析:[单选题]108.IO流中ifstream继承于()类A)ostreamB)istreamC)ofstreamD)iostream答案:B解析:[单选题]109.已知x,y,z均为整型变量,且值均为1,则执行语句++x||++y&&++z;后,表达式x+y的值为()A)1B)2C)3D)4答案:C解析:++x为真,后面的就不运算了,所以语句执行结束后x=2,y=1,z=1[单选题]110.如果inta=1,b=2,c=3,d=4;,则条件表达式aA)2B)3C)4D)1答案:D解析:[单选题]111.若有以下定义和语句,则对s数组的元素的正确引用形式是()。ints[4][5],(*ps)[5];ps=s;A)ps+1B)*(ps+3)C)ps[0][2]D)*(ps+1)+3答案:C解析:[单选题]112.判断char型变量c1是否为小写字母的正确表达式是________。A)'a'<=c1<='z'B)c1>=a&&c1<=zC)'a'>=c1||'z'<=c1D)c1>='a'&&c1<='z'答案:D解析:[单选题]113.下列程序段的输出是________。shortinti=65536;cout<A)65536B)0C)有语法错误,无输出结果D)-1答案:B解析:[单选题]114.已知int*p,*q,k=0,a=5;p=q=&a;,下列错误的赋值语句是________。A)k=p+q;B)a=*p+*q;C)p=q;D)*p=k+*q;答案:A解析:[单选题]115.如果有int型变量a,则定义指向变量a的指针p正确的写法是()A)intp=&vB)int*p=&vC)int&p=*vD)int*p=v答案:B解析:指针变量中保存的是一个地址,有时也称指针指向一个地址。定义一个指向int型变量a的指针p为:int*p=&a;故选B[单选题]116.已知:intx,y;则下列if语句中正确的是()。A)if(x==0)y=1;elsey=2;B)if(x==0)theny=1elsey=2C)if(x==0)y=1elsey=2;D)ifx==0y=1;elsey=2;答案:A解析:B少分号且多个then,C少分号,D少括号[单选题]117.有以下程序intmain(){inti;for(i=0;i<3;i++)switch(i){case1:cout<A)011122B)012C)012020D)120答案:A解析:[单选题]118.对于下面代码段intx=3,y=3;intt=++x||++y;y的值为()A)不确定B)4C)3D)1答案:C解析:当器遇到了||时,只要前面的++x为真,后面的语句就不执行了[单选题]119.字符串的长度是指()A)串中不同字符的个数B)串中不同字母的个数C)串中所含字符的个数D)串中不同数字的个数答案:C解析:[单选题]120.用于标识十六进制前缀或后缀是()A)无B)后缀L或eC)前缀零D)前缀0x答案:D解析:[单选题]121.如果进栈序列为e1,e2,e3,e4,则不可能的出栈序列是:A)e2,e4,e3,e1B)e4,e3,e2,e1C)e1,e2,e3,e4D)e3,e1,e4,e2答案:D解析:[单选题]122.下面程序的输出结果是()#includeusingnamespacestd;voidfun(intx,inty,intz){z=x*x+y*y;}intmain(){intz=68;fun(5,2,z);coutA)0B)29C)68D)无定值答案:C解析:[单选题]123.在C++中,头文件扩展名为()A)cppB)hC)libD)obj答案:B解析:在C++中,.h文件是头文件。.cpp文件是源程序文件;[单选题]124.将一棵有100个结点的完全二叉树从根这一层开始,每一层上从左到右依次对结点进行编号,根结点的编号为1,则编号为49的结点的左孩子编号为。A)98B)99C)50D)48答案:A解析:[单选题]125.设有基类定义:Classbase{Private:inta;protected:intb;public:intc;};为使变量成员b成为派生类的私有成员,可以采用的继承方式是()A)私有继承B)公有继承C)保护继承D)私有、公有、保护均可答案:A解析:[单选题]126.对下列程序,选项中叙述正确的是________。A)程序编译运行正确B)程序编译时语句①出错C)程序编译时语句②出错D)程序编译时语句③出错答案:A解析:[单选题]127.下面程序段:x=3;do{y=x--;if(!y){coutA)将输出##B)是死循环C)将输出###D)含有不合法的控制表达式答案:C解析:[单选题]128.分别以下列序列构造二叉排序树,与用其它三个序列所构造的结果不同的是()A)(100,80,90,60,120,110,130)B)(100,120,110,130,80,60,90)C)(100,60,80,90,120,110,130)D)(100,80,60,90,120,130,110)答案:C解析:[单选题]129.在公有派生的情况下,派生类中定义的成员函数只能访问原基类的()。A)公有成员和私有成员B)私有成员和保护成员C)公有成员和保护成员D)私有成员、保护成员和公有成员答案:C解析:[单选题]130.在C++中,实现封装性需借助于()。A)枚举B)类C)数组D)函数答案:B解析:[单选题]131.使用重载函数编程序的目的是()。A)使用相同的函数名调用功能相似的函数B)共享程序代码C)提高程序的运行速度D)节省存贮空间答案:A解析:[单选题]132.已知有如下定义:structDate{intyear,month,day;};structstudent{intnum;charname[80];Datebirthday;};则下列语句错误的是________。A)studentstud[2]={1,"Wangli",2001,12,3,4,"Zhangmei",2001,9,4};B)studentstud[2]={1,"Wangli",{2001,12,3},4,"Zhangmei",{2001,9,4}};C)studentstud[2]={1,"Wangli",2001,12,4,"Zhangmei",2001,9,4};D)studentstud[2]={1,"Wangli",{2001,12},4,"Zhangmei",{2001,9,4}};答案:C解析:[单选题]133.对于友元描述正确的是()A)友元是本类的成员函数B)友元不是本类的成员函数C)友元不是函数D)友元不能访问本类私有成员答案:B解析:[单选题]134.以下说法中正确的是()。A)C++程序总是从第一个定义的函数开始执行B)C++程序总是从main函数开始执行C)C++函数必须有返回值,否则不能使用函数D)C++程序中有调用关系的所有函数必须放在同一个程序文件中答案:B解析:[单选题]135.下列程序中说明的公有成员是()。classLocation{intX;public:voidinit(intX,intY);private:intY;public:intGetX();intGetY();}A)XB)init(intX,intY)C)GetX(),GetY()D)B和C都是答案:D解析:[单选题]136.下列关于函数的说法中,正确的是________。A)C++允许在函数体中定义其他函数B)所有的内联函数都要用inline说明C)仅函数返回类型不同的同名函数不能作为重载函数使用D)形参的默认值应从左至右逐个依次给出答案:C解析:[单选题]137.下列不是异常处理中需要用到的标识符是()。A)tryB)catchC)throwD)go答案:D解析:[单选题]138.直接插入排序的平均时间复杂度为()。A)O(logn)B)O(n)C)O(nlogn)D)O(n2)答案:D解析:[单选题]139.正确的C++语言标识符是()。A)3d_maxB)ifC)A&D)sum_2答案:A解析:[单选题]140.设一个链表最常用的操作是在末尾插入结点和删除尾结点,则选用什么最节省时间A)单链表B)单循环链表C)带尾指针的单循环链表D)带头结点的双循环链表答案:D解析:[单选题]141.下面哪个标识符不是内存管理函数?()A)mallocB)callocC)freeD)goto答案:D解析:[单选题]142.对于长度为n的有序顺序表,若采用折半搜索,则对所有元素的搜索长度中最大的为()的值的向下取整加一。A)log2(n+1)B)log2nC)n/2D)(n+1)/2答案:B解析:[单选题]143.阅读下面代码,输出结果为()intmain(){charstr1[]="abc";charstr2[]="abc";constcharstr3[]="abc";constcharstr4[]="abc";constchar*str5="abc";constchar*str6="abc";coutA)truefalsetrueB)falsetruetrueC)falsefalsefalseD)falsefalsetrue答案:D解析:[单选题]144.以下叙述不正确的是()。A)在不同的函数中可以使用同名的变量B)函数中的形式参数是局部变量C)在函数内定义的变量只在本函数范围内有效D)在函数内复合语句中定义的变量也可在本函数范围内有效答案:D解析:[单选题]145.下面程序执行结果:usingnamespacestd;classA{public:virtualvoidf(){cout<<"A::f()";}voidf()const{cout<<"A::f()const";}};classB:publicA{public:voidf(){cout<<"B::f()";}voidf()const{cout<<"B::f()const";}};voidg(constA*a){a->f();}intmain(intargc,char*argv[]){A*p=newB();p->f();g(p);delete(p);return0;}A)B::f()B::f()constB)B::f()A::f()constC)A::f()B::f()constD)A::f()A::f()const答案:B解析:g(p);执行的是父类的f()const,因为他不是虚函数[单选题]146.一个类的静态数据成员所表示属性()。A)是类的或对象的属性B)只是对象的属性C)只是类的属性D)类和友元的属性答案:C解析:[单选题]147.以下定义内联函数f()的语句,正确的是()。A)inlinevoidf();voidf(){}B)voidf();inlinevoidf(){}C)voidf():inline;voidf(){}D)voidf();voidf():inline{}"答案:B解析:[单选题]148.指出下列对定义重载函数的要求中,()是错误的。A)要求参数的个数相同B)要求参数的类型相同时,参数个数不同C)函数的返回值可以不同D)要求参数的个数相同时,参数类型不同答案:A解析:[单选题]149.语句ofstreamf(?TEMP.DAT?,ios::app|ios::binary)?的功能是建立流对象f,试图打开文件TEMP.DAT并与之连接,并且()A)若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件B)若文件存在,将其置为空文件;若文件不存在,打开失败C)若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件D)若文件存在,打开失败;若文件不存在,建立一个新文件答案:A解析:[单选题]150.与二进制数101.01011等值的十六进制数为()。A)BB)5.51C)51D)5.58答案:D解析:[单选题]151.下列有关C++流的叙述中,错误的是()。A)C++操作符setw设置的输出宽度永久有效B)C++操作符endl可以实现输出的回车换行C)处理文件I\O时,要包含头文件fstreamD)进行输入操作时,eof()函数用于检测是否到达文件尾答案:A解析:[单选题]152.下列循环语句的循环次数是________。while(inti=0)i--;A)0B)1C)2D)3答案:A解析:[单选题]153.数据结构中,对于希尔排序的组内排序采用的方式是。A)冒泡排序B)折半插入排序C)快速排序D)以上都不对答案:D解析:[单选题]154.下列关于return语句的叙述中,正确的是()。A)任何函数的函数体中至少有一个return语句B)任何函数的函数体中最后一条语句必须是return语句C)如果函数的返回类型为void,则其函数体中可以没有return语句D)如果函数的返回类型为int,则其函数体中可以没有return语句答案:C解析:[单选题]155.对于表达式boolx=5;inta=x==5;变量a的值为()。A)1B)0C)5D)false答案:B解析:[单选题]156.以下选项中,不合法的字符常量是()。A)?\n?B)?\xf?C)?\0?D)?\045?答案:D解析:第2部分:多项选择题,共16题,每题至少两个正确答案,多选或少选均不得分。[多选题]157.数据结构中,排序算法不稳定的有哪些A)快速排序B)冒泡排序C)直接插入排序D)希尔排序答案:AD解析:[多选题]158.下列关于直接插入排序法的说法不正确的是A)只能对数字进行排序B)只能对数字和英文单词进行排序C)可以对汉字进行排序D)只能从小到大进行排列答案:ABD解析:[多选题]159.下列关于C++关键字的说法中错误的是A)关键字是用户为程序中各种需要命名的?元素?所起的名字B)关键字是对程序中的数据进行操作的一类单词。C)关键字是在程序中起分割内容和界定范围作用的一类单词D)关键字是C++中预先定义并实现一定功能得一类单词。答案:ABC解析:[多选题]160.把一棵树转换为二叉树后,这棵二叉树的形态的说法不正确的是A)唯一的B)有多种C)有多种,但根结点都没有左孩子D)有多种,但根结点都没有右孩子答案:BCD解析:[多选题]161.对于折半查找方法,下面的说法正确的是A)折半查找方法不适用于按值有序链接的链表的查找B)折半查找方法适用于按值有序的顺序表的查找C)折半查找方法适用于按关键字值大小有序排列的顺序文件的查找D)折半查找方法适用于排序连续顺序文件的查找答案:BCD解析:[多选题]162.C++中下列字符串中可以作为标示符的是A)_256B)classC)delete1D)5char答案:AC解析:[多选题]163.数据的运算最常用的是A)插入B)删除C)修改D)查找答案:ABCD解析:[多选题]164.关于输出流对象的说法正确的是A)cout标准输出B)cerr标准错误输出C)clog类似于cerr,而clog中的信息存放在缓冲区中,缓冲区满后或遇endl时向显示器输出D)以上说法都正确答案:ABCD解析:[多选题]165.数据结构中,二叉树结点和说法正确的是A)二叉树中每个结点的两棵子树的高度差等于1B)二叉树中每个结点的两棵子树是有序的。C)二叉树中每个结点有两棵非空子树或有两棵空子树。D)具有12个结点的完全二叉树有5个度为2的结点。答案:BD解析:[多选题]166.数据结构中栈和队的共同点不包括A)都是先进后出B)都是后进先出C)只允许在端点处插入和删除元素D)没有共同点答案:ABD解析:[多选题]167.下列程序中的横线处填写的语句错误的是_____A)data=Sample::data;B)data(data);C)this->data=data;D)Sample::data=data;答案:AB解析:[多选题]168.关于树的度的描述正确的是A)树的度为0的结点称为叶子B)树的度不为0的结点称为分支结点C)树的度为0的结点称为分支结点D)树的度不为0的结点称为叶子答案:AB解析:[多选题]169.已知int型变量a,执行语句a=?A?+1.6;则以下说法正确的有()。A)变量a为int型B)变量a为浮点型C)程序会出现编译错误D)a的值是字符?A?的ASCII值加上1答案:AD解析:[多选题]170.一棵树可转换成为与其对应的二叉树,则下面叙述不正确的是A)树的先根遍历序列与其对应的二叉树的先序遍历相同B)树的后根遍历序列与其对应的二叉树的后序遍历相同C)树的先根遍历序列与其对应的二叉树的中序遍历相同D)只有A正确答案:BC解析:[多选题]171.树形结构中根结点、叶子结点等的说法正确的是A)在树形结构中,树根结点没有前驱结点B)树形结构中除根结点外,每个结点有且只有1个前驱结点C)叶子点没有后续结点D)除叶子结点外,其余每个结点的后续结点数可以任意多个答案:ABCD解析:[多选题]172.以下关于函数指针说法正确的是()。A)1个函数的函数名就是该函数的入口地址B)函数指针变量不能进行算术运算C)可以用如下形式定义1个函数指针变量:int*pf()D)假设有1个函数指针pf和1个函数f(),则可以用如下形式给函数指针赋值:pf=f()答案:AB解析:第3部分:填空题,共12题,请在空白处填写正确答案。[填空题]173.作为语句标号使用的C++保留字case和default只能用于________语句的定义体中答案:switch解析:[填空题]174.若要把整型变量y定义为x的引用,则所使用的定义语句为_______。答案:int&y=x;解析:[填空题]175.每个对象都是所属类的一个___。答案:实例解析:[填空题]176.C++中当一个函数无返回值时,则函数的类型是()。答案:void解析:[填空题]177.C++程序必须有且只有一个主函数,其函数名为______。答案:main解析:[填空题]178.决定C++语言中函数的返回值类型的是()A)return语句中的表达式类型B)调用该函数时系统随机产生的类型C)调用该函数时的主调用函数类型D)在定义该函数时所指定的数据类答案:D解析:[填空题]179.变量分为全局和局部两种,()。变量没有赋初值时,其值是不确定的。答案:全局变量默认初始化为0解析:[填空题]180.假定一个类的构造函数为A(intaa,intbb){a=aa--;b=a*bb;},则执行Ax(4,5);语句后,x.a和x.b的值分别为()A)3和15B)5和4C)4和20D)20和5答案:C解析:[填空题]181.vector类中用于删除向量中的所有对象的方法是___。答案:clear()解析:[填空题]182.下面叙述不正确的是()A)派生类一般都用公有派生B)对基类成员的访问必须是无二义性的C)赋值兼容规则也适用于多重继承的组合D)基类的公有成员在派生类中仍然是公有答案:D解析:[填空题]183.C++程序的源文件扩展名为___。答案:cpp解析:[填空题]184.C++语言中如果调用函数时,需要改变实参或者返回多个值,应该采取___方式。答案:传地址或引用解析:第4部分:判断题,共29题,请判断题目是否正确。[判断题]185.栈和队列的存储方式既可是顺序方式,也可是链接方式A)正确B)错误答案:对解析:[判断题]186.进行折半搜索的表必须是顺序存储的有序表A)正确B)错误答案:对解析:[判断题]187.树中任意结点的子树不必是有序的A)正确B)错误答案:错解析:[判断题]188.()抽象类不能做函数的参数类型,也不能作为函数的返回类型。A)正确B)错误答案:对解析:[判断题]189.goto语句可以指向一段代码中的任意行。答案:对解析:[判断题]190.当待排序的元素很大时,为了交换元素的位置,移动元素要占用较多的时间,这是影响时间复杂度的主要因素。A)正确B)错误答案:对解析:[判断题]191.一个包含循环结构的函数不可以定义为内联函数。A)正确B)错误答案:对解析:[判断题]192.函数参数传递过程中实参类型需要与形参相同()A)正确B)错误答案:对解析:[判断题]193.constchar*p说明了p是指向字符串的常量指针。答案:错解析:[判断题]194.C++语言中,包含字符串常用函数的类文件是string.h答案:对解析:[判断题]195.以下程序的输出结果为3。()inta[2][2]={1,2,3,4};printf(""%d\n"",a[1][0]);"答案:对解析:[判断题]196.定义数组时没有初始化,此时数组元素的值是不确定的。A)正确B)错误答案:对解析:[判断题]197.已知有如下代码片段#defineM(x)x*xnta=3;intb=M(a+1);宏展开后是:b=3+1*3+1=7则变量a的值为16。()答案:错解析:[判断题]198.使用数组时,数组元素的下标可以不从0开始。A)正确B)错误答案:对解析:[判断题]199.线性表的链式存储结构优于顺序存储。A)正确B)错误答案:错解析:[判断题]200.具有10个叶结点的二叉树中,有9个度为2的结点()A)正确B)错误答案:对解析:[判断题]201.快速排序的最好时间复杂度是O(n^2)A)正确B)错误答案:错解析:[判断题]202.C语言出现的早期主要用于UNIX系统答案:对解析:[判断题]203.当break语句用在双重循环的内循环中时,它只能退出内循环到外循环中去,而不能直出整个双重循环答案:对解析:[判断题]204.构造函数是非成员函数。()A)正确B)错误答案:错解析:[判断题]205.动态查找表和静态查找表的重要区别在于前者包含有插入和删除运算,而后者不包含这两种运算。A)正确B)错误答案:对解析:[判断题]206.哈希表中,关键字能够唯一的确定一条记录答案:对解析:[判断题]207.队列在程序调用时必不可少,因此递归离不开队列()A)正确B)错误答案:错解析:[判断题]208.线性表就是顺序存储的表()A)正确B)错误答案:错解析:[判断题]209.集合与线性表的区别在于是否按关键字排序()A)正确B)错误答案:错解析:[判断题]210.类的私有成员只能被类中的成员函数访问,任何类以外的函数对它们的访问都是非法的。答案:错解析:[判断题]211.把int型的变量转换为double型的变量不需要进行显式的类型转换说明答案:对解析:[判断题]212.()公有继承时,派生类继承了基类的所有成员。A)正确B)错误答案:错解析:[判断题]213.静态类标识符在它的作用域之外是不存在的答案:错解析:第5部分:问答题,共47题,请在空白处填写正确答案。[问答题]214.对象的___只能由这个对象的操作来存取答案:属性解析:按照面向对象的封装原则,一个对象的属性和操作是紧密结合的,对象的属性只能由这个对象的操作来存取[问答题]215.给出下面程序的输出结果#include<iostream>usingnamespacestd;classA{15public:intx;A(){}A(inta){x=a;}intget(inta){returnx+a;}};voidmain(){Aa(8);int(A::*p)(int);p=A::get;cout<<(a.*p)(5)<<endl;A*pi=&a;cout<<(pi->*P)(7)<<endl;}答案:1315解析:[问答题]216.对于下列函数定义,说法正确的是()。voidfun1(){intvar1=2,var2=3;int*p=&var1,*q=&var2;p=q;}voidfun2(){intvar1=2,var2=3;int&p=var1,&q=var2;p=q;}(a)fun1与fun2的作用完全相同。(b)运行fun1后p、q中均存放var2的地址;运行fun2后p、q均为var2的别名。(c)运行fun1后p中存放var1的地址,q中存放var2的地址;运行fun2后p为var1的别名,q为var2的别名。(d)运行fun1后p、q中均存放var2的地址;运行fun2后p为var1的别名,q为var2的别名。答案:本题主要考查引用和指针的区别。对于函数fun1(),p和q为指向整型的指针,它们分别被初始化为var1和var2的地址,p=q则使p中存放的地址为q中的地址即为var2的地址,所以最终p,q里都存放var2的地址。对于函数fun2(),p和q为引用,它们分别被初始化为var1和var2的别名,引用一旦被初始化,它就不能在指向其他对象。p=q的作用是让var1的值等于var2的值,即这个语句执行以后var1和var2的值都为3,而p和q仍然分别为var1和var2的别名。引用必须被初始化为指向一个对象,一旦初始化了它就不能再指向其他对象;指针可以指向一系列不同的对象也可以什么都不指向;如果一个参数可能在函数中指向不同的对象或者这个参数可能不指向任何对象则必须使用指针参数。答案为:d解析:[问答题]217.如何引用一个已经定义过的全局变量?答案:可以用引用头文件的方式,也可以用extern关键字,如果用引用头文件方式来引用某个在头文件中声明的全局变理,假定你将那个变写错了,那么在编译期间会报错,如果你用extern方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错解析:[问答题]218.请写出下列程序的运行结果#include<iostream.h>classWin{public:virtualvoidshape(){cout<<"Win"<<endl;}voidact(){shape();}};classBut:publicWin{public:virtualvoidshape(){cout<<"But"<<endl;}};voidmain(){Win*p1,w1;Butb1;w1.act();b1.act();p1=&w1;p1->shape();p1=&b1;p1->shape();p1->act();}答案:WinButWinButBut解析:[问答题]219.总结const的应用和作用?答案::(1)欲阻止一个变量被改变,可以使用const关键字。在定义该const变量时,通常需要对它进行初始化,因为以后就没有机会再去改变它了;(2)对指针来说,可以指定指针本身为const,也可以指定指针所指的数据为const,或二者同时指定为const;(3)在一个函数声明中,可co以ns修t饰形参,表明它是一个输入参数,在函数内部不能改变其值;(4)对于类的成员函数,若指定其为const类型,则表明其是一个常函数,不能修改类的成员变量;(5)对于类的成员函数,有时候必须指定其返回值为const类型,以使得其返回值不为?左值?。解析:[问答题]220.试建立一个类SP,求,另有辅助函数power(m,n)用于求。具体要求如下:(1)私有成员数据。intn,k:存放公式中n和k的值;(2)公有成员函数。SP(intn1,intk1):构造函数,初始化成员数据n和power(intm,intn):求fun():求公式的累加和。voidshow():输出求得的结果。(3)在主程序中定义对象s,对该类进行测试。答案:#include<iostream.h>classSP{intn,k;public:SP(intn1,intk1);intpower(intm,intn);intfun();voidshow();};SP::SP(intn1,intm1){n=n1;k=m1;}intSP::power(intm,intn){inti;if(n==0)return1;elsefor(i=1;i<n;i++)m*=m;returnm;}intSP::fun(){inty=0,x;for(x=1;x<=n;x++)y+=power(x,k);returny;}voidSP::show(){cout<<"前n项的和为:"<<fun()<<endl;}voidmain(){intn1,k1;cout<<"输入n1和k1的值"<<endl;cin>>n1>>k1;SPs(n1,k1);s.fun();s.show();}解析:[问答题]221.对象成员是指该对象所属类中定义的成员,包括数据成员和答案:成员函数解析:C++中使用对象名、属性和操作三要素来描述对象。描述属性的数据称为成员变量或数据成员,函数称为成员函数。因为类本身就是一种新的数据类型,所以一个类的对象可以作为另一个类的成员。假设有A和B两个类,可以通过在B类里定义A的对象作为B的数据成员,或者定义一个返回类型为A的函数作为B的成员函数。[问答题]222.下列程序的输出结果第一行是________,第二行是______,第三行是________。#includeusingnamespacestd;inta=5;voidfun(inta){::a-=--a;cout答案:1,4,-3,4,-7,4解析:[问答题]223.在C++类中可以包含_____、______和三种具有不同访问控制权的成员。答案:共有public|私有private|保护protected解析:[问答题]224.简述C++的主要特点以及C++与C语言语法上的不同之处。答案:C++语言的主要特点表现在两个方面,一是全面兼容C,并对C的功能作了不少扩充,二是增加了面向对象的机制。C++与C语言语法上的不同点在于:C++支持面向对象编程,C语言不支持;C++用输入流对象输入数据,C语言不支持;C++用输出流对象输出数据,C语言不支持;C++语言允许随时定义变量,C语言要求变量必须定义在可执行语句之前;C++语言中结构名、联合名、枚举名可直接作为类型名,C语言中必须带它们的关键字;C++中支持引用类型,C语言不支持;C++函数可以重载,C语言不允许;C++中函数参数可以带默认值,C语言不允许;C++语言有布尔类型,C语言没有解析:[问答题]225.运行下列程序结果为________________________。#include<iostream.h>constdoublePI=3.14159;classcircle{doubler;public:staticintnum;circle(double);circle(circle&);doublegetr();};circle::circle(doublei){r=i;}circle::circle(circle&c){num++;cout<<"第"<<num<<"次调用拷贝构造函数!"<<endl;r=c.r*num;}doublecircle::getr(){returnr;}doublegetradius(circlec3){returnc3.getr();}circlefun1(){circlec4(5);returnc4;}intcircle::num=0;voidmain(){circlec1(1);cout<<"c1:"<<c1.getr()<<endl;circlec2(c1)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高效复习CPSM考试试题及答案法
- 供应链管理师实例研究试题
- 高校本科教学质量管理
- 《从条件出发的解决问题策略教学案例及实施》小学教育毕业论文
- 逐步掌握CPSM考点的试题及答案
- 系统复习国际物流师试题及答案
- 初中酸碱盐知识点总结
- 提高CPMM考试效率的试题及答案
- 2024年CPMM考生的社交技巧增强及试题及答案
- 长方形的周长和面积 (教案)2024-2025学年数学三年级下册
- 《小儿积食》课件
- 2024年高等教育文学类自考-00522英语国家概况历年考试高频考点试题附带答案
- 【生物防治】10植物病害生物防治课件
- 学科竞赛与成果展示情况汇报
- 六西格玛设计DFSS
- 重庆市开州区2022-2023学年五年级下学期期末质量监测数学试题
- 《中原文化》课件
- 我的家乡湖南邵阳宣传介绍
- 管乐队教学计划
- 电气工程及其自动化毕业论文基于PLC的设计毕业论文
- 1-软件研制任务书(模板)-GJB438C
评论
0/150
提交评论