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

下载本文档

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

文档简介

试卷科目:C++开发基础C++开发基础(习题卷15)PAGE"pagenumber"pagenumber/SECTIONPAGES"numberofpages"numberofpagesC++开发基础第1部分:单项选择题,共59题,每题只有一个正确答案,多选或少选均不得分。[单选题]1.IO流中ostream继承于()类A)ostreamB)iosC)ifstreamD)iostream答案:B解析:[单选题]2.将一个递归算法转换为非递归算法,通常需要借用的数据结构是()A)栈B)队列C)线性表D)链表答案:A解析:[单选题]3.常量是在程序中()。A)经常被使用的量B)最高级的量C)按固定周期使用的量D)按固定值使用的量答案:D解析:[单选题]4.对于顺序存储的线性表,访问结点和增加、删除结点的时间复杂度为()A)O(n)O(n)B)O(n)O(1)C)O(1)O(n)D)O(1)O(1)答案:C解析:[单选题]5.已知inta[10],则对a数组元素的正确引用是()A)a[10]B)a[3.5]C)a(5)D)a[0]答案:D解析:[单选题]6.下列有关函数定义和调用的叙述中,错误的是________。A)一个函数必须定义后才能使用B)在一个函数体内可以定义另一个函数C)用户定义的函数可以被一个和多个函数调用任意多次D)一般要求在函数调用时,实参的个数和类型必须与形参的个数和类型一致答案:B解析:[单选题]7.执行下列程序后,输出结果是()。#include<iostream>Usingnamespacestd;Voidf(intx){if(x){cout.put(?0?+x%10);f(x/10);}}Intmain(){f(11001);return0;}A)11001B)10001C)11100D)10011答案:D解析:[单选题]8.用希尔排序方法对一个数据序列进行排序时,若第1趟排序结果为9,1,4,13,7,8,20,23,15,则该趟排序采用的增量(间隔)可能是()A)2B)3C)4D)5答案:B解析:[单选题]9.下列表达方式正确的是()。A)classP{public:intx=15;voidshow(){cout<<x;}B)classP{public:intx;voidshow(){cout<<x;}C)classP{intf;};f=25;D)classP{public:inta;voidSeta(intx){a=x;};答案:D解析:[单选题]10.设有说明语句:inta=1,b=2;floatx=3,y=4;以下赋值中存在语法错误的是________。A)a=++x;B)y=++b;C)b++=x++;D)b+=x+++y++答案:C解析:[单选题]11.执+264:291行下列代码,程序的输出结果是:()coutA)ffB)hex:ffC)Hex:ffD)f答案:C解析:[单选题]12.有如下函数调用语句:Fun(para1,para2+para3,(para4,para5));该函数调用语句中,含有的实参个数是()。A)3B)4C)5D)有语法错答案:A解析:[单选题]13.已知inti=3;下面do_while语句执行时循环次数为()。do{i--;cout<<i<<endl;}while(i!=1);A)1B)2C)3D)无限答案:B解析:[单选题]14.内联函数的特点是()A)减少代码量,加快访问速度B)减少代码量,减缓访问速度C)增加代码量,减缓访问速度D)增加代码量,加快访问速度答案:A解析:[单选题]15.以下哪种类型是C++比C语言新增的数据类型A)整型(int)B)布尔类型(bool)C)指针类型(*)D)字符类型(char)答案:B解析:[单选题]16.定义了指向常量的指针p的选项是()A)constint*p;B)int*p;C)int*constp=&x;D)constint*constp=&x;答案:A解析:const修饰指针变量时:如果唯一的const位于符号*的左侧,表示指针所指数据是常量,数据不能通过本指针改变,但可以通过其他方式进行修改;指针本身是变量,可以指向其他的内存单元。本题中,?指向常量的指针p?,表示指针所指数据是常量,故唯一的const位于符号*的左侧,选A。注意:如果唯一的const位于符号*的右侧,表示指针本身是常量,不能让该指针指向其他内存地址;指针所指的数据可以通过本指针进行修改。在符号*的左右各有一个const时,表示指针和指针所指数据都是常量,既不能让指针指向其他地址,也不能通过指针修改所指向的内容。[单选题]17.设a为5,执行下列语句后,b的值不为2的是_____。A)b=a/2B)b=6-(--a)C)b=a%2D)b=a>3?2:1答案:C解析:[单选题]18.假设类X以类Y作为它的一个基类,并且X类的名字func()支配Y类的名字func(),obj为类X的对象,则obj.func()语句实现的功能为()。A)先执行类X的func(),再执行访问类Y的func()B)先执行类Y的func(),再执行访问类X的func()C)执行类X的func()D)执行类Y的func()答案:C解析:[单选题]19.一棵完全二叉树上有1001个结点,其中叶子结点的个数是A)250B)500C)254D)501答案:D解析:[单选题]20.已知二叉树后序遍历序列是bfegcda,中序遍历序列是badefcg,它的前序遍历序列是:A)abcdefgB)abdcefgC)adbcfegD)abecdfg答案:B解析:[单选题]21.对于表达式boolx=5;inta=x==5;变量a的值为()。A)1B)0C)5D)false答案:B解析:[单选题]22.()能正确输出结果:C++。A)chars[]="C++";cout<<s<<endlB)chars[3]="C++";cout<<s<<endlC)chars[3]={'C','+','+','\0'};cout<<s<<endlD)chars[3]={'C','+','+'};cout<<s<<endl答案:A解析:[单选题]23.在面向对象方法中,不属于?对象?基本特点的是()。A)一致性B)分类性C)多态性D)标识唯一性答案:A解析:[单选题]24.在C++中,运行时的多态性是通过下列哪项技术实现:A)函数重载B)运算符重载C)模板D)虚函数答案:D解析:[单选题]25.定义新类是通过什么实现的()。A)信息隐藏B)数据封装C)继承机制D)数据抽象答案:C解析:[单选题]26.在VC中,若定义一个函数的返回类型为void,以下叙述正确的是()。A)函数返回值需要强类型转换B)函数不执行任何操作C)函数本身没有返回值D)函数不能修改实际参数的值答案:C解析:[单选题]27.关于二维数组a[3][4],以下说法正确的是()。A)&a[i]和a[i]是完全相同的,表示元素a[i]B)&a[i]和a[i]数值完全相同,表示数组a第i行的首地址C)a[0]和a[0][0]数值是相同的D)该二维数组共有4行3列共12个元素答案:B解析:[单选题]28.在下面存储类中,()的对象不是局部变量。A)外部静态类B)自动类C)函数形参D)寄存器类答案:A解析:[单选题]29.下面对友员的错误叙述是()。A)关键字friend用于声明友员B)一个类中的成员函数可以是另一个类的友员C)友员函数访问对象的成员不受访问特性影响D)友员函数通过this指针访问对象成员答案:D解析:[单选题]30.要定义整型数组x,使之包括初值为0的三个元素,下列语句中错误的是()。A)intx[3]={0,0,0};B)intx[]={0};C)staticintx[3]={0};D)intx[]={0,0,0};答案:B解析:[单选题]31.有一?遗传?关系,设x是y的父亲,则x可以把它的属性遗传给y,表示该遗传关系最适合的数据结构是A)链表B)栈C)队列D)树答案:D解析:[单选题]32.有关多态性说法不正确的是()A)C++语言的多态性分为编译时的多态性和运行时的多态性B)编译时的多态性可通过函数重载实现C)运行时的多态性可通过模板和虚函数实现D)实现运行时多态性的机制称为动态多态性答案:C解析:[单选题]33.两个类型相同的指针不能进行的运算是________。A)+B)-C)==D)=答案:A解析:[单选题]34.已知类X中的一个成员函数说明如下:voidSet(X&a),其中X&a的含义是()。A)指向X的指针为aB)将a的地址赋值给变量SetC)a是类X的对象引用,用来作为Set()的形参D)变量X与a按位相与作为函数Set()的形参答案:C解析:[单选题]35.执行完下列语句段后,i值为:()intf(intx){return((x>0)x*f(x-1):2);}inti;i=f(f(1));A)2B)4C)8D)无限递归答案:B解析:[单选题]36.已知一个二叉树的后序遍历的结果为AEFDHZMG,那么它的中序遍历可能为A)ADEFHMGZB)ADEFGHMZC)GDAEFMHZD)GDAFEMHZ答案:B解析:[单选题]37.已知类Base和类Derived的定义如下:classBase{intn;public:Base(intd):n(d){}};classDerived:publicBase{public:_____________________________};其中横线处应为类Derived的构造函数的定义。在下列构造函数的定义中,正确的是________。A)Derived(intx){Base(x);}B)Derived(intx):Base(x){}C)Derived(intx){n=x;}D)Derived(intx):n(x){}答案:B解析:[单选题]38.在intb[][3]={{1},{3,2},{4,5,6},{0}};b[2][2]的值是()。A)0B)2C)5D)6答案:D解析:[单选题]39.在C++中,实现封装性需借助于()。A)枚举B)类C)数组D)函数答案:B解析:[单选题]40.已知一程序运行后执行的第一个输出操作是Cout<<setw(10)<<setfill('*')<<1234;则此操作的输出结果是()。A)1234B)******1234C)*********1234D)1234******答案:B解析:[单选题]41.已知有结构体类型及变量定义:structstudent{charnum[20];intage;}stud1,*p;p=&stud1;下列对结构体变量stud1的成员age的非法引用是________。A)stud1.ageB)student.ageC)p->ageD)(*p).age答案:B解析:[单选题]42.关于类的静态成员的不正确描述是()。A)静态成员不属于某个对象,是类的共享成员B)静态数据成员要在类外定义和初始化C)静态成员函数不拥有this指针,需要通过类参数访问对象成员D)只有静态成员函数可以操作静态数据成员答案:D解析:[单选题]43.下列选项中,不属于C++程序开发步骤的是________。A)编辑B)编译C)解释D)连接答案:C解析:[单选题]44.C++语言对C语言做了很多改进,C++语言相对于C语言的最根本的变化是()A)增加了一些新的运算符B)允许函数重载,并允许设置缺省参数C)规定函数说明符必须用原型D)引进了类和对象的概念答案:D解析:C++是混合型语言,所以可以使用C++编译器所提供的对象,设计出更好的、面向过程的软件系统。C++语言对C语言做了很多改进,C++语言相对于C语言的最根本的变化是引进了类和对象的概念。[单选题]45.文件流的说法正确的是A)输出文件流是从外存文件流向内存的数据B)输入文件流是从内存流向外存文件的数据C)每一个文件流都有一个内存缓冲区与之对应D)以上说法都正确答案:C解析:[单选题]46.判断字符变量c的值是否是小写字母的表达式为()。A)'a'<=c<='z'B)'a'<c||c<='z'C)'a'<=c&&c<='z'D)'a'<c&&c<'z'答案:C解析:[单选题]47.要禁止修改指针p本身,又要禁止修改p所指向的数据,这样的指针应定义为()A)constchar*p=?ABCD?;B)char*constp=?ABCD?;C)charconst*p=?ABCD?;D)constchar*constp=?ABCD?;答案:D解析:[单选题]48.在类外定义成员函数时,需要在函数名前加上()A)对象名B)类名C)类名和作用域运算符D)作用域运算符答案:C解析:[单选题]49.有如下程序intmain(){inty=3,x=3,z=1;cout<<(++x,y++)<A)34B)42C)43D)33答案:D解析:[单选题]50.常量4.2、4.2f、4L的数据类型分别是________。A)float、float、longB)double、double、floatC)double、float、longD)float、float、double答案:C解析:[单选题]51.设intx=2,y=4,z=7;则执行x=y--<=x||x+y!=z后x,y的值分别为________。A)0,3B)1,3C)2,3D)2,4答案:B解析:[单选题]52.一个结点的直接前驱称为该结点的()A)孩子结点B)双亲结点C)兄弟结点D)子孙结点答案:B解析:[单选题]53.采用函数重载的目的在于A)实现共享B)节约空间C)提高速度D)使用方便,提高可靠性答案:D解析:C++函数重载的作用:1.多个函数共用一个名字,减少对用户的复杂性。2.函数重载是指在同一作用域内,可以有一组具有相同函数名,不同参数列表的函数,这组函数被称为重载函数。重载函数通常用来命名一组功能相似的函数,这样做减少了函数名的数量,避免了名字空间的污染,对于程序的可读性有很大的好处。3.类的构造函数跟类名相同,也就是说:构造函数都同名。如果没有函数重载机制,要想实例化不同的对象,那是相当的麻烦![单选题]54.设char*s1,*s2;分别指向两个字符串,判断字符串s1是否大于字符串s2的表达式为()。A)s1>s2B)strcmp(s1,s2)==0C)strcmp(s1,s2)>0D)strcmp(s2,s1)>0答案:C解析:[单选题]55.有如下类定义classSample{intx,y;public:Sample():x(0),y(0){}intgetX(){returnx;}intgetY();}obj;已知成员函数getY()的功能是返回私有成员y的值,则该函数在类体外的正确定义是________。A)Sample::intgetY(){returny;}B)intgetY(){returny;}C)intgetY(){returnSample::y;}D)intSample::getY(){returny;}答案:D解析:[单选题]56.函数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解析:名称相同,参数个数相同,参数类型相同,无法重载。[单选题]57.实现两个相同类型数加法的函数模板的声明是()A)add(Tx,Ty)B)Tadd(x,y)C)Tadd(Tx,y)D)Tadd(Tx,Ty)答案:D解析:第2部分:多项选择题,共6题,每题至少两个正确答案,多选或少选均不得分。[多选题]58.假设定义一个结构体指针:structstu{inta;}*ps;则以下成员调用正确的是()。A)ps.aB)ps->aC)*ps.aD)(*ps).a答案:BD解析:[多选题]59.以下关于哈希表的说法正确的是()。A)哈希表是有序存储的B)哈希表中存储了元素和与之一一对应的关键字C)在哈希表中查询元素可以根据元素对应的关键字查找D)哈希表中删除1个元素需要同时删除元素和元素对应的关键字答案:BCD解析:[多选题]60.以下关于函数重载的说法正确的是()。A)重载函数都是同名函数B)函数重载可以通过返回值不同来实现C)函数重载可以通过参数类型不同来实现D)函数重载可以通过参数顺序不同来实现答案:ACD解析:[多选题]61.关于输出流对象的说法正确的是A)cout标准输出B)cerr标准错误输出C)clog类似于cerr,而clog中的信息存放在缓冲区中,缓冲区满后或遇endl时向显示器输出D)以上说法都正确答案:ABCD解析:[多选题]62.有向图邻接矩阵的特性A)对于顶点vi,第i行的非0元素的个数是其出度OD(vi);第i列的非0元素的个数是其入度ID(vi)。B)邻接矩阵中非0元素的个数就是图的弧的数目。C)邻接矩阵中0元素的个数就是图的弧的数目D)对于顶点vi,第i行的非0元素的个数是其入度OD(vi);第i列的非0元素的个数是其出度ID(vi)。答案:AB解析:[多选题]63.数据结构学习中对于算法的描述下面说法正确的是A)算法原地工作的含义是指不需要任何额外的辅助空间B)在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2^n)的算法C)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界D)同一个算法,实现语言的级别越高,执行效率就越低答案:BCD解析:第3部分:填空题,共4题,请在空白处填写正确答案。[填空题]64.控制格式输入输出的操作中,函数___是用来设置填充字符。要求给出函数名和参数类型答案:setfill(char)解析:[填空题]65.当不需要函数返回任何值时,则应把该函数类型定义为()。答案:void解析:[填空题]66.如果成员函数不需要访问类的_______成员,则可以把它声明为静态成员函数。答案:非静态解析:[填空题]67.下列程序段的输出结果是___。cout.setf(ios::showpos);cout<<509.3<<endl;答案:+509.3解析:第4部分:判断题,共11题,请判断题目是否正确。[判断题]68.在类的定义中,必须包含private、public、protected三种存取方式对应的部分。答案:错解析:[判断题]69.顺序存储方式只能用于存储线性结构。A)正确B)错误答案:错解析:[判断题]70.数据元素是数据的最小单位。A)正确B)错误答案:错解析:[判断题]71.在数据结构中,线性结构是针对数据元素一对一的关系A)正确B)错误答案:对解析:[判断题]72.哈夫曼算法用于构造最优二叉树答案:对解析:[判断题]73.私有继承中,基类中所有成员对派生类的对象都是不可见的答案:错解析:[判断题]74.强制类型转换可以改变1个变量的答案:错解析:[判断题]75.若干棵互不相交的树的集合被称为森林答案:对解析:[判断题]76.在传值调用中,要求实参和形参的类型完全一致并且个数相等。答案:错解析:[判断题]77.在顺序表中进行顺序搜索时,若各元素的搜索概率不等,则各元素应按照搜索概率的降序排列存放,则可得到最小的平均搜索长度。A)正确B)错误答案:对解析:[判断题]78.goto语句可以指向一段代码中的任意行。答案:对解析:第5部分:问答题,共20题,请在空白处填写正确答案。[问答题]79.要求输出国际象棋棋盘。答案:1.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。2.程序源代码:#include?stdio.h?#include?conio.h?main(){inti,j;for(i=0;i<8;i++){for(j=0;j<8;j++)if((i+j)%2==0)printf(?%c%c?,219,219);elseprintf(??);printf(?\n?);}getch();}解析:[问答题]80.下列程序的输出结果是________。#includeusingnamespacestd;longfib(intg){switch(g){case0:return0;case1:case2:return1;}return(fib(g-1)+fib(g-2));}intmain(){longk;k=fib(5);cout答案:5解析:[问答题]81.运行下列程序结果为()。#include<iostream.h>#include<iomanip.h>voidmain(){inta=12;doubleb=314159.26;cout<<a<<endl;cout.setf(ios::oct|ios::showbase);cout<<a<<endl;cout.precision(8);cout<<-b<<endl;cout.setf(ios::scientific|ios::uppercase|ios::left);cout.width(20);cout.fill('*');cout<<-b<<endl;cout.width(20);cout.setf(ios::internal);cout<<-b<<endl;cout.precision(6);cout.fill('');cout.unsetf(ios::scientific|ios::uppercase|ios::left|ios::internal);}答案:本题主要考查用ios类的成员函数进行格式控制的使用方法。参见本章重点与难点部分的介绍。本题答案为:12014-314159.26-314159.260E+005****-****3.14159260E+005解析:[问答题]82.设有定义:inta=6,b=3,c=9,d=2;则表达式a<b?d:c<d?b:a的值是_()____。答案:6解析:[问答题]83.简述C++编译程序会自动为类提供的成员函数包括哪几种。答案:默认的构造函数;默认的析构函数;默认的拷贝构造函数;默认的赋值运算符函数。解析:[问答题]84.请编写一个函数voidfun(char*tt,intpp[]),统计在tt字符串中"a"到"z"26个字母各自出现的次数,并依次放在pp所指数组中。例如,当输入字符串abcdefgabcdeabc后,程序的输出结果应该是:33322110000000000000000000答案:#include<conio.h>#include<stdio.h>voidfun(char*tt,intpp[]){inti;for(i=0;i<26;i++)pp[i]=0;for(i=0;tt[i]!='\0';i++){switch(tt[i]){case'a':pp[0]++;break;case'b':pp[1]++;break;case'c':pp[2]++;break;case'd':pp[3]++;break;case'e':pp[4]++;break;case'f':pp[5]++;break;case'g':pp[6]++;break;case'h':pp[7]++;break;case'i':pp[8]++;break;case'j':pp[9]++;break;case'k':pp[10]++;break;case'l':pp[11]++;break;case'm':pp[12]++;break;case'n':pp[13]++;break;case'o':pp[14]++;break;case'p':pp[15]++;break;case'q':pp[16]++;break;case'r':pp[17]++;break;case's':pp[18]++;break;case't':pp[19]++;break;case'u':pp[20]++;break;case'v':pp[21]++;break;case'w':pp[22]++;break;case'x':pp[23]++;break;case'y':pp[24]++;break;case'z':pp[25]++;break;}}}voidmain(){charaa[1000];intbb[26],k,n;clrscr();printf("\nPleaseenteracharstring:");scanf("%s",aa);fun(aa,bb);for(k=0;k<26;k++)printf("%d",bb[k]);printf("\n");}解析:[问答题]85.有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?答案:1.程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道第四人的岁数,依次类推,推到第一人(10岁),再往回推。2.程序源代码:#include?stdio.h?#include?conio.h?age(n)intn;{intc;if(n==1)c=10;elsec=age(n-1)+2;return?;}main(){printf(?%d?,age(5));getch();}解析:[问答题]86.OOA中使用____映射问题域中的事物。答案:对象解析:Object-OrientedAnalysis(面向对象分析方法)是确定需求或者业务的角度,按照面向对象的思想来分析业务[问答题]87.用*号输出字母C的图案。答案:1.程序分析:可先用?*?号在纸上写出字母C,再分行输出。2.程序源代码:#include?stdio.h?#include?conio.h?main(){printf(?HelloC-world!\n?);printf(?****\n?);printf(?*\n?);printf(?*\n?);printf(?****\n?);getch();}解析:[问答题]88.11月为30天,闰年的2月有29天,不是闰年则2月为28天。因为每月的天数有多种可能,我们选择用switch语句解决本题。程序流程是首先输入要判断的年月,然后判断该年月应有多少天,最后输出结果。答案:#include<iostream.h>voidmain(){intyear,month,days,leap;cout<<"请输入年月:";cin>>year>>month;switch(month){case1:case3:case5:case7:case8:case10:case12:days=31;break;case4:case6:case9:case11:days=30;break;case2:if(year%400==0)leap=1;elseif(year%4==0&&year%100!=0)leap=1;elseleap=0;if(leap)days=29;elsedays=28;}cout<<year<<"年"<<month<<"月的天数为:"<<days<<endl;}解析:[问答题]89.类对象一般都包括数据成员和答案:成员函数解析:类中定义的数据和函数称为这个类的成员(数据成员和成员函数)。因此类对象一般都包括数据成员和成员函数。[问答题]90.windows消息系统由哪几部分构成?答案:由一下3部分组成:1.消息队列:操作系统负责为进程维护一个消息队列,程序运行时不断从该消息队列中获取消息、处理消息;2.消息循环:应用程序通过消息循环不断获取消息、处理消息。3.消息处理:消息循环负责将消息派发到相

温馨提示

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

评论

0/150

提交评论