《面向对象程序设计2261》22春在线作业1
共40道题 总分:100分
一、单选题(共30题,60分)
1.private访问属性限制对象的成员可以在()中访问
A、本类的成员函数
B、main函数
C、父类的成员函数
D、子类的成员函数
2.C++异常处理机制中没有()
A、try
B、throw
C、catch
D、finally
3.下面不支持下标操作的容器是()
A、vector
B、deque
C、list
D、map
4.C++源文件的缺省扩展名为()
A、cpp
B、exe
C、obj
D、lik
5.数组名作为实参传递给形参时,数组名被处理为该数组的()
A、长度
B、元素个数
C、首地址
D、各元素的值
6.有如下类和对象的定义:class Constants{public: static double getPI(){return 3.1416;}};Constants constants;下列各组语句中,能输出 3.1416 的是 ( )
A、cout<<constants->getPI();和cout<<Constants::gerPI();
B、cout<<constants.getPI();和cout<<Constants.getPI();
C、cout<<constants->getPI();和cout<<Constants->getPI();
D、cout<<constants.getPI();和cout<<Constants::getPI();
7.下列排序算法中,平均效率最低的排序算法是()
A、插入法
B、冒泡法
C、选择法
D、快速排序法
8.如果在try块中用throw”error”;语句抛出一个异常,则参数类型是()的catch块能够捕获这个异常。
A、char*
B、constchar*
C、Char
D、constchar
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、在子类中这两个函数构成重载关系
B、子类不会继承父类的这个函数
C、子类中的函数会覆盖父类中的函数
D、编译时会发生错误川大答案请进:opzy.net或请联系微信:1095258436
11.多态性是通过()实现的
A、构造函数
B、析构函数
C、虚函数
D、函数重载
12.用cin为整型变量输入数据时,如果从键盘输入的不是数字,输入后整型变量中的结果会是:()
A、0
B、负数
C、正数
D、不确定
13.下面的选项中正确的赋值语句是(chara[5],*p=a;)()
A、p=“abcd”;
B、a=“abcd”;
C、*p=“abcd”;D*a=“abcd”;
14.假定AB为一个类,则执行“ABa(4),b[4],*p[5]”语句时,自动调用该类构造函数的次数为()
A、4
B、5
C、8
D、13
15.链表的基本单元是()
A、节点
B、头指针
C、尾指针
D、数据域
16.下列语句分别是不同程序中的第一个输入输出语句,若去掉其中的“<<left”,输出效果将发生变化的是()
A、cout<<left<<setfill(~*~)<<357;
B、cout<<left<<setw(5)<<357;
C、cout<<left<<setw(5)<<”ABCDE”;
D、cout<<left<<”ABCDE”;
17.已知Value是一个类,Value是Value的一个对象。下列以非成员函数形式重载的运算符函数原形中,正确的是()
A、Valueoperator+(Valuev,inti);
B、Valueoperator+(Valuev=value,inti);
C、Valueoperator+(Valuevinti=0);
D、Valueoperator+(Valuev=value,inti=0);
18.以下对二维数组a的正确说明是:()
A、inta[3][];
B、floata(3,4);
C、doublea[1][4];
D、floata(3)(4);
19.以下不能正确进行字符串赋初值的语句是()
A、charstr[5]=”good!”;
B、charstr[]=”good!”;
C、char*str=”good!”;
D、charstr[5]={‘g’,‘o’,‘o’,‘d’};
20.有如下定义:int a[5]={1,3,5,7,9},*p=a;下列表达式中不能得到数值 5 的是 ( )
A、a[2]
B、a[3]
C、*(p+2)
D、*p+4
21.如果定义了一个类myclass,则为myclass类对象以成员函数形式重载后++运算符的声明应该为()
A、myclassoperator++();
B、myclass& operator++();
C、myclassoperator++(int);
D、myclass& operator++(int);
22.一个类如果没有定义任何函数,编译器不会自动为这个类产生()
A、拷贝构造函数
B、无参构造函数
C、输出流运算符
D、赋值运算符
23.若有说明: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
24.有如下类定义:class Point{private;static int how_many;};___________ how_many=0; 要初始化 Point 类的静态成员 how_many,下划线处应填入的内容是
A、ing
B、staticint
C、intPoint::
D、staticintPoint::
25.在定义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]
26.判断一个ofstream类对象file打开文件是否失败,应该判断()
A、创建文件流对象时是否抛出异常
B、open成员函数的返回值
C、feof成员函数的返回值
D、!file是否为真
27.有如下类定义:class MyClass{ int value; public:MyClass(int n): value (n) {}int gerValue()const{ return value;}};则类 MyClass 的构造函数的个数是 ( )
A、1个
B、2个
C、3个
D、4个
28.队列的最大特征是()
A、先进先出
B、后进先出
C、自动排序
D、大数优先
29.C++泛型编程通过()实现
A、void
B、template
C、NULL
D、typedef
30.如果有如下定义:constchar*str=”OK”;那么,sizeof(str)的值应该是()
A、1
B、2
C、3
D、4
二、多选题(共5题,20分)
1.构造函数()
A、函数名只能是类名
B、返回类型可以是任意的
C、参数个数和类型可以是任意的
D、在对象创建时自动调用
2.关于公共静态数据成员,下面说法正确的是()
A、在main函数之前创建
B、跟某个具体对象无关
C、可以用类名和成员名直接访问
D、需要在类体外初始化
3.设有定义语句: int x[6]={2,4,6,8,5,7},*p=x,i; 要求依次输出x数组6个元素中的值,下列选项中能完成次操作的语句有_( )、
A、for(i=0;i<6;i++)printf(“-”,*(p++));
B、for(i=0;i<6;i++)printf(“-”,*(p+i));
C、for(i=0;i<6;i++)printf(“-”,*p++);
D、for(i=0;i<6;i++)printf(“-”,(*p)++);
4.面向对象的编程方法的主要特征包括()
A、封装
B、继承
C、多态
D、消息
5.类成员的访问属性可以是()
A、public
B、protected
C、private
D、default
三、判断题(共5题,20分)
1.C++语言是从早期的C语言逐渐发展演变而来的,与C语言相比,它在求解问题方法上进行的最大改进是面向过程。()
A、错误
B、正确
2.宏名必须用大写字母表示。()
A、错误
B、正确
3.字符串”ab\\\n”在机器中占6个字节。()
A、错误
B、正确
4.1.234e0为C++语言合法常量。()
A、错误
B、正确
5.结构化程序设计的基本方法是递归法。()
A、错误
B、正确