南师大C++ 期中复习习题.doc_第1页
南师大C++ 期中复习习题.doc_第2页
南师大C++ 期中复习习题.doc_第3页
南师大C++ 期中复习习题.doc_第4页
南师大C++ 期中复习习题.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

一、选择题(每题2分,共 20 分)1下面选项中不属于面向对象程序设计特征的是( C )。A.继承性 B.多态性 C.相似性 D.封装性2下列选项中不是C+中合法标识符的是( A )。A.4on1 B. Program C._page D.test23当调用函数时,实参是一个数组名,则向函数传送的是( B )。A. 数组的长度 B. 数组的首地址C. 数组每一个元素的地址 D. 数组每个元素中的值4下列函数重载不正确的写法是( B )A.int add (int x, int ) B. int add (int x, int y) int add (float , float) int add (int p, int q )C. int add (int x, int y)D. int add (int x, int y ) int add (int x, int y, int z) int add (int x, int y) const5已知函数f的原型为void f(int &a,char *b);,变量s,t的定义是:int s; char t=”ABCD”;把s和t分别作为第一参数和第二参数来调用函数f,正确的调用语句是_C_A.f(&s,&t);B.f(&s,t);C.f(s,t);D.f(s,&t);6下列关于类定义的说法中,正确的是( A )。A.类定义中包括数据成员和函数成员的声明B.类成员的缺省访问权限是保护的C. 数据成员必须被声明为私有的D.成员函数只能在类体外进行定义7类的析构函数是在什么时候调用的( C )。A.类创建时 B.创建对象时 C.删除对象时 D.不自动调用8.通常拷贝构造函数的参数是( C )A.某个对象名 B.某个对象的成员名C.某个对象的引用名 D.某个对象的指针名9. 下列运算符中,不能重载的是 ( )A.&B.!=C. .D.-10类中的下面哪种函数不是成员函数( D ) A.私有函数 B.公有函数 C.构造函数 D.友元函数阅读程序 #include using namespace std;void swap(int &a, int &b) int temp; temp=a; a=b; b=temp;void main() int i=3,j=5; swap(i,j); couti=i j=jendl;i=5 j=3下面程序的运行结果为 #include class A public: A()cout”1”; A()cout”2”; class B:public A public: B()cout”3”; B()cout”4”; void main() B b; 1342 #include using namespace std;class A public: A() a=b=0;coutDefault constructor called. n; A(int i,int j) a=i;b=j;coutConstructor called. n; void print ( ) couta=a,b = bendl;private: int a,b;void main() A m,n(4,8);m.print();n.print(); Default constructor called.Constructor called.a=0,b=0a=4,b=8分析下面的程序,写出其运行时的输出结果。#includeclass Sampleint x,y;public:Sample()x=y=1;Sample(int a,int b)x=a;y=b;Sample()if(x=y) coutx=yendl; else coutx!=yendl; void disp()coutx=,y=yendl;void main()Sample s1(2,3),s2;s2.disp();s1.disp();coutendl;答案:x=1,y=1 #include using namespace std;class Basepublic:virtual void fun()coutBase Classn;class Sub:public Basepublic:void fun()coutfun();void main()Base bc;Sub sc;test(&bc);test(&sc);Base classSub class #include using namespace std;class Apublic:A(int i=0)m=i;coutConstructor called.mendl;A(const A& other)m=other.m;coutCopy constructor called.mendl;void print( ) const coutmendl; A( ) coutDestructor called.endl; private:int m;A fun( A c)c.print( );return c;void main( ); ) fun( 5Constructor called.55Copy constructor called.5Destructor called.Destructor called.分析下面的程序,写出其运行时的输出结果。#includeclass Aint a,b;public:A(int i,int j);void printA();class B:A A c;int n;public:B(int i,int j,int k);void printB();B:B(int i,int j,int k):c(i,j) n=k;void B:printB()cout”n=”n”,”;c.printA();A:A(int i,int j)a=i;b=j;void A:printA() cout”a=”a”,b=”bendl;void main()B m(7,8,2);m.printB();答案:n=2,a=7,b=8分析下面的程序,写出其运行时的输出结果。#includeusing namespace std;class Data public: Data(int ,int ,int); Data(int,int); Data(int); Data( ); void display(); private: int month; int day; int year;Data:Data(int m,int d,int y):month(m),day(d),year(y)Data:Data(int m,int d):month(m),day(d)year=2005;Data:Data(int m):month(m) day=1;year=2005;Data:Data() month=1;day=1;year=2005;void Data:display() coutmonth/day/yearendl; int main() Data d1(10,13,2005); Data d2(12,30); Data d3(10); Data d4; d1.display(); d2.display(); d3.display(); d4.display(); return 0;答案:10/13/2005 12/30/2005 10/1/2005 1/1/2005#include#includeusing namespace std;/-class Date int year, month, day;public: void set(int y,int m,int d); bool isLeapYear(); void print();/-void Date:set(int y,int m,int d) year=y; month=m; day=d;/-bool Date:isLeapYear() return (year%4=0 & year%100!=0)|(year%400=0);/-void Date:print() coutyear-month-dayset(2000,12,6); if(dp-isLeapYear() (*dp).print();#includeusing namespace std;/-class Student static int number; string name;public: void set(string str) name = str; +number; void print() coutname students are number numbersn; ;/-int Student:number = 0; /静态数据成员在类外分配空间和初始化/-void fn() Student s1; s1.set(Jenny); Student s2; s2.set(Randy); s1.print();/-int main() Student s; s.set(Smith); fn(); s.print();/=阅读下列程序,指出下面程序的一处错误(指出错误的行数):10#include 20class Test30private:40int x,y=20;50public:60Test(int i,int j)x=i,y=j;70int getx()return x;80int gety()return y;90;100void main()110Test mt(10,20);120coutmt.getx()endl;130coutmt.gety()endl;140阅读下列程序,指出下面程序的一处错误#includeusing namespace std;/-class Xpublic: void f1() m=6; f2(); /- void f2();private: int m;/-void X:f2() coutData member: mendl; int m=7; coutLocal Variable: mendl; coutData member: X:mendl;/-int main() X x; x.f1();二、完善程序1.以下程序实现数据交换, #include void f1(【1】) /形参 int temp;temp = x;x=y;y = temp; void main ( )int a=5,b=9;f1(a ,b);couta=a,b=bendl ; 答案:【1】:int &x,int &y2. 请将下列类定义补充完整。class Basepublic:void fun()cout”Base:fun”endl;class Derived:public Basepublic: void fun() 【1】/显式调用基类的fun函数 cout Derived:funendl;答案:【1】:Base:fun()3 已知下列程序的输出结果是42,请将画线处缺失的部分补充完整。#includeusing namespace std;class Fooint value;public:Foo():value(0)void setValue(int value) 【1】=value;/给Foo的数据成员value赋值void print()coutmenber(); (*this).value this-valueFoo f;f.setValue(42);f.print();return 0;答案:【1】this-value 或 Foo:value4请根据提示,填写下面程序中的下划线处,使程序完整。#include #include using namespace std; class Pointpublic:Point(int xx=0, int yy=0) X=xx;Y=yy; countP+;Point(【1】Point &p) X=p.X;Y=p.Y; /声明拷贝构造函数int GetX() return X; /返回数据成员Xint GetY() return Y;void Move(float xOff,float yOff)X+=xOff;Y+=yOff;【2】Point() /声明析构函数的函数名 countP-; private:int X,Y; static int countP;/声明静态成员数据countP;int 【3】Point:countP=0; /静态成员countP初始化为0class Linepublic:Line(Point xp1, Point xp2);double GetLen()return len; private:Point p1,p2;/声明两个成员对象p1,p2double len;Line:Line(Point xp1, Point xp2): 【4】p1(xp1),p2(xp2) /利用xp1与xp2初始化内嵌对象p1与p2double x=double(p1.GetX()-p2.GetX();double y=double(p1.GetY()-p2.GetY();len=sqrt(x*x+y*y); /根据两端点距离计算线段长度void main()Point myp1(1,1),myp2(4,5); Line 【5】line(myp1,myp2); /以myp1、myp2为端点,利用构造函数建立一对象,对象名为line5、在下面的程序的横线处填上适当的语句,使该程序的输出为12#includeusing namespace std;class Basepublic:int a,b;Base(int i)a=i;class Derived:public Base int a; public: Derived(int x):Base(x),b(x+1) void show() 【1】;/输出基类数据成员a的值。 coutbendl;int main() Derived d(1);d.show();return 0;答案:【1】coutBase:a6、下面的程序中Student是基类,Graduate是派生类,它们都有display这个同名的函数。已知运行结果是:num:1001name:Liscore:87.5num:2001name:Wangscore:98.5pa

温馨提示

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

评论

0/150

提交评论