《面向对象程序设计》在线测试
- 格式:docx
- 大小:18.35 KB
- 文档页数:6
《面向对象程序设计》第05章在线测试A class Complex { Complex operator +();}B+(Complex &);}C class Complex { Complex operator+(Complex, Complex);}DA BC D如果表达式是作为普通函数重载的运算符,A BC D、双目运算符的调用格式是(A右运算对象BC右运算对象D、一个程序中数组int a[5][10],k;”,且程序中包含有语句“A BC DC、.D、,2、下面运算符可以重载的是()A、*B、.*C、?:D、->*3、关于运算符重载,下列说法错误的是()。
A、重载时,运算符的优先级可以改变。
B、重载时,运算符的结合性可以改变。
C、重载时,运算符的功能可以改变。
D、重载时,运算符的操作数个数可以改变。
4、下面关于逗号运算符的说法正确的是()A、逗号运算符是多目运算符B、逗号运算符的表达式为“左运算数,右运算数”,返回值为右运算数的值。
C、逗号运算符可以重载为成员函数,形参只带右运算数。
D、逗号运算符的返回值为左运算数的值。
5、下面关于函数调用运算符正确的说法是()A、重载函数调用运算符只能说明为类的非静态成员函数B、重载了的函数调用运算符可以带多个形参,也可以带缺省参数C、重载函数调用运算符的作用与重载函数的作用相同D、重载函数的一般格式为:类名::operator();第三题、判断题(每题1分,5道题共5分)1、对每个可重载的运算符来讲,它既可以重载为友元函数,又可以重载为成员函数。
正确错误正确错误、重载运算符为成员函数和友元函数时的关键区别在于成员函数具有正确错误+=运算符与标准数据类型的=运算作用完全相同。
正确错误、下标运算符重载函数只能作为类的成员函数,不能作为类的友元函数。
正确错误。
面向对象程序设计样卷一、选择题( 本大题共10小题, 每题2分, 共20分)4.在下列定义的引用中, ( B )是错误的。
A. int i;B. int i;int &j = i; float &j=i;C. float i;D. char d;float &j = i; char &e = d;5. 假定BB为一个类,则执行BB y;语句时将自动调用该类的( B )A. 有参构造函数B. 无参构造函数C. 拷贝构造函数D. 赋值重载函数7.下列对派生类的描述中, ( C )是错误的。
A. 一个派生类能够作为另一个派生类的基类B.派生类至少应有一个基类C. 基类中成员访问权限继承到派生类中都保持不变D.派生类成员除了自己定义的成员外, 还包含了它的基类成员10.控制输出格式的控制符中, ( D )是设置输出宽度的。
A.wsB.endsC. setfill()D.setw()二、填空题( 本大题共10小题, 每题2分, 共20分)1.以/*开始, 以*/结束, 在/*和*/之间的部分即为注释。
2.重载函数在参数类型或参数个数上不同, 但函数名和类名_相同。
3. 假如一个类的名称为MyClass, 使用这个类的一个对象初始化该类的另一个对象时, 能够调用__拷贝______构造函数来完成此功能。
4.当删除对象时, 程序自动调用析构函数。
5. 对于每一个类的非静态成员函数, 都有一个隐含的_this_______指针。
8. 抽象类是指类里有一个函数, 是纯嘘函数。
三、改错题( 下面程序或程序段中有一处错误, 请用注释标明错误所在行的出错原因。
本大题共5小题, 每题2分, 共10分) 1. #include<iostream>using namespace std;int main(){ cout<<"This is a program."<<endl;return 0;}2. #include<iostream>using namespace std;int main(){x=3;int y=x*x;cout<<"y="<<y<<"\n";return 0;}3. #include<iostream>using namespace std;class Aa{public:Aa(int i=0){a=i; cout<<"Constructor "<<a<<endl; } ~Aa(){ cout<<"Destructor "<<a<<endl; }void print( ){cout<<a<<endl;}private:int a;};int main(){Aa al(1),a2(2);al.print();cout<<a2.a<<endl;return 0;}4.class A{int a,b;public:A(int aa,int bb=78){a=aa;b=bb;} };int main(){A x(2), y(4,9);return 0;}5. #include<iostream>using namespace std;class Test{public:static int x;};int Test :: x=20;int main(){cout<<Test::x;return 0;}四、程序分析题( 分析程序, 写出运行结果。
《面向对象程序设计》课程模拟测试一、选择题1、C++语言是从早期的C语言逐渐发展演变而来的.与C语言相比,它在求解问题方法上进行的最大改进是()A.面向过程B.面向对象C.安全性D.复用性2、关于虚函数的描述中,正确的是()A.虚函数是一个static类型的成员函数B.虚函数是一个非成员函数C.基类中说明了虚函数后,派生类中将其对应的函数可不必说明为虚函数D.派生类的虚函数与基类的虚函数具有不同的参数个数和类型3、下列关于构造函数的描述中,错误的是()A.构造函数可以设置默认参数;B.构造函数在定义类对象时自动执行C.构造函数可以是内联函数;D.构造函数不可以重载4、在以下关于C++语言的注释的叙述中,不正确的是()A.C++程序中,注释可用“/*”、“*/”形式表示,也可用“//”形式表示B.C++编译器在编译一个程序时,将跳过注释,不对其进行处理C.C++编译器在编译一个程序时,可发现注释中的单词拼写错误D.程序中注释的多少不会影响所生成的可执行文件的长度5、C++语言的跳转语句中,对于break和continue说法正确的是()A.break语句只应用于循环体中B.continue语句只应用于循环体中C.break是无条件跳转语句,continue不是D.break和continue的跳转范围不够明确,容易产生问题6、下列关于C++函数的说明中,正确的是()A.内联函数就是定义在另一个函数体内部的函数B.函数体的最后一条语句必须是return语句C.标准C++要求在调用一个函数之前,必须先声明其原型D.编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式7、在下面的一维数组定义中,哪一个有语法错误。
()A.int a[ ]={1,2,3} B.int a[10]={0}C.int a[ ] D.int a[5]8、面向对象系统不具有()特性A. 继承性B. 封装性C. 过程性D. 多态性9、下列静态数据成员的特性中,错误的是()A.说明静态数据成员前边加staticB.静态数据成员要在类体外初始化C.引用静态数据成员时,要在静态数据成员前加<类名>和作用域运算符D.静态数据成员不是一个类所有对象共享的10、若用数组名作为函数调用时的实参,则实际上传递给形参的是()A.数组首地址B.数组的第一个元素值C.数组中全部元素的值D.数组元素的个数二、填空题1、C++语言中的每条基本语句以作为结束符,每条复合语句以作为结束符。
封面作者:PanHongliang仅供个人学习《面向对象程序设计》第04章在线测试剩余时间:59:57答题须知:1、本卷满分20分。
2、答完题后,请一定要单击下面的“交卷”按钮交卷,否则无法记录本试卷的成绩。
3、在交卷之前,不要刷新本网页,否则你的答题结果将会被清空。
第一题、单项选择题(每题1分,5道题共5分)1、若B类为A类的友元类,则下面的说法正确的是()A、B类的所有成员函数都是A类的友元函数B、B类指定的成员函数才是A类的友元C、A类的所有成员函数可以访问B类的成员D、B类的私有成员函数不能可以访问A类的私有成员2、一个类的友元不是该类的成员,与该类的关系密切,所以它()。
A、有this指针,有默认操作的对象B、没有this指针,可以有默认操作的对象C、有this指针,不能执行默认操作D、没有this指针,也就没有默认操作的对象3、下面的语句中能将类 B 定义为类A的友元类的是()A、friend class B。
B、class A{ friend B}。
C、class A{ friend class B。
}。
D、class friend B class A。
4、如果类 B 是类A的友元类,n是类A的私有数据成员,函数f(A tmp)是类B的公有成员函数,a是类A的对象, b是B类的对象,下面语句正确的是()A、main(){ f(a)。
}B、main(){ b.f。
}。
C、main(){ a.n。
}。
D、main(){ b.f(a)。
}。
5、下面对于友元函数描述正确的是A、友元函数的实现必须在类的内部定义B、友元函数是类的成员函数C、友元函数破坏了类的封装性和隐藏性D、友元函数不能访问类的私有成员第二题、多项选择题(每题2分,5道题共10分)1、一个类的友元不是该类的成员,与该类的关系密切,所以下面它的说法错误的是()。
A、有this指针,有默认操作的对象B、没有this指针,可以有默认操作的对象C、有this指针,不能执行默认操作D、没有this指针,也就没有默认操作的对象2、下面关于友元的说法正确的是()A、友元函数是拥有成员函数一切权利B、友元是一种成员函数C、友元可以直接访问类的所有成员D、友元不能访问类的私有成员3、下面关于友元函数正确的说法是()A、在类中用关键词friend声明友元函数B、友元函数说明的位置只能在类的public区C、友元函数的定义只能放在类的外部D、友元函数不是类的成员函数4、关于友元函数的说法正确的是()A、友元函数可以是普通函数,可以是其他类的成员函数,也可以是本类的成员函数B、友元函数可以访问多个类的私有成员和保护成员C、在调用友元函数的时候需要使用“.”运算符D、如果友元函数是某个类的成员函数,在定义这个友元函数的时候要使用类前缀。
北理工《面向对象程序设计》在线作业试卷总分:100 得分:100一、单选题 (共 38 道试题,共 76 分)1. 若有如下函数声明:voidFun(int);,则下列()不能与该函数进行重载。
A. void Fun(int,int);B. void Fun(double);C. int Fun(int);D. void Fun(int) const满分:2 分正确答案:C2. 有如下类声明:classMyClass{public:MyClass(){cout<<1;}};执行语句MyClassa,b[2],*p[2];后,程序的输出结果是()。
A. 11B. 111C. 1111D. 11111满分:2 分正确答案:B3. 派生类对象对它的基类成员中()是可以访问的。
A. 公有继承的私有成员B. 公有继承的保护成员C. 公有继承的公有成员D. 私有继承的公有成员满分:2 分正确答案:C4. 下列关于友元的描述中,错误的是()。
A. 友元破坏了类的封装性B. 友元提高了程序的运行效率C. 友元可以在类外声明和定义D. 友元能够访问类中的私有成员满分:2 分正确答案:C5. 下列关于运算符重载的描述中,______是正确的。
A. 运算符重载可以改变运算数的个数;B. 运算符重载可以改变优先级;C. 运算符重载可以改变结合性;D. 运算符重载不可以改变语法结构。
满分:2 分正确答案:D6. 假定p指向的字符串为”string”,若要输出这个字符串的地址值,则使用()。
A. cout<<*pB. cout<<pC. cout<<pD. cout<<p满分:2 分正确答案:D34. 下列关于类成员的描述中,正确的是()。
A. 友元函数是类的成员函数B. 类成员的默认访问权限是私有的C. 类成员函数必须声明为公有的D. 类的静态数据成员不能是常成员满分:2 分正确答案:B6. 执行下列程序后的输出结果是()。
001017[面向对象程序设计]5天大在线考试题库及答案面向对象程序设计复习题一、单项选择题1、基类中的保护成员在其私有派生类中的访问属性是(答案是A )。
A.私有B.公有C.保护D.不确定2、在类的非静态成员函数中,不可以直接访问的数据成员是(答案是D )。
A.本类的私有成员B.本类的保护成员C.本类的公有成员D.本类的所有非静态成员3、下列标示符中,不符合C++标示符命名规则的是(C)。
A.x10B. _totalC.πD.www4、下列整型常数中,不符合C++语法的是(C)。
A.12uB.-67lC.059D.0X11ff5、下列常量中,不符合C++语法的是(答案是D )。
A.”\\0”B.‘*’C.“”D.“It’s an array!”6、下列数组的初始化形式中,不符合C++语法的是(答案是A )。
A.int s1[3]={1,2,3,4}B.int s2[3]={0}C.char s3[3]={‘a’,’x’,’d’}D.char s4[]=“asd”7、如果说明语句为:int a[4]={10,20,30,40,50}, *p=&a[2];则*p的值是(答案是 B )。
A.a[2]的地址B.30C.20D.不确定8、已知:int a[3][3];下列表示数组元素a[0][0]的方法中,不符合C++语法的是(C)。
A.**aB.*a[0]C.a[0]D.*(*a[1]-1)9、已知:int a=3,b=5,下列表达式中,值为0的表达式是(答案是 B )。
A.a%5-5B.a/bC.!a||bD.a&&b10、C++中字符常数的定界符是(答案是 B )。
A.”B.‘C.#D.\\11、已知:int a=9,sum=0;下列循环中,不构成死循环的是(答案是 A )。
A.for(;a;a++) sum+=a--B.do{sum+=a--}while(--a);C.while(a=1) sum+=a--;D.do{sum+=a}while(a-1);12、如果定义一个函数时未指定该函数的返回值类型,则函数返回值类型应是(答案是 B )。
面向对象程序设计试卷一、选择题(每题2分,共20分)1. 面向对象程序设计中的三大特征是:A. 封装、继承、多态B. 抽象、封装、继承C. 封装、继承、封装D. 继承、多态、封装2. 下列哪个不是面向对象程序设计的优点?A. 代码重用B. 易于维护C. 程序复杂度低D. 可扩展性好3. 在Java中,哪个关键字用于定义类?A. classB. structC. interfaceD. type4. 以下哪个是Java中不允许的类名?A. MyClassB. 2MyClassC. MyClass2D. MyClass_5. 在面向对象程序设计中,以下哪个概念不是用于实现封装?A. 私有成员B. 公有方法C. 访问控制D. 继承6. 下列哪个不是Java的访问控制修饰符?A. publicB. privateC. protectedD. global7. 以下哪个是Java中不允许的方法名?A. myMethodB. _myMethodC. my_methodD. myMethod_8. 在Java中,哪个关键字用于实现继承?A. extendsB. inheritC. deriveD. base9. 以下哪个不是Java的多态性实现方式?A. 接口B. 抽象类C. 重载D. 重写10. 在Java中,哪个关键字用于定义接口?A. interfaceB. protocolC. abstractD. type二、简答题(每题10分,共30分)1. 简述面向对象程序设计中封装的概念,并给出一个封装的简单示例。
2. 解释什么是多态性,并说明多态性在面向对象程序设计中的重要性。
3. 描述继承在面向对象程序设计中的作用,并举例说明如何使用继承来提高代码的复用性。
三、编程题(每题25分,共50分)1. 定义一个名为`Student`的类,包含以下属性:- 姓名(String类型)- 学号(String类型)- 年龄(int类型)并为该类实现以下方法:- 一个构造函数,用于初始化姓名、学号和年龄。
国家开放大学(面向对象程序设计)[填空题]1试述值类型和引用类型的区别?参考答案:值类型和引用类型的区别在于,值类型的变量直接存放实际的数据,而引用类型的变量存放的则是数据的地址,即对象的引用。
值类型变量直接把变量的值保存在栈中,引用类型的变量把实际数据的地址保存在栈中,而实际数据则保存在堆中。
[填空题]2试述下面代码的输出结果是什么?参考答案:old3[填空题]3简述装箱和拆箱的过程。
参考答案:装箱(boxing)是将值类型隐式地转换为引用类型。
如int i=3;object o = i ;便是装箱过程,装箱一个数值会为其分配一个对象实例,并把该数值拷贝到新对象中。
拆箱(unboxing)是显式地把引用类型转换成值类型,如int j = (int)o char j= (char)。
[填空题]4什么是静态变量?参考答案:类的数据成员可以分静态变量、非静态变量两种.静态成员:静态类中的成员加入static修饰符,即是静态成员.可以直接使用类名+静态成员名访问此静态成员,因为静态成员存在于内存,非静态成员需要实例化才会分配内存,所以静态成员不能访问非静态的成员..因为静态成员存在于内存,所以非静态成员可以直接访问类中静态的成员.非成静态员:所有没有加Static的成员都是非静态成员,当类被实例化之后,可以通过实例化的类名进行访问非静态成员的生存期决定于该类的生存期..而静态成员则不存在生存期的概念,因为静态成员始终驻留在内容中。
一个类中可以同时包含静态成员和非静态成员,类中也包括静态构造函数和非静态构造函数。
[填空题]5试述abstract class和interface有什么区别?参考答案:[填空题]6进程和线程分别怎么理解?参考答案:1)定义解释进程是具有一定独立功能程序在关于某个数据集上的一次运行活动。
进程是系统进行资源分配和调度的一个独立单位。
线程是进程的一个实体,是Cup调度的基本*单位。
地大《面向对象程序设计(新)》在线作业一-0007试卷总分:100 得分:100一、单选题 (共 15 道试题,共 60 分)1. C++语言对C语言做了很多改进,C++语言相对于C语言的最根本的变化是()A. 增加了一些新的运算符B. 允许函数重载,并允许设置缺省参数C. 规定函数说明符必须用原型D. 引进了类和对象的概念答案:D2.下列程序的运行结果为()。
#include void print(double a) { cout<<++a; }void print(int a,int b) { cout<<b<<a } void main() { print(1.2);cout<<” ”; print(3,4); }A. 1.2?34B. 2.2?34C. 1.2?43D. 2.2?43答案:D3.由C++目标文件连接而成的可执行文件的缺省扩展名为A. cppB. exeC. objD. Lik答案:B4.判断一个ofstream类对象file打开文件是否失败,应该判断()A. 创建文件流对象时是否抛出异常B. open成员函数的返回值C. feof成员函数的返回值D. ! file 是否为真答案:D5.有如下程序: #include class BASE{ char c; public: BASE(char n):c(n){} virtual~BASE(){cout<<C;} }; class DERIVED:public BASE{ char c; public: DERIVED(charn):BASE(n+1),c(n){} ~DERIVED(){coutA. XYB. YXC. XD. Y答案:A6.用cin为整型变量输入数据时,如果从键盘输入的不是数字,输入后整型变量中的结果会是()A. 0B. 负数C. 正数D. 不确定答案:D7.类C是以多重继承的方式从类A和类B继承而来的,类A和类B无公共的基类,那么()A. 类C的继承方式只能采用public继承B. 可改用单继承的方式实现类C的同样功能C. 类A和类B至少有一个是抽象类D. 类A和类B至少有一个是虚基类答案:B8.下列程序的执行结果为()。
《面向对象程序设计》第12 章在线测试节余时间:59:56答题须知: 1、本卷满分20 分。
2、答完题后,请必定要单击下边的“交卷”按钮交卷,不然没法记录本试卷的成绩。
3、在交卷以前,不要刷新本网页,不然你的答题结果将会被清空。
第一题、单项选择题(每题1分,5道题共 5 分)1、面向对象的程序设计语言一定具备的重点因素是( )A、抽象和封装B、抽象和多态性C、抽象、封装、继承和多态性D、抽象、封装和继承性2、封装性应拥有的条件是()A、有一个清楚的界限B、有确立的接口C、受保护的内部实现D、以上全部3、 OOD的作用是()A、提取需求B、逻辑建模C、求解域建模D、剖析用例4、按钮与电梯按钮的关系是()A、部分与整体B、一般与特别C、实例连结D、信息连结5、面向对象模型不包含()A、静态模型B、对象模型C、功能模型D、动向模型第二题、多项选择题(每题2分,5道题共 10 分)1、部分与整体的关系有()方式A、组合B、结合C、聚合D、整合2、对象之间存在的关系包含()A、部分与整体B、一般与特别C、实例连结D、信息连结3、对于多态的说法正确的选项是()A、不一样种类的对象接收同样的信息产生不一样的行为B、多态的成员函数需要定义为虚函数C、在 C++中经过基类指针调用虚函数实现多态D、多态是指对象的多种表现形式4、对于软件生命周期的说法正确的选项是()A、开发程序就是直接编码B、在程序设计以前需要先进行软件设计1 / 3C、软件投入使用后软件生命周期结束D、软件保护也是软件生命周期的一个阶段5、下边对于面向对象的特点说法正确的选项是()A、每一个对象都拥有独一的表记B、任何类的区分都是客观的,程序员一定恪守其规定C、继承性是子类自动共享父类数据构造和方法的体制D、多态是指同样的操作或函数、过程可作用于多种种类的对象上并获取不一样的结果第三题、判断题(每题 1 分, 5 道题共 5分)1、面向对象开发技术分三个阶段:面向对象剖析,面向对象设计和面向对象实现。
考试试卷A(答案)面向对象程序设计注意事项:1。
请考生按要求在试卷装订线内填写姓名、学号和年级专业。
2. 请仔细阅读各种题目的回答要求,在规定的位置填写答案。
3。
不要在试卷上乱写乱画,不要在装订线内填写无关的内容.4。
满分100分,考试时间为120分钟。
一。
单项选择(本大题共10小题,每小题3分,共30分)1. C#中每个int类型的变量占用( B )个字节的内存。
(A)8 (B)4 (C)2 (D)12。
面向对象的特点是( A )(A)封装、继承、多态(B)抽象、封装、多态(C)抽象、继承、封装(D)抽象、多态、重载3。
C#控制台程序的主入口点是( C )(A) Page_Load函数(B)Run函数(C)Main函数(D)Form_Load函数4。
引用类型存储在( B )中。
(A)堆栈(B)堆内存(C)队列(D)列表5. 在C#中,表示一个字符串的变量应使用以下哪条语句定义( B )(A)CString str (B)string str(C)Dim str as string (D)char *str6。
在中,用来与数据源建立连接的对象是( A )。
(A)Connection对象(B)Command对象(C)DataAdapter对象(D)DataSet对象7. 在类的定义中,类的( B )描述了该类的对象的行为特征.(A)类名(B)方法(C)所属的名字空间(D)私有域8. 如果未显式赋值,则将整型值( B )赋给枚举中的第一个元素。
(A)1 (B)0 (C)2 (D)39. float类型的值可以隐式转换成( C )类型的值而保持值不被改变。
(A)char (B)long (C)double (D)int10。
在C#中,假设Class1是一个类,而IExample是一个接口,下面的( A )类声明是正确的。
(A)class Employee: Class1, IExample(B )class Employee : IExample , Class1(C )class Employee- Class1, IExample(D )class Employee: Class1/IExample二.判断题(本大题共5小题,每小题3分,共15分)1. C#中子类可以继承多个基类,也可以继承一个接口。
(单选题) 1: 设有定义 int i=123; long j=456; 下面赋值不正确的语句是( )A: j=i;B: j=(long)i;C: i=(int)j;D: i=j;正确答案:(单选题) 2: 设有定义 int i = 6 ;,则执行以下语句后,i 的值为( )。
i += i - 1;A: 10B: 121C: 11D: 100正确答案:(单选题) 3: int 型 public 成员变量 MAX_LENGTH,该值保持为常数100,则定义这个变量的语句是( )A: public int MAX_LENGTH=100B: final int MAX_LENGTH=100C: public const int MAX_LENGTH=100D: public final int MAX_LENGTH=100正确答案:(单选题) 4: 给出如下代码: class test{ private int m; public static void fun() { // some code... } } 如何使成员变量m 被函数fun()直接访问( )。
A: 将private int m 改为protected int mB: 将private int m 改为 public int mC: 将private int m 改为 static int mD: 将private int m 改为 int m正确答案:(单选题) 5: 如果类中的成员变量可以被同一包访问,则使用如下哪个约束符( )。
A: privateB: publicC: protectedD: no modifier正确答案:(单选题) 6: 所有的异常类皆继承哪一个类?( )正确答案:(单选题) 7: 设有定义 float x=3.5f, y=4.6f, z=5.7f;则以下的表达式中,值为true的是( )A: x > y || x > zB: x != yC: z > ( y + xD: x < y & ! ( x < z )(单选题) 8: 不允许作为类与类成员的访问控制符的是( )。
测试结果如下:∙ 1.1 [单选] [错] 下面的步骤不属于C++程序开发步骤的是∙ 1.2 [单选] [对] 执行完下列语句后,n的值为多少?() int n; for (n = 0;n < 100; n++)∙ 1.3 [单选] [对] VC项目中可以添加的文件类型不可以是∙ 1.4 [单选] [对] 下面重载函数不会发生二义性错误的是∙ 1.5 [单选] [对] 函数的形参和实参结合的本质是∙ 2.1 [多选] [错] 高级语言源程序需要经过那些步骤才能成为可执行文件?∙ 2.2 [多选] [对] C++的输出可以使用∙ 2.3 [多选] [错] 内联函数正确的是∙ 2.4 [多选] [错] 下面函数声明正确的是∙ 2.5 [多选] [对] 执行下面程序后,a和b的值分别为 void main() { int a, b, k=4, m=6,*p1=&k,*p2=&m; a=p1==&m;b=(-*p1)/(*p2)+7; cout<<a<<b<<endl;}∙ 3.1 [判断] [对] 内联函数体内可以使用C++的所有控制语句。
∙ 3.2 [判断] [对] 重载的函数的函数名是相同的,但它们的参数的个数和数据类型不同。
∙ 3.3 [判断] [对] 在for循环设置条件的第一个";"前,可以用“,”分隔不同的赋值表达式。
∙ 3.4 [判断] [对] 静态局部变量和全局变量的作用域和生存期都是一样的。
∙ 3.5 [判断] [对] 函数调用时使用的数组参数实际上就是一个指针。
A BC D、执行完下列语句后, 0; n < 100; n++)A BC D项目中可以添加的文件类型不可以是A BC、.HD、.LIB4、下面重载函数不会发生二义性错误的是A、int f(…); char f();B、int f(floatf , int j); int f(int I , floatf);C、int f(int i=0,int j=0); int f(); int f(i nt i);D、char f(const float f, const int &j); int f (float f ,int j);5、函数的形参和实参结合的本质是A、传值B、传地址C、根据情况而定D、传名字第二题、多项选择题(每题2分,5道题共10分)1、高级语言源程序需要经过那些步骤才能成为可执行文件?A、编辑B、编译C、连接D、格式化2、C++的输出可以使用A、scanfB、printfC、coutD、out3、内联函数正确的是A、内联函数用inline关键字说明B、内联函数调用时用具体的函数体代码替换函数调用C、内联函数与预定义语句相同D、在一个文件中定义的内联函数不可以在另一个文件中使用4、下面函数声明正确的是正确错误、重载的函数的函数名是相同的,但它们的参数的个数和数据类型不同。
封面
作者:PanHongliang
仅供个人学习
3、在交卷之前,不要刷新本网页,否则你的答题结果将会被清空。
第一题、单项选择题(每题1分,5道题共5分)
1、若B类为A类的友元类,则下面的说法正确的是()
A、B类的所有成员函数都是A类的友元函
数
B、B类指定的成员函数才是A类的友元
C、A类的所有成员函数可以访问B类的成员
D、B类的私有成员函数不能可以访问A类的私有成员
2、一个类的友元不是该类的成员,与该类的关系密切,所以它()。
A、有this指针,有默认操作的对象
B、没有this指针,可以有默认操作的对象
C、有this指针,不能执行默认操作
D、没有this指针,也就没有默认操作的对象
3、下面的语句中能将类B 定义为类A的友元类的是()
A、friend class B。
B、class A{ friend B}。
C、class A{ friend class B。
}。
D、class friend B class A。
4、如果类B 是类A的友元类,n是类A的私有数据成员,函数f(A tmp)是类B的公有成员函数,a是类A的对象, b是B类的对象,下面语句正确的是()
A、main(){ f(a)。
}
B、main(){ b.f。
}。
C、main(){ a.n。
}。
D、main(){ b.f(a)。
}。
5、下面对于友元函数描述正确的是
A、友元函数的实现必须在类的内部定义
B、友元函数是类的成员函数
C、友元函数破坏了类的封装性和隐藏性
D、友元函数不能访问类的私有成员
第二题、多项选择题(每题2分,5道题共10分)
1、一个类的友元不是该类的成员,与该类的关系密切,所以下面它的说法错误的是()。
A、有this指针,有默认操作的对象
B、没有this指针,可以有默认操作的对象
C、有this指针,不能执行默认操作
D、没有this指针,也就没有默认操作的对象
2、下面关于友元的说法正确的是()
A、友元函数是拥有成员函数一切权利
B、友元是一种成员函数
C、友元可以直接访问类的所有成员
D、友元不能访问类的私有成员
3、下面关于友元函数正确的说法是()
A、在类中用关键词friend声明友元函数
B、友元函数说明的位置只能在类的public区
C、友元函数的定义只能放在类的外部
D、友元函数不是类的成员函数
4、关于友元函数的说法正确的是()
A、友元函数可以是普通函数,可以是其他类的成员函数,也可以是本类的成员函数
B、友元函数可以访问多个类的私有成员和保护成员
恭喜,交卷操作成功完成!你本次进行的《面向对象程序设计》第04章在线测试的得分为20分(满分20分),本次成绩已入库。
若对成绩不满意,可重新再测,取最高分。
测试结果如下:
∙ 1.1 [单选] [对] 若B类为A类的友元类,则下面的说法正确的是()
∙ 1.2 [单选] [对] 一个类的友元不是该类的成员,与该类的关系密切,所以它()。
∙ 1.3 [单选] [对] 下面的语句中能将类B 定义为类A的友元类的是()
∙ 1.4 [单选] [对] 如果类B 是类A的友元类,n是类A的私有数据成员,函数f(A tmp)是类B的公有成员函数,a是类A的对象, b是B类的对象,下面语句正确的是()
∙ 1.5 [单选] [对] 下面对于友元函数描述正确的是
∙ 2.1 [多选] [对] 一个类的友元不是该类的成员,与该类的关系密切,所以下面它的说法错误的是()。
∙ 2.2 [多选] [对] 下面关于友元的说法正确的是()
∙ 2.3 [多选] [对] 下面关于友元函数正确的说法是()
∙ 2.4 [多选] [对] 关于友元函数的说法正确的是()
∙ 2.5 [多选] [对] 下面关于友元函数使用特点的说明正确的是()
∙ 3.1 [判断] [对] 友元只能访问类中的公有成员,不能访问私有成员。
∙ 3.2 [判断] [对] 友元函数的定义只能放在类的外部,与类的成员函数放在一起。
∙ 3.3 [判断] [对] 如果函数f()要操作类A和类B的私有成员,可以把f()声明为类A的成员函数,把类A声明为类B的友元类。
∙ 3.4 [判断] [对] 友元具有传递性,单向性和继承性的特点。
∙ 3.5 [判断] [对] 一个函数可以是多个类的友元函数。
版权申明
本文部分内容,包括文字、图片、以及设计等在网上搜集整理。
版权为潘宏亮个人所有
This article includes some parts, including text, pictures, and design. Copyright is PanHongliang's personal ownership.
用户可将本文的内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。
除此以外,将本文任何内容或服务用于其他用途时,须征得本人及相关权利人的书面许可,并支付报酬。
Users may use the contents or services of this article for personal study, research or appreciation, and other
non-commercial or non-profit purposes, but at the same time, they shall abide by the provisions of copyright law and other relevant laws, and shall not infringe upon the legitimate rights of this website and its relevant obligees. In addition, when any content or service of this article is used for other purposes, written permission and remuneration shall be
obtained from the person concerned and the relevant obligee.
转载或引用本文内容必须是以新闻性或资料性公共免费信息为
使用目的的合理、善意引用,不得对本文内容原意进行曲解、修改,并自负版权等法律责任。
Reproduction or quotation of the content of this article must be reasonable and good-faith citation for the use of news or informative public free information. It shall not misinterpret or modify the original intention of the content of this article, and shall bear legal liability such as copyright.。