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

下载本文档

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

文档简介

国家二级(C++)笔试模拟试卷5(共9套)(共439题)国家二级(C++)笔试模拟试卷第1套一、公共基础选择题(本题共10题,每题1.0分,共10分。)1、下列数据结构中,按先进后出原则组织数据的是A、线性链表B、栈C、循环链表D、顺序表标准答案:B知识点解析:暂无解析2、具有3个节点的二叉树有A、2种形态B、4种形态C、7种形态D、5种形态标准答案:D知识点解析:暂无解析3、设有下列二叉树:对此二叉树前序遍历的结果为A、ZBTYCPXAB、ATBZXCYPC、ZBTACYXPD、ATBZXCPY标准答案:B知识点解析:暂无解析4、结构化程序设计主要强调的是A、程序的规模B、程序的效率C、程序设计语言的先进性D、程序易读性标准答案:D知识点解析:暂无解析5、程序的3种基本控制结构是A、过程、子过程和分程序B、顺序、选择和重复C、递归、堆栈和队列D、调用、返回和转移标准答案:B知识点解析:暂无解析6、下列叙述中,不属于测试的特征的是A、测试的挑剔性B、完全测试的不可能性C、测试的可靠性D、测试的经济性标准答案:C知识点解析:暂无解析7、需求分析中开发人员要从用户那里了解A、软件做什么B、用户使用界面C、输入的信息D、软件的规模标准答案:A知识点解析:暂无解析8、下列关系模型中,能使经运算后得到的新关系中属性个数多于原来关系中属性个数的是A、选择B、连接C、投影D、并标准答案:B知识点解析:暂无解析9、下列叙述中,正确的是A、用E-R图能够表示实体集间一对一的联系、一对多的联系和多对多的联系B、用E-R图只能表示实体集之间一对一的联系C、用E-R图只能表示实体集之间一对多的联系D、用E-R图表示的概念数据模型只能转换为关系数据模型标准答案:A知识点解析:暂无解析10、“年龄在18~25之间”这种约束是属于数据库当中的A、原子性措施B、一致性措施C、完整性措施D、安全性措施标准答案:C知识点解析:暂无解析二、选择题(本题共23题,每题1.0分,共23分。)11、以下哪个特征不是面向对象思想中的主要特征?A、多态B、继承C、封装D、垃圾回收标准答案:D知识点解析:暂无解析12、以下哪个不是C++语言中的有效标识符?A、34aB、_ABC、A_BD、A25标准答案:A知识点解析:暂无解析13、C++中运算符优先级由高到低排列正确的是A、::+++||B、<*||,C、sizeof%+::D、,&&newsizeof标准答案:A知识点解析:暂无解析14、下面程序的运行结果是#include"iostream.h"#definesum(a,b)a*bvoidmain(){intx;X=sum(1+2,3);cout<<x;}A、0B、9C、7D、5标准答案:C知识点解析:暂无解析15、以下for语句中不是死循环的是A、for(inti=0;i<1;++i);B、for(inti=0;;++i);C、for(inti=1;i>0;++i);D、for(;;);标准答案:A知识点解析:暂无解析16、关于continue语句叙述不正确的是A、continue语句用于循环体中,结束循环B、continue语句用于循环体中,它使执行流跳出循环体中尚未执行的语句,并进行下一循环判断C、continue可以用于if语句中D、continue语句不能代替break语句标准答案:A知识点解析:暂无解析17、以下定义数组中错误的是A、inta[10];B、inta[2][120];C、inta[20][];D)inta[];D、C标准答案:知识点解析:暂无解析18、下面程序的执行结果是#include"iostream.h"voidmain(){int*p,r;p=newint;*p=20;r=sizeof(*p);cout<<r<<endl;deletep;}A、程序错误B、内存为20地址的大小C、20D、4标准答案:D知识点解析:暂无解析19、下面程序错误的语句是#include"iostream.h"①voidmain()②{③intA=0;④int&B;⑤B=A;⑥cout<<B;⑦cout<<A;⑧}A、②B、③C、④D、⑥标准答案:C知识点解析:暂无解析20、函数inttest(inta,intb=1,intc=0),下列调用不合法的个数是test(0);test(0,0);test();test(0,0,0);A、0B、1C、2D、3标准答案:C知识点解析:暂无解析21、C++语言中类定义中默认的访问权限是A、publicB、protectedC、privateD、default标准答案:C知识点解析:暂无解析22、C++语言中关于构造函数的说法正确的是A、构造函数的函数名不必和类名相同B、构造函数只能有一个C、每个类必定有构造函数D、构造函数必有返回值标准答案:C知识点解析:暂无解析23、关于构造函数A()的拷贝构造函数正确的是A、A(A*B);B、A(AB);C、A(A&B);D、A(A);标准答案:C知识点解析:暂无解析24、下面程序的执行结果为#includ"iostream"usingnamespacestd;classA{inta;public:voidSeta(intx){a=x;}voidDisplay_a(){cout<<a<<endl;}};classB{intb;public:voidSetb(intx){b=x;}voidA、输出为223B、有错误在第5行C、输出为123D、有错误在第7行标准答案:D知识点解析:暂无解析25、虚函数必须是类的A、成员函数B、友元函数C、构造函数D、析构函数标准答案:A知识点解析:暂无解析26、多态性指的是A、以任何方式调用一个虚函数B、以任何方式调用一个纯虚函数C、借助于指向对象的基类指针或引用调用一个虚函数D、借助于指向对象的基类指针或引用调用一个纯虚函数标准答案:C知识点解析:暂无解析27、不能重载的运算符是A、newB、sizeofC、.*D、++标准答案:C知识点解析:暂无解析28、只能作为成员函数重载的是A、=B、++C、*D、new标准答案:A知识点解析:暂无解析29、关于模板,下列说法不正确的是A、用类模板定义一个对象时,不能省略实参B、类模板只能有虚拟类型参数C、类模板本身在编译中不会生成任何代码D、类模板的成员函数都是模板函数标准答案:B知识点解析:暂无解析30、语句cout<<setprecision(2)<<1024.4567;的输出结果为A、1024.4567B、1024C、1024.45D、le+003标准答案:D知识点解析:暂无解析31、下面程序的结果为#include"iostream.h"voidchange(inta,intB){inttemp;temp=a;a=b;b=temp;}voidmain(){intm,n;m=8;n=9;change(m,n);cout<<m<<""<<n<<endl;}A、89B、98C、程序有错误D、99标准答案:A知识点解析:暂无解析32、下面程序的结果是#include"iostream.h"voidmain(){char*str;Str="test!";cout<<str[5];}A、程序错误B、!C、’\0’D、为空字符标准答案:D知识点解析:暂无解析33、下面程序输出的结果为#include"iostream.h”classA{public:A(){cout<<"CLASSA"<<endl;}~A(){}};classB:publicA{public:B(){cout<<"CLASSB"<<endl;}~B(){}};voidmain(){A*p;p=newB;A、CLASSACLASSBCLASSBCLASSBB、CLASSACLASSBCLASSACLASSBC、CLASSACLASSBCLASSBD、CLASSACLASSB标准答案:C知识点解析:暂无解析34、C++语言函数中不能由系统自动生成的是A、析构函数B、构造函数C、内联函数D、复制构造函数标准答案:C知识点解析:暂无解析三、公共基础填空题(本题共5题,每题1.0分,共5分。)35、在结构化设计方法中,数据流图表达了问题中的数据流与加工间的关系,并且每一个______实际上对应一个处理模块。标准答案:加工知识点解析:数据流图是从数据传递和加工的角度,来刻画数据流从输入到输出的移动变换过程,其中的每一个加工对应一个处理模块。36、结构化程序设计的3种基本结构分别是顺序、选择和______。标准答案:重复(或循环)知识点解析:结构化程序设计包括3种基本的结构:顺序结构、选择结构和重复结构(循环结构)。利用这3种结构就足以表达出各种其他结构形式的程序设计方法,其中利用循环结构,可以简化大量的程序执行。37、二分法查找仅限于这样的表:表中的数据元素必须有序,其存储结构必须是______。标准答案:顺序存储(顺序方式存储)知识点解析:二分法查找对表的要求是有序的顺序表,即第一要求是数据元素有序,第二要求是按顺序方式存储。38、一个模块直接调用的其他模块的个数称为______。标准答案:扇出知识点解析:在结构图中,调用一个给定模块的模块个数称为扇入,一个模块直接调用的其他模块个数称为扇出。39、数据库系统中实现各种数据管理功能的核心软件是______。标准答案:数据库管理系统知识点解析:数据库管理系统是数据库的管理机构,它是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等。四、填空题(本题共10题,每题1.0分,共10分。)40、在多继承的基类和派生类中同时出现______存在二义性。标准答案:同名函数知识点解析:如果一个派生类有多个直接基类,而这些直接基类又有一个共同的基类,这样存在的同名函数法判断调用的确定性。即存在二义性。41、有下列程序:#include<iostream>usingnamespacestd;classTestClass1{public:TestClass1(){cout<<"A";}};classTestClass2<public:TestClass2(){cout<<"B";}};classTestClass3:publicTestClass1{TestClass2b;标准答案:ABC知识点解析:主函数中定义TestClass3对象。obj,其中TestClass3继承于TestClass1,先初始化基类构造函数,所以输出A。然后在TestClass3中定义TestClass2对象b,输出B,最后派生类的构造函数输出C。所答案为ABC。42、编译时的多态性可以通过使用______获得。标准答案:虚函数和对象知识点解析:多态性是指一个接口,多种方法。而虚函数的作用是允许在派生类中重新定义与基类同名的函数,并且通过基类指针或引用来访问基类和派生类中的同名函数。通过对象名调用的虚函数,可以在运行阶段把虚函数和类对象“绑定”在一起。43、如果使用数组名称为函数参数,形实结合时,传递的是______。标准答案:地址知识点解析:此题考查的是函数参数的传递方式。函数参数的传递方式分为传值和传地址两种。使用数组名作为函数参数,因为数组名代表的是数组的首地址,所以传递的是地址。44、在类的对象被创建时,______函数会被自动调用。标准答案:构造知识点解析:此题考查的是构造函数的应用。构造函数的作用是在对象被创建时利用特定的值构造对象,构造函数在对象被创建时由系统自动调用。45、下列程序的执行结果是______。#include<ioStream.h>#include<iomanip.h>usingnamespacestd;voidmain(){cout<<setfill(’x’)<<setw(10);cout<<"Hello"<<end1;}标准答案:xxxxxHello知识点解析:此题考查的是I/O的格式化输出。Setfill(’x’)表示填充字符为’x’,并且一直有效;setw(10)表示将输入输出的宽度设置为10,宽度设置的效果只对以此次输入或输出有效,在完成一个数据的输入或输出后,宽度自动恢复为0;题目中字符串"Hello"的宽度不够10,所以其前面将有5个填充符’x’。46、请将下列类定义补充完整。classBase{public:voidfun(){cout<<"Base∷fun"<<end1;}};c1assDehVed:publicBase{public:voidfun(){______∥显式调用基类的fun函数cout<<"Derived∷fun"<<endl;}};标准答案:Base∷fun();知识点解析:此题考查的是虚基类的使用。使用符号“∷”可以用来限定要访问的成员所在的类的名称。在派生类中对基类成员的访问应该是唯一的,但是,多继承情况下就需要通过使用对象作用域分辨来解决这种对基类成员访问的二义性问题。47、有下列程序:#include<iostream>usingnamespacestd;classONE{public:virtualvoidf(){COUt<<"1";}};c1assTWO:publicONE{public:TWO(){cout<<"2";}};classTHREE:publicTWO{pub标准答案:2213知识点解析:此题考查的是派生类的构造和析构函数。建立TWO的对象bb时,调用TWO的构造函数,输出“2”;THREE类又派生于TWO类,所以建立THREE类的对象cc时又会输出“2”;ONE类的对象指针p指向了THREE类的ONE类的虚函数f(),输出“1”;最后调用THREE类的f(),输出“3”。故最终的输出结果是2213。48、在声明派生类时,如果不显式地给出继承方式,缺省的类继承方式是私有继承private。已知有如下类定义:classBase{protected:voidfun(){}};classDerived:Base{};则Base类中的成员函数fun(),在Derived类中的访问权限是______(注意:要求填写private、protected或public中的一项)。标准答案:private知识点解析:因为Derived类私有继承Base类,所以Base类中的公有和保护成员成为Derived类的私有成员,Base类的保护成员在Derived类中不可访问。因此,Base类中的保护成员函数fun()在Derived类中的问权限是private。49、已知下列程序的输出结果是42,请将横线处缺失的部分补充完整。#include<iostream>usingnamespacestd;classFoo{intvalue;public:Foo():value(0){}voidsetValue(intvalue){______=value;∥给Foo的数据成员value赋值}标准答案:this->value或Foo∷value知识点解析:由于Foo类的数据成员和函数的形参名称都是value,如果在函数中直接使用value引用的是形参变量而不是Foo类的数据成员,解决办法有两种:一是通过this指针,在类的成员函数中this代表数所属对象的指针,即可填this->value;二是通过作用域运算符“∷”明确指出访问的是Foo类的成员,所以还可入Foo∷value。国家二级(C++)笔试模拟试卷第2套一、公共基础选择题(本题共10题,每题1.0分,共10分。)1、下述关于数据库系统的叙述中正确的是A、数据库系统减少了数据冗余B、数据库系统避免了一切冗余C、数据库系统中数据的一致性是指数据类型一致D、数据库系统比文件系统能管理更多的数据标准答案:A知识点解析:数据库是一个通用化的、综合性的数据集合,它可以为各种用户所共享,具有最小的冗余度和较高的数据与程序的独立性,而且能并发地为多个应用服务,同时具有安全性和完整性。即数据库系统减少了数据冗余,但不能避免一切冗余。所以选项A正确,选项B错误。在数据库管理阶段中,数据是结构化的,面向系统,数据冗余度小,从而节省了数据的存储空间,也减少了对数据的存取时间,提高了访问效率,避免了数据的不一致性。数据的不一致性,是指对数据的存取方式,选项C错误。数据库系统比文件系统能管理更多的数据,并非是数据库系统的特点,选项D错误。本题正确答案是A。2、在下列关系运算中,可能改变关系中属性个数的是A、并B、差C、投影D、交标准答案:C知识点解析:投影运算是在给定关系的某些域上进行的运算。通过投影运算可以从一个关系中选择出所需要的属性成分,并且按要求排列成一个新的关系,而新关系的各个属性值来自原关系中相应的属性值。因此,经过投影运算后,会取消某些列,即投影运算可能改变关系中属性的个数。3、A、

