【计算机类职业资格】二级C++-239及答案解析.doc
《【计算机类职业资格】二级C++-239及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++-239及答案解析.doc(21页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+-239 及答案解析(总分:68.00,做题时间:90 分钟)一、选择题(总题数:36,分数:68.00)1.在深度为 7 的满二叉树中,叶子结点的个数为(分数:1.00)A.32B.31C.64D.632.有如下程序: #includeiostream using namespace std; void f1(int void f2(int x)+x; int main() int x=10,y=12; f1(x); f2(y); coutx+yendl; return 0; 运行这个程序的输出结果是_。(分数:2.00)A.22B.23C.24D.253.有如下程序: #incl
2、udeiostream using namespace std; class Media public: void Name(); void Show(); protected: int page; ; class Book:private Media public: void Print() coutpageendl; void Show()Media:Show();) / ; int main() Book Bible; Bible.Name(); / Bible.Print(); / Bible.Show(); / return 0; 编译时有错误的是_。(分数:2.00)A.语句B.语
3、句C.语句D.语句4.若目前 D 盘根目录下并不存在 test.txt 文件,则下列打开文件方式不会自动创建 test.txt 文件的是_c(分数:1.00)A.ifstream fin;fin.open(“d:/test.txt“,ios_base:in);B.fstream fio;fio.open(“d:/test.txt“,ios_base:out);C.ofstream fout;fout.open(“d:/test.txt“,ios_base:out);D.ofstream fout;fout.open(“d./test.txt“,ios_base:app);5.下列程序的运行结果
4、是 #include iostreamh class Location private: int X,Y; public: void init(int=0,in=0); Void valueX(int val) X=val; int valueX( ) return X; void valueY(int val) Y=val; int valueY( ) return Y; ; void Location:init(int initX,int initY) X=initX; Y=initY; void main( ) Location A,B; Ainit( ); AvalueX(5); co
5、ut AvalueX( ) end1 AvalueY( ) end1; Binit(6,2); BvaleY(4); cout BvalueX( ) end1 BvalueY( ) end1;(分数:1.00)A.5064B.0064C.5062D.00626.while 和 do-while 循环的主要区别是(分数:1.00)A.do-while 的循环体至少无条件执行一次B.while 的循环控制条件比 do-while 的循环控制条件更严格C.do-while 允许从外部转到循环体内D.do-while 的循环体不能是复合语句7.软件生命周期是指_。(分数:1.00)A.软件产品从提出、
6、实现、使用维护到停止使用退役的过程B.软件从需求分析、设计、实现到测试完成的过程C.软件的开发过程D.软件的运行维护过程8.有如下的运算符重载函数定义: double operator+(int i,int k)return double(i+k); 但定义有错误,对这个错误最准确的描述是_。(分数:3.00)A.+只能作为成员函数重载,而这里的+是作为非成员函数重载的B.两个 int 型参数的和也应该是 int 型,而这里将+的返回类型声明为 doubleC.没有将运算符重载函数声明为某个类的友元D.C+已经提供了求两个 int 型数据之和的运算符+,不能再定义同样的运算符9.对于下列语句,
7、正确的判断是 for=(x=0;y=0;(y!=123)x+);(分数:2.00)A.是无限循环B.循环次数不定C.最多执行 4 次D.最多执行 3 次10.有如下程序: #includeiostream using namespace std; class A public: A(int i) x=i; void dispa() coutx“,“; private: int x; ; class B: public A public: B(int i): A(i+10) x=i; void dispb() dispa(); coutxendl; private: int x; ; int m
8、ain() B b(2); b. dispb(); return 0; 执行这个程序的输出结果是_。(分数:1.00)A.10, 2B.12, 10C.12,2D.2, 211.下列关于 C+函数的说明中,正确的是_。(分数:1.00)A.内联函数就是定义在另一个函数体内部的函数B.函数体的最后一条语句必须是 return 语句C.标准 C+要求在调用一个函数之前,必须先声明其原型D.编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式12.语句 int*p=p=p=kC.int*p;*p=*p=k13.下列关于运算符重载的叙述中,错误的是_。(分数:2.00)A.有的运算符可以作为非
9、成员函数重载B.所有的运算符都可以通过重载而被赋予新的含义C.不得为重载的运算符函数的参数设置默认值D.有的运算符只能作为成员函数重载14.下列 for 语句的循环次数为_。 for(int i=0,x=0;!xi+);(分数:2.50)A.5 次B.6 次C.7 次D.无穷次15.在 32 位的计算机中,一个 char 型数据所占的内存长度的字节是_。(分数:2.50)A.4B.1C.2D.816.有下列程序: #include stdio.h void main() int x; scanf(“%d“,x); if(x=3);else if(x!=10) printf(“%d/n“,x);
10、 程序运行时,输入的值在哪个范围才会有输出结果_。(分数:2.50)A.不等于 10 的整数B.大于 3 且不等 10 的整数C.大于 3 或等于 10 的整数D.小于 3 的整数17.若有如下语句 #includeiostream.h void main() int x=3; do x=x-2; coutx; while(!(-x); 则上面程序段_。(分数:2.50)A.输出的是 1B.输出的是 1 和-2C.输出的是 3 和 0D.是死循环18.下面程序错误的语句是 #include“ iostreamh“ void main( ) int A=0; int ”语句时会自动调用该类构造函
11、数的次数是_。(分数:2.50)A.2B.5C.4D.921.下列关于重载函数的调用时选择的依据中,错误的是 _ 。(分数:2.00)A.根据函数参数个数不同B.根据函数参数类型不同C.根据函数名字不同D.根据函数的返回值不同22.有以下程序: #includeiostream using namespace std; class Complex public: Complex(double r=0,double i=0):re(r),im(i) double real() constreturn re; double imag() constreturn im; Complex operat
12、or+(Complex c)const return Complex(re+c.re,im+c.im); private: double re,im; ; int main() Complex a=Complex(1,1)+Complex(5); couta.real()“+“a.imag()“i“endl; return 0; 程序执行后的输出结果是_。(分数:1.00)A.6+6iB.6+1iC.1+6iD.1+1i23.有如下程序: #includeiostream using namespace std; class Point int x,y; public: Point(int x
13、1=0,int y1=0):x(x1),y(y1) int get()return x+y;) ; class Circle Point cente; int radius; public: Circle(int cx,int cy,int r):center(cx,cy),radius(r) int get()return center.get()+radius; ; int main() Circle c(3,4,5); coutc.get()endl; return 0; 运行时的输出结果是_。(分数:2.00)A.5B.7C.9D.1224.分析下面程序,该程序的运行结果是_。 #in
14、cludeiostream.h class TestClass public: static int m; TestClass () m+; TestClass (int n) m=n; static void test() m+; ; int TestClass:m=0; void main() TestClass A; TestClass B(3); A.test(); TestClass:test(); cout“m=“B.mendl; (分数:2.50)A.m=3B.m=4C.m=5D.m=625.有如下程序: #includeiostream using namespace std;
15、 class TlestClass int n; public: TestClass(int k):n(k) int get()return n; int get()constreturn n+1; ; int main() TestClass p(5); colast TestClass q(6); coutp.get()q.get(); return 0; 执行后的输出结果是 _ 。(分数:2.00)A.55B.57C.75D.7726.在 C+中既可以用于文件输入又可以用于文件输出的流类是_。(分数:2.00)A.fstreamB.ifstreamC.ofstreamD.iostream
16、27.下列对于软件测试的描述中正确的是_。(分数:2.50)A.软件测试的目的是证明程序是否正确B.软件测试的目的是使程序运行结果正确C.软件测试的目的是尽可能多地发现程序中的错误D.软件测试的目的是使程序符合结构化原则28.下面程序的结果为 #include“iostreamh“ void change(int a,int b) int temp; temp=a; a = b; b=temp; void main() int m,n; m=8; n=9; change(m,n); coutm “ “ n endl; (分数:1.00)A.8 9B.9 8C.程序有错误D.9 929.有如下函
17、数模板定义: templatetypename T1,typename T2 T1 FUN(T2 n)return n*5,0; 若要求以 int 型数据 9 作为函数实参调用该模板,并返回一个 double 型数据,则该调用应表示为_。(分数:1.00)A.FUN(9)B.FUN9C.FUNdouble(9)D.FUN9(double)30.下面程序的输出是 main() int x=100, a=10, b=20, ok1=5, ok2=0; if(ab) if(b! =15) if( ! ok1) else if(ok2) x= 10 x=-1 coutxend1; (分数:2.00)A
18、.-1B.0C.1D.不确定的值31.下列有关抽象类和纯虚函数的叙述中,错误的是_。(分数:2.00)A.拥有纯虚函数的类是抽象类,不能用来定义对象B.抽象类的派生类若不实现纯虚函数,它也是抽象类C.纯虚函数的声明以“=0;”结束D.纯虚函数都不能有函数体32.下列选项中属于 float 类型字面常量的是_。(分数:2.50)A.3.14B.3.14fC.3.14LD.0.0314E233.有函数模板声明和一些变量定义如下: templateclass T1,class T2,class T3T1 sum(T2,T3); double d1,d2; 则下列调用中,错误的是_。(分数:3.00)
19、A.sumdouble,double,double(d1,d2);B.sumdouble,double(d1,d2);C.sumdouble(d1,d2);D.sum(d1,d2);34.下列关于函数的描述中,错误的是_。(分数:2.50)A.函数可以没有返回值B.函数可以没有参数C.函数可以是一个类的成员D.函数不能被定义为模板35.若有定义语句“int i=2,j=3;”,则表达式 i/j 的结果是_。(分数:2.00)A.0B.0.7C.0.666 67D.0.666 666 6736.已知类 MyClass 的定义如下: #includediostream using namespac
20、e std; class MyClass private: static int static_data; const int const_data; public: MyClass(int d): const_data(d) static void fool() coutconst_data; / void foo2()const coutstatic_data; / ; int MyClass:static_data=0; 下列说法中正确的是_。(分数:2.50)A.编译时语句有错B.编译时语句有错C.编译时语句均有错D.编译时语句均无错二级 C+-239 答案解析(总分:68.00,做题
21、时间:90 分钟)一、选择题(总题数:36,分数:68.00)1.在深度为 7 的满二叉树中,叶子结点的个数为(分数:1.00)A.32B.31C.64 D.63解析:解析 在二叉树的第 k 层上,最多有 2 k-1 (k1)个结点。对于满二叉树来说,每一层上的结点数都达到最大值,即在满二叉树的第 k 层上有 2 k-1 个结点。因此,在深度为 7 的满二叉树中,所有叶子结点在第 7 层上,即其结点数为 2 k-1 =2 7-1 =64 因此,本题的正确答案为 C。2.有如下程序: #includeiostream using namespace std; void f1(int void f
22、2(int x)+x; int main() int x=10,y=12; f1(x); f2(y); coutx+yendl; return 0; 运行这个程序的输出结果是_。(分数:2.00)A.22B.23 C.24D.25解析:3.有如下程序: #includeiostream using namespace std; class Media public: void Name(); void Show(); protected: int page; ; class Book:private Media public: void Print() coutpageendl; void S
23、how()Media:Show();) / ; int main() Book Bible; Bible.Name(); / Bible.Print(); / Bible.Show(); / return 0; 编译时有错误的是_。(分数:2.00)A.语句B.语句 C.语句D.语句解析:解析 类 Book 私有继承自类 Media,所以类 Media 中的公有成员函数 Name()在继承类 Book 中变成了私有成员函数,因而类 Book 的对象 Bible 不能访问私有成员函数 Name()。4.若目前 D 盘根目录下并不存在 test.txt 文件,则下列打开文件方式不会自动创建 tes
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 C239 答案 解析 DOC
