大虾帮帮忙吧,明天就要
一、选择题1、最初的计算机编程语言是 。
A、机器语言 B、汇编语言 C、高级语言 D、低级语言
2、结构化程序设计的基本结构不包括 。
A、顺序 B、选择 C、跳转 D、循环
3、 不是面向对象程序设计的主要特征。
A、封装 B、继承 C、多态 D、结构
4、关于对象的概念的描述中, 是错误的。
A、对象就是C语言中的结构变量
B、对象是状态和操作的封装体
C、对象之间的信息传递是通过消息进行的
D、对象是某个类的一个实例
5、关于C++与C语言的关系描述中, 是错误的。
A、C语言是C++的一个子集
B、C语言与C++是兼容的
C、C++对C语言进行了一些改进
D、C++和C语言都是面向对象的
6、C++对C语言进行了很多改进,下列描述中 使得C语言发生了质的变化,即从面向过程变成面向对象。
A、增加了一些新的运算符
B、允许函数重载,并允许设置默认参数
C、规定函数说明必须用原型
D、引进了类和对象的概念
7、 不是面向对象系统所包含的要素。
A、重载 B、对象 C、类 D、继承
8、下面程序的输出结果是 。
#include<iostream.h>
Void main()
{
char c=’m’;
int d=5;
cout<<”d=” <<d<<”;”;
cout<<”c=” <<c<<”\n”;
}
A、d=5;c=m B、d=m;c=5
C、d=5; D、d=m;
c=m c=5
9、下面 机制允许对一个函数名给出多个函数定义。
A、封装性 B、函数重载 C、继承性 D、多态性
10、下列属于C++语言合法的字符常量是。
A、’\97’ B、”A” C、’\t’ D、”\0” c
11、在C++语言中,合法的长整型常数是 。
A、0L B、4934123 C、0342145 D、0xa23234 a
12若有以下说明语句:
char s=’\095’;
则该语句 。
A、所得值包含1个字符
B、说明不合法,s的值不确定
C、使s的值包含4个字符
D、使s的值包含3个字符 b
13、在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并执行其他内部 管理操作的函数是
A、友元函数
B、虚函数
C、构造函数
D、析构函数 c
14、、对类成员访问权限的控制,是通过设置成员的访问控制属性实现的,下列不是访问控 制属性的是
A、公有类型
B、私有类型
C、保护类型
D、友元类型 d
15、类的析构函数的作用是
A)一般成员函数的初始化
B)类的初始化
C)对象的初始化
D)删除类创建的对象 d
16、下列说法正确的是
A、内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方
B、内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方
C、类的内联函数必须在类体内定义
D、类的内联函数必须在类体外通过加关键字inline定义 b
17、下面对静态数据成员的描述中,正确的是
A、静态数据成员可以在类体内进行初始化
B、静态数据成员不可以被类的对象调用
C、静态数据成员不能受private控制符的作用
D、静态数据成员可以直接用类名调用 d
18、下面对于友元函数描述正确的是
A、友元函数的实现必须在类的内部定义
B、友元函数是类的成员函数
C、友元函数破坏了类的封装性和隐藏性
D、友元函数不能访问类的私有成员 c
19、在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是
A、派生类的对象可以赋给基类的对象
B、派生类的对象可以初始化基类的引用
C、派生类的对象可以直接访问基类中的成员
D、派生类的对象的地址可以赋给指向基类的指针 c
20、下面程序的运行结果为
#include<iostream>
Using name std;
class A
{
public:
A(){cout<<”1”;}
~A(){cout<<”2”;}
}
class B:public A
{
public:
B(){cout<<”3”;}
~B(){cout<<”4”;}
}
void main()
{
B b;
}
A)1234 B)1324 C)1342 D)3142 b
21、下面关于类和对象的描述中,错误的是
A)类就是C语言中的结构体类型,对象就是C语言中的结构体变量
B)类和对象之间的关系是抽象和具体的关系
C)对象是类的实例,一个对象必须属于一个已知的类
D)类是具有共同行为的若干对象的统一描述体 a
22、下列语句中不是死循环的是
A)int i=10; B)for( int i=1:i<10;i++)
while(1) {
} i--;
i--; }
if(i==1)break;
}
C)int i=0; D)int i=1;
do{ for(;;)i=i+1;
i++;
}while(i>=0) a
23、下面关于数组的描述错误的是
A)在C++语言中数组的名字就是指向该数组第一个元素的指针
B)长度为n的数组,下标的范围是0-n-1
C)数组的大小必须在编译时确定
D)数组只能通过值参数和引用参数两种方式传递给函数 d
24、下面的哪个选项不能作为函数的返回类型?
A)void B)int C)new D)long c
25、不能作为重载函数的调用的依据是
A)参数个数
B)参数类型
C)函数类型
D)函数名称 c
26、在C++语言中,数据封装要解决的问题是
A)数据的规范化
B)便于数据转换
C)避免数据丢失
D)防止不同模块之间数据的非法访问 d
27、对类的构造函数和析构函数描述正确的是
A)构造函数可以重载,析构函数不能重载
B)构造函数不能重载,析构函数可以重载
C)构造函数可以重载,析构函数也可以重载
D)构造函数不能重载,析构函数也不能重载 a
28、下面程序的运行结果是
#include
class base
{
protected:
int a;
public:
base(){ cout<<”0”;}
}
class basel:virtual base
{
public:
base1(){cout<<”1”;}
};
class base2:virtual base
{
public:
base2(){cout<<”2”;}
};
class derived:public base1,public base2
{
public:
derived(){cout<<”3”;}
};
void main()
{
derived obj;
}
A)0123 B)3120 C)0312 D)3012 a
29、下面对静态数据成员的描述中,正确的是
A)静态数据成员是类的所有对象共享的数据
B)类的每个对象都有自己的静态数据成员
C)类的不同对象有不同的静态数据成员值
D)静态数据成员不能通过类的对象调用 a
30、如果类A被说明成类B的友元,则
A)类A的成员即类B的成员
B)类B的成员即类A的成员
C)类A的成员函数不得访问类B的成员
D)类B不一定是类A的友元 d
31、可以用p.a的形式访问派生类对象P的基类成员a,其中a是
A)私有继承的公有成员
B)公有继承的私有成员
C)公有继承的保护成员
D)公有继承的公有成员 d
32、建立派生类对象时,3种构造函数分别是a(基类的构造函数)、b(成员对象的构造函数)、c(派生类的构造函数)这3种构造函数的调用顺序为
A)abc
B)acb
C)cab
D)cba a
33、下面关于虚函数的描述,错误的是
A)在成员函数声明的前面加上virtual修饰,就可把该函数声明为虚函数
B)基类中说明了虚函数后,派生类中对应的函数也必须说明为虚函数
C)虚函数可以是另一个类的友元函数,但不能是静态成员函数
D)基类中说明的纯虚函数在其任何派生类中都必须实现 b
34、下列程序的运行结果为
#include<iostream>
Using namespace std;
int i=0;
class A{
public:
A()}i++;}
};
void main()
{
A a,b[3],*c;
c=b:
cout<<i;
}
A)2 B)3 C)4 D)5 c
35、下面关于C++语言的描述错误的是
A)C++语言支持数据封装
B) C++语言中引入友元没有破坏封装性
C)C++语言允许函数名和运算符重载
D)C++语言支持动态联编 b
36、一个函数功能不太复杂但要求被频繁调用,应选用
A)内联函数 B)重载函数 C)递归函数 D)嵌套函数 a
37、为了使类中的某个成员不能被类的对象通过成员操作符访问,则不能把该成员的访问权限定义为
A)public B)protected C)private D)static a
38、在C++语言程序中,对象之间的相互通信通过
A)继承实现 B)调用成员函数实现
C)封装实现 D)函数重载实现 b
39、类的析构函数是在什么时候调用的?
A)类创建时 B)创建对象时 C)删除对象时 D)不自动调用 c
40、通常拷贝构造函数的参数是
A)某个对象名 B)某个对象的成员名
C)某个对象的引用名 D)某个对象的指针名 c
41、下列不是描述类的成员函数的是
A)构造函数 B)析构函数 C)友元函数 D)拷贝构造函数 c
42、继承机制的作用是
A)信息隐藏 B)数据封装 C)定义新类 D)数据抽象 c
43、在C++语言类体系中,不能被派生类继承的有
A)转换函数 B)构造函数 C)虚函数 D)静态成员函数 b
二、填空题:
1、在C++语言的结构化程序设计中, 是程序的基本组成单元;在C++语言的面向对象设计框架中, 是程序的基本组成单元。 函数 类
2、C++语句const char * const p="hello" , ,所定义的指针p和它所指的内容都不能被 。修改
3、C++语言的参数传递机制包括传值和传地址两种,如果调用函数时,需要改变实参或者返回多个值,应该采取 方式。 传地址
4、对于下面定义的类MyClass,请在函数f( )中添加对象成员把n的值修改为50。
class MyClass
{
public:
MyClass(int x){n=x;}
void SetNum(int n1){n=n1;}
private:
int n;
};
void f()
{
My Class*ptr=new MyClass(45);
;
}
ptr->SetNum(50)
5、继承的方式有公有继承、私有继承和 3种。
6、在面向对象方法中,类之间共享属性和操作的机制称为 。 继承
7、 通过使用new和delete两个运算符进行的分配为 存储分配。 动态
8、在C++语言中,访问一个对象的成员所用的运算符是 ,访问一个指针所指向的对象的成员所用的运算符是 。 成员选择运算符(或”.”) 成员访问运算符(或”->”)
9、C++语言支持的两种多态性分别是编译时的多态性和 的多态性。 运行时
10、派生类构造函数的执行顺序是先执行 的构造函数.然后执行成员对象的构造函数,最后执行 的构造函数。 基类 派生类