




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
(一)读程序题1类中包括其他类的对象成员,构造函数中要列出成员对象名带实参,生成该类对象时,要先调用成员对象的构造函数。如果是成员对象的缺省构造函数可以不列,但生成该类对象时,仍要先调用成员对象的缺省构造函数。1. 如下程序运行时的输出结果是 1135 。#includeclass ONEint c;public: ONE():c(0)cout1; ONE(int n):c(n)cout3; ;class TWO:public ONE ONE one1; ONE one2;public: TWO(int m):one2(m)cout5; ;void main()TWO t(2);二派生类构造函数中要列出基类名带实参,生成派生类对象时,要先调用基类的构造函数,再调用派生类的构造函数。冲突规则与支配规则。2. 如下程序运行时的输出结果是 。#include class Apublic: int x;A()x=10;A(int i) x=i;void Show()cout x=xtAn;class Bpublic:int y;B()y=30;B(int i) y= i;void Show()couty=ytBn;class C: public A,public Bpublic:int y;C(int a,int b,int c):A(a),B(b+30)y= c;void Show()couty=ytCn;void main(void) C c1(20,30,40);c1.y=10;c1.Show (); c1.A:Show(); c1.B:Show();三派生类中包含对象成员,构造函数中要列出基类名带实参,再列出成员对象名带实参,生成派生类对象时,要先调用基类的构造函数,再调用成员对象的构造函数,最后调用派生类的构造函数。如果是调用基类或成员对象的缺省构造函数可以不列,但生成派生类对象时,仍要先调用基类的缺省构造函数,再调用成员对象的缺省构造函数。构造函数与析构函数调用顺序相反。3如下程序运行时的输出结果是 。#include class A public : A( ) coutA() n; A( ) coutA() n; ; class B public: B( ) coutB()n; B( ) coutB() n; ; class C: public B,public A A a;public : C( ) coutC() n; C( ) coutC()n; ; void main( ) C c1;4如下程序运行时的输出结果是 。#include class Apublic:A()coutAendl;class TA a;public:T()coutTendl;class X:public AT t;public:X()coutXendl;void main()X ob;三虚基类5. 下列程序运行后的输出结果是 。#includeclass Apublic: A() coutA n; A() coutA n; ; class B:virtual public Apublic: B():A() coutB n; B() coutB n; ; class C:public virtual Apublic: C():A() coutC n; C() coutC n; ; class D:public C,public Bpublic: D():B() , C(), A() coutD n; D() coutD n; ; void main() D d1; 6. 下列程序的输出结果是 。#includeclass Apublic: A() coutA n; A() coutA n; ; class B: public Apublic: B():A() coutB n; B() coutB n; ; class C:public Apublic: C():A() coutC n; C() coutC n; ; class D:public C,public Bpublic: D():B() , C() coutD n; D() coutD n; ; void main() D d1; 7. 下列程序的输出结果是 。#include#includeclass Bchar str20;public:B (char *s=default) strcpy(str,s); coutstrendl; ;class Ih1:public virtual Bchar str120;public:Ih1(char *s1, char *s2): B (s1)strcpy(str1,s2);coutstr1endl; ;class Ih2: public virtual Bchar str220;public:Ih2(char *s1, char *s2): B (s1)strcpy(str2,s2);couts2endl;class Ih3: public Ih1, public Ih2char str320;public:Ih3(char *s1, char *s2, char *s3, char *s4): Ih1(s1,s2),Ih2(s1,s3)strcpy(str3,s4); coutstr3endl;void main()Ih3 h3(abc,def,ghi,jkl);四运行时多态8下列程序的输出结果是 。#include class Apublic:virtual void f1( ) cout类A中的f1n;virtual void f2( ) cout类A中的f2n;void f3( ) cout类A中的f3n; class B:public Apublic:void f1( ) cout类B中的f1n;void f2(int) cout类B中的f2n;void f3( ) coutf1( ); p-f2( ); p-f3( );9. 如下程序运行时的输出结果是 。 #include class A public: virtual void f( )cout1; void g( ) cout2; ; class B: public A public: virtual void f( ) cout3; void g( ) coutf(); p-g(); void main( ) B b; show(b);print(&b); 10. 如下程序运行时的输出结果是 。#include #include class Ppublic:P(char *s)name=new charstrlen(s)+1;strcpy(name,s);virtual void print()coutI am namen;P()delete name;protected:char *name;class S:public Ppublic:S(char *s,double g):P(s)gj=g;void print(int k)coutname is gj*kendl;private:double gj;class F:public Ppublic:F(char *s,int n):P (s)pub=n;void print() coutname published pubprint();p=&stud; p-print();p=&prof; p-print();stud.print(a);11. 如下程序运行时的输出结果是 。#include class Aint x, n;int mul;public:A(int a, int b)x=a; n=b; mul=10;virtual int power(void)mul=1;for(int i=1;i=n; i+)mul*=x;return mul;void show(void)coutxtntmulendl; ;class B: public Aint y, m;int p;public:B(int i, int j, int k, int h):A(i,j)y=k; m=h; p=10; int power(void)p=1;for(int i=1; i=m;i+)p*=y;return p;void show(void)A:show();coutytmtpendl;void fun(A *f)coutpower()n; void main()A a(4,3),*p;B b(2,4,3,3);p=&a; fun(p);p=&b; fun(p);b.show();12.如下程序运行时的输出结果是 。#includeclass Animal public: virtual char * getType( ) return “Animal”; virtual char * getVoice( ) return “Voice”; ;class Dog: public Animal public: char * getType( ) return “Dog”; char *getVoice( ) return “Woof” ;void type( Animal &a) couta.getType( );void speak(Animal a) couta.getVoice( );void main( ) Dog d; type(d); cout”speak”; speak(d); coutendl; 五友元函数13.#includeclass Sample friend long fun(Sample s); public: Sample(long a) x=a; private: long x;long fun(Sample s) if (s.x2) return 1; return s.x*fun(Sample(s.x-1);void main()int sum=0;for(int i=0;i5;i+) sum+=fun(Sample(i);coutsum;六运算符重载14写出运算符重载函数调用形式。class A int m, n;public: A( int x=0, int y=0) m=x; n=y; A operator+( ) +m; +n; return *this; A operator+(int) A t= *this; +(*this); return t; friend A operator - -( A &t) -t.m; -t.n; return t;friend A operator - -(A &t, int) A temp=t; -t.m; -t.n; return temp; void main( ) A a1(1,2), a2(3,4),a3, a4; a3=+a1; / a4=a2+; / a3=-a1; / a4=a2-; / 15. 写出运算符重载函数调用形式。class Complex int yuan, jiao, fen; public: Complex( int y=0,int j=0,int f=0) yuan=y; jiao=j; fen=f; operator float( ); ; Complex:operator float( ) float amount; amount=(yuan*100.0+jiao*10.0+fen)/100; return amount; void main ( ) Complex d1(10, 20, 30); float s1; s1=d1; / 16如下程序运行时的输出结果是 。定义一个数组类Array,通过成员函数重载“+=”运算符,通过友元函数重载“- =”运算符,实现数组的加等、减等运算。具体要求如下:(1)私有数据成员lfloat *pa;/表示一维数组lint n;/数组的大小(2)公有成员函数lArray(float *p,int x):构造函数,以形参初始化数据成员;lvoid operator+=(Array &t):实现数组对象的加等运算;lfriend void operator-=(Array &t1,Array &t2):实现数组对象的减等运算;lvoid print():以每行5个元素的格式输出数组;l Array():析构函数,释放动态内存。(3)对所定义的类进行测试。#includeclass Arrayfloat *pa;int n;public:Array(float *p,int x)n=x;pa=new floatn;for(int i=0;in;i+)pai=pi;/Avoid operator+=(Array &t)for(int i=0;in;i+)pai+=t.pai;/Bfriend void operator-=(Array &t1,Array &t2)for(int i=0;it1.n;i+)t1.pai-=t2.pai; /Cvoid print()for(int i=0;in;i+)coutpait;/Dif(i+1)%5=0)coutn;Array()delete pa;void main()float a10=1,2,3,4,5,6,7,8,9,10,b10=0,1,2,3,4,5,6,7,8,9;Array a1(a,10),a2(b,10);a1+=a2;a1.print();a1-=a2;a1.print();一、函数编程1.求素数问题:定义函数判断一个整数是否为素数,求300以内的素数,每行3个数形式输出。2.最大公约数和最小公倍数问题:求两分数之和并输出结果,要求:将求最小公倍数和最大公约数设计成独立的函数。(提醒:分子、分母可分别用两个整型变量表示。之和的分母就是两分数分母的最小公倍数;输出示例: cout3”/”7; 就完成了分数3/7的输出显示。)3.一维数组排序与元素移动综合题:(1)定义整型数组a10,从键盘输入10个数为数组赋值,并分别定义两个独立函数,void print(int b)实现将一维数组元素输出,void sort(int b,int n)实现将一维数组的元素按从小到大排序(用两种方法实现)。最后在主函数中分别调用两个函数。4.二维数组与元素移动:(1)定义一个二维数组int b23,从键盘输入为二维数组赋值,将二维数组中按列循环前移或后移一位,并以矩阵形式输出二维数组元素。(2)定义一个二维数组,int a44,求其外围元素之和与对角线之和,并以矩阵形式输出二维数组元素。(求和用两种方法实现)5.字符串处理:设计一个通用函数实现在字符串s1中从第m个字符开始插入字符串s2,在主程序中对该函数进行测试。初始状态:s1: abcdefg s2: 1234输入插入字符串的位置:3目标状态:s1: ab1234cdefg s2: 12346.拼数与合数问题:(1)在主函数中定义一个一维数组a4用来存放4个整型数3,12,0,1,并依次输出一维数组中的元素。(2)依次取出数组中的元素,利用合数算法将这些元素合成一个数,要求合数的过程写成独立函数的形式,编写int fun(int b,int n)函数,其中b为一维数组,n为b数组中包含的元素个数。该函数用来实现合数过程,并在主函数中调用该函数,并在主函数中输出合成之后的数。7.数字字符与整数转换算法:将字符串#ab78c15fk23d*中整型数据提取出来,合成一个整型数781523并输出来。再将781523整数的各个数位数字拆开存放到一维数组int b10中,并将一维数组中的元素转换为数字字符存放到字符数组s100中,并输出该数字字符串325187.8.字符数组:(1)定义一个字符数组char s100=abc123;定义两个函数分别实现将字符串逆序排序和按照字符的ASCII码从小到大排序,输出并操作后的字符串。(2)定义两个字符数组:char s1100=apple,s2100=tree;将两个字符数组拼接成一个字符串(不用拼接函数),并输出拼接前和拼接后的两个字符串。9.请从键盘输入一个正整数,求这个数是几位数,并求出该正整数的各个位上的数字之和。如输入1234,该正整数是4位数,各个数位上的数字之和为10.10、循环结构:请从键盘输入一个正整数,求这个数是几位数,并求出该正整数的各个位上的数字之和。如输入1234,该正整数是4位数,各个数位上的数字之和为10.11、从键盘上输入一个整数n的值,按下式求出y的值,并输出n和y的值。 y=1!+2!+3!+ +n!12、求1-1/2+1/3-1/4+1/99-1/100的和。13、求1+1/1!+1/2!+1/10!的和14、从键盘输入一个整数n,将该整数的每一位上的数字拆开,存放到一维数组int a10中,该过程用独立函数形式实现。并将一维数组中的元素取出合成一个数,并输出合成的数和一维数组元素。如n:1234,存放到一维数组中的顺序为4 3 2 1,合成一个数为4321。二、类的编程:用类解决实际问题的方法分三个步骤,如下:1、定义类的框架2、公有成员函数的实现3、在主函数中测试类(用类定义对象,并用对象调用成员函数)(一)数据成员为一维数组时问题描述如下:(1)定义一个类Array, 它的数据成员和成员函数如下: 私有数据: int b10,int m; 公有成员函数: Array(int t);/功能为一维数组b初始化 Void fun();/ 求一维数组b的最大值为m void sort();/功能为实现对一维数组从大到小排序 void move();/ 功能为将一维数组元素循环后移一位 void print();/功能为输出一维数组元素(2)用类定义对象arr,并用对象arr调用成员函数,实现对一维数组元素排序和数组元素循环后移一位,并输出每次操作的结果。(二)数据成员为二维数组时1、问题描述如下:(1)定义一个类Array, 它的数据成员和成员函数如下: 私有数据: int a45; int s; 公有成员函数:Array(int t5);/功能为二维数组b初始化 void sum();/ 功能为求二维数组b外围元素之和为s void fun();/对二维数组b按列前移 void print();/功能为以矩阵形式输出二维数组元素(2)用类定义对象array,并用对象array调用成员函数求出二维数组外围元素之和,按列前移,再求二维数组外围元素之和,输出二维数组元素。2、问题描述如下:(1)定义一个类Array, 它的数据成员和成员函数如下: 私有数据: int b44; int s; 公有成员函数:Array(int t4);/功能为二维数组b初始化 void sum();/ 功能为求二维数组b对角线元素之和为s void fun();/将二维数组b最小元素所在的列与第0列对调 void print();/功能为以矩阵形式输出二维数组元素(2)用类定义对象array,并用对象array调用成员函数求出二维数组对角线元素之和,对调最小元素所在的列与第0列,输出二维数组元素。(三)数据成员为字符数组时问题描述如下:定义一个字符串类String,将字符串b拼接到字符串a中,(不能用拼接函数)。具体要求如下:(1)私有数据成员char a100,b100;(2)公有成员函数String(char c,char d):构造函数,用参数初始化数据成员void fun():功能函数,实现将b拼接到a的后面void insert(int m);实现将字符数组b中的字符串插入到字符数组a中的第m个字符的位置。void show():功能函数, 输出数据成员(3)用数据123456789,abc在主函数中对类测试。(四)数据成员为指针变量时1、定义一个字符串类String,为指针变量p动态申请空间,并初始化。对p所指向的字符串进行逆序操作。具体要求如下:(1)私有数据成员 char *p; (2)公有成员函数 String(char *t):构造函数,用参数初始化数据成员 void fun():功能函数,实
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年人工智能算法面试题及答案指南
- 2025年初级别炼油操作工实操技能提升课程试题及答案
- 2025年心理咨询师高级面试模拟题详解及案例分析
- 2025年初级水利工程管理技能提升与模拟题集详解
- 真菌课件教学课件
- 2025年职业技能汽车修理工汽车修理工(初级)-汽车修理工(高级)参考题库含答案解析
- 看日历课件作品简介
- 2025年职业技能安全生产主要负责人金属非金属矿山(地下矿山)-危险化学品生产单位参考题库含答案解析
- 2025年职业技能保健调理师初级工-基础知识参考题库含答案解析
- 2025年特种作业类特种设备作业-大型游乐设施操作Y2参考题库含答案解析
- 固定翼无人机机身设计
- 2024-2025学年成都市锦江区数学五年级第二学期期末经典试题含答案
- 科技助力下的老年人健康生活
- 《光电显示应用技术》课件-第一章 显示技术基础
- 2019保障性住房设计标准共有产权保障住房和征收安置房分册
- 【大学课件】电子商务概述
- 2025年内蒙古呼伦贝尔农垦拉布大林上库力三河苏沁农牧场有限公司招聘笔试参考题库附带答案详解
- 临时用工安全培训课件
- 布料工厂转让合同范例
- 2025第九届中小学生“学宪法、讲宪法”活动竞赛题题库(含答案)
- 博物馆室内装修质量保证体系方案
评论
0/150
提交评论