[计算机类试卷]国家二级(C++)机试模拟试卷71及答案与解析.doc

上传人:boatfragile160 文档编号:502523 上传时间:2018-11-29 格式:DOC 页数:31 大小:74.50KB
下载 相关 举报
[计算机类试卷]国家二级(C++)机试模拟试卷71及答案与解析.doc_第1页
第1页 / 共31页
[计算机类试卷]国家二级(C++)机试模拟试卷71及答案与解析.doc_第2页
第2页 / 共31页
[计算机类试卷]国家二级(C++)机试模拟试卷71及答案与解析.doc_第3页
第3页 / 共31页
[计算机类试卷]国家二级(C++)机试模拟试卷71及答案与解析.doc_第4页
第4页 / 共31页
[计算机类试卷]国家二级(C++)机试模拟试卷71及答案与解析.doc_第5页
第5页 / 共31页
点击查看更多>>
资源描述

1、国家二级( C+)机试模拟试卷 71及答案与解析 一、选择题 1 下列关于 C+函数的说明中,正确的是 ( )。 ( A)内联函数就是定义在另一个函数体内部的函数 ( B)函数体的最后一条语句必须是 return语句 ( C)标准 C+要求在调用一个函数之前,必须先声明其原型 ( D)编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式 2 有如下程序: #include using namespace std; int i=1; class Fun public: static int i; int value() return i-1; int value()const retur

