《智慧树知到《C++程序设计》章节测试答案》由会员分享,可在线阅读,更多相关《智慧树知到《C++程序设计》章节测试答案(18页珍藏版)》请在金锄头文库上搜索。
1、智慧树知到C+程序设计章节测试答案第一章单元测试1、#include语句()A.总是在程序运行时最先执行B.按照在程序中的位置顺序执行C.在程序编译前需要用包含的文件替换,将源文件进行扩展D.在最后执行;正确答案:在程序编译前需要用包含的文件替换,将源文件进行扩展2、以下说法正确的是:A.用C+语言书写程序时,每行必须有行号B.用C+语言书写程序时,一行只能写一个语句C.用C+语言书写程序时要注意区分大小写D.用C+语言书写程序时,一个语句可分几行写正确答案:用C+语言书写程序时要注意区分大小写3、以下哪种说法不是C+语言的属性:A.C+语言是泛型程序设计语言B.C+语言是面向对象的程序设计语
2、言C.C+语言是非过程的程序设计语言D.C+语言是面向过程的程序设计语言正确答案:C+语言是非过程的程序设计语言4、C+中,一般使用流对象来输入输出对象,通过以下哪个流对象可以输入一个整数:A.cinB.stringC.coutD.cerr正确答案:cin5、面向过程的C+的程序结构与C语言一样,是:A.对象+方法B.由函数构成C.由类构成D.数据结构+算法正确答案:由函数构成;数据结构+算法第二章单元测试1、下列哪个是C+语言的有效标识符:A.()No1B.12345C.No.1D.int正确答案:()No12、考虑函数原型void test(int a,int; b=7,char=;*;)
3、,下面的函数调用中,属于不合法调用的是:A.test(5)B.test(5,8)C.test(6,;#;)D.test(0,0,;*;)正确答案:test(6,;#;)3、下列语句中错误的是:A.int *pointer = new int(10)B.int *pointer = new int10C.int *pointer = new int40(0)D.int *pointer = new int正确答案:int *pointer = new int40(0)4、对引用与指针的区别以下说法错误的是:A.引用和指针都可以不被初始化。B.引用必须被初始化,指针不必。C.引用初始化以后不能被改
4、变,指针可以改变所指的对象。D.不存在指向空值的引用,但是存在指向空值的指针。正确答案:引用和指针都可以不被初始化。5、已知有数组定义char a34;下列表达式中错误的是:A.a01=a01B.a23=;WC.strcpy(a2,;WIN;)D.a2=;WIN;正确答案:a2=;WIN第三章单元测试1、C+中,若一个变量的定义不在任何函数内部,则它所占的内存在内存的哪个区分配:A.堆区B.栈区C.代码区D.静态数据区正确答案:静态数据区2、若有语句,int p=new int; 则p所占的内存在内存的哪个区分配:A.代码区B.静态数据区C.堆区D.栈区正确答案:堆区3、若有定义int fac
5、(int n) ; static int t=1; t=t*n; return t; 则变量t是:A.全局变量B.局部变量C.自动变量D.静态局部变理正确答案:静态局部变理4、在函数中声明的静态变量:A.在函数体中可见,函数结束调用时释放的变量B.在函数体中可见,项目结束调用时释放C.在程序执行时生成,块结束时释放D.在项目中可见,项目结束调用时释放正确答案:在函数体中可见,项目结束调用时释放5、某文件中定义的静态全局变量(或称静态外部变量)的作用域是()。A.本文件B.跨文件C.只限某个函数D.不限正确答案:本文件第四章单元测试1、设计一个类Shape,含有一个数据成员color,若希望能被
6、它的子类成员函数访问,它的访问属性应该设计为:A.protectedB.privateC.public正确答案:protected2、定义一个类,要使用关键字:A.classB.unionC.structD.enum正确答案:class3、有以下定义:class point; int m,n;public:void set(int x,int y)this-;m=x;this-;n=y; Point *pointer;则以下哪种使用是正确的:A.p.set(1,2)B.cout;nC.pointer-;m=3D.p-;set(1,2)正确答案:p-;set(1,2)4、关于对象概念的描述中,说
7、法错误的是:A.对象就是C语言中的结构体类型变量B.对象之间的信息传递是通过消息进行的C.对象代表着正在创建的系统中的一个实体D.对象是类类型的一个变量正确答案:对象就是C语言中的结构体类型变量5、下列关于类定义的说法中,正确的是:A.成员函数只能在类体外进行定义B.数据成员必须被声明为私有的C.类定义由两部分构成,数据成员和函数成员D.类成员的缺省访问权限是保护的正确答案:类定义由两部分构成,数据成员和函数成员第五章单元测试1、将运算符重载为类成员函数时,其参数表中含有一个参数,说明该运算是:A.不合法的运算符B.无操作数的运算符C.一元运算符D.可能是二元运算符正确答案:可能是二元运算符2
8、、运算符重载,本质上是运算符函数的重载,运算符函数是一种特殊的()或友元函数。A.析构函数B.构造函数C.重载函数D.成员函数正确答案:成员函数3、以下对运算符函数重载规则的描述中,()是正确的。A.可以改变运算符原来的结合性B.不能改变原运算符的语义C.可以改变参与运算的操作数个数D.可以改变运算符原来的优先级正确答案:不能改变原运算符的语义4、如果类Point要重载插入运算符;,那么重载函数参数表的一般形式为:A.(const Point&;)B.(const Point&;,ostream &;)C.(ostream&;)D.(ostream&;,const &;Point)正确答案:(
9、ostream&;,const &;Point)5、类型转换函数只能定义为一个类的:A.成员函数B.析构函数C.友元函数D.构造函数正确答案:成员函数第六章单元测试1、下列有关继承和派生的叙述中,错误的是:A.派生类应当向基类的构造函数传递参数B.作为虚基类的类不能被实例化C.派生类不能访问基类的保护成员D.虚函数不一定要在派生类中重新实现正确答案:派生类不能访问基类的保护成员2、销毁一个含有对象成员的派生类对象时,各析造函数体的执行次序为:A.基类、成员对象类、派生类B.基类、派生类、成员对象类C.派生类、成员对象类、基类D.成员对象类、基类、派生类正确答案:派生类、成员对象类、基类3、下列
10、代码声明了3个类class Animal;class Cat:publicAnimal;class Mouse:Animal;下列关于这些类之间关系的描述中,错误的是:A.类Cat是类Animal的派生类B.类Animal是类Cat的基类C.类Mouse是类Animal的派生类D.类Mouse从类Cat公有继承正确答案:类Mouse从类Cat公有继承4、下列代码声明了3个类class Animal;class Cat:publicAnimal;class Mouse:Animal;对于这段代码,理解错误的是:A.类Cat是从类Animal公有继承B.类Mouse和类Cat有共同的基类C.类Ca
11、t和类Mouse对类Animal的成员的访问属性一样D.类Mouse是类Animal的私有继承正确答案:类Cat和类Mouse对类Animal的成员的访问属性一样5、在C+中用来实现运行时多态性的是:A.构造函数B.重载函数C.虚函数D.析构函数正确答案:虚函数第七章单元测试1、C+中使用类模板的理由中,以下说法错误的是:A.它是类型无关的,因此具有很高的可复用性。B.它在编译时而不是运行时检查数据类型,保证了类型安全。C.类模板需要实例化后才能定义对象。D.类模板不属于C+的多态内容。正确答案:类模板不属于C+的多态内容。2、关于类模板,下列表述中错误的是:A.类模板的成员函数都是函数模板B
12、.用类模板定义一个对象时,有可能省略实参表C.类模板只能有虚拟类型参数D.类模板在编译时会被使用实参表实例化为模板类正确答案:类模板只能有虚拟类型参数3、下列关于模板形参的描述中,错误的是:A.模板形参表必须用括弧()括起来B.模板形参表必须在关键字template之后C.可以用typename修饰模板形参D.可以用class修饰模板形参正确答案:模板形参表必须用括弧()括起来4、关于函数模板,描述错误的是:A.函数模板的实例化由编译器实现B.类模板的成员函数都是函数模板,类模板实例化后,成员函数也随之实例化C.函数模板在函数调用时会自动实例化为可支持的模板函数D.一个类定义中,只要有一个函数
13、模板,这个类就是类模板正确答案:一个类定义中,只要有一个函数模板,这个类就是类模板5、在下列模板的类属参数的说明中,正确的是:A.templateB.templateC.template(typedef T1,typedef T2)D.template;正确答案:template第八章单元测试1、以下支持使用下标操作符来获取元素值的容器是:A.集合B.向量C.映射D.列表正确答案:向量2、以下关于迭代器的说法正确的是:A.5种类型的迭代器(输入迭代器、输出迭代器、前向迭代器、随机访问迭代器)都支持+操作B.5种类型的迭代器(输入迭代器、输出迭代器、前向迭代器、双向迭代器、随机记问迭代器)都支持
14、=操作C.为映射map定义的迭代器支持随机访问D.指针和迭代器完全等价正确答案:5种类型的迭代器(输入迭代器、输出迭代器、前向迭代器、随机访问迭代器)都支持+操作3、以下代码的输出结果是为:#include;#include;#include;using namespace std;void push(vector;&; v); int i = 4; for(i;0; i-); v.push()back(i);void sort(vector; v); sort(v.begin(),v.end();void disp(vector; v); for (int i=0; i;v.size(); i+); cout; vi;int main(); vector; y; push(v); disp(v); sort(v); dis