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

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

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

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

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

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

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

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

1.C++源程序文件的缺省扩展名为(A)。

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

2.x>0||y==5的相反表达式为(B)。

A.x<=0||y!

=5             B.x<=0&&y!

=5

C.x>0||y!

=5              D.x>0&&y==5

3.在下面的字符数组定义中,(D)的语法错误。

A.chara[20]=”abcdefg”;        B.chara[]=”x+y=55.”;

C.chara[15];                     D.chara[10]=’5’;

4.以下正确的函数原型语句是(A)。

A.doublefun(intx,inty);   B.doublefun(intx;inty);

C.doublefun(intx=5,inty); D.doublefun(intx,y);

5.软件产品可被全部或部分重用于新的应用的能力叫做软件的(B)。

A.可维护性          B.可复用性

C.兼容性            D.正确性;

6.在多文件结构的程序中,通常把含有main()函数的文件称为(A)。

A.主文件     B.实现文件    C.程序文件     D.头文件

7.在一个用链表实现的队列类中,假定每个结点包含的值域用elem表示,包含的指针域用next表示,链队的队首指针用elemHead表示,队尾指针用elemTail表示,若链队为空,则进行插入时必须把新的地址赋给(C)。

A.elemHead            B.elemTail

C.elemHead和elemTail D.elemHead或elemTail

8.假定AB为一个类,则执行“ABa,b

(2),c[3],*p=&a;”语句时共调用该类无参构造函数的次数为(4)次。

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

9.引入友元的主要目的是为了(C)。

A.增强数据的安全性       B.提高程序的可靠性

C.提高程序的效率的灵活性 D.保证类的封装性

10.假定类B是在类A的基础上扩充而得到的,那么就称(B)。

A.类A为基类或父类,类B为超类或子类

B.类A为基类、父类或超类,类B为派生类或子类

C.类A为派生类,类B为基类

D.类A为派生类或子类,类B为基类、父类或超类

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

1.由函数原型语句“intfun1(void);”可知,该函数的返回类型为整型,该函数带有0个参数。

2.假定x是一个逻辑量,则x||false的值与x的值 相同 。

3.作为语句桔标号使用的C++保留字case和default只能用于switch 语句的定义体中。

4.对一个二维字符数组a进行初始化的数据表为{“123”,”456”,”789”},则a[1]元素对应的字符串为456。

5.NULL是一个符号常量,通常作为空指针值,它的具体值为‘\0’。

6.内联函数的定义模块与所属的类模块必须放在同一个文件中。

7.一个类的构造函数实现对该类对象进行初始化的功能。

8.假定为类AB定义了一个构造函数“AB(intaa=0):

a(aa){}”,则定义该类的对象时,可以有2种不同的定义格式。

9.重载抽取运算符>>时,其运算符函数的返回值类型应当是istream&。

10.若多个基类及其派生类中都定义了同名的函数成员,要访问一个类中该成员函数时,就需要在函数名前加上类名和类区分符:

:

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

(每小题5分,共20分)

1.下面程序算出

的值。

#include

voidmain()

{

  doublex,p1=1,p2=1,s=0;

  inti,j=1;

  cout<<"输入x的值:

";

  cin>>x;

  for(i=1; ⑴ ;i++){

     p1*=x;

     p2*= ⑵ ;

     s+=j*p1/p2;

     j= ⑶;

  }

  cout<

}

⑴i<=10

⑵i

⑶-j

2.假定结点类型的定义为“structNODE{intdata;NODE*next;};”,下面算法是依次输出以L为表头指针的单链表中各结点的值。

voidff(NODE*L)

{

  for(⑴;p!

=NULL;⑵)

     cout<<⑶<<'';

  cout<

}

⑴NODE*p=L

⑵p=p->next

⑶p->data

3.一个带类的程序如下:

classA{

  inta,b;

public:

  A(intaa=0,intbb=0):

⑴{}//分别用bb和bb初始化a和b

};

