面向对象技术与C++A卷1
- 格式:doc
- 大小:52.00 KB
- 文档页数:1
▆■■■■■■■■■■■■福建师范大学网络与继续教育学院《面向对象的程序设计》期末考试A卷姓名:专业:学号:学习中心:一、单项单选题 (共25题,每题2分,共50分)1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 251、以下对部署图说法不正确的是()。
A.部署图有主要建模元素是构件B.使用部署图可以显示运行时系统的结构,同时还传达构成应用程序的硬件和软件的配置的部署方式C.从部署图中,可以了解到软件与硬件之间物理关系及处理节点的组件分布情况D.部署图是用来显示系统中软件和硬件的物理结构2、组件图用于对系统的静态实现视图建模,这种视图主要支持系统部件的配置管理,通常可以分为三种方式来完成,下面哪种不是其中之一()。
A.对源代码建模B.对事物建模C.对数据库建模D.对可执行文件建模3、关于面向对象方法的优点,下列不正确的叙述是()。
A.与人类习惯的思维方法比较一致B.可重用性好C.以数据操作为中心D.可维护性好4、类和接口的关系类似于下面哪种类型的关系()。
A.关联(association)和聚集(aggregation)B.关联(association)和组合(composition)C.脚本(scenario)和用例(use case)D.包(Package)和子系统(subsystem)5、UML通过图形化的表示机制从多个侧面对系统的分析和设计模型进行刻画,其中()包括构件图,它描述软件系统中各组成构件,构件的内部结构以及构件之间的依赖关系。
A.行为视图B.结构视图C.构件视图D.用例视图6、行为类模式使用()在类间分派行为。
A.接口B.继承机制C.对象组合D.委托7、通常对象有很多属性,下面仅能在对象内部访问的属性可见性限制是()。
A.公有的(public)B.受保护的(protected)C.友员(friendly)D.私有的(private)8、下面不属于创建型模式的有()。
面向对象程序设计C++复习资料与答案第一、二、六、七章习题一、选择题1、系统约定C++源程序文件名的缺省的扩展名为()A、bccB、c++C、cppD、vcc2、面向对象的程序设计将数据与( )放在一起,作为一个相互依存、不可分割的整体来处理.A、对数据的操作B、信息C、数据隐藏D、数据抽象3、当一个函数无返回值时,函数的类型应定义为()A、voidB、任意C、intD、无4、对于C++的函数,正确的叙述是:A、函数的定义不能嵌套,但函数的调用可以嵌套B、函数的定义不能嵌套,但函数的调用不能嵌套C、函数的定义和调用都不能嵌套D、函数的定义和调用都可以嵌套5、下列语句中错误的是( )A、int *p=new int(10);B、int *p=new int[10]C、int *p=new int;D、int *p=new int[40](0);6、假设已经有定义:const char *const name=”chen”;,下面的语句中正确的是:()A、name[3]=’a’;B、name=”lin”;C、name=new char[5]; D、cout<〈name[3];7、假设已经定义:char *const name=”chen”;, 下面的语句中正确的是:( )A、name[3]=’q';B、name=”lin”;C、name=new char[5];D、name=new char(‘q’);8、假设已经定义:const char *name=”chen”;,下面的语句中错误的是:( )A、name[3]=’q’;B、name=”lin”;C、name=new char[5];D、name=new char(‘q’);9、下面的类型声明中正确的是:( )A、int &a[4];B、int &*p;C、int &&qD、int i,*p=&i;10、假设定义了函数模板( )template 〈class T>T max(T x,T y){ return(x>y)?x:y;}并定义了int i;char c;错误的调用语句是:()A、max(i,i)B、max(c,c)C、max((int)c,i);D、max(i,c)11、模板的使用是为了( )A、提高代码的可重用性B、提高代码的运行效率C、加强类的封装性D、实现多态性12、设有二个语句:int x[‘a’];cin>>x;则编译器认为()A、说明语句int x[‘a’]错B、二个语句都错C、语句cin〉〉x 错D、二个语句正确,没有语法错13、设有语句:void f(int a[10],int &x);int y[10],*py=y,n;则对函数f的正确调用语句是( )A、f(py[10],n);B、f(py,n)C、f(*py,&n)D、f(py,&n)14、在C++中实现封装是借助于()A、枚举B、类C、数组D、函数15、对于下面几个函数:(1) void f(int x,float y){……}(2) int f(int a,float b){…… }(3) int f(int i,int j){……}(4) float k(int x){…… }是重载函数。
C++面向对象程序设计考试试卷(详细讲解)(1)C++面向对象程序设计考试试卷(详细讲解)一、单项选择题(共20题,每题1分,共20分)1、下列关于C++标识符的命名不合法的是 C 与C#一样A. PadB. name_1C. A#bcD. _a122、若有以下类型标识符定义:()Dint x=2; char w='a'; float y=23.45f; double z=45.6712;则表达式w*x+y-z的结果类型是A. floatB. charC. intD. double6、对重载函数形参的描述中,错误的是 D 重载是重点A. 参数的个数可能不同B. 参数的类型可能不同C. 参数的顺序可能不同D. 参数的个数、类型、顺序都相同,只是函数的返回值类型不同7、以下能正确定义数组并正确赋初值的语句是 DA. int N=5,b[N][N];B. int a[2]={{1},{3},{4},{5}};C. int c[2][]={{1,2},{3,4}};D. int d[3][2]={{1,2},{3,4}};8、下列给字符数组进行的初始化中,不正确的是 DA. char s1[]="abcd";B. char s2[3]={'x','y','\0'};C. char s3[]={'a','x','y','\0'};D. char s4[6]={"xyz","mnp"};9、通常的拷贝构造函数的参数是 CA.某个对象名 B.某个对象成员名C.某个对象的引用 D.某个对象的指针名10、关于构造函数特点的描述中,错误的是 AA. 定义构造函数必须指出类型(构造函数特点是无返回类型)B. 构造函数的名字与该类的类名相同C. 一个类中可定义0至多个构造函数(不写构造函数,系统会自动生成一个空的构造函数)D. 构造函数是一种成员函数11、下面程序的运行结果为 C#includeint add(int a,int b);void main(){extern int x,y;cout<<add(x,y)<<endl;< p="">}int x=20,y=5;int add(int a,int b){int s=a+b;return s;}A.20 B.5 C.25 D.编译会提示出错信息12、关于常成员的描述中,错误的是 BA. 常成员包含常数据成员和常成员函数两种B. 常数据成员必须是公有的C. 常数据成员要使用构造函数成员初始化列表进行初始化D. 常对象只能调用它的常成员函数,不能调用其它的成员函数13、关于友元函数的描述中,错误的是 BA. 友元函数不是成员函数B. 友元函数只能访问类中私有成员C. 友元函数破坏隐藏性,尽量少用D. 友元函数说明在类体内,使用关键字friend14、如果有int x,*p; float y,*q;则下面操作正确的是 CA.p=x B.p=qC.p=&x D.p=&y16、若数组名作实参而指针变量作形参,函数调用时实参传给形参的是 DA. 数组的长度B. 数组第一个元素的值C. 数组所有元素的值D.数组第一个元素的地址17、对于动态分配内存空间描述正确的是 DA.使用new运算符分配的内存空间的长度必需是常量B.delete运算符可以释放动态的存储空间和静态的存储空间C.由new分配的内存空间是不连续的D.delete运算符只能释放由new分配的动态存储空间18、能够释放对象所占资源的是() AA.析构函数 B.数据成员C.构造函数 D.静态成员函数19、虚函数的定义是在基类中进行的,定义时需要冠以关键字 CA.static B.frendC.virtual D.public20、在C++中串流类是在头文件strstrea.h中定义的,下列不属于串流类的是) C A.strstream B.ostrstreamC.ofstream D.istrstream二、填空题(共9题16空,每空1分,共16分)1、函数重载时,编译系统会根据__形参的类型__ 或__形参的个数__ 来区分。
适用专业:考试时间:90分钟一、单项选择题(每小题2分,共计40分)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、所谓信息隐藏是指隐藏模块的()A.接口部分 B.实现细节 C.源代码 D.一切信息7、以下说法错误的是()A.测试不能证明程序是正确的 B.测试不能证明程序中没有错误C.成功的测试是指发现程序的所有错误 D.测试是为了发现程序中的错误8、面向对象方法的要素是()A.对象、类、数据类型和算法 B.对象、类、继承和消息C.对象、基类、派生类和继承 D.对象、父类、子类和继承9、在用面向对象观点建立的模型中()是最基本、最重要、最核心的模型。
A.对象模型 B.动态模型 C.功能模型 D.操作模型10、用“自底向上”方式建立继承关系是指( )A.把现有类细化成更具体的子类 B.从现有类泛化出更抽象的父类C.从较高的层次推导出较低的层次 D.从较低的层次抽象出较高的层次11、软件危机出现于(),为了解决软件危机,人们提出了用()的原理来设计软件,这是软件工程诞生的基础。
A.50年代末 B.60年代初 C.60年代末 D.70年代初A.运筹学 B.工程学 C.软件学 D.软件学 E.数字12、初始化模块和结束模块从块内联系看,被称为()模块。
A.过程内聚B.功能内聚C.时间内聚D.逻辑内聚13、下列耦合度表示中,最弱的耦合形式是()A、特征耦合B、公共耦合C、数据耦合D、数据结构14、PAD(Problem Analysis Diagram)图是一种()工具。
C/C++测试题面向对象选择题:C++概述1、以下C++新增的关键字为。
A breakB continueC stuctD inline//答案:D2、面向对象程序设计将数据与______放在一起,作为相互依存、不可分割的整体来处理。
A对数据的操作B信息C数据隐藏D数据抽象//答案:A3、面向对象程序设计优于传统的结构化程序设计,其优越性主要表现在,它有希望解决软件工程的两个主要问题:软件复杂性和______。
A 软件生产率的提高B 精化已有的代码C 共享代码D 编写可重用代码//答案:A4、面向对象系统的______是一种信息隐藏技术,目的在与将对象的使用者与设计者分开,使用者不必知道对象行为实现的细节,只需用设计者提供的协议命令对象去做即可。
A多态性B封装性C继承性D复用性//答案:B5、______不是面向对象系统所包含的要素A重载B对象C类D继承//答案:A6、关于C++与C语言的关系的描述中,______是错误的。
A C语言是C++的一个子集B C++与C语言是兼容的C C++对C语言进行了一些改进D C++与C语言都是面向对象的//答案:D7、下面关于对象概念的表述中,______是错误的。
A 对象就是C语言中的结构变量B 对象代表着正在创建的系统中的一个实体C 对象是一个状态和操作(或方法)的封装体D 对象之间的信息传递是通过信息进行的//答案:A8、下面关于类概念的表述中,______是错误的。
A 类是抽象数据类型的实现B 类是具有共同行为的若干对象的统一描述体C 类是创建对象的样板D 类就是C语言中的结构类型9、下列关于C++类的描述中错误的是______。
A 类与类之间可以通过一些手段进行通信和联络B 类用于描述事物的属性和对事物的操作C 类与类之间必须是平等关系,而不能组成层次关系D 类与类之间可以通过封装而具有明确的独立性//答案:C10、下列关键字中,_______既在C语言中使用,又在C++语言中使用A inlineB breakC privateD public//答案:B11、C++对C语言做了很多改进。
《C++面向对象程序设计》试题(A卷) (满分:100分时间:150分钟日期:2005.1.10)一、(共20分,每题2分)单项选择1.已定义了一个类A并有语句A* pa=new A(5); 那么以下说法正确的是:A. 该语句会创建A类的一个对象,并将此对象的地址赋给指针pa; B. 该语句会创建A类的5个对象,且它们的地址是连续的; C. 当指针变量pa超出其作用域时,pa和为对象分配的空间都将被自动释放;D. 类A中一定有一个显式定义的构造函数和一个显式定义的虚析构函数;2.定义类A的非静态成员函数A& f(A& one)时,需有语句return exp;则exp不能是:A.类A 中类型为A的静态数据成员 B. f中用语句A a = one; 定义的量a C. oneD. *this3.在一个类中,下列哪些成员可以是多个?A. 无参构造函数 B. 析构函数C. 原型相同的非静态成员函数 D. 静态成员函数4.对类T中的下列成员,若不考虑代码优化,一般来说它们中的哪个执行起来最慢?A. 缺省的无参构造函数 B. 缺省的拷贝构造函数 C. T f( ) { T t; return t; }D. 不能判定A、B、C哪个最慢5.对函数原型为int& min(int& a, int& b);的全局函数,下列语句块哪个是错误的:A. int x=10,y=5; min(x,y)=100; B. int x=10,y=5, z; z=min(x,y+=x); C. int x=10,y=5;min(x,10)=y; D. int x=10,y=5; x=min(x,y);6.关于拷贝构造函数错误的说法有:A. 拷贝构造函数是一种特殊的构造函数,且不能在类中进行函数重载。
B. 若自定义派生类的拷贝构造函数,那么也必须自定义基类的拷贝构造函数。
C. 拷贝构造函数只能有一个参数,且为常量引用或非常量引用。
《⾯向对象程序设计》模拟试卷1浙江警官职业学院2013—2014学年第⼀学期期末考试《⾯向对象程序设计》模拟试卷⼀、判断题。
(共10分,每题1分,对的打“√”,错的打“メ”)1、C#程序必须包含⼀个Main⽅法作为程序的⼊⼝点。
(√)2、String类型是引⽤类型。
(√)3、只有Get访问器的属性称为只写属性。
(メ)4、构造函数可以被重载。
(√)5、属性占⽤存储空间。
(メ)6、类中的静态构造函数不能带参数,不能具有可访问性修饰符。
(√)7、⼀个类可以有多个不同名的构造函数。
(メ)8、⼦类将继承⽗类所有的成员。
(√)9、变量在可以作为ref引⽤参数传递之前,可以不赋值。
(メ)10、⼀个类可以实现多个接⼝。
(√)⼆、选择题。
(共20分,每题1分)1、以下C#注释代码,不正确的是( D )。
A、//C#注释代码B、//C#注释代码1//C#注释代码2C、////C#注释代码D、/*C#注释代码*/2、下⾯属于合法的字符串常量的是( B )。
A、@XYZB、"XYZ"C、’XYZ’D、XYZ3、在窗体中,改变label标签的显⽰结果,需修改的属性是(A )。
A、TextB、NameC、TitleD、Index4、当没有定义访问修饰符时,类的成员的默认访问修饰符为( D )。
A、privateB、publicC、protectedD、internal5、执⾏下列语句将产⽣的结果是( B )。
int i=1;if ( i ) Console.WriteLine(true);else Console.WriteLine(false);A、输出1B、输出trueC、输出falseD、编译错误6、以下关于静态⽅法的说法,不正确的是(D )。
A、静态⽅法不对特定实例进⾏操作B、静态⽅法只能直接访问静态成员C、在静态⽅法中引⽤this会导致编译时错误D、静态⽅法通过类的实例来访问7、定义⼀个数组string[] role={“赵灵⼉”,“李逍遥”,“林⽉如”,“杨过”,“⼩龙⼥”},数据中的role[5]指的是( D )。
面向对象分析与设计试题B卷一、单项选择题( 在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。
每小题2 分,共20 分)/* 上个世纪80年代开始至今还盛行的以Smalltalk,C++等为代表的面向对象软件开发方法(00)*/1.到20世纪末,面向对象软件工程已经逐渐发展成熟,特别是(D)的形成和广泛使用,采用面向对象分析与编程的软件开发方法已成为软件开发的主流方法。
A. Simula67语言(20世纪70年代的Simula-67是第一个面向对象的语言)B. Smalltalk语言(80年代初的Smalltalk语言)C. Java语言(对流行的语言进行面向对象的扩充得到的语言或C++)D. 统一建模语言(UML)的标准2. 面向对象的运动产生了多种面向对象的语言, 其中(C)是一种混合性面向对象语言, 既支持面向过程的程序设计方法,又支持面向对象的程序设计方法,有广泛应用的基础和丰富开发环境的支持,因而使面向对象的程序设计能得到很快普及。
A. SmalltalkB. EiffelC. C++D. Java3.下列不属于面向对象技术的基本特征的是(B)。
A. 封装性B. 模块性C. 多态性D. 继承性4. 面向对象程序设计将描述事物的数据与( C ) 封装在一起,作为一个相互依存、不可分割的整体来处理。
A. 信息B. 数据隐藏C. 对数据的操作D. 数据抽象5. 关于面向对象方法的优点,下列不正确的叙述是(C)。
A. 与人类习惯的思维方法比较一致B. 可重用性好C. 以数据操作为中心D.可维护性好6.(D)是从用户使用系统的角度描述系统功能的图形表达方法。
A. 类图B. 对象图C. 序列图D. 用例图7. (C ) 是表达系统类及其相互联系的图示,它是面向对象设计的核心,建立状态图、协作图和其他图的基础。
A.对象图 B. 组件图 C. 类图 D. 配置图**8.(D)描述了一组交互对象间的动态协作关系,它表示完成某项行为的对象和这些对象之间传递消息的时间顺序。
面向对象部分测试题考试宣言:同学们, 考试考多少分不是我们的目的! 排在班级多少的名次也不是我们的初衷!我们考试的目的是要通过考试中的题目,检查大家在这段时间的学习中,是否已经把需要掌握的知识掌握住了,如果哪道题目你不会做,又或者做错了, 那么不用怕, 考完试后, 导师讲解的时候你要注意听! 那时候学会了, 记住了, 也一样不影响你高薪就业!本套题共40道不定项选择题,其中单选30道,多选10道。
单选2分/题,多选4分/题。
多选题不全对半分,全对满分。
1.下面描述函数重写错误的是A. 要有子类继承或实现B. 子类方法的权限必须大于等于父类的权限C. 父类中被private权限修饰的方法可以被子类重写D. 子类重写接口中的抽象方法,子类的方法权限必须是public的//接口所有方法前面都是默认public abstract2.下面关于类的设计思路描述错误的是 ( )A. 根据需求定义类所包含的字段(成员变量)B. 根据面向对象的思想要求,隐藏属性和实现细节之后,可以提供公共的访问方式C. 封装之后的字段在本类内也必须使用get/set方法//private修饰之后可以在本类中直接使用,不需要通过get/set方法调用D. 按需求可以在类中定义若干构造方法3.分析如下Java代码,如果想在控制台上输出“B类的test()方法”,则在主函数应填入()。
class A {public void test() {System.out.println("A类的test()方法");}}class B extends A {public void test() {System.out.println("B类的test()方法");}public static void main(String args[]) {}}A. A a = new B();a.test();B. A a = new A();a.test();C. B b = new A();b.test();D. new B().test();4.关于封装下面介绍错误的是()。
●下面关于面向对象方法中消息的叙述,不正确的是____(2)__。
(2)A. 键盘、鼠标、通信端口、网络等设备一有变化,就会产生消息B.操作系统不断向应用程序发送消息,但应用程序不能向操作系统发送消息C. 应用程序之间可以相互发送消息D.发送与接收消息的通信机制与传统的子程序调用机制不同正确答案:B【解析】在系统中既使用对象又使用类和继承等机制,而且对象之间仅能通过传递消息实现彼此的通信,这样的方法才称为"面向对象的方法"。
●面向对象技术中,对象是类的实例。
对象有三种成份:____(3)____、属性和方法(或操作)。
(3) A. 标识B. 规则C. 封装D. 消息正确答案:A解析:对象有三种成份:标识(对象名)、属性和方法(或操作)。
●在面向对象技术中,类属是一种__(1)__机制。
一个类属类是关于一组类的一个特性抽象,它强调的是这些类的成员特征中与__(2)__的那些部分,而用变元来表示与__(3)__的那些部分。
(1)A.包含多态B.参数多态C.过载多态D.强制多态(2)A.具体对象无关B.具体类型无关C.具体对象相关D.具体类型相关(3)A.具体对象无关B.具体类型无关C.具体对象相关D.具体类型相关解析:在面向对象技术中,对象在收到信息后要予以响应。
不同的对象收到同一消息可产生完全不同的结果,这一现象称为多态。
多态有多种不同的形式,其中参数多态和包含多态称为通用多态,过载多态和强制多态成为特定多态。
参数多态应用比较广泛,被称为最纯的多态。
这是因为同一对象、函数或过程能以一致的形式用于不同的类型。
包含多态最常见的例子就是子类型化,即一个类型是另一类型的子类型。
过载多态是同一变量被用来表示不同的功能,通过上下文以决定一个类所代表的功能。
即通过语法对不同语义的对象使用相同的名,编译能够消除这一模糊。
强制多态是通过语义操作把一个变元的类型加以变换,以符合一个函数的要求,如果不做这一强制性变换将出现类型错误。
计算机技术与软件水平考试面对对象程序设计试题(6)一、单项选择题( 在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。
每小题2 分,共40 分)1.C++ 对C 语言作了许多改进,即从面对过程变成为面对对象的主要缘由是( )A. 增加了一些新的运算符B. 允许函数重载,并允许设置缺省参数C. 规定函数说明符必需用原型D. 引进了类和对象的概念2. 下列符号不能组成标识符的是( )A. 连接符B. 下划线C. 大小写字母D. 数字字符3. 类型修饰符unsigned 不能修饰( )A. charB. intC. long intD. float4. 在int a=3,int *p=&a ;中,*p 的值是( )A. 变量a 的地址值B. 无意义C. 变量p 的地址值D.35. 下列关于指针的操作中,错误的是( )A. 两个同类型的指针可以进行比较运算B. 可以用一个空指针赋给某个指针C. 一个指针可以加上两个整数之差D. 两个同类型的指针可以相加6. 重载函数在调用时选择的依据中,错误的是( )A. 函数的参数B. 参数的类型C. 函数的名字D. 函数的类型7. 一个函数功能不太困难,但要求被频繁调用,选用( )A. 内联函数B. 重载函数C. 递归函数D. 嵌套函数8. 下列不是描述类的成员函数的是( )A. 构造函数B. 析构函数C. 友元函数D. 拷贝构造函数9. 构造函数不具备的特征的是( )A. 构造函数的函数名与类名相同B. 构造函数可以重载C. 构造函数可以设置默认参数D. 构造函数必需指定类型说明10. 通常,拷贝构造函数的参数是( )A. 某个对象名B. 某个对象的成员名C. 某个对象的引用名D. 某个对象的指针名11. 继承机制的作用是( )A. 信息隐藏B. 数据封装C. 定义新类D. 数据抽象12. 类的析构函数的作用是( )A. 一般成员函数B. 类的初始化C. 对象的初始化D. 删除对象创建的全部对象13. 类的析构函数是在( ) 调用的。
2010-2011学年第1学期面向对象建模技术模拟试题(A卷)考试时间:2010年12月30日班级学号姓名✧请将答案写在答题纸上,写明题号,不必抄题,字迹工整、清晰;✧请在答题纸和试题纸上都写上你的班级,学号和姓名,交卷时请将试题纸、答题纸和草纸一并交上来。
一、选择题,每题1分,共计20分。
每个括号里的数字为该空的题号,从该题号对应的备选答案中选择最佳的一项,每空限填一个选项。
请按如下表格在答题纸上答此题。
在UML语言中,下图中的a、b、c三种图形符号按照顺序分别表示(1)。
a b c1.供选择的答案:A. 边界对象、实体对象、控制对象B. 实体对象、边界对象、控制对象C. 控制对象、实体对象、边界对象D. 边界对象、控制对象、实体对象(2)设计模式定义了对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动刷新。
2.供选择的答案:A. Adapter(适配器)B. Iterator(迭代器)C. Prototype(原型)D. Observer(观察者)Round-Trip Engineering能够帮助维持软件架构的完整性。
但(3) 不是Round-trip Engineering 的好处之一。
3.供选择的答案:A. 发现和评估软件架构上的改动B. 为相同的接口提供不同的实现C. 在每次迭代中保持模型和代码的同步D. 传达被接受的架构改动下面4种符号在Rose中表示的模型元素分别为(4)4.供选择的答案:A. 接口(Interface) 类操作(Operation) 时序图(Sequence Diagram) 类属性(Attribute)B. 类操作(Operation) 接口(Interface) 类属性(Attribute) 时序图(Sequence Diagram)C. 接口(Interface) 类属性(Attribute) 类操作(Operation) 时序图(Sequence Diagram)D. 时序图(Sequence Diagram) 类属性(Attribute) 接口(Interface) 类操作(Operation)在建立系统的用例模型时,首先应该确定系统的参与者。
一、单项选择题(出题人:刘敏,尹仁青)1.关键字—c_—说明对象或变量初始化后不会被修改。
A.s taticB. public C・const D. inline2.如果调用带有默认参数的函数时缺少一个参数,则—参数就作为这一个参数。
A.笫一个B•最后一个C•中间一个D•以上都不是3.静态数据成员的生存期_A—oA.与整个程序相同B.不长与类的生存期C.取决于创建的对象数D.以上都不是4•设置虚基类的目的是: B OA.简化程序B.消除二义性C.提高运算效率D.减少目标代码5.下列语句中,将函数int sum(int x, int y)正确重载的是___ C ____A.fl oat sum(int x, int, y)B.int sum(int a, int b)C.f 1 oat sum(float x, float y)D.double sum(int y, int x)6•已知X类,则当程序执行到语^1: X array [3];时,调用了—D—次构造函数。
A.0B. 1C. 2D. 37•如果表达式++i*k中的“++”和都是重载的友元运算符,若采用运算符函数调用格式,则表达式还可以表示为BA.operator * (i. operator++ (), k)B.operator*(i・ oper3tor++(i), k)C・ i・ opcrator++()・ operator*(k)D.k.opreator*(operator++(i))8•下面对模板的声明,正确的是—C—A.temlate<T>B.template<class Tl, T2>C・ tcmplatc<class Tl,class T2>D. template<class T1;class T2>9.考虑下面的函数原型声明:void testDefaulParam (int a, int b=7, char z二'*');下面函数调用中,不合法的是____ C ____A.testDefaulParam(5)B.testDefaulParam(5, 8)C.testDefaulParam(5, ' #')D.testDefaulParam(0, 0, ? *')10.类定义的内容允许被其他对象无限制的存取的是—C _______A.private 部分B.protected 部分C.public 部分D.以上都不对11・_B_不是属于面向程序设计的特性A.抽象性B.数据相关性C.多态性D.继承性12•将对某一类数据的处理算法应用到另一类数据的处理中,要用到C++的 DA.类B.虚函数C.运算符重载D.模板13.C++与C语言最根本的不同之处在于—A_A.使用了类B.能够实现变量自动初始化C.支持软件重用D.支持接口重用14.动态内存分配的主要目的是A・使程序按动态链编方式运行 B.正确合理的使用内存C.提高程序的运行速度D.提高程序的可维护性15.在C++函数的形参前加const关键字,是为了提高函数的_C—A.数据封装性B.可理解性C.可维护性D.可重用性16•函数重载的目的是B_A.实现共享B.使用方便,提高可读性C.提高速度D.减少空间17•从程序片段:char name[] = ” C++” ; course (name);可判断函数course的调用采用的是—D_A.传值调用B.带缺省参数值的函数调用C.引用调用D.传址调用18.用来说明类中公有成员的关键字是_A_A.publicB. privateC.protectedD.friend 19•如果一个类的成员函数print ()不修改类的数据成员值,则应将其声明为AA. v oid pri nt() con st;B. const void print ()C. void const print ()D. void print (const)20•在程序代码:A::A(int a, int *b) {this->x=a; this -〉y 二b;} 中,this 的类型是_C_A. intB. int *C. AD. A *二、程序改错(出题人:张晨)#inelude <iostrcam> using namespace std;void swap(int &a, (1) int 6){ int t; t=a; a=b; b 二t;}void max (int a, int b, (2)int t, (3)int maxnum,int &minnum)if ((4) a<=t) if ((5)a<=t)) if (b 〈二 c) (7) maxnum=b ;Iint main()int a, b, c, maxnum, minnum; swap (a, b);swap (a, c);(6) swap (b, t)mirm um 二c;cout<<〃input a, b,c:〃;cin>>a>>b>>c;(8)min (a, b, c, maxnum, minnum);cout<<z'(9)a= <<maxnuHi〈〈endl;cout<<z,(7zZ?c-,,<<minnum<<cndl;return 0;答案:(Dint&b (2)int c(3)int &maxnum(4) (a<=b) (5) (a〈二c)(6) swap (b, c)(7)maxnum=a(8)max(9)maxnum(10)minnum三、阅读下面程序,写出其结果。
《面向对象程序设计C++ 》期末考试一试卷( A )班级:姓名:学号:分数:题号一二三四总分得分试卷说明:本套试题共四个大题,所有题目都答在答题纸上,写在其余地方均无效。
(答题纸在本套试卷的第10 页上)一、选择题(每题 2 分,共 40 分)1、C++是()。
A.面向对象的程序设计语言B.面向过程的程序设计语言C.既支持面向对象的程序设计又支持面向过程的程序设计的混淆型语言D.非结构化的程序设计语言2、面向对象程序设计思想的主要特点中不包含()。
A. 封装性B. 多态性C. 继承性D. 功能分解,逐渐求精3、若定义: string str;当语句cin>>str;履行时,从键盘输入:Microsoft Visual Studio 6.0!所得的结果是str=()。
B. MicrosoftA. Microsoft Visual Studio 6.0!C. Microsoft Visual4、考虑下边的函数原型申明:void testDefaulParam(int a,int b=7,char z='*');下边函数调用中,不合法的是()。
A. testDefaulParam(5);B. testDefaulParam(5,8);C. testDefaulParam(5,'#');D. testDefaulParam(0,0,'*');5、以下语句中,将函数 int sum(int x, int y) 正确重载的是()。
A. float sum(int x, int y);B. int sum(int a, int b);C. float sum(float x, float y);D. double sum(int y, int x);6、以下表示引用的方法中,()是正确的。
已知: int a=1000;A. int &x=a;B. char &y;C. int &z=1000;D. float &t=&a;7、在一个函数中,要求经过函数来实现一种不太复杂的功能,而且要求加速履行速度,采纳()。
学号___________________ 姓名________________成绩_______________《面向对象编程技术》试卷注:1)请将答案写在答题纸上,写在试卷上不算分。
答题纸在试卷的最后页。
2)交卷时,试卷和答题纸一起交。
一、单选题(每小题1.5分,共30分)1. C++中,以下有关构造函数的叙述不正确的是 ______ 。
A. 构造函数名必须和类名一致B. 构造函数在定义对象时自动执行C. 构造函数无任何函数类型D. 在一个类中构造函数有且仅有一个2.以下叙述不正确的是 ______ 。
A. 在类的定义中,通常是成员变量描述对象的属性;用成员函数描述对象的行为B. 类的一个成员只能具有一种访问控制属性C. 构造函数和析构函数是特殊的成员函数,因此不允许重载D. 通过对象只能访问类的公有成员3. 以下关于虚函数的叙述不正确的是 ______ 。
A. 虚函数属于成员函数B. 虚函数不允许说明成静态的C. 凡是虚函数必须用virtual说明D. 虚函数可以被继承4.cout是I0流库预定义的______ 。
A.类B.对象C. 包含文件D. 常量5.面向对象程序设计中的数据隐藏指的是______ 。
A.输入数据必须输入保密口令B.数据经过加密处理C. 对象内部数据结构上建有防火墙D.对象内部数据结构的不可访问性6.拷贝(复制)构造函数的作用是______ 。
A.进行数据类型的转换B.用对象调用成员函数C.用对象初始化对象D.用一般类型的数据初始化对象7. 下列不是描述类的成员函数的是______ 。
A.构造函数B.析构函数C.友元函数D.拷贝构造函数8. 如果类A被说明成类B的友元,则______ 。
A.类A的成员即类B的成员B.类B的成员即类A的成员C.类A的成员函数不得访问类B的成员D.类B不一定是类A的友元9. 对于任何一个类,析构函数最多有______个。
A. 0B. 1C. 2D. n10. 下列特性中,C与C++共有的是______ 。
一、选择题(20分,共10题,每题2分)1. 关于方法论与方法的关系的描述错误的是(B )A.方法论是一种观点,是一个有理论意义的架构。
B.方法包括理论与模型两个重要的方面。
C.面向对象的方法论的重要观点是:封装、数据隐藏、多态、关系等。
D.不同的方法可以属于同一种方法论。
2.关于信息隐藏的描述错误的是(C)A.信息隐藏是指对象在与外界的交互中,尽可能地隐藏对象的内部细节,仅保留有限的对外接口与外部进行联系。
B.信息隐藏既可以隐藏属性,也可以隐藏操作。
C.一个对象信息隐藏的内容对任何对象都是一样的,并不随与之交互的对象的不同而改变。
D.信息隐藏的原则是公开不变的操作,隐藏易变的操作。
3.关于多态的描述正确的是(D)A.多态是指在聚合关系中的各个类中名字相同的属性和操作具有不同的意义。
B.多态的实现机制是编译时静态链接。
C.函数名重载(overload) 会导致多态现象出现。
D.多态可实现接口复用,节省大量的编码工作量.4.关于重载(overload)与覆盖(override)的说法正确的是(D)。
A.如果子类中的成员函数f(x)具有父类中成员函数f(x)相同的函数名,那么称子类对父类的f(x)进行了覆盖。
B.如果子类中的成员函数f(x)具有父类中成员函数f(x)相同的基调,那么称子类对父类的f(x)进行了重载。
C.重载导致多态,覆盖与多态无关。
D.覆盖由动态链接实现,重载由静态链接实现。
5.关于用况图与类图的描述正确的是(D)。
A.参与者是用况图中的元素,类是类图中的元素,二者没有关系。
B.用况图中用况应全部识别为类图中的同名类。
C.用况图中参与者应全部识别为类图中的同名类。
D.用况图中参与者有可能识别为类图中的主动类6.关于状态图的陈述正确的是(C)A.一个对象自身的属性值变化不能作为其状态图中的事件。
B.历史状态是指一个对象以前曾经所处的状态集合。
C.动作是在状态内或在转化时所做的操作,是原子的和即时的。
《面向对象的程序设计》期末考试A卷
姓名:
专业:
学号:
学习中心:
一、单选题 (共25题,每题2分,共50分)
▆《面向对象的程序设计》试卷共3页(第1 页)答案务必写在对应的作答区域内,否则不得分,超出黑色边框区域的答案无效!▆
▆
▆
▆
▆
▆
▆
▆
▆
▆
▆
▆
▆
▆
▆
▆
图 getName()方法之间的关系 ( 错 )
30、Adapter模式不是必须针对某个接口进行设计。
( 错 )
31、对象适配器模式是合成聚合复用原则的典型应用。
( 对 )
32、Decorator(装饰)模式的意图是为一个对象连接附加的职责。
( 对 )
33、在设计模式中,“效果”只是指“原因和结果”。
( 对 )
34、Façade外观模式只能为方法调用创建更简单的接口,不能减少客户必须处理的对象数量。
▆《面向对象的程序设计》试卷共3页(第17 页)答案务必写在对应的作答区域内,否则不得分,超出黑色边框区域的答案无效!▆
▆
37、UML2.0前有几种常用图(diagram)?哪些属于静态图,哪些属于动态图?
答:静态图:类图,对象图,用例图,部署图,构件图,
动态图:状态图,顺序图,活动图,协作图
▆《面向对象的程序设计》试卷共3页(第19 页)答案务必写在对应的作答区域内,否则不得分,超出黑色边框区域的答案无效!▆
▆
▆
▆
▆《面向对象的程序设计》试卷共3页(第23 页)答案务必写在对应的作答区域内,否则不得分,超出黑色边框区域的答案无效!▆
▆。
《面向对象方法与技术》复习参考题一、单项选择题(1 20=20分)1. 下列特性中,C与C++共有的是( D )A.继承B.封装C.多态性D.函数定义不能嵌套2. 对类的构造函数和析构函数描述正确的是___A___。
A)构造函数可以重载,析构函数不能重载B)构造函数不能重载,析构函数可以重载C)构造函数可以重载,析构函数也可以重载D)构造函数不能重载,析构函数也不能重载3.下面叙述不正确的是___D___A.派生类一般都用公有派生B.对基类成员的访问必须是无二义性的C.赋值兼容规则也适用于多重继承的组合D.基类的公有成员在派生类中仍然是公有的4.为了使类中的某个成员不能被类的对象通过成员操作符访问,则不能把该成员的访问权限定义为__A____。
A)publicB)protectedC)privateD)static5. 关于构造函数的说法错误的是__A_ A.构造函数只有一个B.构造函数无任何函数类型C.构造函数名与类名相同D.构造函数在说明对象时自动执行6. 对于常数据成员,下面描述正确的是___B____。
A)常数据成员可以不初始化,并且不能更新B)常数据成员必须被初始化,并且不能更新C)常数据成员可以不初始化,并且可以被更新D)常数据成员必须被初始化,并且可以被更新7.对于常成员函数,下面描述正确的是__C___。
A)类的成员函数可以操作常对象B)类的成员函数不能操作常对象C)只有常成员函数可以操作常对象D)在常成员函数中,常对象可以被更新8. 一个函数功能不太复杂,但要求被频繁调用,选用__A_____A.内联函数B.重载函数C.递归函数D.嵌套函数9.下列关于友元的描述中,错误的是___D___A.友元函数可以访问该类的私有数据成员B.一个类的友元类的成员函数都是这个类的友元函数C.友元可以提高程序的运行效率D.类与类之间的友元关系可以继承10.假定AB为一个类,则执行AB x;语句时将自动调用该类的___B___。