版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
国家二级(C++)笔试模拟试卷3(共9套)(共441题)国家二级(C++)笔试模拟试卷第1套一、公共基础选择题(本题共10题,每题1.0分,共10分。)1、为了使模块尽可能独立,要求A、模块的内聚程序要尽量高,且各模块间的耦合程度要尽量强B、模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱C、模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱D、模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强标准答案:B知识点解析:系统设计的质量主要反映在模块的独立性上。评价模块独立性的主要标准有两个:一是模块之间的耦合,它表明两个模块之间互相独立的程度;二是模块内部之间的关系是否紧密,称为内聚。一般来说,要求模块之间的耦合尽可能地弱,即模块尽可能独立,而要求模块的内聚程度尽量地高。综上所述,选项B的答案正确。2、需求分析阶段的任务是确定A、软件开发方法B、软件开发工具C、软件开发费用D、软件系统功能标准答案:D知识点解析:暂无解析3、结构化程序设计的3种基本结构是()。A、过程、子程序和分程序B、顺序、选择和重复C、递归、堆栈和队列D、调用、返回和转移标准答案:B知识点解析:程序的3种基本控制结构包括顺序、选择和重复(循环),这3种结构就足以表达出各种其他形式的结构。4、A、
B、
C、
D、
标准答案:A知识点解析:函数模板定义的一般格式为:Template<typename类型参数>返回类型函数名(模板形参表){函数体}5、下列符号中可以用作C++标识符的是A、_radiusB、foo~barC、elseD、3room标准答案:A知识点解析:在C++中,变量标识符必须以大小写字母、下画线开始,是由数字或者字母下画线等组成的一个字符串,其中C++关键字不能作为标识符,不能包含-、+、*、/等运算符号。6、A、
B、
C、
D、
标准答案:D知识点解析:如果派生类私有继承基类,不能访问基类中的私有成员,所以A)、B)是错误的。派生类是对基类的具体化,所以c)错误的。如果派生类没有实现基类的一个纯虚函数,则该派生类是一个抽象类,即选择D)。7、下列属于大型数据库系统的是()。A、SQL-ServerB、FoxproC、AccessD、Excel标准答案:1知识点解析:SQLServer、Oracle、DB2等属于大型数据库系统,Foxpro和Access属于中小型数据库系统,Excel不是数据库系统。8、E-R模型设计属于数据库的______。A、概念设计B、逻辑设计C、物理设计D、程序设计标准答案:1知识点解析:暂无解析9、数据处理的最小单位是A、数据B、数据元素C、数据项D、数据结构标准答案:4知识点解析:数据处理的最小单位是数据项;由若干数据项组成数据元素;而数据是指能够被计算机识别、存储和加工处理的信息载体;数据结构是指数据之间的相互关系和数据运算。故正确答案为选项C。10、数据处理的最小单位是A、数据B、数据元素C、数据项D、数据结构标准答案:4知识点解析:数据处理的最小单位是数据项;由若干数据项组成数据元素;而数据是指能够被计算机识别、存储和加工处理的信息载体;数据结构是指数据之间的相互关系和数据运算。故正确答案为选项C。二、选择题(本题共25题,每题1.0分,共25分。)11、以下程序的输出结果是#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<<endl;return;}A、31B、13C、10D、20标准答案:A知识点解析:本题考核for语句和switch语句的综合运用。switch语句的执行过程是:在switch后面的表达式的值和case后面常量表达式的值吻合时,就执行后面的语句。如果在该语句的后面没有break语句,则继续执行下一个case,直到遇到break语句或switch多分支的结束。在switch语句中,break语句的作用是使流程跳出switch结构,终止switch语句的执行。因为每个case语句后面都没有break语句,所以,第1次循环(i=1)执行后,a的值为8。第2次循环(i=2)执行过后,a的值变为16。第3次循环(i=3)执行过后,a的值变为26。第4次循环执行过后,a的值变为31。然后执行i++,这时循环条件为假,结束循环。所以最后a的值为31。12、类MyClass的定义如下:classMyClass{public:MyClass(){value=0;}SetVariable(inti){value=i;}private:intvalue;};则对下列语句序列正确的描述是()。MyClass*P,my;p=&my;A、语句p=&my;是把对象my赋值给指针变量PB、语句MyClass*p,my;会调用两次类MyClass的构造函数C、对语句*P.SetVariable(5)的调用是正确的D、语句p->SetVariable(5)与语句my.SetVariable(5)等价标准答案:D知识点解析:选项A),语句p=&my;是把对象my的地址值赋值给指针变量P;选项B),语句MyClass*p,my;,由于p只是一个指向对象的指针,因此定义指针p不调用构造函数,所以此语句只调用一次构造函数;对成员函数的引用可以通过两种形式;指针->成员函数(形参表)或者对象名.成语函数名(形参表),故选项C)错误,选项D)正确。13、有如下类声明:classMyBASE{intk;public:voidset(intn){k=n;}intget()const{returnk;}};classMyDERIVED:protectedMyBASE{protected:intj;public:voidset(intm,intn){MyBASE::set(m);j=n;}intget()const{returnMyBASE::get()+j;}};则类MyDERIVED中保护的数据成员和成员函数的个数是()。A、4B、3C、2D、1标准答案:B知识点解析:因为在保护继承的情况下,基类中的公有成员voidset(intn)和intget()const在派生类中是保护成员,再加上派生类自身的保护成员j,一共是3个保护成员。14、重载输入流运算符>>必须使用的原型为()。A、istream&operator>>(istream&,<类名>&);B、istream&operator>>(istream,<类名>);C、istreamoperator>>(istream,<类名>&);D、<类名>operator>>(istream&,<类名>&);标准答案:A知识点解析:C++流的输入运算符“>>”和输出运算符“<<”只能作为非成员函数重载。重载输入流运算符“>>”须使用以下原型:istream&operator>>(istream&,<类名>&);。15、若执行下面的程序时,从键盘上输入3和4,则输出结果是main(){inta,b,s;cin>>a>>b;s=a;if(a<B)s=b;s=s*s;cout<<s<<endl;}A、14B、16C、18D、20标准答案:B知识点解析:暂无解析16、以下不正确的定义语句是A、doublex[5]={2.0,4.0,6.0,8.0,10.0};B、inty[5]={0,1,3,5,7,9};C、charc1[]={’1’,’2’,’3’,’4’,’5’};D、charc2[C]={,’\x10’,’\xa’,’\x8’};标准答案:B知识点解析:在一维数组中要注意的是作为下标表达式的常量表达式的值必须是大于等于0,并且小于自身,本题中选项B)的下标表达式的值超过了自身。17、下面的说法中错误的是()。A、公有继承的基类中public成员在派生类中仍是publicB、私有继承的基类中public成员在派生类中是privateC、公有继承的基类中private成员在派生类中仍是privateD、保护继承的基类中public成员在派生类中是protected标准答案:C知识点解析:类的继承方式有公有继承、保护继承和私有继承三种方式。对于公有继承基类中的成员访问属性不变,对于保护和私有继承基类中的成员转换为相应的访问类型。但是若基类成员的访问属性为private的,则不能被继承。18、下面有关纯虚函数的表述中正确的是()。A、含有纯虚函数的类不可能是派生类B、纯虚函数是没有给出显现版本(即无函数体定义)的虚函数.C、派生类必须实现基类的纯虚函数D、纯虚函数的声明总是以“=0”结束标准答案:D知识点解析:C++中的某些情况下基类无法确定一个虚函数的具体操作方法或内容,只能靠派生类来提供各个具体的实现版本。基类中必须靠派生类提供重定义的虚函数叫做纯虚函数。为了将一个虚函数声明为一个纯虚函数,需要在结束符号前加上=0;若派生没有重定义纯虚函数,这个函数仍然是纯虚函数。19、每个C++程序都必须有且仅有一个()。A、预处理命令B、函数C、语句D、主函数标准答案:8知识点解析:一个C++程序一般由预处理命令、输入输出、函数、语句、变量这几个基本部分组成。但是,每个C++程序都必须有且仅有一个主程序。20、下列关于C++函数的说明中,正确的是()。A、内联函数就是定义在另一个函数体内部的函数B、函数体的最后一条语句必须是return语句C、标准C++要求在调用一个函数之前,必须先声明其原型D、编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式标准答案:4知识点解析:暂无解析21、下列语句错误的是()。A、char*p="John";p[2]=’a’;B、charname[5]="John";name[2]=’a’C、charname[5]="John",*p=name;p[2]=’a’;D、charname[5]="John",*p=&name[2];*p=’a’;标准答案:2知识点解析:暂无解析22、下面各语句中,能正确进行赋字符串操作的语句是A、chars[5]={"ABCDE"};B、chars[5]={’A’,’B’,’C’,’D’,’E’};C、char*s;s="ABCBE";D、char*s;scanf("%s",s);标准答案:4知识点解析:暂无解析23、设intx[]={2,4,6,8},y,*p=&x[1];则执行语句y=(*--p)++;后数组元素x[0]的值为______。A、2B、3C、4D、5标准答案:2知识点解析:暂无解析24、判断字符型变量ch是否为大写英文字母,应使用表达式______.A、ch>=’A’&ch<=’Z’B、ch:=’A’||ch>=’Z’C、’A’<=ch<=’Z’D、ch>=’A’&&ch<=’Z’标准答案:8知识点解析:判断ch是否为大写英文字母,A用的是&,位操作符,而B用的是或操作符,C不符合C++语法,所以D是正确的。25、()是析构函数的特征。A、一个类中只能定义一个析构函数B、析构函数名与类名不同C、析构函数的定义只能在类体内D、析构函数可以有一个或多个参数标准答案:1知识点解析:暂无解析26、若有说明语句chara[]="Itismine";char*p="Itismine";则以下不正确的叙述是A、a+1表示的是字符t的地址B、p指向另外的字符串时,字符串的长度不受限制C、p变量中存放的地址值可以改变D、a中只能存放10个字符标准答案:8知识点解析:本题考查字符串数组和指针的引用方式。在C++语言中,系统在每个字符串或数组的最后自动加入一个字符’\0’,作为字符的结束标志,在本题中,chara[]=“Itismine";所表示的a字符串实际含有11个字符。27、下列对字符数组进行初始化的语句正确的是A、chara[]="Hello";B、chara[][]={’H’,’e’,’l’,’l’,’o’};C、chara[5]="Hello";D、chara[2][5]={"Hello","World"};标准答案:1知识点解析:本题考查对字符数组的初始化。A选项中,数组a在定义后紧跟初始化的情况下可省略数组长度,其最终数组长度由所赋字符串常量的长度给定。A选项正确。B选项中,a是一个二维数组,二维数组也能在定义时被初始化。如果对全部元素都赋初值,则定义数组时第一维的大小可以忽略,但第二维的大小不能省略。故B选项错误。C选项和D选项都忽略了字符串的大小要比字符串中的字符数多1这一点,造成了数组的越界。28、知大写字母A的ASCII码是65,小写a的;ASCII码值是97,则用八进制表示字符常量’\101’为()。A、字符AB、字符aC、字符eD、非法常量标准答案:1知识点解析:此题考核的知识点是转义字符。此题目的关键是八进制的101对应的十进制数是多少。八进制101转换为十进制为65,也就是大写字母A的ASCII码。29、已知类Myst有一个只需要一个double型参数的构造函数,且将运算符“-”重载为友元函数。要使语句序列Mystx(3.2),y(5.5),z(0.0);z=8.9-y;y=x-6.3;能够正常运行,运算符函数operator-应在类中声明为()。A、friendMystoperator-(Myst&,Myst&);B、friendMystoperator-(Myst,Myst);C、friendMystoperator-(Myst,Myst&);D、friendMystoperator-(Myst&,Myst);标准答案:2知识点解析:暂无解析30、对于常成员函数,下面描述正确的是()。A、类的成员函数可以操作常对象B、类的成员函数不能操作常对象C、只有常成员函数可以操作常对象D、在常成员函数中,常对象可以被更新标准答案:4知识点解析:暂无解析31、有以下程序()。#include<iostream.h>intf(intn){if(n==1)return1;elsereturnf(n-1)+1;}voidmain(){inti,j=-;for(i=1;i<3;i++)j+=f(i);cout<<j<<endl;}程序运行后输出结果是()。A、4B、3C、2D、1标准答案:2知识点解析:暂无解析32、与语句cout<<end1;不等价的是A、cout<<’\n’;B、cout<<’\12’;C、cout<<’\xA’;D、cout<<’\0’;标准答案:8知识点解析:题干表示的是回车换行,选项A,选项B和选项C都表示回车换行。而选项D是字符串的结尾标志。33、控制格式输入/输出的操作子中,设置域宽的的函数足A、wsB、octC、setfilll(int)D、setw(int)标准答案:D知识点解析:本题需要考生记忆一些输入输出控制操作子,oct为八进制,setfill为设置填充符,setw为设置域宽操作子。34、已知类A中有公用数据成员B*b;其中B为类名。则下列语句错误的是A、A():d(newB){}B)A(constA&oo):d(newB、{*d=*oo.d;}C、~A(D){}D、~A(){deleted;}标准答案:C知识点解析:首先考生要能判断出四个选项是构造函数和析构函数,其中d是类A的一个需要初始化的数据成员,且是一个指针。在初始化时,必须指明类B的某对象的地址,所以,newB可以完成这个功能.而折构函数不能带参数,这是常识性的知识,因此正确答案为C。35、下面正确的函数定义是()。A、Fun()B、voidfunC、voidfun()D、voidfun(){}标准答案:D知识点解析:见函数定义的格式。三、公共基础填空题(本题共5题,每题1.0分,共5分。)36、关系数据库管理系统能实现的专门关系运算包括选择、连接和______。标准答案:投影知识点解析:关系数据库管理系统的专门关系运算包括选择、连接和投影。选择运算是在指定的关系中选取所有满足给定条件的元组,构成一个新的关系,而这个新的关系是原关系的一个子集;投影运算是在给定关系的某些域上进行的运算。通过投影运算可以从一个关系中选择出所需要的属性成分,并且按要求排列成一个新的关系,而新关系的各个属性值来自原关系中相应的属性值;连接运算是对两个关系进行的运算,其意义是从两个关系的笛卡尔积中选出满足给定属性间一定条件的那些元组。37、某二叉树中度为2的结点有18个,则该二又树中有______个叶子结点。标准答案:19知识点解析:暂无解析38、标准答案:AAB知识点解析:暂无解析39、数据的逻辑结构在计算机存储空间中的存放形式称为数据的【】。标准答案:存储结构或物理结构或物理存储结构知识点解析:暂无解析40、长度为n的顺序存储线性表中,当在任何位置上插入一个元素概率都相等时,插入一个元素所需移动元素的平均个数为【】。标准答案:n/2知识点解析:暂无解析四、填空题(本题共10题,每题1.0分,共10分。)41、语句int*i=newintl[10];,释放指针i的语句是______。标准答案:delete[]i知识点解析:暂无解析42、下列程序的运行结果是______。#inclUde(iostream.h)ClassA{public:Virtualvoiduse(){cout<<“inA\n”;}};classB:publicA{public:virtualvoiduse(){cout<<“inB\n”;}};classC:publicB{public:Virtualvoiduse(){cout<<“inC\n”;}};void标准答案:inC。知识点解析:本题考查虚函数和多态性。原本obj指向祖先类,随后被赋值,指向新的子孙类,则在使用use这个重载的虚函数时,根据当前指向可确定调用子孙的同名虚函数。43、插入排序算法的主要思想是:每次从未排序序列中取出一个数据,插入已排序序列中的正确位置。Insert类的成员函数sort()实现了插入排序算法,请填空。classInsert{public:Insert(int*b0,intn0):b(b0),n(n0){);//参数b0是某数组首地址,n是数组元素个数voidsort(){//此函数假设已排序序列初始化状态只包含b[0],未排序序列初始为b[1]…b[n-1]for(irai=1;i0;--j){if(t>=b[j-1])break;b[j]=b[j-1];b[j]=t;}}}};标准答案:j=i知识点解析:在函数sont()中,外层for循环中依次将数组b中的值赋值给变量t,然后在内层循环中依次与已经排序的数组元素进行比较,并在符合条件的位置插入该元素。“intt=b[i];”语句可知数组中有i个元素已经排序。因此,根据内层循环中的j>0;--j语句,知道内层循环是将当前的第i个元素与j个元素进行比较,前面已知数组中有i个元素已经排序,根据题干中的要求“插入已排序序列中”,即i=i。44、下面程序的结果为_____。#include<iostream.h>voidmain(){inta=1,b=2;boolc=1;if((a>b)||c)cout<<"tree"<<endl;elsecout<<"false"<<endl;}标准答案:true知识点解析:本题考查的是对于逻辑运算符号的理解,“||”运算符的任何一边取值为真,则整个运算结果为真。45、有如下程序:#includeusingnamespaeestd;classA{public:A(){cout<<‘A’;}};classB:privateA{public:B(){cout<<‘B’;}};intmain(){Aa:Bb:return0:}这个程序的输出结果是__________。标准答案:AAB知识点解析:“Aa:”语句将导致A的构造函数被执行,输出“A”,“Ab;”语句将导致B的构造函数执行,由于B私有继承A,故在执行B的构造函数前,先执行A的构造函数,输出“A”,然后执行B的构造函数,输出“B”。46、定义在类内部的函数被类默认为【】,在类外部每次调用该函数时,定义的函数代码会在调用函数位置展开。标准答案:内联函数知识点解析:暂无解析47、如果类B继承了类A,则称类A为类B的基类,类B称为类A的【】。标准答案:(派生类知识点解析:如果类A为类B的基类,那么类B称为类A的派生类。48、若有以下程序:#include<iostream>usingnamespacestd;intmain(){chara;a=’H’-’A’+’0’;cout<<a<<end1;return0;}执行后输出的结果是【】。标准答案:7知识点解析:字符型数据可作为整型参加算术运算,其值为其对应的ASCII码。’H’-’A’的结果是7,加’0’后是’7’的ASCII码,所以输出的是字符7。49、通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为______标准答案:软件生命周期知识点解析:暂无解析50、下列程序的输出结果为【】。#inelude<iostream.h>int&max(int&x,int&y){return(x>y?x:y);}voidmain(){intn=3,m=12;max(m,n)++cout<<"m="<<m<<",n="<<n<<end1;}标准答案:m=13,n=3知识点解析:本题考察引用作为形参进行参数传递的知识。max函数的功能是返回较大的那个数,而max(m,n)++的作用是将较大值再进行增一运算。国家二级(C++)笔试模拟试卷第2套一、公共基础选择题(本题共10题,每题1.0分,共10分。)1、假设线性表的长度为n,则在最坏情况下,冒泡排序需要的比较次数为A、log2nB、n2C、O(n1.5)D、n(n-1)/2标准答案:D知识点解析:假设线性表的长度为n,则在最坏情况下,冒泡排序要经过n/2遍的从前往后的扫描和n/2遍的从后往前的扫描,需要的比较次数为n(n-1)/2。2、算法分析的目的是A、找出数据结构的合理性B、找出算法中输入和输出之间的关系C、分析算法的易懂性和可靠性D、分析算法的效率以求改进标准答案:D知识点解析:算法分析是指对一个算法的运行时间和占用空间做定量的分析,一般计算出相应的数量级,常用时间复杂度和空间复杂度表示。分析算法的目的就是要降低算法的时间复杂度和空间复杂度,提高算法的执行效率。3、线性表L=(a1,a2,a3,…ai,…an),下列说法正确的是A、每个元素都有一个直接前件和直接后件B、线性表中至少要有一个元素C、表中诸元素的排列顺序必须是由小到大或由大到小D、除第一个元素和最后一个元素外,其余每个元素都有一个且只有一个直接前件和直接后件标准答案:D知识点解析:线性表可以为空表;第一个元素没有直接前件,最后一个元素没有直接后件;在线性表的定义中,元素的排列并没有规定大小顺序。4、在单链表中,增加头节点的目的是A、方便运算的实现B、使单链表至少有一个节点C、标识表节点中首节点的位置D、说明单链表是线性表的链式存储实现标准答案:A知识点解析:头节点不仅标识了表中首节点的位置,而且根据单链表(包含头节点)的结构,只要掌握了表头,就能够访问整个链表,因此增加头节点的目的是为了便于运算的实现。5、软件工程的出现是由于A、程序设计方法学的影响B、软件产业化的需要C、软件危机的出现D、计算机的发展标准答案:C知识点解析:软件工程概念的出现源自于软件危机。为了消除软件危机,通过认真研究解决软件危机的方法,认识到软件工程是使计算机软件走向工程科学的途径,逐步形成了软件工程的概念。6、软件开发离不开系统环境资源的支持,其中必要的测试数据属于A、硬件资源B、通信资源C、支持软件D、辅助资源标准答案:D知识点解析:软件测试过程中,辅助资源包括测试用例(测试数据)、测试计划、出错统计和最终分析报告等。7、在数据流图(DFD)中,带有名字的箭头表示A、模块之间的调用关系B、程序的组成成分C、控制程序的执行顺序D、数据的流向标准答案:D知识点解析:数据流相当于一条管道,并有一级数据(信息)流经它。在数据流图中,用标有名字的箭头表示数据流。数据流可以从加工流向加工,也可以从加工流向文件或从文件流向加工,并且可以从外部实体流向系统或从系统流向外部实体。8、分布式数据库系统不具有的特点是A、数据分布性和逻辑整体性B、位置透明性和复制透明性C、分布性D、数据冗余标准答案:D知识点解析:分布式数据库系统具有数据分布性、逻辑整体性、位置透明性和复制透明性的特点,其数据也是分布的;但分布式数据库系统中数据经常重复存储,数据也并非必须重复存储,主要视数据的分配模式而定。若分配模式是一对多,即一个片段分配到多个场地存放,则是冗余的数据库,否则是非冗余的数据库。9、关系表中的每一横行称为一个A、元组B、字段C、属性D、码标准答案:A知识点解析:关系表中,每一行称为一个元组,对应表中的一条记录;每一列称为表中的一个属性,对应表中的一个字段;在二维表中凡能唯一标识元组的最小属性集称为该表的键或码。10、下列数据模型中,具有坚实理论基础的是A、层次模型B、网状模型C、关系模型D、以上3个都是标准答案:C知识点解析:关系模型较之格式化模型(网状模型和层次模型)有以下方面的优点,即数据结构比较简单、具有很高的数据独立性、可以直接处理多对多的联系,以及有坚实的理论基础。二、选择题(本题共25题,每题1.0分,共25分。)11、C++语言中标点符号中表示一条预处理命令开始的是A、#B、;C、*D、{标准答案:A知识点解析:C++语言中预处理语句的开始符号是#。12、每个C++程序中都必须有且仅有一个A、类B、预处理命令C、主函数D、语句标准答案:C知识点解析:每个C++程序中都要有且仅有一个主函数,该函数是程序的人口,而语句、预处理命令和函数及类在程序中都可以有多个。13、sizeof(float)是A、一个双精度型表达式B、一个整型表达式C、一种函数调用D、一个不合法的表达式标准答案:B知识点解析:该函数用于数据类型和变量。注意:sizeof操作符不能用于函数、不完全类型或位字段。不完全类型指具有未知存储大小的数据类型,如未知存储大小的数组类型、void类型等。14、设有intx=11;,则表达式(x++*2/3)的值是A、7B、8C、11D、12标准答案:A知识点解析:当自加运算符做后缀表达式的时候,表达式的值不变,只有变量的值增1,所以表达式(x++*2/3)相当于(11*2/3),取整后为7。15、设有程序段:intk=10;while(k=0)k=k-1;则下面描述中正确的是A、循环执行10次B、无限循环C、循环体语句一次也不执行D、循环体语句执行一次标准答案:C知识点解析:本题中,首先将0赋给k,表达式变为0,跳出循环,没有执行循环体语句。解答本题的关键是掌握while语句。16、对表达式for(表达式1;;表达式3)可理解为A、for(表达式1;0;表达式3)B、for(表达式1;1;表达式3)C、for(表达式1;表达式3;)D、for(;;表达式3)标准答案:B知识点解析:本题中,若要保证for表达式能正常进行,首先要保证第2个表达式的条件判断值应该为真,从而保证循环进行。17、以下不正确的定义语句是A、doublex[5]={2.0,4.0,6.0,8.0,10.0};B、inty[5]={0,1,3,5,7,9};C、charc1[]={’1’,’2’,’3’,’4’,’5’};D、charc2[C]={,’\x10’,’\xa’,’\x8’};标准答案:B知识点解析:在一维数组中要注意的是作为下标表达式的常量表达式的值必须是大于等于0,并且小于自身,本题中选项B)的下标表达式的值超过了自身。18、有如下说明:inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为9的表达式是A、*p+9B、*(p+8)C、*p+=9D、p+8标准答案:B知识点解析:按照C++语言的数组元素的引用方法,如数组元素a[0],可以用表达式*(p+0),即*p来引用,对于数组元素a[1],可以用表达式*(p+1)来引用,在这里,p+1的值就是数组元素a[1]的地址,对此地址使用“间接访问运算符”:*(p+1)就代表存储单元a[1],注意一对圆括号不可少。同样,对于数组元素a[2],则可以用表达式*(p+2)来引用…,对于数组元素a[9],可以用表达式*(p+9)来引用。因此,当指针变量p指向a数组的起始地址时,若0≤i<10,则数组元素a[i]可以用表达式*(p+i)来引用。19、下列函数的运行结果是#include<iostream.h>intf(inta,intb){intc;if(a>b)c=1;elseif(a==b)c=0;elsec=-1;return(c);}voidmain(){inti=2,j=3;intp=f(i,j);cout<<p;}A、-1B、1C、2D、编译出错,无法运行标准答案:A知识点解析:本题的函数是根据a和b的值来给c赋值。20、以下对C++语言函数的有关描述中,正确的是A、在C++语言中调用函数时,只能把实参的值传给形参,形参的值不能传送给实参B、C++语言函数既可以嵌套定义又可以递归调用C、函数必须无返回值,否则不能使用函数D、函数必须有返回值,返回值类型不定标准答案:A知识点解析:形参的值的改变,不能影啊实参的值。选项B)函数只能嵌套调用,不能嵌套定义;函数要是有返回值其类型必须确定;函数也可无返回值,用void表示。21、关于静态数据成员的描述中正确的是A、类的静态数据成员不是类的所有对象共享的数据B、类的静态数据成员不能被类的成员函数调用C、类的静态数据成员不能被类的构造函数调用D、类的静态数据成员必须进行初始化标准答案:D知识点解析:C++类中的静态成员变量是该类中所有对象所共有的,它能够被类中的任何函数调用,所以选项A)、选项B)、选项C)是错误的。而类的静态数据成员是必须要进行初始化才能使用的。22、复制构造函数的参数一般是A、某对象名B、某对象成员名C、某对象的引用名D、指向对象的指针名标准答案:C知识点解析:C++语言中拷贝构造函数的参数一般是某个对象的引用名。23、下表正确的是在父类中的访问属性访问修饰符在子类中的访问属性A、publicprivate不能直接访B、protectpublicpublicC、privatepublic不能直接访问D、protectprivateprotect标准答案:C知识点解析:基类的私有成员在派生类中是隐藏的,只能在基类内部访问,派生类中的成员不能访问基类中的私有成员,可以访问基类中的公有和受保护的成员。24、下面这个程序的结果是#include<iostream.h>classA{private:inta;public:voidseta();intgeta();};voidA::seta(){a=1;}intA::geta(){retuma;}classB{private:inta;public:voidseta();intgeta();};voidB::seta(){a=2;}intB::geta(){returna;}classC:publicA,publicB{private:intb;public:voiddisplay();};voidC::display(){intb=geta();cout<<b;}voidmain(){Cc;c.seta();c.display();}A、1B、2C、随机输出1或2D、程序有错标准答案:D知识点解析:在类A中有geta()函数,在类B中也有geta()函数,类C继承了类A和类B,这样就产生了二义性,所以程序会出错。25、下列运算符中全都可以被友元函数重载的是A、=、+、-、\B、[]、+、()、newC、->、+、*、>>D、<<、>>、+、*标准答案:D知识点解析:C++中只能被成员函数重载的运算符是=,[],(),->,只能被友元函数重载的是<<、>>。26、对于模板定义关键字class和typename说法不正确的是A、程序中的class并不能都替换为typenameB、class和typename都可互相替换C、程序中的typename都能替换为classD、程序中的部分class可以替换为typename标准答案:B知识点解析:在C++程序中的typename是都可以替换为class的,但class不能都替换为typename。27、对于下面的程序:ifstreamfin(c:\test.txt);if(fin)cout<<"ok";elsecout<<"wrong";if语句中的内容可以换为A、fin.fail();B、fin.bad();C、fin.good();D、fin.eof();标准答案:C知识点解析:C++语言中判断文件操作成功主要有两个函数good()和fail(),其中if(文件流名.good())和if(!文件流名.fail()),还有if(文件流名)都可以表示判断文件操作是否成功。28、以下程序的输出结果是#include<iostream.h>longfun(intn){longs;if(n==1||1n==2)s=2;elses=n-fun(n-1);returns;}voidmain(){cout<<fun(3);}A、1B、2C、3D、4标准答案:A知识点解析:题中fun函数进行了递归调用,第1次调用:fun(3)n=3s=3-fun(2),第二次调用时:fun(2)n=2s=2,返回第一次调用后,s=3-2=1。29、不合法的main函数命令行参数表示形式是A、main(inta,char*c[])B、main(intarc,char**arv)C、main(intargc,char*argv)D、main(intargv,char*argc[])标准答案:C知识点解析:在C++语言中,main函数也可以有参数,例如:main(intarvc,char*argv),argc是指向字符串的指针数组,而选项C)的第二个形参是指向字符变量的指针,是错误的。30、有如下程序:#include<iostream.h>voidmain(){charch[2][5]={"6937","8254"},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>’\0’;j+=2)s=10*s+p[i][j]-’0’;cout<<s;}该程序的输出结果是A、69825B、63825C、6385D、693825标准答案:C知识点解析:该题主要搞清楚以下几点:①定义了一个指针数组char*P[2]后,程序中第一个循环for(i=0;i<2;i++)p[i]=ch[i];的作用是使指针数组的p[0]元素(它本身是一个指针)指向了二维数组ch的第一行字符串,并使指针数组的p[1]元素指向了二维数组ch的第二行字符串,这样,就使指针数组p和二维数组ch建立起了一种对应关系,以后对二维数组ch的某个元素的引用就有两种等价的形式:ch[i][j]或p[i][j]。②对二维数组ch的初始化,使其第一行ch[0]中存入了字符串“6937”,第二行ch[1]中的内容为字符串“8254”。③程序中第二个循环中的循环体s=s*10+p[i][j]-’0’;的功能是这样的,每执行一次,将s中的值乘以10(也即,将s中的数值整体向左移动一位,并在空出来的个位上添一个0),再将当前P[i][j]中的字符量转换为相应的数字,然后把这个数字加到s的个位上。④注意到内层循环的循环条件p[i][j]>’\0’是指p[i][j]中的字符只要不是字符串结束标志’\0’就继续循环,语句j+=2;是使下标j每次增加2,也即一个隔一个地从p[i]所指向的字符串中取出字符。经过上述解析后,不难看出,该程序首先从P[0]所指向的字符串“6937”中一个隔一个地取出字符,分别是“6”和“3”,然后从p[1]所指向的字符串“8254”中一个隔一个地取出字符,分别是“8”和“5”,同时经过转换和相加运算后,结果s中的值应该是6385。31、下面叙述不正确的是A、基类的保护成员在派生类中仍然是保护的成员B、基类的保护成员在公有派生类中仍然是保护的C、基类的保护成员在私有派生类中仍然是私有的D、对基类成员的访问必须是无二义性标准答案:A知识点解析:C++语言中如果基类的成员是保护的,它被继承后在子类中该成员可能是保护的,也可能不是,主要看继承的权限是public还是protected或private的。32、以下程序的输出结果是#include<iostream.h>voidmain(){charx=040;cout<<(X<<1);}A、100B、80C、64D、32标准答案:C知识点解析:左移1位,相当于乘以2,题中的x的值是一个八进制数,转换为十进制数是32,再乘以2,x的值为64。33、下面程序的功能是将从键盘输入的一对数,由小到大排序输出,当输入一对相等数时结束循环,在下画线处应填入的选项是#include<iostream.h>voidmain(){inta,b,t;cin>>a>>b;while(____){if(a>b){t=a;a=b;b=t;}cout<<a<<""<<b<<endl;cin>>a>>b;}}A、!a=bB、a!=bC、a==bD、a=b标准答案:B知识点解析:根据本题提出的条件可知,控制循环的表达式应该是所输入的两个数互不相等,也即只有满足这一条件时,两数才能进行排序输出的操作,由此得出循环的控制表达式应该为a!=b。34、对以下说明语句的正确理解是inta[10]={6,7,8,9,10};A、将5个初值依次赋给a[1]至a[5]B、将5个初值依次赋给a[0]至a[4]C、将5个初值依次赋给a[6]至a[10]D、因为数组长度与初值的个数不相同,所以此语句不正确标准答案:B知识点解析:本题中,表达式将5个初值赋给a[0]至a[4],后面的部分将自动被依次补零处理。35、类A是类B的友元,类B是类C的友元,则下列说法正确的是A、类B是类A的友元B、类C是类A的友元C、类A是类C的友元D、以上都不对标准答案:D知识点解析:选项A)、选项B)和选项C)都不正确,因为友元关系是单项的,并且没有交换性、传递性。三、公共基础填空题(本题共5题,每题1.0分,共5分。)36、数据结构分为逻辑结构与存储结构,线性链表属于______。标准答案:存储结构知识点解析:数据的逻辑结构是指反映数据元素之间逻辑关系的数据结构;数据的存储结构是指数据的逻辑结构在计算机存储空间中的存放形式。在数据的存储结构中,不仅要存放各数据元素的信息,还需要存放各数据元素之间的前后件关系的信息。37、在面向对象方法中,类之间共享属性和操作的机制称为______。标准答案:继承知识点解析:类是面向对象语言中必备的程序语言结构,用来实现抽象数据类型。类与类之间的继承关系实现了类之间的共享属性和操作,一个类可以在另一个已定义的类的基础上定义,这样使该类型继承了其超类的属性和方法,当然,也可以定义自己的属性和方法。38、耦合和内聚是评价模块独立性的两个主要标准,其中______反映了模块内各成分之间的联系。标准答案:内聚知识点解析:内聚性是一个模块内部各个元素间彼此结合的紧密程度的度量,内聚是从功能角度来度量模块内的联系;耦合性是模块间互相连接的紧密程度的度量。39、一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体“项目主管”与实体“项目”的联系属于______的联系。标准答案:一对多(或1:N)知识点解析:两个实体集间的联系实际上是实体集间的函数关系,这种函数关系可以有3种,即一对一(1:1)的联系、一对多(1:N)或多对一(N:1)的联系和多对多(M:N)的联系。40、数据库设计分为以下6个设计阶段:需求分析阶段、______、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。标准答案:数据库概念设计阶段知识点解析:数据库设计分为以下6个设计阶段:需求分析阶段、概念设计阶段、逻辑设计阶段、物理设计阶段、实施阶段及数据库运行和维护阶段。四、填空题(本题共10题,每题1.0分,共10分。)41、假设inta=1,b=2;,则表达式(++a/b)*b--的值为______。标准答案:2知识点解析:运算符“++”的优先级高于双目运算符“/”,所以括号中的运算为2/2,最后的结果为2/2*2。42、C++语言提供的基本控制结构可以分为3种类型:顺序结构、______和循环结构。标准答案:选择结构知识点解析:顺序结构(也叫连续结构)和循环结构是经常被使用的,不过选择结构(if和switch)也是一种重要的流程控制结构。43、C++语句constchar*constp="hello";,所定义的指针p和它所指的内容都不能被______。标准答案:改变知识点解析:本题考查的是定义常量的关键字const,由const定义的变量的值不可以再改变,所以定义时必须进行初始化。44、C++语言的参数传递机制包括传值和传地址两种,如果调用函数时,需要改变实参或者返回多个值,应该采取______方式。标准答案:传地址知识点解析:本题考查的是传值调用和传址调用的区别:传值调用只是进行值的简单复制,返回之后不会改变原来的值;而传址调用是把参数的地址传入,会改变原来的值。45、对于下面定义的类MyClass,请在函数f()中添加对象成员把n的值修改为50。classMyClass{public:MyClass(intx){n=x;}voidSetNum(intnl){n=nl;}private:intn;};intf(){MyClass*ptr=newMyClass(45);}标准答案:ptr->SetNum(50);知识点解析:本题考查的是考生使用对象指针调用成员函数的能力,指针调用成员函数应该使用符号“->”。46、继承的方式有公有继承、私有继承和______3种。标准答案:保护继承知识点解析:继承性是面向对象程序设计中最重要的机制,用户可以根据不同的需要选择3种不同的继承方式。47、表达式operator+(x,y)还可以表示为______。标准答案:x+y知识点解析:本题考查的是运算符函数的调用,可以像一般函数那样用函数名进行调用,也可通过运算符构成表达式的形式进行调用。48、类模板的使用实际上是将类模板实例化成一个具体的______。标准答案:类知识点解析:本题考查的是类模板的使用方式,就是把类模板的一般化定义实例化为一个真正的类。49、派生类构造函数的执行顺序是先执行______的构造函数,然后执行成员对象的构造函数,最后执行______的构造函数。标准答案:基类;派生类知识点解析:本题主要考查的是派生类构造函数的执行顺序,在C++语言中构造函数的执行顺序是先基类后派生类,而析构函数的执行顺序正好相反,是先调用派生类,后调用基类。50、已知程序的结果为123,请填空。#include<iostream.h>template<classT>classA{public:TX,y,z;voiddisplay(){cout<<x<<""<<y<<""<<z;}};voidmain(){A<int>a1;_______________a1.display();}标准答案:12a1.x=1;13a1.y=2;14a1.z=3;知识点解析:通过程序的结果知道数据类型是int,所以调用时声明模板实参为int的,再对x、y、z进行赋值。国家二级(C++)笔试模拟试卷第3套一、公共基础选择题(本题共10题,每题1.0分,共10分。)1、下面叙述正确的是()。A、算法的执行效率与数据的存储结构无关B、算法的空间复杂度是指算法程序中指令(或语句)的条数C、算法的有穷性是指算法必须能在执行有限个步骤之后终止D、以上三种描述都不对标准答案:4知识点解析:暂无解析2、下列叙述中正确的是()。A、线性表是线性结构B、栈与队列是非线性结构C、线性链表是非线性结构D、二叉树是线性结构标准答案:1知识点解析:暂无解析3、下述有关构造函数的说法,不正确的是()。A、构造函数名字和类的名字一样B、构造函数在说明类变量时自动执行C、构造函数无任何函数类型D、构造函数有且只有一个标准答案:8知识点解析:暂无解析4、两个或两个以上模块之间关联的紧密程度称为()。A、耦合度B、内聚度C、复杂度D、数据传输特性标准答案:1知识点解析:暂无解析5、数据模型的三要素是()。A、外模式、概念模式和内模式B、关系模型、网状模型、层次模型C、实体、属性和联系D、数据结构、数据操作和数据约束条件标准答案:8知识点解析:暂无解析6、需求分析是()。A、软件开发工作的基础B、软件生存周期的开始C、由系统分析员单独完成D、由用户自己单独完成标准答案:1知识点解析:暂无解析7、在软件开发中,下面任务不属于设计阶段的是()。A、数据结构设计B、给出系统模块结构C、定义模块算法D、定义需求并建立系统模型标准答案:8知识点解析:暂无解析8、下列关于数据库系统的叙述中正确的是()。A、数据库系统减少了数据冗余B、数据库系统避免了—切冗余C、数据库系统中数据的一致性是指数据类型一致D、数据库系统比文件系统能管理更多的数据标准答案:1知识点解析:暂无解析9、在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是()。A、可行性分析B、需求分析C、详细设计D、程序编码标准答案:2知识点解析:暂无解析10、下列选项中不属于软件生命周期定义时期任务的是()。A、可行性分析B、概要设计C、规格说明D、需求分析标准答案:2知识点解析:暂无解析二、选择题(本题共25题,每题1.0分,共25分。)11、设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是()。A、6.5B、6C、5.5D、6标准答案:8知识点解析:暂无解析12、如果有以下定义及初始化:inta=3,*p:&a;则由此可以推断,*p的值是()。A、变量a的值,即3B、变量a的地址值C、变量p的地址值D、无意义标准答案:1知识点解析:暂无解析13、一个函数为voidf(int,charch=’a’),另一个函数为voidf(int),则它们A、不能在同一程序中定义B、可以在同一程序中定义并可重载C、可以在同一程序中定义,但不可以重载D、以上说法均不正确标准答案:4知识点解析:暂无解析14、关于类和对象描述错误的是()。A、对象(Object)是现实世界中的客观事物,对象具有确定的属性B、类是具有相同属性和行为的一组对象的集合C、对象是类的抽象,类是对象的实例D、类是对象的抽象,对象是类的实例标准答案:4知识点解析:暂无解析15、对类的构造函数和析构函数描述正确的是()。A、构造函数可以重载,析构函数不能重载B、构造函数不能重载,析构函数可以重载C、构造函数可以重载,析构函数也可以重载D、构造函数不能重载,析构函数也不能重载标准答案:1知识点解析:暂无解析16、派生类的构造函数的成员初始化列表中,不能包含()。A、基类的构造函数B、派生类中子对象的初始化C、基类中子对象的初始化D、派生类中一般数据成员的初始化标准答案:4知识点解析:暂无解析17、下列表达式的值为false的是()。A、1<3&&5<7B、!(2>4)C、3&0&&1D、!(5<8)||(2<8)标准答案:4知识点解析:暂无解析18、以下不能正确定义二维数组的选项是()。A、inta[2][2]={{1},{2}};B、inta[][2]={1,2,3,4);C、inta[2][2]={{1},2,3};D、inta[2][]={{1,2},{3,4}};标准答案:2知识点解析:暂无解析19、下列语句中,错误的是()。A、constintbuffer=256;B、constinttemp;C、constdouble*point;D、constdouble*rt=newdouble(5.5);标准答案:2知识点解析:暂无解析20、下列语句段将输出字符“。”的个数为()。inti=100;while(1){i--;if(i==0)break;cout<<’*’;}A、98个B、99个C、100个D、101个标准答案:2知识点解析:暂无解析21、下列有关指针的用法中错误的是()。A、inti;int*ptr=&i;B、inti;int*ptr;i=*ptr;C、int*ptr;ptr=0;D、inti=5;int*ptr;*ptr&i;标准答案:2知识点解析:暂无解析22、系统在调用重载函数时往往根据一些条件确定哪个重载函数被调用,在下列选项中,不能作为依据的是()。A、参数个数B、参数的类型C、函数名称D、函数的类型标准答案:8知识点解析:暂无解析23、对于结构体中定义的成员,其默认的访问权限为()。A、publicB、protectedC、ptivateD、static标准答案:1知识点解析:暂无解析24、假定MyClass为一个类,则该类的拷贝构造函数的声明语句为()。A、MyClass&(MyClassx);B、MyClass(MyClassx)C、MyClass(MyClass&x);D、MyClass(MyClass*x)标准答案:4知识点解析:暂无解析25、有如下程序:#include<iostream>usingnamespacestd;intmain(){int*p;*p=9;cout<<"Thevalueatp:"<<*p;return0;}编译运行程序将出现的情况是()。A、编译时出现语法错误,不能生成可执行文件B、运行时一定输出:Thevalueatp:9C、运行时一定输出:Thevalueatp:*9D、运行时有可能出错标准答案:8知识点解析:暂无解析26、执行语句:{cout<<setfill(’*’)<<setw(10)<<setfill(’#’)<<left<<123<<"OK"<<endl;return0;)后将输出()。A、123*******OKB、123#######OKC、123********OK********D、123#######OK########标准答案:2知识点解析:暂无解析27、类MyClass的定义如下:classMyClass{pubfic:MyClass(){value=0;}SetVariable(inti){value=i;)private:intvalue;};则对下列语句序列正确的描述是()。MyClass*p,my;p=&my;A、语句p=&my;是把对象my赋值给指针变量pB、语句MyClass*p,my;会调用两次类MyClass的构造函数C、对语句*p.SetVariable(5)的调用是正确的D、语句p->SetVadable(5)与语句my.SetVariable(5)等价标准答案:8知识点解析:暂无解析28、下列do...while循环的循环次数为()。inti=5;do{cout<<i--<<endl;i--;}while(i!=0);A、0B、1C、5D、无限标准答案:8知识点解析:暂无解析29、在下面格式化命令的解释中,错误的是()。A、ios::skipws_跳过输入中的空白字符B、ios::showpos_标明浮点数的小数点和后面的零C、ios::fill()_读当前填充字符(缺省值为空格)D、ios::precision()_读当前浮点数精度(缺省值为6)标准答案:2知识点解析:暂无解析30、下列说法中错误的是()。A、公有继承时基类中的public成员在派生类中仍是public的B、公有继承时基类中的pdvate成员在派生类中仍是public的C、私有继承时基类中的pubUc成员在派生类中是private的D、保护继承时基类中的puⅦc成员在派生类中是protected的标准答案:2知识点解析:暂无解析31、有如下程序:#include<iostream>usingnamespacestd;classA{public:A(){cout<<’A’;)~A(){cout<<"~A";)};classB:publicA{A*p;publiC:B(){cout<<"B";p=newA();)~B(){cout<<"~B";deletep;)};intmain(){Bobj;return0;}执行这个程序的输出结果是()。A、BAA~A~B~AB、ABA~B~A~AC、BAA~B~A~AD、ABA~A~B~A标准答案:2知识点解析:暂无解析32、若有以下程序:#include<iostream>usingnamespacestd;classA{public:A(inti,intj){a=i;b=j;}voidmove(intx,inty){a+=X;b+=y;}voidshow(){cout<<a<<","<<b<<endl;}private:inta,b;};classB:privateA{public:B(inti,intj):A(i,j){)voidfun(){move(3,5);}voidf1(){A::show();}};intmain(){Bd(3,4);d.fun();d.f1();return0;}程序执行后的输出结果是()。A、3,4B、6,8C、6,9D、4,3标准答案:4知识点解析:暂无解析33、下面叙述错误的是()。A、基类的protected成员在派生类中仍然是protected的B、基类的protected成员在public派生类中仍然是protected的C、基类的protected成员在private派生类中是private的D、一基类的protected成员不能被派生类的对象访问标准答案:1知识点解析:暂无解析34、设有以下定义和程序:#include<iostream.h>classA1{public:voidshow1(){cout<<"classA1"<<endl;}};classA2:publicA1{public:voidshow2(){cout<<"classA2"<<endl;}};classA3:protectedA2{public:voidshow3(){cout<<"classA1"<<endl;}};voidmain(){A1obj1;A2obj2;A3obi3;}则以下不合语法的调用语句是()。A、objl.show1();B、obj2.show1();C、obj3.show1();D、obj2.show2();标准答案:4知识点解析:暂无解析35、多继承的构造顺序可分为如下四步:①所有非虚基类的构造函数按照它们被继承的顺序构造②所有虚基类的构造函数按照它们被继承的顺序构造③所有子对象的构造函数按照它们声明的顺序构造④派生类自己的构造函数体这四个步骤的正确顺序是()。A、④③①②B、②④③①C、②①③④D、③④①②标准答案:4知识点解析:暂无解析三、公共基础填空题(本题共5题,每题1.0分,共5分。)36、算法的复杂度主要包括【】复杂度和空间复杂度。标准答案:时间知识点解析:暂无解析37、通常元素进栈的操作是【】。标准答案:先移动栈顶指针,后存入元素知识点解析:暂无解析38、结构化程序设计的一种基本方法是【】法。标准答案:逐步求精知识点解析:暂无解析39、通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为【】。标准答案:软件生命周期知识点解析:暂无解析40、排序是计算机程序设计中的一种重要操作,常见的排序方法有插入排序、【】和选择排序等。标准答案:交换排序知识点解析:暂无解析四、填空题(本题共6题,每题1.0分,共6分。)41、程序段的输出结果是【】。inta=12,b=12;cout<<--a<<""<<++b;标准答案:1113知识点解析:暂无解析42、以下程序的输出结果是【】。include<iostream.h>include<string.h>voidmain0{chars[50];strcpy(&s[O],"No");strcpy(&s[1],"123");strcpy(&s[2],"23456");cout<<s;}标准答案:N123456知识点解析:暂无解析43、函数调用时,若形象,实参均为数组,则其传递方式是【】。标准答案:地址传递方式知识点解析:暂无解析44、以下程序的输出结果是【】。#include<iostream.h>voidmain(){int*p;p=newint;*p=200;cout<<*p;deletep;}标准答案:200知识点解析:暂无解析45、分析以下程序的执行结果【】。#include<iostream.h>classS{intA[10];public:int&operator()(int);};int&S::operator()(intx){returnA[x];}voidmain(){Sa;inti,j;for(i=0;i<10;i++)a(i)=i*2;for(i=0;i<10;i++)cout<<a(i)<<"";cout<<end1;}标准答案:024681012141618知识点解析:暂无解析46、阅读下列程序,并写程序运行结果【】。#include<iomanip.h>voidmain(){for(inti=0;i<4;i++)cout<<end1<<setfill(’’)<<setw(4-i)<<’0’<<setfill(’*’)<<setw(i+i)<<(i>0?’O’:’’);}标准答案:00*0O***00*****0知识点解析:暂无解析五、填空题(含2小题)(本题共1题,每题1.0分,共1分。)47、若已定义,以下fun函数的功能是:在第一个循环中给前10个数组元素依次赋1、2、3、4、5、6、7、8、9、10;在第二个循环中使a数组前10个元素中的值对称折叠,变成1、2、3、4、5、5、4、3、2、1。请填空。fun(inta[]){inti;for(i=1;i<=10;i++)【】=i;for(i=0;i<5;i++)【】a[i];}标准答案:a[i-1],a[9-i]知识点解析:暂无解析国家二级(C++)笔试模拟试卷第4套一、公共基础选择题(本题共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、下列关系模型中,能使经运算后得到的新关系中属性个数多于原来关
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人才租赁行业相关项目经营管理报告
- 手机指环扣产业链招商引资的调研报告
- 破碎锤项目营销计划书
- 5G智能旅游行业市场调研分析报告
- 色带卷轴细分市场深度研究报告
- 玻璃球瓶容器市场分析及投资价值研究报告
- 录像带出租行业经营分析报告
- 圆号产品供应链分析
- 手持式真空吸尘器产业链招商引资的调研报告
- 绣花纺织品制手镯首饰项目营销计划书
- 化工和危险化学品生产经营单位二十条重大隐患判定标准释义(中化协)
- 愚公移山英文 -中国故事英文版课件
- 课件交互设计
- 一级直线倒立摆系统模糊控制器设计---实验指导书
- 梁纵筋水平最小锚固长度不足与固接条件的处理的设计优化
- 大坝基础面处理施工方案
- 腹膜后间隙解剖及CT诊断
- 自动化控制仪表安装工程采用材料及机械价格表(2014版江苏省)
- 八卦象数疗法
- 鲁人版九年级道德与法治上册 2.3一年一度的人民代表大会
- 上海市重点建设项目社会稳定风险评估咨询收费办法
评论
0/150
提交评论