1008电大《面向对象程序设计》试题和答案200601

时间:2024-04-27 20:04:10 5A范文网 浏览: 复习资料 我要投稿
试卷代号:1008
中央广播电视大学2005-2006学年度第一学期"开放本科"期末考试
计算机专业 面向对象程序设计 试题
2006年1月

一、单项选择题(每小题2分,共20分)
1.程序中主函数的名字为( )。
A.main B.MAlN
C Main D.任意标识符
2.为了提高程序的运行速度,可将不太复杂的功能用函数实现,此函数应选择( )。
A内联函数 B.重载函数
C递归函数 D.函数模板
3.将两个字符串连接起来组成一个字符串时,选用( )函数。
A.strlen() B.strcap()
C.strcat() D.strcmp()
4.用new运算符创建一维整型数组的正确语句是( )。
A.int*p=flewa[10] D.int*p=new noat[10]
C.int*p=newintCl0] D.int=p newin[5]={1,2,3,4,5}
5.假定有定义"int b[l0] int*pb;",则不正确的赋值语句为( )。
A.pb=b B.pb=&b[0]
  C.pb=new int D.pb=b[5]
6.假定AA为一个类,a为该类公有的数据成员,x为该类的一个对象,则访问x对象中
数据成员a的格式为( )。
A.x(a) B.x[a]
C。 x一>a D. x.a
7.假定AB为一个类,则执行"ABx(a,5);"语句时将自动调用该类的( )。
A.带参构造函数 B.无参构造函数
C拷贝构造函数 D.赋值重载函数
8.对于任一个类,用户所能定义的析构函数的个数至多为( )。
A.0 B.1
C 2 D.任意个
9.对类中引用成员的初始化是通过构造函数中给出的( )实现的。
A.函数体 D.参数表
C初始化表 D.初始化表或函数体
10.如果表达式a==b中的"=="是作为普通函数重载的运算符,若采用运算符函数调
用格式,则可表示为( )。
A.a.operator==(b) B.b.operator==(a)
  C.operator==(a,b) D.operator==(b,a)

二、填空题(每小题2分,共20分)
1.常数一4.205和6.7E-9分别具有 和 位有效数字。
2.元素类型为double的二维数组a[4][6]共有 个元素,共占用
字节的存储空间。
3.假定对二维数组a[3][4]进行初始化的数据为{3,5,6,2,8,7},则a[1][1]和a
[2][3]分别被初始化为 和 。
4.假定p为指向二维数组intd[4][6]的指针,则p的类型为 ,其中一个元素d
[i][j]表示成指针访问方式为
5.已知变量a定义为"int a=5;",要使ra成为a的引用,则ra应定义为 ,要使rb指向a,则rb应定义为 。
6.若只需要通过一个成员函数读取其数据成员的值,而不需要修改它们,则应在函数头的后面加上 关键字;若只需要读取引用参数的值,不需要对其修改,则应在该参
数说明的开始使用 关键字。
7.假定一个类对象数组为A[N],当定义该数组时,将自动调用该类的无参构造函数的次数为 次,当离开它的作用域时,将自动调用该类析构函数的次数为 次。
8.假定AB为一个类,则类定义体中的"AB(AB&x);"语句为该类 的原型语句,而"operator=(AB& x);"为该类 的原型语句。
9.在定义一个派生类时,使用 关键字表示为私有继承,使用 关键宇表示为公有继承。
  10.重载一个运算符时,该运算符的 、 以及操作符的个数不允许改变。
  
