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

下载本文档

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

文档简介

国家二级(C++)笔试模拟试卷22(共9套)(共436题)国家二级(C++)笔试模拟试卷第1套一、公共基础选择题(本题共10题,每题1.0分,共10分。)1、下列有关继承和派生的叙述中,正确的是A)派生类不能访问基类的保护成员B)作为虚基类的类不能被实例化C)派生类应当向基类的构造函数传递参数D)虚函数必须在派生类中重新实现A、

B、

C、

D、

标准答案:C知识点解析:暂无解析2、以下模板定义:template<classT>Tfun(Tx,Ty){returnx*x+y*y;}下面对fun的调用中错误的是()。A、fun<int>(2,6.5)B、fun(2,6.5)C、fun<>(2,6)D、fun(2,6)标准答案:B知识点解析:暂无解析3、从工程管理角度,软件设计一般分为两步完成,它们是A、概要设计与详细设计B、数据设计与接口设计C、软件结构设计与数据设计D、过程设计与数据设计标准答案:A知识点解析:从工程管理的角度,软件设计可分为概要设计和详细设计两大步骤。概要设计是根据需求确定软件和数据的总体框架;详细设计是将其进一步简化成软件的算法或表示和数据结构。而在技术上,概要设计和详细设计又由若干活动组成,包括总体结构设计、数据设计和过程设计。因此,本题的正确答案是A。4、有如下程序:#include<iostream>usingnamespacestd:classA{public:virtualvoidfuncl(){cout<<"A1";}voidfunc2(){cout<<"A2";}};classB:publicA{public:voidfuncl(){cout<<"B1";}voidfllnc2(){cout<<"B2";}};intmain(){A*p=newB;p->funcl();p->func2();return0:}运行程序,屏幕上将显示输出A、B182B、A1A2C、BlA2D、AlB2标准答案:B知识点解析:基类指针可以指向派生类对象,但是指针只能访问继承自基类的成员,而不能访问派生类中的新增加成员或重新定义后的成员。故p->funcl();p->func2();都执行基类的成员函数,打印A1A2。5、A、

B、

C、

D、

