国家二级(C++)笔试模拟试卷12(共441题)_第1页
国家二级(C++)笔试模拟试卷12(共441题)_第2页
国家二级(C++)笔试模拟试卷12(共441题)_第3页
国家二级(C++)笔试模拟试卷12(共441题)_第4页
国家二级(C++)笔试模拟试卷12(共441题)_第5页
已阅读5页,还剩93页未读 继续免费阅读

下载本文档

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

文档简介

国家二级(C++)笔试模拟试卷12(共9套)(共441题)国家二级(C++)笔试模拟试卷第1套一、公共基础选择题(本题共10题,每题1.0分,共10分。)1、某算法的空间花费s(n)=100nlog2n+0.5logn+1000n+2000,其空间复杂度为______.A、0(1)B、0(n)C、0(n1.5)D、0(nlog2n)标准答案:8知识点解析:暂无解析2、栈和队列______.A、共同之处在于二者都是先进先出的特殊的线性表B、共同之处在于二者都是先进后出的特殊的线性表C、共同之处在于二者都只允许在顶端执行删除操作D、没有共同之处标准答案:4知识点解析:暂无解析3、若深度为5的完全二叉树的第5层有3个叶结点,则该二叉树一共有______个结点A、15B、16C、17D、18标准答案:8知识点解析:暂无解析4、结构程序设计的3种结构是______.A、顺序结构、选择结构,转移结构B、分支结构,等价结构、循环结构C、多分支结构、赋值结构、等价结构D、顺序结构.选择结构、循环结构标准答案:8知识点解析:暂无解析5、下面______机制允许对一个函数名给出多个函数定义A、封装性B、继承性C、函数重载D、多态性标准答案:8知识点解析:暂无解析6、“软件危机”产生的主要原因是______.A、软件日益庞大B、开发方法不当C、开发人员编写程序能力差D、没有维护好软件标准答案:1知识点解析:暂无解析7、分层DFD图是一种比较严格又易于理解的描绘方式,它的顶层图的作用在于______。A、描绘了系统的实现细节B、表明了被开发系统的范围以及它和周围环境的数据交换关系C、描绘了系统的抽象D、描绘了软件实现的作者和绘制的时间标准答案:2知识点解析:暂无解析8、数据库逻辑设计阶段分为______。A、收集和分析、建立E—R模型、数据库模式设计B、模型设计和应用程序设计C、概念设计、逻辑设计、物理设计D、设计、建立E—R模型和模式设计标准答案:2知识点解析:暂无解析9、当将E-R模型转换为关系模型时,对于两实体间m:n联系,必须对“联系”单独建立______,用来联系双方实体。A、一个实体B、一个属性C、一个指针D、一个关系标准答案:8知识点解析:暂无解析10、用二维表来表示实体及实体之间联系的数据模型称为______。A、实体—联系模型B、层次模型C、网状模型D、关系模型标准答案:8知识点解析:暂无解析二、选择题(本题共25题,每题1.0分,共25分。)11、下列变量名中,______是合法的。A、CHINAB、byte-sizeC、doubleD、A+a标准答案:1知识点解析:B中不该有“-”字符,C为保留字,D中“+”,字符不合法。12、下列各种函数中,______不是类的成员函数。A、构造函数B、析构函数C、友元函数D、拷贝构造函数标准答案:4知识点解析:构造函数、析构函数和拷贝构造函数都是类的成员函数。13、下列______是正确的语句。A、;B、a=17C、x+yD、cout<<“\n”标准答案:1知识点解析:BCD都没有语句结束符。14、循环while(inti=0)i--;执行的次数是______。A、0B、1C、5D、无限标准答案:1知识点解析:由于i=0,条件为false,所以不会去执行i--。15、设intf(int);和intg(int);是函数f和g的原形,以下将f作为语句调用的是______。A、g(f(3))B、f(g(3));C、g(f(3)+2);D、p=f(g(3)+1);标准答案:8知识点解析:p=f(g(3)+1):函数f被作为一个语句调用。16、设inta[4];int*p=a,则sizeof(p)和sizeof(a)的值分别是______。A、4和4B、16和4C、16和16D、4和16标准答案:8知识点解析:a为数组,所以sizeof(a)为16。17、设intx:,则经过______后,语句*px=0;可将x值置为0。A、int*px;B、intconst*px=&x;C、int*constpx=&x:D、constint*px=&x;标准答案:2知识点解析:因为*p1=a:所以a必然为指针类型,p2=*b,*b为指针类型,而b必然是指向指针的指针,a和b的类型分别是int*和int**。18、设voidf1(int*m,long&n);inta:longb;则以下调用合法的是______。A、f1(a,b);B、f1(&a,b);C、f1(a,&b);D、f1(&a,&b);标准答案:2知识点解析:如果调用合法,则只有B满足两个参数为指针和引用的条件。19、以下结构类型可用来构造链表的是______。A、streetaa{inta;int*b;};B、structbb{inta;bb*b;};C、structcc{int*a;ccb;};D、structdd{int*a;aab;};标准答案:2知识点解析:如果要构造链表,则必须有指向下一个结点的指针。20、使用操作符setw对数据进行格式输出时,需要包含______头文件。A、iostream.hB、fstream.hC、iomanip.hD、stdlib.h标准答案:4知识点解析:使用操作符setw对数据进行格式输出时,必须包含iomanip.h头文件。21、在每个c++程序中必须包含这样一个函数,该函数的函数名为______。A、mainB、MAINC、nameD、function标准答案:1知识点解析:每个C++程序必须包含一个主函数main。22、设x和y均为bool量,则x&&y为真的条件是______。A、其中一个为假B、其中一个为真C、二者均为假D、二者均为真标准答案:2知识点解析:x&&y为真的条件是其中一个为真。23、假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址大______。A、1B、2C、4D、8标准答案:8知识点解析:一个float型数据占的字节为4位。24、设x和y均为bool量,则x||Y为假的条件是______。A、二者均为真B、二者均为假C、其中一个为真D、其中一个为假标准答案:2知识点解析:x||y为假的条件是二者均为假。25、下列不属于算法的基本特征的是______。A、可行性B、确定性C、有穷性D、无限性标准答案:8知识点解析:可行性、确定性和有穷性是算法的基本特征。26、关于链式存储结构和顺序存储结构的说法正确的是______。A、链式存储结构比顺序存储结构更优越B、顺序存储结构比链式存储结构更优越C、顺序存储结构所占空间可以不连续D、链式存储结构比顺序存储结构更易删除其中的元素。标准答案:8知识点解析:链式存储结构比顺序存储结构更易删除其中的元素。27、按照“后进后出”原则组织数据的数据结构是______。A、队列B、栈C、双向链表D、二叉树标准答案:1知识点解析:队列是按照“后进后出”原则组织数据的数据结构。28、不属于结构化程序设计方法的四条原则是______。A、自顶向下B、对象化C、模块化D、逐步求精标准答案:2知识点解析:对象化属于面向对象设计的方法。29、结构化程序设计主要强调的是______。A、程序的规模B、程序的易读性C、程序的执行效率D、程序的可移植性标准答案:2知识点解析:程序的易读性是结构化程序设计强调的主要特征。30、在面向对象方法中,一个对象请求另一对象为其服务的方式是通过发送______。A、调用语句B、命令C、口令D、消息标准答案:8知识点解析:一个对象请求另一对象为其服务的方式是发送消息调用。31、长度为n的简单插入排序法,最坏情况需要______次比较。A、nB、n(n-1)C、n(n-1)/2D、n-1标准答案:4知识点解析:简单插入排序法,最坏情况需要n(n-1)/2次比较。32、计算机软件是______。A、程序B、数据C、文档D、程序、数据及相关文档的完整集合标准答案:8知识点解析:计算机软件是包括程序、数据及相关文档的完整集合。33、软件测试过程一般按4个步骤进行:单元测试、集成测试、验收测试(确认测试)和系统测试。在程序编码阶段进行的测试通常是______。A、单元测试B、集成测试C、验收测试(确认测试)D、系统测试标准答案:1知识点解析:单元测试(模块测试),针对每个模块进行的测试,可从程序的内部结构出发设计测试用例,多个模块可以平行地对立地测试,通常在编码阶段进行。34、在数据流图(DFD)中,带有名字的箭头表示______。A、控制程序的执行顺序B、模块之间的调用关系C、数据的流向D、程序的组成成分标准答案:4知识点解析:在数据流图(DFD)中,带有名字的箭头表示数据的流向。35、用户的数据视图,也就是用户所见到的数据模式,是______。A、概念模式B、外模式C、内模式D、物理模式标准答案:2知识点解析:概念模式是数据库系统中全局数据逻辑结构的描述,是全体用户公共数据视图;外模式,也称子模式与用户模式,是用户的数据视图,也就是用户所见到的数据模式:内模式,又称物理模式,它给出了数据库物理存储结构与物理存取方法。三、公共基础填空题(本题共5题,每题1.0分,共5分。)36、某二叉树中度为2的结点有18个,则该二叉树中有【】个叶子结点。标准答案:19知识点解析:叶子结点是最末端的结点。37、在面向对象方法中,类的实例称为【】。标准答案:对象知识点解析:面向对象的相关概念。38、诊断和改正程序中错误的工作通常称为【】。标准答案:调试或者程序调试或者软件调试或者Debug或者调试程序或者调试软件知识点解析:调试的相关内容。39、在关系数据库中,把数据表示成二维表,每一个二维表称为【】。标准答案:关系或者关系表知识点解析:关系数据库的相关概念。40、问题处理方案的正确而完整的描述称为【】。标准答案:算法或者程序或者流程图知识点解析:算法,程序的相关内容。四、填空题(本题共7题,每题1.0分,共7分。)41、具有相同函数名不同参数表的函数称为【】。标准答案:重载函数知识点解析:重载函数的定义。42、在类中定义和实现的函数称为【】。标准答案:内联函数知识点解析:在类中定义和实现的函数称为内联函数。43、若把类B定义为类A的友元类,则应在类A中加入定义语句【】。标准答案:friendclassB;知识点解析:若把类B定义为类A的友元类,则应在类A中加入的定义语句为friendclassB;。44、重载的流运算符函数经常定义为类的【】函数。标准答案:友元知识点解析:参见友元函数的定义。45、在C++中,包含了处理用户控制的文件操作所需的信息是指头文件中的【】。标准答案:fstream.h知识点解析:在C++中,头文件fstream.h中包含了处理用户控制的文件操作所需的信息。46、下面的类中定义了一个枚举类型,请完成下面的程序。classBase{public:enumWeek{Sum,Mon,Tue,Wed,Thu,Fri,Sat};Weeka;}voidfun(Base&B){【】=【】;//将对象的a赋值为所定义的枚举类型值为的枚举量}标准答案:b.a,Tue知识点解析:b.a取对象的成员变量Tue在枚举中变量为2的是Tue47、以下程序中,select函数的功能是:在N行M列的二维数组中,选出一个最大值作为函数值返回,并通过形参传回此最大值所在的行下标。请填空。#defineN3#defineM3intselect(inta[N][M],int&n){inti,j,row=1,colum=1;for(i=0;i<N;i++)for(j=0;j<M;j++)if(a[i][j]>a[row][colum]){row=i;colum=j;}n=【】;return【】;}main(){inta[N][M]={9,11,23,6,1,15,9,17,20},max,n;max=select(a,【】);printf("max=%d,line=%d\n",max,n);}标准答案:row,a[row][colum],n知识点解析:row记录行下标a[row][colum]返回最大值。n引用调用时传变量名五、填空题(含2小题)(本题共1题,每题1.0分,共1分。)48、下列函数的功能是判断字符串str是否对称,对称则返回true,否则返回false。请在横线处填上适当内容,实现该函数。boolfun(char*str){inti=0,j=0;while(str[j])【】;for(j--;i<j&&st[i]==str[j];i++,j--);returni【】j;}标准答案:i++;i>=i知识点解析:首先计算字符串的长度,然后开始判断i是否大于等于j,如果是则说明是可以逆转的。国家二级(C++)笔试模拟试卷第2套一、公共基础选择题(本题共10题,每题1.0分,共10分。)1、下列数据结构中,按先进后出原则组织数据的是A、线性链表B、栈C、循环链表D、顺序表标准答案:2知识点解析:栈是限定在一端进行插入与删除的线性表。在栈中,允许插入与删除的一端称为栈顶,而不允许插入与删除的另一端称为栈底。栈顶元素总是最后被插入的元素,从而也是最先能被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素,即栈是按照“先进后出”或“后进先出”的原则组织数据的。注意:队列组织数据的原则是“先进先出”或“后进后出”。注意:数据结构中,栈和队列组织数据的原则。2、具有3个结点的二叉树有A、2种形态B、4种形态C、7种形态D、5种形态标准答案:8知识点解析:具有3个结点的二叉树具有以下的几种形态:注意:二叉树的结构及画法。3、设有下列二叉树:对此二叉树前序遍历的结果为A、ZBTYCPXAB、ATBZXCYPC、ZBTACYXPD、ATBZXCPY标准答案:2知识点解析:所谓二叉树的前序遍历(DLR)是指在访问根结点、遍历左子树与遍历右子树这3者中,首先访问根结点,然后遍历左子树,最后遍历右子树,并且,在遍历左右子树时,上述规则同样适用,即“根-左-右”。故该二叉树的前序遍历结果为“ATBZXCYP”。注意:对于本题,若使用后序遍历和中序遍历的结果分别为“ZBTYCPXA”和“TZBACYXP”。4、结构化程序设计主要强调的是A、程序的规模B、程序的效率C、程序设计语言的先进性D、程序易读性标准答案:8知识点解析:注意:结构化的程序设计的目的。5、程序的3种基本控制结构是A、过程、子过程和分程序B、顺序、选择和重复C、递归、堆栈和队列D、调用、返回和转移标准答案:2知识点解析:采用结构化程序设计方法编写程序,可使程序结构良好、易读、易理解、易维护,它包括3种基本控制结构,分别是顺序结构、选择结构和重复结构(又称循环结构)。注意:控制程序结构的方法和作用。6、下列叙述中,不属于测试的特征的是A、测试的挑剔性B、完全测试的不可能性C、测试的可靠性D、测试的经济性标准答案:4知识点解析:软件测试的目标是在精心控制的环境下执行程序,以发现程序中的错误,给出程序可靠性的鉴定。它有3个方面的重要特征,即测试的挑剔性、完全测试的不可能性及测试的经济性。其中没有测试的可靠性这一说法。注意:软件测试与软件调试的概念,以及相应的方法。7、需求分析中开发人员要从用户那里了解A、软件做什么B、用户使用界面C、输入的信息D、软件的规模标准答案:1知识点解析:需求分析是软件定义时期的最后一个阶段,它的基本任务就是准确回答“系统必须做什么”这个问题即软件系统功能,需求分析的任务还不是确定系统怎样完成它的工作,而仅仅是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。8、下列关系模型中,能使经运算后得到的新关系中属性个数多于原来关系中属性个数的是A、选择B、连接C、投影D、并标准答案:2知识点解析:关系代数中包括传统的集合运算和专门的关系运算。经过选择或投影运算得到的新关系的属性个数最多不会超过原关系中的属性个数。经过连接运算得到的新关系最多不少于原关系中属性的个数。9、下列叙述中,正确的是A、用E-R图能够表示实体集间一对一的联系、一对多的联系和多对多的联系B、用E-R图只能表示实体集之间一对一的联系C、用E-R图只能表示实体集之间一对多的联系D、用E-R图表示的概念数据模型只能转换为关系数据模型标准答案:4知识点解析:两个实体之间的联系实际上是实体集间的函数关系,这种函数关系可以有下面几种,即一对一的联系、一对多(或多对一)的联系和多对多的联系;概念模型便于向各种模型转换。由于概念模型不依赖于具体的数据库管理系统,因此,容易向关系模型、网状模型和层次模型等各种模型转换。10、“年龄在18-25之间”这种约束是属于数据库当中的A、原子性措施B、一致性措施C、完整性措施D、安全性措施标准答案:4知识点解析:数据库的完整性是指数据的正确性和相容性(如学生的学号必须惟一,性别只能是女或男等),数据库是否具备完整性关系到数据库系统能否真实反映现实世界,因此维护数据库的完整性是非常重要的。注意:数据库的各种特性及表达形式。二、选择题(本题共25题,每题1.0分,共25分。)11、以下哪个特征不是面向对象思想中的主要特征?A、多态B、继承C、封装D、垃圾回收标准答案:8知识点解析:面向对象语言的基本特性是封装,继承和多态。注意:垃圾回收是Java的主要特点。注意:要掌握面向对象的优点。12、以下哪个不是C++语言中的有效标识符?A、34aB、_ABC、A_BD、A25标准答案:1知识点解析:在C++语言中,标识符只能由数字,字母,下划线组成,并且第一个字符不能是数字。注意:选项A)是以数字开始的。注意:关键字不能用作标识符。13、C++中运算符优先级由高到低排列正确的是A、::+++||B、<*||,C、sizeof%+::D、,&&newsizeof标准答案:1知识点解析:运算符的优先级是::最高,其次是【】,(),等,然后是++,--,再低还有->*,*,+,<<,>>,=。注意:逗号的优先级最低。14、下面程序的运行结果是#include"iostream.h"#definesum(a,b)a*bvoidmain(){intx;x=sam(1+2,3);cout<<x;}A、0B、9C、7D、5标准答案:4知识点解析:理解宏定义,sum(a,b)o*b中a为1+2,b为3,故sum(1+2,3):1+2*3,即宏定义的替换过程是原样替换。注意:选项B)的计算方法足(1+2)*3=9是错误的,注意,不要随意的加括号。注意:宏定义与函数的区别。15、以下for语句中不是死循环的是A、for(inti=0;i<1;++i;B、for(inti=0;;++i;C、for(inti=1;i>0;++i;D、for(;;);标准答案:1知识点解析:for循环的一般格式为for(初始化部分;终止条件判断部分;迭代部分){循环体;}说明如下:for循环开始时,首先执行初始化操作,然后判断终止条件是否满足,如果满足,则执行循环体中的语句,最后执行迭代部分。完成一次循环后,重新判断终止条件。注意:在for语句中,如果省略了终止条件判断部分,并且在语句中没有break,或者是终止条件判断部分始终没有终止,都将出现死循环。注意:for循环语句可由while循环语句来代替。16、关于continue语句叙述不正确的是A、continue语句用于循环体中,结束循环B、continue语句用于循环体中,它使执行流跳出循环体中尚未执行的语句,并进行下一循环判断C、continue可以用于if语句中D、continue语句不能代替break语句标准答案:1知识点解析:continue是跳出了本次循环中尚未执行的语句,重新执行循环,但没有终止循环。注意:注意break,continue和goto语句的用法和区别。17、以下定义数组中错误的是A、inta[10];B、inta[2][20];C、inta[20][];D、inta[];标准答案:4知识点解析:二维数面的二维不能省略。注意:数组的下标是从零开始的。18、下面程序的执行结果是#include"iostream.h"voidmain(){int*p,r;p=newin;*p=20;r=sizeof(*p);cout<<r<<end1;deletep;}A、程序错误B、内存为20地址的大小.C、20D、4标准答案:8知识点解析:理解sizeof的用法,它可以运算出各种数据类型所占内存空间的多少。注意:选项C)中是指针p所指向的内存地址中内容是20。注意:在用完申请后的内存应立刻释放。19、下面程序错误的语句是#include"iostream.h"①voidmain()②{③intA=0;④int&B;⑤B=A;⑥cout<<B;⑦cout<<A;⑧}A、②B、③C、④D、⑥标准答案:4知识点解析:引用必须在第一时间进行赋值,int&B没有在第一时间赋值故错误。注意:引用的方式,引用和指针应用的比较。20、下列程序的输出结果是#include"iostream"usingnamespacestd;intMax(inta,intb){if(a>b)elsereturna;elseretumb;}voidmain(){intm,n;m=10,n=5;intmax=Max(m,n);cout<<max<<endA、10B、程序有误C、1D、0标准答案:1知识点解析:本题函数Max的功能是求出两个整数中的较大者,并且通return语句返回。注意:retum语句的用法,注意return的条件。21、函数inttest(inta,intb=1,intc:0),下列调用不合法的个数是test(0);test(0,0);test();test(0,0,0);A、0B、1C、2D、3标准答案:4知识点解析:如果一个函数中有多个参数,则默认参数应从右到左逐个定义。注意:选项C)没有给a传递任何的参数,所以是错误的。注意:函数含有默认参数时的调用方式。22、C++语言中类定义中默认的访问权限是A、publicB、protectedC、pfivateD、default标准答案:4知识点解析:lC++语言中类定义中默认的类的访问权限是private。注意:C++语言中没有default权限。注意:结构体默认的访问权限是public,注意它们之间的区别。23、C++语言中关于构造函数的说法正确的是A、构造函数的函数名不必和类名相同B、构造函数只能每一个C、每个类必定有构造函数D、构造函数必有返回值标准答案:4知识点解析:构造函数的函数名必须和类名相同;构造函数可以有一个,也可以有多个;构造函数没有返回值。注意:构造函数可以被重载。24、关于构造函数A()的拷贝构造函数正确的是A、A(A*B);B、A(AB);C、A(A&B)D、A(A);标准答案:4知识点解析:固定的一种拷贝方式就是<类名>:<类名>const<类名>&<引用对象名>注意:如果一个类中没有声明,拷贝构造函数,编译器会自动生成一个如上述形成的仅有的拷贝构造函数。25、下面程序的执行结果为#include"iostream"usingnamespacestd;classA{inta;public:voidSeta(intx){a=x;}voidDisplay_a(){cout<<a<<end1;}};classB{intb;public:voidSetb(intx){b=x;}voidDA、输出为223B、有错误在第5行C、输出为123D、有错误在第7行标准答案:8知识点解析:pnvate继承不能调用Display_b函数,public继承可以调用基类中非pfivate成员。注意:类的继承方式public,protected和private的区别。26、虚函数必须是类的A、成员函数B、友元函数C、构造函数D、析构函数标准答案:1知识点解析:虚函数只能是类的成员函数,不能是构造函数或析构函数。注意:虚函数可以是另一个类的友元函数。27、多态性指的是A、以任何方式调用一个虚函数B、以任何方式调用一个纯虚函数C、借助于指向对象的基类指针或引用调用一个虚函数D、借助于指向对象的基类指针或引用调用一个纯虚函数标准答案:4知识点解析:多态性主要是指借助于指向对象的基类指针或引用调用一个虚函数。注意:注意多态和重载的关系和应用。28、不能重载的运算符是A、newB、sizeofC、.*D、++标准答案:4知识点解析:C++语言规定.*运算符是不能被重载的。注意:还有.,->*,::,?:这几个运算符不能重载。29、只能作为成员函数重载的是A、=B、++C、*D、new标准答案:1知识点解析:C++语言规定“=”运算符只能作为成员函数重载。30、关于模板下列说法不正确的是A、用类模板定义一个对象时,不能省略实参B、类模板只能有虚拟类型参数C、类模板本身在编译中不会生成任何代码D、类模板的成员函数都是模板函数标准答案:2知识点解析:类模板可以有虚拟类型参数。注意:模板及其周边概念和模板的实现。31、语句cout<<setprecision(2)<<1024.4567;的输出结果为A、1024.4567B、1024C、1024.45D、le+003标准答案:8知识点解析:setprecision()函数为设置小数位数。注意:C++中I/o流各种函数的使用例如:setw(),settill()。32、下面程序的结果为#include"iostream.h"voidchange(inta,intb){inttemp;temp=a;a=b;b=temp;}voidmain(){intm,n;m=8;n=9;change(m,n);tout<<m<<""<<n<<end1;}A、89B、98C、程序有错误D、99标准答案:1知识点解析:两数只在函数change内被使用,函数调用完后该内存被释放,因此没有交换两数。注意:交换两个数的方法简单说有两种一是使用指针,二是用引用。33、下面程序的结果是#include"iostream.h"voidmain(){char*str;Str="test!";cout<<str[5];}A、程序错误B、!C、’\0’D、为空字符标准答案:8知识点解析:’\0’输出为不显示,只代表一个字符串的结束。注意:C++语言中各种字符转义序列的意义和应用。34、下面程序输出的结果为#include"iostream.h"classA{public:A(){cout<<"CLASSA"<<end1;}~A(){}};classB:publicA{public:B(){cout<<"CLASSB"<<end1;}~B(){}};voidmain(){A*p;p=newB;B*q;A、CLASSACLASSBB、CLASSACLASSBCLASSBC、CLASSACLASSBCLASSACLASSBD、CLASSACLASSBCLASSBCLASSB标准答案:4知识点解析:每实例化一个类就要调用其构造函数,结束运行该实例后调用析构函数。注意:类的实例化和构造函数、析构函数的调用方式和何时调用。35、C++语言函数中不能由系统自动生成的是A、析构函数B、构造函数C、内联函数D、拷贝构造函数标准答案:4知识点解析:一个类中由系统自动生成的函数有构造函数,析构函数,拷贝构造函数。注意:内联函数只能由用户自己定义。注意:类能自动生成的函数,尤其注意构造函数和析构函数,还有拷贝构造函数。三、公共基础填空题(本题共5题,每题1.0分,共5分。)36、常用的黑箱测试有等价分类法、【】、因果图法和错误推测法4种。标准答案:边值分析法知识点解析:黑箱测试方法完全不考虑程序的内部结构和内部特征,而只是根据程序功能导出测试用例。常用的黑箱测试有等价分类法、边值分析法、因果图法和错误推测法4种。37、测试的目的是暴露错误,评价程序的可靠性;而【】的目的是发现错误的位置并改正错误。标准答案:调试知识点解析:软件测试的目标是在精心控制的环境下执行程序,以发现程序中的错误,给出程序可靠性的鉴定;调试也称排错,它是一个与测试有联系又有区别的概念。具体来说,测试的目的是暴露错误,评价程序的可靠性,而调试的目的是发现错误的位置,并改正错误。38、软件维护活动包括以下几类:改正性维护、适应性维护、【】维护和预防性维护。标准答案:完善性知识点解析:软件维护活动包括以下几类:改正性维护、适应性维护、完善性维护和预防性维护。改正性维护是指在软件交付使用后,为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程;适应性维护是指为了使软件适应变化,而去修改软件的过程;完善性维护是指为了满足用户对软件提出的新功能与性能要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性;预防性维护是为了提高软件的可维护性、可靠性等,为以后的进一步改进软件打下良好基础。39、在面向对象的设计中,用来请求对象执行某一处理或回答某些信息的要求称为【】。标准答案:消息知识点解析:在面向对象技术中,主要用到对象(object)、类(class)、方法(method)、消息(message)、继承(inheritance)、封装(encapsulation)等基本概念。其中消息是用来请求对象执行某一处理或回答某些信息的要求。40、关键字ASC和DESC分别表示【】的含义。标准答案:升序排列和降序排列知识点解析:ASC表示升序排列,DESC表示降序排列,多用在索引定义和SELECT语句中的ORDER子句中。四、填空题(本题共8题,每题1.0分,共8分。)41、C++语言中关键字运算符有new,delete和【】。标准答案:sizeof知识点解析:C++语言中关键字运算符有3个分别new,delete和sizeof。new是申请内存,delete是释放内存,sizeof是求字节数。42、将以下程序写成三目运算表达式是【】。if(a>B)max=a;elsemax=b;标准答案:max=(a>B?a:b;知识点解析:条件运算符要求有三个操作对象,称三目(元)运算符,它是C++语言中惟一的一个三目运算符。条件表达式的一般形式为:表达式1?表达式2:表达式3。所以我们可以写成(a>B?a:b,它是一个“条件表达式”。执行顺序是如果(a>B条件为真,则条件表达式取值a作为整个表达式的值,否则取值b作为整个表达式的值。43、以下程序的输出结果是【】。#include<iostream.h>classobject{private:intval;public:object();object(inti);~object();};object::object(){val=0;c标准答案:Constructorforobject6Constructorforobiect5ConstructorforcontainerDestructorforcontainerDestructorforobject5Destructorforobiect6知识点解析:C++语言中的构造函数和析构函数分别是在声明对象时和对象调用完毕后调用,本题中的调用就是这样成对出现的。44、请定义一个函数名为A,返回值为int,没有参数的纯虚函数的定义是【】。标准答案:virtualintA()=0;知识点解析:C++语言中的纯虚函数是一种特殊的函数,它没有自己的定义,只有声明,纯虚函数与虚函数声明的不同就在于在函数后面加上了“=0”。45、表达式x.operator+(y.operator++(0))还可以写成【】。标准答案:x+y++或x+(y++)知识点解析:因为y.operator++(0)是对成员y重载运算符,所以是成员重载,在参数表中又有一个参数,是重载后缀++,即是x+(y++)。46、假设fin是一个文件流对象,则关闭文件的语句是【】。标准答案:fin知识点解析:如果程序没有用close()主动关闭文件,则在文件流对象退出作用域时,被调用的析构函数会关闭对象所联系的文件。但应及时关闭,以便尽早释放占用的系统资源并将文件置于更安全的状态。47、下面程序的功能是将字符数组a中下标值为偶数的元素从小到大排列,其他元素不变,请填空。#include<iostream.h>#include<string.h>voidmain(){chara[]="clanguage",t;inti,j,k;k=strlen(a);for(i=0;i<=k-2;i+=2)for(j=i+2;j<=k;【】=if(【】){t=a[i];a[i]=a[j];a[j]=t;}cout<<a;cout<<end1;=标准答案:j+=2]a[i]>=a[j]或a[i]>a[j]知识点解析:strlen函数是测试字符串长度的函数,函数的值为字符串中的实际长度,不包括’\0’在内。48、静态成员函数可以直接访问类的【】成员,不能直接访问类的【】成员。标准答案:静态非静态知识点解析:静态成员函数可以直接访问该类中的静态数据成员,而不能访问该类中的非静态数据成员。国家二级(C++)笔试模拟试卷第3套一、公共基础选择题(本题共10题,每题1.0分,共10分。)1、下列选项中,不属于模块间耦合的是A、数据耦合B、同构耦合C、异构耦合D、公用耦合标准答案:C知识点解析:暂无解析2、有如下程序:#include<iostream>usingnamespaeestd;classPoint{public:staticintnumber;Point(){number++;}~Point(){number--;}};intPoint::number=0;voidmain(){Point*ptr;PointA,B;Point*ptr_point=newPoint[3];ptr=ptr_point;PointC;cout<<Point::number<<endl;delete[]ptr;}程序的输出结果是A)3B)4C)6D)7A、

B、

C、

D、

标准答案:C知识点解析:只有在创建对象时才会调用类的构造函数,在定义指针时不会调用构造函数,只有给指针new一个地址时会调用构造函数,所以本程序中一共生成了6个Point对象(A,B,C,newPoint[3])。number作为静态数据成员,被同一类的不同对象所共享,故结果为6。3、下列叙述正确的是()。A、算法的执行效率与数据的存储结构无关B、算法的空间复杂度是指算法程序中指令(或语句)的条数C、算法的有穷性是指算法必须能在执行有限个步骤之后终止D、以上3种描述都不对标准答案:C知识点解析:算法的执行效率与数据的存储结构密切相关。算法的空间复杂度是指算法执行过程中所需的存储空间。4、有如下程序:#include<iostream>usingnamespaeestd;classPair{intm;intn;public:Pair(inti,intj):m(i),n(j){}bootoperator>(pairP)const;//需在类体外给出定义};intmain(){Pairpl(3,4),p2(4,3),p3(4,5);cout<<(pl>p2)<<(p2>p1)<<(p2>p3)<<(p3>p2);retum0;}运算符函数operator>的功能是比较两个Pair对象的大小,当左边对象大时,返回true,否则返回false。比较规则是首先比较两对象的m成员,m大者为大;当m相等时比较n,n大者为大。程序输出0101,下列对运算符重载函数的正确定义是A、boolPair::operator>(PairP)eonstB、boolPair::operator>(PairP){if(m!=P.m)returnm>p.In;returnn>p.n;}{if(m!=P.m)returnm>p.m;returnn>p.n;}C、boolPair::operator>(PairP)eonstD、boolPair::operator>(PairP){if(m>p.m)returntrue;returnn>p.n;}{if(Ul>p.m)returntrue;returnn>p.n;}标准答案:C知识点解析:暂无解析5、有如下程序:#include<iostream>usingnamespacestd;classBase{protected:Base(){cout<<’Base’;}Base(charc){cout<<c;}};classDerived:publicBase{public:Derived(charc){cout<<c;}};intmain(){Derivedd(’Derived’);return0;}执行这个程序屏幕上将显示输出()。A、DerivedB、DerivedBaseC、BaseDerivedD、DerivedDerived标准答案:C知识点解析:派生类Derived由基类Base公有派生,在派生类构造函数声明时系统会自动调用基类的缺省构造函数。调用Derivedd(’Derived’);后,执行类Derived构造函数的Derived(charc),系统自动调用基类的缺省构造函数Base(),输出字母Base;再执行派生类的构造函数Derived(charc),输出字母Derived。6、有3个结点的二叉树有()。A、2种形态B、4种形态C、7种形态D、5种形态标准答案:D知识点解析:暂无解析7、语句ofstreamf("SALARY.DAT",ios_base::app)的功能是建立流对象f,并试图打开文件SALARY.DAT与f关联,而且A、若文件存在,则将其置为空文件;若文件不存在,则打开失败B、若文件存在,则将文件指针定位于文件尾;若文件不存在,则建立一个新文件C、若文件存在,则将文件指针定位于文件首;若文件不存在,则打开失败D、若文件存在,则打开失败;若文件不存在,则建立一个新文件标准答案:B知识点解析:ios_base::app所表示的文件打开方式为:如果文件存在则将文件指针指向文件尾,否则就建立一个新文件。8、当一个函数无返回值时,函数的类型应为()。A、任意B、voidC、intD、char标准答案:2知识点解析:暂无解析9、下列叙述中正确的是A、线性表是线性结构B、栈与队列是非线性结构C、线性链表是非线性结构D、二叉树是线性结构标准答案:1知识点解析:线性表是一种线性结构,数据元素在线性表中的位置只取决于它们自己的序号,即数据元素之间的相对位置是线性的;栈、队列、线性链表实际上也是线性表,故也是线性结构;树是一种简单的非线性结构。10、不定长文件是指()。A、文件的长度不固定B、记录的长度不固定C、字段的长度不固定D、关键字项的长度不固定标准答案:B知识点解析:不定长文件是指记录的长度不固定。二、选择题(本题共25题,每题1.0分,共25分。)11、for(intx=0,y=0;!x&&y<=5;y++)语句执行循环的次数是A、0B、5C、6D、无数次标准答案:C知识点解析:本题考核for循环语句。题中x=0,则!x永远为真,对于条件表达式“!x&&y<=5”只考虑“y<=5”,由于每次循环y都增加1,而且y从。开始到5。所以可知总共循环了6次。12、设有以下语句,对a数组元素的引用中(其中0<=i<10)不正确的是inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;A、a[p-a]B、*(&a[i])C、p[i]D、*(*(a+i))标准答案:D知识点解析:本题考核数组与指针。A选项中,p为指针,数组名a代表数组的首地址,所以p-a就是指针到数组首地址的偏移量。B选项中,&a[i]是取数组a中第i个元素的地址,而对于*(&a[i]),由指针运算符*的运算规则可知,语句*(&a[i])就是返回地址&a[i]空间中存放的值,也即a[i]。C)选项,由于指针p已指向数组a,所以p[i]就等于a[i]小这是常用的一种数组元素引用方式。D)选项是以指针方式对数组元素进行引用,由于a只是代表数组的首地址,并不是指针,所以表达式*(*(a+i))是错误的,正确的引用应该为:*(*(p+i))。13、关于虚函数的描述中正确的是A、虚函数是一个静态成员函数B、虚函数是一个非成员函数C、虚函数既可以在函数说明时定义,也可以在函数实现时定义D、派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型标准答案:D知识点解析:虚函数不能定义为静态函数;虚函数的作用在于继承,表现出动态性。所以,在派生类中定义的虚函数必须和基类中对应的虚函数具有相同的参数个数和类型。14、若执行下面的程序时,从键盘上输入5和2,则输出结果是()。include(iostream.h)voidmain(){inta,b,k;cin>>a>>b;k=a;if(a<B)k=a%b;elsek=b%a;cout<<k<<endl;}A、5B、3C、2D、0标准答案:C知识点解析:本题考查简单的if…else语句。先执行条件if(a<b),显然不成立,则执行else语句。15、下列程序执行后的输出结果是voidfuncl(inti);voidfunc2(inti);charst[]="hello,friend!";voidfund(inti){cout<<st[i];if(i<3){i+=2;func2(i);}}voidfunc2(inti){cout<<st[i];if(i<3){i+=2;funcl(i);}}main(){inti=0;fund(i);cout<<endl;}A、helloB、helC、hloD、hlm标准答案:C知识点解析:本题考察递归调用。分析funcl可知,当i=0时,首先输出h,然后i变为2,调用func(2),则输出str[2],应为1。分析到此就可以排除选项A和B。然后调用runcl(4),此时输出str[4],为o,故正确答案为C。16、下列程序执行结果是#include<iostream.h>classA{public:inta;A():a(10){tout<<a<<endl;}};voidmain(){Aobj1;Aobj2(obj1);cout<<""<<obj2.a<<endl;}A、1010B、编译错误缺少拷贝构造函数C、10随机数D、随机数随机数标准答案:A知识点解析:本题考察拷贝构造函数的知识。如果类中没有实现拷贝构造函数,则编译器会为其自动生成一个。对于本题这种简单对象,默认生成的拷贝构造函数可以完成数据成员的自动赋值,对于复杂对象,则可能需要显式定义拷贝构造函数。17、有以下程序:#include<iostream>usingnamespacestd;classMyClass{public:MyClass(intn){number=n;}//拷贝构造函数MyClass(MyClass&other){number=other.number;}~MyClass(){}private:intnumber;};MyClassfun(MyClassp)A、5B、4C、3D、2标准答案:B知识点解析:调用拷贝构造函数的情况为:一个新对象被另一个已存在的同类型对象初始化,当一个对象作为实参传遵给函数时为初始化形参,要调用拷贝构造函数。在函数值返回时形参的生命期结束时它的析构函数被调用,在函数返回一个对象时调用拷贝构造函数。符合以上条件的有:用对象obj1来初始化obj3;obj3作为实参被传入,函数fun返回一个对象时,系统用返回值初始化一个匿名对象时调用了拷贝构造函数。总共调用4次。18、若有如下程序段:#includeusingnamespacestd;intmain(){char*p=“abcdefgh”,*r;r=p;cout<<*r<A、aB、bC、cD、d标准答案:A知识点解析:字符指针p指向“abcdefgh”字符串,语句“r=p;”是r指向p指向的字符串,而*r则是指向字符串中的第一个字符。即a。19、下面程序的运行结果是()。#include<iostream.h>intx=5;intfun(inta){intc;C=X*a;retumc;}voidmain(){intx=3,a=4;x=x+fun(a);cout<<"x"”<<X<<endl;}A、x=15B、x=17C、x=23D、x=25标准答案:4知识点解析:暂无解析20、已知小写字母’a’的ASCII码为97,以下程序的结果是______。chara=32,b=68;cout<<(a|b);A、bB、98C、dD、100标准答案:4知识点解析:暂无解析21、在一个类体的下列声明中,正确的纯虚函数声明是______。A、virtualvoidvF()=0;B、voidvf(int)=0;C、virtualintvf(int);D、virtualvoidvf(int)”标准答案:1知识点解析:虚函数声明,语法定义;virtual返回类型函数名(参数表)=022、以下for语句中不是死循环的是A、for(inti=0;i<1;++);B、for(inti=0∷++);C、for(inti=1;i>0;++i);D、for(;;);标准答案:1知识点解析:for循环的一般格式为for(初始化部分;终止条件判断部分;迭代部分){循环体;}说明如下:for循环开始时,首先执行初始化操作,然后判断终止条件是否满足,如果满足,则执行循环体中的语句,最后执行迭代部分。完成一次循环后,重新判断终止条件。注意:在for语句中,如果省略了终止条件判断部分,开且在语句中没有break,或者是终止条件判断部分始终没有终止,都将出现死循环。注意:for循环语句可由while循环语句来代替。23、下列定义中p指向的地址可更改,但*p不能够更改的是A、constint*p;B、int*constp;C、constint*constp;D、int*p;标准答案:1知识点解析:constint*p;是只能改变指针地址,int*constp;是只能改变*p的内容,constint*constP;是指针的地址和*p的内容都不能改变,int*p;是两者都能改变。24、有以下程序#include<iostream.h>floatfun(intx,inty){return(x+y);}voidmain(){inta=2,b=5,c=8;cout<<fun((int)fun(a+c,b),a-c);}程序运行后的输出结果是()。A、编译出错B、9C、21D、9标准答案:2知识点解析:暂无解析25、C++语言对C语言做了很多改进,C++语言相对于C语言的最根本的变化是A、增加了一些新的运算符B、允许函数重载,并允许设置缺省参数C、规定函数说明符必须用原型D、引进了类和对象的概念标准答案:8知识点解析:C++语言最重要的特点是其为一种面向对象的程序设计语言,但是C++语言也包含了全部的C语言的特征。26、关于类模板,下列表述不正确的是A、用类模板定义一个对象时,不能省略实参B、类模板只能有虚拟类型参数C、类模板本身在编译中不会生成任何代码D、类模板的成员函数都是模板函数标准答案:2知识点解析:本题考核类模板的概念。类模板就是一系列相关类的模型或样板,这些类的成员组成相同,成员函数的源代码形式相同,所不同的只是所针对的类型(成员的类型以及成员函数的参数和返回值的类型)。C柑中可以为类模板的参数设置默认值,所以B)选项是不正确的,其他选项的表述都是正确的。27、下列对变量的引用中,错误的是A、inta;int&p=a;B、chara;char&p=a;C、ihta;int&p;p=a;D、floata;float&p=a;标准答案:4知识点解析:本题考核引用的定义和初始化。引用具有如下特点:引用能够使用任何合法变量名:引用不是变量,所以必须在定义时初始化,而且一旦初始化之后,就不能再成为其他变量的引用;引用不是值,不占存储空间,说明引用时,目标的存储状态不会改变。所以,引用只有说明,没有定义;引用仅在说明时带有“&”,以后就像普通变量一样使用,不能再带“&”。在C选项中,由于在定义引用p后没有进行初始化,所以此语句错误。28、假定MyClass为一个类,那么下列的函数说明中,()为该类的析构函数。A、void~MyClass();B、~MyClass(intn);C、MyClass();D、~MyClass();标准答案:8知识点解析:本题考核类的析构函数。在C++中,析构函数名为符号“~”加类名,析构函数没有参数和返回值。根据以上知识可知,MyClass类的正确析构函数的说明为~MyClass()。29、在C++语言中函数返回值的类型是由()决定的。A、调用该函数时系统临时B、return语句中的表达式类型C、定义该函数时所指定的函数类型D、调用该函数时的主调函数类型标准答案:4知识点解析:本题考查对函数定义的掌握程度。函数类型决定了函数返回值的类型。函数值返回类型可以由编译器自动完成类型转换。在函数有返回值的调用中,编译器将return后面的表达式的类型强制转换为该函数定义时指定的返回值类型。30、下面关于成员函数重载运算符和友元函数重载运算符相同的是A、成员函数和友元函数可重载的运算符是不相同的B、成员函数和友元函数重载运算符时都需要用到this指针C、成员函数和友元函数重载运算符时都需要声明为公有的D、成员函数和友元函数重载运算符时的参数町能是相同的标准答案:1知识点解析:成员函数和友元函数可重载的运算符有些相同的,有些是不同的,友元函数没有this指针,二者重载相同运算符时的参数肯定是不同的,成员函数重载运算符时都必须声明为公有的。注意:友元函数的声明关健字是friend。31、若有语句int*point,a=4;和point=&a;下面均代表地址的一组选项是A、a,point,*&aB、&*a,&a,*pointC、*&point,*point,&aD、&a,&*point,point标准答案:8知识点解析:“&”是求址运算符,“*”是指针变量的说明符,说明该变量只能存放所定义类型变量的地址。本题中选项D)中的第一和第三项所表达的是同样的意思。注意:选项A)中a是一个整型变量。选项B)中&*a等价于a,*point是指针变量所指的内容。选项C)中也是同理。注意:在指针运算中,&和*的作用相互抵消。32、关于静态数据成员的描述中正确的是A、类的静态数据成员不是类的所有对象共享的数据B、类的静态数据成员不能被类的成员函数调用C、类的静态数据成员不能被类的构造函数调用D、类的静态数据成员必须进行初始化标准答案:8知识点解析:C++类中的静态成员变量是该类中所有对象所共有的,它能够被类中的任何函数调用,所以选项A,选项B,选项C是错误的。而类的静态数据成员是必须要进行初始化才能使用的。33、有以下程序main(intargc,chara*argv[]){intn,i=0;while(argv[1][i]!=’\0’){n=fun();i++;}cout<<n*argc<<endl;}intfun(){staticints=0;s+=1;returns;}假设程序经编译、连接后生成可执行文件exam.exe,若键入以下命令行exam123<回车>则运行结果为A、6B、8C、3D、4标准答案:A知识点解析:本题考察静态变量的使用规则。考生需要注意的是s为静态变量,每次进入fun函数时s还保留使用原来的值,因此while循环将最终返回的是各位数之和,而argc表示参数的个数,此处为1,因此正确答案为A。34、已知类A有公用数据成员a,并重载了=运算符,且有Aobj2;constA*ptr=newA;则下列语句错误的是A、ptr->a=100;B、ptr=&obj2;C、ptr++;D、obj2=*ptr;标准答案:A知识点解析:本题考察const修饰符的作用。注意;const位置不同,其修饰的部分也是不同的。本题中const修饰的是ptr所指的对象本身,所以,ptr是可以重新指向新的对象,而ptr->a则无法被更新。35、在ios中提供的格式控制标志位中,()是转换八进制的。A、hexB、decC、octD、bin标准答案:A知识点解析:oct八进制。三、公共基础填空题(本题共5题,每题1.0分,共5分。)36、有如下程序:#include<iostream>usingnamespacestd;classA{public:A(){cout<<"A";}};classB:privateA{public:B(){cout<<’B’;}};intmain(){Aa;Bb;return0;}这个程序的输出结果是______。标准答案:AAB知识点解析:暂无解析37、数据的逻辑结构在计算机存储器内的表示,称为数据的【】。标准答案:存储结构知识点解析:数据的逻辑结构在计算机存储器内的表示,称为数据的存储结构。38、派生类中的成员不能直接访问基类中的______成员。标准答案:私有知识点解析:派生类成员在私有继承方式下不能访问基类的所有成员,在保护继承方式下不能访问基类的私有成员,在公有继承方式下不能访问基类的私有成员。39、在最坏情况下,堆排序需要比较的次数为【】。标准答案:O(nlog2n)知识点解析:在最坏情况下,冒泡排序所需要的比较次数为n(n-1)/2;简单插入排序所需要的比较次数为n(n-1)/2;希尔排序所需要的比较次数为O(nl.5);堆排序所需要的比较次数为O(nlog2n)。40、设一棵完全二叉树共有700个结点,则在该二叉树中有【】个叶子结点。标准答案:350知识点解析:在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。根据完全二叉树的定义,在一棵完全二叉树中,最多有1个度为1的结点。因此,设一棵完全二叉树具有n个结点,若n为偶数,则在该二叉树中有n/2个叶子结点以及n/2-1个度为2的结点,还有1个是度为1的结点;若n为奇数,则在该二叉树中有[n/2]+1个叶子结点以及[n/2]个度为2的结点,没有度为1的结点。本题中,完全二叉树共有700个结点,700是偶数,所以,在该二叉树中有350个叶子结点以及349个度为2的结点,还有1个是度为1的结点。本题的正确答案为350。四、填空题(本题共10题,每题1.0分,共10分。)41、下列程序的输出结果是______。#include<iostream.h>classbase{intx,y;public:base(inti,intj){x=i;y=j;}virtualintadd(){returnx+y;}};classthree:publicbase{intz;public:three(inti,intj,intk):base(i,j){z=k;)intadd(){return(base::add()+z);}};voidmain(){three*q=newthree(10,20,30);cout<<q->add()<<endl;}标准答案:60知识点解析:本题考察继承中子类对父类的继承方式,注意子类的add成员函数,它直接使用了父类的成员函数进行运算。42、在下面程序的横线处填上适当的语句,使程序执行后的输出结果为ABCD。#includeusingnamespacestd;classA{public:A(){cout<<‘A’;)};classB=__________{public:B(){cout<<‘B’;}};classC:__________{public:C(){cout<<‘C’;}};classD:publicB,publicC{public:D(){ctout<<‘D’;}};voidmain(){Dobj;}标准答案:vinualA或vinualpublicA或virtualprivaIeA或virtualprotrctedA与virtualA或virtualpublicA或virtualprivateA或virtualprotcctedA知识点解析:由于每执行一次A类的构造函数,都将输出一个字符A,输出结果中只有一个A,且第一个输出为A,D继承B,可知必有B继承A。由题中要求c肯定继承某个类,所以,这里的C只能是继承于A,保证输出中只有一个A,A必须为虚基类,所以本题中的空都填vmalA。43、在C++中,类的成员有3种访问权限,它们分别是公有、【】和私有。标准答案:保护知识点解析:类成员有3类访问权限:公有(public)、私有(private)和保护(protected)。44、执行语句序列:intx=10,&r=x;cout<<x<<’-’<<r<<end1;输出结果为【】。标准答案:10-10知识点解析:暂无解析45、在成员函数声明的前面加上关键词【】修饰,即把该函数声明为虚函数。标准答案:virtual知识点解析:说明虚函数的方法为:virtual<类型说明符><函数名>(<参数表>)其中,被关键词virtual说明的函数称为虚函数。46、有以下程序:#include<iostream>usingnamespacestd;classSample{private:intn;public:Sample(inti){n=i;}voidprint(){cout<<"1:n="<<n<<",";}voidprint()const{cout标准答案:1:n=10,2:n=20知识点解析:本题考核常成员函数的应用。本程序中,Sample类中说明了两个同名函数print(),其中一个是常成员函数,另一个为普通成员函数。在主函数中说明了两个对象a和b,其中对象b是常对象,通过对象a调用的是普通成员函数print(),通过对象b调用的是常成员函数print()。47、设文件temp.txt已存在,则以下的打印结果是【】#include<iostream>#include<fstream>usingnamespacestd;intmain(){ofstreamoutf("temp.txt",iosbase::trunC);outf<<"Howyoudoing";outf.close();ifstreaminf("temp.txt");标准答案:How知识点解析:本题考核文件的I/O操作。程序中定义了ofstream类的对象outf和ifstream类的对象inf。然后利用对象outf在文件test.txt中写入“Howyoudoing”。最后利用对象inf打开文件,将其中的数据输入到变量str中,由于读时遇到空格时就终止,所以str中存放的字符串为“How”。48、使用函数模板的方法是先说明函数模板,然后实例化成相应的______进行调用执行。标准答案:模板函数知识点解析:暂无解析49、如下程序声明了一个二维图形类TwoDShape,从其派生出矩形类Rec。#include<iostream>#include<string>usingnamespaeestd,classTwoDShape{//二维图形类charname[20];public:TwoDShape(char*n="unknown"){strcpy(name,n);}Char*getName(){returnname;}【】=0;};classRec:publicTwoDShape{doublewidth,heightpublic:Rec(doublew-=0.0,doubleh=0.0):TwoDShape("rectangle"){width=w;height=h;}doublegetWidth(){returnwidth;}doublegetHeight(){returnheight;}doublearea(){returnwidth*height;}};intmain(){TwoDShape*shape;Shape=newRec(2.1,3.0);cout<<"objectis"<<shape->getName()<<"\n";cout<<"Areais"<<shape->area()<<"\n";return0}请将程序补充完整,使程序在运行时输出:abjectistriangleAreais6.3标准答案:virtualdoublearea()知识点解析:这里需要添加一个纯虚函数,即virtualdoublearea()=0。50、当使用关键字______作为函数返回类型时,该函数不返回任何值。标准答案:void知识点解析:此题考查的是函数的定义。关键字void声明的函数的返回类型为不返回任何

温馨提示

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

评论

0/150

提交评论