void fnPrint(int a[]) { cout<<\排序后的成绩是:\ for(int i=0;i void fnPrint(float a[]) { cout<<\排序后的成绩是:\ for(int i=0;i 7. 中国古代数学家张丘建在他的《算经》中提出了著名的“百钱百鸡” 问题:鸡公一,值钱五,鸡母一,值钱三,小鸡,三只值钱一,百钱买百鸡,问公、母、小鸡各几只? #include \void main() { int a,b,c; for(a=1;a<100/5;a++) for(b=1;b<100/3;b++) for(c=3;c<99;c+=3) { if(a+b+c == 100 && a*5+b*3+c/3 == 100) cout<<\鸡公=\鸡母=\小鸡=\ } } 第6章 类与对象 一、单选题 1. 假设AA为一个类,a为该类公有的数据成员,x为该类的一个对象,则访问x对象中数据成员a的格式为( D )。 A. x(a) B. x[a] C. x->a D. x.a 2. 假设AA为一个类,a()为该类公有的成员函数,x为该类的一个对象,则访问x对象中成员函数a的格式为( A )。 A. x.a() B. x.a C. x->a D. a.x() 3. 假设AA为一个类,a为该类私有的数据成员,GetValue()为该类的一个公有成员函数,它返回a的值,x为该类的一个对象,则访问x对象中数据成员a的格式为( D )。 A. x.a B. x.a() C. x->GetValue() D. x.GetValue() 4. 类中定义的成员默认为( B )访问属性。 A.public B. private C. protected D. friend 5. 下列各类函数中,( C )不是类的成员函数。 A.构造函数 B. 析构函数 C. 友元函数 D. 拷贝构造函数 6.不是构造函数的特征的是( D )。 A.构造函数名与类名相同 B. 构造函数可以重载 C.构造函数可以设置默认参数 D. 构造函数必须指定类型说明 7.下列选项中,为析构函数的特征的是( A )。 A.一个类中只能定义一个析构函数 B. 析构函数名与类名不同 C.析构函数的定义只能在类体内 D. 析构函数可以有一个或多个参数 8.下面关于成员函数特征的描述中,错误的是( A )。 A. 成员函数一定是内联函数 B. 成员函数可以重载 C.成员函数参数可以设置默认 D. 成员函数可以是静态的 9.以下有关友元函数的描述中,错误的是( B )。 `` A. 友元函数不是成员函数 B. 友元函数加强了类的封装性 C. 在友元函数中可以访问所属类的私有成员 D. 友元函数的作用是提高程序运行效率 10.已知一个类A,可以定义类A的对象或定义类A的指针,下列一定不正确的形式是( C)。 A.A a1; B. A a2(12); C. A a3(); D. A *p = new A; 二、填空题 1. 解释类和对象有什么区别是( )。 2.C++关键字private和public有什么区别是( )。 3.在成员函数中,可以通过( )指针访问一个对象的数据。 4. C++中,虽然友元提供了类之间进行数据访问的快捷方式,但它破坏了面向对象程序设计的( 类信息隐蔽性)特性。 5. 写出下例程序的运行结果。 #include void main() { } Sample c1(1),c2(3); cout<<&c1<<\c1.Display(); //B c2.Display(); //C int x; Sample(int a=0) { this->x = a; } void Display() { cout< public: 若A行输出是0x0012FF7C,0x0012FF78,则B行和C行的输出是( 1,0x0012FF7C;3,0x0012FF78 )。 三、编程题 1.设计一个表示学生信息类,其中包括:姓名、年龄和3门课程的成绩,并可设置学 生的相关信息,显示学生的信息。 #include \#include \void main(void) { class MyScore { private: char name[16]; int age; int score1,score2,score3; public: void SetData(char *n,int a,int s1,int s2,int s3) { strcpy(name,n); age = a; score1=s1;score2=s2;score3=s3; } void Display() { cout< MyScore a; a.SetData(\ a.Display(); } 2.使用成员函数重载设计一个求面积的类,包括圆、三角形和梯形。并设计一个输入成员函数和输出成员函数。 class Area { public: double r,a,b,h,s; double MyArea(double); double MyArea(double,double ); double MyArea(double,double,double); void MyInput(); void MyPut(); }; //类中成员函数的实现: double Area::MyArea (double r) { double s; s = 3.14*r*r; return s; } double Area::MyArea (double a,double h) { double s; s = 0.5*a*h; return s; } double Area::MyArea (double a,double b,double h) { double s; s = (a+b)*h/2.0; return s; } void Area::MyInput() { cin>>r>>a>>b>>h; } void Area::MyPut() { cout< { if(score>=60)cout<<\ else cout<<\ } public: Grade(char *n,int s=0) { strcpy(name,n); score = s; } void PrintData() { cout<<\ isPass(); } }; void main() { Grade a(\ a.PrintData(); b.PrintData(); c.PrintData(); } 4.定义一个类Cat,拥有静态数据成员HowMangCats,记录Cat的个体数目;静态成员函数GetHowMang,存取HowMangCats。设计程序测试这个类,体会静态数据成员和静态成员函数的用法。 #include \class Cat { public: static int HowMangCats; Cat() { HowMangCats++; } static int GetHowMang() { return HowMangCats; } }; int Cat::HowMangCats =0; void main()

