C++模拟试题.docx
- 文档编号:29604579
- 上传时间:2023-07-25
- 格式:DOCX
- 页数:22
- 大小:24.20KB
C++模拟试题.docx
《C++模拟试题.docx》由会员分享,可在线阅读,更多相关《C++模拟试题.docx(22页珍藏版)》请在冰豆网上搜索。
C++模拟试题
CPP程序设计
模拟考试1--第1套试卷
1.已定义ch为字符型变量,以下赋值语句中错误的是(____)
A.ch='\';
B.ch=62+3;
C.ch=NULL;
D.ch='\xaa';
正确答案:
【A】 分值:
【1】
2.下列定义数组的语句中正确的是(____)
A.#definesize10 char str1[size],str2[size+2];
B.charstr[];
C.intnum['10'];
D.intn=5;inta[n][n+2];
正确答案:
【A】 分值:
【1】
3.对基类和派生类的关系描述中,错误的是(____)
A.派生类是(____)基类的具体化
B.基类继承了派生类的属性
C.派生类是(____)基类定义的延续
D.派生类是(____)基类的特殊化
正确答案:
【B】 分值:
【1】
4.如果表达式x*y+z中,“*”是作为友元函数重载的,“+”是作为友元函数重载的,则该表达式还可为(____)
A.operator+(operator*(x,y),z)
B.x.operator+(operator*(x,y),z)
C.y.operator*(operator+(x,y),z)
D.x.operator+(operator*(x,y))
正确答案:
【A】 分值:
【1】
5.派生类构造函数的执行顺序是先执行________的构造函数,然后执行成员对象的构造函数,最后执行________的构造函数。
正确答案:
【基类或派生类】 分值:
【1】
6.C++语言程序的注释可以出现在程序中的任何地方,一个注释以________作为开始和结束的标记。
正确答案:
【/**/】 分值:
【1】
7.在C++中,编译系统自动为一个类生成缺省构造函数的条件是(____)
A.该类没有定义任何有参构造函数
B.该类没有定义任何无参构造函数
C.该类没有定义任何构造函数
D.该类没有定义任何成员函数
正确答案:
【C】 分值:
【1】
8.有如下程序:
#include
usingnamespacestd;
classMyClass{
public:
MyClass(intx):
val(x){}
voidSet(intx){val=x;}
voidPrint()const{cout<<"val="< private: intval; }; intmain(){ constMyClassobj1(10); MyClassobj2(20); obj1.Print();//语句1 obj2.Print();//语句2 obj1.Set(20);//语句3 obj2.Set(30);//语句4 return0; } 其主函数中错误的语句是(____) A.语句1 B.语句2 C.语句3 D.语句4 正确答案: 【C】 分值: 【1】 9.有如下程序 #include usingnamespacestd; classPublication{//出版物类 charname[30]; public: Publication(char*name="未知名称"){ strcpy(this->name,name); } constchar*getName()const{returnname;} virtualconstchar*getType()const{return"未知类型";} }; classBook: publicPublication{//书类 public: Book(char*name): Publication(name){} virtualconstchar*getType()const{return"书";} }; voidshowPublication(Publication&p){ cout< "< } intmain(){ Bookbook("精彩人生"); showPublication(book); return0; } 运行时的输出结果是(____) A.未知类型: 未知名称 B.未知类型: 精彩人生 C.书: 未知名称 D.书: 精彩人生 正确答案: 【D】 分值: 【1】 10.C++对C语言做了很多改进,即从面向过程变成为面向对象的主要原因是(____) A.增加了一些新的运算符 B.允许函数重载,并允许设置缺省参数 C.规定函数说明符必须用原型 D.引进了类和对象的概念 正确答案: 【D】 分值: 【1】 11.在下列运算符中,(____)优先级最高。 A.<= B.*= C.+ D.* 正确答案: 【D】 分值: 【1】 12.下列关于C++函数的描述中正确的是(____) A.主函数是程序的入口,它由用户定义的函数调用 B.函数在调用之前必须先被声明 C.每个用户定义的函数只能被其他函数调用一次 D.函数是C++中面向对象程序设计框架的基本组成单元 正确答案: 【B】 分值: 【1】 13.设置虚基类的目的是________,通过________表示虚基类。 正确答案: 【解决二义性问题或用关键字virtual】 分值: 【1】 14.以下不属于对象的基本特点的是(____) A.分类性 B.多态性 C.继承性 D.封装性 正确答案: 【C】 分值: 【1】 15.关于静态数据成员的描述中正确的是(____) A.类的静态数据成员不是类的所有对象共享的数据 B.类的静态数据成员不能被类的成员函数调用 C.类的静态数据成员不能被类的构造函数调用 D.类的静态数据成员必须进行初始化 正确答案: 【D】 分值: 【1】 16.C++语言函数中不能由系统自动生成的是(____) A.析构函数 B.构造函数 C.内联函数 D.拷贝构造函数 正确答案: 【C】 分值: 【1】 17.下列的描述中(____)是错误的。 A.使用全局变量可以从被调用函数中获取多个操作结果 B.局部变量可以初始化,若不初始化,则系统默认它的值为0 C.当函数调用完后,静态局部变量的值不会消失 D.全局变量若不初始化,则系统默认它的值为0 正确答案: 【B】 分值: 【1】 18.以下不能对二维数组a进行正确初始化的语句是(____) A.inta[2][3]={0}; B.inta[][3]={{0,1},{0}}; C.inta[2][3]={{0,1},{2,3},{4,5}}; D.inta[][3]={0,1,2,3,4,5}; 正确答案: 【C】 分值: 【1】 19.若用数组名作为调用函数的实参,则传递给形参的是(____) A.数组存贮首地址 B.数组的第一个元素值 C.数组中全部元素的值 D.数组元素的个数 正确答案: 【A】 分值: 【1】 20.在类定义的外部,可以被访问的成员有 A.所有类成员 B.private或protected的类成员 C.public的类成员 D.public或private的类成员 正确答案: 【C】 分值: 【1】 21.下面对构造函数的不正确描述是(____) A.系统提供默认的构造函数 B.构造函数可以有参数,所以也可以有返回值 C.构造函数可以重载 D.构造函数可以设置默认参数 正确答案: 【B】 分值: 【1】 22.下面对友员的错误叙述是(____) A.关键字friend用于声明友员 B.一个类中的成员函数可以是另一个类的友员 C.友员函数访问对象的成员不受访问特性影响 D.友员函数通过this指针访问对象成员 正确答案: 【D】 分值: 【1】 23.要求用成员函数重载的运算符是(____) A.= B.== C.<= D.++ 正确答案: 【A】 分值: 【1】 24.下面关于类型转换的描述中,错误的是(____) A.任何形式的构造函数都可以实现数据类型转换。 B.带非默认参数的构造函数可以把基本类型数据转换成类类型对象。 C.类型转换函数可以把类类型对象转换为其他指定类型对象。 D.类型转换函数只能定义为一个类的成员函数,不能定义为类的友员函数。 正确答案: 【A】 分值: 【1】 25.在c++中,类之间的继承关系具有(____) A.自反性 B.对称性 C.传递性 D.反对称性 正确答案: 【C】 分值: 【1】 26.将以下程序写成三目运算表达式是________。 if(a>b)max=a; elsemax=b; 正确答案: 【max=(a>b)? a: b;】 分值: 【1】 27.不论派生类以何种方式继承基类,都不能直接使用基类的 A.public成员 B.private成员 C.protected成员 D.所有成员 正确答案: 【B】 分值: 【1】 28.下面程序的结果为________。 #include voidmain() {inta=1,b=2; boolc=1; if((a>b)||c)cout<<″true″< else cout<<″false″< 正确答案: 【true】 分值: 【1】 29.以下程序的执行结果为________。 #include usingnamespacestd; classbase { public: virtualvoidwho() {cout<<″baseclass″< }; classderive1: publicbase { public: voidwho() {cout<<″derive1class″< }; classderive2: publicbase { public: voidwho() {cout<<″derive2class″< }; voidmain() { baseobj1,*p; derive1obj2; derive2obj3; p=&obj1; p->who(); p=&obj2; p->who(); p=&obj3; p->who(); } 正确答案: 【baseclassderive1classderive2class】 分值: 【1】 30.下面函数原型中,(____)声明了fun为纯虚函数。 A.voidfun()=0; B.virtualvoidfun()=0; C.virtualvoidfun(); D.virtualvoidfun(){}; 正确答案: 【B】 分值: 【1】 31.若一个类中含有纯虚函数,则该类称为(____) A.基类 B.纯基类 C.抽象类 D.派生类 正确答案: 【C】 分值: 【1】 32.下面描述中,正确的是(____) A.虚函数是没有实现的函数 B.纯虚函数是返回值等于0的函数 C.抽象类是只有纯虚函数的类 D.抽象类指针可以指向不同的派生类 正确答案: 【D】 分值: 【1】 33.下列格式控制符,既可以用于输入,又可以用于输出的是(____) A.setbase B.setfill C.setprecision D.setw 正确答案: 【A】 分值: 【1】 34.要求打开文件D: \file.dat,并能够写入数据,正确的语句是(____) A.ifstreaminfile(“D: \\file.dat”,ios: : in); B.ifstreaminfile(“D: \\file.dat”,ios: : out); C.ofstreamoutfile(D: \\file.dat",ios: : in); D.fstreaminfile(“D: \\file.dat”,ios: : in|ios: : out); 正确答案: 【D】 分值: 【1】 35.用于输出表达式值的标准输出流对象是________。 正确答案: 【cout】 分值: 【1】 36.存储字符’a’和字符串”a”分别需要占用________和________个字节。 正确答案: 【1或2】 分值: 【1】 37.在C++语言中,一个函数由函数头和________组成。 正确答案: 【函数体】 分值: 【1】 38.程序的编译是以________为单位进行的。 正确答案: 【文件】 分值: 【1】 39.如果一个派生类只有一个唯一的基类,则这样的继承关系称为________。 正确答案: 【单继承】 分值: 【1】 40.C++支持两种多态性: ________时的多态性和________时的多态性。 正确答案: 【编译或运行】 分值: 【1】 41.类定义中,既包含数据成员,也包含________成员。 正确答案: 【函数】 分值: 【1】 42.类中的数据成员的访问属性通常被指明为________。 正确答案: 【private】 分值: 【1】 43.类中的供外部调用定义的函数成员,其访问属性通常被定义为________。 正确答案: 【public】 分值: 【1】 44.为了使类中的成员不能被类外的函数通过成员操作符访问,则应把该成员的访问权限定义为________。 正确答案: 【private】 分值: 【1】 45.若要把类外定义的成员函数规定为内联函数,则必须把________关键字放到函数原型或函数头的前面。 正确答案: 【inline】 分值: 【1】 46.若采用p->abc(y)表达式调用一个成员函数,在成员函数中使用的________ 就代表了类外的p指针。 正确答案: 【this】 分值: 【1】 47.当用户为一个类定义有________时,则系统不会为该类再自动生成一个默认构造函数。 正确答案: 【构造函数】 分值: 【1】 48.对类中常量成员的初始化只能通过在构造函数中给出的________来实现的。 正确答案: 【参数初始化表】 分值: 【1】 49.假定AB类中只包含一个整型数据成员a,并且它是一个引用成员,若利用引用参数aa对其进行初始化,则该类的构造函数的定义为________。 正确答案: 【AB(int&aa): a(aa){};】 分值: 【1】 50.定指针p指向一个动态分配的类对象,则当执行“deletep;”语句时,在释放p 所指向的动态存储空间之前将自动调用该类的________。 正确答案: 【析构函数】 分值: 【1】 51.定用户为类AB定义了一个构造函数“AB(intaa=0): a(aa){}”,则定义该类的对象时,可以有________种不同的定义格式。 正确答案: 【2】 分值: 【1】 52.假定用户只为类AB定义了一个构造函数“AB(): a(0),b(0){}”,则定义该类对象x的定义语句“ABx;”是______(正确/错误)的。 正确答案: 【正确】 分值: 【1】 53.假定AB为一个类,该类中含有一个指向动态数组空间的指针成员pa,则在该类的析构函数中应该包含有一条________语句。 正确答案: 【delete[]pa;】 分值: 【1】 54.在一个或若干个类的基础上构造一个新类,被称为________。 正确答案: 【继承】 分值: 【1】 55.派生类的成员函数可以直接访问基类的公有和保护成员,不能直接访问 基类的________成员。 正确答案: 【私有】 分值: 【1】 56.当保护继承时,基类的公有和保护成员在派生类中成为保护成员,派生 类对象不能直接访问基类的________成员。 正确答案: 【任何】 分值: 【1】 57.以下关于C++类的说法中正确的是(____) A.C++语言的默认访问权限是private B.C++语言中的类定义,用户一定要自己定义一个构造函数用于实例化类 C.C++语言中的成员函数的实现部分一定要写在类定义外 D.C++语言中的类不能够嵌套定义 正确答案: 【A】 分值: 【1】 58.一个类可以从直接或间接的祖先中继承所有属性和方法。 采用这个方法提高了软件的________。 正确答案: 【可重用性】 分值: 【1】 59.静态成员函数可以直接访问类的________成员,不能直接访问类的________成员。 正确答案: 【静态或非静态】 分值: 【1】 60.在C++语言的结构化程序设计中,________是程序的基本组成单元;在C++语言的面向对象设计框架中,________是程序的基本组成单元。 正确答案: 【函数或类】 分值: 【1】 61.在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是(____) A.派生类的对象可以赋给基类的对象 B.派生类的对象可以初始化基类的引用 C.派生类的对象可以直接访问基类中的成员 D.派生类的对象的地址可以赋给指向基类的指针 正确答案: 【C】 分值: 【1】 62.类是一个支持集成的抽象数据类型,而对象的类的________。 正确答案: 【实例】 分值: 【1】 63.在C++中,cin是一个(____) A.类 B.对象 C.模板 D.函数 正确答案: 【B】 分值: 【1】 64.下列描述中错误的是(____) A.派生类可以作为基类派生其他的子类 B.派生类继承基类的所有数据成员 C.派生类可以有多个基类 D.派生类不能继承一些函数成员 正确答案: 【B】 分值: 【1】 65.以下对C++语言函数的有关描述中,正确的是(____) A.在C++语言中调用函数,只能把实参的值传给形参,形参的值不能传送给实参 B.C++语言函数既可以嵌套定义又可以递归调用 C.函数必须无返回值,否则不能使用函数 D.函数必须有返回值,返回值类型不定 正确答案: 【A】 分值: 【1】 66.对于模板定义关键字class和typename说法不正确的是(____) A.程序中的class并不能都替换为typename B.class和typename都可互相替换 C.程序中的typename都能替换为class D.程序中的部分class可以替换为typename 正确答案: 【B】 分值: 【1】 67.下面关于数组的描述错误的是(____) A.在C++语言中数组的名字就是指向该数组第一个元素的指针 B.长度为n的数组,下标的范围是0~n-1 C.数组的大小必须在编译时确定 D.数组只能通过值参数和引用参数两种方式传递给函数 正确答案: 【D】 分值: 【1】 68.下面的(____)选项不能作为函数的返回类型 A.void B.int C.new D.long 正确答案: 【C】 分值: 【1】 69.可以把具有相同属性的一些不同对象归类,称为________。 正确答案: 【对象类】 分值: 【1】 70.下列定义中p指向的地址可更改,但*p不能够更改的是(____) A.constint*P B.int*constp; C.constint*constp; D.int*p; 正确答案: 【A】 分值: 【1】 71.C++中封装性、继承性和________是面向对象思想的主要特征。 正确答案: 【多态性】 分值: 【1】 72.对类成员访问权限的控制,是通过设置成员的访问控制属性实现的,下列不是访问控制属性的是(____) A.公有类型 B.私有类型 C.保护类型 D.友元类型 正确答案: 【D】 分值: 【1】 73.下列关于运算符重载的叙述中,正确的是(____) A.通过运算符重载,可以定义新的运算符 B.有的运算符只能作为成员函数重载 C.若重载运算符+,则相应的运算符函数名是+ D.重载一个二元运算符时,必须声明两个形参 正确答案: 【B】 分值: 【1】 74.下列关于模板的叙述中,错误的是(____) A.调用模板函数时,在一定条件下可以省略模板实参 B.可以用int、double这样的类型修饰符来声明模板参数 C.模板声明中的关键字class都可以用关键字typename替代 D.模板的形参表中可以有多个参数 正确答案: 【D】 分值: 【1】 75.对类的构造函数和析构函数描述正确的是(____) A.构造函数可以重载,析构函数不能重载 B.构造函数不能重载,析构函数可以重载 C.构造函数可以重载,析构函数也可以重载 D.构造函数不能重载,析构函数也不能重载 正确答案: 【A】 分值: 【1】 76.通过使用new和delete两个运算符进行的分配为________存储分配。 正确答案: 【动态】 分值: 【1】 77.将x+y中的+运算符用友元函数重载应写为________。 正确答案: 【operator+(x,y)】 分值: 【1】 78.下列描述中(____)是正确的 A.私有派生的子类无法访问父类的成员 B.类A的私有派生子类的派生类C无法初始化其祖先类A对象的属性,因为类A的成员对类C是不可访问的 C.私有派生类不能作为基类派生子类 D.私有派生类的所有子孙类将无法继续继承该类的成员 正确答案: 【B】 分值: 【1】 79.while和do-while循环的主要区别是(____) A.do-while的循环体至少无条件执行一次 B.while的循环控制条件比do-while的循环控制条件更严格 C.do-while允许从外部转到循环体内 D.do-while的循环体不能是复合语句 正确答案: 【A】 分值: 【1】 80.关于友元的概念错误的是(____) A.友元函数没有thi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 模拟 试题