版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
国家二级(C++)笔试模拟试卷23(共9套)(共442题)国家二级(C++)笔试模拟试卷第1套一、公共基础选择题(本题共10题,每题1.0分,共10分。)1、下列数据结构中,按先进后出原则组织数据的是A、线性链表B、栈C、循环链表D、顺序表标准答案:B知识点解析:栈是限定在一端进行插入与删除的线性表。在栈中,允许插入与删除的一端称为栈顶,而不允许插入与删除的另一端称为栈底。栈顶元素总是最后被插入的元素,从而也是最先能被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素,即栈是按照"先进后出"或"后进先出"的原则组织数据的。2、若某二叉树的前序遍历访问顺序是abdgcefh,中序遍历访问顺序是dgbaechf,则其后序遍历的结点访问顺序是A、bdgcefhaB、gdbecfhaC、bdgaechfD、gdbehfca标准答案:D知识点解析:前序遍历的第一个结点a为树的根结点;中序遍历中a的左边的结点为a的左子树,a右边的结点为a的右子树;再分别对a的左右子树进行上述两步处理,直到每个结点都找到正确的位置。3、线性表L=(a1,a2,a3,…ai,…an),下列说法正确的是A、每个元素都有一个直接前件和直接后件B、线性表中至少要有一个元素C、表中诸元素的排列顺序必须是由小到大或由大到小D、除第一个元素和最后一个元素外,其余每个元素都有一个且只有一个直接前件和直接后件标准答案:D知识点解析:线性表可以为空表;第一个元素没有直接前件,最后一个元素没有直接后件;线性表的定义中,元素的排列并没有规定大小顺序。4、在设计程序时,应采纳的原则之一是A、不限制goto语句的使用B、减少或取消注解行C、程序越短越好D、程序结构应有助于读者理解标准答案:D知识点解析:滥用goto语句将使程序流程无规律,可读性差,因此A不选;注解行有利于对程序的理解,不应减少或取消,B也不选;程序的长短要依照实际情况而论,而不是越短越好,C也不选。5、模块独立性是软件模块化所提出的要求,衡量模块独立性的度量标准则是模块的A、抽象和信息隐蔽B、局部化和封装化C、内聚性和耦合性D、激活机制和控制方法标准答案:C知识点解析:模块的独立程序是评价设计好坏的重要度量标准。衡量软件的模块独立性使用耦合性和内聚性这两个定性的度量标准。6、下列叙述中,不属于测试的特征的是A、测试的挑剔性B、完全测试的不可能性C、测试的可靠性D、测试的经济性标准答案:C知识点解析:软件测试的目标是在精心控制的环境下执行程序,以发现程序中的错误,给出程序可靠性的鉴定。它有3个方面的重要特征,即测试的挑剔性、完全测试的不可能性及测试的经济性。其中没有测试的可靠性这一说法。7、数据处理的最小单位是A、数据B、数据元素C、数据项D、数据结构标准答案:C知识点解析:数据处理的最小单位是数据项;由若干数据项组成数据元素;而数据是指能够被计算机识别、存储和加工处理的信息载体;数据结构是指数据之间的相互关系和数据运算。故正确答案为选项C。8、分布式数据库系统不具有的特点是A、数据分布性和逻辑整体性B、位置透明性和复制透明性C、分布性D、数据冗余标准答案:D知识点解析:分布式数据库系统具有数据分布性、逻辑整体性、位置透明性和复制透明性的特点,其数据也是分布的;但分布式数据库系统中数据经常重复存储。数据也并非必须重复存储,主要视数据的分配模式而定。若分配模式是一对多,即一个片段分配到多个场地存放,则是冗余的数据库,否则是非冗余的数据库。9、将E-R图转换到关系模式时,实体与联系都可以表示成A、属性B、关系C、键D、域标准答案:B知识点解析:数据库逻辑设计的主要工作是将E-R图转换成指定RDBMS中的关系模式。首先,从E-R图到关系模式的转换是比较直接的,实体与联系都可以表示成关系,E-R图中属性也可以转换成关系的属性。实体集也可以转换成关系。10、实体是信息世界中广泛使用的一个术语,它用于表示A、有生命的事物B、无生命的事物C、实际存在的事物D、一切事物标准答案:C知识点解析:实体是客观存在且可以相互区别的事物。实体可以是具体的对象,如一个学生,也可以是一个抽象的事件,如一次出门旅游等。因此,实体既可以是有生命的事物,也可以是无生命的事物,但它必须是客观存在的,而且可以相互区别。二、选择题(本题共25题,每题1.0分,共25分。)11、下面关于虚函数的描述中正确的是A、虚函数是一个静态成员函数B、虚函数是一个非成员函数C、虚函数可以在函数说明时定义,也可以在函数实现时定义D、派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型标准答案:B知识点解析:本题考核虚函数的概念。虚函数是非静态的成员函数,它不能是友元函数,但可以在另一个类中被声明为友元函数。所以A选项不正确;虚函数必须是类的成员函数,所以B选项是错误的;虚函数声明只能出现在类定义的函数原型声明中,而不能在成员函数的函数体实现的地方,所以C选项是不正确的;一般要求基类中说明了虚函数后,派生类说明的虚函数应该与基类中虚函数的参数个数相等,对应参数的类型相同。如果不相同,则将派生类虚函数的参数类型强制转换为基类中虚函数的参数类型。故D选项的说法是正确的。12、C++语言中函数返回值的类型决定于A、return语句中的表达式类型B、调用函数的主调函数类型C、调用、函数时临时类型D、定义函数时所指定的函数类型标准答案:D知识点解析:函数在定义时已经可以指定其函数类型,则函数返回值类型就是该类型。13、判断字符型变量ch是否为大写英文字母,应使用表达式A、ch>=’A’&ch<=’Z’B、ch<=’A’||ch>=’Z’C、’A’<=ch<=’Z’D、ch>=’A’&&ch<=’Z’标准答案:D知识点解析:本题考核C++表达式类型及求值规则。ch为大写字母的条件是大于等于’A’且小于等于’Z’。14、以下非法的赋值语句是A、n=(i=2,++i);B、j++;C、++(i+1);D、x=j>0;标准答案:C知识点解析:本题其实是考查各级运算符的优先级的。选项A赋值符号右侧为逗号表达式,其取值为最后一项表达式的值;选项B隐含表示为j=j+1,这是很常用的一种赋值表达式。选项D赋值符号右侧为逻辑表达式,其值为1或0,可以赋值给变量x。将选项C展开为i+1=i+1+1,这是错误的。15、C++语言中在C语言的基础上增加的特性不包括A、结构B、引用C、类和对象D、静态成员函数标准答案:A知识点解析:本题很简单,不过考生要注意引用是C++的新特性。只有结构是C语言也有的特性。16、对于下列语句,正确的判断是for=(x=0;y=0;(y!=123)&&(x<4);x++);A、是无限循环B、循环次数不定C、最多执行4次D、最多执行3次标准答案:C知识点解析:本题考查for循环条件中三个表达式的执行顺序。首先执行表达式一,然后执行表达式二,如果表达式二为真,则循环体执行,然后执行表达式三,接着继续执行表达式二,如此循环。考生要注意的是,本题中表达式三中包含了变量x的增量操作,因此可以由表达式二和三一起控制循环体的执行次数。本题正确答案为C。17、若有说明:inta[3][4];则对a数组元素的非法引用是A、a[0][2*1]B、a[1][3]C、a[4-2][0]D、a[0][4]标准答案:D知识点解析:在数组这部分的知识里面,数组下标越界是一个比较容易忽略的问题,其下标是从0开始,至n-1为止,因此选项D是正确答案。18、设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是A、6.500000B、6C、5.500000D、6.000000标准答案:D知识点解析:混合表达式的值的类型是由表达式中具有最高精度的类型确定,因此可知选项B可排除。注意b/b的结果应是1.00000,而(int)a则为5,相加的结果还是double型,故正确答案应为D。19、下面赋值语句中正确的是A、a=7+b+c=a+7;B、a=7+b++=a+7;C、a=7+b,b++,a+7;D、a=7+b,C=a+7;标准答案:D知识点解析:赋值语句合法的重要标志之一就是赋值符号的左侧应该表示为一个变量,即可以在内存中存在一块空间用于存放赋值符号右侧的值。据此,可以断定选项A和B可以排除。注意:选项C中不是逗号表达式,要考虑优先级的问题。本题答案为D。20、语句cout<<(a=2)&&(b=-2);的输出结果是A、无输出B、编译错误C、-1D、1标准答案:D知识点解析:很明显,本题考查的是表达式的值作为结果输出。可以看出,本表达式是一个逻辑表达式,其结果为真或假,那么输出则对应1和0,故排除选项C。本题答案为D。21、在下面的函数声明中,存在着语法错误的是A、voidBC(inta,int)B、voidBD(int,int)C、voidBE(int,intt=5)D、intBF(intx;inty)标准答案:D知识点解析:函数声明时,可以指定其形参的默认值,不过要从右向左指定;可以省略形参名,仅以形参类型表示;形参表之间用逗号分割。因此,本题答案为D。22、下列关于指针的操作中,错误的是A、两个同类型的指针可以进行比较运算B、可以用一个空指针赋给某个指针C、一个指针可以加上两个整数之差D、两个同类型的指针可以相加标准答案:D知识点解析:本题考查指针能够进行的运算方式。指针可以加减一个整数,两个指针可以相减,表示指针之间的元素个数。指针相加则没有意义,因此本题答案为D。23、若有以下定义:inta[]={1,2,3,4,5,6,7);charc1=’b’,c2=’2’;则数值不为2的表达式是A、a[1]B、’d’-c1C、a[’3’-c2]D、c2-0.标准答案:D知识点解析:本题考查数组的定义、初始化及其引用,以及对字符ASCII码值的熟悉程度。解本题的关键在于熟悉字符的ASCIII码值。字符在进行数学运算时取其.ASCII码值,其中’b’的ASCII码值为98,’d’的ASCII码值为100,字符’2’的ASCII:码值为50。根据以上知识,可知D选项中表达式c2-0的值为50。24、静态成员函数没有A、返回值B、this指针C、指针参数D、返回类型标准答案:B知识点解析:this指针是系统隐含的用于指向当前对象的指针。由于静态函数是同类中所以对象都共享的函数,在内存当中只存在一份,不属于某个对象所有,所以静态函数没有this指针。25、以下程序的输出结果为main(){intm=7,n=4;floata=38.4,b=6.4,x;x=m/2+n*a/b+1/2;cout<<x<<endl;}A、27.000000B、27.500000C、28.000000D、28.500000标准答案:A知识点解析:本题考查表达式值的类型由参与运算的所有变量的类型中优先级最高的变量类型所决定。不过要注意的是整型向float型转换时,将丢失小数部分,即向下取值。26、执行下列语句后,输出结果为cout.put(’s’);cout<<’c’<<’a’;A、caB、seaC、sD、a标准答案:B知识点解析:本题很简单,考查cout对象的成员函数put方法和<<操作符的使用方法。27、下列运算符中,不能重载的是A、?:B、+C、-D、<=标准答案:A知识点解析::?是C++中唯一一个三目运算符,不能被重载。28、所有在函数中定义的变量及函数的形式参数,都属于A、全局变量B、局部变量C、静态变量D、常量标准答案:B知识点解析:全局变量是在所有函数定义、类定义和程序块之外声明的变量,局部变量是在某个函数定义、类定义或程序块之内声明的变量。用关键字Static声明的局部变量称为静态变量,故正确答案为B项。29、为引入对象的同义词,对象的别名称为A、指针B、引用C、枚举D、结构标准答案:B知识点解析:引用是C++引入的一个新概念,表示变量或对象的别名。30、以下不属于构造函数特征的是A、构造函数名与类名相同B、构造函数可以重载C、构造函数可以设置默认参数D、构造函数必须指定函数类型标准答案:D知识点解析:类的构造函数不能指定函数类型,由系统采取默认的处理方式,不需要用户参与。31、以下关于虚函数的叙述中不正确的是A、虚函数属于成员函数B、虚函数不允许说明成静态的C、凡是虚函数必须用virtual说明D、虚函数可以被继承标准答案:C知识点解析:虚函数的引入是为了解决动态绑定问题,使类的实例表现出多态性,虚函数在继承后依然保持虚函数特性,此时不需要用virtual关键词修饰。32、类的构造函数的作用是A、一般成员函数B、类的初始化C、对象的初始化D、删除对象创建的所有对象标准答案:C知识点解析:本题考查类的构造函数的作用,构造函数一般负责完成对象建立时的初始化工作,如资源的分配。33、继承机制的作用是A、信息隐藏B、数据封装C、定义新类D、数据抽象标准答案:C知识点解析:继承是类的一个重要特性,没有继承,面向对象方法也就不存在。正是有了继承,才呈现出丰富多彩的类和对象。34、关于虚函数的描述中正确的是A、虚函数是一个静态成员函数B、虚函数是一个非成员函数C、虚函数既可以在函数说明时定义,也可以在函数实现时定义D、派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型标准答案:D知识点解析:虚函数不能定义为静态函数;虚函数的作用在于继承,表现出动态性。所以,在派生类中定义的虚函数必须和基类中对应的虚函数具有相同的参数个数和类型。35、下列表示纯虚函数的成员函数是A、virtualintfunc(int);B、voidfunc(int)=0;C、virtualvoidfunc=0;D、virtualvoidflmc(int){}标准答案:C知识点解析:本题考查纯虚函数的定义形式。由于纯虚函数在最后要有“=0”,故据此排除A和D。而B中没有出现virtual关键词,故正确答案为C。三、公共基础填空题(本题共5题,每题1.0分,共5分。)36、在算法正确的前提下,评价一个算法的两个标准是______。标准答案:时间复杂度和空间复杂度知识点解析:暂无解析37、将代数式转换成程序设计中的表达式为______。标准答案:SQRT(x^2+y^2)/(a+b)知识点解析:暂无解析38、软件危机出现于20世纪60年代末,为了解决软件危机,人们提出了______的原理来设计软件,这就是软件工程诞生的基础。标准答案:软件工程学知识点解析:暂无解析39、______是数据库设计的核心。标准答案:数据模型知识点解析:数据模型是对客观事物及联系的数据描述,它反映了实体内部及实体与实体之间的联系。因此,数据模型是数据库设计的核心。40、在关系模型中,把数据看成一个二维表,每一个二维表称为一个______。标准答案:关系知识点解析:在关系模型中,把数据看成一个二维表,每一个二维表称为一个关系。表中的每一列称为一个属性,相当于记录中的一个数据项,对属性的命名称为属性名;表中的一行称为一个元组,相当于汜录值。四、填空题(本题共8题,每题1.0分,共8分。)41、在C++语言的面向对象程序设计框架中,______是程序的基本组成单元。标准答案:类知识点解析:C++语言面向对象程序设计的基本组成单元是class,面向过程的程序设计的基本组成单元是函数。42、C++语言程序的注释可以出现在程序中的任何地方,一个注释以______作为开始和结束的标记。标准答案:/**/知识点解析:C++语言程序的注释可以出现在程序中的任何地方,一个注释以“/*”开始,以“*/”结束。43、以下程序的输出结果是_____。#include<iostream.h>voidfun(){staticinta=0;a+=2;cout<<a<<"";}voidmain(){intcc;for(cc=1;cc<4;cc++)fun();cout<<endl;}标准答案:246知识点解析:本题考查静态局部变量的使用。用关键字static声明的局部变量为“静态局部变量”,其值在函数调用结束后不消失而保留原值,即其占用的存储单元不释放,在下一次调用该函数时,该变量已有值,就是上一次函数调用结束时的值。44、用以下语句调用库函数malloc,使字符指针st指向具有11个字节的动态存储空间,请填空。st=(char*)_____;标准答案:malloc(11)或malloc(sizeof(char)*11)知识点解析:malloc函数的参数可以是一个具体的常数,也可以是一个表达式。在本题中,可以是malloc(11),也可以借助于sizeof运算符来表示。45、以下程序的输出结果是_____。#include<iostream.h>unsignedfun(unsignednum){unsignedk=1;do{k*=num%10;num/=10;}while(num);returnk;}voidmain(){unsignedn=26;cout<<fun(n)<<endl;}标准答案:12知识点解析:函数有一个形参num,循环前变量k置1,循环中,表达式num%10是取num的个位,将Hum的个位值累乘于k中,然后num除以10。循环直至num为0结束,这是逐一求出num十进制表示的各位数字,并累乘于变量k的循环。函数最后返回k。函数fun的功能是求整数的各位十进制数的积。46、将x+y*z中的“+”用成员函数重载,"*"用友元函数重载应写为_____。标准答案:x..operator+(operator*(y,z))知识点解析:C++中用成员函数重载x*y为:x.operator*(y);用友元函数重载x*y为:operator*(x,y);用成员函数重载x+y为:x.operator+(y);用友元函数重载x+y为:operator+(x,y)。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<<endl;}标准答案:j+=2a[i]>=a[j]或a[i]>a[j]知识点解析:strlen函数是测试字符串长度的函数,函数的值为字符串中的实际长度,不包括’\0’在内。48、静态成员函数可以直接访问类的______成员,不能直接访问类的______成员。标准答案:静态;非静态知识点解析:静态成员函数可以直接访问该类中的静态数据成员,而不能访问该类中的非静态数据成员。国家二级(C++)笔试模拟试卷第2套一、公共基础选择题(本题共10题,每题1.0分,共10分。)1、下列关于栈的描述中错误的是()。A、栈是先进先出的线性表B、栈只能顺序存储C、栈具有记忆作用D、对栈的插入与删除操作中,不需要改变栈底指针标准答案:B知识点解析:栈是限定只能在表的一端进行插入和删除操作的线性表,入栈和出栈都是在栈顶进行,它们的操作特点是先进后出,因此具有记忆作用。栈可以采用顺序存储,也可以采用链式存储。2、最简单的交换排序方法是A、快速排序B、选择排序C、堆排序D、冒泡排序标准答案:D知识点解析:暂无解析3、将运算符重载为类成员函数时,其参数表中没有参数,说明该运算符是A、不合法的运算符B、一元运算符C、无操作数的运算符D、二元运算符标准答案:B知识点解析:当运算符重载为成员函数时,如果函数参数表中没有参数,则表明该重载为单目运算符,操作数就为该对象本身;如果函数参数表中有一个参数,则表示该重载为双目运算符,另外一个操作数为该对象本身。4、开发大型软件时,产生困难的根本原因是A、大系统的复杂性B、人员知识不足C、客观世界千变万化D、时间紧、任务重标准答案:A知识点解析:软件的显著特点是规模庞大,复杂度超线性增长,在开发大型软件时,要保证高质量,极端复杂困难,不仅涉及技术问题,更重要的是必须要有严格而科学的管理。5、两个或两个以上模块之间联系的紧密程度称为()。A、耦合性B、内聚性C、复杂性D、数据传输特性标准答案:A知识点解析:耦合性是模块间互相连接的紧密程度的度量,取决于各个模块之间接口的复杂度、调用方式以及哪些信息通过接口。6、A、
B、
C、
D、
标准答案:B知识点解析:暂无解析7、关系数据库管理系统能实现的专门关系运算包括()。A、排序、索引、统计B、选择、投影、连接C、关联、更新、排序D、显示、打印、制表标准答案:B知识点解析:关系数据库管理系统的专门关系运算包括选择运算、投影运算和连接运算。8、下面不属于软件工程的3个要素的是()。A、工具B、过程C、方法D、环境标准答案:8知识点解析:软件工程包括3个要素,即方法、工具和过程。方法是完成软件工程项目的技术手段:工具支持软件的开发、管理、文档生成;过程支持软件开发的各个环节的控制、管理。9、在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是()。A、O(n)B、O(n2)C、O(log2n)D、O(nlog2n)标准答案:C知识点解析:对于长度为n的有序线性表,在最坏情况下,二分法查找只需比较log2n次,而顺序查找需要比较n次。10、有如下两个类定义:classXX{private:doubleX1;protected:doublex2;public:doublex3;);claseYY:protectedXX{private:doubley1;protected:doubley2;public:doubley3;};在类YY中保护成员变量的个数是()。A、1B、2C、3D、4标准答案:C知识点解析:派生类从基类保护继承(classYY:protectedXX)时,基类的公有成员在派生类中变为保护成员,基类的保护成员在派生类中仍然是保护成员;本题中YY本身有一个保护成员y2,再加上基类XX的x2和x3,故选C。二、选择题(本题共25题,每题1.0分,共25分。)11、下列符号中可以用作C++标识符的是()。A、_radiusB、foo~barC、elseD、3room标准答案:A知识点解析:此题考查的是C++语言中标识符的定义。标识符有字母、数字和下划线构成,其中第一个字母必须是字母或下划线;定义标识符时,不要采用系统的保留字.12、下列字符串中可以用作C++语言标识符的是()。A、_1234B、foo~~barC、virtualD、34var标准答案:A知识点解析:C++语言标识符只能由数字,字母和下划线组成,并且只能以字母和下划线为开头。13、重载函数在调用时选择的依据中,错误的是A、函数的参数名称B、参数的类型C、函数的名字D、函数的类型标准答案:A知识点解析:是否是重载函数,需要给编译器提供足够的信息判断。其主要的依据是函数的名字,参数的类型,函数的返回值类型。14、已知charaihtb;floatc;doubled;则表达式a*b+c-d结果为()。A、doubleB、intC、floatD、char标准答案:A知识点解析:本题考查混合运算表达式类型,由表达式中具有最高优先级的类型所确定,所以答案为A。15、有以下程序:#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次。16、有如下数组声明:intnum[10];,下标值引用错误的是A、num[10]B、num[5]C、num[3]D、num[0]标准答案:A知识点解析:数组定义中的数字指的是数组的大小,而下标是从0开始的,所以题中数组的最后一个元素是num[9]。17、下列叙述中错误的是()。A、派生类可以使用private派生B、对基类成员的访问必须是无二义性的C、基类成员的访问能力在派生类中维持不变D、赋值兼容规则也适用于多继承的组合标准答案:C知识点解析:在建立派生类时,并不是简单地把基类的私有成员直接作为派生类的私有成员,把基类的公用成员直接作为派生类的公用成员。涉及如何确定基类的成员在派生类中的访问属性问题,不仅要考虑对类成员所声明的访问属性,还要考虑派生类所声明的对基类的继承方式,根据这两个因素共同决定基类成员在派生类的访问属性。所以本题选择选项C)。18、以下定义:int(*p)[4]中,标识符p是()。A、一个指向整型变量的指针B、一个指针数组名C、一个指针,它指向一个含有4个整型元素的一维数组D、说明不合法标准答案:4知识点解析:本题中相当于定义了一个二维数组intp[][4],标识符p是一个指针,指向一个含有4个元素的一维数组。19、unsignedcharc="\41’;printf("%d",c);输出结果为()。A、AB、41C、语法错D、65标准答案:4知识点解析:c是char类型,而赋值给它的是字符串"\41"。20、()使一个函数可以定义成对许多不同数据类型完成同一个任务。A、函数模板B、重载函数C、递归函数D、模板函数标准答案:1知识点解析:暂无解析21、下列对字符数组进行初始化的语句,正确的是()。A、chara[]="Hello";B、chara[][]={’H’,’e’,’1’,’1’,’o’};C、chara[5]="Hello";D、chara[2][5]={"Hello","World");标准答案:1知识点解析:暂无解析22、从键盘的输入中,读入一个值并赋值给x的语句是______。A、cin>>xB、cin<<xC、cout>>xD、cout<<x标准答案:8知识点解析:暂无解析23、在重载一个运算符为成员函数时,其参数表中没有任何参数,这说明该运算符是______。A、后缀一元运算符B、前缀一元运算符C、元操作数的运算符D、二元运算符标准答案:2知识点解析:运算符重载的相关内容。24、在C++语言中,打开一个文件就是将这个文件与一个什么建立关联?A、流B、类C、结构D、对象标准答案:1知识点解析:C++的I/O系统是通过一种称为流的机制来实现文件和控制台的I/O操作。简单地说,在C++中,输入输出操作是通过流来完成的。而文件流以磁盘文件以及其他可按文件方式进行管理的外部设备为输入输出对象。每个文件流都应当与一个打开的文件相联系;关闭一个文件就是取消这种联系。25、若已定义:inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0≤i≤9,则对a数组元素不正确的引用是A、a[p-a]B、*(&a[i])C、p[i]D、a[10]标准答案:8知识点解析:通常,引用一个数组元素可以用下标法,如a[p—a]形式,或指针法,如*(&a[i])的形式。本题中a[9]=9,a[10]显然超出了数组范围,注意,数组的下标是从0开始的。26、以下程序的正确运行结果是()。#include<iostream.h>intf(int);voidmain(){inta=2,i;for(i=0;i<3;i++)cout<<f(a)<<"";cout<<endl;}intf(inta){intb=0;staticintc=3;b++;c++;return(a+b+c);}A、777B、71013C、7911D、789标准答案:8知识点解析:暂无解析27、已知各变量的定义如下inti=8,k,a,b;unsignedlongw=5;doublex=1.42,y=5.2;则以下符合C++语言语法的表达式是()。A、a+=a-=(b=4)*(a=3)B、a=a*3+2C、x%(-3)D、y=floati标准答案:1知识点解析:暂无解析28、若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是()。A、函数调用可以作为独立的语句存在B、函数调用可以无返回值C、函数调用町以出现在表达式中D、函数调用可以作为一个函数的形参标准答案:8知识点解析:暂无解析29、以下函数调用语句中含有参数的个数是excc((v1,v2),(v2,v3,v4),v6);A、3B、4C、5D、6标准答案:1知识点解析:函数的参数个数是以第一层的逗号为区分的,本题中调用语句中有3个参数。30、C++中的类有两种用法:一种是类的实例比,即生成类的对象,并参与系统的运行;另一种是通过()派生出新的类。A、复用B、继承C、封装D、引用标准答案:2知识点解析:暂无解析31、使用如setw()的操纵符对数据进行格式输出时,应包含()文件。A、iostream.hB、fstream.hC、iomanip.hD、stdliB.h标准答案:4知识点解析:暂无解析32、设有以下类和对象的定义:classA{public:intm;…};Ak1,k2,*p1,*p2;则下面针对成员变量m的引用,错误的是A、k1.m=1B、k2->m=2C、p1->m=3D、(*p2).m=4标准答案:B知识点解析:本题也是考察有名对象和无名对象的使用规则。对有名对象,要使用点操作符,无名对象要使用箭头运算符。据此可以判断正确答案为B。33、下列不是构造函数的特征的是()。A、函数名与类名相同B、构造函数可以重载C、构造函数可以设置默认值D、构造函数可以有返回值标准答案:D知识点解析:构造函数不能有返回值。34、下列字符串中,正确的C++标识符是A、foo-1B、2bC、newD、-256标准答案:D知识点解析:标识符只能由大小写字母,下划线和数字组成,只允许字母或下划线开头,不允许使用系统的关键字作为标识符。35、有如下程序:#include<iostream>usingnamespacestd;intmain(){voidfunction(doubleval);doubleval;function(val);cout<<val;return0;}voidfunction(doubleval){val=3;}编译运行这个程序将出现的情况是A、编译出错,无法运行B、输出:3C、输出:3.0D、输出一个不确定的数标准答案:D知识点解析:本题考查的是函数参数的传递。在C++中,函数在传递参数时,总是将实参值的副本传递(拷贝)给被调用函数的形参,即传值调用。因此,在函数中对形参所作的任何操作都不会改变函数外的实参。故本题function()函数不会对主函数中的val变量造成任何改变,val也没有被初始化,所以输出的是一个不确定的值:故应该选择D。三、公共基础填空题(本题共5题,每题1.0分,共5分。)36、在结构化分析使用的数据流图中,使用用______解释其中的图形元素。标准答案:数据字典知识点解析:暂无解析37、标准答案:BaseDerived知识点解析:创建Derived类型的对象将导致Derived的构造函数被执行,而执行Derived构造函数时,首先要执行其父类的构造函数,所以先输出”Base”,然后输出”Derived”;p是一个指向.Base类型的指针,对其赋值不会引起构造函数的执行,所以本题输出为”BaseDerived”。38、在关系运算中,【】运算是对两个具有公共属性的关系所进行的运算。标准答案:自然连接知识点解析:暂无解析39、实体之间的联系可以归结为一对一的联系,一对多的联系与多对多的联系。如果一个学校有许多学生,而一个学生只归属于一个学校,则实体集学校与实体集学生之间的联系属于【】的联系。标准答案:一对多知识点解析:实体之间的联系可以归结为一对一、一对多与多对多。如果一个学校有许多学生,而一个教师只归属于一个学生,则实体集学校与实体集学生之间的联系属于一对多的联系。40、在面向对象方法中,允许作用于某个对象上的操作称为【】。标准答案:方法知识点解析:在面向对象方法中,所谓方法是指允许作用于某个对象上的各种操作。因此,允许作用于某个对象上的操作称为方法。四、填空题(本题共10题,每题1.0分,共10分。)41、设有定义语句:inta=12;,则表达式a*=2+3的运算结果是______。标准答案:60知识点解析:本题考核C++运算符运算优先级和结合性。表达式"a*=2+3,"先计算“2+3”得到5,然后计算a*=5,得到a的值为60。42、下列程序的执行结果为_____。#include<iostream.h>voidmain(){cout.fill(’*’);cout.width(10);cout<<"hello"<<endl;}标准答案:*****hello知识点解析:本题考查的是C++语言的流输出操作,cout中包括的函数fill()和width()分别实现填充和设定显示长度的功能。43、虚函数必须是类的______。标准答案:成员函数知识点解析:虚函数是允许在派生类中重新定义与基类同名的函数,并且通过基类指针或引用来访问基类和派生类中的同名函数。在基类中用virtual声明成员函数为虚函数,所以虚函数是类的成员函数。44、______是实现C++语言编译时多态性的机制,______是实现C++语言运行时多态性的机制。标准答案:静态联编或静态绑定;动态联编或动态绑定知识点解析:C++语言编译时多态性的机制是静态绑定,实现C++语言运行时多态性的机制是动态绑定。45、下列程序段的输出结果是【】。#include<iostream.h>voidmain(){inti=10,sum=0;do{sum=+sum+i;i=i-2;}while(i>=2);cout<<sum<<end1;}标准答案:30知识点解析:暂无解析46、程序段的输出结果是【】。intx=3,y=2,z=1;count<<(x/y&~z);标准答案:0知识点解析:暂无解析47、表达式x.operator+(y.operator++(0))还可以写成【】。标准答案:x+y++或x+(y++)知识点解析:因为y.operator++(0)是对成员y重载运算符,所以是成员重载,在参数表中又有一个参数,是重载后缀++,即是x+(y++)。48、带有虚基类的多层次派生类构造函数的成员初始化列表中都要列出虚基类的构造函数,这样对虚基类的子对象初始化【】次。标准答案:一次知识点解析:当一个派生从多个基类派生,而这些基类又有一个共同的基类,当对该基类中说明的成员进行访问时,可能出现二义性。虚基类就是为了解决这种二义性问题提出来的。使用虚基类解决二义性问题的关键是在派生类中只产生一个虚基类子对象,因此,带有虚基类的多层次派生类构造函数的成员初始化列表中对虚基类的子对象只初始化一次。49、有以下程序:#include<iostream>usingnamespacestd;classsample{intx;public:voidsetx(inti){x=i;}intputx(){returnx;}};intmain(){sample*p;sampleA[3];A[0].set>:(5);A[1].setx(6);A[2].setx(7);for(intj=0;j<3;j++){p=&A[j];cout<<p->putx()<<",";}cout<<end1;return0;}执行后的输出结果是【】。标准答案:5,6,7知识点解析:本题考核对象指针与对象数组的应用。主函数中定义对象数组A,然后调用各自的setx()函数赋值,最后通过for循环输出各自内部变量,所以程序最后输出5,6,7。50、语句序列longx;x=0L;可用一个语句表示为【】。标准答案:longx=0L;知识点解析:变量的声明和赋值可以分别进行也可以同时进行。分别进行时称为赋值,同时进行是称为初始化。国家二级(C++)笔试模拟试卷第3套一、公共基础选择题(本题共10题,每题1.0分,共10分。)1、已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树的后序遍历为A、GEDHFBCAB、DGEBHFCAC、ABCDEFGHD、ACBFEDHG标准答案:2知识点解析:利用前序和中序遍历的方法可以确定二叉树的结构,具体步骤如下:①前序遍历的第一个结点A为树的根结点;②中序遍历中A的左边的结点为A的左子树,A右边的结点为A的右子树;③再分别对A的左右子树进行上述两步处理,直到每个结点都找到正确的位置。2、树是结点的集合,它的根结点数目是A、有且只有1B、1或多于1C、0或1D、至少2标准答案:1知识点解析:树是一个或多个结点组成的有限集合,其中一个特定的结点称为根,其余结点分为若干个不相交的集合。每个集合同时又是一棵树。树有且只有1个根结点。3、如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是A、e3,e1,e4,e2B、e2,e4,e3,e1C、e3,e4,e1,e2D、任意顺序标准答案:2知识点解析:由栈“后进先出”的特点可知:选项A)中e1不可能比e2先出,选项C)中e3不可能比e4先出,且e1不可能比e2先出,选项D)中栈是先进后出的,所以不可能是任意顺序。选项B)中出栈过程如图所示:4、在设计程序时,应采纳的原则之一是A、不限制goto语句的使用B、减少或取消注解行C、程序越短越好D、程序结构应有助于读者理解标准答案:8知识点解析:滥用goto语句将使程序流程无规律,可读性差,因此选项A)不选;注解行有利于对程序的理解,不应减少或取消,选项B)也不选;程序的长短要依照实际情况而论,而不是越短越好,选项C)也不选。5、程序设计语言的基本成分是数据成分、运算成分、控制成分和A、对象成分B、变量成分C、语句成分D、传输成分标准答案:8知识点解析:程序设计语言是用于书写计算机程序的语言,其基本成分有以下4种,数据成分:用来描述程序中的数据。运算成分:描述程序中所需的运算。控制成分:用来构造程序的逻辑控制结构。传输成分:定义数据传输成分,如输入输出语言。6、下列叙述中,不属于软件需求规格说明书的作用的是A、便于用户、开发入员进行理解和交流B、反映出用户问题的结构,可以作为软件开发工作的基础和依据C、作为确认测试和验收的依据D、便于开发入员进行需求分析标准答案:8知识点解析:软件需求规格说明书(SRS,SoftwareRequirementSpecification)是需求分析阶段的最后成果,是软件开发中的重要文档之一。它有以下几个方面的作用:①便于用户、开发人员进行理解和交流;②反映出用户伺题的结构,可以作为软件开发工作的基础和依据;③作为确认测试和验收的依据。7、下列不属于软件工程的3个要素的是1A、工具B、过程C、方法D、环境标准答案:8知识点解析:软件工程包括3个要素,即方法、工具和过程。方法是完成软件工程项目的技术手段;工具支持软件的开发、管理、文档生成;过程支持软件开发的各个环节的控制、管理。8、单个用户使用的数据视图的描述称为A、外模式B、概念模式C、内模式D、存储模式标准答案:1知识点解析:选项A)正确,外模式是用户的数据视图,也就是用户所见到的数据模式;选项B)不正确,全局数据视图的描述称为概念模式,即数据库中全部数据的整体逻辑结构的描述;选项C)不正确,物理存储数据视图的描述称为内模式,即数据库在物理存储方面的描述;选项D)不正确,存储模式即为内模式。9、将E-R图转换到关系模式时,实体与联系都可以表示成A、属性B、关系C、键D、域标准答案:2知识点解析:数据库逻辑设计的主要工作是将E-R图转换成指定RDBMS中的关系模式。首先,从E-R图到关系模式的转换是比较直接的,实体与联系都可以表示成关系,E-R图中属性也可以转换成关系的属性。实体集也可以转换成关系。10、SQL语言又称为A、结构化定义语言B、结构化控制语言C、结构化查询语言D、结构化操纵语言标准答案:4知识点解析:结构化查询语言(StructuredQueryLanguage,简称SQL)是集数据定义、数据操纵和数据控制功能于一体的数据库语言。二、选择题(本题共25题,每题1.0分,共25分。)11、C++语言对C语言做了很多改进,C++语言相对于C语言的最根本的变化是A、增加了一些新的运算符B、允许函数重载,并允许设置缺省参数C、规定函数说明符必须用原型D、引进了类和对象的概念标准答案:8知识点解析:C++语言最重要的特点是其为一种面向对象的程序设计语言,但是C++语言也包含了全部的C语言的特征。12、下列哪个是C++语言的有效标识符?A、No1B、No.1C、12345D、int标准答案:1知识点解析:标识符是一个以字母或下划线开始的,由字母、下划线和数字组成的字符串,标识符不能与任意关键字同名。13、设有定义intx;floaty;,则10+x+y值的数据类型是A、intB、doubleC、floatD、不确定标准答案:4知识点解析:由算术运算符组成的表达式中,若含有不同类型的操作数,则系统隐含地将低类型转化为高类型,由低至高的顺序为int->float->double。14、下列程序的执行结果为#include<iostream.h>voidmain(){inta=3,b=0;int*p=&a;b=+a++;cout<<*p<<’,’<<b<<end1;}A、3,4B、4,3C、3,4D、4,4标准答案:2知识点解析:*p为所指对象a的值,语句“b=+a++;”等价于“b=b+a;a=a+1;”。15、下面程序的运行结果为#include<iostream.h>voidmain(){for(inta=0,x=0;!x&&a<=10;a++){a++;}cout<<a<<end1;}A、10B、11C、12D、0标准答案:4知识点解析:在进入最后一次循环时a=10,在循环体内执行“a++;”后a=11,执行完该次循环体计算for循环的增量部分后a=12小于10,循环结束。16、下列选项,不正确的是A、for(inta=1;a<=10;a++);B、inta=1;do{a++;}while(a<=10)C、inta=1;while(a<=10){a++;}D、for(inta=1;a<=10;a++)a++;标准答案:2知识点解析:本题考查的是基本循环语句的使用,选项A),选项C)和选项D)都为正确的形式,在选项B)中的while(a<=10)后缺少结束符分号“;”。17、下面关于数组的初始化正确的是A、charstr[]={’a’,’b’,’c’}B、charstr[2]={’a’,’b’,’c’}C、charstr[2][3]={{.’a’,’b’},{’c’,’d’},{’e’,’f’}}D、charstr()={’a’,’b’,’c’}标准答案:1知识点解析:本题考查的是字符数组的初始化。选项B)中用3个元素初始化大小为2的数组,越界了;选项C)中应该是2行3列的数组,题中使用3行2列初始化;选项D)中数组合后应用方括号。18、下列程序的输出结果为#include<iostream.h>voidmain(){char*a[]={"hello","the","world"};char**pa=a;pa++;cout<<*pa<<end1;}A、helloB、theC、worldD、hellotheworld标准答案:2知识点解析:本题主要考查的是指针数组和指向指针的指针之间的关系,其中a是指针数组,pa是指向指针数组行的指针,所以pa自加1相当于指向下一行。19、决定C++语言中函数的返回值类型的是A、return语句中的表达式类型B、调用该函数时系统随机产生的类型C、调用该函数时的主调用函数类型D、在定义该函数时所指定的数据类型标准答案:8知识点解析:C++语言中,在定义该函数时所指定的数据类型决定函数的返回值类型。20、下列程序的输出结果是#include<iostream.h>intmin(inta,intb){if(a<b)returna;elsereturnb;return0;}voidmain(){cout<<min(1,min(2,3))<<end1;}A、0B、1C、2D、3标准答案:2知识点解析:本题考查的是函数的调用,第一次调用min(2,3),因为2<3,所以返回值为2,第二次调用min(1,2),因为1<2,所以返回1。21、下列程序的运行结果为#include<iostream.h>voidprint(doublea){cout<<++a;}voidprint(inta,intb){cout<<b<<a;}voidmain(){print(1.2);tout<<"";print(3,4);}A、1.234B、2.234C、1.243D、2.243标准答案:8知识点解析:本题考查的是对重载函数的掌握,因为++a是右结合的,所以a先自加1再输出,即为2.2,之后调用函数print(inta,intb)输出b和a,即43。22、对类成员访问权限的控制,是通过设置成员的访问控制属性实现的,下列不是访问控制属性的是A、公有类型B、私有类型C、保护类型D、友元类型标准答案:8知识点解析:所谓的访问控制只包含公有类型、私有类型和保护类型3种,友元可以是一个函数,也可以是一个类。23、在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并执行其他内部管理操作的函数是A、友元函数B、虚函数C、构造函数D、析构函数标准答案:4知识点解析:构造函数在创建对象时系统自动调用,其功能是使用给定的值将对象初始化。24、类的析构函数的作用是A、一般成员函数的初始化B、类的初始化C、对象的初始化D、删除类创建的对象标准答案:8知识点解析:析构函数就是用来释放对象的,它的调用完成之后,对象也就消失了,相应的内存空间也被释放了。25、下列说法正确的是A、内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方B、内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方C、类的内联函数必须在类体内定义D、类的内联函数必须在类体外通过加关键字inline定义标准答案:2知识点解析:本题考查的是内联函数的定义,引入内联函数是为了解决程序中函数调用的效率问题,是以目标代码的增加为代价换取时间的节省;一般函数在运行时被调用,而调用的内联函数在编译时就被替代了,如果不加inline关键字,则编译器会将在类说明部分定义的任何函数都被认定为内联函数。26、下面对静态数据成员的描述中,正确的是A、静态数据成员可以在类体内进行初始化B、静态数据成员不可以被类的对象调用C、静态数据成员不能受private控制符的作用D、静态数据成员可以直接用类名调用.标准答案:8知识点解析:静态数据成员必须在类体外初始化,它是类的所有对象的共有成员,需要使用类名调用,静态数据成员的初始化与权限控制无关。27、下面对于友元函数描述正确的是A、友元函数的实现必须在类的内部定义B、友元函数是类的成员函数C、友元函数破坏了类的封装性和隐藏性D、友元函数不能访问类的私有成员标准答案:4知识点解析:友元函数的定义既可以在类内部进行,也可以在类外部进行。它提高了程序的运行效率,但破坏了类的封装性和隐藏性,使得类的非成员函数可以访问类的私有成员。28、在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是A、派生类的对象可以赋给基类的对象B、派生类的对象可以初始化基类的引用C、派生类的对象可以直接访问基类中的成员D、派生类的对象的地址可以赋给指向基类的指针标准答案:4知识点解析:公有继承的派生类和基类是子类型的关系,所谓子类型是类型间一般和特殊的关系,即派生类是基类的子类型或者说基类的操作可以被用于操作派生类的对象。29、下面程序的运行结果为#include<iostream.h>classA{public:A(){cout<<"1";}~A(){cout<<"2";}};classB:publicA{public:B(){cout<"3";}~B(){cout<<"4";}};voidmain(){BA、1234B、1324C、1342D、3142标准答案:4知识点解析:本题考查的是在继承中构造函数和析构函数的调用顺序,应该是先调用基类的构造函数,再调用派生类的构造函数,调用析构函数时的顺序是先调用派生类的析构函数,后调用基类的析构函数。30、下列关于虚基类的描述,错误的是A、设置虚基类的目的是为了消除二义性B、虚基类的构造函数在非虚基类之后调用C、若同一层中包含多个虚基类,这些虚基类的构造函数按它们说明的次序调用D、若虚基类由非虚基类派生而来,则仍然先调用基类构造函数,再调用派生类的构造函数标准答案:2知识点解析:虚基类的引入就是为了消除二义性,其构造函数的调用仍然是按照继承的顺序进行的,对于多个虚基类则按它们说明的次序调用,虚基类的构造函数选于非虚基类的构造函数执行。31、下列关于多态性的描述,错误的是A、C++语言中的多态性分为编译时的多态性和运行时的多态性B、编译时的多态性可通过函数重载实现C、运行时的多态性可通过模板和虚函数实现D、实现运行时多态性的机制称为动态绑定标准答案:4知识点解析:编译时的多态性是通过函数重载和模板体现的,运行时的多态性是通过虚函数体现的。32、下列运算符中,在C++语言中不能重载的是A、*B、>=C、::D、/标准答案:4知识点解析:不能被重载的运算符还包括:“.”,“.*”,“->*”和“?:”。33、当使用fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为A、ios::inB、ios::outC、ios::in|ios::outD、以上都不对标准答案:8知识点解析:使用fstream类建立文件流必须定义打开方式,否则编译器无法判断该文件流是读还是写。34、下列程序的运行结果是#include<iostream.h>classA{inta;public:A(){a=0;}A(intaa){a=aa;cout<<a++;}};voidmain(){Ax,y(2),z(3);cout<<end1;}A、0B、23C、34D、25标准答案:2知识点解析:本题考查的是对构造函数的掌握,另外“++”运算符是右结合的,所以在进行输出的时候都是先把原来的输出后再自加1。35、下面程序的输出结果是#include<iostream,h>classexample{inta;public:example(intb){a=b++;}voidprint(){a=a+1;cout<<a<<"";}voidprint()const{cout<<a<<"";}};voidmain(){exampleX(3);A、22B、43C、42D、32标准答案:4知识点解析:“++”是右结合的,所以先赋值为3,最后输出3+1;常成员函数只有常对象才能调用,所以输出2。三、公共基础填空题(本题共5题,每题1.0分,共5分。)36、在长度为n的有序线性表中进行二分查找,需要的比较次数为【】。标准答案:log2n知识点解析:二分法查找只适用于顺序存储的有序表。对于长度为n的有序线性表,在最坏情况下,二分查找只需要比较log2n次。37、需求分析阶段的工作,可以分成以下4个方面:【】、分析与综合、编写需求规格说明书和评审。标准答案:需求获取知识点解析:需求分析的任务是发现需求、求精、建模和定义需求的过程,由需求分析的定义可知,需求分析的内容包括:提炼、分析和仔细审查已收集到的需求。因此需求分析阶段的工作,可以分成以下四个方面:需求获取、分析与综合、编写需求规格说明书和评审。38、联接运算是将两个或两个以上的关系根据联接条件生成一个【】。标准答案:新关系知识点解析:关系的联接运算是指将两个或两个以上的关系根据联接条件生成一个新关系。常见的联接有等值联接和自然联接。39、若a是float型变量,且a=6,则表达式“a/2+(int)(a+1)%2”的值为【】。标准答案:4知识点解析:a/2的值为3,表达式(int)(a+1)%2的值为1,所以最后结果为4。40、选择运算的结果关系同原关系具有【】的结构框架,投影运算的结果关系同原关系通常具有【】的结构框架。标准答案:相同不同知识点解析:结构框架是由n个命名的属性组成,如果将一个关系看作一张表,那么选择操作就是从这张表中选出一些行而丢弃另一些行。而投影操作则是从这张表中选出某些列而丢弃另一些列。如果只对一个关系中的某些属性感兴趣,那么就需要使用投影操作在这些属性上投影该关系。因此,选择运算的结果关系同原关系具有相同的结构框架,投影运算的结果关系同原关系通常具有不同的结构框架。四、填空题(本题共8题,每题1.0分,共8分。)41、下面语句段的输出结果是【】。intx=0,y=2,z=3;switch(x){case0:switch(y){case1:cout<<’*’;break;case2:cout<<’%’;break;}case1:switch(z){case1:cout<<’$’;bre标准答案:%#知识点解析:本题考核选择语句的嵌套使用。由于第1个case后面没有跳转语句“break;”,所以程序还要进入第2个分支执行。因此程序最后输出“%#”。42、若要把类FriendClass定义为类MyClass的友元类,则应在类MyClass的定义中加入语句【】。标准答案:friendFriendClass;知识点解析:本题考核友元类的声明。友元类可以在另一个类的公有部分或私有部分进行说明,说明的方法为:friend<类名>;43、有如下的类的模板定义:template<classT>classMyClass{private:Tnumber;public:MyClass(Tk);…};其中构造函数MyClass()用k的值初始化数据成员n。因此在模板类体外,构造函数MyClass应定义为【】。标准答案:template<classT>/MyClass<T>::MyClass(Tk):number(k){}知识点解析:类模板的成员函数的类体外的定义以“template<classT>”开头。44、有以下程序:#include<iostream>usingnamespacestd;classMyClass{public:MyClass();~MyClass();staticints;voidSetValue(intval);};intMyClass::s=0;MyClass::MyClass(){s++;}voidMy标准答案:3知识点解析:本题程序中把变量s定义为静态数据成员,它被MyClass类的所有对象所共享,但它不属于类的任何一个对象,它的作用域是类范围。在类MyClass的构造函数中,每创建一个对象,s就增1。由此可知,s用来记录建立对象的个数。由于创建对象指针p时并不会调用构造函数,所以s最后的值是3。45、有以下程序:#include<iostream>usingnamespacestd;classBase{private:inta,b;public:Base(intx,inty){a=x;b=y;}voidShow(){cout<<a<<’,’<<b<<end1;}}标准答案:10,20知识点解析:本题考核基类指针的使用。本题首先定义了一个基类Base和一个由Base派生出来的派生类Derive。在主函数中,定义了一个基类Base指针pb和基类对象b,还定义了派生类Derive的对象d。然后将派生类对象d的地址赋值给指向基类Base的指针pb。由于Derive是Base的子类型,因此允许上述赋值。但这时指针pb只能使用从基类Base继承的成员,即当pb指向d对象时,pb->show还是调用基类Base的成员函数show()。所以程序最后输出的对象d中对基类成员的初始化值,即10,20。46、设文件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”。47、写出执行完下列代码段之后指定变量的值:boolx=true,y=false,z=false;x=x&&y||z;y=x||y&&z;z=!(x!=y)||(y==z);则x=false,y=【】,z=【】。标准答案:falsetrue知识点解析:执行语句“x&&y||z;”后,x的值变为false。执行“x||y&&z”后,y的值变为false,执行“!(x!=y)||y==z);”后,z的值变为true。48、将下面的语句段(A)补充完整,使其和语句段(B)在功能上完全等价。(a)doubles=0.0;【】;intk=0;do{s+=d;k++;d=1.0/(k*k+1);}while(【】);(b)doubles=1.0;for(intk=1;k<=10;k++)s+=1.0/(k*(k+1));标准答案:d=1.0k<=10知识点解析:本题考核while循环与for循环之间的转换。只要把握住循环的起始条件、结束条件和变量控制,就易解这种类型的题目。国家二级(C++)笔试模拟试卷第4套一、公共基础选择题(本题共10题,每题1.0分,共10分。)1、设有一个10阶的对称矩阵A[10][10],采用压缩存储方式按行将矩阵中下三角部分的元素存入一维数组B[]中,A[0][0]存入B[0]中,则A[8][5]在B[]中()位置。A、32B、33C、41D、65标准答案:C知识点解析:设有一个10阶的对称矩阵A[10][10],采用压缩存储方式按行将矩阵中下三角部分的元素存入一维数组B[]中,A[0][0]存入B[0]中,则A[8][5]在B[]中41=1+2+3+4+5+6+7+8+5位置。2、设F是一个森林,B是由F转换得到的二叉树,F中有几个非叶结点,则B中右指针域为空的结点有()个。A、n-1B、nC、n+1D、n+2标准答案:C知识点解析:具体方法是:①将森林中的每棵树变为二叉树。②因为转换所得的二叉树的根结点的右子树均为空,故可将各二叉树的根结点视为兄弟从左至右连在一起,就形成了一棵二叉树。3、在一个无向图中,所有顶点的度数之和等于所有边数的()倍。A、3B、2C、1D、1/2标准答案:B知识点解析:在一个无向图中,所有顶点的度数之和等于所有边数的2倍。4、由两个栈共享一个向量空间的好处是()。A、减少存取时间,降低下溢发生的几率B、节省存储空间,降低上溢发生的几率C、减少存取时间,降低上溢发生的几率D、节省存储空间,降低下溢发生的几率标准答案:B知识点解析:由两个栈共享一个向量空间的好处是节省存储空间,降低上溢发生的几率。5、设数组data[m]作为循环队列SQ的存储空间,front为队头指针,rear为队尾指针,则执行出队操作后其头指针front值为()。A、front=front+1B、front=(front+1)%(m-1)C、front=(front-1)%mD、front=(front+1)%m标准答案:D知识点解析:设数组data[m]作为循环队列SQ的存储空间,front为队头指针,rear为队尾指针,则执行出队操作后其头指针front值为front=(front+1)%m。6、一个非空广义表的表头()。A、不可能是子表B、只能是子表C、只能是原子D、可以是子表或原子标准答案:D知识点解析:一个非空广义表的表头可以是子表或原子。7、用某种排序方法对关键字序列(25,84,21,47,15,27,68,35,20)进行排序时,序列的变化情况如下:20,15,21,25,47,27,68,35,8415,20,21,25,35,27,47,68,8415,20,2重,25,27,35,47,68,84则所采用的排序方法是()。A、选择排序B、希尔排序C、归并排序D、快速排序标准答案:D知识点解析:快速排序的基本思想是基于分治策略的。对于输入的子序列L[p..r],如果规模足够小则直接进行排序,否则分三步处理:①分解(Divide):将输入的序列L[p..r]划分成两个非空子序列L[p..q]和L[q+1..r],使L[p..q]中任一元素的值不大于L[q+1..r]中任一元素的值。②递归求解(Conquer):通过递归调用快速排序算法分别对L[p..q]和L[q+1..r]进行排序。③合并(Merge):由于对分解出的两个子序列的排序是就地进行的,所以在L[p..q]和L[q+1..r]都排好序后不需要执行任何计算L[p..r)就已排好序。8、适于对动态查找表进行高效率查找的组织结构是()。A、有序表B、分块有序表C、三叉排序树D、线性链表标准答案:C知识点解析:适于对动态查找表进行高效率查找的组织结构是三叉排序树。9、不定长文件是指()。A、文件的长度不固定B、记录的长度不固定C、字段的长度不固定D、关键字项的长度不固定标准答案:B知识点解析:不定长文件是指记录的长度不固定。10、n个顶点.的连通图至少有()条边。A、n-1B、nC、n+1D、0标准答案:A知识点解析:n个顶点的连通图至少有n-1条边。二、选择题(本题共25题,每题1.0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 26年靶向疗效全程管理
- 肝硬化腹水的护理挑战
- 褥疮护理技巧分享
- 颅脑损伤患者出院指导与随访
- 麦粒肿的日常护理注意事项
- 颅脑损伤患者循环系统护理
- 胃炎护理中的家庭环境布置
- 2026年自动化控制系统集成项目验收标准与调试
- 2026年超短波手持对讲机应急操作手册
- 2026年幼儿园劳动教育教师培训与教研指导手册
- 26年类器官药敏联合基因检测用药
- 2026年西安建筑科技大学《绿色建筑学报》编辑部招聘(3人)笔试参考题库及答案解析
- 2026年北京市东城区高三二模生物试卷(含答案)
- T/CSMTNY 003-2026管输掺氢天然气质量分析与流量计量技术指南
- (2026年)压疮的预防及护理课件
- 2026届广西南宁市4月高中毕业班质量调研英语试卷(含答案无听力音频无听力原文)
- 侍茄师(雪茄服务师)初级测试题
- 嘉定区家委会工作制度
- 2026届上海市中考化学模拟试卷(含答案解析)
- 宠物泪痕去除清洁护理专业指南
- 2025年危险品管理培训
评论
0/150
提交评论