《2022年电大形成性考核册c第四次作业及答案.docx》由会员分享,可在线阅读,更多相关《2022年电大形成性考核册c第四次作业及答案.docx(12页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选学习资料 - - - - - - - - - 运算机应用专业 “ C+ 语言程序设计 ” 课程作业第四次作业一、填空题1.在定义类对象的语句执行时,系统在建立每个对象的过程中将自动调用该类的_ 构造函数 _ 使其初始化;2. 当一个类对象被撤消时将自动调用该类的 _ 析构函数 _;3. 对基类数据成员的初始化是通过执行派生类构造函数中的 _ 初始化表 _ 来实现的;4. 对一个类中的数据成员的初始化可以通过构造函数中的 _ 初始化表 _ 实现,也可以通过构造函数中的 _ 赋值语句 _ 实现;5. 在一个派生类中,对基类成员、类对象成员和非类对象成员的初始化次序的先 基类成员 ,后 类对象成
2、员 ,最终 非对象成员 ;6. 当撤消一个含有基类和类对象成员的派生类对象时,将第一完成 派生类本身 的析构函数定义体的执行,接着完成 类对象成员 的析构函数定义体的执行,最终完成 基类成员 的析构函数定义体的执行;7.设 PX 是指向一个类动态对象的指针变量,就执行“delete px ;” 语句时,将自动调用该类的 析构函数 ;8. 当一个类对象离开它的作用域时,系统将自动调用该类的 析构函数 ;9. 假定一个类对象数组为 AN ,当离开它的作用域时,系统自动调用该类析构函数的次数为 N 次;10.假定 AB 为一个类,就执行“ABa10; ”语句时,系统自动调用该类构造函数的次数为 10
3、 次;11.假定拥护没有给一个名为AB 的类定义构造函数,就系统为其隐含定义的构造函数为空构造函数 ;12.假定用户没有给一个名为AB 的类定义析构函数,就系统为其隐含定义的析构函数为空析构函数 ;13. 如需要把一个函数“void f ; ” 定义为一个类 AB 的友元函数,就应在类 AB 的定义中加入一条语句:friend void f;14. 如需要把一个类 AB 定义为一个类 CD 的友元类,就应在类 CD 的定义中加入一条语句: friend class AB;15. 假定一个类 AB 中有一个静态整型成员 bb ,在类外为它进行定义并初始化为 0时,所使用写法为 AB:bb = 0
4、;16. 假定类 AB 中有一个公用属性的静态数据成员 bb ,在类外不通过对象名拜访该成员 bb 的写法为 AB:bb;17. 当类中一个字符指针成员指向具有 n 个字节的储存空间时,它所能储存字符串的最大长度为 n-1 ;18. 假定 AB 为一个类,就该类的拷贝构造函数的声明语句为 AB:ABAB &;19. 对类对象成员初始化是通过执行构造函数中的 初始化表 完成的;20. 对于类中定义的成员,其隐含拜访权限为 private,对于结构中定义的成员,其隐1 / 8 名师归纳总结 - - - - - - -第 1 页,共 8 页精选学习资料 - - - - - - - - - 含拜访权限
5、为 public ;21.一个类的友元函数或友元类能够通过成员操作符拜访该类的全部数据成员和函数成员;22. 假定要对类 AB 定义加号操作符重载成员函数,实现两个 AB 类对象的加法,并返回相加结果,就该成员函数的声明语句为:AB operator +AB, AB;23. 在 C+ 流类库中,根基类为 ios ;24. 在 C+ 流类库中,输入流类和输出流类的名称分别为 istream 和 ostream;25. 如要在程序文件中进行标准输入输出操作,就必需在开头的 #inlude 命令中使用iosteam.h 头文件;26. 如要在程序文件中进行文件输入输出操作,就必需在开头的 #inlu
6、de 命令中使用fstream.h 头文件;27. 当从字符文件中读取回车和换行两个字符时,被系统看作为一个 换行符 ;28. 当使用 ifstream 流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为 读取的文本文件,当使用 ofstream 流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为 写入的文本文件;29. 当需要使用 istrstream 流类定义一个流对象并联系一个字符串时,应在文件开头使用 #include 命令,使之包含 strstrea.h 文件;二给出以下程序运行后的输出结果1 #include class A int a, b;public: A
7、 a=b=0; A int aa, int bb a=aa ; b=bb;bendl ;couta ;void main A x,y6,3, z8,10; 6 3 8 10 2#include class A int a, b;public: Aint aa= 0, int bb= 0: aaa,bbb coutConstructor! a + bendl; ;2 / 8 名师归纳总结 - - - - - - -第 2 页,共 8 页精选学习资料 - - - - - - - - - void main A x, y2,5, zy; Constructor.0 Constructor.7 3 #
8、include class A int * a;public: Aint aa= 0 a = new intaa;! * aendl;coutConstructor ;void main A x2;A * p = new A5;delete p; Constructor.0 Constructor.0 Constructor.5 4#include class A int a ;public: Aint aa= 0: aaa AcoutDestructor! a endl; ;void main A x5;A * p = new A10;delete p; Destructor.10 Dest
9、ructor.5 5 #include class A int * a;3 / 8 名师归纳总结 - - - - - - -第 3 页,共 8 页精选学习资料 - - - - - - - - - public: Aint x a = new intx;! * aendl;coutConstructor Adelete a; coutDestructor! endl; ;void main A x9,* p;p = new A12;delete p; Constructor.9 Constructor.12 Destructor. Destructor. 6#include class A in
10、t a ;public: Aint aa= 0: aaa coutConstructor A! aendl; ;class B:public A int b ;public: Bint aa, int bb: Aaa, bbb coutConstructor B! bendl; ;void main B x2,3,y4,5; Constructor A.2 Constructor B.3 4 / 8 名师归纳总结 - - - - - - -第 4 页,共 8 页精选学习资料 - - - - - - - - - Constructor A.4 Constructor B.5 7 #include
11、 class A int a ;public: Aint aa= 0a = aa; ! aendl; AcoutDestructor A ;class B:public A int b ;public: Bint aa= 0, int bb= 0: Aaab = bb; ; BcoutDestructor B!bendl ;void main B x5,y6,7; Deconstructor B.7 Deconstructor A.6 Deconstructor B.0 Deconstructor A.5 8 #include #include class A int a,b;char op;
12、public: Aint aa, int bb, char cha = aa;b = bb;op = ch; int Comp switchop case + :return a + b;else exit1;case - :return a - b;case * :return a * b;case / :ifb.=0return a/bcase % :ifb.=0return a%b;else exit1default:exit1; void SetAint aa, int bb, char ch 5 / 8 名师归纳总结 - - - - - - -第 5 页,共 8 页精选学习资料 -
13、- - - - - - - - a = aa;b = bb;op = ch; ;void mainvoid A x3,5,*;int a = x.Comp;x. SetA4,9, +;a += x.Comp;x. SetA13,8, %;a += x.Comp;couta=aendl; a=33 9 #include class B int a,b;public: Ba = b = 0; ;b = bb; Bint aa, int bba = aa B operator +B& x B r ;r . a = a + x . a;r . b = b + x . b;return r; B ope
14、rator -B& x B r ;r . a = a - x . a;r . b = b - x . b;return r; void OutB cout a b endl; ;void main B x6,5,y13,3, z1, z2;6 / 8 名师归纳总结 - - - - - - -第 6 页,共 8 页精选学习资料 - - - - - - - - - z1 = x + y; z2 = x - y; z1.OutB; z2.OutB; 19 8 -7 2 10 #include template class FF TT a1,a2,a3;public: FFTT b1, TT b2,
15、TT b3 a1 =b1;a2 =b2;a3 =b3; TT Sumreturn a1 + a2 + a3; ;void main FF x8,3,4,y5,9,11;cout x. Sum y. Sumendl; 15 25 二、写出以下每个函数的功能1 include include include void JA(char * fname)fname文件 / /可以把 fname所指字符串作为文件标识符的文件称为ofstream fout(fname );char a20;cin a;whlie (strcmp(a, ”end ”)! =0 )fout a a;将键盘输入的字符串(上限为
16、19 个字符)写入到fname文件中;2 include include void JB(char * fname)fname文件 / /可把以 fname所指字符串作为文件标识符的文件称为 / /假定该文件中储存着一批字符串,每个字符串的长度均小于20 ;7 / 8 名师归纳总结 - - - - - - -第 7 页,共 8 页精选学习资料 - - - - - - - - - ifstream fin( fname );char a20;int i = 0;whlie (fin a)cout a endl;i + +;fin.close();” i endl;cout ”i = 将 fnam
17、e 文件输出到标准输出流(屏幕)上,最终显示字符串的数量;3 include include void JC(chat * fname, int n)fname文件 / /可把以 fname所指字符串作为文件标识符的文件称为ofstream fout(fname, ios : : out | ios : : binary);int x ;for (int i = 0; I x;)&x, sizeoffout.write( char * fout.close();从键盘输入n 个数,并以二进制的方式写到fname文件中;4 include include void JD (char * fname)fname文件 , / /可把以 fname所指字符串作为文件标识符的文件称为 / /假定该文件储存着一批整数;ifstream fin( fname, ios : : in | ios : : nocreate | ios : : binary);int x, s = 0, n = 0;whlie (fin.read( char * )&x, sizeof(x)s + = x;n + +;cout n s (s)/nendl;fin.close();输出 fname 文件中储存的整数的个数、总加值以及平均值;8 / 8 名师归纳总结 - - - - - - -第 8 页,共 8 页
限制150内