您好,欢迎访问三七文档
考试题型:选择题、判断题16题、简答题5题、综合题(写程序)5题选择题、判断题、简答题有55分。一、选择题(必考)1.下面关于对象概念的描述中,(A)是错误的。A.对象就是C语言中的结构体变量B.对象代表着正在创建的系统中的一个实体C.对象是一个状态和操作(或方法)的封装体D.对象之间的信息传递是通过消息进行的类是属性与方法的封装体,而结构只有数据没有方法。哪怕是classA{inta;}这样一个类,看似没有方法,但它却有默认的构造方法publicA(){}2.结构化程序设计所规定的三种基本控制结构是(A)。A.顺序结构、选择结构、循环结构B.输入、输出、处理C.for、while、switchD.主程序、子程序、函数3.C++语言中的基本数据类型是(B)。A.整型、浮点型、逻辑型、无值型和类类型B.整型、字符型、浮点型、无值型和逻辑型C.整型、浮点型、字符型、逻辑型和枚举型D.整型、浮点型、逻辑型、无值型和指针型4.结构化程序设计主要强调的是(D)。A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序易读性5.下面关于友元的描述中,错误的是(D)。A.友元函数可以该类的私有数据成员B.一个类的友元类中的成员函数都是这个类的友元函数C.友元可以提高程序的运行效率D.类与类之间的友元关系可以继承类的友元关系是可以继承的,类的友元为类提供了一个接口,可以通过接口访问类的友元函数。友元函数可以是类的成员函数。6.通常的拷贝初始化构造函数是(C)。A.某个对象名B.某个对象的成员名C.某个对象的引用名D.某个对象的指针名7.在inta=10,*P=&a;语句中,p的值是(C)。A.10B.变量p的地址C.变量a的地址D.随机数8.以下哪个特征不是面向对象思想中的主要特征(D)。A.多态B.继承C.封装D.垃圾回收9.下列说法中错误的是(B)。A.公有继承时基类中的public成员在派生类中仍是public的B.公有继承时基类中的private成员在派生类中仍是private的C.私有继承时基类中的public成员在派生类中是private的D.保护继承时基类中的public成员在派生类中是protected的无论哪种继承派生类都无权方位基类中的private成员,所以基类中的private和派生类自己的private成员对与派生类来说是不同的。前者不可以访问后者可以。起始就当派生类中没有基类的private成员10.下列关于C++语言类的描述中错误的是(C)。A.类用于描述事物的属性和对事物的操作B.类与类之间通过封装而具有明确的独立性C.类与类之间必须是平等的关系,而不能组成层次结构D.类与类之间可以通过一些方法进行通信和联络11.(B)是给对象取一个别名,它引入了对象的同义词。A.指针B.引用C.枚举D.结构12.有关类和对象的说法不正确的是(C)。A.对象是类的一个实例B.任何一个对象只能属于一个具体的类C.一个类只能有一个对象D.类与对象的关系和数据类型与变量的关系相似13.下列对派生类的描述中,错误的是(C)。A.一个派生类可以作为另一个派生类的基类B.派生类至少有一个基类C.派生类的缺省继承方式是privateD.派生类只继承了基类的公有成员和保护成员14.下列关于C++函数的描述中正确的是(B)。A.主函数是程序的入口,它由用户定义的函数调用B.函数在调用之前必须先被声明C.每个用户定义函数只能被其它函数调用一次D.函数是C++中面向对象程序设计框架的基本组成单元15.下面关于C++语言变量的叙述错误的是(B)。A.C++语言中变量分为auto,static,extern和register四种存储类型B.自动变量和外部变量的作用域为整个程序C.内部静态变量的作用域是定义它的函数D.外部静态变量的作用域是定义它的文件16.关于友元的概念错误的是(D)。A.友元函数没有this指针B.调用友元函数时必须在它的实参中给出要访问的对象C.一个类的成员函数也可以作为另一个类的友元函数D.只能在类的公有段声明友元17.在C++中,打开一个文件,就是将这个文件与一个(B)建立关联,关闭一个文件,就是取消这种关联。A.类B.流C.对象D.结构18.若要把函数voidf()定义为aClass的友元函数,则应在类aClass的定义中加入的语句是(D)。A.voidf();B.staticvoidf();C.friendf()D.friendvoidf();19.在C++语言中,main函数默认返回一个(A)类型的值。A.intB.flaotC.charD.void20.在类中定义和实现的函数称为(B)。A.静态成员函数B.内联函数C.常成员函数D.虚函数21.下列运算符中,(C)运算符在C++中不能重载。A.&&B.[]C.::D.new22.两个变量定义不能同名,是因为(B)。A.这两个变量定义在同一文件中B.这两个变量定义在同一作用域中C.一个定义在main函数中,一个定义在子函数中D.以上说法均不正确23.下述对于友元函数描述正确的是(C)。A.友元函数的实现必须在类的内部定义B.友元函数是类的成员函数C.友元函数破坏了类的封闭性和隐藏性D.友元函数不能访问类的私有成员24.假定MyClass为一个类,则执行MyClassa[3],*p[2];语句时,自动调用该类构造函数(B)次。25.this指针是C++语言实现什么的一种机制?(B)A.抽象B.封装C.继承D.重载26.下列引用的定义中,(B)是错误的。A.inti;B.inti;int&j=i;int&j;j=i;C.floati;D.chard;float&j=i;char&k=d;27.关于this指针的说明不正确的是(D)。A.不能在程序中修改this指针B.this指针可以给其它指针赋值,但不能修改this指针C.静态成员函数中没有this指针D.this指针可以被赋值28.面向对象程序设计将数据与(A)放在一起,作为一个相互依存、不可分割的整体来处理。A.对数据的操作B.信息C.数据隐藏D.数据抽象答案1A2A3B4D5D6C7C8D9B10C11B12C13D14B15B16D17B18D19A20B21C22B23C24B25B26B27D28A二、判段题c++基础知识1、函数的参数和返回值类型可以是简单数据类型,也可以是指针、引用、数组和类。(×)2、C++程序总是从第一个定义的函数开始执行。(×)3、C++语言是在C语言基础上扩充了函数功能而得来的。(×)4、在VC6.0开发环境中,对导入的所有位图资源都可以进行修改。(×)5、在C++中,标识符Max和MAX是不一样的。(√)6、C++函数必须有返回值,否则不能使用函数。(×)7、采用inline定义内联函数时,在对于函数代码少、频繁调用的情况下特别有效。(√)8、引入内联函数的主要目的是缩短程序代码,让程序少占用内存空间。(×)9、在C++程序中,可以使用命名空间,也可不使用命名空间。(√)10、C++中,如果条件表达式值为-1,则表示逻辑为假。(×)11、ASCII码文件和二进制文件都可在记事本中直接打开。(×)12、在C++语言中,表达式:“b++;”和“++b;”在任何地方的作用都是不一样的。(×)编程工具相关知识1、在MFC编程中,通过Invalidate(TRUE)可以发出重绘视图的消息。(√)2、在MFC编程中,视图/文档类程序是通过OnDraw()函数进行进行输出的。(√3、使用MFC编程时,OnDraw函数是CView类的成员函数。(√)4、在文档/视图结构的程序中,输出是在OnDraw()函数中完成的。(√)5、在VC6.0开发环境中,可以同时开发几个工程。(√)6、VisualC++集成开发环境中,一个Workspace可以创建多个Project。(√)7程序的编译是以文件为单位的,因此将程序分到多个文件中可以减少每次对程序修改所带来的编译工作量。(√)8、在C语言中,不使用命名空间,但在C++程序中,一定要使用命名空间。(×)字符串、数组、指针及地址1、字符串”hello,world”在内存中存放时,占用11个字节的空间(X)2、当函数的返回值是数组类型的,传递的是数组第一个元素的地址。(√)3、每个对象也有地址,该地址就是存储此对象数据成员的单元的首地址。(√)4、在C+语言中,指针的概念与C语言是一样的,都是指变量的地址。(√)5、在内存中,一个字符常量或变量是以ASCII码值存储的,它可直接作为整数值参加运算。(√)6、char*constp表明p是一个指针,它只能指向一个字符串常量。(×)7、在定义二维数组时,语句“inta[][4]={{1,2,3},{4}};”是不正确的。(×)8、设Time是一个类,现有指针p的定义语句:constTime*p;则通过指针p不可以修改Time类对象的公有数据成员。(√)9、在定义二维数组时,语句:inta[5][];是错误的。(√)静态及动态成员函数1、类中的静态成员数据为该类的所有对象所共享,并且,在该类对象被撤销时,静态成员并没有撤销。(√)2、如果在一个类的对象之间要进行数据交换,可以使用该类的静态数据成员来完成。(√)类函数1、在C++中,也可使用struct来声明类,但在该类中不能声明成员函数。(×)2、在c++语言中,也可以使用struct(结构体)来定义一个类。(√)3、语句“typedefstruct_MYSTRUC{intx;inty;doublez;}MYSTRUC;”是非法语句。(×)4、在C++语言中,使用struct(结构体)定义的类与使用class定义的类是一样的。(×)5、在声明一个类时,必须同时声明类的数据成员和成员函数。(×)6、设函数fun()是一个不属于任何类的普通函数,则在调用该函数时只能用fun()方式,而不能用::fun()方式来调用。(×)7、如果一个类的所有对象都共享某一个变量,则应当将该变量定义为该类的私有成员。(×)派生类1、派生类的成员函数可以直接访问基类的所有成员。(×)2、如果派生类的继承方式是protected的,则在main()函数中,可以通过派生类对象来访问基类的公有的成员。(×)3、如果派生类的成员函数的原型与基类中被定义为虚函数的成员函数原型相同,那么,这个函数自动继承基类中虚函数的特性。(√)函数重载1、函数重载既要求两函数参数对应的类型不同又要求参数个数不同。(X)2、函数重载时,它们的参数个数和类型要求都不能相同。(×)3、在C++中,可以通过ofstream类对象来建立一个输出文件流。(√)4、在C++中,文件的输入输出可以通过iostream类对象来完成。(×)5、cout属于标准输出流,而cerr和clog则不属于标准输出流。(×)类的友元函数1、类的友员函数是指可以访问本类私有成员的其它类的成员函数。(×)2、能访问一个类CMyClass中的private成员的可以是类CMyClass的成员函数,友元函数和友元类中的函数。(√)构造函数和析构函数1、构造函数和析构函数均不能被说明为虚函数。(×)2、构造函数和析构函数均都可以被说明为虚函数,只是构造函数和析构函数的功能不同而已。(×)3、类的构造函数和析构函数一般都声明为虚函数。(×)4、析构函数的作用是当对象不用时,删除对象。(×)5、构造函数不具备的特征是构造函数需指定类型说明。(√)6、对对象成员的构造函数的调用顺序,取决于这些对象成员在成员初始化列表中的顺序。(×)三、简答题1、面向过程的程序设计和面向对象的程序设计的主要区别是什么?答:主要区别:面向过程的程序设计:以功能为中心,采用函数来描述,函数和操作的数据是分离的。程序的实现通过函数的顺序执行来实现。面向对象的程序设计:它吸取了面向过程的程序设计的优点,同时又考虑了现实世界和计算机处理的关系,它的整个程序由一系列相互作用的对象构成,对象之间的交互通过发送消息来实现,对象通过响应消息来实现程序的功能。2、在VC++6.0中
本文标题:C++考试题型
链接地址:https://www.777doc.com/doc-4347591 .html