大学《面向对象程序设计》试题.docx

上传人:b****7 文档编号:26259751 上传时间:2023-06-17 格式:DOCX 页数:26 大小:26.84KB
下载 相关 举报
大学《面向对象程序设计》试题.docx_第1页
第1页 / 共26页
大学《面向对象程序设计》试题.docx_第2页
第2页 / 共26页
大学《面向对象程序设计》试题.docx_第3页
第3页 / 共26页
大学《面向对象程序设计》试题.docx_第4页
第4页 / 共26页
大学《面向对象程序设计》试题.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

大学《面向对象程序设计》试题.docx

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

大学《面向对象程序设计》试题.docx

大学《面向对象程序设计》试题

《面向对象程序设计》试题

年4月高等教育自学考试《面向对象程序设计》试题

课程代码:

02328

一、单项选择题

1.在C++中把不返回任何类型的函数应该描述说明成

    A.int   B.char   C.void   D.double

2.下列关于静态数据成员的描述中,正确的选项是

    A.静态数据成员是类的所有对象所共有的

    B.静态数据成员要在构造函数内初始化

    C.类的每个对象有自己的静态数据成员

    D.静态数据成员不能通过类的对象调用

3.不同的对象可以调用相同名称的函数并导致完全不同行为的现象称为

    A.数据封装   B.多态性   C.静态变量   D.多重继承

4.关于函数模板的叙述,正确的选项是

    A.函数模板也是一个具体类型的函数

    B.函数模板的类型参数与函数的参数是同一个概念

    C.通过使用不同的类型参数,函数模板可以生成不同类型的函数

    D.用函数模板定义的函数没有类型

5.构造函数不具备的特征是

    A.构造函数的函数名与类名相同   B.构造函数可以重载

    C.构造函数可以设置默认参数   D.构造函数必须指定类型说明

6.适合使用inline来定义内联函数的情况是

    A.函数体含有循环语句   B.函数体含有递归语句

    C.函数代码少、频繁调用   D.函数代码多、不常调用

7.面向对象程序设计思想的主要特征不包括

    A.封装性       B.多态性

    C.继承性   D.功能分解,逐步求精

8.类型转换函数没有返回值类型,而且参数表为

    A.真   B.空   C.假   D.实际参数

9.在派生类中能够直接访问的是基类的

    A.公有成员和私有成员   B.保护成员和私有成员

    C.不可访问的和私有的成员   D.公有成员和保护成员

10.下面关于构造函数和new运算符关系的正确说法是

    A.new运算符不调用构造函数

    B.构造函数一定调用new运算符

    C.当生成新类的实例时,先调用new 算符,然后调用构造函数进行初始化

    D.当用new运算符动态产生类的对象时,new运算符也自动调用构造函数

11.类two的析构函数是

    A.~two()   B.two()   C.own:

:

two()   D.~own:

:

two()

12.C++的流库预定义了四个流,这四个流分别是cin、cout、clog和

    A.cerr   B.inline   C.class   D.object

13.下面叙述中,错误的选项是

    A.基类的保护成员在派生类中仍然是保护的

    B.基类的保护成员在公有派生类中仍然是保护的

    C.基类的保护成员在私有派生类中仍然是私有的

    D.对基类成员的访问必须是无二义性

14.关于模板的描述,错误的选项是

    A.函数模板和类模版的参数可以是任意的数据类型

    B.类模版不能直接使用,必须先实例化为相应的模版类,然后定义了模板类的对象

    C.函数模板不能直接使用,需要实例化为模板函数后才能使用

    D.类模版的成员函数都是模板函数

15.假定AB为一个类,则执行“ABx;”语句时将自动调用该类的

    A.带参构造函数   B.无参构造函数

    C.拷贝构造函数   D.赋值重载函数

16.在成员函数中进行双目运算符重载时,其参数表中应带有

    A.0个参数   B.1个参数

    C.2个参数   D.3个参数

    17.由C++源程序文件编译而成的目标文件的默认文件扩展名是

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

