南航CA试卷.doc_第1页
南航CA试卷.doc_第2页
南航CA试卷.doc_第3页
南航CA试卷.doc_第4页
南航CA试卷.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第11页(共11页)本题分数30得 分一选择题: (每题2分,共30分,请将正确答案写在题号左边)1在下列成对的表达式中,运算结果类型相同的一对是( ) A72和7.02.0 B72.0和72C7.02和72 D7.02.0和7.02 2能正确表示“当x的取值在1, 10和200, 210范围内为真,否则为假”的表达式是( )A(x=1)&(x=200)&(x=1)|(x=200)|(x=1)&(x=200)&(x=1)|(x=200)|(x=210)3使用值传递方式将实参传给形参,下列说法正确的是( ) A引用类型形参不分配内存空间,仅仅是实参的别名 B引用类型形参分配内存空间,形参与实参占用不同的内存空间C指针类型形参分配内存空间,形参接受实参传递的数值D指针类型形参不分配内存空间,仅仅是实参的别名4若有宏定义:#define MOD(x, y) x%y 则执行以下语句后输出为( ) int z, a = 15, b = 100; z = MOD(b, a); cout z + +; A11 B10 C6 D宏定义不合法5若有以下定义和语句,则对数组元素a12的正确引用为( )。 int a23, (*p)3; p=a; A(*(p+1)2 B*p12 C*(p+1)2 D*(p+1)+26内联函数的特点是( )A减少代码量,加快访问速度 B减少代码量,减缓访问速度C增加代码量,减缓访问速度 D增加代码量,加快访问速度7C+类中定义的成员默认访问属性为( )Apublic BprivateCprotected Dfriend8类的私有成员可在何处被访问( )A本类的成员函数中 B本类及派生类的成员函数中C通过对象名在任何位置 D不可访问9对类A,拷贝构造函数的原型是( )AA:A(const A&); BA:A(const A *); CA:A(const A); DA:A( ); 10下列关于析构函数描述正确的是( )A可以重载 B函数体中必须有delete语句C返回类型必须是void类型 D不能指定返回类型 11如果类A被声明成类B的友元,正确的是( ) A类A的成员函数即为类B的成员函数B类B的成员函数即为类A的成员函数C类A的成员函数不可以访问类B的成员D类B不一定是类A的友元12this指针存在的目的是( )A保证基类公有成员在派生类中可以被访问B保证每个对象拥有自己的数据成员,但共享处理这些数据成员的代码C保证基类保护成员在派生类中可以被访问D保证基类私有成员在派生类中可以被访问13在公有继承的情况下,允许派生类直接访问的基类成员包括 ( ) A只能是公有成员 B公有成员和保护成员C公有成员、保护成员和私有成员 D只能是保护成员14下列关于虚函数的描述中,正确的是( ) A虚函数是一个static类型的成员函数B虚函数是一个非成员函数C基类中采用virtual说明一个虚函数后,派生类中相同原型的函数也是虚函数D派生类中的虚函数必须与基类中相同函数名的虚函数具有不同的参数个数或类型15下列关于运算符重载的描述中,正确的是( ) A运算符重载为成员函数时,若参数表中无参数,重载的是一元运算符B一元运算符只能作为成员函数重载 C二元运算符重载为非成员函数时,参数表中有一个参数 DC+中可以重载所有的运算符本题分数24得 分二写出下列程序的运行结果 (每题3分,共24分)1. #include void main( ) int x=4 ; if ( x+ 5) cout x ; else cout x-; 程序运行结果为: 。 2#include void fun(int &x,int y,int *z) intt=y;x=*z;*z=t; void main( )int a3=23,42,56;fun(a0,a1,&a2);cout a0 , a1 , a2endl; 程序运行结果为: 。 3. #include int dtoh (int c,int n)int i=0; while(n) ci+=n%16; n/=16; return(i);void main() int c20, n=698, i;i=dtoh (c,n);for(i-;i=0 ; i-) if (0=ci&ci=9)cout char (ci+0);else coutchar(ci-10+A); 程序运行结果为: 。4. #include#includeclass Student char Num10; char *Name; int Score; public: Student(char *nump, char *namep, int score) if(nump) strcpy(Num, nump); else strcpy(Num, );if(namep) Name=new charstrlen(namep)+1; strcpy(Name, namep);else Name=0;Score=score;coutConstructor Called!n;Student( ) if(Name) delete Name;coutDesturctor Called!n; void Show( )cout Num t Name t Score endl;void main( ) Student a(0409204, George, 90);a.Show( );程序运行结果为: 。5.#include class A int num1;static int num2;public:A() num1=1; num2-; coutnum1tnum2endl;static int getnum(A &n1)return n1.num1+num2;int A:num2=5;void main() A n1,n2; coutA:getnum(n1)endl;程序运行结果为: 。6. #include class Aprotected: int x;public:A(int a=0)x=a;void Show( ) cout A:x= x n ; ;class B : public Aprotected:int x; public:B(int a,int b) :A(a) x=b;void Show( ) coutB:x=xendl; ;void main(void)B b(2,8); b.A:Show( ); b.Show( ); 程序运行结果为: 。7.#include class Sampleint x, y;public: Sample( int a=0, int b=0)x=a; y=b; coutx,y default constructorn;Sample( Sample &s )x=s.x; y=s.y;coutx,y copy constructorn;Sample( ) coutx,yadd( ); delete ptr;程序运行结果为: 。8.#include class A int x;public: A() x=10; virtual void print() cout”x=”xt; ;class B:public A int y;public:B() y=20; void print() cout”y=”yt; ;class C:public A int z;public:C() z=30; void print() cout”z=”zprint(); pa=&b; pa-print(); pa=&c; pa-print(); 程序运行结果为: 。 本题分数16得 分三完善程序(每空2分,共16分)1以下程序是用选择法对对数组a中的元素按由小到大顺序排序。请填空:#include void sort(int a,int n) int i,j,p, t; for(i=0;in-1;i+) (1) ; for( j=i+1; jn; j+) if( (2) ) p=j;if (p!=i) t=ai;ai=ap;ap=t; void main() int a10=2,6,9,4,1,7,14,18,56,5, i,n=10; (3) ; for(i=0;in;i+) coutai ; 2. 请完善程序,实现链表操作:#include class Nodeint data;(4) ;public:friend class List;class List Node *head;public:List(int d)head = new Node;head-data = d;head-next = NULL;List( )head = NULL; void print( ) /输出链表Node *p;p=head;while(p!=NULL)coutdatanext;delete p;void main()List a(100);a.print();3.将数值1100及其平方根写入文件 sqrttable.txt #include (6) #include void main( )double x;ofstream out; (7) ; for(x=1; x=100; x+)outxtsqrt(x)endl; (8) ; 四编程题(每题10分,共30分)1编写一个函数void my_strcpy(char s1,char s2),将数组s2中的字符串复制到数组s1中。要求:(1)必须自己编写函数实现字符串复制,不可调用系统strcpy函数。(2)在主函数中输入两个字符串,调用my_strcpy函数实现字符串复制,并在主函数中将复制后的字符串s1的内容输出。2定义平面点Point类,用友元函数分别实现点类的前置+和后置+运算符的重载。 要求:(1)定义平面点类(Point):私有数据成员:int x,y; 构造函数:完成点的初始化友元函数:实现前置+运算符的重载友元函数:实现后置+运算符的重载函数:在屏幕上显示点的坐标(2)在主函数中建立4个Point对象p1,p2,p3,p4。p1的默认值为(2,3),在生成p2对象的时候,使用p1初始化p2对象。分别使用重载运算符计算+p1和p2+的值,将计算结果先后赋值给p3和p4对象,最后分别输出p1,p3和p2,p4的值。3定义直角坐标系上的一个点Point类,并作为基类,派生出描述一个直线Line类(两点坐标确定一条直线),再派生出一个矩形Rectangle类(左上角和右下角坐标确定一个矩形)。在主函数中计算并且输出直线的长度和矩形的面积。各类成员的具体要求如下:点类(Point)(1)保护数据成员:int x,y;(2)构造函数:完成点的初始化。线类(Line):公有继承点类(1)保护数据成员:int x1,y1; 第二个点的坐标(2)构造函数:完成点的初始化。(3)函数:float LineLen(); 求线的长度矩形类(Rectangle):公有继承点类(1)保护数据成员:int x1,y1; 右下角的坐标(2)各类构造函数:完成点的初始化。(3)函数:float Area(); 求矩形的面积一、 选择题(每题2分,共30分)1-5 DCABA 6-10 DBAAD 11-15 DBBCA二、试写出下列程序的输出结果(每题3分,共24分)1)5 2)56,42,42 3)2BA 4) Constructor Called!0409204 George 90Desturctor Called! 5)1 46)A:x=2 1 3B:x=8 47)1,2 default constructor1,2 copy constructor2,3 default constructor12,13 destructor1,2 destructor1,2 destructor 8)x=10 y=20 z=30三、填空题(每题2分,共16分)(1) p=i(2) ajnext (6) #include (7) out.open(sqrttable.txt ) (8) out.close()四、编程题(每题10分,共30分)1.#include void my_strcpy(char s1,char s2) int i;for(i=0;s2i!=0;i+) s1i=s2i;s1i=0; void main()char a20,b10; cinab; my_strcpy(a,b); couta=aendl; 2. #include class Pointint x,y; public: Point(int a=0,int b=0) x = a;y = b;friend Point operator +(Point &m) return Point(+m.x,+m.y);friend Point operator +(Point &m,int) Point t=m;m.x+;m.y+;return t;void Show()coutx=xy=yendl; ;void main()Point p1(2,3),p3,p4; Poin

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论