21年春西交《面向对象程序设计》在线作业[答案]

作者:奥鹏作业答案 字体:[增加 减小] 来源:西安交通大学 时间:2021-09-14 19:09

西交《面向对象程序设计》在线作业 试卷总分:100 得分:100 一、单选题 (共 30 道试题,共 60 分) 1.在下面的4个关键字中,( )是用来说明虚函数的。 A.virtual B.public C.protected D.private 2.对于一个类的

21年春西交《面向对象程序设计》在线作业[答案]

21年春西交《面向对象程序设计》在线作业[答案]答案

西交《面向对象程序设计》在线作业

试卷总分:100  得分:100

一、单选题 (共 30 道试题,共 60 分)

1.在下面的4个关键字中,( )是用来说明虚函数的。

A.virtual

B.public

C.protected

D.private

正确答案:-----

 

2.对于一个类的析构函数,其函数名与类名( )。

A.完全相同

B.完全不同

C.只相差一个字符

D.无关系

正确答案:-----

 

3.继承机制的作用是( )。

A.信息隐藏

B.数据封装

C.定义新类

D.数据抽象

正确答案:-----

 

4.在公用继承的情况下,基类成员在派生类中的访问权限( )

A.受限制

B.保持不变

C.受保护

D.不受保护

正确答案:-----

 

5.假定一个二维数组的定义语句为“ int a [3][4]={{3,4),{2,8,6));”,则元素a[1][2] 的值为( )。

正确答案:-----

A.2

B.4

C.6

D.8

正确答案:-----

 

6.下列对继承关系的描述中,正确的是( )。

A.在公有继承中,基类中的公有成员和私有成员在派生类中都是可见的;

B.在公有继承中,基类中只有公有成员对派生类的对象是可见的;

C.在私有继承中,基类中只有公有成员对派生类是可见的;

D.在私有继承中,基类中的保护成员对派生类的对象是可见的;

正确答案:-----

 

7.若一个类中含有纯虚函数,则该类称为( )。

A.基类

B.虚基类

C.抽象类

D.派生类

正确答案:-----

 

8.下列关于成员函数特征的描述中,( )是错误的。

A.成员函数一定是内置函数

B.成员函数可以重载

C.成员函数可以设置参数的默认值

D.成员函数可以是静态的

正确答案:-----

 

9.双目运算符重载为普通函数时,其参数表中应带有( )个参数。

A.0

B.1

C.2

D.3

正确答案:-----

 

10.虚函数的定义是在基类中进行的,定义时需要冠以关键字( )。

A.static

B.friend

C.virtual

正确答案:-----

D.public

正确答案:-----

 

11.面向对象方法的多态性是指( )。

A.一个类可以派生出多个特殊类

B.一个对象在不同的运行环境中可以有不同的变体

C.针对一消息,不同的对象可以以适合自身的方式加以响应

D.一个对象可以是由多个其他对象组合而成的

正确答案:-----

 

12.下面是四条顺序出现的声明语句,非法的初始化语句是( )。

A.int i=–1;

正确答案:-----

B.const int ic=i;

C.const int *pc={图}

D.int *const cpi={图}

正确答案:-----

 

13.由C++源程序文件编译而成的目标文件的缺省扩展名为()。

A.cpp

B.exe

C.obj

D.lik

正确答案:-----

 

14.派生类的对象对其基类中( )可直接访问。

A.公有继承的公有成员

B.公有继承的私有成员

C.公有继承的保护成员

D.私有继承的公有成员

正确答案:-----

 

15.下列对派生类的描述中,______是错的。

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

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

C.派生类的成员除了它自己的成员外,还包含了它的基类的成员;

D.派生类中继承的基类成员的访问权限到派生类保持不变;

正确答案:-----

 

16.用new运算符创建一个含有10个元素的一维整型数组的正确语句是( )。

A.intp=newint(10);

B.intp=newint[10];

C.int*p=newint[10];

D.int*p=newint(10);

正确答案:-----

 

17.友元的作用之一是()。

A.提高程序的运行效率。

B.加强类的封装性。

C.实现数据的隐蔽性。

D.增加成员函数的种类。

正确答案:-----

 

21.在创建派生类对象时,构造函数的执行顺序是( )。

A.对象成员构造函数、基类构造函数、派生类本身的构造函数;

B.派生类本身的构造函数、基类构造函数、对象成员构造函数;

C.基类构造函数、派生类本身的构造函数、对象成员构造函数;

D.基类构造函数、对象成员构造函数、派生类本身的构造函数。

正确答案:-----

 

19.下列程序段不会发生二义性的是( )。

A.int fun(double p){...;}

正确答案:-----

B.int fun(float p){...;} float fun(float p){...;}float fun(unsigned p){...;} int x;int x; x=fun(0);x=fun(0);

