设为首页 加入收藏

TOP

2018年3月计算机二级C++通关练习题及答案(2)(一)
2018-02-06 13:13:18 】 浏览:388
Tags:2018年 3月 计算机 二级 通关 习题 答案

1[判断题]C++语言比C语言对数据类型要求更加严格了。


参考答案:对


2[简答题] 为单链表类模板增加一个复制构造函数和赋值运算符(=)。在上题基础上,List类增加一个复制构造函数和赋值运算符(=)。


参考解析:


templateList::List(List& l){


head=new Node(-9999);//现建立头结点


Node* tempP=l.head->link,*tempC;


while(tempP!=NULL){


tempC=CreatNode(tempP->info);


InsertAfter(tempC);


tempP=tempP->link;


}


}


templateList& List::operator=(List& l){


MakeEmpty();//先释放原来链表的数据结点


Node* tempP=l.head->link,*tempC;


while(tempP!=NULL){


tempC=CreatNode(tempP->info);


InsertAfter(tempC);


tempP=tempP->link;


}


return *this;


}


int main(){


Node * P1;


List list1,list2;


int a[10]={20,12,0,-5,9,-18,6,11,5,3},i,j;


for(i=0;i<10;i++){


P1=list1.CreatNode(a[i]);


list1.InsertOrder(P1);


}


list1.PrintList();


cout<<"请输入一个要求删除的整数"<


cin>>j;


P1=list1.Find(j);


if(P1!=NULL){


P1=list1.DeleteNode(P1);


delete P1;


list1.PrintList();


}


else cout<<"未找到"<


cout<<"请输入一个要求插入的整数"<


cin>>j;


P1=list1.CreatNode(j);


list1.InsertOrder(P1);


list1.PrintList();


list2=list1;


list2.PrintList();


List list3=list1;


list3.PrintList();


cout<<"请输入一个要求删除的整数"<


cin>>j;


P1=list1.Find(j);


if(P1!=NULL){


P1=list1.DeleteNode(P1);


delete P1;


list1.PrintList();


}


else cout<<"未找到"<


list2=list3=list1;


list2.PrintList();


list3.PrintList();


list1.MakeEmpty();//清空list1


list2.MakeEmpty();//清空list1


list3.MakeEmpty();//清空list1


return 0;


}


3[单选题]一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间的联系是:


A.一对一B.一对多C.多对多D.多对一


参考答案:C


4[单选题] 下列叙述中正确的是( )。


A.在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化


B.在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化


C.在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化


D.以上说法都不正确


参考答案:C


参考解析:栈是先进后出的数据结构,在整个过程中,栈底指针不变,入栈与出栈操作均由栈顶指针的变化来操作,所以选择c。


5[单选题]下列叙述中正确的是 (  )。


A.线性表是线性结构


B.栈与队列是非线性结构


C.线性链表是非线性结构


D.二叉树是线性结构


参考答案:A


参考解析:线性表是线性结构;线性链表是线性表的链式存储结构,因此也是线性结构;栈与队列 是特殊的线性表,因此也是线性结构;二叉树是非线性结构。


6[单选题]开发软件时对提高开发人员工作效率至关重要的是


A.操作系统的资源管理功能


B.先进的软件开发工具和环境


C.程序人员的数量


D.计算机的并行处理能力


参考答案:B


7[单选题] 下列关于模板形参的描述中,错误的是(  )。


A.模板形参表必须在关键字template之后


B.模板形参表必须用括弧(  )括起来


C.可以用class修饰模板形参


D.可以用typename修饰模板形参


参考答案:B


参考解析:主要考查函数模板的定义。声明一个函数模板的格式为“template<<模板形参表声明>><函数声明>”,其中<模板形参>具有typename<参数名>、class<参数名>、<类型修饰><参数名>三种形式,形参用“<>”括起来。


8[简答题]请使用VC6或使用【答题】菜单打开考生文件夹pr092下的工程pros2。此工程中包含一个程序文件main.cpp,其中有“部门”类Department和“职工”类Staff的定义,还有主函数main的定义。在主函数中定义了两个“职工”对象,他们属于同一部门。程序展示,当该部门改换办公室后,这两个人的办公室也同时得到改变。请在程序中的横线处填写适当的代码并删除横线,以实现上述类定义。此程序的正确输出结果应为:


改换办公室前:


职工号:0789姓名:张三部门:人事处办公室:521


职工号:0513姓名:李四部门:人事处办公室:521


改换办公室后:


职工号:0789姓名:张三部门:人事处办公室:311


职工号:0513姓名:李四部门:人事处办公室:311


注意:只在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“//****found****”。


#include


using namespace std;


class Department{ //“部门”类


public:


Department(const char*name,const char*office){


strcpy(this一>name,nanle);


//**********found**********


}


const char*getName()const{return name;}//返回部门名称


//**********found**********


const char*getOffice()const{________} //返回办公室房号


void changeOfficeTo(const char*office){ //改换为指定房号的另一个办公室


strcpy(this一>office,office);


}


private:


char name[20];//部门名称


char office[20];//部门所在办公室房号


};


class staff{//“职工”类


public:


//**********found**********


Staff(const char*my―id,const char木my_name,Department&my_dept):

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇2018年3月计算机二级C++通关练习.. 下一篇2018年3月计算机二级C++通关练习..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目