【计算机类职业资格】二级C++-242及答案解析.doc
《【计算机类职业资格】二级C++-242及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++-242及答案解析.doc(20页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+-242 及答案解析(总分:69.00,做题时间:90 分钟)一、选择题(总题数:40,分数:69.00)1.下列有关类成员的叙述中,错误的是_。(分数:2.00)A.友元函数不是类的成员函数B.类成员的默认访问权限是私有的C.类成员函数必须声明为公有的D.类的静态数据成员可以是常成员2.在对函数进行原型声明时,下列语法成分中不需要的是_。(分数:1.00)A.函数返回类型B.函数参数列表C.函数名D.函数体3.有如下程序: #includeiostream using namespace std; void fun(intx=y;y=t; int main() int a2=1,2
2、; fun(a1,a0); std:couta0“,“a1std:endl; return 0; 执行后的输出结果是_。(分数:2.50)A.2,2B.1,1C.1,2D.2,14.有如下程序: #includeiostream using namespace std; class A public: A() cout“A“; A() cout“A“; ; class B: public A A*P; public: B() cout“B“; P=new A(); B() cout“B“; delete P; ; int main() B obj; return 0; 执行这个程序的输出结果是
3、_。(分数:1.00)A.BAAABAB.ABABAAC.BAABAAD.ABAABA5.下列有关指针的用法中错误的是 _ 。(分数:2.00)A.int i;int *ptr=B.int i;int *ptr;i=*ptr;C.int *ptr;ptr=0;D.inti=5;int *ptr;*ptr6.不合法的 main 函数命令行参数表示形式是(分数:1.00)A.main(inta,char*c)B.main(int arc,char * * arv)C.main(int argc,char * argv)D.main(int argv,char * argc)7.有以下程序: #in
4、cludeiostream using namespace std; class R public: R(int r1,int r2) R1=r1; R2=r2; void print(); void print()corist; private: int R1,R2; ; void R:print() void R:print()coiist int main() R a(5,4); const R b(20,52); b.print(); return 0; 执行后的输出结果是_。(分数:1.00)A.5,4B.20,52C.0,0D.4,58.Sample 是一个类,执行下面语句后,调用
5、 Sample 类的构造函数的次数是_。 Sample a2,*p=new Sample;(分数:2.50)A.0B.1C.2D.39.有如下程序: #includeiostream using namespace std; void fun(int i) cout“/int i“; void fun(char e)cout“/char c“; int main() fun(0); fun(“0“); retum 0; 运行后的输出结果是_。(分数:1.00)A./int i/int iB./int i/char cC./char c/int iD./char c/char c10.在深度为
6、7 的满二叉树中,叶子结点的个数为(分数:2.00)A.32B.31C.64D.6311.下列情况中,不会调用拷贝构造函数的是_。(分数:2.50)A.用一个对象去初始化同一类的另一个新对象时B.将类的一个对象赋值给该类的另一个对象时C.函数的形参是类的对象,调用函数进行形参和实参结合时D.函数的返回值是类的对象,函数执行返回调用时12.下列函数模板声明中,合法的是_。(分数:1.00)A.templatetypename TT abs(T x);B.template classTvoid abs(T x);C.template Tclass Tabs(T x);D.templatetypen
7、ame Tabs(T x);13.下列程序的运行结果为_。 # includeiostream.h templateclass TT class FF TT a1,a2,a3; public: FF(TT b1,TT b2,TT b3)a1=b1;a2=b2;a3=b3; TT Sum()return a1+a2+a3;); void main() FFintx(int(1.1),2.3),y(int(4.2),5,6); coutx.Sum()“y.Sum()encIl;(分数:2.50)A.6.1 15.2B.6 15C.6 15.2D.6.1 1514.下列说法正确的是_。(分数:1.0
8、0)A.内联函数在运行时将该函数的目标代码插入每个调用该函数的地方B.内联函数在编译时将该函数的目标代码插入每个调用该函数的地方C.类的内联函数必须在类体内定义D.类的内联函数必须在类体外通过加关键字 inline 定义15.下列有关模板的叙述中,正确的是_。(分数:1.00)A.函数模板不能含有常规形参B.函数模板的一个实例就是一个函数定义C.类模板的成员函数不能是模板函数D.用类模板定义对象时,绝对不能省略模板实参16.已知函数模板定义如下: templateclass T T min(T x, T y) return xy? x:y; 下列叙述中,错误的是_。(分数:1.00)A.该函数
9、模板有一个模板参数B.T 类型所允许的类型范围应提供有意义的运算符操作C.该函数模板生成的模板函数中,参数和返回值的类型可以不同D.该函数模板可以生成模板函数 double min(double, double)17.若有定义语句“int i=2,j=3;”,则表达式 i/j 的结果是_。(分数:2.00)A.0B.0.7C.0.666 67D.0.666 666 6718.在 C+中,cin 是一个_。(分数:2.00)A类B.对象C.模板D.函数19.已知 Value 是一个类,value 是 Value 的一个对象。下列以非成员函数形式重载的运算符函数原型中,正确的是_。(分数:1.00
10、)A.Value operator+(Value v, int i);B.Value operator+(Value v=value, int i);C.Value operator+(Value v, int i=0);D.Value operator+(Value v=value, int i=0);20.有以下程序 #include iostream using namespace std; int a; int fun (); int main () extern int a; int b; a = 100; b = fun(); coutbend1; return 0; int fu
11、n) extern int a; return (10*a ; 其程序运行后的输出结果是(分数:2.00)A.100B.10C.1000D.1000021.有如下程序: #includeiostream using namespace std; class Boat; class Car public: Car(int i):weight(i) friend int Total(const Car / private: int weight; ; class Boat public: Boat(int i):weight(i) friend int Total(const Car privat
12、e: int weight; ; int Total(const Car int main() Car c(10); Boat b(8); cout“The total weight is“Total(c,b)endl; / return 0; 下列关于程序的描述中,正确的是_。(分数:3.00)A.程序编译正确B.程序编译时语句出错C.程序编译时语句出错D.程序编译时语句出错22.通过运算符重载,可以改变运算符原有的_。(分数:1.00)A.操作数类型B.操作数个数C.优先级D.结合性23.下列关于 goto 语句的描述中,正确的是 _ 。(分数:1.00)A.goto 语句可在一个文件中随
13、意转向B.goto 语句后面要跟一个它所转向的语句C.goto 语句可以同时转向多条语句D.goto 语句可以从一个循环体内转到循环体外24.已知在一个类体中包含如下函数原型:VOLUMEOPER ATOR-(VOLUME)const;,下列关于这个函数的叙述中,错误的是_。(分数:1.00)A.这是运算符一的重载运算符函数B.这个函数所重载的运算符是一个一元运算符C.这是一个成员函数D.这个函数不改变类的任何数据成员的值25.执行语句序列 ofstream outfile(“data.dat“); if() cout“ok“;else cout“fail“;后,如果文件打开成功,显示“ok”
14、,否则显示“fail”。由此可知,上面 if 语句的“”处的表达式是 _ 。(分数:2.00)A.outfile.fail()或 outfileB.outfile.good()或!outfileC.outfile.good()或 outfileD.outfile.fail()或!outfile26.类模板的使用实际上是将类模板实例化为一个具体的 _。(分数:2.00)A类B.对象C.函数D.模板类27.软件详细设计产生的图如下: (分数:2.50)A.N-S 图B.PAD 图C.程序流程图D.E-R 图28.若有下列定义 int x10,*pt=x; 则对 x 数组元素的正确引用是_。(分数:
15、2.50)A.*x10B.*(x+3)C.*(pt+10)D.pt+329.有如下函数模板: templateclass TT square(T x)return x*x; 其中 T 是_。(分数:2.00)A.函数形参B.函数实参C.模板形参D.模板实参30.以下程序的结果是 _ 。 #includeiostream.h void main() char * p=“abcdefgh“,*r; long *q; q=(long*)P; q+; r=(char*)q; coutrendl;(分数:1.00)A.defgB.cdefC.ghabD.efgh31.下列关于函数参数的叙述中,正确的是_
16、。(分数:2.00)A.在函数原型中不必声明形参类型B.函数的实参和形参共享内存空间C.函数形参的生存期与整个程序的运行期相同D.函数的形参在函数被调用时获得初始值32.软件详细设计产生的图如下: (分数:2.50)A.N-S 图B.PAD 图C.程序流程图D.E-R 图33.下列关于队列的叙述中正确的是_。(分数:1.00)A.在队列中只能插人数据B.在队列中只能删除数据C.队列是先进先出的线性表D.队列是先进后出的线性表34.数据库设计中,用 ER 图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的_。(分数:2.50)A.需求分析阶段B.逻辑设计阶段C.概念设计阶段D.物理
17、设计阶段35.必须用一对大括号括起来的程序段是_。(分数:1.00)A.switch 语句中的 case 标号语句B.if 语句的分支C.循环语句的循环体D.函数的函数体36.有以下程序 #include iostream using namespace std; static int days= 31,28,31,30,31,30,31,31,30,31,30,31 ; class date private: int month, day, year; public: date( int m, int d, int y ) month = m; day = d; year = y; date
18、() void disp() coutyear“-“month“-“dayend1; date operator+( int day ) date dt = *this; day+= dt.day; while ( day daysdt.month - 1 ) day -= days dt.month - 1 ; if ( +dt.month = 13 ) dt.month = 1; dt.year+; dt.day = day; return dt; ; int main() date d1( 6, 20, 2004 ), d2; d2: d1 + 20; d2.disp(); return
19、 0; 执行后的输出结果是(分数:1.00)A.2004-7-10B.2004-6-20C.2004-7-20D.程序编译时出错37.在深度为 5 的满二叉树中,叶子结点的个数为 _ 。(分数:2.00)A.31B.32C.16D.1538.下列运算符中,可以重载为类的友元函数的运算符是_。(分数:2.50)A.=B.()CD.39.下列函数中对调用它的函数没有起到任何作用的是(分数:2.00)A.void f1(double B.double f1(double x)return x-1.5;C.void f3(double x)-x;D.double f4(double *x)-*x; r
20、eturn*x;40.有如下程序: #includeiostream #includeiomanip using namespace std; int main() coutsetfill(“#“)setw(4)“OK“123endl; return 0; 运行这个程序的输出结果是_。(分数:2.50)A.#OK123B.#OK#123C.OK#123D.OK#123#二级 C+-242 答案解析(总分:69.00,做题时间:90 分钟)一、选择题(总题数:40,分数:69.00)1.下列有关类成员的叙述中,错误的是_。(分数:2.00)A.友元函数不是类的成员函数B.类成员的默认访问权限是私
21、有的C.类成员函数必须声明为公有的 D.类的静态数据成员可以是常成员解析:2.在对函数进行原型声明时,下列语法成分中不需要的是_。(分数:1.00)A.函数返回类型B.函数参数列表C.函数名D.函数体 解析:解析 函数原型中,函数名、函数返回值、函数参数列表是需要的,而函数体在函数声明时不需要。所以答案为 D。3.有如下程序: #includeiostream using namespace std; void fun(intx=y;y=t; int main() int a2=1,2; fun(a1,a0); std:couta0“,“a1std:endl; return 0; 执行后的输出
22、结果是_。(分数:2.50)A.2,2B.1,1 C.1,2D.2,1解析:解析 程序中的 fun 函数的功能是实现函数中两个参数的交换。主函数中 fun 的调用中第一个参数为数组第二个值即 2,第二个参数为第一个值即 1。在 fun 的定义中第一个形参引用类型,其改变会改变主函数中实参的值;而第二个形参不是引用类型,其改变不会改变第二个实参,所以 2,1 的交换结果为 1,1,即 B。4.有如下程序: #includeiostream using namespace std; class A public: A() cout“A“; A() cout“A“; ; class B: publi
23、c A A*P; public: B() cout“B“; P=new A(); B() cout“B“; delete P; ; int main() B obj; return 0; 执行这个程序的输出结果是_。(分数:1.00)A.BAAABAB.ABABAA C.BAABAAD.ABAABA解析:解析 本题考查派生类的构造函数和析构函数,在定义一个派生类的对象时,先调用基类的构造函数,然后再执行派生类的构造函数。对象释放时,先执行派生类的析构函数,再执行基类的析构函数。所以本题答案为 B。5.下列有关指针的用法中错误的是 _ 。(分数:2.00)A.int i;int *ptr=B.i
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 C242 答案 解析 DOC
