PTA-C++(静态成员与友元1*)
目录
- 一、判断题
- 二、单选题
- 三、填空题
- 四、函数题
- 6-1 工资与提成
- 6-1 工资与提成
- 6-3 猫和老鼠有多重
- 五、编程题
- 7-1 友元函数的练习
一、判断题
1.静态数据成员不能在类中初始化,使用时需要在类体外声明。(T)
2.静态数据成员不能在类中初始化,使用时需要在类体外声明。(F)
3.友元函数不是类的成员函数,只是独立于该类的一般函数。(T)
4.一个类的友元函数可以访问该类的私有成员。(T)
5.一个类的友元函数可以访问该类的私有成员。(F)
二、单选题
2-1
下面关于友元的描述中,错误的是:(D)
A.友元函数可以访问该类的私有数据成员
B.一个类的友元类中的成员函数都是这个类的友元函数
C.友元可以提高程序的运行效率
D.类与类之间的友元关系可以继承
2-2
关于友元函数的描述中,错误的是?(B)
A.友元函数不是成员函数
B.友元函数必须在类体内定义
C.友元函数可以访问类的私有数据成员
D.友元函数破坏了类的封装
2-3
引入友元的主要目的是为了(C)
A.增强数据安全性
B.提高程序的可靠性
C.提高程序的效率和灵活性
D.保证类的封装性
2-4
下面程序的输出结果是(D)
#include
using namespace std;
class MyClass {
public:
MyClass() {
++count;
}
~MyClass() {
–count;
}
static int getCount() {
return count;
}
private:
static int count;
};
int MyClass::count = 0;
int main() {
MyClass obj;
cout << obj.getCount();
MyClass obj2;
cout << MyClass::getCount();
cout << obj2.getCount();
return 0;
}
A.121
B.232
C.221
D.122
2-5
下面对静态数据成员的描述中正确的是(B)。
A.类的不同对象有不同的静态数据成员值
B.静态数据成员是类的所有对象共享的数据
C.类的每个对象都有自己的静态数据成员
D.静态数据成员不能通过类的对象调用
2-6
在下面有关静态成员函数的描述中,正确的是(A)。
A.在建立对象前,就可以为静态数据成员赋值
B.静态成员函数在类外定义时要用static前缀
C.静态成员函数只能在类外定义
D.在静态成员函数中可以使用this指针
三、填空题
1.静态数据成员初始化必须在类外进行。
2.(4分)A variable that is part of a class, yet is not part of an object of that class, is called a static member. There is exactly one copy of a static member instead of one copy per object, as for ordinary non-static members.
四、函数题
6-1 工资与提成
分数 10
作者 范鹏程
单位 内蒙古师范大学
根据main函数的调用以及程序的输出完成类定义,实现指定的功能
测试main函数样例:
#include
#include
#include
using namespace std;
/请在这里写上相应的类定义/
int main(){
Salesman sman[]={
Salesman(“Li”,4,100,0.5),
Salesman(“Wang”,3,200,0.4),
Salesman(“Liu”,2,300,0.3)
};
Salesman::show();
cout<<“Average commission is:”<
}
输入样例:
在这里给出一组输入。例如:
无
输出样例:
在这里给出相应的输出。例如:
There are 3 salesmen,sales amount is:620
Average commission is:206.667
暂无
6-1 工资与提成
分数 10
作者 范鹏程
单位 内蒙古师范大学
根据main函数的调用以及程序的输出完成类定义,实现指定的功能
测试main函数样例:
#include
#include
#include
using namespace std;
/请在这里写上相应的类定义/
int main(){
Salesman sman[]={
Salesman(“Li”,4,100,0.5),
Salesman(“Wang”,3,200,0.4),
Salesman(“Liu”,2,300,0.3)
};
Salesman::show();
cout<<“Average commission is:”<
}
输入样例:
在这里给出一组输入。例如:
无
输出样例:
在这里给出相应的输出。例如:
There are 3 salesmen,sales amount is:620
Average commission is:206.667
暂无
6-3 猫和老鼠有多重
分数 10
作者 fpc
单位 内蒙古师范大学
定义猫和老鼠:Cat与Mouse两个类,二者都有weight属性,定义二者的一个友元函数totalweight(),计算二者的重量和。
裁判测试程序样例:
#include
using namespace std;
/* 请在这里填写答案 */
int main()
{
int w1,w2;
cin>>w1>>w2;
Cat tom(w1);
Mouse jerry(w2);
cout<
输入样例:
100 200
输出样例:
300
class Cat{public:Cat(int x){weight=x;}friend int totalWeight(Cat &a,Mouse &b);private:int weight;
};class Mouse{friend class Cat;public:Mouse(int y){weight=y;}friend int totalWeight(Cat &a,Mouse &b);private:int weight;
};int totalWeight(Cat &a,Mouse &b)
{return a.weight+b.weight;
}
五、编程题
7-1 友元函数的练习
分数 10
作者 赵晨
单位 浙江大学
定义Boat与Car两个类,两者都有私有的整型weight属性,定义两者的一个友元函数getTotalWeight(),计算二者的重量和。
参考主函数:
int main()
{
int n,m;
cin>>n>>m;
Boat boat(n);
Car car(m);
cout<<“船和汽车共重”<
输入格式:
请在这里写输入格式。例如:输入在一行中给出2个整数m和n。
输出格式:
请在这里描述输出格式。例如:对每一组输入,在一行中输出:船和汽车共重M+n吨值。
输入样例:
在这里给出一组输入。例如:
40 30
输出样例:
在这里给出相应的输出。例如:
船和汽车共重70吨
暂无
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