正确答案:-----

C.int fun(int i,int j=2){...;}

D.int fun(int i=2,int j=2){...;} float fun(int i){...;}int fun(int *p){...;} cout{图}

正确答案:-----

 

20.类的析构函数是在( )调用的。

A.类创建时

B.创建对象时

C.删除对象时

D.不自动调用

正确答案:-----

 

21.类的构造函数是在定义该类的一个(??)时被自动调用执行的。

A.成员函数

B.数据成员

C.对象

D.友元函数

正确答案:-----

 

22.下列关于私有继承的说法中正确的是()。

A.基类成员对派生类新定义的成员函数是不可见的;

B.基类成员对派生类新定义的成员函数是可见的;

C.只有基类成员中的公有成员对派生类新定义的成员函数是可见的;

D.基类成员中的保护成员对派生类新定义的成员函数是可见的。

正确答案:-----

 

23.一个函数功能不太复杂,但要求被频繁调用,选用( )

A.内置函数

B.重载函数

C.递归函数

D.嵌套函数

正确答案:-----

 

24.C++类体系中,不能被派生类继承的有( )

A.转换函数

B.构造函数

C.虚函数

D.静态成员函数

正确答案:-----

 

25.下面的类中,( )不是由抽象基类ios直接派生出来的。

A.istream

B.ostream

C.iostream

D.fstreambase

正确答案:-----

 

26.在一个类的定义中,包含有( )成员的定义。

A.数据

B.函数

C.数据和函数

D.数据或函数

正确答案:-----

 

27.cout是某个类的标准对象,该类是( )。

A.ostream

B.istream

C.stdout

正确答案:-----

D.stdin

正确答案:-----

 

28.对于类中定义的成员,其隐含访问权限为()。

A.public

B.ptotected

C.private

正确答案:-----

D.static

正确答案:-----

 

29.设px是指向一个类对象的指针变量,则执行 “delete px;”语句时,将自动调用该类的( )

正确答案:-----

A.无参构造函数

B.带参构造函数

C.析构函数

D.复制构造函数

正确答案:-----

 

30.实现运行时的多态性要使用( )。

A.重载函数

B.析构函数

C.构造函数

D.虚函数

正确答案:-----

 

21年春西交《面向对象程序设计》在线作业[答案]多选题答案

二、判断题 (共 20 道试题,共 40 分)

31.C++只能用于面向对象程序设计,不适用于面向过程程序设计。( )

 

32.成员函数中调用的虚函数可能实现动态联编。( )

 

33.C++中的所有运算符都允许重载。( )

 

34.在类的继承层次结构中,在不同的层次中不能出现名字相同、参数个数和类型都相同而功能不同的函数。( )

 

35.字符串"sdfgh"的长度是5。( )

正确答案:-----

 

36.将运算符“+”函数重载为类的成员函数,交换律不适用。( )

正确答案:-----

 

37.打开一个二进制文件时可以同时指定它既是输入文件又是输出文件。( )

 

38.引用可以不初始化。( )

 

39.若类Y是类X的私有派生类,类Z是类Y的公用派生类,则类Z不能访问类X 的公用成员和保护成员。( )

 

40.常量不能作为左值使用。( )

 

41.对于从基类继承的虚函数,派生类也可以不进行重定义。( )

 

42.友元类必须被说明为公用成员。( )

 

43.引用和指针都可作函数参数。( )

 

44.友元函数说明在类体内,它是一种成员函数。( )

 

45.使用虚函数无法避免多重继承产生的二义性。( )

 

46.C++语言支持封装性和继承性,不支持多态性。( )。

 

47.C++中的字符串输入输出通常指定一个字符数组作为存储空间,它只能输入输出string类数据。( )

 

48.内置函数的定义必须出现在第一次调用内置函数之前。( )

 

49.私有继承的派生类不能访问基类中的私有成员,但公用继承的派生类可以访问基类中的私有成员。( )

 

50.程序运行过程出现异常是由于语法错误引起的。( )

 

21年春西交《面向对象程序设计》在线作业[答案]历年参考题目如下:




 
201906考试批次
《面向对象程序设计》结课作业




学生姓名                      学习中心 
学号                         
专  业                        年级层次












北京语言大学网络教育学院
《面向对象程序设计》结课作业
注意:
本学期所布置的结课作业,请同学一律按照以下要求执行:
1) 结课作业提交起止时间:4月30日—6月10。(届时平台自动关闭,逾期不予接收。)
2) 结课作业课程均需通过“离线作业”栏目提交电子版,学院不收取纸介的结课作业,以纸介回寄的作业一律视为无效;
3)截止日期前可多次提交,平台只保留最后一次提交的文档,阅卷时以最后一次提交的结课作业为准,截止日期过后将关闭平台,逾期不交或科目提交错误者,按0分处理;
4) 提交文档要求:提交的文档格式为doc、rar,大小10M以内;
5) 必须严格按照每门课程的答题要求完成作业,没有按照学院要求来做的结课作业,将酌情扣分。