三、程序填充题(对程序、函数或类中划有横线的位置,根据题意按标
号把合适的内容填写到程序后面的标号处。每小题5分,共20
分)
1.在输出屏幕上打印出一个由字符'x'组成的等腰三角形,该三角形的高为5行,从上到 下每行的字符数依次为1,3,5,7,9。
#include
void main()
{
int i,j;
for(i=1; (1) ;i++)(2) )cout<<'';
  else (3) ;
  
   cout<  
   }
   (1) (2) (3)
  2.从一个字符串中删除所有同一字符后得到一个新字符串并输出。
   #inClude
   const int 1en:20;
   vOiddelstr(chara[ ],charb[ ],charc);
   vOidmain()
   charstrl[1en],str2[1en];
   CharCh;
  cout<<"输入一个字符串:";
  cin>>str"
  cout<<"输入一个待删除的字符:";
   cin>>ch;
   delstr(strl,str2,Ch);
   cout<  
   vOiddelstr(chara[ ],charb[ ],charc)
   {
   intj=0;
   fOr(int i;0; (1) ;i++)
   if( (2) )b[j++]=a[i];
   b[j]= (3) ;
   )
  (1) (2) (3)
  
   3.已知一维数组类ARRAY的定义如下,ARRAY与普通-维数组区别是:其重载的运
  算符[]要对下标是否越界进行检查。
   claSSARRAY{
   int*vl //指向存放数组数据的空间
   intSl //数组大小
   public:
   ARRAY(int a[],int n);
   ~ARRAY()delete[]v;
   int size()return s;
   int&operator[](intn);
   };
   (1) operator口(intn) //[]的运算符成员函数定义
   {
   if(n<0,I (2) )cerr<<"下标越界!";exit(1);
   return (3) ;
   }
   (1) (2) (3)
   4.一个类定义如下;
   Class Point
   {
   private:
   int x,y;
   public:
   Point()x=y=0;
   Point(int xO,int y0)x=x0;y=y0;
   intGetX()return xl
   ihtGetY()returny;
   void print()cout<<"Point("<   (1) ;//友元函数声明
   (2) ;//友元函数声明
   };
   POint operator+(POint&pt,inl dd)
   //加号操作符重载函数,实现Point类对象与整数的加法
  
  
   POint temp=pt;
   temp.x+=dd;
   temp.y+=dd;
   return temp;
  
   POint operator+(POint&ptl,POint&pt2)
  //加号操作符重载函数,实现两个Point类对象的加法
  
   POint temp=ptl;
   temp.x+=pt2.x;
   temp.y+=pt2.y;
   (3) ;
  
  (1)
  (2)
  (3)
  
  四、理解问答题,写出前三小题的程序运行结果和指出后两小题的程
   序(或函数)所能实现的功能。(每小题6分,共30分)
   1.#include
   const int B:2;
   vOid main()
   {
   int p=1,S=1;
   while(s<50)
   p*=B;
   s+=p;
  
   cout<<"S="<   }
  运行结果:
  
  2. # include<iostream, h>
   class CE
   private:
   int a,b;
   int getmin() (return (a<b? a:b);
   public:
   int c;
   void SetValue(int xl,int x2', int x3)
   a=xl; b=x2; c=x3;
  
   iht GetMin();
   };
   int CE: :GetMin()
   iht d= getmin();
   return (d<c? d: c);
  
   void main()
   {
   int x=5,y=12,z=8;
   CE * ep;
   ep = new CE;
   ep-->SetValue(x+ y,y-z, 10);
   cout<<ep-> GetMin( ) <<Eendl;
   CE a= * ep;
   cout<<a. GetMin() * 3 + 15<<endl;
  运行结果:
  
  3. #include
   class A {
   iht a[10]; int n;
   public:
   A(int aa[], iht nn), n(nn) {
   or(int i--OF i  
   int Get(int i) return alii;
   int SumA(int nn) {
   int s=O;
   or(int j=O; j   return s;
  
   };
   void main() {
   int ail= 2,5,8,10,15,20;
   A x(a,4);
   A y(a,6);
   int d=l;
   for(int i=0; i<4; i++) d*=x. Get(i);
   iht f=y. SumA(5);
   cout<<"d="<   cout<<"f="<  运行结果:
  
  4. #t include
   include
  
  #. include
  const int N=1O;
  int ff(int x, int y)
   int z;
   eout<   else r[i] = s[i] ;
   r[n]='/o';
   return r;
  
  程序功能:
  
  五、编程题(每小题5分,共10分)
  1.编写一个函数,分别求出由指针a所指向的字符串中包含的每种十进制数字出现的次数,把统计结果保存在数组b的相应元素中,该函数的原型如下。
  void fun(char* a, int b[ ])
  
  2.根据下面类中CompareBig函数成员的原型和注释写出它的类外定义。
  class AA {
   int* a;
   int n;
   int MS;
  public.
   void InitAA(int aa[], int nh, int ms) {
   if(nn>ms) cout<<"Error!"<   MS=ms;
   n=nn;
   a=new int[MS]
   for(int i=0; i   }
  
   intCompareBig(AA&b);//比较*this与b的大小,从前向后按两数组
   //中的对应元素比较,若,this中元素值大则返回l,若b中
   //元素值大则返回一1,若相等则继续比较下一个元素,直到·
   //一个数组中无元素比较,此时若两者的n值相同则返回o,
   //否则若*this中的n值大则返回1,若b中的n值大则返回一1。
  };
  
  
  
试卷代号:1008
中央广播电视大学2005-2006学年度第一学期"开放本科"期末考试
计算机专业 面向对象程序设计 试题
参考答案
2006年1月
  
   一、单项选择题(每小题2分,共20分)
   1.A 2.A 3.C 4.C 5.D
   6.D 7.A 8.B 9.C 10.C
   二、填空题(每小题2分,共20分) .
   评分标准:每小题若有两个空,则每空1分;若只有一个空,则每空2分。
   1. 4 2 2. 24 192
   3.8 0 4.int(*)[6] *(*(d+i)+j)
   5.int&ra=9; int**rb=&9; 6.const const
   7.N N 8.拷贝构造函数 赋值重载函数
   9.private public 10.优先级 结合性
   三、程序填充题(对程序、函数或类中划有横线的位置,根据题意按标号把合适的内容填写到程
   序后面的标号处。每小题5分。共20分)
   评分标准:对一空给2分,对两空给4分,对三空给5分。
   1.(1)i<=5
   (2)j>:5+i
   (3)cout<<'x'
   2.(1)a[i](或a[i]!='\0')
   (2) a[i]! =c
   (3) '\0'
   3.(1)int&ARRAY::
   (2)n>=s
   (3)v[n](或*(v+n))
  
  
  2. int AA: :CompareBig(AA& b)
   iht k;
   if(n>b, n) k=b. n; else k=n;
   for(int i=0; i   if(a[i]2>b, alii) return 1;
   else if(a[i]   if(k=:n && k==b. n) return O;
   else if(k'   else return -1;
  }


来源:网络整理 免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。

相关文章:

假如由你负责组织开展七一建党主题活动日,你策划了参观04-27

通过对办事大厅服务窗口的满意度调查,群众反映普遍存在04-27

你是某市局办公室主任,办公室还有副主任老王,科员小李,今04-27

为了深化“放管服”改革,江苏省推出“好差评”微信小程04-27

你是信访局的,有人打来电话说有群众打电话举报,你说:“这04-27

疫情期间,身处国门战“疫”一线的海关人勇敢“逆行”留04-27

最近防疫工作不断升级,市级部门要求延缓休假,所有基层岗04-27

你是科长,手下有副科长老李和刚进入单位一年的小王,今天04-27

鸵鸟总是认为自己比別人都聪明。一天,它在沙滩上散步,突04-27

为了精准防控新型冠状病毒感染的肺炎疫情,现需要对入境04-27

热搜文章
最新文章