面向对象程序设计(山东联盟 青岛理工大学) 知到智慧树网课答案_第1页
面向对象程序设计(山东联盟 青岛理工大学) 知到智慧树网课答案_第2页
面向对象程序设计(山东联盟 青岛理工大学) 知到智慧树网课答案_第3页
面向对象程序设计(山东联盟 青岛理工大学) 知到智慧树网课答案_第4页
面向对象程序设计(山东联盟 青岛理工大学) 知到智慧树网课答案_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

面向对象程序设计(山东联盟-青岛理工大学)-知到答案、智慧树答案绪论单元测试1、问题:C++仅仅是C语言的高版本而已。选项:A:对B:错答案:【错】2、问题:C++是面向对象程序设计语言。选项:A:对B:错答案:【对】第一章单元测试1、问题:程序应该必须包含的部分是()选项:A:数据结构和算法B:高级语言C:注释D:头文件答案:【数据结构和算法】2、问题:C++对C语言作了许多改进,下列描述中()使C++语言成为面向对象的语言。选项:A:允许函数重载,并允许函数有默认参数B:规定函数说明必须用原型C:引进了类和对象的概念D:增加了一些新的运算符答案:【引进了类和对象的概念】3、问题:对象之间的相互作用和通信是通过消息。下列哪项不是消息的组成部分()选项:A:要执行的函数的名字B:要执行的函数的内部结构C:接受消息的对象D:函数需要的参数答案:【要执行的函数的内部结构】4、问题:最初的计算机编程语言是()选项:A:低级语言B:汇编语言C:机器语言D:高级语言答案:【机器语言】5、问题:下列各种高级语言中,()不是面向对象的程序设计语言。选项:A:JavaB:C:DelphiD:C++答案:【】6、问题:结构化程序设计的基本结构不包含以下哪项()选项:A:顺序B:循环C:跳转D:选择答案:【跳转】7、问题:C++比机器语言可读性强,但运行效率比机器语言程序低。选项:A:对B:错答案:【对】8、问题:C++具有()特点。选项:A:支持多态性B:支持数据封装和数据隐藏C:支持泛型编程D:支持继承和重用答案:【支持多态性;支持数据封装和数据隐藏;支持泛型编程;支持继承和重用】9、问题:()不是属于面向对象程序设计的特性。选项:A:数据相关性B:多态性C:封装性D:继承性答案:【数据相关性】10、问题:编写C++程序一般需要经过的几个步骤依次是()选项:A:编辑调试编译连接B:编辑编译连接运行C:编译编辑连接运行D:编译调试编辑连接答案:【编辑编译连接运行】第二章单元测试1、问题:对于动态分配内存空间描述正确的是()。选项:A:delete运算符只能释放由new分配的动态存储空间B:delete运算符可以释放动态的存储空间和静态的存储空间C:用malloc分配空间,将触发构造函数的调用D:使用new运算符分配的内存空间的长度必须是常量答案:【delete运算符只能释放由new分配的动态存储空间】2{、问题:下面的程序执行后的输出结果是()。#includeusingnamespacestd;intmain(){intk=1,t=0;switch(k)case1:t+=10;case2:t+=20;break;default:t+=3;}cout<选项:A:23B:20C:30D:10答案:【30】3、问题:string是STL库中封装的一个类。选项:A:错B:对答案:【对】4、问题:设x和y均为int型变量,则执行以下的循环后,y值为()。for(y=1,x=1;y<=50;y++){if(x==10)break;if(x%2==1){x+=5;continue;}x-=3;}选项:A:7B:4C:5D:6答案:【6】5、问题:以下程序代码的执行结果是()。intmain(){inti;for(i='A';i<'I';i++,i++)cout<选项:A:abcdefghB:编译不通过,无输出C:acegiD:aceg答案:【aceg】6、问题:以下程序执行后的输出结果是()。intmain(){inti,s=0;for(i=1;i<10;i+=2)s+=i+1;cout<选项:A:自然数1~9的累加和B:自然数1~9中的奇数之和C:自然数1~10中的偶数之和D:自然数1~10的累加和答案:【自然数1~10中的偶数之和】7、问题:在C++语言中,下列属于构造类型的是()。选项:A:数组类型B:整型C:字符型D:实型答案:【数组类型】8、问题:设d为字符变量,下列表达式不正确的是()。选项:A:d=’a’B:d=”a”C:d=’g’D:d=97答案:【d=”a”】9、问题:设有,则表达式(x++*1/3)的值是()。选项:A:4B:0C:3D:答案:【3】10、问题:#include"iostream"usingnamespacestd;intmain(){inty=3,x=3,z=1;cout<<(++x,y++)<<””<选项:A:43B:42C:33D:34答案:【33】第三章单元测试1、问题:对C++语言函数的有关描述中,正确的是()。选项:A:函数必须有返回值,否则不能使用函数B:C语言函数既可以嵌套定义又可以嵌套调用C:C语言程序中有调用关系的所有函数必须放在一个源文件中D:在调用函数时,只能把实参的值传递给形参,形参的值不能传递给实参答案:【在调用函数时,只能把实参的值传递给形参,形参的值不能传递给实参】2、问题:若有以下函数调用语句:fun(a+b,(x,y),fun(n+k,d,(a,b)));在此函数调用语句中实参的个数是()个:选项:A:4;B:3;C:5;D:6答案:【3;】3、问题:在传值调用中,要求()。选项:A:形参和实参类型任意,个数相等;B:形参和实参对应的类型一致,个数任意。C:形参和实参对应的类型一致,个数相等;D:形参和实参类型都完全一致,个数相等;答案:【形参和实参对应的类型一致,个数相等;】4、问题:在C++程序中,有关函数的叙述正确的有()。选项:A:函数的定义可以嵌套,但函数的调用不可以嵌套B:函数的定义和调用均可以嵌套C:函数的定义和调用均不可以嵌套D:函数的定义不可以嵌套,但函数的调用可以嵌套答案:【函数的定义不可以嵌套,但函数的调用可以嵌套】5、问题:若用数组名作为函数调用的实参,传递给形参的是()。选项:A:数组的首地址B:数组元素的个数C:数组中全部元素的值D:数组第一个元素的值答案:【数组的首地址】6、问题:以下程序的运行结果是()。#include"iostream"usingnamespacestd;intfunc(inta,intb){return(a+b);}intmain(){intx=2,y=5,z=7,r;r=func(func(x,y),z);cout<选项:A:15B:12C:13D:14答案:【14】7{、问题:有以下程序#include"iostream"usingnamespacestd;voidpoint(char*p){p+=3;}intmain(){charb[4]='a','b','c','d'},*p=b;point(p);cout<<*p<选项:A:bB:cC:dD:a答案:【a】8、问题:设有定义:intn1=0,n2,*p=&n2,*q=&n1;,以下赋值语句中与n2=n1;语句等价的是()。选项:A:*p=*q;B:p=*q;C:*p=&n1;D:p=q;答案:【*p=*q;】9、问题:有以下程序#includeusingnamespacestd;intmain(){inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=p;p=q;q=r;cout<<*p<<”,”<<*q<选项:A:8,7B:8,8C:7,7D:7,8答案:【8,7】10、问题:以下语句或语句组中,能正确进行字符串赋值的是()。选项:A:char*sp='right!';B:char*sp;*sp='right!';C:chars[10];s='right!';D:chars[10];*s='right!';答案:【char*sp='right!';】11、问题:以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是()。选项:A:chars[10];strcpy(s,'abcdefg');B:chars[10];s='abcdefg';C:chart[]='abcdefg',*s=t;D:chars[10]='abcdefg';答案:【chars[10];s='abcdefg';】12、问题:设有定义语句intx[6]={2,4,6,8,5,7},*p=x,i;要求依次输出x数组6个元素中的值,不能完成此操作的语句是()。选项:A:for(i=0;i<6;i++)cout<<*(p++);B:for(i=0;i<6;i++)cout<<*(p+i);C:for(i=0;i<6;i++)cout<<(*p)++;D:for(i=0;i<6;i++)cout<<*p++;答案:【for(i=0;i<6;i++)cout<<(*p)++;】13、问题:以下程序段执行后,变量b的值是()。inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;b=p[5];选项:A:5B:9C:8D:6答案:【9】1{4、问题:有以下程序:#includeusingnamespacestd;voidsum(int*a){a[0]=a[1];}intmain(){intaa[10]=1,2,3,4,5,6,7,8,9,10},i;for(i=2;i>=0;i--)sum(&aa[i]);cout<选项:A:2B:3C:1D:4答案:【4】15、问题:不同命名空间中的标识符可以同名而不会发生冲突。选项:A:对B:错答案:【对】第四章单元测试1(、问题:所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体也就是)。选项:A:数据块B:对象C:函数体D:类答案:【类】2、问题:一个函数功能不太复杂,但要求被频繁调用,则应把它定义为()。选项:A:嵌套函数B:内联函数C:递归函数D:重载函数答案:【内联函数】3、问题:适宜采用inline定义函数情况是()。选项:A:函数代码多、不常调用B:函数体含有循环语句C:函数体含有递归语句D:函数代码少、频繁调用答案:【函数代码少、频繁调用】4、问题:类MyA的拷贝构造函数的原型是()选项:A:MyA()B:MyA(MyA&)C:MyA(MyA)D:MyA(MyA*)答案:【MyA(MyA&)】5、问题:在类中说明的成员可以使用关键字的是()。选项:A:cpuB:publicC:registerD:extern答案:【public】6、问题:下列不能作为类的成员的是()。选项:A:自身类对象B:自身类对象的引用C:自身类对象的指针D:另一个类的对象答案:【自身类对象】7、问题:假定AA为一个类,a()为该类公有的函数成员,x为该类的一个对象,则访问x对象中函数成员a()的格式为()。选项:A:x.aB:x->aC:x.a()D:(*x).a()答案:【x.a()】8、问题:静态成员函数没有()。选项:A:返回类型B:指针参数C:返回值D:this指针答案:【this指针】9、问题:下面程序输出结果是()。#includeusingnamespacestd;classexample{inta;public:example(intb=5){a=b++;}voidprint(){a=a+1;cout<选项:A:62B:61C:51D:52答案:【62】10、问题:一个类可包含析构函数的个数是()。选项:A:至少1个B:0个C:0个或多个D:1个答案:【1个】11、问题:下列关于析构函数描述正确的是()。选项:A:不能指定返回类型B:函数体中必须有delete语句C:返回类型必须是void类型D:可以重载答案:【不能指定返回类型】12、问题:拷贝构造函数创建对象时,使用已经存在的同类对象来进行初始化,由编译器自动调用。选项:A:对B:错答案:【对】13、问题:this指针存在于类的成员函数中,指向被调用函数所在的类实例的地址。选项:A:对B:错答案:【对】14、问题:如果一个对象被声明为常对象,则不能调用该对象的非const型的成员函数(除了由系统自动调用的隐式构造函数和析构函数)。选项:A:错B:对答案:【对】15、问题:拷贝构造函数,是一种特殊的构造函数,它在创建对象时,是使用同一类中之前创建的对象来初始化新创建的对象。选项:A:错B:对答案:【对】第五章单元测试1、问题:如果从原有类定义新类可以实现的是()。选项:A:数据封装B:继承机制C:数据抽象D:信息隐藏答案:【继承机制】2、问题:下面叙述不正确的是()。选项:A:基类的公有成员在派生类中仍然是公有的B:对基类成员的访问必须是无二义性的C:派生类一般都用公有派生D:赋值兼容规则也适用于多重继承的组合答案:【基类的公有成员在派生类中仍然是公有的】3、问题:在公有派生类的成员函数不能直接访问基类中继承来的某个成员,则该成员一定是基类中的()。选项:A:保护成员B:保护成员或私有成员C:私有成员D:公有成员答案:【私有成员】4、问题:在私有继承的情况下,基类的公有成员在派生类对象中的访问权限()。选项:A:受保护B:不受保护C:保持不变D:受限制答案:【受限制】5、问题:对基类和派生类的关系描述中,错误的是()。选项:A:派生类是基类的特殊化B:派生类是基类的具体化C:基类继承了派生类的属性D:派生类是基类定义的延续答案:【基类继承了派生类的属性】6、问题:关于this指针使用说法正确的是()。选项:A:保证每个对象拥有自己的数据成员,但共享处理这些数据的代码B:保证基类公有成员在子类中可以被访问。C:保证基类保护成员在子类中可以被访问。D:保证基类私有成员在子类中可以被访问。答案:【保证每个对象拥有自己的数据成员,但共享处理这些数据的代码】7、问题:假设,即类Y是类X的派生类,则说明一个Y类的对象时和删除Y类对象时,调用构造函数和析构函数的次序分别为()。选项:A:X,Y;X,YB:;C:X,Y;D:;X,Y答案:【X,Y;】8、问题:以下基类中的成员函数表示纯虚函数的是()。选项:A:virtualvoidtt()=0B:voidtt(int)=0C:virtualvoidtt(int){}D:virtualvoidtt(int)答案:【virtualvoidtt()=0】9、问题:关于类的静态成员函数描述错误的是()。选项:A:不是对象的成员B:在创建对象前不存在C:不能直接访问非静态函数D:不能说明为虚函数答案:【在创建对象前不存在】10、问题:如果派生类的成员函数的原型与基类中被定义为虚函数的成员函数原型相同,那么,这个函数自动继承基类中虚函数的特性。选项:A:错B:对答案:【对】第六章单元测试1、问题:重载运算符限制在C++语言中已有的运算符范围内的允许重载的运算符之中,不能创建新的运算符。()选项:A:对B:错答案:【对】2、问题:重载之后的运算符可以改变运算符的优先级和结合性,也能改变运算符操作数的个数及语法结构。()选项:A:对B:错答案:【错】3、问题:运算符重载为类的成员函数和重载为友元函数不同的是,重载为成员函数时声明和定义中省略了第一个参数,因为成员函数总是与对象捆绑使用的,被捆绑的对象就是被操作的第一参数。()选项:A:对B:错答案:【对】4、问题:双目运算符重载为友元函数时有两个参数即运算符的两个操作数,而重载为成员函数时只有一个参数,即运算符的第二个操作数()。选项:A:错B:对答案:【对】5、问题:operator运算符就是运算符重载函数的函数名,比如:operator+就是函数名。()选项:A:对B:错答案:【对】6、问题:基类中定义的虚函数为整个类族提供了一个通用的框架,说明了一般类所应该具有的行为,派生类根据自己的情况给出自己的定义,即对基类中定义的虚函数进行重定义。()选项:A:对B:错答案:【对】7、问题:C++中的虚函数的作用主要是实现了多态机制,即父类类别的指针(或者引用)指向其子类的实例,然后通过父类的指针(或者引用)调用实际子类的成员函数。多态机制可以简单地概括为“一个接口,多种方法”。()选项:A:错B:对答案:【对】8、问题:当编译器在编译程序的过程中看到某个类中有虚函数的标志时,就会为这个类的实际对象创建一个指针即虚函数表指针vtbl,以指向类中的虚函数表。虚函数表里包含了所有的虚函数代码的地址,以NULL结束。虚函数如果在派生类被重写,就由派生类重写的虚函数地址来代替。()选项:A:错B:对答案:【对】9、问题:有虚函数的类,其对象的空间比没有虚函数的类多了一个指针的空间,这个指针就是指向虚函数表的指针。()选项:A:对B:错答案:【对】10、问题:构造函数可以定义为虚函数,析构函数不可以定义为虚函数。()选项:A:对B:错答案:【错】11、问题:析构函数的作用是在对象撤销之前做必要的“清理现场”的工作。()选项:A:对B:错答案:【对】12、问题:当派生类的对象从内存中撤销时一般先调用派生类的析构函数,然后再调用基类的析构函数。()选项:A:对B:错答案:【对】13、问题:当一个类有子类时,该类的析构函数必须是虚函数,否则子类的析构函数不会被调用,使得子类对象被撤销之前动态申请的资源没有被释放,造成内存泄漏。()选项:A:对B:错答案:【对】14、问题:下列属于动态多态的是()。选项:A:构造函数重载B:虚函数C:函数重载D:运算符重载答案:【虚函数】15、问题:下面的说法错误的是()。选项:A:函数重载在编译时表现出的多态性是静态多态性,而虚函数则在运行时表现出的多态性是动态多态性。B:C++支持两种多态性,静态联编所支持的多态性被称为静态多态性,动态联编所支持的多态性被称为动态多态性。C:C++的两种联编方式为:静态联编和动态联编。D:函数模板和类模板的实例化的过程是通过动态联编实现的。答案:【函数模板和类模板的实例化的过程是通过动态联编实现的。】第七章单元测试1、问题:关于函数模板,描述错误的是()。选项:A:用关键字template引出对类型参数名的声明B:函数模板必须由程序员实例化为可执行的模板函数C:函数模板不是函数,它需要以具体的类型为实参才能生成函数D:函数模板的实例化由编译器实现答案:【函数模板必须由程序员实例化为可执行的模板函数】2、问题:假设有函数模板定义如下:templateintMin(T*a,intsize){Ttemp=a[0];intj=0;for(inti=1;i选项:A:Min(ArrayX,int);B:Min(ArrayX,10);C:Min(ArrayX,size);D:Min(ArrayX);答案:【Min(ArrayX,10);】3、问题:假设有模板定义如下:templateTMin(Tm1,Tm2){return(m1选项:A:templatefloatMin(Tm1,Tm2){return(m1B:templateT1Min(T1m1,T2m2){return(m1C:templateT1Min(T1a[],T2n){T1minnum=a[0];for(inti=0;ia[i])minnum=a[i];returnminnum;}D:templateTMin(Tm1,Tm2,Tm3){Ttemp=Min(m1,m2);returnMin(temp,m3);}答案:【templatefloatMin(Tm1,Tm2){return(m1】4、问题:建立类模板对象的实例化过程为()。选项:A:基类—派生类B:类模板—模板类—对象C:模板类—模板函数D:类模板—对象答案:【类模板—模板类—对象】5、问题:类模板Array的模板参数定义如下:template则下面哪个对象的定义是错误的?()选项:A:Array<double,10>a;B:Arraya;C:Arraya;D:Arraya(10);答案:【Arraya;】6、问题:下面定义类模板模板参数的定义语句错误的是()。选项:A:templateB:templateC:templateD:template答案:【template】7、问题:以下类模板、模板类、普通类之间的派生方式正确的是()选项:A:从普通类派生出类模板B:从模板类派生出普通类C:从类模板派生出新的类模板D:从模板类派生出类模板答案:【从普通类派生出类模板;从模板类派生出普通类;从类模板派生出新的类模板;从模板类派生出类模板】8、问题:类模板templateclassX{},其中,函数模板f定义为该类模板实例化的每个模板类的友元,则其说明应为()。选项:A:templatefriendvoidX::f(x&)B:friendvoidf();C:friendvoidX::f();D:templatefriendvoidf(X&);答案:【templatefriendvoidf(X&);】9、问题:下面vector容器的定义不正确的是()选项:A:vectorv;B:vectorv(10);C:vectorv;D:vectorv;答案:【vectorv;】10、问题:顺序容器中,能通过pop_front()删除最前面的元素的是()。选项:A:B:list,dequeC:D:答案:【】11、问题:函数模板实例化时,没有普通传值参数的类型转换机制。()选项:A:错B:对答案:【对】12、问题:把通过函数模板按实际类型生成的函数称为模板函数,这个过程称为实例化。编译程序实例化后的模板函数自动生成目标代码。()选项:A:错B:对答案:【对】13、问题:函数模板中可以有不止一个类型参数,每一个类型参数前面都要加typename或class来说明。()选项:A:对B:错答案:【对】14、问题:下面是类模板的定义语句分别是char、double、float类型的变量,则下面定义对象的语句哪一个是错误的?()选项:A:ClassXobj;B:ClassXobj;C:ClassXobj;D:ClassX<>obj;答案:【ClassXobj;】15、问题:编译器会选择实参经过自动类型转换后能够匹配的模板函数进行匹配。()选项:A:错B:对答案:【错】第八章单元测试1、问题:下面关于C++输入输出的说法正确的是()选项:A:C++有专门的输入输出命令;B:C++流是指信息向外部设备(如键盘和磁盘)输入输出的过程。C:C++通过一种称为流的机制提供了输入和输出方法;D:流是一种灵活且面向对象的I/O方法;答案:【C++通过一种称为流的机制提供了输入和输出方法;;流是一种灵活且面向对象的I/O方法;】2、问题:cout是()的一个对象,处理标准输出。选项:A:ostreamB:clogC:cerrD:isteam答案:【ostream】3、问题:下列程序的输出结果是()。#includeusingnamespacestd;intmain(){inti=1;cout<<++i<<i++<<i<<i++<<++i<<endl;return0;}选项:A:22335B:23345C:54535D:53525答案:【23345】4、问题:设己定义浮点型变量data,按data在内存中的表示原样输出到显示器上,正确的语句是()。选项:A:cout.write((double*)&data,sizeof(double));B:cout.write((char*)&data,sizeof(double));C:cout.write((char*)&data,data);D:cout.write((double*)&data,data);答案:【cout.write((char*)&data,sizeof(double));】5、问题:若定义cin>>str;当输入ObjectWindowsProgramming!,所得的结果是()选项:A:str=ObjectWindowsProgramming!B:C:str=ObjectD:str=ObjectWindowsProgramming答案:【str=Object】6、问题:在C++中,用getline函数读取string对象时()。选项:A:读取字符直至

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论