2、n i+1; ; int Fun:i=2; int main() int i=3; Fun fun1; const Fun fun2; return 0; 若程序的输出结果是: 123 则程序中下画线处遗漏的语句是 ( )。 ( A) cout using namespace std; class TV public: TV(int s=41):size(s) void Print() cout) 或 格式 2: if() else 关于上面的语法格式,下列表述中错误的是 ( )。 ( A) 部分可以是一个 if语句,例如 if(if(a=0) ( B) 部分可以是一个 if语句,例如 if(

3、)if() ( C)如果在 前加上逻辑非运算符 !并交换 和 的位置,语句功能不变 ( D) 部分可以是一个循环语句,例如 if()while() 16 以下关键字与类的访问权限无关的是 ( A) friend ( B) const ( C) const ( D) private 17 深度为的完全二叉树中共有 125个结点,则该完全二叉树中的叶子结点数为 ( A) 62 ( B) 63 ( C) 64 ( D) 65 18 有如下程序: #include using namespace std; void fun(int i) cout p1; MyTemp p2; MyTemp p34;

4、编译系统在处理上面的语句序列时,所生成的模板 MyTemp 的实例的个数是 ( A) 1 ( B) 2 ( C) 3 ( D) 6 20 为了取代 C中带参 数的宏,在 C+中使用 ( )。 ( A)重载函数 ( B)内联函数 ( C)递归函数 ( D)友元函数 21 有如下程序: #include using namespace std; class Point public: static int number; public: Point() number+; Point() number-; ; int Point:number=0; int main() Point *ptr; Po

5、int A, B; Point* ptr_point=new Point 3 ; ptr=ptr_point; Point C; cout #include using namespace std; class Wheel public: Wheel(string s=“W“):name(s) cout #include using namespace std; int main( ) cout T square(T x) return x * x; 其中的 T是 ( A)函数形参 ( B)函数实参 ( C)模板形参 ( D)模板实参 二、基本操作题 41 请使用 VC6或使用【答题】菜单打开

6、考生文件夹 pmj1下的工程 proj1,此工程中包含程序文件 main epp,其中有 ElectricFan(“电风扇 ”)类和主函数 main的定义。程序中位于每个 “ ERROR*found*”之后的一行语句有错误,请加以改正。改正后程序的输出结果应为: 品牌:清风牌,电源:关,风速: 0 品牌:清风牌,电源:开,风速: 3 品牌:清风牌,电 源:关,风速: 0 注意:只修改每个 “ ERROR*found*”下的那一行,不要改动程序中的其他内容。 #include usingnamespacestd; classElectricFan “电扇 ”类 char*brand; intin

7、tensity;风速: 0-关机, 1-弱, 2-中, 3-强 public: ElectricFan(constchar*thebrand): intensity(0) brand=newcharstrlen(thebrand)+1; strcpy(brand, the_brand); ElectricFan()fdeletebrand; ERROR*found* constchar*theBrand()constreturn *brand; )返回电扇品牌 inttheIntensity()const(return intensity; 返回风速 boolisOn()constreturn

8、intensity0; 返回电源开关状态 ERROR*found* voidturnOff()intensity=1; 关电扇 voidsetIntensity(intinten) 开电扇并设置风速 ERROR*found* if(intensity=1&intensity usingnamespacestd; 矩阵基础类,一个抽象类 classMatrixBase introws, cols; public: MatrixBase(introws, intcols): rows(rows), colS(colS) intgetRows()constreturnrows; 矩阵行数 intge

9、tCols()constreturncols; 矩阵列数 virtualdoublegetElement(intr, intC)const=0;取第 i个元素的值 voidshow()const 分行显示矩阵中所有元素 for(inti=0; ishow(); deletem; coutshow(); deletem; return0; 四、综合应用题 43 请使用 VC6或使用【答题】菜单打开考生文件夹 proj3下的工程 proj3,其中声明 IntSet是一个用于表示正整数集合的类。 IntSet的成员函数 Intersection的功能是求当前集合与另一个集合的交集。请完成成员函数 I

10、ntersection。在 main函数中给出了一组测试数据,此时程序的输出应该是: 求交集前: 1235810 2891l305667 求交集后: 1235810 28911305667 28 要求: 补充编制的内容写在 “ *333*”与 “*666*”之间,不得修改程序的其他部分。 注意:程序最后将结果输出到文件 out dat中。输出函数 writeToFile已经编译为obj文件,并且在本程序中调用。 Intset h #include usingnamespacestd; constintMax=100; clasSIntSet public: IntSet() 构造 一个空集合

11、end=-1; IntSet(inta, intsize)构造一个包含数组 a中 size个元素的集合 if(Size: Max) end=Max-1; else end=size-1; for(inti=0; i=l&inten=3)intensity=inten; 【试题解析】 (1)主要考查考生对指针的掌握情况,因为 brand是一个动态指针, *brand 表示字符串的首个字符, brand表示动态数组,这里要返回动态数组存储的 品牌名称。 (2)主要考查考生对成员函数的掌握情况,根据题目中类的定义中私有成员的定义: intintensity;风速: 0一关机, 1一弱, 2一中, 3

12、一强,可知本函数要关电扇,因此在这里 in tensity=0;。 (3)主要考查考生对成员函数的掌握,根据题目中函数的注释:开电扇并设置风速,可知 if 语句里要判断的应该是形参 inten 而不是 intensity。 三、简单应用题 42 【正确答案】 (1)getElement(i, j) (2)MatrixBase(rows, cols) (3)newdoublerows*cols (4)r=c 【试题解析】 (1)主要考查考生对纯虚函数的掌握,函数功能是分行显示矩阵中所有元素。因此在这里要输出行为 i、列为 j的元素,使用纯虚函数getElement(i, j)实现,输出语句为 c

13、outgetElement(i, j)“;。 (2)主要考查考生对派生类的构造函数的掌握,派生类的构造函数使用成员列表初始化法,先对基类初始化。 (3)主要考查考生对动态数组的掌握, val 是 double型指针,要给 val赋值,就要先给它分配空间,应使用 new来完成。 (4)主要考查考生对成员函数的掌握,因为要输出单位矩阵,只有满足条件 r=c的元素为 1 0,所以填写语句 if(r=c)return1 0;。 四、综合应用题 43 【正确答案】 for(inti=0; i=set GetEnd(); i+)遍对象 set数组 if(IsMemberOf(set GetElement (i)判断对象 set数组第 i个值是不是集合中的值,如果是则把它插入到 a中 asize+=set GetElement (i); 【试题解析】 主要考查考生对数组的掌握, 根据 IntSet类的构造函数: IntSet(inta, intsize)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1