标准答案:C知识点解析:暂无解析6、单个用户使用的数据视图的描述称为()。A、外模式B、概念模式C、内模式D、存储模式标准答案:1知识点解析:单个用户使用的数据视图的描述称为外模式。7、以下关于外码和相应的主码之间的关系,正确的是_______。A、外码并不一定要与相应的主码同名B、外码一定要与相应的主码同名C、外码一定要与相应的主码同名而且唯一D、外码一定要与相应的主码同名,但并不一定唯一标准答案:1知识点解析:暂无解析8、若结点的存储地址与其关键字之间存在某种映射关系,则称这种存储结构为______。A、顺序存储结构B、链式存储结构C、索引存储结构D、散列存储结构标准答案:8知识点解析:暂无解析9、下列说法中错误的是()。A、公有继承时基类中的public成员在派生类中仍是public的B、公有继承时基类中的private成员在派生类中仍是private的C、私有继承时基类中的public成员在派生类中是private的D、保护继承时基类中的public成员在派生类中是protected的标准答案:2知识点解析:暂无解析10、对建立良好的程序设计风格,下面描述正确的是()。A、程序应简单、清晰、可读性好B、符号的命名只要符合语法C、充分考虑程序的执行效率D、程序的注释可有可无标准答案:1知识点解析:本题涉及程序的编程风格,考生应该掌握一些基本的良好编程风格。符号的命名不仅要符合语法,应有一定实际意义,且尽量简洁。除非对效率有特别要求,程序编写要做到清晰第一,效率第二。必须要有必要的注释。二、选择题(本题共25题,每题1.0分,共25分。)11、在进行了任何C++流的操作后,都可以用C++流的有关成员函数检测流的状态,其中只能用于检测刚进行的操作是否失败函数名是A、failB、eofC、badD、good标准答案:A知识点解析:C++中可以用文件流对象的下列成员函数来判别文件流的当前状态。函数is_open()判定流对象是否与一个打开的文件相联系,若是,返回true,否则返回false;函数good()刚进行的操作成功时返回true,否则返回false;函数fail()与good()相反,刚进行的操作失败时返回true,否则返回false;函数bad()如果进行了非法操作返回true,否则返回false;函数eof()进行输入操作时,若到达文件尾返回true,否则返回false。其中,eof函数只能用于输入流操作。12、在下面的类定义中,横线处应填入的内容是classFred{public:voidprint(){cout<<data<<end1;}voidsetData(doubleD){data=d;staticintcount;private:doubledata;};______count=0;//静态数据成员的定义A、intB、staticintC、intFred::D、staticintFred::标准答案:C知识点解析:本题考核静态数据成员的定义。题中数据成员count被定义成了静态的,其初始化的格式为:<类型><类名>::静态数据成员=常量值;,所以横线处应填入的为“intFred”。13、有如下程序:#include<iostream>usingnamespacestd;intmain(){cout.fill(’*’);cout.width(6);cout.fill(’#’);cout<<123<<end1;return0;}执行后的输出结果是A、###123B、123###C、***123D、123***标准答案:A知识点解析:本题考核I/O的格式化输出。语句“cout.fill(’*’);”表示填充字符为‘*’,并且一直有效,直到再次设置填充字符为止。语句“cout.width(6);”用来设置输入输出宽度,当实际数据宽度小于指定的宽度时,多余的位置用填充字符填满;当实际数据的宽度大于设置的宽度时,仍按实际的宽度输出。语句“cout.fill(’#’);”表示将填充字符改为‘#’(即把之前设置的‘#’改为‘#’),由于数据“123”的实际宽度小于6,由于输出的初始状态为在输出宽度内右对齐,所以前面将会有3个填充字符‘#’。14、已知n是一个int型变量,下列语句中错误的是()。A、long*p=newlong[n];B、longp[n];C、long*p=newlong(n);D、longp[10];标准答案:B知识点解析:此题考查的是数组、指针及关键字new。说明一维数组的一般形式是:数组类型数组名[数组长度];其中数组长度必须是整型常量或常量表达式。选项B)中,n是一个变量,不能做数组的长度,故选项B)错误;其他选项均正确。15、下列有关类和对象的叙述不正确的是A、任何一个对象都归属于一个具体的类B、类与对象的关系和数据类型与变量的关系相似C、类的数据成员不允许是另一个类的对象D、一个类可以被实例化成多个对象标准答案:C知识点解析:对象是类的实例,类的成员可以是其他类的对象。那么在该类实例化的时候,必须保证其他类的对象已经生成,否则将会出现错误。16、有如下程序:#include<iostream>usingnamespacestd;ClassA{public:A(){cout<<“A”;}~A(){cout<<“~A”;}};A*p;public:B(){cout<<“B”;p=newA;}~B(){cout<<“~B”;deletep;}};Bobj;return0;)执行这个程序的输出结果是(A、BAA~A~B~AB、ABA~B~A~AC、BAA~B~A~AD、ABA~A~B~A标准答案:B知识点解析:本题考查的是类的构造函数和析构函数。派生类构造函数的执行顺序:首先调用基类的构造函数,调用顺序按它们被继承时说明的顺序;然后调用予对象的构造函数,调用顺序按它们在类中说明的顺序,最后是派生类构造函数中的内容。因此本题中,首先调用基类构造函数输出A,然后调用于对象的构造函数输出B,p=newA再调用类A的构造函数输出A;析构函数的调用顺序和构造函数的调用顺序相反。17、下列程序的运行结果是#include<iostream.h>classA{inta;public:A(){a=0;}A(intaa){a=aa;cout<<a++;}};voidmain()Ax,y(2),z(3);cout<<endl;}A、00B、23C、34D、25标准答案:B知识点解析:本题考查的是对构造函数的掌握,另外“++”运算符是右结合的,所以在进行输出的时候都是先把原来的输出后再自加1。18、下列关于虚函数与函数重载区别的叙述中不正确的是()。A、函数说明形式上不同B、函数重载允许是非成员函数,虚函数只能是成员函数C、函数重载的调用依据参数和类型的差别,虚函数则依据对象D、函数重载的本体可以在类外定义,虚函数不可以标准答案:D知识点解析:A项,B项,C项均为虚函数与函数重载的不同之处。但有一点它们是相同的:在类内外定义均可。故D项错误。19、有如下程序:#include<iostream)usingnamespacestd;classBase{public:Base(intx=0){cout<<x;}};ClassDerived:publicBase{public:Derived(intx=0){cout<<x;}private:BaseVal;};intmain(){Derivedd(1);returnA、100B、000C、010D、001标准答案:D知识点解析:本题考查的知识点是:类的构造。建立一个类的对象时,构造函数的执行顺序如下:①执行基类的构造函数,调用顺序按照各个基类被继承时声明的顺序(自左向右);②执行成员对象的构造函数,调用顺序按照各个成员对象在类中声明的顺序(自上而下):③执行自身的构造函数。本题Derived类继承于Base类,所以首先会构造基类Base,但Derived类的构造函数没有初始化列表,所以将调用Base类的默认构造函数,输出一个0。接下来由于它的成员中还定义了一个Base类的对象,而构造函数也没有显示初始化这个对象,所以再次调用20、下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,在下画线处应填入的选项是#include<iostream.h>Voidmain(){inti=0,j,k;do{i++;k=316-13*i;}while(____);j=k/11;cout<<"316=13*"<<i<<"+11*"<<j;}A、k/11B、k%11C、k/11=0D、k%11=0标准答案:B知识点解析:do…while语句的一般形式是do{语句}while(表达式);特点是:“直到型”循环结构。先执行一次“语句”,判“表达式”,当“表达式”为非0,再执行“语句”,直到“表达式”的值为0时停止执行语句。在一般情况下,用while和do…while语句解决同一问题时,若二者的循环体部分是一样的,它们的结果也一样。但当while后面的“表达式”一开始就为“假”时,两种循环的结果不同。这是因为此时while循环的循环不被执行,而do…while循环的循环体被执行一次。本题的关键是两个加数分别能被13和11整除,在i=0时,直接将316赋值给k,当k%11的值为0时,则不必执行循环,将执行j=k/11语句,输出结果,所以该表达式合理的条件是k%11。21、有如下程序:#includeusingnamespacestd;classTestClass{intn;public:TestClass(intk):n(k){}intget(){returnn;}intget()const{returnn+1;}};intmain(){TestClassp(5);constTestClassq(6);cout<A、55B、57C、75D、77标准答案:B知识点解析:C++中对常对象的成员函数调用,将自动调用其常成员函数,程序中调用原型为“intget()const;“”的函数,对于非常对象将调用原型为“intget();”的函数。因为首先用5对对象p进行了初始化,所以执行p.get()时直接返回5,而对于常对象则以6对q进行初始化,在调用q.get()时,将调用原型为“intgetoconst;”的函数,该函数将返回n+1,第二个输出应为7,所以本题答案为57。22、下列关于C++流的说明中,正确的是()。A、与键盘、屏幕、打印机和通信端口的交互都可以通过流类来实现B、从流中获取数据的操作称为插入操作,向流中添加数据的操作称为提取操作C、cin是一个预定义的输入流类D、输出流有一个名为open的成员函数,其作用是生成一个新的流对象标准答案:1知识点解析:暂无解析23、内部格式控制操作函数是在头文件()中定义的。A、iostream.hB、iomanip.hC、istream.hD、ostream.h标准答案:2知识点解析:暂无解析24、在说明一个结构体变量时,系统分配给它的存储空间是()。A、该结构体中第一个成员所需的存储空间B、该结构体中最后一个成员所需的存储空间C、该结构体中占用最大存储空间的成员所需的存储空间D、该结构体中所有成员所需存储空间的总和标准答案:8知识点解析:暂无解析25、假定MyClass为一个类,则该类的拷贝初始化构造函数的声明语句为()。A、MyClass&(MyClassx);B、MyClass(MyClassx)C、MyClass(MyClass&x);D、MyClass(MyClass*x)标准答案:4知识点解析:暂无解析26、对于while、do…while循环结果说法正确的是______。A、只是表达形式不同B、do…while结构中的语句至少执行—坎C、while结构中的语句至少执行一次D、条件成立时,他们有可能一次也不执行标准答案:2知识点解析:暂无解析27、下列定义中,x是一个类,______是定义指向对象数组的指针p。A、X*p[4]B、X(*p)[4]C、(X*)p[4]D、X*p[]标准答案:2知识点解析:暂无解析28、下述关于break语句的描述中,()是不正确的。A、break语句可用于循环体内,它将退出该重循环B、break语句可用于switch语句中,它将退出switch语句C、break语句可用于对体内,它将退出if语句D、break语句在一个循环体内可以出现多次标准答案:4知识点解析:暂无解析29、下列关于析构函数的描述中,错误的是()。A、类中有且仅有一个析构函数B、析构函数可以有形参C、析构函数没有函数类型D、析构函数对象消失时被自动执行标准答案:2知识点解析:暂无解析30、下列程序输出的结果是()。#include<stdio.h>sub1(chara,charb){charc:c=a:a=b:b=c;}sub2(char*a,charb){charc:c=*a;”a=b;b=c;}sub3(char*a,char*b){charc;c=*a;”a=*b;*b=c;}voidmain(){chara,b;a=’A’;b=’B’:sub1(a,b);putchar(a):putchar(b):a=’A’;b=’B’;sub2(&a,b);putchar(a);putchar(b);a=’A’;b=’B’;sub3(&a,&b);putchar(a);putchar(b);putchar(’\n’);}A、ABABABB、ABBBBAC、ABBABAD、ABABBA标准答案:2知识点解析:暂无解析31、在C++中,打开一个文件,就是将这个文件与一个()建立关联,关闭一个文件,就是取消这种关联。A、类B、流C、对象D、结构标准答案:2知识点解析:暂无解析32、有以下程序main(intargc,chara*argv[]){intn,i=0;while(argv[1][i]!=’\0’){n=fun();i++;}cout<<n*argc<<endl;}intfun(){s=0;s+=1;returns;}假设程序经编译、连接后生成可执行文件exam.exe,若键入以下命令行exam123<回车>则运行结果为A、6B、8C、3D、4标准答案:A知识点解析:本题考察静态变量的使用规则。考生需要注意的是s为静态变量,每次进入fun函数时s还保留使用原来的值,因此while循环将最终返回的是各位数之和,而argc表示参数的个数,此处为1,因此正确答案为A。33、在C++语言程序中A、函数的定义可以嵌套,但函数的调用不可以嵌套B、函数的定义和调用均可以嵌套C、函数的定义和调用均不可以嵌套D、函数的定义不可以嵌套,但函数的调用可以嵌套标准答案:D知识点解析:本题考查函数的定义,调用及其嵌套之间的关系。34、表示C++类中保护成员的关键字是()。A、publicB、privateC、virtualD、Rrotected标准答案:D知识点解析:保护成员的语法。35、在语句cin>>data;中,cin是A、C++的关键字B、类名C、对象名D、函数名标准答案:C知识点解析:本题考查的知识点是:预定义流对象。C++流有4个预定义的流对象,它们的名称及与之联系的I/0设备如下:cin标准输入cout标准输出cerr标准出错信息输出clog带缓冲的标准出错信息输出故本题应该选择C。三、公共基础填空题(本题共5题,每题1.0分,共5分。)36、在最坏情况下,堆排序需要比较的次数为______。标准答案:O(nlog2n)知识点解析:在最坏情况下,冒泡排序所需要的比较次数为n(n-1)/2;简单插入排序所需要的比较次数为n(n-1)/2;希尔排序所需要的比较次数为O(n1.5个);堆排序所需要的比较次数为O(nlog2n)。37、标准答案:成员初始化列表知识点解析:派生类是基类的具体化,而基类则是派生类的抽象。派生类也就是基类的具体实现,所以对基类数据成员的初始化是在派生类的构造函数中成员初始化列表执行的。38、在深度为5的完全二叉树中,叶子结点的个数最多为【】。标准答案:16知识点解析:在深度为5的完全二叉树中,就属深度为5的满二叉树中的叶子结点的个数最多,这些叶子结点均在最后一层(即第5层)上。又根据二叉树的性质1:在二叉树的第k层上,最多有2k-1(k≥1)个结点。因此,在第5层上最多的结点数为25-1=16。39、符合结构化原则的3种基本控制结构是:选择结构、循环结构和【】。标准答案:顺序结构知识点解析:结构化程序设计的3种基本逻辑结构为顺序结构、选择结构和循环结构。顺序结构是一种简单的程序设计结构,它是最基本、最常用的程序设计结构;选择结构又称为分支结构,包括简单分支和多分支选择结构;循环结构也叫重复结构,它根据给定的条件,判断是否需要重复执行某一相同的程序段。40、一个队列的初始状态为空。现将元素A,B,C,D,E,F,5,4,3,2,1依次入队,然后再依次退队则元素退队的顺序为______。标准答案:A,B,C,D,E,F,5,4,3,2,1。知识点解析:队列是先进先出的。四、填空题(本题共10题,每题1.0分,共10分。)41、表达式c3=c1.operator+(c2)或c3=operator+(c1,c2)还可以表示为______。标准答案:c3=c1+c2知识点解析:此题考查的是“+”运算符的重载。运算符函数的调用有两种形式,第一种是像一般函数那样用函数名调用,即c1.Opeerator(c2)或者operator+(c1,c2);另一种是通过运算符构成表达式,即c1+c2。42、为解决在多重继承环境中因公共基类带来的______问题,C++语言提供了虚基类机制。标准答案:二义性知识点解析:暂无解析43、在任何类中都有三种访问权限的数据成员,这三种权限是public、private和_______。标准答案:protected知识点解析:暂无解析44、下面程序运行输出的结果是【】。#include<iostream>usingnamespacestd;intmain(){chara[]="Chinese";a[3]=’\0’;cout<<a<<endl;return0;}标准答案:Chi知识点解析:字符串的结束标识是’\0’,输出字符串时,到第一个’\0’输出结束,而不管其后是否还有数据,因此本题输出为字符中的前3个字符。45、在下面函数的横线处填上适当的内容,使该函数能够利用递归方法求解字符串str的长度(不得使用系统提供的字符串处理函数)。intGJetLen(char*str){if(【】)return0;elsereturn1+GetLen(str+1);}标准答案:*str==NULL知识点解析:暂无解析46、在一个函数的定义或声明前加上关键字【】时,该函数就声明为内联函数。标准答案:inline知识点解析:暂无解析47、由C++编写的面向对象的程序是由一个个的对象组成,对象之间通过【】而相互作用。标准答案:消息知识点解析:暂无解析48、C++语言中表示双精度浮点数的关键字是【】。标准答案:double知识点解析:C++语言中基本的数据类型关键字,有int,float,double。49、假设fin是一个文件流对象,则关闭文件的语句是【】。标准答案:fin知识点解析:如果程序没有用close()主动关闭文件,则在文件流对象退出作用域时,被调用的析构函数会关闭对象所联系的文件。但应及时关闭,以便尽早释放占用的系统资源并将文件置于更安全的状态。50、如果要把返回值为void的函数A声明为类B的友元函数,则应在类B的定义中加入的语句是【】。标准答案:friendvoidA();知识点解析:C++中类的友元函数在声明时应在该函数前面加上关键字friend,同样如果要声明一个类为另一个类的友元类也要在前面类名前加上friend。国家二级(C++)笔试模拟试卷第2套一、公共基础选择题(本题共10题,每题1.0分,共10分。)1、按照“先进后出”原则组织数据的数据结构是()。A、队列B、栈C、双向链表D、二叉树标准答案:B知识点解析:栈是一种特殊的线性表,其插入和删除运算都只在线性表的一端进行,而另一端是封闭的。进行插入、删除的一端称为栈顶,封闭的一端称为栈底。栈顶元素是最后被插入的元素,而栈底元素是最后被删除的栈,是按“先进后出”的原则组织数据的。2、常采用的两种存储结构是()。A、顺序存储结构和链式存储结构B、散列方法和索引方式C、链表存储结构和数组D、线性存储结构和非线性存储结构标准答案:A知识点解析:线性表的存储通常要用两种存储结构:顺序存储结构和链式存储结构。3、树是结点的集合,它的根结点的数目是()。A、有且只有1个B、1或多于1C、0或1D、至少有2个标准答案:C知识点解析:树具有明显的层次关系,即树是一种层次结构。在树结构中,根结点在第一层上。当树为非空时,树中有且只有一个根结点;当树为空时,树中根结点的数目为0。4、已知一个有序线性表为(13,18,24,35,47,50,62,83,90,115,134),当用二分法查找值为90的元素时,查找成功的比较次数为()。A、1B、2C、3D、9标准答案:B知识点解析:根据二分法查找需要两次:①首先将90与表中间的元素50进行比较,由于90大于50,所以在线性表的后半部分查找;②第二次比较的元素是后半部分的中间元素,即90,这时两者相等,即查找成功。5、结构化程序设计主要强调的是()。A、程序的规模B、程序的效率C、程序设计语言的先进性D、程序的易读性标准答案:D知识点解析:程序不光是编写完就结束了,为了测试和维护程序,往往还有其他人阅读和跟踪程序,因此程序设计的风格应该强调简单和清晰,即程序的易读性,“清晰第一,效率第二”。6、结构化程序设计的核心和基础是()。A、结构化分析方法B、结构化设计方法C、结构化设计理论D、结构化编程方法标准答案:C知识点解析:结构化程序设计的核心和基础是结构化设计理论,其中包括结构化分析方法、结构化设计方法和结构化编程方法。7、在面向对象方法中,()描述的是具有相似属性与操作的一组对象。A、属性B、事件C、方法D、类标准答案:D知识点解析:类(class)描述的是具有相似属性与操作的一组对象,而一个具体对象则是其对应类的一个实例。8、需求分析阶段的任务是()。A、软件开发方法B、软件开发工具C、软件开发费用D、软件系统功能标准答案:D知识点解析:需求分析是软件定义时期的最后一个阶段,它的基本任务就是详细调查现实世界要处理的对象,充分了解原系统的工作概况,明确用户的各种需求,然后在这些基础上确定新系统的功能。9、有下列二叉树,对此二叉树前序遍历的结果为()。A、ACFXDBEYZB、ABEFXYZCDC、ABCDEFXYZD、ABDYECFXZ标准答案:D知识点解析:对二叉树的前序遍历是指先访问根结点,然后访问左子树,最后访问右子树。并且在访问左、右子树时,先访问根结点,再依次访问其左、右子树。记住3种遍历的顺序:①前序,访问根→按前序遍历左子树→按前序遍历右子树:②中序,按中序遍历左子树→访问根→按中序遍历右子树;③后序,按后序遍历左子树→按后序遍历右子树→访问根。10、设R是一个2元关系,S是一个3元关系,则下列运算中正确的是()。A、R-SB、R×SC、R∩SD、R∪S标准答案:B知识点解析:关系的交(∩)、并(∪)和差(-)运算要求两个关系是同元的,显然作为二元的R和三元S只能做笛卡尔积运算。二、选择题(本题共25题,每题1.0分,共25分。)11、下列关于C++函数的叙述中,正确的是()。A、每个函数至少要具有一个参数B、每个函数都必须返回一个值C、函数在被调用之前必须先声明D、函数不能自己调用自己标准答案:C知识点解析:暂无解析12、下列运算符不能重载为友元函数的是()。A、=()[]->B、+-++--C、><>=<=D、+=-=*=/=标准答案:A知识点解析:暂无解析13、在多继承中,公有派生和私有派生对于基类成员在派生类中的可访问性与单继承的规则()。A、完全相同B、完全不同C、部分相同,部分不同D、以上都不对标准答案:A知识点解析:暂无解析14、在下列选项中,没有构成死循环的程序是()。A、inti=100;while(1){i=i%100+1;if(i>100)break;}B、for(;;);C、intk=1000;do{++k}while(k>=1000);D、ints=36;while(s);--s;标准答案:C知识点解析:暂无解析15、下列对派生类的表述中,错误的是()。A、一个派生类可以作为另一个派生类的基类B、派生类至少有一个基类C、派生类的缺省继承方式是privateD、派生类只继承了基类的公有成员和保护成员标准答案:D知识点解析:暂无解析16、在下面叙述中,不正确的是()。A、一个类的所有对象都有各自的数据成员,它们共享函数成员B、一个类中可以有多个同名的成员函数C、一个类中可以有多个构造函数、多个析构函数D、在一个类中可以声明另一个类的对象作为它的数据成员标准答案:C知识点解析:暂无解析17、下列字符串中,正确的C++标识符是()。A、foo-1B、2bC、newD、_256标准答案:D知识点解析:暂无解析18、关于在调用模板函数时模板实参的使用,下列表述正确的是()。A、对于虚拟类型参数所对应的模板实参,如果能从模板函数的实参中获得相同的信息,则都可以省略B、对于虚拟类型参数所对应的模板实参,如果它们是参数表中的最后的若干个参数,则都可以省略C、对于虚拟类型参数所对应的模板实参,若能够省略则必须省略D、对于常规参数所对应的模板实参,任何情况下都不能省略标准答案:D知识点解析:暂无解析19、一个类的友元函数或友元类能够通过成员操作符访问该类的()。A、私有成员B、保护成员C、公有成员D、公用成员、保护成员和私有成员标准答案:D知识点解析:暂无解析20、下列关于运算符重载的描述中,正确的是()。A、运算符重载可以改变运算符的操作数的个数B、运算符重载可以改变优先级C、运算符重载可以改变结合性D、运算符重载不可以改变语法结构标准答案:D知识点解析:暂无解析21、模板是实现类属机制的一种工具,其功能非常强大,它允许用户构造类属类,即()。A、模板函数B、函数模板C、模板类D、类模板标准答案:C知识点解析:暂无解析22、下面关于this指针的说法中,不正确的是()。A、当调用类的成员函数时,指针this被自动传递给该成员函数B、当调用类的成员函数时,指针this实际上指向了该类的一个对象C、友元函数也可以被传递指针thisD、在缺省状态下,所有的成员函数都自动传递一个指针给激活它的对象标准答案:C知识点解析:暂无解析23、有如下函数模板定义:template<classT>Tfunc(Tx,Ty){returnx*x+y*y;}在下列对func的调用中,错误的是()。A、func(3,5);B、func(3.0,5.5);C、func(3,5.5)D、func<int>(3,5.5);标准答案:C知识点解析:暂无解析24、以下关键字不能用来声明类的访问权限的是()。A、publicB、staticC、protectedD、private标准答案:B知识点解析:暂无解析25、有如下定义语句:inta[]={1,2,3,4,5);,则对语句int*p=a;正确的描述是()。A、语句int*p=a;定义不正确B、语句int*p=a;初始化变量p,使其指向数组对象a的第一个元素C、语句int*p=a;是把a[0]的值赋给变量pD、语句int*p=a;是把a[1]的值赋给变量p标准答案:B知识点解析:暂无解析26、以下四种说法中,正确的一项是()。A、C++允许在字符串上进行整体操作B、语句:charvn[]="Brown";将vn定义成一个有5个元素的数组,因为"Brown"中含有5个字符C、对指针只要赋给一个地址值就可以了D、一维的指针数组实际上是一个二维数组标准答案:A知识点解析:暂无解析27、下列对于虚函数和重载函数的叙述,正确的是()。A、虚函数要求函数名、返回值类型和参数序列完全相同B、重载函数要求函数有相同的返回值类型和函数名称,并有不同的参数序列C、虚函数是根据对象的不同去调用不同类的虚函数D、虚函数和重载函数都是在运行时表现出多态功能标准答案:D知识点解析:暂无解析28、设有以下说明和定义:#include<iostream.h>Voidmain(){typedefunion{longi;intk[5];charc;}DATE;structdate{intcat;DATEcow;doubledog;}too;DATEmax;cout<<(sizeof(structdate)+sizeof(max))<<end1;}A、26B、52C、18D、8标准答案:B知识点解析:暂无解析29、有如下程序:#include<iostream>#include<iomanip>usingnamespacestd;intmain(){cout.fill(’*’);cout.width(6);cout.fill(’#’);cout<<123<<end1;return0;}执行生的输出结果是()。A、###123B、123###C、***123D、123***标准答案:A知识点解析:暂无解析30、有如下程序#include<iostream>#include<iomanip>usingnamespacestd;intmain(){cout<<setprecision(3)<<fixed<<setfill(’*’)<<setw(8);cout<<12.345<<__________<<34.567;return0;}若程序的输出是:**12.345**34.567则程序中下划线处遗漏的操作符是()。A、setprecision(3)B、fixedC、setfill(’*’)D、setw(8)标准答案:D知识点解析:暂无解析31、下面的描述中,正确的是()。A、virtual可以用来声明虚函数B、含有纯虚函数的类是不可以用来创建对象的,因为它是虚基类C、即使基类的构造函数没有参数,派生类也必须建立构造函数D、静态数据成员可以通过成员初始化列表来初始化标准答案:A知识点解析:暂无解析32、如果类A被说明成类B的友元,则()。A、类A的成员即类B的成员B、类B的成员即类A的成员C、类A的成员函数不得访问类B的成员D、类A的成员函数可以访问类B的成员标准答案:D知识点解析:暂无解析33、带有基类的多层派生类构造函数的成员初始化列表中都要排出虚基类的构造函数,这样将对虚基类的子对象初始()。A、与虚基类下面的派生类个数有关B、多次C、二次D、一次标准答案:D知识点解析:暂无解析34、下面程序的运行结果为()。#include<iostream.h>voidswap(int&a,intb){inttemp;temp=a++;a=b;b=temp;}voidmain(){inta=2,b=3;swap(a,b);cout<<a<<","<<b<<end1;}A、2,3B、3,2C、2,2D、3,3标准答案:D知识点解析:暂无解析35、有如下程序:#include<iostream>usingnamespacestd;classAA{intn;public:AA(intk):n(k){}intget(){returnn;}intget()const{returnn+1;}}intmain(){AAa(5);constAAb(6);cout<<a.get()<<b.get();return0;}执行后的输出结果是()。A、55B、57C、75D、77标准答案:B知识点解析:暂无解析三、公共基础填空题(本题共5题,每题1.0分,共5分。)36、设一棵二叉树中有3个叶子结点,有8个度为1的结点,则该二叉树牛总的结点数为【】。标准答案:13知识点解析:根据二叉树的性质3:在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。本题中的二叉树有3个叶子结点,所以,该二叉树有3-1=2个度为2的结点;又知本题中的二叉树有8个度为1的结点。所以,本题中的二叉树总结点数为叶子结点数+度为1的结点数+度为2的结点数=3+8+2=13.所以,本题的正确答案为13。37、类是一个支持集成的抽象数据类型,而对象是类的【】。标准答案:实例知识点解析:在面向对象的程序设计中,类描述的是具有相似性质的一组对象,而一个具体对象称为类的实例。38、结构化设计主要分为系统设计和模块设计,【】的任务是决定系统的模块结构。标准答案:系统设计知识点解析:结构化设计主要分为系统设计和模块设计。系统设计的任务是决定系统的模块结构;模块设计的任务是具体考虑每一个模块内部采用什么算法,模块的输入、输出以及该模块的功能。39、一般来说,数据库的设计过程要经历3个大的阶段,即可行性分析与研究阶段、系统设计阶段、设计实施与系统运行阶段。概念设计、逻辑结构设计、物理结构设计属于数据库设计的【】阶段。标准答案:系统设计知识点解析:数据库的设计过程要经历3个阶段:可行性分析与研究阶段、系统设计阶段、设计实施与系统运行阶段.系统设计阶段是系统的具体设计过程,主要包括概念设计、逻辑结构设计、物理结构设计3个步骤。这3个不同层次上的设计过程,是把实体以及相互之间的联系转换为“数据”并落实于计算机中。数据库设计中的主要技术工作在这个阶段中完成。40、数据流图有两种典型的结构形式,它们分别是变换型和【】。标准答案:事务型知识点解析:数据流图中有众多的加工,但必有一个加工是起核心作用的,这样的加工称为中心加工。由数据流图导出结构图的关键是找出中心加工。一般来说,中心加工有两种存在形态,即数据流图有两种典型的结构形式:一种是变换型,另一种是事务型。四、填空题(本题共4题,每题1.0分,共4分。)41、若有如下程序段:#include<iostream>usingnamespacestd;intmain(){char*p="abcdefgh",*r;long*q;q=(long*)p;q++;r=(char*)q;cout<<r<<end1;return0;}该程序的输出结果是______。标准答案:efgh知识点解析:本题定义了一个字符型指针变量p,并通过赋初值让它指向了一个字符串,还定义了另一个字符型指针变量r和一个长整型指针变量q。首先通过语句“a=(long*)p;”,把p的地址值强制转换为长整型地址值并赋值给小然后执行“q++”,地址值增加了4,执行语句“r=(char*)q;”,把长整型指针变量q的值再强制转换成字符型地址值并赋给r,r的值应为字符串中字符“e”的地址。最后输出r指向的字符串。42、请将下列类定义补充完整classBase{public:voidfun(){cout<<"Base::fun"<<end1;}};classDerived:publicBase{public:voidfun(){______//显式调用基类的fun函数cout<<"Derived::fun"<<end1;}};标准答案:Base::fun();知识点解析:本题考核虚基类。作用域分辨符号是“::”,它可以用来限定要访问的成员所在的类的名称。一般来说,在派生类中对基类成员的访问应该是惟一的。但是,多继承情况下可能造成对基类中某个成员的访问出现不惟一的情况,通过使用对象作用域分辨符可以解决这种对基类成员访问的;义性问题。43、与成员访问表达式p->name等价的表达式是______。标准答案:(*p).name知识点解析:本题考核对象指针的定义与使用。一个基类型为类类型的指针称为对象指针。对于指向对象的指针,下面两种表示方式是等价的:对象指针名->成员名;(*对象指针名).成员名;44、有如下程序:#include<iostream>usingnamespacestd;classAA{public:virtualvoidf(){cout<<"AA";}};classBB:publicAA{public:BB(){cout<<"BB":}};classCC:publicBB{public:virtualvoidf(){BB::f():cout<<"CC";}};intmain(){AAaa,*p;BBbb;CCcc;p=&cc;p->f();return0;}运行后的输出结果______。标准答案:BBBBAACC知识点解析:本题考核虚函数。本题中,函数f()在基类AA和派生类CC中都声明为虚函数,所以采用动态联编。主函数首先定义类AA的对象aa和指针对象p,然后定义了类BB的对象bb,此时调用了类BB的构造函数输出BB。再定义类CC的对象cc,由于类CC是类BB的派生类,所以此时又调用类BB的构造函数输出BB。最后执行语句“p=&cc;p->f();”,输出AA和CC。五、填空题(含2小题)(本题共1题,每题1.0分,共1分。)45、下面程序的输出结果为:Base::fun,请将程序补充完整。#include<iostream.h>classBase{public:【】fun(){cout<<"Base::fun"<<end1:}classDerived:publicBase{public:【】fun(){cout<<"Derived::fun"<<end1;}};intmain(){Basea,*pb;Derivedb;pb=&b;pb->fun();return0;}标准答案:virtualvoidvoid知识点解析:本题考核虚函数的使用。在C++中,一个基类指针(或引用)可以用于指向它的派生类对象,而且通过这样的指针(或引用)调用虚函数时,被调用的是该指针(或引用)实际指向的对象类的那个重定义版本,这样的调用称为多态调用。基类Base和派生类Derived中都定义了成员函数fun,但是有不同的实现。程序最后输出的结果为:Base::fun,表明通过对象指针pb调用的函数版本为派生类中定义的,只有把基类的fun函数定义为虚函数,才能满足要求。同时通过函数fun的定义可知函数的返回类型为void。国家二级(C++)笔试模拟试卷第3套一、公共基础选择题(本题共35题,每题1.0分,共35分。)1、算法分析的目的是()A、找出数据结构的合理性B、找出算法中输入和输出之间的关系C、分析算法的易懂性和可靠性D、分析算法的效率以求改进标准答案:D知识点解析:暂无解析2、下列叙述中正确的是()。A、线性链表的各元素在存储空间中的位置必须是连续的B、线性链表的头元素一定存储在其他元素的前面C、线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面D、线性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的标准答案:D知识点解析:暂无解析3、线性表常采用的两种存储结构是()A、顺序存储结构和链式存储结构B、散列方法和索引方式C、链表存储结构和数组D、线性存储结构和非线性存储结构标准答案:A知识点解析:暂无解析4、设栈S和队列Q的初始状态为空,元素a、b、c、d、e和f依次通过栈S,一个元素出栈后即进入队列Q,若6个元素出队的顺序是b、d、c、f、e、a,则栈S的容量至少应该是()。A、6B、4C、3D、2标准答案:C知识点解析:栈的操作规则是后进先出,队列的运算规则是先进先出。对于本题,出队顺序也就是入队顺序,同样也是出栈顺序,为了得到b、d、c、f、e、a出栈顺序,则入栈顺序应该是a进、b进、b出、c进、d进、d出、c出、e进、f进、f出、e出、a出。可以看作最多只有3个元素在栈内,所以栈的容量最少应为3。5、数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是()A、DB包括:DBS和DBMSB、DBMS包括DB和DBSC、DBS包括DB和DBMSD、没有任何关系标准答案:C知识点解析:暂无解析6、在包含1000个元素的线性表中实现如下各运算,所需的执行时间最长的是()A、线性表按顺序方式存储,在线性表的第100个结点后面插入一个新结点B、线性表按链接方式存储,在线性表的第100个结点后面插入一个新结点C、线性表按顺序方式存储,删除线性表的第900个结点D、线性表按链接方式存储,删除指针P所指向的结点标准答案:A知识点解析:由于线性表采用的是顺序存储方式,用存储单元的邻接性体现线性表元素间的一维顺序关系,因此对线性表进行插入和删除运算时,可能需要移动大量的结点,以保持这种物理和逻辑的一一致性。对于选项A),后面的900个结点都要住后移动,对于选项C),后面的100个结点都要往前移动。而对于线性表按链接方式存储,当进行插入与删除操作时,只改变相应的指针即可,所以比较4个选项的操作可得知选项A)所需要的执行时间最长。7、一间教室可坐多名学生,则实体教室和学生之间的联系是()。A、一对一B、一对多C、多对一D、多对多标准答案:B知识点解析:暂无解析8、对于长度为n的线性表,在最坏情况下,下列各种排序法所对应的比较次数中正确韵是()。A、冒泡排序为n/2B、冒泡排序为nC、快速排序为nD、快速排序为n(n-1)/2标准答案:D知识点解析:暂无解析9、对关系S和R进行集合运算,结果中既包含s中的所有元组也包含R中的所有元组,这样的集合运算称为()A、并运算B、交运算C、差运算D、积运算标准答案:A知识点解析:暂无解析10、建立E-R模型的工作,属于软件生命周期中的()A、需求分析阶段B、设计阶段C、编码阶段D、测试阶段标准答案:B知识点解析:暂无解析11、在下列横线处应添加的语句是()。classBase{public:voidfun(){cout<<"Base::fun"<<end1;}};class:Derived:publicBase{public:voidfun(){______//显示调用基类的fun函数cout<<"Derived::fun"<<end1;}};A、Derived::funB、Base::fun();C、Pubic::funD、fun();标准答案:B知识点解析:暂无解析12、()提供了类对外部的接口,私有成员是类的内部实现,而保护成员不允许外界访问,但允许派生类的成员访问,这样既有一定的隐藏能力,又提供了开放的接口。A、公有成员B、私有成员C、私有成员函数D、保护成员标准答案:A知识点解析:暂无解析13、若类A和类B的定义如下:#include<malloc.h>classA{inti,j;public:intgeti(){returni;}};classB:publicA{intk;public:voidmake(){k=i,j;});则上述定义中非法的表达式是()。A、k=i*j;B、intk;C、returni;D、voidmake();标准答案:A知识点解析:因为派生类不能访问基类的私有成员i和j(默认情况下,成员的属性为私有),所以表达式k=i*j是非法的。其余的访问权限都是许可的。14、在下面的类定义中,错误的语句是()。classSample{public:Sample(intval)://①~Sample();//②private:inta=2.5;//③Sample()://④};A、①②③④B、②C、③D、①②⑨标准答案:C知识点解析:暂无解析15、假定MyClass为一个类,则该类的拷贝初始化构造函数的声明语句为()A、MyClass&(MyClassx);B、MyClass(MyClassx)C、MyClass(MyClass&x);D、MyClass(MyClass*x)标准答案:C知识点解析:拷贝构造函数是一个特殊的构造函数,它用一个已知的对象初始化一个正在创建的同类对象,它的一般格式是:类名::类名(const类名&引用对象名)。16、下面对静态数据成员的描述中,正确的是()A、静态数据成员是类的所有对象共享的数据B、类的每个对象都有自己的静态数据成员C、类的不同对象有不同的静态数据成员值D、静态数据成员不能通过类的对象调用标准答案:A知识点解析:暂无解析17、关于运算符重载,下列表述中正确的是()。A、C++已有的任何运算符都可以重载B、运算符函数的返回类型不能声明为基本数据类型C、在类型转换符函数的定义中不需要声明返回类型D、可以通过运算符重载来创建C++中原来没有的运算符标准答案:C知识点解析:此题考查的是运算符的有关概念。运算符重载是针对C++原有运算符进行的,不能通过重载创造新的运算符;除了.、.*、->*、::、?:这五个运算符之外,其他运算符都可以重载;在类型转换符函数的定义中不需要声明返回类型;运算符函数的返回值类型可以声明为基本数据类型:18、不能作为函数重载的判断依据的是()。A、constB、返回类型C、参数个数D、参数类型标准答案:B知识点解析:暂无解析19、有如下类的定义。横线处的语句是()。classMyClass{public:MyClass(inta=0,intb=0){X=a;Y=b;}voidChange()const{X-=10;Y+=10;}private:______intX,Y;A、staticB、constC、mutableD、不需要填入内容标准答案:C知识点解析:C++中const关键字用来表示一个常量,同时const也用来修饰函数。这两个概念需要明确:const所修饰的函数只能是类的成员函数,因为const所修饰的函数中,要由编译器负责保护类的成员变量不被修改。而相对的,mutable则是用来修饰类的成员变量,让该变量在const所修饰的成员函数中可以被修改。而且const修饰的函数只能是类的成员函数,mutable修饰的变量只能是类的成员变量。20、有如下函数模板定义:templateT1sum(T1a1){return(a1+a2+a3);}则以下调用中正确的是()。A、sum<int,4,3>(5);B、sum<4,3>(5);C、sum<int,int,int>(5);D、sum(5);标准答案:A知识点解析:本题考查的函数模板的使用,有时不能根据用户传进来的参数决定所有模板函数的值类型,如函数的返回值,还有用户希望自己指定参数类型,这时就需要显式地指出参数模板的类型,显示指定模板的类型格式为:返回值类型函数模板<参数类型表>(参数表)。21、下列关于this指针的叙述中,正确的是()A、任何与类相关的函数都有this指针B、类的成员函数都有this指针C、类的友元函数都有this指针D、类的非静态成员函数才有this指针标准答案:D知识点解析:this指针是成员函数所属对象的指针,它指向类对象的地址;它隐含于每个类的非静态成员函数中;this指针只能在类的成员函数中使用,它指向该成员函数被调用的对象;静态成员函数没有this指针,因为类中只有一个静态成员函数实例,使用this指针无意义。22、以下程序输出结果是():#include<iostream>usingnamespacestd;voidadd(intX,inty,int*z){*z=y+x;}intmain(){inta,b,c;add(8,4,&a);add(6,a,&b);add(a,b,&c);cout<<a<<","<<b<<","<<c<<end1;return0;A、12,10,14B、12,18,30C、12,6,18D、12,14,30标准答案:B知识点解析:暂无解析23、有如下程序:#include<iostream.h>usingnamespacestd;classTestClass{public:TestClass(){cout<<"defaultconstructor\n";}TestClass(constTestClass&x){cont<<"copyconstructor\n";}TestClassuserCode(TestClassb){TestClassc(b);returnc;}intmain(){TestClassa,d;cout<<"callinguserCode()\n";d=userCode(a);return0;}执行上面程序的过程中,构造函数TestClass()和TestClass(constTestclass&x)被调用的次数分别是()A、2次3次B、3次2次C、都是2次D、都是3次标准答案:A知识点解析:由主函数入手,定义了类TestClass的对象a和d,当类对象进入其作用域时调用构造函数,构造函数在建立对象时由系统自动执行,而且只执行一次。因为定义了两个对象,所以构造函数TestClass()被调用的次数是2。“d=userCode(a);”语句d中调用成员为a的user(ode()成员函数,所以是3次。24、有以下程序:#include<iostream>usingnamespacestd;{public:TestClass(intr1,intr2){R1=r1;R2=r2;}voidprint();voidprint()const;private;intR1,R2;};voidTestClass::print(){cout<<R1<<","<<R2<<end1;}voidTestclass::print()constcout<<R1<<<<","<<R2<<end1;}intmain(){TestClassa(5,4);constTestClassb(20,52);b.print();return0;}执行后的输出结果是()。A、5,4B、20,52C、0,0D、4,5标准答案:B知识点解析:暂无解析25、静态数据成员是为()的数据。A、私有B、保护C、所有对象共享D、类成员标准答案:C知识点解析:暂无解析26、下列说法中错误的是()A、公有继承时基类中的public成员在派生类中仍是public的B、公有继承时基类中的private成员在派生类中仍public是的C、私有继承时基类中的public成员在派生类中仍private是的D、保护继承时基类中的public成员在派生类中仍protected是的标准答案:B知识点解析:暂无解析27、有如下程序:#include<iostream>usingnamespacestd;{TestClass(){cout<<"BB";fun()}voidfun(){cout<<"Bf";}};classTestClass1:publicTestClass{public:TestClass1(){cout<<"DD";}voidfun(){cout<<"Df";}};intmain(){TestClass1d;return0;}执行上面的程序将输出()。A、BBBfDDB、BBDfDDDfC、DDD、DDBBBf标准答案:A知识点解析:暂无解析28、下列程序中横线处正确的语句是()。#include<iostream>usingnamespacestd;classTestClass{public:voidfun(){cout<<"TestClass::fun"<<end1;}};classTestClass1:publicTestClass{voidfun(){______//显示调用基类的函数fun()cout<<"TestClass1::fun"<<end1;}};A、fun();B、TestClass.fun()C、TestClass::fun();D、TestClass->fun();标准答案:C知识点解析:暂无解析29、下面关于虚函数的描述中正确的是()A、虚函数是一个静态成员函数B、虚函数是一个非成员函数C、虚函数即在函数说明时定义,也可以在函数实现时定义D、派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型标准答案:D知识点解析:暂无解析30、有如下程序:#include<iostream>usingnamespacestd;classTestClass1{public:virtualvoidfun(){cout<<"1";}};classTestClass2:publicTestClass1{public:TestClass2(){cout<<"2";}};classTestClass3:publicTestClass2{public:virtualvoidfun(){TestClass2::fun();cout<<"3";}};intmain(){TestClass1aa,*p;TestClass2bb;TestClass3cc;p=&cc;P->fun();return0;}执行上面程序的输出是()。A、1122B、2112C、2213D、2223标准答案:C知识点解析:主函数中定义TestClass1的对象aa,*p对象指针,TestClass2的对象bb以及TestClass3的对象cc。p指向cc,TestClass3为TestClass2的派生类,构造函数输出2。TestClass3中fun函数中为TestClass2中的。fun,调用TestClass2的构造函数,输出2。“p->fun();”,TestClass2继承于TestClass1中的fun,所以输出1。然后输出TestClass3中的“cout<<”3””,即输出3。31、有如下程序:#include<iostream>usingnamespacestd;longfun(intn){if(n>2)return(fun(n-1)+fun(n-2));return2;}intmain(){cout<<fun(3)<<end1;return0;}则该程序的输出结果应该是()。A、2B、3C、4D、5标准答案:C知识点解析:暂无解析32、下列程序的输出结果是()。#include<iostream>usingnamespacestd;templateTfun(Ta,Tb){return(a>=b)?a:b;}voidmain(){cout<<fun(3,6)<<’,’<<fun(3.14F,6.28F)<<end1;}A、6,3.14B、3,6.28C、3,3.14D、6,6.28标准答案:D知识点解析:暂无解析33、针对数组定义intdata[10];,下列表述中错误的是()A、用*data可访问到数组的首元素B、用data[9]可访问到数组的末元素C、用data[10]访问数组元素会超出数组边界D、data共有10个元素,其首元素是data[1]标准答案:D知识点解析:暂无解析34、有如下类声明:classFoo{intbar;};则Foo类的成员bar是()A、公有数据成员B、公有成员函数C、私有数据成员D、私有成员函数标准答案:C知识点解析:暂无解析35、为了取代C中带参数的宏,在C++中使用()。A、重载函数B、内联函数C、递归函数D、友元函数标准答案:B知识点解析:暂无解析二、公共基础填空题(本题共15题,每题1.0分,共15分。)36、软件生命周期可分为多个阶段,一般分为定义阶段、开发阶段和维护阶段。编码和测试属于______阶段。标准答案:开发知识点解析:软件生命周期可分为多个阶段,一般分为定义阶段、开发阶段和维护阶段。定义阶段包括可行性研究初步项目计划和需求分析:开发阶段包括概要设计、详细设计、实现和测试;维护阶段包括使用、维护和退役。37、不改变关系表中的属性个数但能减少元组个数的是______。标准答案:选抒知识点解析:暂无解析38、用树形结构表示实体之间联系的模型是______。标准答案:层次模型知识点解析:暂无解析39、在两种基本测试方法中,______测试的原则之一是保证所测模块中每一个独立路径至少执行一次。标准答案:白盒知识点解析:按功能划分测试可分为白盒测试和黑盒测试。白盒测试的原则是保证所测试模块中每一独立路径至少执行一次;保证所测试模块所有判断的每一分支至少执行一次;保证所测试模块每一循环都在边界条件和一般条件下至少各执行一次;验证所有内部数据结构的有效性。40、与二维表中的“行”的概念最接近的概念是______。标准答案:元组知识点解析:在关系模型中,数据结构用单一的二维表结构来表示实体及实体间的联系。一个关系对应一个二维表。二维表中的列称为属性,属性值的取值范围称为值域。二维表中的行称为一个元组。41、执行以下程序后,输出“*”号的个数是______。#include<iostream.h>main(){inti,j;for(i=1;i<5;i++)for(j=2;j<=i;j++)cout<<’*’;}标准答案:6知识点解析:暂无解析42、有如下类声明:classTestClass1{intk;public:voidset(intn){k=n;}intget()const{returnk;}};classTestClass2:protectedTestClass1{protected:intj;public:voidset(intm,intn){TestClass1::set(m);j=n;}intget()const{returnTestClass1::get()+j;)};则类TestClass2中保护的数据成员和成员函数的个数是______。标准答案:3知识点解析:暂无解析43、一个在基类中说明的虚函数,它在该基类中没有定义,但要求任何派生类都必须定义自己的版本,此虚函数又称______。标准答案:纯虚函数知识点解析:暂无解析44、表达式x.operator+(y.operator++(0))还可以写成______。标准答案:x+y++或x+(y++)知识点解析:暂无解析45、基类为虚函数,撤销对象调用析构函数时,采用______联编。标准答案:动态知识点解析:暂无解析46、以下函数实现的功能是______。voidfun(char*s){char*p,*q,temp;p=s;q=s+strlen(s)-1;while(p<q){temp=*p;*p=*q;*p=temp;p++;q--;}}标准答案:将字符串首尾颠倒知识点解析:暂无解析47、指针数组是由______构成的数组。标准答案:指针或指针变量知识点解析:暂无解析48、已知一个函数的原型是:intfn(doublea);若要以5.27为实参调用该函数,应使用表达式______。标准答案:fn(5.27)知识点解析:暂无解析49、非成员函数应声明为类的______函数才能访问这个类的private成员。标准答案:友元知识点解析:暂无解析50、在类中,______成员为类的所有对象所共享。标准答案:静态知识点解析:暂无解析国家二级(C++)笔试模拟试卷第4套一、公共基础选择题(本题共10题,每题1.0分,共10分。)1、栈和队列的共同特点是A、都是先进先出B、都是先进后出C、只允许在端点处插入和删除元素D、没有共同点标准答案:4知识点解析:栈和队列都是一种特殊的操作受限的线性表,只允许在端点处进行插入和删除。二者的区别是:栈只允许在表的一端进行插入或删除操作,是一种“后进先出”的线性表;而队列只允许在表的一端进行插入操作,在另一端进行删除操作,是一种“先进先出”的线性表。2、已知二叉树后序遍历序列是d

温馨提示

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

最新文档

评论

0/150

提交评论