18.C++程序从上机到得到结果的具体操作步骤依次是

    A.编译、编辑、连接、运行   B.编辑、编译、连接、运行

    C.编译、运行、编辑、连接   D.编辑、运行、编辑、连接

19.面向对象方法的多态性是指

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

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

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

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

20.考虑下面的函数原型声明:

voidtestDefaultParam(inta,intb=7,charz=’*’);下面函数调用中,不合法的选项是

    A.testDefaultParam(5);   B.testDefaultParam(5,8);

    C.testDefaultParam(5,’#’);   D.testDefaultParam(0,0,’*’);

二、填空题

21.如果需要在被调函数运行期间,改变主调函数中实参变量的值,则函数的形参应该是      类型。

22.非成员函数应声明为类的      函数才能访问这个类的private成员。

23.进行函数重载时,被重载的同名函数如果都没有用const修饰,则它们的形参个数或    必须不同。

24.运算符重载函数可能是类的      函数,也可以是类的友元函数,还可以是普通函数。

25.函数的递归调用是指函数直接或间接地调用      。

26.设要把一个文件输出流对象myFile与文件“f:

\myText.txt”相关联,所用的C++语句是      。

27.在字长为32位的机器中,sizeof(unsignedint)=      字节。

28.C++语言中用来定义虚函数所用的关键字是      。

29.静态数据成员是类的所有对象中共享的成员,静态数据成员初始化与一般数据成员初始化      。

30.设类A有成员函数:

voidFun(void):

要定义一个指向类成员函数的指针变量pafn来指向Fun,该指针变量的声明语句是      。

三、名词解释题

    31.继承

    32.虚基类

    33.赋值传递

    34.函数指针

    35.函数重载

四、程序分析题

    36.请写出myTextl.txt文本文件中的内容。

#include

#include

usingnamespacestd;

#include

voidmain()

{

     ofstreammyFile1;

     myFilel.open("myTextl.txt");

     cout<<"EnterthedatainChineseformat(e.g.,2008,May25):

"<

     stringDate("2008,January1");

     stringYear--Date.substr(0,4);

     intk=Date.find(",");

     inti=Date.find("");

      stringMonth=Date.substr(k+1,i-k-1);

      stringDay--Date.substr(i+1,2);

      stringNewDate---Day+""+Month+""+Year;

      myFile1<<"Originaldate:

"<

      myFile1<<"Converteddate:

"<

      myFilel.close();

}

37.请写出下面程序段的输出结果。

#include

usingnamespacestd;

voidmain()

{

      inta,b,c=0;

       for(a=1;a<4;a++)

           for(b=6;b>1;b-=2)

        {

                if((a+b)%2==0)c+=a+b;elsec+=a*b;

                if(b==2)cout<

   }

}

38.请写出下面程序段的输出结果。

#include

usingnamespacestd;

voidmain()

{

     inta[8]={36,25,48,14,55,40,50,24};

     intbi,b2;

     b1=b2=a[0];

     for(inti=1;i<8;i++)

          if(a[i]>b1){b2=b1;b1=a[i];}

          elseif(a[i]>b2)b2=a[i];

     cout<

}

39.请写出下面程序段的输出结果。

#include

usingnamespacestd;

inta=5;

voidmain()

{

     intb=a+20;

     inta=10;

     cout<

     {  inta=0,b=0;

          for(inti=1;i<6;i++)

        {

              a+=i;b+=a;

        }

          cout<

    }

     cout<

}

 

五、编程题

40.编写一个程序,至少设计一个点类Point,求两个点之间的距离。

41.把从键盘上输入的一批整数(以-1作为终止输入的标志)保存到文本文件“a:

xxk1.dat”。

 

 

年4月高等教育自学考试《面向对象程序设计》试题

课程代码:

02328

一、单项选择题

1.程序中主函数的名字为

    A.MAIN   B.Main   C.main   D.任意标识符

2.假设在程序中a、b、c均被定义成整型,所赋的值都大于1,则下列能正确表示代数式的表达式是

    A.1.0/a/b/c   B.1/(a*b*c)

    C.1.0/a*b*c   D.1/a/b/(float)c

3.设x是一个Bool类型逻辑量,y的值为10,则表达式x&&y的值为

    A.1   B.0   C.与x值相同   D.与x值相反

4.假定下列x和y均为int型变量,则不正确的赋值为

    A.x+=y++   B. x++=y++   C. x=++y   D.++x=++y

5.循环语句“for(inti=0;i

    A.1   B.n-1   C.n   D.n+1

6.在下面的字符数组定义中,有语法错误的选项是

A.chara[15];                      B.chara[10]--'5';

C.chara[]="x+y=55.";               D.chara[20]="abcdefg";

7.下面叙述中不正确的是

    A.函数必须有返回值

    B.在一个函数中,可以同时存在多条return语句

    C.不同的函数中可以使用相同名字的变量

    D.函数的定义不能嵌套,但函数的调用可以嵌套

8.下面的标识符中,具备文件级作用域的是

    A.语句标号       B.函数形参

    C.自动类标识符   D.外部静态类标识符

9.C++语言的编译系统对于宏命令的处理过程是

    A.在程序运行时进行

    B.在程序连接时进行

    C.和C++程序的其它语句同时进行编译

    D.在对源程序中其它成分正式编译之前进行

10.文件包含命令中被包含的文件的扩展名

    A.可以是.h或.cpp   B.必须是.cpp

    C.必须是.h         D.不能是.h

11.关于封装,下列说法中说法不正确的是

    A.通过封装,对象的全部属性和操作结合在一起,形成一个整体

    B.通过封装,一个对象的实现细节被尽可能地隐藏起来(不可见)

    C.通过封装,每个对象都成为相对独立的实体

    D.通过封装,对象的属性都是不可见的

12.C++的流库预定义了四个流,这四个流分别是cin、cout、clog和

    A.cerr   B.inline   C.class   D.object

13.面向对象软件开发中使用的OOD表示

    A.面向对象分析   B.面向对象设计

    C.面向对象语言   D.面向对象方法

14.在关键字private后面定义的成员为类的

    A.公用成员   B.私有成员

    C.保护成员   D.任何成员

15.若需要把一个类外定义的成员函数指明为内联函数,必须放在函数原型或函数头的前面的关键字是

    A.in   B.int   C.inline   D.include

16.对于一个类的析构函数,其函数名与类名

    A.无关系     B.完全不同

    C.完全相同   D.只相差一个字符

17.对类中引用成员的初始化是通过构造函数中给出的

    A.函数体实现的     B.参数表实现的

    C.初始化表实现的   D.初始化表或函数体实现的

18.下面针对静态数据成员的描述中,正确的说法是

    A.静态数据成员是类的所有对象共享的数据

    B.类的每个对象都有自己的静态数据成员

    C.类的不同对象有不同的静态数据成员值

    D.静态数据成员不能通过类的对象调用

19.下面关于虚函数的描述,错误的说法是

    A.在成员函数声明的前面加上Virtual约束,就可将该函数声明为虚函数

    B.基类中说明了虚函数后,派生类中对应的函数也必须说明为虚函数

    C.虚函数可以是另一个类的友元函数,但不能是静态成员函数

    D.基类中说明的纯虚函数在其任何派生类中都必须实现

20.在C++语言程序中,对象之间的相互通信主要是通过

    A.继承实现   B.调用成员函数实现

    C.封装实现   D.函数重载实现

21.派生类可以访问基类中的protected成员的派生方式包括

    A.public和private      B.public、protected和private

    C.protected和private   D.只有protected

22.当一个类的某个函数被说明为Virtual时,在该类的所有派生类中的同原型函数

    A.都是虚函数     B.只有被重新说明时才是虚函数

    C.都不是虚函数   D.只有被重新说明为virtual时才是虚函数

23.能作为C++程序的基本单位是

    A.字符   B.语句   C.函数   D.源程序文件

24.在下面循环语句中循环体执行的次数是

    inti=0;doi++;while(i*i<10);

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

25.以下关于函数模板描述正确的选项是

    A.函数模板也是一个具体类型的函数

    B.函数模板的类型参数与函数的参数是同一个概念

    C.通过使用不同类型参数,函数模板可以生成不同类型函数

    D.用函数模板定义的函数没有类型

26.函数原型语句正确的选项是

    A.intFunction(voida);   B.voidFunction(int);

    C.intFunction(a);       D.voidint(doublea);

27.下面的标识符中,文件级作用域是

    A.函数形参           B.语句标号

    C.外部静态类标识符   D.自动类标识符

28.设array为一个数组,则表达式sizeof(array)/sizeof(array[0]的结果是

    A.array数组首地址                 B.array数组中元素个数

    C.array数组中每个元素所占的字节数 D.array数组占的总字节数

29.面向对象方法的多态性是指

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

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

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

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

30.软件产品准确执行软件需求规格说明书中所规定的任务的能力叫做软件的

    A.可维护性   B.可复用性   C.兼容性   D.正确性

 

二、填空题

31.如果类B继承了类A,则称类A为类B的基类,类B称为类A的      。

32.每个对象都是所属类的一个      。

33.对象是对问题域中客观事物的      。

34.C++支持两种多态性:

编译时的多态性和      时的多态性。

35.假定要把aa定义为AB类中的一个常量整数型数据成员,则定义语句为      。

36.与结构成员访问表达式p->name等价的表达式是      。

37.定义一个函数模板要用到的第一个修饰符是      。

38.对于无返回值函数,定义函数时要用      修饰函数类型。

39.假定p是一个指针,则*p++运算首先访问      。

40.假定对数组a[]进行初始化的数据为{2,7,9,6,5,7,10),则a[2]被初始化成      。

 

 

三、程序分析题

41.请写出下面程序的输出结果。

#include

voidmain()

     intx=5;

     switch(2*x-3){

           case4:

cout<

           case7:

cout<<2*x+l<<'"

           case10:

cout<<3*x-l<<'';break;

           default:

cout<<"default"<

    }

     cout<<"switchend."<

}

42.请写出下面程序段的输出结果。

#include

voidf4(inta[],intn,int&s)

{

      s=0;

      for(inti=0;i

}

voidmain()

{

      intb[8]={4,8,6,9,2,10,7,12};

      intx;f4(b,5,x);

      cout<

      inty;f4(b+3,4,y);

      cout<

      cout<

}

43.请写出下面程序段的输出结果。

#include

voidmain()

{

     chara[]="abcdabcabfgacd";

     inti1:

0,i2=0,i=0;

     while(a[i])

    {

          if(a[i]=='a')il++;

          if(a[i]=:

'b')i2++;

          i++;

    }

     cout<

}

44.请写出下面程序段的输出结果。

#include

classA

{

     int*a;

     public:

     A(intx=0):

a(newint(x)){}

     -A() {deletea;}

     intgetA0{return*a;}

     voidsetA(intx){*a=x;}

};

voidmain()

{

     Ax1,x2(3);

     A*p=&x2;

     p->setA(x2.getA0+5);

     xl.setA(15+xl.getA0);

     cout<

}

45.请写出下面程序段的功能。

#include

#include

#include

voidmain()

{

     inti=10,a;

     while(i>0){

          a=rand0%90+10;

          intj,k=int(sqrt(a)+le-5);    //sqrt(x)为求x的平方根函数

          for(j=2;j<=k;j++)

                if(a%j==0)break;

          if(j>k){cout<

}

}

46.请写出下面程序段的输出结果。

#include

classBase

{

     public:

          Base(inti){x=i;cout<<"Base:

"<

          virtual-Base0{cout<<"-Base:

"<

     private:

          intx;

};

classDerived:

publicBase

{

     public:

          Derived(ihti,intj):

Base(i){y:

j;cout<<"Derived:

"<

          -Derived(){cout<<"~Derived:

"<

     private:

          inty;

};

voidmain()

{

     Base*b1=newBase(15);

     deleteb1;

     Base*b2=newDerived(20,25);

     deleteb2;

}

 

四、程序设计题

47.给定正整数n,求平方不超过n的最大正整数。

48.设计一个循环计数器类CIRCU

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

当前位置:首页 > PPT模板 > 动态背景

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

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