计算机专业 面向对象程序设计 试题.docx

上传人:b****2 文档编号:24519254 上传时间:2023-05-28 格式:DOCX 页数:9 大小:17.72KB
下载 相关 举报
计算机专业 面向对象程序设计 试题.docx_第1页
第1页 / 共9页
计算机专业 面向对象程序设计 试题.docx_第2页
第2页 / 共9页
计算机专业 面向对象程序设计 试题.docx_第3页
第3页 / 共9页
计算机专业 面向对象程序设计 试题.docx_第4页
第4页 / 共9页
计算机专业 面向对象程序设计 试题.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

计算机专业 面向对象程序设计 试题.docx

《计算机专业 面向对象程序设计 试题.docx》由会员分享,可在线阅读,更多相关《计算机专业 面向对象程序设计 试题.docx(9页珍藏版)》请在冰豆网上搜索。

计算机专业 面向对象程序设计 试题.docx

计算机专业面向对象程序设计试题

计算机专业面向对象程序设计试题

2007年1月

一、单项选择题(每小题1分,共20分)

1.由C++源程序文件编译而成的目标文件的默认扩展名为(C)。

A.cpp  B.exe    C.obj    D.lik

2.设x和y均为bool量,则x&&y为真的条件是(A)。

A.它们均为真             B.其中一个为真

C.它们均为假             D.其中一个为假

3.在下面的二维数组定义中,正确的语句是(C)。

A.inta[5][];                  B.inta[][5];

C.inta[][3]={{1,3,5},{2}};    D.inta[][10];

4.在文件包含命令中,被包含文件的扩展名(C)。

A.必须是.h;       B.不能是.h;

C.可以是.h或.cpp;    D.必须是.cpp;

5.要使语句“p=newint[10][20]”正确,p应事先定义为(D)。

A.int*p;                B.int**p;

C.int*p[20];            D.int(*p)[20];

6.在关键字public后定义的成员为该类的(B)成员。

A.私有     B.公有    C.保护     D.任何

7.假定AA为一个类,a为该类私有的数据成员,若要在该类的一个成员函数中访问它,则书写格式最好为(B)。

A.a             B.AA:

:

a

C.a()          D.AA:

:

a()

8.队列具有(A)的操作特性。

A.先进先出  B.先进后出       C.进出无序      D.仅进不出

9.假定AB为一个类,则执行“ABa,b(3),*p”语句时共调用该类构造函数的次数为(D)。

A.5       B.4       C.3      D.2

10.在重载一个运算符时,其参数表中没有任何参数,这表明该运算符是(B)。

A.作为友元函数重载的1元运算符

B.作为成员函数重载的1元运算符

C.作为友元函数重载的2元运算符

D.作为成员函数重载的2元运算符

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

1.当执行cout语句输出endl数据项时,将使C++显示输出屏幕上的光标从当前位置移动到下一行的开始位置。

2.假定x和y为整型,其值分别为16和5,则a/y和double(x)/y的值分别为3和  3.2  。

3.strlen(“apple”)的值为 5 。

4.C++程序运行时的内在空间可以分为全局数据区,堆区,栈区和代码 区。

5.假定a是一个一维指针数组,则a+i所指对象的地址比a大4×i字节。

6.如果一个派生类只有一个唯一的基类,则这样的继承称为单继承。

7.假定AA是一个类,“AA*abc()const;”是该类中的一个成员函数的原型,在该函数体中不能够 向*this或其成员赋值。

8.假定用户没有给一个名为AB的类定义构造函数,则系统为其定义的构造函数为AB()。

9.假定用户为类AB定义了一个构造函数“AB(intaa){a=aa;}”,该构造函数实现对数据 a  的初始化。

10.作为类的成员函数重载地个运算符时,参数表中只有一个参数,说明该运算符有2 个操作数。

三、程序填充题(对程序、函数或类中划有横线的位置,根据题意按标号把合适的内容填写到程序下面相应标号的后面。

每小题6分,共24分)

1.打印出2至99之间的所有素数(即不能被任何数整除的数)。

#include

#include

voidmain()

