C期末测试题

别妄想泡我
738次浏览
2020年08月03日 23:23
最佳经验
本文由作者推荐

我心中的未来世界-七年级美术教案


一、 单项选择题(每题3分,共30分)
1、 下面选项中哪项不是面向对象程序设计的特性。( B )
A、封装性 B、相似性 C、继承性 D、多态性
2、以下哪一关键字可用于重载函数的区分。( C )
A、extern B、static C、const D、virtual
3、下面关于构造函数的描述中,哪项是错误的。( C )
A、构造函数名与类名相同;
B、构造函数当对象被创建时会自动调用;
C、构造函数不允许重载;
D、构造函数没有类型,也没有返回值;
4、实现多态性的途径不包括下面哪一项。( D )
A、函数重载 B、运算符重载
C、虚函数 D、虚基类
5、下列关于this 指针说法正确的是( B )
A、this指针存在于每一个函数中;
B、this指针是指向当前对象的指针;
C、this指针是指向虚函数的指针;
D、this指针是指向成员函数的指针;
6、下列不能重载的运算符是( C )
A、&& B、= C、 . D、->
7、析构函数在下列哪种情况下会自动调用。( C )
A、对象创建时 B、对象创建后 C、对象删除时 D、对象删除后
8、虚基类的作用主要是( A )
A、避免在派生类中出现多个相同的基类;
B、避免在派生类中出现相同的成员函数;
C、避免在派生类中出现相同的数据成员;
D、允许在派生类中出现多个相同的基类;
9、纯虚函数的作用主要是( B )
A、定义和实现函数的功能;
B、限制派生类必须实现的功能;
C、在派生类中可直接使用基类的纯虚函数;
D、限制重载虚函数的返回值必须为0;
10、下列关于构造函数和析构函数的调用的顺序哪一个是错误的。( A )
A、先构造派生类再构造基类;
B、先析构派生类再析构基类;
C、先构造基类再构造派生类类;
D、先构造类中对象在构造派生类;
二、 填空题(每题2分,共20分)
1、类中的成员从访问和继承属性分public、private、protected三种。
2、同一组重载的函数之间在 形参上 必须有所不同。
3、在UintArray类中,其析构函数的名称为 ~UintArray。
4、抽象类中至少包含 一个纯虚函数。
5、要实现在派生类中可以访问基类的public 和protected成员,派生类对象可以
访问基类的public成员,继承方式必须选择 public。


6、一个类中private成员与protected成员不同之处在于 在派生类中基类的private
成员不可访问,而基类的protected 成员可以访问。
7、通过对象访问类中的成员是采用 .(成员) 运算符,通过对象的指针访问类中
的成员是采用 –>(指向) 运算符。
8、要使一个外部函数可以访问类中的private成员,方法是 在类中将该函数声
明为友元函数。
9、类中的静态成员函数只能访问类中的 静态 数据成员。
10、用new 申请的内存,使用完后,必修用 delete 加以释放。
三、 程序阅读题, 写出程序运行结果(每题5分, 共20分)
1、运行时输入 12 34
#include
using namespace std;
int main()
{
int x, y, z;
cin >> x >> y;
z = x + y;
cout << << z << endl;
return 0;
}
2、#include
using namespace std;
void Test(int x)
{
cout << x << endl;
}
void Test(double x)
{
cout << x << endl;
}
int main()
{
int x = 10;
double y = 123.65;
Test(x);
Test(y);
Test(x + y);
return 0;
}
3、#include
using namespace std;
class Complex
{
public:


Complex(int x = 0, int y = 0) : x(x), y(y){}
void Display()
{
cout << x << (y > 0 ? : ) << y << 'i' << endl;
}
private:
int x;
int y;
};

int main()
{
Complex a(3, 8), b(4, -6);
y();
y();
return 0;
}
4、#include
using namespace std;
class Base
{
public:
Base(int x)
{
b = x;
cout << << endl;
}
~Base()
{
cout << << endl;
}
int b;
};
class Derevid : public Base
{
public:
Derevid(int x, int y = 0) : Base(x)
{
data = y;
cout << << endl;
}
~Derevid()
{
cout << << endl;


}
int Calculate()
{
return data * 4 + b;
}
private:
int data;
};

