版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
试卷科目:C++开发基础C++开发基础(习题卷5)PAGE"pagenumber"pagenumber/SECTIONPAGES"numberofpages"numberofpagesC++开发基础第1部分:单项选择题,共59题,每题只有一个正确答案,多选或少选均不得分。[单选题]1.数据结构在计算机内存中的表示是指A)数据的存储结构B)数据结构C)数据的逻辑结构D)数据元素之间的关系答案:A解析:[单选题]2.关于对象性质,下列描述错误的是()A)同一类对象之间不可相互赋值B)可以使用对象数组C)对象可以用作函数参数D)一个对象可以用作另一个类的成员答案:A解析:对象是类的一个具象,类是对象的一个抽象。同一类的对象之间可以相互赋值。故A错误。[单选题]3.下列选项中,不能表示字符常量的是________。A)?\t?B)?\xy2sr?C)?\102?D)?d?答案:B解析:[单选题]4.使用重载函数的目的是()A)共享函数数据B)减少代码量C)优化运行效率D)提高可读性答案:D解析:函数重载,是指在程序的同一范围内声明几个功能类似的同名函数。使用同一个函数名作为功能一样的函数的函数名,这也符合人们的习惯。针对同名的函数,分别为其编写函数体,即可实现各自的功能。故使用其可提高代码可读性。选D。[单选题]5.对下述程序中标定语句号的行,有错的行是________。A)1行B)2行C)3行D)4行答案:A解析:[单选题]6.下列字符中不是转义字符是()。A)?\n?B)?\t?C)?\089?D)?\065?答案:C解析:[单选题]7.关于字符常量的写法,错误的是()。A)"a"B)'/'C)'\0'D)'\a'答案:A解析:[单选题]8.阅读下面代码,输出结果为()intmain(){charstr1[]="abc";charstr2[]="abc";constcharstr3[]="abc";constcharstr4[]="abc";constchar*str5="abc";constchar*str6="abc";coutA)truefalsetrueB)falsetruetrueC)falsefalsefalseD)falsefalsetrue答案:D解析:[单选题]9.C++语言中,函数返回值的类型是由()决定。A)主调函数的类型B)return语句中表达式的类型C)由系统临时指定D)定义该函数时所指定的函数类型答案:D解析:[单选题]10.下面对构造函数的不正确描述是()?A)用户定义的构造函数不是必须的B)构造函数可以重载C)构造函数可以有参数,也可以有返回值D)构造函数可以设置默认参数答案:C解析:构造函数没有返回值[单选题]11.函数voidfoo(){staticintval;……}变量val的内存地址位于()A)未初始化数据段B)已初始化数据段C)堆D)栈答案:A解析:1、栈区(stack)-由编译器自动分配释放,存放函数的参数值,局部变量的值等。2、堆区(heap)-一般由程序员分配释放,若程序员不释放,程序结束时可能由os回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。3、全局区(静态区)(static)-全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。程序结束后有系统释放。4、文字常量区-常量字符串就是放在这里的。程序结束后由系统释放。5、程序代码区-存放函数体的二进制代码。[单选题]12.在C++中用来实现运行时多态性的是()。A)重载函数B)析构函数C)构造函数D)虚函数答案:D解析:[单选题]13.以下关于C++语言描述错误的是()A)一个C++程序总是从main函数开始执行B)每个语句和数据声明的最后必须有一个分号C)C++语言的注释符是以??开始并以?*/?结束的D)一个C++程序可以包含多个main函数答案:D解析:[单选题]14.用new运算符创建一个含10个元素的一维整型数组的正确语句是()。A)int*p=newa[10];B)int*p=newfloat[10];C)int*p=newint[10];D)int*p=newint[10]={1,2,3,4,5}答案:C解析:[单选题]15.已知有char*p=newchar[20];,则释放p所指向的动态存储空间应使用的语句是________。A)deletep;B)delete*q;C)delete&q;D)delete[]p;答案:D解析:[单选题]16.若搜索每一个元素的概率相等,则在长度为n的顺序表上搜索到表中任一元素的平均搜索长度为A)nB)n+1C)(n-1)/2D)(n+1)/2答案:D解析:[单选题]17.要定义一个具有5个元素的一维数组vect,并使其各元素的初值依次是30,50,-88,0和0,则下列定义语句中错误的是()。A)intvect[]=[30,50,-88};B)intvect[]={30,50,-88,0,0};C)intvect[5]={30,50,-88};D)intvect[5]=[30,50,-88,0,0};答案:A解析:[单选题]18.下列程序执行后的输出结果是______________。#includeusingnamespacestd;intmain(){charb[]="happynewyear";cout<<"12345678"+4<A)5678wyearB)5678yearC)12345682yearD)52345678year答案:B解析:[单选题]19.关于类和对象的描述中,错误的是________。A)类是一种自定义类型,对象是变量B)类和对象之间的关系是具体和抽象的关系C)类是对具有共同行为的若干对象的统一描述D)对象是类的实例,一个对象必须属于一个已知的类答案:B解析:[单选题]20.有说明inta=0;doublex=5.16;以下语句中,()属于编译错误。A)x=a/x;B)x=x/a;C)a=a%x;D)x=x*a;答案:C解析:[单选题]21.若有以下程序intmain(){inty=10;while(y--);cout<<"y="<A)y=0B)y=-1C)y=1D)while构成无限循环答案:B解析:[单选题]22.inline内联函数的说法错误的是A)相当于把内联函数里面的内容写在调用内联函数处B)相当于不用执行进入函数的步骤,直接执行函数体C)相当于宏,却比宏多了类型检查,真正具有函数特性D)没用答案:D解析:[单选题]23.有类定义如下:classA{intx,y;public:A(intm=0,intn=0){x=m;y=n;}};classB{Aa1(1);Aa2(2,2);Aa3();Aa4;};则下列描述中正确的是________。A)A类的定义有错B)B类的定义无错C)a1和a2的定义均有错D)a3和a4的定义均有错答案:C解析:[单选题]24.有如下的对类?CSample?的说明,其中()是错误的。classCSample{A)inta=23;B)CSample();public:C)CSample(intn);D)~CSample();答案:A解析:[单选题]25.有如下程序intmain(){intn=9;while(n>6)cout<A)987B)876C)8765D)9876答案:A解析:[单选题]26.在以下二叉树结构中,先序遍历的先序序列为()。A)DBAECFB)ABDCEFC)DBEFCAD)ABCDEF答案:B解析:[单选题]27.面向对象方法的多态性是指()。A)一个类可以派生出多个特殊类B)一个对象在不同的运行环境中可以有不同的变体C)针对一消息,不同的对象可以以适合自身的方式加以响应D)一个对象可以是由多个其他对象组合而成的答案:C解析:[单选题]28.已知有定义inta[10]={10,9,8,7,6,5,4,3,2,1},i=0;,下列对a数组元素的引用错误的是________。A)a[i]B)a[++i]C)a[a[0]]D)a[2*4]答案:C解析:[单选题]29.有如下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)②和③答案:D解析:[单选题]30.已知如下定义:enumA{A1,A2,A3,A4}a;a=A2;intb=(int)a;则b的值为()。"A)语法错误B)1C)2D)不一定答案:B解析:[单选题]31.下列正确的八进制整型常量表示是()。A)0a0B)015C)080D)0x10答案:B解析:[单选题]32.关于编程下列说法中错误的是()。A)编程需要用一种程序设计语言B)编程就是软件开发的全部工作C)编写面向对象的程序最好选用面向对象的语言D)编程完成之后需要进行测试答案:B解析:[单选题]33.下列哪个不是面向对象的关键要素()A)抽象性B)结构性C)封装性D)多态性答案:B解析:面向对象的程序设计有?抽象??封装??继承?和?多态?4个基本特点。故不包括B。[单选题]34.下列对继承的描述中,错误的是()。A)派生类对象不能访问基类的保护成员B)派生类对基类成员的访问权限随着继承方式而改变C)派生类成员可以访问基类的私有成员D)派生类继承了基类的所有成员答案:C解析:[单选题]35.下列程序执行后的输出结果是_____。#include<iostream>Usingnamespacestd;Voidmain(){Intx='f';Cout<<char('A'+(x-'a'+1));}A)GB)HC)ID)J答案:A解析:[单选题]36.运行这个程序的输出是________。A)32B)23C)2013D)0231答案:D解析:[单选题]37.以下对模板的声明,正确的是()。A)template<T>B)template<classT1,T2>C)template<classT1,calssT2>D)template<classT1;classT2>答案:C解析:[单选题]38.对于语句coutA)?cout?是一个输出流对象B)?endl?的作用是输出回车换行C)?x?是一个变量D)?<<?称作提取运算符答案:D解析:[单选题]39.下列特性中,C与C++共有的是()。A)继承B)封装C)多态性D)函数定义不能嵌套答案:D解析:[单选题]40.设inti=1,j=2;则表达式i+++j的值为()。A)1B)2C)3D)4答案:C解析:[单选题]41.以下哪个C++容器不能用迭代器遍历A)setB)mapC)queueD)vector答案:C解析:[单选题]42.假定指针变量p定义为"int*p=newint(100);",要释放p所指向的动态内存,应使用语句()A)deletep;B)delete*p;C)delete&p;D)delete[]p;答案:B解析:如果是使用new运算符动态分配了一个数组,那么释放该数组时,语句如下:delete[]指针;故本题选D。[单选题]43.以下正确的二维数组定义是________。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};答案:C解析:[单选题]44.已知以下代码:classA{}classB:publicA{}Aa;Bb;则以下说法正确的是()。A)赋值方式a=b是允许的B)赋值方式b=a是允许的C)a可以访问类B的所有成员D)a可以访问b的所有public成员答案:A解析:[单选题]45.有函数原型voidfun2(int);下面选项中,不正确的调用是()。A)inta=21;fun2(a);B)inta=15;fun2(a*3);C)intb=100;fun2(&b);D)fun2(256);答案:C解析:[单选题]46.关于成员函数特征的下列描述中,()是错误的。A)成员函数一定是内联函数;B)成员函数可以重载;C)成员函数可以设置缺省参数值;D)成员函数可以是静态的;答案:A解析:[单选题]47.设有函数TSum(Tx,Ty){returnx+y;},其中T为模板类型,则下列语句中对该函数错误的使用是()A)Sum(1,2);B)Sum(3.0,2.2);C)Sum(?A?,?C?);D)Sum("A","C");答案:D解析:[单选题]48.数据结构中,线性数据结构是A)研究数据元素一对多的关系B)比树结构更复杂C)比图结构更复杂D)研究数据元素一对一的关系答案:D解析:[单选题]49.下列有关new和delete运算符的描述中,错误的是________。A)new运算符分配的空间只能用delete运算符撤销B)对一个指针只能使用一次deleteC)当用于删除数组时,在delete运算符后面可直接跟数组名,而不用管数组的维数D)new运算符分配数组空间时不能指定初值答案:C解析:[单选题]50.设有如下语句:typedefstructDate{intyear;intmonth;intday;}DATE;则以下叙述中错误的是______。A)structDate是用户定义的结构体类型B)struct是结构体类型的关键字C)DATE是用户说明的新结构体类型名D)DATE是用户定义的结构体变量答案:D解析:[单选题]51.以下关于友元的说法错误的是()。A)友元具有单方向性B)友元不能继承C)友元不能传递D)若类A是类B的友元,则类B也是类A的友元答案:D解析:[单选题]52.下列函数中,不能说明为虚函数的是()。A)私有成员函数B)公有成员函数C)构造函数D)析构函数答案:C解析:[单选题]53.设有: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值不变[单选题]54.下列语句中,错误的是()。A)constinttemp;B)constintbuffer=256;C)constdouble*point;D)constdouble*rt=newdouble(5.5);答案:A解析:[单选题]55.哪种数据结构用于执行递归调用()A)数组B)链表C)堆栈D)队列答案:C解析:[单选题]56.下列排序算法中不稳定的是A)冒泡排序B)折半插入排序C)快速排序D)以上都是稳定的答案:C解析:[单选题]57.在一棵高度为h的具有n个元素的二叉搜索树中,搜索所有元素的搜索长度中最大的为A)nB)log2nC)(h+1)/2D)h+1答案:D解析:第2部分:多项选择题,共6题,每题至少两个正确答案,多选或少选均不得分。[多选题]58.下面哪些数据类型所占的内存一定不会大于10字节?()A)只包含基本数据类型的结构B)只包含基本数据类型的联合C)枚举D)类类型答案:BC解析:[多选题]59.关于排序算法是否稳定,下面说法正确的是A)若待排序的序列中存在多个记录具有相同的键值,经过排序,这些记录的相对次序仍然保持不变,则称这种排序方法是稳定的B)若待排序的序列中存在多个记录具有相同的键值,经过排序,这些记录的相对次序发生改变,称这种排序方法是不稳定的C)若待排序的序列中存在多个记录具有相同的键值,经过排序,这些记录的相对次序仍然保持不变,则称这种排序方法是不稳定的D)若待排序的序列中存在多个记录具有相同的键值,经过排序,这些记录的相对次序发生改变,称这种排序方法是稳定的答案:AB解析:[多选题]60.对于线性结构,以下说法中正确的有哪些A)研究数据元素之间的一对一关系B)除第一个和最后一个元素外,任何一个元素都有唯一的一个直接前驱和直接后继C)比树结构更复杂D)比图结构更复杂答案:AB解析:[多选题]61.已知f()是类A的公有成员函数,p是指向该成员函数的指针,则以下赋值语句正确的是()。A)p=fB)p=A::f()C)p=f()D)p=A.f()答案:AB解析:[多选题]62.下面对于二叉树的计算正确的是A)一棵具有n个结点的二叉树,若它有m个叶子结点,则该二叉树中度为1的结点个数是n-2m+1B)深度为k(k>0)的二叉树至多有2^k-1个结点C)高度为6的完全二叉树至少有32个结点D)高度为6的完全二叉树至少有31个结点答案:ABC解析:[多选题]63.线性表的链接实现不利于A)插入B)读元素C)查找D)定位答案:BCD解析:第3部分:填空题,共4题,请在空白处填写正确答案。[填空题]64.如果一个特定的类型S当且仅当它提供了类型T的行为时,则称类型S是类型T的__。答案:子类型解析:[填空题]65.类的继承是指子类继承基类的_______和成员函数。答案:数据成员解析:[填空题]66.假定AA为一个类,a()为该类公有的函数成员,x为该类的一个对象,则访问x对象中函数成员a()的格式为()A)x.aB)x.a()C)x->aD)(*x).a()答案:B解析:[填空题]67.执行下列代码cout<<noshowpoint<<123.0;程序输出结果是______。答案:123解析:第4部分:判断题,共11题,请判断题目是否正确。[判断题]68.类是抽象的,不占用内存空间;对象是具体的,要占用内存空间。()A)正确B)错误答案:对解析:[判断题]69.()不能在类型转换函数前指定函数类型。A)正确B)错误答案:对解析:[判断题]70.希尔排序一趟排序结束后不一定能够选出一个元素放在其最终位置上A)正确B)错误答案:对解析:[判断题]71.()C++语言中定义类时可以定义多个构造函数。A)正确B)错误答案:对解析:[判断题]72.()含有纯虚函数的类一定是抽象类。A)正确B)错误答案:对解析:[判断题]73.有序表(12,18,24,35,47,50,62,83,90,115,134)使用二分法查找90时,需2次查找成功A)正确B)错误答案:对解析:[判断题]74.单链表能在O(1)时间内访问线性表的第i个元素的结构A)正确B)错误答案:错解析:[判断题]75.()C++语言中,在类的内部,先定义的成员函数可以访问后定义的数据成员。A)正确B)错误答案:对解析:[判断题]76.常量指针的值不能被改变答案:对解析:[判断题]77.二叉树的遍历只是为了在应用中找到一种线性次序。A)正确B)错误答案:对解析:[判断题]78.()以下两个函数原型等价:Floatfun(intA,floatB,char*c);Floatfun(int,float,char*);A)正确B)错误答案:对解析:第5部分:问答题,共20题,请在空白处填写正确答案。[问答题]79.一个类的构造函数和析构函数什么时候被调用,是否需要手工调用?答案:构造函数在创建类对象的时候被自动调用,析构函数在类对象生命期结束时,由系统自动调用解析:[问答题]80.数据库的原子性的解释正确的是?A)原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚B)原子性是指事务包含的所有操作一定全部成功答案:A解析:[问答题]81.完成程序题:请按空格顺序填写答案。使程序运行结果为:C1assAClassB1/1文字题#include<iostream.h>#include<string.h>classA{public:virtualvoidGetA()=0;};classB:publicA{private:charstr[32];public:voidGetA(){cout<<″ClassA″<<endl;}constchar*GetB(){___________________}B(char*s){strcpy(str,s);}};voidmain(){A*a;Bb(″ClassB″);a=______________;a->GetA();cout<<b.GetB()<<endl;return;}答案:returnstr;|&b解析:在主函数main中,a->GetA();类对象的指针可以通过?->?运算符访问对象的成员。调用GetA()函数,输出ClassAcout<<b.GetB()<<endl;通过调用GetB()函数,这个函数的作用是返回传入的字符串,即第1空:returnstr;,故输出ClassB[问答题]82.classpoint{public:voidshow(){cout<<?point?<<endl;}};voidmain(){pointp1;point*p;p=&p1;______________//通过对象p1访问show函数_____________//通过指针p访问show函数}答案:p1.show()|p->show()解析:[问答题]83.简述全局变量的优缺点?答案:全局变量也称为外部变量,它是在函数外部定义的变量,它属于一个源程序文件,它保存上一次被修改后的值,便于数据共享,但不方便管理,易引起意想不到的错误。解析:[问答题]84.输入三个整数a,b,c,求最大值答案:略解析:[问答题]85.怎样定义一个纯虚函数?含有纯虚函数的类称为什么?答案:在虚函数的后面加=0,含有虚函数的类称为抽象类。解析:[问答题]86.求一元二次方程ax2+bx+c=0的根,其中系数a,b,c为实数,由键盘输入。要求使用异常机制。答案:当a为0时,则该方程不是一元二次方程,而是一元一次方程。当⊿<0时,方程无实根。程序应当能够捕获这两种异常。在设计程序时应在这两种情况发生时抛出异常,并能够捕获所抛出的异常并对不同异常做出相应的处理。参考程序如下:#include<iostream.h>#include<math.h>voidRoot(doublea,doubleb,doublec){doublex1,x2,delta;delta=b*b-4*a*c;if(a==0)throw"dividebyzero";if(delta<0)throw0;x1=(-b+sqrt(delta))/(2*a);x2=(-b-sqrt(delta))/(2*a);cout<<"x1="<<x1<<endl<<"x2="<<x2<<endl;}intmain(){doublea,b,c;cout<<"pleaseintputa,b,c=?";cin>>a>>b>>c;try{Root(a,b,c);}catch(char*){cout<<"Exceptoccurred:itisnotaquadraticequation."<<endl;}catch(int){cout<<"Exceptoccurred:therealrootofthisequationdoesnotexist."<<endl;}return0;}解析:[问答题]87.C++语言源程序文件的扩展名为__()__。答案:cpp解析:[问答题]88.在C++中,判断一个逻辑量是否为?真?时,采取的标准是:如果其值是0就认为是?假?,如果其值是___()___就认为是?真?。答案:非0解析:[问答题]89.答案:#include<iostream.h>intmain(){doublee=1.0;doublex=1.0;inti=1;while(x>=1.0e-7){x=x/i;e=e+x;i=i+1;}cout<<"e="<<e<<endl;return0;}解析:[问答题]90.完成程序题:请按试题顺序和空格顺序填写答案。1/1文字题定义平面上一个点的类point,有双精度型私有数据成员横坐标x和纵坐标y,公有成员函数又写入函数input()、求原点距离函数distance()和显示函数show(),请完成point()的类图。答案:doublex,y|voiddistance(){}解析:面向对象方法中的类,是对具有相同属性和行为的同一类对象的抽象描述,其内部包括属性(本类的成员变量)和行为(本类的成员函数)两个主要部分。double双精度浮点型根据题目要求定义变量doublex,y,定义函数voiddistance(){}。[问答题]91.C++语言中??与?*/?间的内容是不被编译的,这句话是()。答案:正确的解析:[问答题]92.写出每趟循环时循环变量i,循环体中执行①②后sum,i的值sum=0;i=1;while(i<=5){sum=sum+i;//①i++;//②}答案:(写出每趟循环时循环变量i,循环体中执行①②后sum,i的值i=1时,1<=5为真,第1次执行循环体:sum=0+1=1,i=2i=2时,2<=5为真,第2次执行循环体:sum=1+2=3,i=3i=3时,3<=5为真,第3次执行循环体:sum=3+3=6,i=4i=4时,4<=5为真,第4次执行循环体:sum=6+4=10,i=5i=5时,5<=5为真,第5次执行循环体:sum=10+5=15,i=6)解析:[问答题]93.运行下列程序的结果为________________。#include<iostream.h>voidtestfun(inttest){try{if(test)throwtest;elsethrow"itisazero";}catch(inti){cout<<"Exceptoccurred:"<<i<<endl;}catch(constchar*s){cout<<"Exceptoccurred:"<<s<<endl;}}intmain(){testfun(10);testfun(100);testfun(0);return0;}答案:本题主要考查对异常处理过程的理解。主函数第一次调用testfun函数时传递参数10,10不等于0,所以执行抛出异常语句throw10;10为int型,所以被catch(inti)捕获,所以输出Exceptoccu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 租车协议合同范本示例
- 真心相待的夫妻保证书
- 简单隐私保护合同协议样本
- 规范文本偷钱保证书范例
- 建筑劳务分包安全管理协议
- 精确市场调研制作合同
- 绿化项目招标答疑
- 软件开发合同协议范本示例
- 零售店长工作合同
- 补充合同格式范本
- 支气管动脉造影护理
- 2024年度建筑工程有限公司股权转让合同3篇
- 校园春季安全
- 2024-2025学年度上学期九年级十二月联考英语试卷
- 2024年债权投资协议6篇
- 2024-2025学年北师大版八年级数学上册期末综合测试卷(含答案)
- 2024广州租房合同范本
- 菏泽学院中外教育史(高起专)复习题
- 分数的初步认识(单元测试)-2024-2025学年三年级上册数学期末复习 人教版
- AI服务器BOM表解密报告
- 广东省梅州市2023-2024学年高一上学期期末考试 生物 含解析
评论
0/150
提交评论