一、【程序分析题】(本大题共5小题,请任选其中一道题作答,答题时请注明题号,本题30分,本题要求读懂题目中的程序或函数,写出程序或函数的功能)
1、#include<iostream.h>
        void main()
        {
         int i,s=0;
         for(i=2;i<=30;i+=2) s+=i*i;
         cout<<"s="<<s<<endl;
        }
2、int s1(int n)
       {
        int x;
           if(n==1) x=1;
           else x=s1(n-1)+n*n;
           return x;
       }
3、void fun5(char* a, const char* b)
        {
            while(*b) *a++=*b++;
         *a=0;
        }
4、void fun3(int a[][N], int m, int n, int& row, int& col)
        {
         int x=a[0][0];
            row=col=0;
         for(int i=0;i<m;i++)
          for(int j=0;j<n;j++)
                    if(a[i][j]>x) {
            x=a[i][j]; row=i; col=j;
           }
        }
5、char* f8(char* str1, const char* str2)
        {
            int i=0,j=0;
            while(str1[i]) i++;
            while(str2[j]) str1[i++]=str2[j++] ;
            str1[i]='\0';
            return str1;
        }

二、【编写程序实现算法】(本大题共5小题,请任选其中一道题作答,答题时请注明题号,本题30分,根据题目要求编写算法实现,要求程序没有语法错误)
1、按照函数原型语句“void  p(int n);”编写一个递归函数显示出如下图形,此图形是n=5的情况。
55555
4444
333
22
1
2、按照函数原型语句“void  p(int n);”编写一个递归函数显示出如下图形,此图形是n=5的情况。
1
22
333
4444
55555
3、按照下面函数原型语句编写一个递归函数计算出数组a中n个元素的平方和并返回。
int f(int a[],int n);
4、根据下面类中MaxMin 函数成员的原型和注释写出它的类外定义。
class AA {
int* a;
int n;
int MS;
public:
void InitAA(int aa[], int nn, int ms) {
  if(nn>ms) {cout<<"Error!"<<endl; exit(1);}
  MS=ms;
  n=nn;
  a=new int[MS];
  for(int i=0; i<n; i++) a[i]=aa[i];
}
int MaxMin(int& x, int& y); //从数组a的前n个元素中求出
         //最大值和最小值,并分别由引用参数x和y带回,
         //同时若n大于0则返回1,否则返回0。
};
5、如果A和B都是m行n列矩阵,且它们对应元素相等,则A= =B。试定义矩阵类,
对“= =”运算符重载。

三、【程序设计题】(本大题共5小题,请任选其中一道题作答,答题时请注明题号,本题40分,根据题目要求编写完整程序实现,要求程序能够正常运行,没有语法错误)
1、编写一个程序,计算三角形、正方形和圆形三种图形的面积和周长。(用多态性实现)
2、已有若干个学生数据,包括学号、姓名、成绩,编写程序要求输出这些学生数据并计算平均分。
3、应用C++的多态性编写一个程序,编写程序计算正方体、球体和圆柱体的表面积和体积。
4、编写一个程序,实现图书和杂志销售管理。当输入一系列图书和杂志销售记录后,将销售良好(图书每月售500本以上,杂志每月2500本以上)的图书和杂志名称显示出来。
5、一名兽医要记录他所治疗的各种类型的狗以及治疗信息,尤其想了解不同的病症对带斑点的狗和不带斑点的狗所产生的影响。为该兽医设计一个程序,要求记录狗的品种(breed),身高(height),体重(weight),颜色(color)等信息。为斑点狗和不带斑点的狗设计不同的类。下面的程序使用你设计的类。
          void main()
          {// 定义一个白色的Dalmatian斑点狗,它身高24,体重60,
斑点为红色
            spotted_dog redSpot("Dalmatian",24,60,"white","red");
            //定义一个黄色的Labrador无斑点狗,它身高30,体重40
unspotted_dog rover("Labrador Retriever",30,40,"yellow");
            redSpot.show_name(); //显示狗名
            redSpot.show_breed(); //显示狗品种
            redSpot.spot_info();  //显示狗斑点信息
            rover.show_name();  //显示狗名
            rover.show_breed();  //显示狗品种
           } 

作业咨询:
点击这里给我发消息

论文咨询:
点击这里给我发消息

合作加盟:
点击这里给我发消息

服务时间:
8:30-24:00(工作日)