1、国家二级(C+)机试-试卷 6-2 及答案解析(总分:86.00,做题时间:90 分钟)一、选择题(总题数:40,分数:80.00)1.下列关于基类和派生类关系的叙述中,正确的是( )。(分数:2.00)A.每个类最多只能有一个直接基类B.派生类中的成员可以访问基类中的任何成员C.基类的构造函数必须在派生类的构造函数体中调用D.派生类除了继承基类的成员,还可以定义新的成员2.下列叙述中正确的是( )。(分数:2.00)A.栈是“先进先出“的线性表B.队列是“先进后出“的线性表C.循环队列是非线性结构D.有序线性表既可以采用顺序存储结构,也可以采用链式存储结构3.执行下列语句段后,输出字符“*“
2、的个数是( )。for(inti=50;i1;i-=2)cout1;i-=2)cout=1; /返回电源开关状态 (2)void turnOff() intensity=0; /关电扇 (3)intensity = inten;)解析:解析:(1)主要考查考生对 bool 函数的掌握情况,理清函数的逻辑关系。 (2)主要考查考生对成员函数的掌握,理清函数的逻辑关系。函数中有 intensity=0;参数值改变,因此函数不能为 const。 (3)主要考查考生对成员函数的掌握情况,intensity 是类的私有成员。三、简单应用题(总题数:1,分数:2.00)42.请使用 VC6 或使用【答题】
3、菜单打开考生文件夹 proj2 下的工程 proj2,该工程中含有一个源程序文件 proj2epp,请将堆栈类的定义补充完整。使程序的输出结果为:Theelementofstackare:4321 注意:请勿修改主函数 main 和其他函数中的任何内容,只在横线处编写适当代码,不要改动程序中的其他内容,也不要删除或移动“*found*”。proj2cpp#includeiostreamusingnamespacestd;constintSize=5;classStack;C1assItempublic:*found*Item(constintval):_构造函数对 item 进行初始化priv
4、ate:intitem;Item*next;friendclassStack;classStackpublic:Stack():top(NULL)Stack();intPop();voidPush(constint);private:Item*top;Stack:Stack()Item*P=top,*q;while(p!=NULL)q=P-next;*found*_;释放 p 所指向的节点 p=q;intStack:Pop()Item*temp;intret;*found*_;使 temp 指向栈顶节点 ret=top-item;top=top-next;deletetemp;returnret;voidStack:Push(constint p = new intn; for (int index = 0; index n; index+) pindex = r.pindex;)解析:解析:主要考查考生对拷贝构造函数的掌握,拷贝构造函数要复制动态数组,应先使用 new 分配空间,然后使用循环语句逐个复制,注意这里不能使用 strcpy 函数复制,因为 p 是整型动态数组。