C++语言程序设计复习课
一、第八章填空题
1.在定义类对象的语句执行时,系统在建立每个对象的过程中将自动调用该类的____________,使其初始化。答案:构造函数
2.当一个类对象被撤消时将自动调用该类的____________。答案:析构函数
3.对基类数据成员的初始化是通过执行派生类构造函数中的____________来实现的。答案:初始化表
4.对一个类中的数据成员的初始化可以通过构造函数中的初始化表实现,也可以通过构造函数中的____________实现。答案:函数体
5.在一个派生类中,对基类成员、类对象成员和非类对象成员的初始化的过程中,首先是对________成员初始化。答案:基类
6.当撤消一个含有基类和类对象成员的派生类对象时,将首先完成____________的析构函数定义体的执行。派生类
7.设px是指向一个类动态对象的指针变量,则执行”delete px;”语句时,将自动调用该类的____________。答案:析构函数
8.假定一个类对象数组为A[N],当离开它的作用域时,系统自动调用该类析构函数的次数为________。答案:N
9.假定用户没有给一个名为AB的类定义构造函数,则系统为其隐含定义的构造函数为____________。答案:AB(){}
10.假定用户没有给一个名为AB的类定义析构函数,则系统为其隐含定义的析构函数为____________。答案:~AB(){}
11.假定一个类AB中有一个静态整型成员bb,在类外为它进行定义并初始化为0时,所使用的语句为________________。答案:int AB::bb=0;
12.假定类AB中有一个公用属性的静态数据成员bb,在类外不通过对象名访问该成员bb的写法为____________。答案:AB::bb
13.如果一个派生类的基类不止一个,则称这种继承关系为____________。答案:多重继承
14.如果一个派生类只有一个唯一的基类,则称这样的继承关系为__________。答案:单继承
15.C++支持两种多态性:_________时的多态性和运行时的多态性。答案:编译
16.假定AA是一个类,“AA* abc();”是该类中一个成员函数的原型,则在类外定义时的函数头为__________________。答案:AA* AA::abc()
17.重载运算符时,其原有的__________、结合性以及操作对象的个数不允许改变。答案:优先级
18.一个双目运算符作为类的成员函数重载时有________个参数。答案:1
19.一个双目运算符作为独立函数重载时有________个参数。答案:2
二、第八章程序运行结果
1.#include<iostream.h>
class A {
int a,b;
public:
A() {a=b=0;}
A(int aa, int bb) {
a=aa; b=bb;
cout<<a<<' '<<b<<endl;
}
};
void main() {
A x,y(2,3),z(4,5);
}
答案:2 3 、4 5
2.#include<iostream.h>
class A {
int a,b;
public:
A(int aa=0, int bb=0): a(aa), b(bb) {
cout<<"Constructor!"<<a+b<<endl;
}
};
void main() {
A x,y(2,3),z(y);
}
答案: Constructor!0 、 Constructor!5
3.#include<iostream.h>
class A {
int* a;
public:
A(int aa=0) {
a=new int(aa);
cout<<"Constructor!"<<*a<<endl;
}
};
void main() {
A x[2];
A *p=new A(5);
delete p;
}
答案: Constructor!0 、 Constructor!0 、 Constructor!5
4.#include<iostream.h>
class A {
int a;
public:
A(int aa=0): a(aa) {}
~A() {cout<<"Destructor!"<<a<<endl;}
};
void main() {
A x(5);
A *p=new A(10);
delete p;
}
答案: Destructor!10 、 Destructor!5
5. #include<iostream.h>
class A {
int* a;
public:
A(int x) {
a=new int(x);
cout<<"Constructor!"<<*a<<endl;
}
~A() {delete a; cout<<"Destructor!"<<endl;}
};
void main() {
A x(3), *p;
p=new A(5);
delete p;
}
答案: Constructor!3 、 Constructor!5 、 Destructor! 、 Destructor!
6. #include<iostream.h>
class A {
int a;
public:
A(int aa=0): a(aa) {
cout<<"Constructor A!"<<a<<endl;
}
};
class B: public A {
int b;
public:
B(int aa, int bb): A(aa), b(bb) {
cout<<"Constructor B!"<<b<<endl;
}
};
void main() {
B x(2,3), y(4,5);
}
答案: Constructor A!2 、 Constructor B!3 、 Constructor A!4 、 Constructor B!5
三、第九章单选题
1.当使用ifstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为( )。答案:A
A. ios::in B. ios::out C. ios::in | ios::out D. ios::binary
2.当使用ofstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为( )。答案:B
A. ios::in B. ios::out C. ios::in | ios::out D. ios::binary
3.当使用fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为( )。答案:D
A. ios::in B. ios::out C. ios::in | ios::out D. 没有
4. 当需要使用istrstream流类定义一个流对象并联系一个字符串时,应在文件开始使用#include命令,使之包含( )文件。答案:D
A. iostream.h B. iomanip.h C. fstream.h D. strstrea.h
5.当需要使用ostrstream流类定义一个流对象并联系一个字符串时,应在文件开始使用#include命令,使之包含( )文件。答案:C
A. iostream.h B. stdlib.h C. strstrea.h D. fstream.h
四、第九章程序运行结果
1.#include<iomanip.h>
void main() {
int x=25,y=120;
cout<<"dec:"<<dec<<setw(10)<<x<<setw(10)<<y<<endl;
cout<<"oct:"<<oct<<setw(10)<<x<<setw(10)<<y<<endl;
cout<<"hex:"<<hex<<setw(10)<<x<<setw(10)<<y<<dec<<endl;
}
答案:
dec: 25 120 、oct: 31 170 、hex: 19 78
2. #include<iomanip.h>
void main() {
struct AB {char aa[15]; int bb;};
AB a[4]={{"Apple",25},{"Peach",40},//苹果、桃
{"Pear",36},{"Tomato",62}}; //梨、西红柿
cout.setf(ios::left);
for(int i=0;i<4;i++) {
cout<<setw(10)<<a[i].aa<<setw(10)<<a[i].bb<<endl;
}
}
答案:
Apple 25、 Peach 40、 Pear 36、Tomato 62
五、第九章每个函数功能
1.#include<iomanip.h>
#include<fstream.h>
#include<string.h>
void JA(char* fname) {
ofstream fout(fname);
char a[20]; cin>>a;
while(strcmp(a,"end")!=0) {
fout<<a<<endl; cin>>a;
}
fout.close();
}
答案:从键盘上输入一组字符串到fname所指字符串作为文件名的文件中,直到输入标志结束的字符串"end"为止。
2.#include<iomanip.h>
#include<fstream.h>
void JB(char* fname) {//假定文件中保存的每个字符串长度小于20
ifstream fin(fname);
char a[20]; int i=0;
while(fin>>a) {cout<<a<<endl; i++;}
fin.close();
cout<<"字符串个数:"<<i<<endl;
}
答案:向字符串文件fname中依次读取每个字符串并输出到屏幕上显示出来,同时统计并显示出文件中所含字符串的个数。
六、C++语言程序设计课程小结
1.数据类型:简单、引申、复合
简单:int、char、bool、float、double、void、枚举
引申:指针、引用、数组
复合:结构、联合、类
2.运算符:算术、比较、逻辑、赋值、成员、下标、函数、存储分配、指针(&、*)、类界定(::)、求类型长度(sizof)、等等。
3.运算对象:常量、变量、函数调用、表达式、数值、字符、逻辑、指针等数据类型。
4.语句:表达式、类型定义、变量或常量定义、选择、循环、跳转、复合、函数定义声明。
5.程序组成:程序文件->函数和类的定义->头和体。
6.文件:程序文件和数据文件
数据文件:字符文件和字节文件
打开方式:输入、输出、既输入又输出等
7.上机:编写程序、输入和编辑每个程序文件、编译(obj)、连接(exe)、运行。
8.编写程序:分析问题、得到解题思路和步骤、画出程序流程图、编写程序代码。整个5讲复习课到此结束,祝同学们通过努力学习取得好的成绩。
1.1填空
1.c++语言的前身是(c语言)
2.函数的定义格式是(类型修饰符 函数名(形式参数表)函数体
3.涂改test.cpp是一个源程序文件,则其中的主函数名是(main)
4.基本语句的特征是(以分号结尾)
5.一个复合语句的第一个字符是({)
6.cout与操作符(<<)配合可用于显示输出
7.cin与操作符(>>)配合可用于键盘输入
8.头文件的扩展名为(.h)
9.若应用程序的源程序文件的文件名是source.cpp,经编译生成的目标文件的文件名是(source.obj)
10.应用程序ONEFUNC.CPP中只有一个函数,这个函数的名称是(main)
11.已知一函数的定义是 int i,j;
char Hi(const char*s){cout<<"Hi!"<<s;return;} for(i=0;i<25;i++)
则该函数的原形(char Hi(const char*s);) for(j=0;j<25-i;j++)data[i][j]=1;
12.执行cin>>i>>j;cout<<i+j;,若键盘输入12 21,则屏幕上随后显示的是( for(i=0;i<25;i++)
#include<iomanip.h> {cout<<endl;
void main() for(j=0;j<25;j++)
{int data[25][25]={{0}}; cout<<setw(3)<<data[i][j];
来源:网络整理 免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。
相关文章:
首席风险官(),中国证券监督管理委员会及其派出机构可以采04-27
期货公司申请设立分支机构,应当向公司所在地中国证券监04-27
资产管理业务()等岗位必须相互独立,并配备专职业务人员,不04-27
下列关于期货交易所组织形式和注册资本的陈述,正确的有04-27
证券公司受期货公司委托从事介绍业务,应当提供的服务有04-27
外汇掉期交易中,如果发起方为近端卖出、远端买入,则()。A04-27
某美国机械设备进口商3个月后需支付进口货款3亿日元,则04-27
()人员不得担任期货公司独立董事。A在期货公司或者其关04-27