- 相干保举
计较机二级C++测验专家展望试卷及谜底
为了使泛博考生在备战计较机品级测验时,更快的把握响应常识点,上面是小编搜刮清算的计较机二级C++测验专家展望试卷及谜底,供参考操练,预祝考生们考出自己抱负的成就!
计较机二级C++测验专家展望试卷及谜底
挑选题(每小题1分,共40小题,共40分)
1、数据的存储布局是指( )。
A.数据所占的存储空间
B.数据的逻辑布局在计较机中的寄存情势
C.数据在计较机中的挨次存储体例
D.存储在计较机外存中的数据
2.将E-R图转换到干系情势时,实体与实体间的接洽能够表现成( )。
A.属性
B.干系
C.键
D.域
3.对长度为n的线性表停止挨次查找,在最坏环境下须要比拟的次数为( )。
A.125
B.n/Z
C.n
D.n+1
4.树是结点的调集,它的根结点的数量是( )。
A.有且只要1个
B.1或多于1
C.0或1
D.最少有2个
5.设R是一个二元干系,S是一个三元干系,则以下运算中准确的是( )。
A.R-S
B.R×S
C.R∩S
D.R∪S
6.对布局化法式设想准绳和体例的描写毛病的是( )。
A.选用的布局只许可有一个进口和一个出口
B.庞杂布局应当用嵌套的根基节制布局停止组合嵌套来完成
C.不许可利用GOTO语句
D.说话中所不的节制布局,应当接纳前后分歧的体例来摹拟
7.对干系S和R停止调集运算,成果中既包罗S中的一切元组也包罗R中的一切元组,如许的调集运算称为( )。
A.并运算
B.走运算
C.差运算
D.积运算
8.以下论述中准确的是( )。
A.在面向工具的法式设想中,各个工具之间具备紧密亲密的干系
B.在面向工具的法式设想中,各个工具都是公用的
C.在面向工具的法式设想中,各个工具之间绝对自力,彼此依靠性小
D.上述三种说法都毛病
9.布局化法式设想的三种根基布局是( )。
A.进程、子法式和分法式
B.挨次、挑选和反复
C.递归、仓库和行列
D.挪用、前往和转移
10.在数据库设想中,将E-R图转换为干系情势的进程属于( )。
A.须要阐发阶段
B.逻辑设想阶段
C.观点设想阶段
D.物理设想阶段
11.在C++说话中函数前往值的范例是由( )决议的。
A.挪用该函数时体系姑且
B.return语句中的抒发式范例
C.界说该函数时所指定的函数范例
D.挪用该函数时的主调函数范例
12.以下描写准确的是( )。
A.表现m>n为true或mn&&m<n
B.switch语句布局中必须有default语句
C.if语句布局中必须有else语句
D.若是最少有一个操纵数为true,则包罗‖运算符的抒发式为true
13.利用ifstream流类界说流工具并翻开磁盘文件时,文件的隐含翻开体例为( )。
A.ios::in
B.ios::out
C.ios::inlios::out
D.不默许
14.以下各类函数中,不是类的成员函数的是( )。
A.机关函数
B.笼统类
C.派生类
D.以上都毛病
15.上面对数组的初始化准确的是( )。
A.charstr[]={’a’,’b’,’e’}
B.charstr[2]={’a’,’b’,’e’)
C.charstr[2][3]={{’a’,’b’},{’C’,’d’},{’e’,’f’}}
D.charstr()={’a’,’b’,’C’}
16.类模板templateclassX{…},此中友元函数f对特定范例T(如int),使函数f(x)成为x模板类的友元,则其申明为( )。
A.friendvoidf();
B.friendvoidf(x);
C.friendvoidA::f();
D.friendvoidC::f(x);
17.类MyClass的界说以下:
classMyClass
{
public:
MyClass(){value=0;}
SetVariable(inti){valtic=i;}
private:
intvalue;
};
MyClass*P,my;p=&my;
则对以下语句序列准确的描写是( )。
A.语句p=&my;是把工具my赋值给指针变量P
B.语句MyClass*P,my;会挪用两次类MyClass的机关函数
C.对语句*P.SetVariable(5)的挪用是准确的
D.语句P->SetVariable(5)与语句my.SetVariable(5)等价
18.上面对break语句的描写中,不准确的是( )。
A.break能够用于轮回体内
B.break语句能够在for轮回语句中呈现屡次
C.break语句能够在switch语句中呈现屡次
D.break语句可用于if前提判定语句内
19.若是抒发式-x/y中的“--”和“/”是作为友元函数重载的运算符,接纳运算符函数挪用格局,该抒发式还可表现为( )。
A.operator/(x.operator--(),y);
B.operator/(operator--(x),y);
C.X.operator--().operator/(y);
D.y.operator/(operator--(x));
20.已知类A有公用数据成员a,偏重载了=运算符,且有Aobj2;constA*ptr=newA;,则以下语句毛病的是( )。
A.ptr->a=100;
B.ptr=&obj2;
C.ptr++;
D.obj2=*ptr;
21.能够用P.a的情势拜候派生类工具P的基类成员a,此中a是( )。
A.私有担当的私有成员
B.私有担当的私有成员
C.私有担当的掩护成员
D.私有担当的私有成员
22.上面法式的运转成果为( )。
#include
classA
{
intnum;
public:
A(inti){num=i;)
A(A&a){num=a.num++;}
voidprint(){cout<<num;}
};
voidmain()
{
Aa(1),b(a);
a.print();
b.print();
}
A.11B.12
C.21D.22
23.设有界说charstr[80];以下不能将输入数据first\nsecond\n读取到数组str中的语句是( )。
A.cin.get(str,strlen(str));
B.cin.getline(str,strlen(str));
C.cin>>str;
D.cin.read(str,strlen(str));
24.以下法式的输入成果为( )。
#include
classTestClass
{
public:
TestClass(){val++;}
static,intval;
};
intTestClass::val=0;
voidmain()
{
TestClasscsl;
cout<<csl.val<<"";
TestClasscs2;
TestClasscs3,cs4;
cout<<cs2.val<<endl;
}
A.O3
B.13
C.14
D.24
25.有以下类界说:
classMyClass
{
private:
intid;
chargender;
char*phone;
public:
MyClass():id(0),gender(’#’),phone(NULl){}
MyClass(intn0,charge=’#’,char*ph=NULL)
{id=no;gender=ge;phone=ph;}
};
以下类工具界说语句中毛病的是( )。
A.MyClassmyObj;
B.MyClassmyObj(11,"13301111155");
C.MyClassmyObj(12,’m’);
D.MyClassmyObj(12);
26.以下是对派生类申明的起头局部,此中准确的是( )。
A.classvirtualB:publicA
B.virtualclassB:publicA
C.classB:publicAvirtual
D.classB:virtualpublicA
27.若是类A被申明成类B的友元,则( )。
A.类A的成员即类B的成员
B.类B的成员即类A的成员
C.类A的成员函数不得拜候类B的成员
D.类B不用然是类A的友元
28.以下对虚基类的描写,毛病的是( )。
A.设置虚基类的目标是为了消弭二义性
B.虚基类的机关函数在非虚基类以后挪用
C.若统一层中包罗多个虚基类,这些虚基类的机关函数按它们申明的挨次挪用
D.若虚基类由非虚基类派生而来,则依然先挪用基类机关函数,再挪用派生类的机关函数
29.以下对多态性的描写,毛病的是( )。
A.C++说话中的多态性分为编译时的多态性和运转时的多态性
B.编译时的多态性可经由进程函数重载完成
C.运转时的多态性可经由进程模板和虚函数完成
D.完成运转时多态性的机制称为静态绑定
30.如有以下法式:
#include
usingnamespacestd;
classTestClassl
{
private:
inta;
public:
TestClassl(inti)
{
a=i:
}
voiddisp( )
{
cout<<a<<",";
}
};
classTestClass2
{
private:
intb:
public:
TestClass2(intj)
{
b=j;
}
voiddisp()
{
cout<<b<<",";
}
};
classTestClass3:publicTestClass2,publicTestClassl
{
private:
intc;
public:
TestClass3(intk):TestClass1(k-2),TestClass2(k+2)
{
c=k:
}
voiddisp()
{
TestClasssl::disp();
TestClasss2::disp();
cout<<c<<endl;
}
};
intmain()
{
TestClass30bj(10);
obj.disp();
return0;
}
法式履行后的输入成果是( )。
A.10,10,10
B.10,12,14
C.8,10,12
D.8,12,10
31.在以下法式的横线处填上恰当的内容,使法式履行后的输入成果为ABCD( )。
#include
usingnamespacestd;
classA
{
public:A(){cout<<’A’;}
};
classB:
{
public:B(){cout<<’B’;}
};
classC:virtualpublicA
{
public:C(){cout<<’C’;}
};
classD:publicB,publicD
{
public:D(){cout<<’D’;}
};
voidmain(){D04;}
A.publicA
B.privateA
C.protectedA
D.virtualpublicA
32.有以下法式:
#include
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.55
B.57
C.75
D.77
33.有以下法式:
#include
usingnamespacestd;
classDemo
{
public:
Demo(){cout<<"defaultconstructor\n";}
Demo(constDemo&x){cont<<"copyconstruc-
tor\n";}
};
DemouserCode(Demob){Democ(b);returnC;}
intmain()
{
Demoa;d;
cout<<"callinguserCode()\n";
d=userCode(a):
return0;
}
履行上面法式的进程中,机关函数Demo( )和Demo(constDem0&x)被挪用的次数别离是( )。
A.1和1
B.1和2
C.2和3
D.2和4
34.有以下法式:
#include
usingnamespacestd;
classDA{
intk;
public:
DA(intx=1):k(x){}
~DA(){cout<<k;}
};
intmain(){
DAd[]={DA(3),DA(3),DA(3));
DA+p=newDA[2];
[]p;
return();
}
这个法式的输入成果是( )。
A.111
B.333
C.11333
D.11133
35.有以下法式:
#include
usingnamespacestd;
classMyClass{
public:
MyClass(intx):val(x){}
voidPrint()const{cout<<"const:val="<<<val<<’\t’;}
voidPrint(){cout<<"val="<<val<<’t’;}
private:
intval;
};
intmain(){
constMyClassobj1(10);
MyClassobj2(20);
obj1.Print();
obj2.Print();
return0;
}
法式的输入成果是( )。
A.va1=10const:va1=20
B.const:va1=10const:va1=20
C.const:va1=10val=20
D.val=10va1=20
36.对函数中的<前往范例>。以下表述中毛病的是( )。
A.<前往范例>中有能够包罗关头字int
B.<前往范例>中有能够包罗自界说标识符
C.<前往范例>中衣能够包罗字符*
D.<前往范例>中能够包罗[]
37.Sample是一个类,履行上面语句后,挪用Sample类的机关函数的次数是( )。
Samplea[2],*p=newSample;
A.0
B.1
C.2
D.3
38.有以下两个类界说:
classXX{
private:
doublex1;
protected:
doublex2;
public:
doublex3;
};
claseYY:protectedXX{
private:
doubley1;
protected;
doubley2;
public:
doubley3;
};
在类YY中掩护成员变量的个数是( )。
A.1
B.2
C.3
D.4
39.以下对运算符重载的描写中,毛病的是( )。
A.能够经由进程运算符重载在C++中成立新的运算符
B.赋值运算符只能重载为成员函数
C.运算符函数重载为类的成员函数时,第一操纵参数便是该类工具
D.重载范例转换运算符时不须要申明前往范例
40.以下对类模板的描写中,毛病的是( )。
A.类模板的成员函数都是模板函数
B.能够为类模板参数设置默许值
C.类模板描写了一组类
D.类模板中只许可有一个范例参数
谜底剖析:
1.B。【剖析】数据的存储布局,又称为数据的物理布局,是数据的逻辑布局在计较机中的寄存情势。数据的存储布局有挨次布局、链式布局、散列布局和索引布局等。
2.B。【剖析】将E-R图转换成指定RDBMS中的干系情势是数据库逻辑设想的首要任务。从E—R图到干系情势的转换是比拟间接的,实体和接洽都能够表现成干系。
3.C。【剖析】对线性表停止挨次查找时,从表中的第一个元素起头,将给定的值与表中逐一元素的关头字停止比拟,直到二者符合,查找到所要找的元素为止。在最坏环境下,要查找的元素是表的最初一个元素或查找失利,这两种环境都须要将这个元素与表中的一切元素停止比拟,是以比拟次数为n。
4.C。【剖析】树具备较着的条理干系,即树是一种条理布局。在树布局中,根结点在第一层上。当树为非空时,树中有且只要一个根结点,当树为空时,树中根结点的数量为0。
5.B。【剖析】干系的交(∩)、并(∪)和差(-)运算请求两个干系是同元的,明显作为二元的R和三元的S只能做笛卡儿积运算。
6.C。【剖析】限定利用GOTO语句是布局化法式设想的准绳和体例之一,但不是绝对不许可利用GOTO语句。其余三项为布局化法式设想的准绳。
7.A。【剖析】干系的并运算是指由布局不异的两个干系归并,构成一个新的干系,此中包罗两个干系中的一切元组。
8.C。【剖析】面向工具的法式设想是用工具摹拟标题问题范畴中的实体,各工具之间绝对自力,彼此依靠性小,经由进程动静来完成工具之间的彼此接洽。
9.B。【剖析】法式的三种根基节制布局包罗挨次、挑选和反复(轮回),这三种布局足以抒发出各类其余情势的布局。
10.B。【剖析】数据库设想阶段首要包罗须要阐发、观点设想、逻辑设想和物理设想。此中逻辑设想的首要任务是将E-R图转换为干系情势。
11.C。【剖析】函数范例决议了函数前往值的范例。函数值前往范例能够由编译器主动完成范例转换。在函数有前往值的挪用中,编译器将return后面的抒发式的范例强迫转换为该函数界说时指定的前往值范例。
12.D。【剖析】本题首要查核C++说话的根基语法,选项A中应当为m>n‖m<n;选项b中default语句无关紧要;选项c中if能够零丁作为一条语句,不用须和else搭配。
13.D。【剖析】利用ifstream流类界说流工具并翻开磁盘文件时,文件不默许的翻开体例。此中ios::in是为输入而翻开;iso::out是为输入而翻开。
14.C。【剖析】机关函数包罗默许机关函数和拷贝机关函数等,析构函数和机关函数一样属于类的特别的成员函数。而友元函数则是为了增添类的拜候矫捷性而许可其余类的成员函数或全局函数拜候类的外部变量或成员函数的一种机制,其毛病谬误是粉碎了类的封装性。
15.A。【剖析】本题查核的是字符数组的初始化。选项B顶用三个元素初始化巨细为2的数组,越界了;选项C中应当是2行3列的数组,题中利用3行2列初始化;选项D中数组利用方括号。
16.B。【剖析】申明一个函数模板的格局template<模板形参表申明>函数申明。挪用模板函数时,若是与模板实参中最初的多少个参数有关的信息能够从模板函数的实参中取得,则相干的模板实参能够省略。
17.D。【剖析】语句p=&my;是把工具my的地点值赋给指针变量P。语句MyClass*P,my;,因为P只是一个指向工具的指针,是以界说指针P不挪用机关函数,以是此语句只挪用一次机关函数。对成员函数的援用能够经由进程两种情势:指针->成员函数(形参表)或工具名.成员函数名(形参表)。
18.D。【剖析】本题查核break语句的利用。break能够竣事switch语句和for轮回语旬,可是不能利用在前提判定语句内。
19.B。【剖析】本题查核运算符的重载。假设已作为某个类的成员函数重载了二元运算符+,且c1、c2都是该类的工具,则c1.operator+(c2)与c1+c2寄义不异。若是+作为该类的非成员函数重载,则operator+(c1,c2)与c1+c2寄义不异。同理,运算符“/”作为友元函数重载,则(--x)/y与抒发式operator/((…x),y)不异。前缀运算符“--”作为友元函数重载,则--x与operator--(x)不异,以是组合起来是operator/(operator--(x),y);,即B选项。
20.A。【剖析】本题查核const润色符的感化。注重,const地位差别,其润色的局部也是差别的。本题中const润色的是ptr所指的工具自身,以是,ptr能够从头指向新的工具,而ptr->a则没法被更新。
21.D。【剖析】只要私有担当的私有成员能力被派生类的工具间接拜候,其余的环境城市因为拜候权限标题问题发生毛病。
22.C。【剖析】本题查核考生对拷贝机关函数的把握。因为++运算是右连系的,以是在利用a对b赋值时,b的hum变为1,而a的num变为2(先赋值再自加)。
23.D。【剖析】本题查核cin流工具的几种成员函数get,getline,read及流提取符>>的利用法则。
24.C。【剖析】由主函数main动手,界说TestClass类的工具cs1,履行cs1.va1,此中va1为静态变量,按照intTestClass::val=0;初始化,TestClass中的TestClass(){val++;}机关函数履行后,val值为1。主函数中接着界说工具cs2,cs3,cs4。履行cout<<cs2.va1<<endl;中的val值为4,以是输入为14。
25.B。【剖析】本题查核机关函数的利用。工具成立用初始化列表对数据成员停止时。列表中的参数范例要与机关函数中形参范例分歧。B选项中第二个参数为13301111155,是字符串,而机关函数中第二个形参为char型,二者不分歧构成毛病。
26.D。【剖析】申明派生类的通俗构成为class派生类名:[担当体例]基类名。此中担当体例包罗public、private和protected。而virtual为C++中的关头字,以是选项C错。虚函数的利用体例是在基类用virtual申明成员函数为虚函数。
27.D。【剖析】本题查核的是友元类的界说:类A为类B的友元类,则类A的一切成员函数都是类B的友元函数,但反之则不用然成立。
28.B。【剖析】虚基类的引入便是为了消弭二义性,其机关函数的挪用依然是按照担当的挨次停止的,对多个虚基类则按它们申明的挨次挪用,虚基类的机关函数先于非虚基类的机关函数履行。
29.C。【剖析】编译时的多态性是经由进程函数重载和模板表现的,运转时的多态性是经由进程虚函数表现的。
30.D。【剖析】起首界说TestClass3的工具obj,参数为10。此中TestClass3为TestClass1和TestClass2的派生类。而后挪用disp成员函数。disp中起首履行TestClassl::disp();,而后履行TestClass2::disp();,最初履行输入语句cout<<c<<endl;。testclassl(k-2),以是第一个输入为8,testclass2(k+2),第二个输入为12,最初一个本类中的输入即为10。
31.D。【剖析】由主函数main动手,界说了类D工具obi。此中D为类B和C的私有担当,A是C的
虚基类。标题问题中请求的输入成果为ABCD,顺次为类A、类B、类C、类D中机关函数的输入语句。为了保障基类经由进程多条途径被派生类担当,即保障A只被担当一次,输入一个A,以是岂但须要申明A为C的虚基类,一样也要申明A为B的虚基类。
32.B。【剖析】所谓函数重载,是指统一个函数名能够对应着多个函数的完成,类AA中界说了两个9et()函数,一个为通俗成员函数,另外一个为常成员函数。通俗工具a既能够挪用通俗成员函数get,也能够挪用常成员函数get,可是因为常成员函数不能更新工具的数据成员,以是题中经由进程工具a挪用的函数为通俗成员函数get(),前往值为5。常工具b只能挪用常成员函数,以是题中经由进程工具b挪用的函数为常成员函数get(),前往值为7。
33.C。【剖析】函数Demo()为机关函数,而Demo(constDemo&x)为复制机关函数。C++在成立一个工具时,会主动挪用类的机关函数,以是语句"Demoa,d;"将挪用函数Demo()2次。当一个工具作为实参通报给函数时为初始化形参,要挪用拷贝机关函数;在函数前往一个工具时挪用拷贝机关函数。由此可知语句d=userCode(a);挪用拷贝机关函数3次。
34.C。【剖析】本题查核的是析构函数和工具的保存期。在主函数中,起首界说了一个DA类工具数组d,从初始化列表中能够看出,它包罗三个工具;而后经由进程new运算符静态成立了一个DA类的工具数组,并将首地点赋给DA类指针P;接着经由进程[]运算符烧毁指针P所指向的数组,故此时会输入11。最初函数竣事,烧毁后面界说的工具数组d,会输入333。故最初的输入成果是11333。
35.D。【剖析】在成立类工具时,机关函数的履行挨次以下:履行基类的机关函数,挪用挨次按照各个基类被担当的申明挨次;履行成员工具的机关函数,挪用挨次按照各个成员在类中的申明挨次;履行自身的机关函数。按照以上总结和题意可知谜底挑选D选项。
36.B。【剖析】<前往范例>又称函数范例,表现一个
函数所计较(或运转)的成果值范例,这里的范例能够是预界说范例(如int)、复合范例(如double*)、用户界说范例(如列举类),若前往值只做更新(或设置)等操纵,则该函数前往范例为void范例,函数范例和内置数组不能作为前往范例,但类范例和容器范例能够被间接前往。
37.D。【剖析】机关函数在工具被成立时由体系主动挪用,本题共成立3个工具。
38.C。【剖析】派生类从基类掩护担当classYY:pro-tectedXX时,基类的私有成员在派生类中变为掩护成员,基类的掩护成员在派生类中依然是掩护成员;本题中YY自身有一个掩护成员y2,再加上基类XX的x2和x3,故选C。
39.A。【剖析】运算符的重载是针对C++华夏有运算符停止的,不能经由进程重载缔造新的运算符。
40.D。【剖析】类模板是一系列相干类的模板,类成员构成不异,成员函数的源代码情势不异,所差别的是所针对的范例。类模板的成员函数都是模板函数,在用类模板界说工具时,因为不像函数实参表如许的额定信息渠道,是以没法按函数模板的体例省略模板实参。但能够为类模板的参数设置默许值。由此可知应选D。
【计较机二级C++测验专家展望试卷及谜底】相干文章:
计较机二级Access测验专家展望试卷08-14
2016年计较机二级C++测验卷及谜底08-05
2016年计较机二级C++测验试卷及谜底10-04
计较机二级测验C++操练及谜底10-09
计较机二级Access测验展望题及谜底10-05
计较机二级测验office展望题及谜底07-06
天下计较机二级测验C++精选试题及谜底08-17
计较机二级测验Access展望试卷10-28