您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 《C++面向对象程序设计语言》期末试卷及参考答案
第1页共5页1《C++面向对象程序设计语言》期末试卷及参考答案一、判断题(每题2分,共12×2=24分)1.按照标识符的要求,下划线是不能组成正确标识符的。()2.C++中使用了新的注释符(//),C语言中注释符(/*…*/)不能在C++中使用。()3.引用就是某个变量的别名,对引用的操作,实质上就是对被引用的变量的操作。()4.在不同类型操作数组成的表达式中,其表达式类型一定是最高类型double型。()5.For循环是只有可以确定的循环次数时才可使用,否则不能用for循环。()6.返回值类型、参数个数和参数类型都相同的函数也可以重载。()7.重新定义的标识符在定义它的区域内是可见的,而与其同名的原标识符在此区域内是不可见的但是却是存在的。()8.通常的拷贝初始化函数的参数是某个对象的成员名或对象的引用名。()9.友元函数是类的成员函数,所以可以存取或修改该类中的私有成员。()10.已知:类A中一个成员函数说明如下:voidSet(A&a);其中A&a的含意是将a的地址值赋给变量Set。()11.具有转换函数功能的构造函数,是指只能带有一个或两个参数的构造函数。()12.多继承情况下,派生类的构造函数的执行顺序取决于定义派生类时所指定的各基类的顺序,而与派生类构造函数中所定义的成员初始化列表的各项顺序无关。()二、读程题,写出程序的运行结果。(1~2题每题6分,3~4题每题8分,共28分)1、#includeiostream.hvoidmain(){inti(0);while(++i){if(i==10)break;if(i%3!=1)continue;coutiendl;}}第2页共5页22、#includeiostream.hinta[8]={1,2,3,4,5,6,7};voidfun(int*pa,intn);voidmain(){intm=8;fun(a,m);couta[7]endl;}voidfun(int*pa,intn){for(intI=0;In-1;I++)*(pa+7)+=*(pa+I);}3、#includeiostream.hvoidff(intx),ff(doublex);voidmain(){floata(88.18);ff(a);charb('a');ff(b);}voidff(intx){coutff(int):xendl;}voidff(doublex){coutff(double):xendl;}4、#includeiostream.hclassAA{public:AA(inti,intj){A=i;B=j;coutConstructor\n;}AA(AA&obj){A=obj.A+1;B=obj.B+2;coutCopy_Constructor\n;}~AA(){coutDestructor\n;}voidprint(){coutA=A,B=Bendl;}private:intA,B;};voidmain(){AAa1(2,3);AAa2(a1);第3页共5页3a2.print();AA*pa=newAA(5,6);pa-print();deletepa;}三、编程题(每题10分,共10×2=20分)1、编写程序求1至100间所有素数之和,其中求素数要求用函数实现;2、编程打印如下图形:122333444455555四、综合分析应用题(共28分)1、阐述C++中函数三种调用的方式实现机制、特点及其实参、形参的格式,最好用代码说明(10分)。2、用代码举例说明如何定义指向普通常量的指针、指向一维数组的指针、指向对象的指针、指向类的数据成员的指针和指向类的成员函数的指针。(10分)3、结合自己学习C++的经历,谈谈你的学习体会(如遇到的问题、错误、解决问题的办法等等),并说说如何提高学习C++的效果?(8分)第4页共5页4参考答案一、判断题(每题2分共12*2=24分)题目123456789101112答案××√×××√√×××√二、读程题,写出程序的运行结果。(共28分)1、1472、283、ff(double):88.18ff(int):974、ConstructorCopy_ConstructorA=3,B=5ConstructorA=5,B=6DestructorDestructorDestructor三、编程题(每题10分,共10×2=20分)1、#includeiostream.hintprime(intx);voidmain(){intsum=0;for(inti=51;i100;i+=2)sum+=prime(i);coutSum=sumendl;}intprime(intx){for(intj=2;jx;j++)if(x%j==0)break;if(j=x)returnx;elsereturn0;第5页共5页5}2、#includeiostream.hvoidmain(){for(inti=1;i=5;i++){for(intj=1;j=i;j++)couti;cout\n;}}四、综合分析应用题(共28分)1、(简答)格式:1)、传值:实参用变量名(或常数),形参用变量名;2)、传址:实参用地址,形参指针;3)、引用:实参用变量名,形参用引用;传值调用:是单向的,实参把值拷贝一份给形参,形参值的改变不会影响实参;传址调用:是双向的,把实参的地址传给形参,形参就指针了实参变量,因此形参的改变会影响实参;引用调用:形参是实参的别名,形参的改变也肢影响实参,注意,实参只能用变量名,不能用常量!代码:(略)2、(简答):intx,*px=&x;//定义指向普通常量的指针intarr[5]={1,2,3,4,5},*pa=a;//定义指向一维数组的指针myclassobject,*pobj=&object;//定义指向对象的指针假设类A中有公有数据成员:intc;假设类A中有公有成员函数:intfun(intb);则intA::*pc=&A::c;//定义指向类的数据成员的指针;int(A::*pfun)(int)=A::fun;//定义指向类的成员函数的指针;3、(略)
本文标题:《C++面向对象程序设计语言》期末试卷及参考答案
链接地址:https://www.777doc.com/doc-1500542 .html