1、二级 C+笔试-257 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.关于构造函数 A( )的拷贝构造函数正确的是(分数:2.00)A.(*) ;B.() ;C.(i1;+i);B.for(int i=0;+i);C.for(int i=1;i0;+i);D.for(;);4.不能重载的运算符是(分数:2.00)A.newB.sizeofC*D.+5.下面程序输出的结果为#include“iostream.h“class Apublic:A( )cout“CLASS A“endl;A( );class B:public Apublic:B
2、( )cout“CLASS B“endl;B( );void main( )A*p;p=new B;B *q;q=new B;A)CLASS A CLASS BB)CLASS A CLASS B CLASS B C) CLASS A CLASS BCLASS A CLASS B D) CLASS ACLASS BCLASS BCLASS B(分数:2.00)A.B.C.D.6.C+语言中关于构造函数的说法正确的是(分数:2.00)A.构造函数的函数名不必和类名相同B.构造函数只能每一个C.每个类必定有构造函数D.构造函数必有返回值7.下列程序的输出结果是#include“iostream“us
3、ing namespace std;int Max(int a,int b) if(ab) return a;elsereturn b;void main( )int m,n;m=10,n=5;int max = Max(m,n);coutmaxendl;(分数:2.00)A.10B.程序有误C.1D.08.下面程序错误的语句是#include“iostream.h” void main( ) int A=0; int i=new int10;,释放指针 i的语句是 【9】 。(分数:2.00)填空项 1:_45.函数重载要求重载的函数必须有和原函数一样的 【10】 。(分数:2.00)填空项
4、 1:_46.在 C+语言中每个类都有一个 【11】 指针,该指针指向正在调用成员函数的对象。(分数:2.00)填空项 1:_47.设置虚基类的目的是 【12】 ,通过 【13】 表示虚基类。(分数:4.00)填空项 1:_48.程序的结果为 【14】 。#include“iostream.h“templatetypename TT total(T*data) T s=0;while(* data) s+=*data+;return s;int main( )int x = 2,4,6,8,0,12,14,16,18 ;couttotal(x);return 0;coutendl;(分数:2.
5、00)填空项 1:_49.语句 cout/n还可表示为 【15】 。(分数:2.00)填空项 1:_二级 C+笔试-257 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.关于构造函数 A( )的拷贝构造函数正确的是(分数:2.00)A.(*) ;B.() ;C.(i1;+i); B.for(int i=0;+i);C.for(int i=1;i0;+i);D.for(;);解析:命题目的 考查循环语句 for的使用。解题要点 for 循环的一般格式为 for(初始化部分;终止条件判断部分;迭代部分)循环体;说明如下:for循环开始时,首先执
6、行初始化操作,然后判断终止条件是否满足,如果满足,则执行循环体中的语句,最后执行迭代部分。完成一次循环后,重新判断终止条件。错解分析 在 for语句中,如果省略了终止条件判断部分,并且在语句中没有 break,或者是终止条件判断部分始终没有终止,都将出现死循环。考点链接 for 循环语句可由 while循环语句来代替。4.不能重载的运算符是(分数:2.00)A.newB.sizeofC* D.+解析:命题目的 运算符重载的概念考查。解题要点 C+语言规定.*运算符是不能被重载的。考点链接 还有.,-*,:,?:这几个运算符不能重载。5.下面程序输出的结果为#include“iostream.h
7、“class Apublic:A( )cout“CLASS A“endl;A( );class B:public Apublic:B( )cout“CLASS B“endl;B( );void main( )A*p;p=new B;B *q;q=new B;A)CLASS A CLASS BB)CLASS A CLASS B CLASS B C) CLASS A CLASS BCLASS A CLASS B D) CLASS ACLASS BCLASS BCLASS B(分数:2.00)A.B.C. D.解析:命题目的 考查类的继承和实例化。解题要点 每实例化一个类就要调用其构造函数,结束运行
8、该实例后调用析构函数。考点链接 类的实例化和构造函数、析构函数的调用方式和何时调用。6.C+语言中关于构造函数的说法正确的是(分数:2.00)A.构造函数的函数名不必和类名相同B.构造函数只能每一个C.每个类必定有构造函数 D.构造函数必有返回值解析:命题目的 考查构造函数的概念。解题要点 构造函数的函数名必须和类名相同;构造函数可以有一个,也可以有多个;构造函数没有返回值。考点链接 构造函数可以被重载。7.下列程序的输出结果是#include“iostream“using namespace std;int Max(int a,int b) if(ab) return a;elseretur
9、n b;void main( )int m,n;m=10,n=5;int max = Max(m,n);coutmaxendl;(分数:2.00)A.10 B.程序有误C.1D.0解析:命题目的 考查 return语句的用法和函数的调用。解题要点 本题函数 Max的功能是求出两个整数中的较大者,并且通 return语句返回。考点链接 return 语句的用法,注意 return的条件。8.下面程序错误的语句是#include“iostream.h” void main( ) int A=0; int i=new int10;,释放指针 i的语句是 【9】 。(分数:2.00)填空项 1:_ (
10、正确答案:delete i)解析:命题目的 new 和 delete的用法。解题要点 申请内存空间时用 new,释放内存空间用 delete。考点链接 new 和 delete的运用和 malloc,free 的运用。45.函数重载要求重载的函数必须有和原函数一样的 【10】 。(分数:2.00)填空项 1:_ (正确答案:函数名)解析:命题目的 重载函数的具体要求。解题要点 重载函数的函数名应和原函数致。考点链接 重载函数的方式方法,重载函数的参数,重载函数的返回值。46.在 C+语言中每个类都有一个 【11】 指针,该指针指向正在调用成员函数的对象。(分数:2.00)填空项 1:_ (正确
11、答案:this)解析:命题目的 this 指针的基本概念。解题要点 C+语言中 this指针是类自带的一个指针,它指向正在调用成员函数的对象。考点链接 C+类的基本概念,this 指针概念。47.设置虚基类的目的是 【12】 ,通过 【13】 表示虚基类。(分数:4.00)填空项 1:_ (正确答案:12解决二义性问题13用关键字 virtual)解析:命题目的 考查二义性的概念和解决方法。解题要点 解决二义性的两个基本方法一是用域名进行限制,二是用虚基类的方法。考点链接 C+语言中解决二义性的方法。48.程序的结果为 【14】 。#include“iostream.h“templatetyp
12、ename TT total(T*data) T s=0;while(* data) s+=*data+;return s;int main( )int x = 2,4,6,8,0,12,14,16,18 ;couttotal(x);return 0;coutendl;(分数:2.00)填空项 1:_ (正确答案:20)解析:命题目的 模板函数的运用。解题要点 要理解*data 的含意。49.语句 cout/n还可表示为 【15】 。(分数:2.00)填空项 1:_ (正确答案:coutendl;)解析:命题目的 考查“/n“和 endl的意义。解题要点 “/n“表示换行,endl 也可表示换行。考点链接 endl 和“/n“可以通用。