B、

C、

D、

标准答案:D知识点解析:暂无解析4、A、

B、

C、

D、

标准答案:C知识点解析:暂无解析5、在数据库设计中,将E-R图转换为关系模式的过程属于()。A、需求分析阶段B、逻辑设计阶段C、概念设计阶段D、物理设计阶段标准答案:B知识点解析:暂无解析6、下列语句中,错误的是A、constintbuffer=256;B、constinttemp;C、constdouble*point;D、constdouble*rt=newdouble(5.5);标准答案:B知识点解析:用const修饰常量就变为常变量,常变量一旦被建立,就不能被更改。在被定义时就应该给常变量赋初始值,而常指针则不同,被定义后,它指向的地址不能发生改变,但是指向的地址中的数据可以改变。7、若磁盘上已存在某个文本文件,其全路径文件名为d:\ncre\test.txt,下列语句中不能打开该文件的是A、ifstreamfile("d:\ncre\test.txt");B、ifstreamfile("d:\\ncre\\test.txt");C、ifstreamfile;file.open("d:\\ncre\\test.txt");D、ifstream*pFile=newifstream("d:\\ncre\\test.txt");标准答案:A知识点解析:文件流的打开路径用“\\”隔开,而不是“\”,但可以用“/”隔开。8、A、

B、