int main()
{
Derevid d(2, 5);
cout << ate() << endl;
return 0;
}
四、 编程题(每题10分,共30分)
1、设计一个Circle类,用于求圆的面积和周长,并在主函数中实现应用。
#include
using namespace std;

class circle
{
private:
double r;
public:
circle(double r = 0) : r(r){}
double Area(){return r * r * 3.1415926;}
double circumference(){ return 2 * r * 3.1415926;}
};
int main()
{
circle c(6.2);
cout << () << endl;
cout << ference()<< endl;
return 0;
}

2、定义一个string(字符串)类,其中包含用“+”运算符实现两个字符串连接
的操作,并实 现应用。
#include
using namespace std;
class mystring
{
private:


char *pc;
int length;
public:
mystring(char *p)
{
length = 0;
while(p[length] != 0)length ++;
pc = new char[length + 1];
for(int i = 0;i <= length; i++)pc[i] = p[i];
}
mystring(mystring &str)
{
pc = new char[ + 1];
for(int i = 0;i <= i++)pc[i] = str[i];
}
char operator [](int i)
{
return pc[i];
}
mystring operator + (mystring &str)
{
char *p = new char[length + 1];
for(int i = 0;i for(int i = 0;i<=;i++)p[i + length] = str[i];
mystring s(p);
return s;
}
void display()
{
cout << pc << endl;
}

~mystring(){delete pc;}
};
int main()
{
mystring str1();
mystring str2();
(str1 + str2).display();
while(true);
return 0;
}
3、先定义一个book(书)类,book类中包含书 号、书名、作者、出版社、页数、
单价等信息,再从book类派生出Teaching
Mat erial(教材)类,增加适用专业,适用


课程和静态数据成员库存数量,增加教材采 购和教材领用两个成员函数,并实现应用。
#include
#include
using namespace std;
class book
{
protected:
char Number[20];
char Name[40];
char Writer[20];
char Publisher[20];
int PageCount;
float Price;
public:
book(char *PNumber, char *PName, char *PWriter, char *PPublisher, int
count, float price)
{
Strcpy_s(Number, PNumber);
Strcpy_s(Name, PName);
Strcpy_s(Writer, PWriter);
Strcpy_s(Publisher, PPublisher);
PageCount = count;
Price = price;
}
};
class TeachingMaterial : public book
{
private:
char Professional[30];
char Course[40];
int Inventory;
static int TotalInventory;
public:
TeachingMaterial(char *PNumber, char *PName, char *PWriter, char
*PPublisher, int count, float price, char *PProfessional, char *PCourse,
int inventory)
: book(PNumber, PName, PWriter, PPublisher, count, price)
{
Strcpy_s(Professional, PProfessional);
Strcpy_s(Course, PCourse);
Inventory = inventory;
TotalInventory += inventory;
}
void display()


{
cout << 书号: << Number << endl;
cout << 书名: << Name << endl;
cout << 作者: << Writer << endl;
cout << 出版: << Publisher << endl;
cout << 页数: << PageCount << endl;
cout << 单价: << Price << endl;
cout << 适用专业: << Professional << endl;
cout << 适用课程: << Course << endl;
cout << 库存: << Inventory << endl;
cout << 教材总库存: << TotalInventory << endl;
}
};
int TeachingMaterial::TotalInventory = 0;

int main()
{
TeachingMaterial tm1(,语言 程序设计(第4版)
,郑莉,清华大学出版社,529,49.0,软件工程,面向对象程序设计(C+ +)
, 200);
TeachingMaterial tm2(,网络编程与应用,马骏
,机械工业出版社,383,34.0,软件工程,应用程序设计, 150);
y();
y();
while(true);
return 0;
}

特岗教师在职攻读教育硕士-放假通知范文


卫生资格考试-煤矿安全生产责任书


索邦-活动策划书封面


光战队-怀化学院分数线


扬州市职业大学-月总结怎么写


新闻发布会新闻稿-阿拉伯海


山东二本大学排名及分数线-表现爱国主义的诗句


陕西省公务员局网-八耻八荣