{

  inti,n;

  for(n=2;n<99;n++){

     inttemp=int(sqrt(n));//求出n的平方根并取整

     for(i=2;  ⑴ ;i++)

       if(n%i==0) ⑵ ;

       if(i>temp)cout<

  }

  cout<<'\n';

}

⑴i<=temp        ⑵break

2.下面是对按从小到大排列的有序数组a[n]中进行二分查找x的算法,若查找成功返回该元素的下标,否则返回-1。

intBinnarySearch(inta[],intn,intx)

{

  intlow=0,high=n-1;//定义并初始化区间下界和上界变量

  intmid;          //定义保存中点元素下标的变量

  while(low<=high){

     mid=(low+high)/2;

     if(x==a[mid]);  ⑴  

     elseif(x

     else;   ⑵  

  }

  return-1;

}

⑴returnmid    ⑵low=mid+1

3.请补充完整如下的类定义:

 

#include

classA{

  char*a;

public:

  A(){a=0;}//定义无参构造函数,使A的值为空

  A(char*aa){

     a=  ⑴  ;//进行动态存储分配

     strcpy(a,aa);//用aa所指字符串初始化a所指向的动态存储空间

  }

     ⑵  ;//定义析构函数,删除a所指向的动态存储空间

};

⑴newchar[strlen(aa)+1]

⑵~A(){delete[]a;}

 

4.一个类定义如下:

classGoods

{

private:

  chargd_name[20];

  intweight;

  staticinttotalweight;

public:

  Goods(char*str,intw){

     strcpy(gd_name,str);

     weight=w;

     totalweight+=weight;

  }

  ~Goods(){totalweight-=weight;}

  char*GetN(){  ⑴  ;}

  intGetW(){returnweight;}

  staticintGetTotal_weight(){

    ⑵  ;  

  }

};

⑴cout<

四、理解问答题(写出前两小题的程序运行结果和指出后两小题的程序(或函数)所能实现的功能。

每小题6分,共24分)

1.#include

 

constintT=8;

voidmain()

{

  inti,s=0;

  for(i=1;i<=T;i++){

     s+=i*i;

     cout<

  }

  cout<

}

运行结果:

1514305591140204

2.#include

classCE{

private:

  inta,b;

  intgetmax(){return(a>b?

a:

b);}

public:

  intc;

  voidSetValue(intx1,intx2,intx3){

     a=x1,b=x2,c=x3;

  }

  intGetMax();

};

intCE:

:

GetMax(){

  intd=getmax();

  return(d>c?

d:

c);

}

voidmain()

{

  intx=5,y=12,z=8;

  CEex;

  ex.SetValue(x,y,z);

  cout<

}

运行结果:

12

3.intff(intx,inty){

  intz;

  cout<

  cin>>z;

  if(x+y==z)return1;elsereturn0;

}

函数功能:

输入2个整数相加的结果,结果正确返回1,否则返回0

4.char*f(char*s){

  intn=strlen(s);

  char*r=newchar[n+1];

  for(inti=0;i

     if(s[i]>='a'&&s[i]<='z')r[i]=s[i]-'a'+'A';

     elser[i]=s[i];

     r[n]='\0';

     returnr;

}

函数功能:

将字符串中的小写字母转换为大写

五、编程题(每小题6分,共12分)

1.按照下面函数原型语句编写一个递归函数求出并返回数组a中n个元素的平方和。

intf(inta[],intn)

程序如下:

intf(inta[],intn){

  if(n==1)returna[0]*a[0];

     elsereturna[n-1]*a[n-1]+f(a,n-1);

}

2.根据下面类中Sum函数成员的原型和注释写出它的类外定义。

classAA{

  int*a;

  intn;

  intMS;

public:

  voidInitAA(intaa[],intnn,intms){

     if(nn>ms){cout<<"Error!

"<

(1);}

     MS=ms;

     a=newint[MS];

     for(inti=0;i

  }

  intSum();//求出并返回数组a中前n个元素之和

};

程序如下:

intAA:

:

Sum(){

  intsum=0;

  for(inti=0;i

     sum+=a[i];

  returnsum[U1] ;

}

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 从业资格考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1