
C++语言程序设计第四次形考任务(甘肃电大-课程号:6207105)参考资料.docx
11页C++语言程序设计第四次形考任务甘肃广播电视大学形成性测评系统 课程代码:6207105 参考资料 第四次形考任务试卷总分:100第四次形考任务填空题(共 11 题,共 22 分)1.(2 分)对一个类中的数据成员的初始化可以通过构造函数中的实现,也可以通过构造函数中的赋值语句实现参考答案:初始化表2.(2 分)在定义类对象的语句执行时,系统在建立每个对象的过程中将自动调用该类的使其初始化参考答案:构造函数3.(2 分)若需要把一个类 AB 定义为一个类 CD 的友元类,则应在类 CD 的定义中加入一条语句:参考答案:friend class AB;4.(2 分)假定要访问一个结构 x 中的由 a 指针成员所指向的对象,则表示方法为参考答案:x.(*a)5.(2 分)若需要把一个函数“void f(); ”定义为一个类 AB 的友元函数,则应在类 AB 的定义中加入一条语句参考答案:friend void f();6.(2 分)与结构成员访问表达式(*fp).score 等价的表达式是参考答案:fp-score7.(2 分)在每个成员函数中,隐含的第一个参数的参数名为参考答案:this8.(2 分)假定一个结构类型的定义为“struct B{int a[5],char *b;};”,则该类型的大小为字节。
参考答案:249.(2 分)当一个类对象被撤消时将自动调用该类的参考答案:析构函数10.(2 分)假定一个类对象数组为 A[N],当离开它的作用域时,系统自动调用该类构造函数的次数为参考答案:N11.(2 分)假定用户没有给一个名为 AB 的类定义析构函数,则系统为其隐含定义的析构函数为参考答案:~AB(){}单选题(共 6 题,共 12 分)12.(2 分)以下结构类型可用来构造链表的是( )A、structaa{inta;int *b;};B、struct bb{inta;bb *b;};C、C.structcc{int *a;cc b;};D、structdd{int *a;aa b;};参考答案:B参考答案:B13.(2 分)假定 AB 为一个类,则该类的拷贝构造函数的正确声明是( )A、AB(AB x);B、AB(AB C、AB(AB *);D、AB参考答案:B参考答案:B14.(2 分)设有如下定义: struct sk{ int a; float b; }data,*p; 若有 p=int *b;};B、struct bb{inta;bb *b;};C、C.structcc{int *a;cc b;};D、structdd{int *a;aa b;};参考答案:B参考答案:B16.(2 分)假定 AB 为一个类,则该类的拷贝构造函数的正确声明是( )。
A、AB(AB x);B、AB(AB C、AB(AB *);D、AB参考答案:B参考答案:B17.(2 分)设有如下定义: struct sk{ int a; float b; }data,*p; 若有 p= //姓名 int age; //年龄 float pay; //工资 }; void main() { Worker x={“wanghua“,52,23.5}; Worker y,*p; y=x;p= coutnameagepay #include struct Worker{ char name[15]; //姓名 int age; //年龄 float pay; //工资 }; void main() { Worker x; char *t=“louting“; int d=38;float f=493; strcpy(x.name,t); x.age=d;x.pay=f; x.age++;x.pay*=2; cout #include struct Worker{ char name[15]; //姓名 int age; //年龄 float pay; //工资 }; int Less(struct Worker r1,struct Worker r2) { if(r1.age class A{ int a; public: A(int aa=0){a=aa;} ~A(){cout class A{ int a,b; public: A(int aa=0,int bb=0):a(aa),b(bb) { cout class A{ int a; public: A(int aa=0):a(aa) { coutclass rectangle //长方形类{ double len,wid; //len 表示长方形的长、wid 表示长方形的宽public: rectangle(double i=0.0,double j=0.0) { len=i;wid=j;} double area() { return len*wid;} double peri() { return 2*(len+wid); }};void main(){ rectangle a(10,20); coutstruct Node{int data;Node * next;};void main(){int a[10],i,j,m;cout>a[i];//“选择法“将数组升序排列for(i=0;ii){int temp=a[i];a[i]=a[m];a[m]=temp;}}//创建一个包括 10 个结点的有序的单向链表 Node *head,*p,*q;head=p=new Node; //head 指向链表的头结点for(i=0;idata=a[i];p->next=new Node;p=p->next;}p->next=NULL;//①插入一个新结点,并保持链表有序性;q=new Node;cout>q->data;q->next=NULL;p=head;while(p->next->datadata){ p=p->next; }q->next=p->next;p->next=q;//②输出插入新结点后的链表各结点值;coutdatanext;}//③删除链表的第 5 个的结点;p=head;for(i=0;inext;p->next=p->next->next;//④输出删除第 5 个结点后的链表各结点值。
coutdatanext;}}。