voidmain(){

   ⑵;//定义类A的对象x并用5初始化,定义y并用x初始化

   ⑶;//定义p指针,指向对象x

}

⑴a(aa),b(bb)

⑵Ax(5),y(x)

⑶A*p=&x

 

4.一个带类的程序如下:

classA{

  inta,b;

public:

      ⑴    //定义构造函数,使参数aa和bb的默认值为0,

              //在函数体中用aa初始化a,用bb初始化b

};

voidmain(){

  A*p1,*p2;

    ⑵  ;//调用无参构造函数生成由p1指向的动态对象

    ⑶  ;//调用带参构造函数生成由p2指向的动态对象,

           //使a和b成员分别被初始化为4和5

}

⑴A(intaa=0,intbb=0){a=aa;b=bb;}

⑵p1=newA

⑶p2=newA(4,5)

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

(每小题6分,共30分)

1.#include

constintM=20;

voidmain()

{

  intc2,c3,c5;

  c2=c3=c5=0;

  for(inti=1;i

     if(i%2==0)c2++;

     if(i%3==0)c3++;

     if(i%5==0)c5++;

  }

  cout<

}

 

 

运行结果:

963

2.#include

#include

classCD{

  char*a;

  intb;

public:

  voidInit(char*aa,intbb)

  {

     a=newchar[strlen(aa)+1];

     strcpy(a,aa);

     b=bb;

  }

  char*Geta(){returna;}

  intGetb(){returnb;}

  voidOutput(){cout<

};

voidmain()

{

  CDdx,dy;

  dx.Init("abcdef",30);

  dy.Init("shenyafen",3*dx.Getb()+5);

  dx.Output();

  dy.Output();

}

运行结果:

abcdef30

         Shenyafen95

3.#include

classBase

{

public:

  Base(inti,intj){x0=i;y0=j;}

  voidMove(intx,inty){x0+=x;y0+=y;}

  voidShow(){cout<<"Base("<

private:

[w1] 

  intx0,y0;

};

classDerived:

publicBase

{

public:

  Derived(inti,intj,intm,intn):

Base(i,j){x=m,y=n;}

  voidShow(){cout<<"NEXT("<

private:

  intx,y;

};

voidmain()

{

  Baseb(1,2);

  b.Show();

  Derivedd(3,4,10,15);

  d.Move(5,6);

  d.Show();

}

运行结果:

Base(1,2)

       NEXT(18,25)

4.#include

voidmain()

{

  inti,s=0;

  intN;

  cout<<"输入一个整数:

";

  cin>>N;

  for(i=1;i<=N;i++)s+=i*i;

  cout<

}

程序功能:

由键盘输入一个正整数N,计算并输出从1到N的各整数平方之和。

5.intf(constchar*s)

{

  inti=0;

  while(*s++)i++;

  returni;

}

程序功能:

统计字符串中所包含的字符个数。

五、编程题(每小题5分,共10分)

1.根据下面函数原型编写一个函数,求出并返回由字符指针s所指向的字符串中包含的字符’a’和’A’的总个数。

intvoid[w2] fun(char*a);

int fun(char*a)

{

  inti=0;

  for(;*a;*a++)if(*a=='a'||*a=='A')i++;

  returni;

}或

int fun(char*a)

{

  inti=0;

  do{if(*a=='a'||*a=='A')i++;}while(*a++);

  returni;

}

2.根据下面类中拷贝构造函数的原型写出它的类外定义。

#include

classArray{

  int*a;//指向动态分配的整型数组空间

  intn;//数组长度

public:

  Array(intaa[],intnn){ //构造函数

     n=nn;

     a=newint[n];

     for(inti=0;i

  }

  Array(Array&bb);       //拷贝构造函数

  Array&Give(Array&cc);//实现cc赋值给*thia的功能并返回*this

  intLenth(){returnn;} //返回数组长度

};

 

Array:

:

Array(Array&bb)

{

  

  n=bb.n;

  a=newint[n];

  for(inti=0;i

}

 

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

当前位置:首页 > 小学教育 > 语文

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

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