西安电子科技大学c语言程序设计实验答案,西安电子科技大学2016学年上学期《面向对象程序设计(C++)》期末考试试题...

编程入门 行业动态 更新时间:2024-10-21 13:34:36

<a href=https://www.elefans.com/category/jswz/34/1766709.html style=西安电子科技大学c语言程序设计实验答案,西安电子科技大学2016学年上学期《面向对象程序设计(C++)》期末考试试题..."/>

西安电子科技大学c语言程序设计实验答案,西安电子科技大学2016学年上学期《面向对象程序设计(C++)》期末考试试题...

姓 名                               学 号

西安电子科技大学网络与继续教育学院

2016学年上学期

《面向对象程序设计(C++)》期末考试试题

(综合大作业)

题号        一        二        三        四        五        总分

题分        10        20        20        20        30

得分

考试说明:

1、大作业于2016年4月15日下发,2016年5月7日交回;

2、考试必须独立完成,如发现抄袭、雷同均按零分计;

3、答案须手写完成,要求字迹工整、卷面干净。

一、简答题(10分)

1.1(3分)C++语言中的break语句和continue语句的作用分别是什么?

1.2(3分)什么是函数重载?实现函数重载的原则是什么?

1.3(4分)什么是this指针?它有何作用?

二、填空题(每空2分,共20分)

2.1 纯虚函数就是                  的虚函数,至少包含一个纯虚函数的类称为               。

2.2 C++语言引入了异常处理机制,用             语句“抛出”异常,然后用相应的语句  _            捕获被“抛出”的异常,并做出相应的处理。

2.3 假设x = 5,y = 0,z = 3,则表达式 !x || y++ && z 的值为      ,执行表达式后y的值为      。

2.4 下列程序在构造函数和析构函数中申请和释放类的私有成员,请完成该类的实现。

class MyClass  {

private:

int *x;

public:

MyClass(int a);

~MyClass();

};

MyClass :: MyClass(int a) {                    ; }

MyClass :: ~MyClass() {                    ;}

2.5 C++语言中,运算符重载一般采用两种形式:                和               。

三、选择题(每题2分,共20分)

3.1 在下面的程序中,若实参a与形参x以引用传递的方式传递信息,实参b与形参y以值传递的方式传递信息,那么从函数compute返回主程序后,a和b的值分别为        。

Main Program             void compute(x, y)

A.5和2   B.5和12   C.1和2   D.1和12

3.2 下列语句中,错误的是                  。

A.int i, *ptr = &i;   B.int i; int *ptr; i = *ptr;

C.int *ptr; ptr = 0;   D.int i = 5; int *ptr; *ptr = &i;

3.3 下列对break语句的描述中,不正确的是                 。

A.break语句可以用在循环体中,它将使执行流程跳出本层循环

B.break语句可用在switch语句中,它将使执行流程跳出当前switch语句

C.break语句可用在if语句中,它将使执行流程跳出当前if语句

D.break语句在一层循环体中可以出现多次

3.4 下列对C++中的派生类的描述中,错误的是              。

A.一个派生类可以作为另一个派生类的基类

B.派生类至少有一个基类

C.派生类的缺省继承方式是private继承

D.派生类只继承了基类的公有和保护成员

3.5 下列的各种函数中,            不是类的成员函数。

A.构造函数  B.析构函数  C.友元函数  D.拷贝构造函数

3.6 下列对静态数据成员的描述中,错误的是          。

A.说明静态数据成员时前边要加修饰符static

B.静态数据成员要在类体外进行初始化

C.引用静态数据成员时,要在静态数据成员名前加和作用域运算符

D.静态数据成员不是所有对象所共用的

3.7 下列关于对象数组的描述中,         是错误的。

A.对象数组的下标是从0开始的      B.对象数组的数组名是一个常量指针

C.对象数组的每个元素是同一个类的对象  D.对象数组只能赋初值,而不能被赋值

3.8 下列关于私有继承的描述中,错误的是           。

A.基类的公有成员和保护成员被继承后作为派生类的私有成员,派生类的其他成员可以直接访问它们

B.基类的公有成员和保护成员被继承后作为派生类的私有成员,派生类的其他成员不能直接访问它们

C.基类的私有成员,派生类的成员和派生类的对象都无法访问

D.派生类的对象无法访问基类

3.9 应在下列程序中的空缺处填入的正确语句是              。

#include

class Base {

public:

void fun()  { cout << "Base::fun" << endl; }

};

class Derived : public Base {

void fun() {

;   // 显式调用基类的成员函数fun()

cout << "Derived::fun" << endl;

}

};

A.fun()  B.Base.fun()  C.Base::fun()  D.Base->fun()

3.10 下列关于类模板的描述中,不正确的是          。

A.用类模板定义一个对象时,不能省略实参  B.类模板只能有类型参数

C.类模板本身在编译中不会生成任何代码   D.类模板的成员函数都是模板函数

四、读程题(每题5分,共20分)

4.1 给出下述源程序的运行结果。

#include

#include

void main( ) {

char *p1, *p2, s[50] = "xyz";

p1 = "abcd";

p2 = "ABCD";

strcpy(s+2, strcat(p1+2, p2+1));

cout << s << endl;

}

4.2 给出下述源程序的运行结果。

#include

class Base {

public:

void fun() { cout << "1"; }

};

class Derived : public Base {

public:

void fun() {

cout << "2" << endl;

}

};

void main() {

Derived a;

Base *p = &a;

(*p).fun();

a.fun();

}

4.3 给出下述源程序的运行结果。

#include

int add(int a, int b = 5);

void main()

{  int m = 5;

cout << "sum1 = " << add(m) << endl;

cout << "sum2 = " << add(m, add(m)) << endl;

cout << "sum3 = " << add(m, add(m, add(m))) << endl;

}

int add(int x, int y)

{ return x + y; }

4.4 给出下述源程序的运行结果。

#include

class A {

private:

int a, b;

public:

A(int i, int j) { a = i; b = j; }

void Move(int x, int y) { a += x; b += y; }

void Show() { cout << "( " << a << ", " << b << " )" << endl; }

};

class B : private A {

public:

B(int i, int j, int k, int l) : A(i, j) { x = k; y = l; }

void Show() { cout << x << " ," << y << endl; }

void fun() { Move(3,5); }

void f1() { A :: Show(); }

private:

int x, y;

};

void main() {

A e(1, 2);

B d(3, 4, 5, 6);

e.Show();

d.fun();

d.Show();

d.f1();

}

五、编程题(每题15分,共30分)

5.1 定义两个重载函数,分别能求矩形和圆的周长,然后在main函数中对这两个函数进行调用并测试其功能。求矩形的周长时需要输入矩形的长和宽;求圆的周长时需要输入圆的半径。

5.2 在一个程序中,类Person定义了name和age两个数据成员;由类Person派生出类Student和Teacher,其中类Student定义了学号数据,类Teacher定义了职称数据。每个类均有构造函数、析构函数和打印类中数据的函数。给出类Person、Student、Teacher的定义与实现。

更多推荐

西安电子科技大学c语言程序设计实验答案,西安电子科技大学2016学年上学期《面向对象程序设计(C++)》期末考试试题...

本文发布于:2024-03-08 18:57:01,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1721924.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:西安   电子科技大学   学年   上学期   程序设计

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!