C、

D、

标准答案:D知识点解析:在软件开发的过程中,应该尽早的制定测试计划,其中在需求分析阶段制定系统测试计划,在概要设计阶段制定集成测试计划,在详细设计阶段制定单元测试计划。9、关系模型允许定义3类数据约束,下列不属于数据约束的是A、实体完整性约束B、参照完整性约束C、域完整性约束D、用户自定义的完整性约束标准答案:4知识点解析:关系模型允许定义3类数据约束,它们是实体完整性约束、参照完整性约束及用户自定义的完整性约束。其中前两种完整性约束由关系数据库系统支持,对于用户自定义的完整性约束,则由关系数据库系统提供完整性约束语言,用户利用该语言给出约束条件,运行时由系统自动检查。10、软件工程的理论和技术性研究的内容主要包括软件开发技术和A、消除软件危机B、软件工程管理C、程序设计自动化D、实现软件可重用标准答案:2知识点解析:软件工程的目标是,在给定的成本、进度的前提下,开发出具有有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性且满足用户需求的产品。基于这一目标,软件工程的理论和技术性研究的内容主要包括:软件开发技术和软件工程管理。二、选择题(本题共25题,每题1.0分,共25分。)11、有以下程序:#include<iostream>usingnamespacestd;intmain(){intx=15;while(x>10&&x<50){x++;if(x/3){x++;break;}}cout<<x<<endl;return0;}执行后的输出结果是A、15B、16C、17D、18标准答案:C知识点解析:本题考核选择语句与循环语句的嵌套。由程序可知,当x=16时,满足if条件表达式,进入if分支,执行“x++;break;",所以最后程序输出x的值为17。12、下列数组的定义中,会产生错误的是A、inta[]={’0’,’1’,’2’,’3’,’4’,’5’,’6’);B、inta[10]={0,1,2,3,4,5,6};C、chara[5]="hello";D、chara[5]={’h’,’e’,’r’,’l’,’o’};标准答案:C知识点解析:本题考核数组的定义和初始化。下面逐项进行分析:A选项中,数组a的定义和初始化符号数组的定义和初始化语法,故正确;B选项中,数组a初始化的值虽然没有10个,但对于少的部分,系统会自动补0,所以B选项中数组的定义也是正确;C选项中,数组a的长度为5,但字符串"hello"的长度为5+1=6,字符串结束符’\0’无法存储在数组中,所以是错误的;D选项中,数组a的定义是正确的。13、下列说法正确的是()。A、内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方B、内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方C、类的内联函数必须在类体内定义D、类的内联函数必须在类体外通过加关键字inline定义标准答案:B知识点解析:本题考查的是内联函数的定义,引入内联函数是为了解决程序中函数调用的效率问题,是以目标代码的增加为代价换取时间的节省;一般函数在运行时被调用,而调用的内联函数在编译时就被替代了,如果不加inline关键字,则编译器会将在类说明部分定义的任何函数都被认定为内联函数。14、下列程序的输出结果为()。#include<iostream.h)classTestClass{public:TestClass(){val++;}static,intval;};intTestClass::val=0;voidmain(){TestClasscs1;cout<<csl.val<<““;TestClasscs2;TestClasscs3,cs4;coA、03B、13C、14D、24标准答案:C知识点解析:由主函数main入手,定义TestClass类的对象cs1,执行es1.va1,其中va1为静态变量,根据“tntTestClass::val=0:”初始化,TestClass中的TestClass(){val++;}构造函数执行后,val值为1。主函数中接着定义对象cs2,cs3,cs4。执行“cout<<cs2.va1<<end1”中的val值为4,所以输出为14。15、()既可重载为一元运算符,又可重载为二元运算符。A、“*”B、“=”C、“=”和“*”D、“*”和“*++”标准答案:A知识点解析:此题考查的是运算符的有关概念。“*”是二元运算符,既可以用于间接访问也可用于两数乘;而“=”和“++”都是一元运算符。16、软件开发离不开系统环境资源的支持,其中必要的测试数据属于A、硬件资源B、通信资源C、支持软件D、辅助资源标准答案:D知识点解析:软件测试过程中,辅助资源包括测试用例(测试数据)、测试计划、出错统计和最终分析报告等。17、以下程序的输出结果是()。#include<iostream.h>voidmain(){inta=0,i;for(i=1;i<5;i++){switch(i){case0:case3:a+=2;case1:case2:a+=3;default:a+=5;}}cout<<a<<end1;return;}A、31B、13C、10D、20标准答案:1知识点解析:暂无解析18、关于语句#include<iostream>usingnamespacestd;voidmain(){cout<<100.8989663<<’’;com<<fixed<<100.8989663<<’’;cout<<scientific<<100.8989663<<’’;}的输出结果为()A、100.899100.8989661.008990e+002B、100.8989663100.8989661.008990e+002C、100.899100.8989661.008989e+002D、100.899100.89896631.008989e+002标准答案:1知识点解析:暂无解析19、下述静态数据成员的特性中,()是错误的。A、说明静态数据成员时前边要加修饰符staticB、静态数据成员要在类体外进行初始化C、引用静态数据成员时,要在静态数据成员名前加<类名>和作用域运算符D、静态数据成员不是所有对象所共用的标准答案:2知识点解析:暂无解析20、下列程序用来判断数组中特定元素的位置所在,则输出结果为()。#include<conio.h>#include<iostream.h>intfun(int*s,intt,int*k){inti;*k=0;for(i=0;i<t;i++)if(s[*k]<s[i])*k=i;returns[*k];}voidmain(){inta[10]=(876,675,896,101,301,401,980,431,451,777);intk;fun(a,10,&k);cout<<k<<’,’<<a[k];}A、7,431B、6C、980D、6,980标准答案:8知识点解析:暂无解析21、在下面关于函数的描述中错误的是______。A、在一个源文件中,如果函数定义在先,调用在后,则不必声明该函数B、如果一个函数在一个源文件里定义,而调用在另一个源文件中,则必须在调用之前声明该函数C、函数的声明应使用函数原型D、在一个源文件中,如果自定义函数调用在先,定义在后,则不必声明该函数标准答案:8知识点解析:暂无解析22、以下不正确的是______。A、语句for(i=0:;i++)表示无限循环B、for(;;)表示无限循环C、for()也表示无限循环D、while(1)表示无限循环标准答案:4知识点解析:暂无解析23、在数据流图(DFD)中,带有名字的箭头表示______。A、控制程序的执行顺序B、模块之间的调用关系C、数据的流向D、程序的组成成分标准答案:4知识点解析:在数据流图(DFD)中,带有名字的箭头表示数据的流向。24、在下面的函数声明中,存在语法错误的是______。A、voidBC(inta,int)B、voidBD(int,int)C、voidBE(int,int=5)D、voidBF(intx;inty)标准答案:8知识点解析:D选项用“;”(分号)分隔参数,所以存在语法错误。25、已知下列语句中的x和y都是int型变量,其中错误的语句是______.A、x=y++;B、x=++y;C、(x+y)++;D、++x=y;标准答案:4知识点解析:(x+y)++操作应该是,(x+y)=x+y,然后(x+y)++,这是不正确的操作,所以此题应该选择C。26、下面不是派生类对基类的继承方式的是()。A、privateB、publicC、staticD、protected标准答案:4知识点解析:暂无解析27、下面关于C++语言变量的叙述错误的是A、C++语言中变量分为auto,static,extern和register四种存储类型B、自动变量和外部变量的作用域为整个程序C、内部静态变量的作用域是定义它的函数D、外部静态变量的作用域是定义它的文件标准答案:2知识点解析:自动变量是函数体或分程序内定义的变量,它的作用域在所定义的函数体内或分程序体内。28、可以用p.a的形式访问派生类对象p的基类成员a,其中a是A、私有继承的公有成员B、公有继承的私有成员C、公有继承的保护成员D、公有继承的公有成员标准答案:8知识点解析:只有公有继承的公有成员才能被派生类的对象直接访问,其他的情况都会因为访问权限问题产生错误。29、重载输入流运算符<<必须使用的原型为A、ostream&operator>>(ostream&,<类名>);B、istream&operator>>(istream&,<类名>&);C、ostreamoperator>>(ostream,<类名>&);D、<类名>operator>>(istream&,<类名>&);标准答案:1知识点解析:本题考核运算符的重载。C++中重载输入流运算符>>和输出流运算符<<只能作为非类成员函数重载,且必须使用如下原形:istream&operator>>(istream&,<类名>&);ostream&operator<<(ostream&,<类名>);30、下列关于类概念的描述中,错误的是()。A、类是抽象数据类型的实现B、类是具有共同行为的若干对象的统一描述体C、类是创建对象的模板D、类就是C语言中的结构类型标准答案:8知识点解析:类是创建对象的模板,它包含着所创建对象的状态描述和方法的定义。类的完整描述包含了外部接口和内部算法以及数据结构的形式。31、下面程序的输出结果为()。#include<iostream.h>classCStatic{public:CStatic(){val++;}staticintval;};intCStatic::val=0;voidmain(){CSaticcs1;cout<<cs1.va1<<"";CStaticcs2;CStaticcs3,cs4;cout<<cs2.vA、14B、24C、34D、54标准答案:1知识点解析:暂无解析32、下面程序的结果为#include<iostream.h>intc;classA{private:inta;staticintb;public:A(){a=0;c=0;}voidseta(){a++;}voidsetb(){b++;}A、121B、122C、112D、222标准答案:2知识点解析:C++语言中全局变量是任何函数都可以改变的量,静态变量的有效范围在定义它的类中,而普通的变量的有效性只在使用它的函数中,在本题中c为全局变量,b为静态变量,a为普通变量,b和c在类A的对象a1和a2中都自加1。所以b,c为2,a为1。33、执行下列语句段后,输出字符“*”的个数是for(inti=50;i>1;--i)cout<<’*’;A、48B、49C、50D、51标准答案:B知识点解析:本题考查的知识点是:for循环语句。for语句的执行过程是:(1)计算第1个表达式(在本题中是“inti=50”)的值:(2)计算第2个表达式(在本题中是“i>1”)的值,如果此值不等于0(结果为真),则转向步骤(3);否则转向步骤(5);(3)执行一遍循环体(在本题中是“cout<<’*’;”);(4)计算第3个表达式(在本题中是“--i”)的值,然后转向步骤(2);(5)结束for循环。由此可见,本题循环中i从50开始逐次递减,直到i=1时退出,而此时没有机会执行到循环体,因此执行了49遍循环体。而循环体中的语句是输出1个字符“*”,所以最终输出了49个字符“*”,故本题应该选择B。34、如果不使用多态机制,那么通过基类的指针虽然可以指向派生类对象,但是只能访问从基类继承的成员。有如下程序,没有使用多态机制。#include<iostream>spacestd;classBase{inta,b;public:Base(intx,inty){a=x;b=y;}voidshow(){cout<<a<<’,’<<b<<endl;}};classDerived:publicBase{intc,d;public:Derived(intx,inty,intz,intm):Base(x,y){c=z;d=w;}voidshow(){cout<<c<<’,’<<d<<endl;}};intmain(){BaseB1(50,50),*pb;DerivedD1(10,20,30,40);pb=&D1;pb->show();return0;}运行时输出的结果是A、10,20B、30,40C、20,30D、50,50标准答案:A知识点解析:本题考查的知识点是:多态性。在C++中,一个基类指针(或引用)可以用于指向它的派生类对象,而且通过这样的指针(或引用)调用虚函数时,被调用的是该指针(或引用)实际所指向的对象类的那个重定义版本。基类中的实函数也可以在派生类中重定义,但重定义的函数仍然是实函数。在实函数的情况下,通过基类指针(或引用)所调用的只能是基类的那个函数版本,无法调用到派生类中的重定义函数。本题中的show函数就是被重定义的实函数,所以通过基类指针pb所调用的是基类的版本,即输出a和b的值10,20。故应该选择A。35、下列关于c++流的描述中,错误的是A、cout>>‘A’表达式可输出字符AB、eof()函数可以检测是否到达文件尾C、对磁盘文件进行流操作时,必须包含头文件fstreamD、以los_base::out模式打开的文件不存在时,将自动建立一个新文件标准答案:A知识点解析:cout>>‘A’语句错误。输出字符A的语句应为:cout<<‘A’。三、公共基础填空题(本题共5题,每题1.0分,共5分。)36、软件工程三要素包括方法、工具和过程,其中,______支持软件开发的各个环节的控制和管理。标准答案:过程知识点解析:暂无解析37、在长度为n的有序线性表中进行二分查找。最坏的情况下,需要的比较次数为【】。标准答案:log2n知识点解析:暂无解析38、执行“cout.<<char(‘F’,-2)<<end1;”语句后得到的输出结果为【】。标准答案:D知识点解析:根据ASCII码的形式‘F’-2得到的值便是D。39、设一棵完全二叉树共有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。40、在面向对象方法学中,直接反映了用户对目标系统的要求的模型是【】。标准答案:功能模型知识点解析:本题属于记忆题,考生应掌握。四、填空题(本题共10题,每题1.0分,共10分。)41、在C++流类库中,根基类为______。标准答案:ios知识点解析:ios是所有输入输出类的根基类。同时要知道,C++内置了四个输入输出流对象,可以不用实例化就可以直接使用,如cin,cout,cerr,clog等。42、将以下程序写成三目运算表达式是【】。if(a>b)max=a;elsemax=b;标准答案:max=(a>b)?a:b知识点解析:暂无解析43、C++中封装性、继承性和【】是面向对象思想的主要特征。标准答案:多态性知识点解析:面向对象系统包含了三个特征--封装性、继承性和多态性,这三个特征可以很好的实现数据抽象,进行行为共享,完成进化求解和描述一个系统的确定行为。44、【】允许用户为类定义一种模式,使得类中的某些数据成员及某些成员函数的返回位能取任意类型。标准答案:类模板知识点解析:本题考核类模板的基本概念。类模板就是一系列相关类的模型或样板,这些类的成员组成相同,成员函数的源代码形式相同,所不同的只是所针对的类型(成员的类型以及成员函数的参数和返回值的类型)。对于类模板,数据类型本身成了它的参数,因而是一种参数化类型的类,是类的生成器。类模板中声明的类称为模板类。45、表达式c3=c1.operator+(c2)或c3=operator+(c1,c2)还可以表示为【】。标准答案:c3=c1+c2知识点解析:本题考核运算符的重载。这是运算符重载应用的两种形式。46、【】使一个函数可以定义成对许多不同数据类型完成同一个任务。标准答案:函数模板知识点解析:本题考核函数模板与重载函数的区别。重载函数通常是基于不同的数据类型完成类似的操作;而函数模板则是对不同的数据类型完成相同的操作,它比重载函数的要求更严格。47、下列程序中的this指针的作用是【】。#include<iostream.h>classSample{intn;staticintst;public,Sample(){}Sample(intm){n=m;st=m+10;}voidChange(intk){st=st+k;}voidAddValue(intm){Samples,s.n=n+m;*this=s;}voiddisp(){cout<<"n="<<n<<";st="<<st<<end1;}};intSample::st=0voidmain(){Samples1(10),s2(10)s1.disp()s1.AddValue(5),s2.Change(100);s1.disp();s2.disp()}标准答案:修改本对象的值知识点解析:本题巧妙的使用this指针来完成类的不同实例进行的修改自身数据成员的操作。48、对虚函数的调用有两种方式:【】和【】。标准答案:非多态调用,多态调用知识点解析:非多态调用和多态调用是C++中调用虚函数的两种方式。49、C++中的数据类型大体上可以分成三类:它们是______、______和______。标准答案:基本类型导出类型用户定义类型知识点解析:暂无解析50、若有定义语句:int*a,b;,则变量b的数据类型是【】。标准答案:int或整型知识点解析:本题考查的是指针的声明语句。在一个声明语句中,如果变量名称前面有*号,则就会使该变量成为一个指针变量。而题目中的变量b之前没有*号,所以变量b就是一般的int型变量,而不是指针变量。故应该填int或整型。国家二级(C++)笔试模拟试卷第3套一、公共基础选择题(本题共10题,每题1.0分,共10分。)1、下面关于对象概念的描述中,()是错误的。A、对象就是C语言中的结构体变量B、对象代表着正在创建的系统中的一个实体C、对象是一个状态和操作(或方法)的封装体D、对象之间的信息传递是通过消息进行的标准答案:1知识点解析:暂无解析2、结构化程序设计所规定的三种基本控制结构是()。A、顺序结构、选择结构、循环结构B、输入、输出、处理C、for、while、switchD、主程序、子程序、函数标准答案:1知识点解析:暂无解析3、下列程序的运行结果是()。#include<iostream.h>classA{inta;public:A(){a=0;}A(intaa){a=aa;cout<<a++;}};voidmain(){Ax,y(2),z(3):cout<<endl;}A、0B、23C、34D、25标准答案:2知识点解析:暂无解析4、已知f1(int)是类A的公有成员函数,p是指向成员函数f1()的指针,采用赋值,()是正确的。A、p=f1B、P=A::f1C、P=A::f1()D、P=f1()标准答案:2知识点解析:暂无解析5、C++语言中的基本数据类型是()。A、整型、浮点型、逻辑型、无值型和类类型B、整型、字符型、浮点型、无值型和逻辑型C、整型、浮点型、字符型、逻辑型和枚举型D、整型、浮点型、逻辑型、无值型和指针型标准答案:2知识点解析:暂无解析6、下列叙述中错误的是()。A、一个函数中可以有多条return语句B、调用函数必须在一条独立的语句中完成C、函数中通过return语句传递函数值D、主函数名main也可以带有形参标准答案:8知识点解析:暂无解析7、结构化程序设计主要强调的是()。A、程序的规模B、程序的效率C、程序设计语言的先进性D、程序易读性标准答案:8知识点解析:暂无解析8、下面关于友元的描述中,错误的是()。A、友元函数可以访问该类的私有数据成员B、一个类的友元类中的成员函数都是这个类的友元函数C、友元可以提高程序的运行效率D、类与类之间的友元关系可以继承标准答案:8知识点解析:暂无解析9、C++语言中while循环和do...while循环的主要区别是()。A、do...while的循环体至少无条件执行一次B、while的循环控制条件比do...while的循环控制条件严格C、do...while允许从外部转到循环体内D、do...while的循环体不能是复核语句标准答案:1知识点解析:暂无解析10、对类的构造函数和析构函数描述正确的是()。A、构造函数可以重载,析构函数不能重载B、构造函数不能重载,析构函数可以重载C、构造函数可以重载,析构函数也可以重载D、构造函数不能重载,析构函数也不能重载标准答案:1知识点解析:暂无解析二、选择题(本题共25题,每题1.0分,共25分。)11、下列关于C++关键字的说法中正确的是A、关键字是用户为程序中各种需要命名的“元素”所起的名字B、关键字是对程序中的数据进行操作的一类单词C、关键字是在程序中起分割内容和界定范围作用的一类单词D、关键字是C++中预先定义并实现一定功能的一类单词标准答案:8知识点解析:关键字是C++语言中预先定义并实现一定功能的一类单词,它不是由用户定义的,它是一种功能性单词。注意:注意关键字不能用做用户标识符,12、下列关于C++函数的描述中正确的是A、主函数是程序的入口,它由用户定义的函数调用B、函数在调用之前必须先被声明C、每个用户定义的函数只能被其他函数调用一次D、函数是C++中面向对象程序设计框架的基本组成单元标准答案:2知识点解析:C++语言中函数在被调用以前必须先被声明,主函数是程序的入口函数,用户定义的函数是可以被重复调用的,C++语言中面向对象程序设计的基本组成单元是类。注意:主函数可以放在程序小的任何位置。13、C++语言中运算对象必须是整型的运算符是A、%=B、/C、=D、<=标准答案:1知识点解析:C++语言规定:取余运算符的运算对象必须是整型,复合运算符“%=”中包含%运算,它的运算对象也必须是整型。14、在C++语言中,退格符是A、\nB、\tC、\fD、\b标准答案:8知识点解析:在C++语言中退格符表示为\b退格。注意:其他转义字符的意义:\n表示回车换行,\t表示横向跳到下一制表位置,\v表示竖向跳格,\r表示回车,\f表示走纸换页,\\表示反斜线符,\a表示鸣铃,\ddd1~3位表示八进制数所代表的字符,\xhh1~2位表示十六进制数所代表的字符。15、有如下程序段#includevoidmain(){inta=14,b=15,x;charc=’A’;x=(a&&b)&&(c<’B’);cout<<x;}执行该程序段后,x的值为A、tureB、FALSEC、0D、1标准答案:8知识点解析:在C++语言中,逻辑运算符有4个,它们分别是!(逻辑非)、‖(逻辑或)、&&(逻辑与)、^(异或)。在位运算里面还有&(位与)、|(位或)的运算。本题考查逻辑与运算符的用法,在语句x=(a&&b)&&(c<’B’);中,先判断a&&b条件,逻辑与条件的两边都要保证为1,即a和b都成立,当然c<’B’是成立的,显然,该表达式的值为1。16、#include<iostream.h>voidmain(){intn=9;while(n>6){n--;cout<<n;}}该程序的输出结果是A、987B、876C、8765D、9876标准答案:2知识点解析:该题目应该根据循环体第一次和最后一次执行时的输出结果来决定哪一项是正确的。第一次进入循环时,n的值是9,循环体内,先经过n--运算,n的值变为8,所以第一次的输出值是8,由此可以排除选项A)和选项D)。由循环条件n>6可以知道,最后一次循环开始时,n的值应该为7,所以最后一次执行循环体时输出为6,由此可以排除选项C)。注意:while与do-while的区别。17、如下程序的执行结果是#include<iostream.h>voidmain(){staticinta[]={1,7,3,9,5,11};int*p=a;*(p+3)+=4;cout<<*p<<","<<*(p+3);}A、1,13B、1,16C、3,13D、1,14标准答案:1知识点解析:指针数组的定义、赋初值、数组元素的引用与赋值等操作和一般数组的处理方法基本相同。需要注意指针数组是指针类型的,对其元素所赋的值必须是地址值。其格式是“存储类型数据类型*指针数组名1[长度1]={初值1},功能是定义指向“数据类型”变量或数组的指针型数组,同时给指针数组元素赋初值。这些指针变量具有指定的“存储类型”。本题中指针*p指向数组a,表达式*(p+3)+=4的含义是*(P+3)=*(p+3)+4,而*(p+3)在数组中指向的值为9,最后输出的结果为9+4=13,注意:一个语句的结束要有分号。18、下面说明不正确的是A、chara[10]="china";B、chara[10],*p=a;p="china";C、char*a;a="china";D、chara[10],*P;P=a="china";标准答案:8知识点解析:C++语言中操作一个字符串常量的方法有:①把字符串常量存放在一个字符数组之中:②用字符指针指向字符串,然后通过字符指针来访问字符串存贮区域。当字符串常量在表达式中出现时,根据数组的类型转换规则,它被转换成字符指针。本题选项D)中错误的关键是对数组初始化时,可以在变量定义时整体赋初值,但不能在赋值语句中整体赋值。19、下列程序的输出结果是#include<iostream.h>voidmain(){doubled=3.2;intx,y;x=1.2;y=(x+3.8)/5.0;cout<<y*d<<end1;}A、3B、3,2C、0D、3.07标准答案:4知识点解析:本题中,先将x转换为浮点型再与3.8相加,得到结果与5.0相除。最后将得到的结果去掉小数位化成整型数据赋给y。另外,值得注意的是,整型、实型、字符型数据间可以混合运算。在进行运算时,不同类型的数据先转换成同一类型,然后再进行运算。注意:如果认为执行y=(x+3.8)/5.0后y的值为1是错误的,此时y的值为0。注意:x为int型,将1.2赋值给x时,x的值为1。20、有以下程序#include<iostream.h>intf(ihtn){if(n==1)return1;elsereturnf(n-1)+1;}voidmain(){ihti,j=0;for(i=1;i<3;i++)j+=f(i);cout<<j;}程序运行后的输出结果是A、4B、3C、2D、1标准答案:2知识点解析:在main函数中,对f(1)和f(2)的值进行了累加。过程如下:f(1)=1f(2)=f(1)+l=2最后,j的值为1+2=3。注意:函数的递归调用需要有一个结束的条件。21、C++语言中类的定义的结束声明的符号是A、}B、,C、;D、{标准答案:4知识点解析:C++语言中类定义的结束符号是分号。注意:函数的定义不需要分号。22、关于类定义中的语句错误的是classA{ihti;Aa;A*b;char*ch;};A、inti;B、Aa;C、A*b;D、char*ch;标准答案:2知识点解析:C++语言中类定义中若想用该类来定义数据只能定义为指针类型的,而不能定义为普通类型的。注意:C++语言类的定义的方法23、下列描述中错误的是A、析构函数可以被继承B、虚函数不能被继承C、派生类可以有多个基类D、纯虚基类的子类可以是虚基类标准答案:2知识点解析:C++语言中基类的虚函数是可以被派生类继承的。注意:虚函数和纯虚函数的区别。24、下列描述中哪个是正确的?A、派生类构造函数中没有调用父类构造函数则没有对父类初始化B、子类构造函数不能是内联函数C、派生类构造函数中可以对父类数据成员赋值D、构造函数的返回值为void类型标准答案:4知识点解析:C++语言中基类的构造函数是可以被派生类继承并赋值的。注意:构造函数和析构函数均无返回值。25、下面关于成员函数重载运算符和友元函数重载运算符相同的是A、成员函数和友元函数可重载的运算符是不相同的B、成员函数和友元函数重载运算符时都需要用到this指针C、成员函数和友元函数重载运算符时都需要声明为公有的D、成员函数和友元函数重载运算符时的参数町能是相同的标准答案:1知识点解析:成员函数和友元函数可重载的运算符有些相同的,有些是不同的,友元函数没有this指针,二者重载相同运算符时的参数肯定是不同的,成员函数重载运算符时都必须声明为公有的。注意:友元函数的声明关健字是friend。26、下列运算符只能用友元函数重载的是A、<<,>>B、new,deleteC、++,--D、,标准答案:1知识点解析:C++语言中运算符重载中只能用友元函数重载的运算符是<<和>>。27、执行下面的程序段后,变量k中的值为#include<iostream.h>voidmain(){intk=3,s[2];s[0]=k;k=s[1]*10;cout<<k;}A、不定值B、33C、30D、10标准答案:1知识点解析:如果定义数组时没有进行初始化,则其各个成员的值不确定。注意:使用数组时应先赋初值。28、关于语句#include<iostream>usingnamespacestd;voidmain(){cout<<100.8989663<<’;cout<<fixed<<100.8989663<<’;cout<<scientific<<100.8989663<<’;}的输出结果为A、100.899100.8989661.008990e+002B、100.8989663100.8989661.008990e+002C、100.899100.8989661.008989e+002D、100.899100.89896631.008989e+002标准答案:1知识点解析:C++语言中默认小数的输出位一共是六位,fixed的意义是在小数点后保留六位,scientific的意义是以科学计数法输出小数,本题中,100.8989663的默认输出就是100.899,fixed输出是100,898966,scienlific输出是1.008990e+002。注意:C++语言中的小数输出及各种控制方法。29、以下程序的结果是#include<iostream.h>voidmain(){char*p="abcdefgh",*r;long*q;q=(long*)p;q++;r=(char*)q;cout<<r<<end1;}A、defgB、cdefC、ghabD、efgh标准答案:8知识点解析:C++语言规定,如果指针变量q已指向数组中的一个元素,则(q++指向同一数组中的下一个元素(而不是将q的值简单的加1)。本题中q是long型指针,每个long型数据占内存字节数为4,所以q++则由当前位置向右移动4个字节,所以最后显示出的是efgh。注意:请注意*(P++)与(*p)++的区别。30、以下程序的输出结果是#includevoidmain(){charc=’Z’;cout<<c-25;}A、97B、ZC、z-25D、2标准答案:1知识点解析:字符z的ASCII码值为122,经过c-25运算后,得97。注意:C++语言中,字符也可参与算术运算,运算时用的是字符的ASCII码值。31、有以下程序#include<iostream.h>structSTU{charnum[10];floatscore[3];};voidmain(){structSTUs[3]={{"20021",90,95,85},{"20022",95,80,75},{"20023",100,95,90}},*p=s;inti;floatsum=0;for(i=0;i<A、260B、270C、280D、285标准答案:2知识点解析::C++语言规定数组名代表数组的首地址,也就是第0号元素的地址,在本题中s就是s[0]的地址,指针变量P指向s,也就是指向s[0],所以在for循环累加的是s[0]的score成员值。注意:注意结构体与类的区别。32、下面程序段中,for循环的执行次数是char*s=“\ta\018bc";for(;*s!=’\0’;s++)cout<<"*";A、9B、5C、6D、7标准答案:4知识点解析:本题中,格式符。表示的是八进制无符号形式输出整型数(不带前导0),字符常量在内存中占一个字节,存放的是ACSII码代码值。C++语言规定,所有字符常量都作为整型量来处理,在计算机内部,其对应的整数值就是ACSII字符集中该字符的序号。注意:for循环的次数就是字符串\ta\018bc的长度。33、以下程序段的执行结果为#include<iostream.h>#definePLUS(X,Y)X+Yvoidmain(){intx=1,y=2,z=3,sum;sum=PLUS(x+y,z)*PLUS(y,z);cout<<"SUM="<<sum;cout<<end1;}A、SUM=9B、SUM=12C、SUM=18D、SUM=30标准答案:2知识点解析:格式为:#define宏名(参数表)字符串本题的替换过程是sun=x+y+z*y+z,将其各值带入即可。注意:注意在替换的过程不要随意加入括号。34、下列程序的运行结果是#inClude<iostream.h>roidfun(int*a,int*b){int*k;k=a;a=b;b=k;}voidmain(){inta=2004,b=9,*x=&a,*y=&b;fun(x,y);cout<<a<<""<<b<<end1;}A、20049B、92004C、00D、编译时出错标准答案:1知识点解析:本题函数fun中形参是两个指针变量,函数fun只是将这两个指针的指向的地址交换了一下而并没有交换它们所指向的地址中的数据。虽然,主函数中声明的变量a,b是整型变量而函数fun中的形参是两个指针变量,这两个变量仅仅是两个参数,与主函数中的那两个变量含义是不同的。注意:采用指针或引用可将值交换。35、以下程序的输出结果是#include<iostream.h>intf(){staticinti=0;ints=1s+=i;i++;returns;}voidmain(){inti,a=0;for(i=0;i<5;i++)a+=f();cout<<a;}A、20B、24C、25D、15标准答案:8知识点解析:对函数的静态局部变量是在编译时就赋初值,即只赋初值一次,在程序运行时它已有初值,以后每次调用函数时不再重新赋值,而只是保留上次函数调用结束时的值。注意:静态函数只能用静态变量。三、公共基础填空题(本题共5题,每题1.0分,共5分。)36、排序是计算机程序设计中的一种重要操作,常见的排序方法有插入排序、【】和选择排序等。标准答案:交换排序知识点解析:常见的排序方法有插入排序(包括简单插入排序法和希尔排序法等)、交换排序(包括冒泡排序和快速排序法等)和选择排序(包括简单选择排序和堆排序等)。注意:常见的排序方法及其作用机制和区别。37、当循环队列非空且队尾指针等于队头指针时,说明循环队列已满,不能进行入队运算。这种情况称为【】。标准答案:上溢知识点解析:入队运算是指在循环队列的队尾加入一个新元素。这个运算有两个基本操作:首先将队尾指针进一(即rear=rear+1),并当lear=m+1时置rear=1;然后将新元素插入队尾指针指向的位置。当循环队列非空(s=1)时且队尾指针等于队头指针时,说明循环队列已满,不能进行入队运算,这种情况称为“上溢”。38、【】是一种信息隐蔽技术,目的在于将对象的使用者和对象的设计者分开。标准答案:封装知识点解析:面向对象技术中包括以下几个基本概念,即对象、类、方法、消息、继承和封装,其中封装是一种信息隐蔽技术,目的在于将对象的使用者对象的和设计者分开。39、为了便于对照检查,测试用例应由输入数据和预期的【】两部分组成。标准答案:输出结果知识点解析:注意:测试的基本方法和步骤。40、【】是从二维表列的方向进行的运算。标准答案:关系运算知识点解析:在关系模型的数据语言中,一般除了运用常规的集合运算,(并、交、差、笛卡尔积等)外,还定义了一些专门的关系运算,如投影、选择、连接等。前者是将关系(即二维表)看成是元组的集合,这些运算主要是从二维表的行的方向来进行的;后者主要是从二维表的列的方向来进行的运算。两者统称为关系代数。四、填空题(本题共9题,每题1.0分,共9分。)41、【】是C++语言程序的入口。标准答案:main()函数知识点解析:main()是C++语言的人口函数。注意:main()函数可以放在程序的任何位置42、程序#include"iostream.h"voidmain(){inti=10;jntj=5;cout<<j+i++<<end1;}的结果为【】标准答案:15知识点解析:i++为先做与i有关的运算后,i自加1,而++i是先给i加1再进行与i有关的操作注意:各种运算符的应用,注意++,--。43、C++语言的基本控制结构为顺序结构、选择结构和【】。标准答案:循环结构知识点解析:C++语言3种基本结构就是顺序结构,选择结构,循环结构。44、语句int*i;i=newint[10];,释放指针i的语句是【】。标准答案:delete[]i知识点解析:申请内存空间时用new,释放内存空间用delete。注意:new和delete的运用和malloc,free的运用。45、函数重载要求重载的函数必须有和原函数一样的【】。标准答案:函数名知识点解析:重载函数的函数名应和原函数一致。注意:重载函数的方式方法,重载函数的参数,重载函数的返回值。46、在C++语言中每个类都有一个【】指针,该指针指向正在调用成员函数的对象。标准答案:this知识点解析:C++语言中this指针是类自带的一个指针,它指向正在调用成员函数的对象。注意:C++类的墓本概念,this指针概念。47、程序的结果为【】。#include”iostream.h”template<typenameT>Ttotal(T*data){Ts=0;while(*data){s+=*data++;}returns;}intmain(){intx[]={2,4,6,8,0,12,14,16,18};cout<<total(x);r标准答案:20知识点解析:要理解*data的含意。48、语句cout<<’\n’还可表示为【】。标准答案:cout<<end1;知识点解析:“\n”表示换行,end1也可表示换行。注意:end1和“\n”可以通用。49、设置虚基类的目的是【】,通过【】表示虚基类。标准答案:解决二义性问题用关键字virtual知识点解析:解决二义性的两个基本方法一是用域名进行限制,二是用虚基类的方法。注意:C++语言中解决二义性的方法。国家二级(C++)笔试模拟试卷第4套一、公共基础选择题(本题共10题,每题1.0分,共10分。)1、算法指的是______。A、计算机程序B、解决问题的计算方法C、解决问题的有限运算序列D、排序算法标准答案:4知识点解析:暂无解析2、下列关于线性表的叙述中,不正确的是______。A、线性表是n个结点的有穷序列B、线性表可以为空表C、线性表的每一个结点有且仅有一个前趋和一个后继D、线性表结点间的逻辑关系是1:1的联系标准答案:4知识点解析:暂无解析3、栈和队列______。A、共同之处在于二者都是先进先出的特殊的线性表B、共同之处在于二者都是先进后出的特殊的线性表C、共同之处在于二者都只允许在顶端执行删除操作D、没有共同之处标准答案:4知识点解析:暂无解析4、若二叉树中度为2的结点有15个,度为1的结点有10个,则有______个叶结点。A、25B、30C、31D、16标准答案:8知识点解析:暂无解析5、已知二叉树的前序序列为ABDCEFG,中序序列为DBCAFEG,则后序序列为______。A、DCBAFGEB、DCBFGEAC、DCBFEGAD、DCBGFEA标准答案:2知识点解析:暂无解析6、软件调试方法中的静态调试方法之一为______。A、计算机辅助静态分析B、黑盒法C、因果固D、路径覆盖标准答案:1知识点解析:暂无解析7、为了克服软件危机,人们提出了用______的原理来设计软件,这就是软件工程诞生的基础。A、数学B、软件学C、运筹学D、工程学标准答案:8知识点解析:暂无解析8、为了防止一个用户的工作不适当地影响另一个用户,应该采取______。A、完整性控制B、安全性控制C、并发控制D、访问控制标准答案:4知识点解析:暂无解析9、在数据库设计中,数据流图表达的是______。A、数据和数据结构的关系B、数据和算法的关系C、数据和处理的关系D、数据和通信的关系标准答案:4知识点解析:暂无解析10、关于数据库系统的特点,下列说法中错误的是数据______。A、结构化B、共享性高C、独立性差D、统一管理和控制标准答案:4知识点解析:暂无解析二、选择题(本题共25题,每题1.0分,共25分。)11、假设所有变量均为整型,则表达式(a:2,b=5,b++,a+b)的值______。A、8B、7C、6D、4标准答案:1知

温馨提示

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

评论

0/150

提交评论