第03章 一个面向对象的C++程序实例
- 格式:ppt
- 大小:220.00 KB
- 文档页数:42


《面向对象程序设计》第03章在线测试
《面向对象程序设计》第03章在线测试 剩余时间: 53:29
答题须知:1、本卷满分20分。
2、答完题后,请一定要单击下面的“交卷”按钮交卷,否则无法记录本试卷的成绩。
3、在交卷之前,不要刷新本网页,否则你的答题结果将会被清空。
第一题、单项选择题(每题1分,5道题共5分)
1、类的指针成员的初始化是通过函数完成的,这个函数通常是
A、析构函数 B、构造函数
C、其它成员函数 D、友元函数
2、在 c++ 中实现封装是借助于 ( )
A、枚举 B、类
C、数组 D、函数
3、一段程序的定义如下,在函数f()中将动态对象的成员n的值改为34的语句应该为 ( ) class A { int n; public: setn(int nl) {n=nl;} A(int x) {n = x; } } int f() {A * ptr = new A(45);... }
A、A.n=34; B、ptr.setn(34);
C、ptr->setn(34); D、setn(34);
4、假定AB为一个类,则执行“AB *p=new AB(1,2);”语句时共调用该类构造函数的次数为( )。
A、0 B、1
C、2 D、3
5、假定AB为一个类,px为指向该类的一个含有n个对象的动态数组的指针,则执行“del_ete []px;”语句时共调用该类析构函数的次数为( )。
A、0 B、1
C、n D、n+1
第二题、多项选择题(每题2分,5道题共10分)
1、下面有关类说法正确的是( )
A、一个类可以有多个构造函数
B、一个类只有一个析构函数
C、析构函数需要指定参数 D、在一个类中可以说明具有类类型的数据成员
2、构造函数的初始化表一般用来( )
A、初始化常量数据成员
B、初始化子对象
C、初始化引用成员
D、初始化静态数据成员
3、下面关于构造函数的说法正确的是( )
C++程序设计实例
【例3.12】用下面公式求π的近似值。π/4≈1-1/3+1/5-1/7+…直到最后一项的绝对值小于10-7为止。根据给定的算法很容易编写程序如下:
. #include
. #include
. #include
. using namespace std;
. int main( )
. {
. int s=1;
. double n=1,t=1,pi=0;
. while((fabs(t))>1e-7)
. {
. pi=pi+t;
. n=n+2;
. s=-s;
. t=s/n;
. }
. pi=pi*4;
. cout<<"pi="<
. return 0;
. }
运行结果为
pi=3.141592
注意:不要把n定义为整型变量,否则在执行“t=s/n;”时,得到t的值为0(原因是两个整数相除)。
【例3.13】求Fibonacci数列前40个数。这个数列有如下特点:第1、2个数为1、1。从第3个数开始,每个数是其前面两个数之和。即:
F1=1 (n=1)
F2=1 (n=2)
Fn=Fn-1+Fn-2(n≥3)
这是一个有趣的古典数学问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第3个月后每个月又生一对兔子,假设所有兔子都不死,问每个月的兔子总数为多少?
根据给出的每月兔子总数的关系,可编写程序如下: . #include
. #include
. using namespace std;
. int main( )
. {
. long f1,f2;
. int i;
. f1=f2=1;
. for(i=1;i<=20;i++)
. {
. cout<
. //设备输出字段宽度为12,每次输出两个数
. if(i%2==0) cout<
. //每输出完4个数后换行,使每行输出4个数
. f1=f1+f2;
面向对象程序设计》第03章在线测试 剩余时间: 59:56
答题须知:1、本卷满分20分。
2、答完题后,请一定要单击下面的“交卷”按钮交卷,否则无法记录本试卷的成绩。
3、在交卷之前,不要刷新本网页,否则你的答题结果将会被清空。
第一题、单项选择题(每题1分,5道题共5分)
1、假定AB为一个类,则执行 “AB r1=r2;”语句时将自动调用该类的( )。
A、无参构造函数 B、带参构造函数
C、赋值重载函数 D、拷贝构造函数
2、假定 ab 为一个类,则执行 ab x ;语句时将自动调用该类的 ( ) 。
A、有参构造函数 B、无参构造函数
C、拷贝构造函数 D、赋值构造函数
3、类的构造函数被自动调用执行的情况是在定义该类的 ( )
A、成员函数时 B、数据成员时
C、对象时 D、友元函数时
4、一段程序的定义如下,在函数f()中将动态对象的成员n的值改为34的语句应该为 ( ) class A { int n; public: setn(int nl) {n=nl;} A(int x) {n = x; } } int f() {A * ptr = new A(45);... }
A、A.n=34; B、ptr.setn(34);
C、ptr->setn(34); D、setn(34);
5、假定AB为一个类,px为指向该类的一个含有n个对象的动态数组的指针,则执行“del_ete []px;”语句时共调用该类析构函数的次数为( )。
A、0 B、1
C、n D、n+1
第二题、多项选择题(每题2分,5道题共10分)
1、下列可以作为类的成员的是( )
A、自身类对象的指针
B、自身类对象
C、自身类对象的引用
D、另一个类的对象
2、下面关于成员函数的说法错误的是( )
A、类定义中只能说明函数成员的函数头,不能定义函数体
C++面向对象程序设计
实验指导书
(第三版)
(适用于理工科)
学 号:
姓 名:
班 级:
指导老师:
计算机系
2019年7月 实验1 C++程序的运行环境和运行C++程序的方法
一、实验目的和要求
1.熟悉VS2015的集成开发环境;
2.学会使用VS2015编辑、编译、连接和运行C++程序;
3.通过运行简单的C++程序,初步了解C++源程序的结构和特点;
4.学会使用简单的输入输出操作。
二、实验内容
1.编辑、编译、连接和运行以下的C++程序
#include
using namespace std;
int main()
{
cout<<"Hello!\n";
cout<<"This is a program."<
return 0;
}
2.编译下列程序,改正所出现的错误信息,并写出输出结果。
(1)#include
using namespace std;
int main()
{
cin>>a;
int b=3*a;
cout<<"b=<
return 0;
}
(2)
int main()
{ cout<<"Hello!\n";
cout<<"Welcome to C++!";
}
(3)
#include
using namespace std;
int main()
{
int x,y;
x=5;
y=6;
int z=x*y;
cout<<"x*y="<
return 0;
}
3.请填空完成以下程序,并上机调试正确,写出运行结果。
#include
using namespace std;
int add(int a,int b);
int main()
{
int x,y,sum;
cout<<"Enter two numbers:”<<’\n’;
//在下划线处填上语句,完成用cin读入x和y
_____________________