C++考试题型
- 格式:doc
- 大小:55.00 KB
- 文档页数:8
考试内容:1)C语言语法2)C++面向对象方法3)函数、类程序编程主要考察基础性、重点性知识,请结合课本、上课内容进行复习。
主要考试题型如下:一.选择题1、面向对象程序设计将数据与放在一起,做为一个相互依存、不可分割的整体来处理。
A 对数据的操作B 信息C 数据隐藏D 数据抽象2、一个类的析构函数。
A唯一的B允许重载C至多可有两个D只能是缺省的3、类型修饰符unsigned修饰类型是错误的。
A charB intC long intD float4、若执行完以下语句,i和j的值分别为。
int i;int &j=i;i=5;j=i+1;A 5,5B 5,6C 6,6D 6,55、对于语句int *pa[5];的描述,下列说法正确的是。
Apa是一个指向数组的指针,所指向的数组是5个int型元素;Bpa是一个指向某数组中第5个元素的指针,该元素是int型变量;Cpa[5]表示某个数组的第5个元素;Dpa是一个具有5个元素的指针数组,每个元素都是一个int型指针。
6、假设整型数i的地址为0x12345678,指针ip地址为0x21850043,则执行以下语句后,k 的值为。
int i=100;int *ip=&i;int k=*ip;A 0x12345678B 0x21850043C 100D 不确定7、有如下定义:int a[5],*p; p=a;则下列描述错误的是。
A 表达式p=p+1合法的B 表达式a=a+1是合法的C 表达式p-a是合法的D 表达式a+2是合法的8、#include <iostream.h>int a=3;void f(int);int main( ){ int a=5;f(a);cout << "a=" <<a<<endl;return 0;}void f(int b) {b=4; a+=b; }程序的输出结果是A 3B 5C 7D 99、执行下列程序段时,输出。
int s1=0,s2=0,s3=0,s4=0;for(int t=1;t<=4;t++)switch(t){case 4:s1++;break;case 3:s2++;break;case 2:s3++;default: s4++;}cout<<s1<<”,”<<s2<<”,”<<s3<<”,”<<s4<<endl;A 语法出错B 1,1,1,2C 1,2,3,2D 1,1,2,210、类MyClass的定义如下:class MyClass{public:MyClass(){value=0;}SetValue(int i){value=i;}private:int value;};则对语句:MyClass *p,my;p=&my;正确的描述是。
A语句p=&my;是把对象my赋值给指针变量p;B语句MyClass *p,my;会调用两次类MyClass的构造函数C对语句*p.SetValue(5)的调用是正确的D语句p->SetValue(5)与my.SetValue(5)等价11、下列各类函数中,不是类的成员函数。
A 构造函数B 析构函数C 友元函数D 拷贝构造函数12、派生类的对象对它的基类成员中是可以访问的。
A 公有继承的公有成员B 公有继承的私有成员C 公有继承的保护成员D 私有继承的公有成员13、有关析构函数的说法不正确的是。
A 析构函数有且只有一个B 析构函数无任何函数类型C 析构函数和构造函数一样可以有形参D 析构函数的作用是在对象被撤销时收回先前分配的内存空间14、通常拷贝构造函数的参数是。
A 某个对象名B 某个对象的成员名C 某个对象的引用名D 某个对象的指针名15、对于一个类的构造函数,其函数名与类名( )。
A. 完全相同B. 基本相同C. 不相同D. 无关系16、类的构造函数是在定义该类的一个( ) 时被自动调用执行的。
A. 成员函数B. 数据成员C. 对象D. 友元函数17、在下面的二维数组定义中,哪一个是正确的?( )A. int a[5][];B. int a[](10);C. int a[][];D. int a[][5]={{1,2,3},{4,5}};18、下面的哪一个函数头格式不正确?()A. AA(int a, int b)B. AA(int a=0, int b)C. AA(int a=0, int b=0)D. AA(int a, int b=0)19、假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为( )。
A. AB operator +(AB& a, AB& b);B. AB operator +(AB& a);C. operator +(AB a);D. AB& operator +();20、常指针const int *p说明不能修改()。
A、p指针B、p指针指向的变量C、p指针指向的数据类型D、上述A、B、C三者21、下面的哪一个保留字不能作为函数的返回类型?( )A. voidB. intC. newD. long22、假定a为一个数组名,则下面的哪一种表示有错误?( )A. a[i]B. *++aC. *aD. *(a+1)23、设”int a=12;”,则执行完语句”a+=a*a;”后,a的值是( )。
a=a+a*a=12+12*12=156A. 12B. 144C. 156D. 28824、下列函数中,不能重载的函数是( )。
A成员函数B非成员函数C构造函数D析构函数25、设x是一个bool型的逻辑量,y的值为10,则表达式x && y的值为()。
A. 1B. 0C. 与x值相同D. 与x值相反26、设person是一个类,p1是该类的一个对象,p2是指向p1的指针,getname是该类的一个成员函数,则以下不正确的表达是()。
A、person.getname( )B、p1.getname( )C、p1.person::getname( )这里getname()和person::getname()是等价的后者显式的写出了getname()的域D、p2->getname( )27、下列关于派生类的描述中,错误的是( )。
A派生类至少有一个基类B一个派生类可以作为另一个派生类的基类C派生类的成员除了自身类的成员外,还包含了其基类的成员D派生类的成员可以访问其基类中的所有成员28、如果是类B在类A的基础上构造,那么,就称()。
A. 类A为基类或父类,类B为超类或子类B. 类A为基类、父类或超类,类B为派生类或子类C. 类A为派生类,类B为基类D. 类A为派生类或子类,类B为基类、父类或超类29、C++的继承性允许派生类继承基类的()。
A. 部分特性,并允许增加新的特性或重定义基类的特性B. 部分特性,但不允许增加新的特性或重定义基类的特性C. 所有特性,并允许增加新的特性或重定义基类的特性D. 所有特性,但不允许增加新的特性或重定义基类的特性30、派生类的成员函数可以直接访问基类的()成员。
A. 所有B. 公有和保护C. 保护和私有D. 私有31、对于公有继承,基类的公有和保护成员在派生类中将( )成员。
A. 全部变成公有B. 全部变成保护C. 全部变成私有D. 仍然相应保持为公有和保护32、对于公有继承,基类中的私有成员在派生类中将( )。
A. 能够直接使用成员名访问B. 能够通过成员运算符访问C. 仍然是基类的私有成员D. 变为派生类的私有成员33、当保护继承时,基类的()在派生类中成为保护成员,在类作用域外不能够通过派生类的对象来直接访问该成员。
A. 任何成员B.公有成员和保护成员C. 保护成员和私有成员D.私有成员34、在定义一个派生类时,若不使用保留字显式地规定采用何种继承方式,则默认为()方式。
A. 私有继承B. 非私有继承C. 保护继承D. 公有继承35、建立包含有类对象成员的派生类对象时,自动调用构造函数的执行顺序依次为()的构造函数。
A. 自己所属类、对象成员所属类、基类B. 对象成员所属类、基类、自己所属类C. 基类、对象成员所属类、自己所属类D. 基类、自己所属类、对象成员所属类36、当派生类中有和基类一样名字的成员时,一般来说,()。
A. 将产生二义性B. 派生类的同名成员将覆盖基类的成员C. 是不能允许的D. 基类的同名成员将覆盖派生类的成员公式1在定义派生类时,C++里是允许派生类中的成员名和基类中的成员名相同,出现这种情况,我们称派生类成员覆盖了基类中使用相同名称的成员。
也就是说当你在派生类中或用对象访问该同名成员时,你所访问只是派生类中的成员,基类中的就自动被忽略。
但如果我确实要访问到基类中的同名成员那怎么办,C++中这样规定必须在成员名前加上基类名和作用域标识符"::"。
37、下列对派生类的描述中错误的说法是:()。
A. 派生类至少有一个基类B. 派生类可作为另一个派生类的基类C. 派生类除了包含它直接定义的成员外,还包含其基类的成员D. 派生类所继承的基类成员的访问权限保持不变38、派生类的对象对其基类中()可直接访问。
A. 公有继承的公有成员B. 公有继承的私有成员C. 公有继承的保护成员D. 私有继承的公有成员39、设置虚基类的目的是()。
A、简化程序B、消除二义性C、提高运行效率D、减少目标代码40、一个类的构造函数通常被定义为该类的( ) 成员。
A. 公用B. 保护C. 私有D. 友元二、填空题1、数学式子x2+y2写成C++语言表达式是。
2、如果a=1,b=2,c=3,则条件表达式a<b?a:c的值为。
3、C++使用cin和cout进行输入输出操作的程序必须包含头文件4、用C++表达式描述命题“a与b中有一个小于c”:。
5、定义内联函数所用的关键字,定义友元所用的关键字为。
6、执行常量定义语句const int size=100*sizeof(int);后,符号常量size的值为。
7、设m=1,n=2, 则表达式m++= =n和++m= =n的值分别为和。
8、任何类中允许有、、三种访问限制类型,数据和成员函数的默认类型为。
9、若Queue是一个类,aQueue是它的一个对象,而且该类中定义了一个静态成员函数show(则在类外对该成员的函数进行调用的方式可以为和。
三、阅读程序,写出main程序运行输出结果。
1、#include <iostream>using namespace std;void splitfloat(float x, int *p1, float *p2){*p1=(int)x;*p2=x-*p1;}int main(){int n;float x ,f;cin>>x;splitfloat(x,&n,&f);cout<<”n=”<<n<<”,”<<”f=”<<f<<endl;return 0;}主程序输入使x=3.1415,程序出结果为。