北语202112考试批次《面向对象程序设计》(结课作业)[答案]

作者:奥鹏作业答案 字体:[增加 减小] 来源:北京语言大学 时间:2021-11-21 08:29

202112考试批次 《面向对象程序设计》结课作业 学生姓名 学习中心 学号 专 业 年级层次 北京语言大学网络教育学院 《面向对象程序设计》结课作业 注意: 本学期所布置的结课作业,请同学一律

北语202112考试批次《面向对象程序设计》(结课作业)[答案]

北语202112考试批次《面向对象程序设计》(结课作业)[答案]答案

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




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












北京语言大学网络教育学院
《面向对象程序设计》结课作业
注意:
本学期所布置的结课作业,请同学一律按照以下要求执行:
1) 结课作业提交起止时间:10月28日-------12月9日。(届时平台自动关闭,逾期不予接收。)
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();  //显示狗品种
           } 

北语202112考试批次《面向对象程序设计》(结课作业)[答案]历年参考题目如下:




《面向对象程序设计2261》在线作业2

试卷总分:100  得分:100

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

1.执行语句 char ch[] = "Hello"; char * p = &ch[0]; cout<<*p 结果是输出 ( )。

A.一个地址

B.H

C.Hello

D.乱码

 

2.C++函数的声明和定义可以分开,函数声明不需要()

A.返回类型

B.函数名

C.参数表

D.函数体

 

3.二叉查找树按()遍历时访问到节点的数据是排好序的

A.前序

B.中序

C.后序

D.层次

 

4.下列排序算法中,平均效率最低的排序算法是()

A.插入法

B.冒泡法

C.选择法

D.快速排序法

 

5.在每个C++程序中都必须包含有这样一个函数,该函数的名称为()

A.main

B.MAIN

C.name

D.function

 

6.用cin为整型变量输入数据时,如果从键盘输入的不是数字,输入后整型变量中的结果会是:()

A.0

B.负数

C.正数

D.不确定

 

7.如果在try块中用throw"error";语句抛出一个异常,则参数类型是()的catch块能够捕获这个异常。

A.char*

B.constchar*

C.Char

D.constchar

 

8.已知Value是一个类,Value是Value的一个对象。下列以非成员函数形式重载的运算符函数原形中,正确的是()

A.Valueoperator+(Valuev,inti);

B.Valueoperator+(Valuev=value,inti);

C.Valueoperator+(Valuevinti=0);

D.Valueoperator+(Valuev=value,inti=0);

 

9.已知函数 f 的原型是 void f(int *a, long & b);,变量 v1、v2 的定义是: int v1; loong v2; 下列调用语句中正确的是 ( )

A.f(v1,&v2)

B.f(v1,v2)

C.f(&v1,&v2)

D.f(&v1,v2)

 

10.以下不能正确进行字符串赋初值的语句是()

A.charstr[5]="good!";

B.charstr[]="good!";

C.char*str="good!";

D.charstr[5]={‘g',‘o',‘o',‘d'};

 

11.两个指针变量不可以()

A.相加

B.比较

C.相减

D.指向同一地址

 

12.C++异常处理机制中没有()

A.try

B.throw

C.catch

D.finally

 

13.数组名表示的是数组的()

A.类型

B.用途

C.地址

D.长度

 

14.数组名作为实参传递给形参时,数组名被处理为该数组的()

A.长度

B.元素个数

C.首地址

D.各元素的值

 

15.如果myclass类定义了拷贝构造函数和一个整型参数的构造函数,还重载了赋值运算符,那么语句myclassobj=100;会( )

A.调用拷贝构造函数

B.调用整型参数的构造函数

C.调用赋值运算符

D.引起编译错误

 

16.假定a为一个短整型(shortint)数组名,则元素a[8]的地址为()

A.a+4

B.a+8

C.a+16

D.a+32

 

17.private访问属性限制对象的成员可以在()中访问

A.本类的成员函数

B.main函数

C.父类的成员函数

D.子类的成员函数

 

18.C++语言对C语言做了很多改进,C++语言相对于C语言的最根本的变化是()

A.增加了一些ABC运算符

B.允许函数重载,并允许设置缺省参数

C.规定函数说明符必须用原型

D.引进了类和对象的概念

 

19.使用流控制符()需要头文件

A.endl

B.hex

C.setw

D.left

 

20.若有说明:int*p1,*p2,m=5,n;以下均是正确赋值语句的是()

A.p1=&m,p2=&p1

B.p1=&m;p2=&n;*p1=*p2

C.p1=&m;p1=p2

D.p1=&m;*p2=*p1

 

21.队列的最大特征是()

A.先进先出

B.后进先出

C.自动排序

D.大数优先

 

22.函数的形参是()

A.全局变量

B.局部变量

C.静态变量

D.部变量

 

23.下列有关抽象类和纯虚函数的叙述中,错误的是()

A.拥有纯虚函数的类是抽象类,不能用来定义对象

B.抽象类的派生类若不实现纯虚函数,它也是抽象类

C.纯虚函数的声明以“=0;”结束

D.纯虚函数都不能有函数体

 

24.在定义inta[3][4][2];后,第10个元素是()

A.a[2][1][2]

B.a[1][0][1]

C.a[2][0][1]

D.a[2][2][1]

 

25.如果有如下定义:constchar*str="OK";那么,sizeof(str)的值应该是()

A.1

B.2

C.3

D.4

 

26.十进制数127转换成二进制数是()

A.11111111

B.01111111

C.10000000

D.11111110

 

27.要打开一个文件并从中读取数据,应该使用()类的对象

A.istream

B.ostream

C.ifstream

D.ofstream

 

28.执行下列语句段后,输出字符“*”的个数是()for(inti=50;i>1;I-=2)cout<<~*~;

A.24

B.25

C.26

D.50

 

29.C++泛型编程通过()实现

A.void

B.template

C.NULL

D.typedef

 

30.下面是一个模板声明的开始部分: templute<typename T> double __ 由此可知 ( )

A.这可能是一个函数模板的声明

B.这可能是一个类模板的声明

C.这既可能是一个函数模板的声明,也可能是一个类模板的声明

D.这肯定是一个错误的模板声明

 

二、多选题 (共 5 道试题,共 20 分)

31.构造函数()

A.函数名只能是类名

B.返回类型可以是任意的

C.参数个数和类型可以是任意的

D.在对象创建时自动调用

 

32.面向对象的编程方法的主要特征包括()

A.封装

B.继承

C.多态

D.消息

 

33.类成员的访问属性可以是()

A.public

B.protected

C.private

D.default

 

34.for语句的格式为for(表达式1;表达式2;表达式3),其中可以省略的是()

A.两个分号

B.表达式1

C.表达式2

D.表达式3

 

35.流程控制语句有()几种

A.条件语句

B.循环语句

C.分支语句

D.表达式语句

 

三、判断题 (共 5 道试题,共 20 分)

36.字符串"ab "在机器中占6个字节。()

 

37.重载函数形参个数可以不同。()

 

38.结构化程序设计的基本方法是递归法。()

 

39.宏名必须用大写字母表示。()

 

40.C++语言是从早期的C语言逐渐发展演变而来的,与C语言相比,它在求解问题方法上进行的最大改进是面向过程。()

 

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

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

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

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