C++开发基础(习题卷20)_第1页
C++开发基础(习题卷20)_第2页
C++开发基础(习题卷20)_第3页
C++开发基础(习题卷20)_第4页
C++开发基础(习题卷20)_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

试卷科目:C++开发基础C++开发基础(习题卷20)PAGE"pagenumber"pagenumber/SECTIONPAGES"numberofpages"numberofpagesC++开发基础第1部分:单项选择题,共59题,每题只有一个正确答案,多选或少选均不得分。[单选题]1.若有以下的定义:inta=100,*p=&a;,则下列选项中,表述错误的是()A)声明变量p,其中*表示p是一个指针变量B)变量p经初始化,获得变量a的地址C)变量p只可以指向一个整型变量D)变量p的值为100答案:D解析:指针p指向整型变量a,p中保存a的地址,而不是值100。p指向的地址中的值是100。故D错误。注意:地址与地址中的值不要混淆。[单选题]2.若有以下程序段,intc1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是________。A)0B)0.5C)1D)2答案:A解析:[单选题]3.具有5个顶点的无向完全图有几条边A)6B)8C)10D)20答案:C解析:[单选题]4.C++语言中规定函数的返回值的类型是由()。A)return语句中的表达式类型所决定B)调用该函数时的主调用函数类型所决定C)调用该函数时系统临时决定D)在定义该函数时多指定的数据类型所决定答案:D解析:[单选题]5.如果类A被说明成类B的友元,则()。A)类A的成员即类B的成员。B)类B的成员即类A的成员。C)类A的成员函数不得访问类B的成员。D)类B不一定是类A的友元。答案:D解析:[单选题]6.下列运算符中优先级最低的是()。A)++B)=C)()D)%答案:B解析:[单选题]7.在c++中,类之间的继承关系具有()。A)自反性B)对称性C)传递性D)反对称性答案:C解析:[单选题]8.对于下面的变量charw;intx;floaty;doublez;则表达式w*x+z-y值的数据类型为()A)floatB)charC)intD)double答案:D解析:double表达能力最高[单选题]9.一个二叉树有N个度为2的节点,求叶节点的数目为多少A)N-1B)NC)N+1D)N+2答案:C解析:[单选题]10.设某二叉树的前序序列为ABC,中序序列CBA,则该二叉树的后序序列为A)CABB)CBAC)ABCD)BCA答案:B解析:[单选题]11.线性表是具有n个()的有限序列A)数据项B)数据元素C)表元素D)字符答案:B解析:[单选题]12.有以下程序#include<iostream.h>voidmain(){char*p[10]={"abc","aabdfg","dcdbe","abbd","cd"};cout<<p[3]<<endl;}执行后输出结果是A)dcdbeB)abbdC)abcD)abb答案:B解析:[单选题]13.关于构造函数,以下说法正确的是()。A)构造函数在对象被创建时,自动被调用B)构造函数需要程序员显式的调用C)构造函数不能被重载D)构造函数都是无参函数答案:A解析:[单选题]14.在inta=3,*p=&a;中,*p的值是()A)变量a的地址值B)无意义C)变量p的地址值D)3答案:D解析:指针p指向整型变量a,p中保存a的地址,而不是a中的值3。而*p表示地址中的值,即为3。地址与地址中的值不要混淆。[单选题]15.图的存储复杂表现在A)图中顶点度一致会浪费很多存储单元B)任意顶点之间不存在联系C)图中顶点的度不一样,有的可能相差很大,若按度数最大的顶点设计结构,则会浪费很多存储单元D)以上都不对答案:C解析:[单选题]16.设A、B、C三个字符按先后顺序依次进栈且出栈顺序随意;下面哪个序列为不可能的出栈序列()。A)ABCB)ACBC)BACD)CAB答案:D解析:[单选题]17.设栈S和队列Q的初始状态均为空,元素a,b,c,d,e,f,g依次进入栈S。若每个元素出栈后立即进入队列Q,且7个元素出队的顺序是b,d,c,f,e,a,g,则栈S的容量至少是A)1B)2C)3D)4答案:C解析:[单选题]18.下列关于C++语言类的描述中错误的是()。A)类用于描述事物的属性和对事物的操作B)类与类之间通过封装而具有明确的独立性C)类与类之间必须是平等的关系,而不能组成层次结构D)类与类之间可以通过一些方法进行通信和联络答案:C解析:[单选题]19.以下关于构造函数和析构函数的说法,错误的是()。A)析构函数中调用虚函数采用静态联编B)对虚析构函数的调用可以采用动态联编C)当基类的析构函数是虚函数时,其派生类的析构函数一定时虚函数D)构造函数可以声明为虚函数答案:D解析:[单选题]20.下列哪个不属于C++的预定义的流对象()。A)iostreamB)cinC)cerrD)clog答案:A解析:[单选题]21.对classpoint,如使用point*ptr=newpoint[2];创建对象数组,则删除此数组使用的语句是()A)deleteptr[2];B)delete[]ptr;C)deleteptr[];D)delete[2]ptr;答案:B解析:当delete释放动态对象数组时,必须告诉这个动态对象数组有几个元素对象,C++使用?[]?来实现,即delete[]ptr;。[单选题]22.下面对构造函数的不正确描述是()。A)系统提供默认的构造函数B)构造函数可以有参数,所以也可以有返回值C)构造函数可以重载D)构造函数可以设置默认参数答案:B解析:[单选题]23.字符串a1="AEIJING",a2="AEI",a3="AEFANG",a4="AEFI"中最大的是A)a1B)a2C)a3D)a4答案:A解析:[单选题]24.[派生类的析构函数]下列程序的输出是:#include<iostream>Usingnamespacestd;ClassA{Public:~A(){cout<<"A~";}};ClassB:publicA{Public:~B(){cout<<"B~";}};Intmain(){Bb1;return0;}A)B~B)A~B~C)B~A~D)无输出答案:C解析:[单选题]25.已知:intm=10;下列表示引用的方法中,______是正确的。A)int&x=m;B)int&y=10;C)int&z;D)float&t=&m;答案:A解析:[单选题]26.假设Aclass为抽象类,下列正确的说明语句是()。A)Aclassfun(int);B)Aclass*p;C)intfun(Aclass);D)AclassObj;答案:B解析:[单选题]27.下面描述是哪个排序算法的特点:在进行一趟排序结束后,不一定能够选出一个元素放在其最终位置上A)冒泡排序B)快速排序C)希尔排序D)以上说法都正确答案:C解析:[单选题]28.如果在一个源文件中定义的函数,只能被本文件中的函数调用,而不能被同一程序其它文件中的函数调用,则说明这个函数为:()A)私有函数B)内部函数C)外部函数D)库函数答案:B解析:[单选题]29.已知A是基类、B是派生类,并有语句:Aa,*pa=&a;Bb,*pb=&b;则下列正确的语句是________。A)pb=pa;B)b=a;C)a=b;D)*pb=*pa;答案:C解析:[单选题]30.对n个数字进行排序,其中两两不同的数字的个数为k,n远远大于k,而n的取值区间长度超过了内存的大小,时间复杂度最小可以是A)O(nlogk)B)O(nk)C)O(n)D)O(nlogn)答案:C解析:[单选题]31.以下关于this指针的描述正确的是()。A)this指针指向的是1个类B)this指针指向的是1个类对象C)this指针必须在类中显式的实现后才能使用D)可以通过类的对象名来调用this指针答案:B解析:[单选题]32.成员函数可声明为静态的,条件是它不访问()类成员。A)静态B)常数C)非静态D)公共答案:C解析:[单选题]33.若有以下函数首部,则下面针对此函数的函数声明语句中正确的是________。intfun(doublex[10],int*n)A)intfun(doublex,int*n);B)intfun(doublex,intn);C)intfun(double*,int*);D)intfun(double*,int&);答案:C解析:[单选题]34.cout功能正确的是A)标准输入B)标准输出C)标准打开D)标准关闭答案:B解析:[单选题]35.下列有关二维数组的定义中,正确的是________。A)inta[4][]={{1,2},{3,4}};B)inta[][2]={{1,2,3},{2,3,4}};C)inta[2][3];D)inta[][2];答案:C解析:[单选题]36.将数组inta[4]={1,2,3,4};的元素全部输出,下列语句正确的是()。A)cout<<a;B)cout<<a[4];C)for(inti=0;i<=4;i++)cout<<a[i];D)for(inti=0;i<4;i++)cout<<a[i];答案:D解析:[单选题]37.以下程序的运行结果是()。#include<iostream>Usingnamespacestd;Intmain(){intx=1;switch(x){case1:++x;case0:--x;default:x+=7;}cout<<x<<endl;return0;}A)2B)1C)7D)8答案:D解析:[单选题]38.已知定义int*p[3],则以下说法正确的是()。A)定义了1个int类型的指针变量,该变量具有3个指针B)定义了1个指针数组,该数组有3个元素,每个元素都是int类型的指针变量C)定义了1个名为*p的int类型数组,该数组含有3个int类型的变量D)定义了1个指向一维数组的指针变量p,该一维数组有3个int类型的元素答案:B解析:[单选题]39.istream&get(char&ch);功能是A)读入一个字符并把它存储在chB)输出一个字符并把它存储在chC)把它存储在ch的字符输出D)读入一个字符串答案:A解析:[单选题]40.链表可以带表头结点,也可以不带表头结点,前者最主要的好处是A)加快表的遍历B)使空表和非空表的处理统一C)节省存储空间D)提高存取元素的速度答案:B解析:[单选题]41.下列符号中不属于C++关键字的是()。A)byteB)friendC)namespaceD)continue答案:A解析:[单选题]42.执行语句序列intn;cin>>n;switch(n){case1:case2:cout<<'1';case3:case4:Cout<<'2';break;default:cout<<'3';}时,若键盘输入1,则屏幕显示()A)12B)1C)2D)3答案:A解析:[单选题]43.下列关于派生类构造函数和析构函数的说法中,错误的是()A)派生类的构造函数会隐含调用基类的构造函数B)如果基类中没有缺省构造函数,那么派生类必须定义构造函数C)在建立派生类对象时,先调用基类的构造函数,再调用派生类的构造函数D)在销毁派生类对象时,先调用基类的析构函数,再调用派生类的析构函数答案:D解析:[单选题]44.关于子类型的描述中,()是错的。A)子类型就是指派生类是基类的子类型B)一种类型当它至少提供了另一种类型的行为,则这种类型是另一种类型的子类型C)在公有继承下,派生类是基类的子类型D)子类型关系是不可逆的答案:A解析:[单选题]45.已知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解析:[单选题]46.在一非空二叉树的中序遍历序列中,根结点的右边A)只有右子树上的所有结点B)只有右子树上的部分结点C)只有左子树上的部分结点D)只有左子树上的所有结点答案:A解析:[单选题]47.数据结构中,对于希尔排序的组内排序采用的方式是。A)冒泡排序B)折半插入排序C)快速排序D)以上都不对答案:D解析:[单选题]48.C++的预处理命令在程序中都是以什么符号开头的A)*B)#C)&D)@答案:B解析:[单选题]49.以下字符数组的初始化后不能将s看作字符串处理的是________。A)chars[5]={'A','B','\0','D','E'};B)chars[5]={'A','B','C','D'};C)chars[5]={'A','B','C','D','E'};D)chars[5]=?ABCD?;答案:C解析:[单选题]50.下列函数原型声明中,错误的是________。A)intfun(intm,intn);B)intfun(int,int);C)intfun(intm=3,intn);D)intfun(int&m,int&n);答案:C解析:[单选题]51.某函数申明如下:voidFunc(int&nVal1);有inta,下面使用正确的为()A)Func(a)B)Func(&a)C)Func(*a)D)Func(&(*a))答案:A解析:[单选题]52.已知类A的父类是类B和类C,则正确的语法格式为()。A)ApublicB;ApublicC;B)A:publicB;A:publicC;C)ApublicB,C;D)A:publicB,publicC;答案:D解析:[单选题]53.在C++语言中,main函数默认返回一个()类型的值。A)intB)floatC)charD)void答案:A解析:[单选题]54.下列有关C++函数的描述中,正确的是________。A)函数的定义可以嵌套,但函数的调用不可以嵌套B)函数的定义不可以嵌套,但函数的调用可以嵌套C)函数的定义和函数的调用均不可以嵌套D)函数的定义和函数的调用均可以嵌套答案:B解析:[单选题]55.下列代码,循环了多少次intk=2000;while(k>1){k=k>>1;}A)10B)11C)12D)20答案:A解析:>>是位移符号。可以理解为每次除以2.从k=2000直到k=1,共需10次位移操作[单选题]56.有以下函数定义:Voidfun(intn,doublex){…}若以下选项中的变量都已经正确定义且赋值,则对函数fun的正确调用语句是()。A)fun(inty,doublem);B)k=fun(10,12.5);C)fun(x,n);D)voidfun(n,x);答案:C解析:[单选题]57.下列的各类函数中,()不是类的成员函数。A)构造函数B)析构函数C)友元函数D)拷贝初始化构造函数答案:C解析:第2部分:多项选择题,共6题,每题至少两个正确答案,多选或少选均不得分。[多选题]58.下列选项中能构成折半查找中关键字比较序列的是A)500200450180B)500450200180C)180500200450D)180200500450答案:BCD解析:[多选题]59.对一个算法的评价,包括如下()方面的内容A)可读性B)并行性C)正确性D)空间复杂度答案:ACD解析:[多选题]60.要想删除1个链表中的节点,必须的操作包括:()A)判断该节点是否是头节点B)删除该节点C)将前1节点的指针指向被删除节点的后1节点D)将被删除节点的指针设为空答案:ABC解析:[多选题]61.已知int型变量a,执行语句a=?A?+1.6;则以下说法正确的有()。A)变量a为int型B)变量a为浮点型C)程序会出现编译错误D)a的值是字符?A?的ASCII值加上1答案:AD解析:[多选题]62.树的结点描述正确的是下列哪些A)树有且仅有一个特定的结点称为根B)树有且仅有一个特定的结点称为叶子C)一个结点的直接后继称为该结点的孩子结点D)一个结点的直接后继称为该结点的兄弟结点答案:AC解析:[多选题]63.设一条单链表的头指针变量为head且该链表没有头结点,则不能其判空条件是()A)head==0B)head->next==0C)head->next==headD)head!=0答案:BCD解析:第3部分:填空题,共4题,请在空白处填写正确答案。[填空题]64.不同对象可以调用相同名称的函数,但执行完全不同行为的现象称为___。答案:多态性解析:[填空题]65.适宜采用inline定义函数情况是()A)函数体含有循环语句B)函数体含有递归语句C)函数代码少、频繁调用D)函数代码多、不常调用答案:C解析:[填空题]66.假设类X的对象x是类Y的成员对象,则?YObj?语句执行时,先调用类___的构造函数。答案:X解析:[填空题]67.由const修饰的对象称为___。答案:常对象解析:第4部分:判断题,共11题,请判断题目是否正确。[判断题]68.内部排序方法的稳定性是指该排序算法不允许有相同的关键字记录。A)正确B)错误答案:错解析:[判断题]69.clog功能是标准错误输入A)正确B)错误答案:错解析:[判断题]70.C++语言中,包含字符串常用函数的类文件是string.h答案:对解析:[判断题]71.树结构研究数据元素一对多的关系A)正确B)错误答案:对解析:[判断题]72.在一个类的对象空间里不包含静态成员的空间。答案:对解析:[判断题]73.链表中的头结点仅起到标识的作用。A)正确B)错误答案:错解析:[判断题]74.用途不同,堆栈用于子程调用和保护现场,队列用于多道作业处理、指令寄存及其他运算等等A)正确B)错误答案:对解析:[判断题]75.在公有和保护继承方式下,派生类的成员可以对基类的保护成员进行访问。答案:错解析:[判断题]76.对象数组的元素可以是不同类的对象答案:对解析:[判断题]77.运行以下程序后a的值为2:inta=1;if(a==1);a=2答案:对解析:[判断题]78.数据结构中,图结构研究的是数据元素一对多的关系A)正确B)错误答案:错解析:第5部分:问答题,共20题,请在空白处填写正确答案。[问答题]79.在C++类中可以包含_____、______和三种具有不同访问控制权的成员。答案:共有public|私有private|保护protected解析:[问答题]80.以下程序的运行结果为)。#include<iostream>Usingnamespacestd;Inta{5};Intmain(){{inta{2};cout<<::a;cout<<a;}cout<<a<<endl;return0;}答案:525;解析:在局部变量的作用域内引用同名全局变量加::[问答题]81.对于定义int*f()中,标识符f代表的是()。(a)一个指向函数的指针(b)一个指针型函数,该函数返回值为指针(c)一个指向整型数据的指针(d)一个指向数组的指针答案:本题主要考查对指针函数和函数指针的理解。这里定义的是指针型函数,也就是说这个函数的返回值是指针。所以答案为:b解析:[问答题]82.什么时候必须重写拷贝构造函数?答案:当构造函数涉及到动态存储分配空间时,要自己写拷贝构造函数,并且要深拷贝。解析:[问答题]83.C++语言源程序经__1__后生成后缀为obj的目标程序。(填空题)答案:编译;解析:[问答题]84.编写一个函数converse,将一维数组中的数逆序存放,不允许使用辅助数组。主函数输入原始数据,调用converse,实现逆置。并将原数组和逆置后的数组输出答案:packagemoreEasy;importjava.util.Scanner;publicclassThe8th{publicstaticvoidmain(String[]args){converse();}publicstaticvoidconverse(){int[]ar=newint[10];Scannercin=newScanner(System.in);for(inti=0;i<ar.length;i++){ar[i]=cin.nextInt();//if(ar[i]==-1)//break;}for(intj=0;j<ar.length;j++){System.out.print(ar[j]);}System.out.println("");for(inti=0;i<ar.length/2;i++){inta=ar[ar.length-i-1];ar[ar.length-i-1]=ar[i];ar[i]=a;}for(intj=0;j<ar.length;j++){System.out.print(ar[j]);}}}解析:[问答题]85.static函数与普通函数有什么区别?答案:static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝解析:[问答题]86.C++中一般的程序都要有两条语句,包含头文件?#include<iostream>?语句和使用命名空间?___?语句。答案:usingnamespacestd;解析:using语句引用其他命名空间的标识符的语法格式有两种形式:using命名空间名::标识符;usingnamespace命名空间名;[问答题]87.什么是面向对象程序设计?答案:面向对象程序设计是一种程序设计泛型,这种泛型的主要特征是:程序=对象+消息。面向对象程序的基本元素是对象,面向对象程序的主要结构特点是:第一,程序一般由类的定义和类的使用两部分组成;第二,程序中的一切操作都是通过向对象发送消息来实现的,对象接收到消息后,启动有关方法完成相应的操作。解析:[问答题]88.假定AB为一个类,该类中含有一个指向动态数组空间的指针成员pa,则在该类的析构函数中应该包含有一条语句。答案:delete[]pa解析:[问答题]89.定义友元函数时形参通常定义为_________。答案:引用对象解析:[问答题]90.C++中,可以嵌入到主调函数中的函数称为()。答案:内联函数;内嵌函数;内置函数;解析:[问答题]91.运行下列程序结果为__________________。#include<iostream.h>classObj{staticinti;public:Obj(){i++;}~Obj(){i--;}staticintgetVal(){returni;}};intObj::i=0;voidf(){Objob2;cout<<ob2.getVal();}intmain(){Objob1;f();Obj*ob3=newObj;cout<<ob3->getVal();deleteob3;cout<<Obj::getVal();return0;}答案:本题主要考查对静态数据成员的理解。在主函数中创建对象ob1则调用该类的构造函数,使得静态数据成员加1,为1;接着调用函数f(),在函数中创建对象ob2,这时再次调用构造函数,使得静态成员的值为2,ob2.getVal()返回静态数据成员i的值,即输出2。函数f()结束,则ob2的生存期结束,自动调用其析构函数使静态数据成员i的值变为1。接着在主函数中用new运算符动态分配存储空间,又一次调用构造函数使i加1,所以再次输出时i的值为2。最后用delete释放ob3所指的对象空间,则会调用析构函数使i的值减1,因此输出i的值为1。本题答案为:221解析:[问答题]92.以下哪个GCC编译环境下的链接器A)ldB)link答案:A解析:[问答题]93.在头文件中进行类的声明,在对应的实现文件中进行类的定义有什么意义?答案:这样可以提高编译效率,因为分开的话只需要编译一次生成对应的文件后,.ob再j次应用该类的地方,这个类就不会被再次编译,从而大大的提高了编译效率解析:[问答题]94.VC++2010中,为类型float数据分配()个字节。double数据分配()个字节。答案:4|8解析:[问答题]95.下列声明常

温馨提示

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

评论

0/150

提交评论