- 一、判断题
- 二、单选题
- 三、填空题
- 四、程序填空题
- 五、函数题
- 6-1 定义一个矩形类(C++构造函数)
- 6-2 设计一个三角形Triangle类(C++构造函数)
- 六、编程题
- 7-1 模拟EXCEL排序
1.C++程序中,类的构造函数名与类名相同。(T)
2.在C++语言中引入内联函数(inline function)的主要目的是降低空间复杂度,即缩短目标代码长度。(F)
3.形参 int fun(int a=1,int b,int c=2)合法 (F)
二、单选题2-1
下列函数中,( C)不能重载。
A.成员函数
B.非成员函数
C.析构函数
D.构造函数
2-2
下列对重载函数的描述中,(A )是错误的。
A.重载函数中不允许使用默认参数
B.重载函数中编译根据参数表进行选择
C.不要使用重载函数来描述毫无相干的函数
D.构造函数重载将会给初始化带来多种方式
2-3
在下面类声明中,关于生成对象不正确的是(C )。
class point
{ public:
int x;
int y;
point(int a,int b) {x=a;y=b;}
};
A.point p(10,2);
B.point *p=new point(1,2);
C.point *p=new point[2];
D.point *p[2]={new point(1,2), new point(3,4)};
2-4
设A为自定义类,现有普通函数int fun(A& x)。则在该函数被调用]时:( C)
A.将执行复制构造函数来初始化形参x
B.仅在实参为常量时,才会执行复制构造函数以初始化形参x
C.无需初始化形参x
D.仅在该函数为A类的友元函数时,无需初始化形参x
2-5
析构函数可以返回:(D)
A.指向某个类的指针
B.某个类的对象
C.状态信息表明对象是否被正确地析构
D.不可返回任何值
2-6
建立一个类对象时,系统自动调用(A)
A.构造函数
B.析构函数
C.友元函数
D.成员函数
2-7
在下列关键字中,用以说明类中公有成员的是( A)。
A.public
B.private
C.protected
D.friend
2-8
有关类和对象的说法下列不正确的有( C)。
A.对象是类的一个实例
B.任何一个对象只能属于一个具体的类
C.一个类只能有一个对象
D.类与对象和关系与数据类型和变量的关系相似
2-9
下列属于类的析构函数特征的是(A)
A.一个类中只能定义一个析构函数
B.析构函数名与类名不同
C.析构函数的定义只能在类体内
D.析构函数可以有一个或多个参数
2-10
下列各类函数中,不是类的成员函数的是( C)
A.构造函数
B.析构函数
C.友元函数
D.拷贝构造函数
1.基本概念
类是对象的抽象,而一个对象则是其对应的一个 实例。
2.基本概念在面向对象程序设计方法中,对象是系统中用来描述客观事物的一个实体,它由
数据 和可执行的一组操作共同组成。
3.(4分)A member with the same name as its class is called a constructor. A constructor declaration specifies an argument list (exactly as for a function) but has no return type. The name of a class cannot be used for an ordinary member function, data member, member type, etc., within the class.
4.(2分)A constructor’s job is to initialize an object of its class.
四、程序填空题暂无
五、函数题 6-1 定义一个矩形类(C++构造函数)分数 10
作者 张德慧
单位 西安邮电大学
设计一个名为Rectangle的矩形类,这个类包括:两个名为width和height的double数据域,它们分别表示矩形的宽和高。width和height的默认值都为1.该类包括矩形类的无参构造函数(默认构造函数);一个width和height为指定值的矩形构造函数;一个名为getArea( )的函数返回矩形的面积;一个名为getPerimeter( )的函数返回矩形的周长。请实现这个类。
类名为:
Rectangle
裁判测试程序样例:
在这里给出函数被调用进行测试的例子。例如:
#include
using namespace std;
//你提交的代码将嵌入到这里
int main()
{
double m,n;
cin>>m;
cin>>n;
Rectangle a(m,n);
cout< cout< return 0;
}
输入样例:
3.5 35.9
输出样例:
125.65
78.8
class Rectangle
{
private:
double width;//宽
double height;//高
public:
Rectangle()//无参构造函数
{
width=1;
height=1;
}
Rectangle(double x,double y)//有参构造函数
{
width=x;
height=y;
}
double getArea()//得到面积
{
double area;
area=width*height;
return area;
}
double getPerimeter()//得到周长
{
double perimeter;
perimeter=2*(width+height);
return perimeter;
}
};
6-2 设计一个三角形Triangle类(C++构造函数)
分数 10
作者 张德慧
单位 西安邮电大学
设计一个三角形Triangle类。这个类包括: 两个名为width和height的double型数据域,它们分别表示三角形的底宽和高。一个为width和height指定初值的构造函数。 一个名为getArea()的方法返回这个三角形的面积。
类名为:
Triangle
裁判测试程序样例:
#include
using namespace std;
// 你提交的代码将被嵌入到这里
int main( )
{
double w,h;
cin>>w>>h;
Triangle t(w,h);
cout<<"The area of the Triangle is: "<
输入样例:
3.5 4.8
输出样例:
The area of the Triangle is: 8.4
class Triangle
{
private:
double width;//宽
double height;//高
public:
Triangle(double x,double y)//有参构造函数
{
width=x;
height=y;
}
double getArea()//得到面积
{
double area;
area=width*height/2;
return area;
}
};
六、编程题
7-1 模拟EXCEL排序
分数 25
作者 陈越
单位 浙江大学
Excel可以对一组纪录按任意指定列排序。现请编写程序实现类似功能。
输入格式:
输入的第一行包含两个正整数N(≤10
5
) 和C,其中N是纪录的条数,C是指定排序的列号。之后有 N行,每行包含一条学生纪录。每条学生纪录由学号(6位数字,保证没有重复的学号)、姓名(不超过8位且不包含空格的字符串)、成绩([0, 100]内的整数)组成,相邻属性用1个空格隔开。
输出格式:
在N行中输出按要求排序后的结果,即:当C=1时,按学号递增排序;当C=2时,按姓名的非递减字典序排序;当C=3时,按成绩的非递减排序。当若干学生具有相同姓名或者相同成绩时,则按他们的学号递增排序。
输入样例:
3 1
000007 James 85
000010 Amy 90
000001 Zoe 60
输出样例:
000001 Zoe 60
000007 James 85
000010 Amy 90
暂无



