山东师范大学信息科学与工程2009-2010学年第一学期 2009级专升本《面向对象程序设计》A卷期终考试参考答案
一、 选择题(25小题,共25分)
1 2 3 4 5 A D D D C 6 7 8 9 10 D D B A B 11 12 13 14 15 C A C A D 16 17 18 19 20 D B D C D 21 22 23 24 25 C C A C D
二、 填空题( 每空2分,共10分)
1 2 3 4 5
三、 分析程序的执行结果,填空 (5小题,每小题4分,共20分) 1. 5,7
22,25
2. 12,20 14,30 16,40 18,50 20, 60 22,70 24,80 26,90 3. Default Default Default Constructor. Destructor Ma Constructor. Destructor Wang Constructor. Destructor Li Ma, 4.8 Wang, 3.6 Li, 3.1
Destructor Li Destructor Wang Destructor Ma
继承 多态 对象 封装 继承 4
5. con. A
con. B1 con. B2 con. C 5 7 5 3 6 des. C des. B2 des. B1 des. A
四. 程序设计题 (4小题,共45分)
1. 编写一个程序,设计一个产品类Product,其定义如下:
class Product {
char *name; //产品名称 int price; //产品单价 int quantity; //剩余产品数量 public:
Product(char *n,int p,int q); //构造函数 ~Product(); //析构函数 void buy(int money); //购买产品
void get() const; //显示剩余产品数量 };
并用数据进行测试。(10分) #include
#include
char *name; int price; int quantity; public:
Product(char *n,int p,int q) {
name =new char[strlen(n)+1]; strcpy(name,n);
price=p; quantity=q; }
~Product() {
if(name) {
delete [] name; name=0; } }
void buy(int money) {
int n,r;
n=money/price; if(n>quantity)
cout<<\数量不够\ else {
quantity-=n; r=money%price;
cout<<\产品:\单价:\元 顾客\
cout< void get() const { cout<<\产品:\单价:\元 剩余\台\} }; void main() { Product p1(\电视机\ p1.buy(7000); p1.get(); p1.buy(4500); p1.get(); } 2. 以面向对象的方法设计一个类,此类包含3个私有数据:unlead,lead(无铅汽油和有铅汽油)以及total(当天总收入,无铅汽油的价格是17元/公升,有铅汽油的价格是16元/公升),请以构造函数方式建立此值。试输入某天所加的汽油量,本程序将列出加油站当天的总收入。 (10分) #include