面向对象方法题库1-0-5

合集下载

面向对象试题(标准答案)

面向对象试题(标准答案)

CoreJavaOOP考试题考试时间:90分钟考试总分:100分一、选择题(不定项选择)(22*4=88)1.类A,B的定义如下:class A {private int a = 100;A() {System.out.print("A()");System.out.println(a);}}class B extends A {private int a = 200;B() {System.out.print("B()");System.out.println(a);}}运行下面的代码:new B();输出的结果是:(A )。

A.A() 100B() 200B.A() 200B() 200C.B() 200A() 100D.B() 200A() 2002.下列说法正确的是(D )A.所有类都必须定义构造方法(构造器)B.构造方法必须初始化类的所有数据成员C.子类定义了构造器后,不再调用父类的构造器D.构造方法可以访问类的非静态成员3.在Java中,哪个关键字使类不能派生子类?, (A )A : finalB : publicC : privateD : native4.class Base{static void test(){System.out.println(“Base.test()”);}}public class Child extends Base{static void test(){System.out.println(“Child.test()”);}public static void main(String[] args){Base base = new Child();Child child = new Child();base.test();child.test();}}程序运行的结果是( C )A.Child.test() Child.test()B.Child.test() Base.test()C.Base.test() Child.test()D.Base.test() Base.test()5.下列哪些叙述是正确的(CD )A.在一个类中,方法不能与类名相同B.a bstract 可以修饰属性、方法和类C.实例方法可直接调用本类的static方法和非static方法D.static方法不能调用非static方法6.以下说法正确的是(ABC)A.子类不能继承父类的构造方法B.子类的构造方法可以访问父类的构造方法C.子类不可直接访问父类的私有属性D.子类可以重写父类的所有方法7.分析选项中关于Java中this关键字的说法正确的是( A )A.this关键字是在对象内部指代自身的引用B.this关键字可以在类中的任何位置使用C.this关键字和类关联,而不是和特定的对象关联D.同一个类的不同对象共用一个this8 下列关于继承的说法哪个是正确的?( B )A.子类只继承父类public方法和属性B.子类继承父类的非私有属性和方法C.子类只继承父类的方法,而不继承父类的属性D.子类将继承父类的所有属性和方法9.在Java中,关于final关键字的说法正确的是(AC )A.final修饰的变量,一旦赋值就不能被更改B.final修饰的类只能被一个子类继承C.final修饰的方法,不能在子类中被覆盖D.final修饰的方法,不能被子类继承10. String s=new String(“xyz”)创建了几个对象(C);A. 0B. 1C. 2D. 311.下列语句的序列执行后,k的值是( B )int m=3,n=6,k=0;While((m++)<(--n))++k;A.0B.1C.2D.312.下列哪一项不是面向对象的典型特征(D )A.封装 B.继承C. 多态D.抽象13.(多选)在java中,关于构造方法,下列说法正确的是(ABD )A.构造方法的名称必须与类名相同B.构造方法可以带参数C.构造方法不可以重载D.构造方法绝对不能有返回值14.下面关于变量的说法正确的是(BC )A.实例变量可以通过类名直接调用B.类变量可以通过类名直接调用C. Java中的参数传递都是值传递D. 在不同的作用域不能定义相同的变量15.下列代码有编译错误的是第(C )行1)public class Test{2)public static void main(String[] args){3)int[] arr1 = new int[12];4)char[] arr2 = new char[];5)int[] arr3 = {};6)Object[] obj = new Object[4];7)Object obj1 = new object[9];8)}9)}A.5)B.5) 7)C.4) 7)D.4)16.下列代码的运行结果是(A )public class Test{private int num;private static Test test;public Test(int num){this.num = ++ num;}static{int num = 16;test = new Test(num);++ test.num;}public static void main(String[] args){test = new Test(13);System.out.println(test.num);}}A.14B.15C.16D.1717.仔细分析下列代码,请指出错误的行(D )。

面向对象程序设计(java)题库

面向对象程序设计(java)题库

面向对象程序设计(java)题库抽题规范:(1)此题库共75道题,抽8道作为期末考试题。

其中,易8道,较易33道,较难18道,容易16道.(2)按题型,第一大题抽4道,每道10分;第二大题抽2道,每道10分;第三大题抽1道,每道20分后;第四大题扣1道,每道20分后。

(3)按难易程度:易(1道)、较易(4道)、较难(2道)、难(1道)。

一、答疑题(共40道,扣4道,每道10分后,共40分后)1.面向对象有哪三大特征?封装,继承,多态.2.什么是类?(易)类就是定义同一类所有对象的变量和方法的蓝图或原型。

3.什么就是对象?对象是类的实例;对象是通过newclassname产生的,用来调用类的方法;类的构造方法.。

4.类和对象的区别是什么?java中的类就是模板,而对象就是依据模板产生的实体5.详述java的PCB性,如何在java中同时实现PCB封装性是指的把代码封装到大括号中,只能访问自己内部的数据,外边的东西访问不了。

实现为加访问权限。

6.构造方法有哪些特点方法名与类名相同,没返回值,可以存有多个空载。

7.构造方法的促进作用就是什么?(更易)初始化对象,就是你new一个类的时候可以很方便的给你的对象里的属性赋值。

8.this在程序中所代表的意思(易)指当前对象9承继的促进作用就是什么?(极易)同时实现代码F83E43Se。

10.java支持多继承吗?(易)不能。

11.子类可以承继父类的哪些成员?(较难)变量和构造方法。

12.简述构造子类对象时子类和父类构造方法执行顺序(较易)先执行父类再执行子类。

13.什么就是方法的空载,如何挑选被空载的方法?(更易)同一个类中如果同时存在两个以上的方法有同一个名字,在这种情况下,我们说方法被重载了,这个过程被称为重载。

14什么就是方法的改写,如何挑选被改写的方法?(较难)当同名方法同时存在于子类和父类中时,对于子类来说就是将继承父亲的方法重载写过了,实现功能完全和父类无关。

Java面向对象测试题(一)

Java面向对象测试题(一)

Java面向对象测试题(一)注:测试时间:3小时编程题在电脑上编写,保存在已学生名字为文件名的文件夹中一、选择题(共30分,每题1分<多选、少选、错选不得分>)1、下面有关Java异常处理模型的说法错误的是()。

a)一个try块只能有一条catch语句b)一个try块中可以不使用catch语句c)Catch块不能单独使用,必须始终与try块在一起d)Finally块不能单独使用,必须始终与try块在一起2、下列选项中关于Java中super关键字的说法错误的是()。

a)super关键字是在子类对象内部指代其父类对象的引用b)super关键字不仅可以指代子类的直接父类,还可以指代父类的父类c)子类可以通过super关键字调用父类的方法d)子类可以通过super关键字调用父类的属性3、下列选项中关于Java中this关键字的说法错误的是()。

a)this是在对象内部指代对象自身的引用b)this关键字可以在类中的任何位置使用c)this只和特定的对象关联,而不和类关联d)同一个类的不同对象有不同的this4、在Java中,Object类是所有类的父亲,用户自定义类默认扩展自Object类,下列选项中的()方法不属于Object类的方法。

a)equals(Object obj)b)getClass()c)toString()d)trim()5、给定如下Java代码,关于super的用法,以下描述正确的是()。

class C extends B{public C(){super();}}a)用来调用类B中定义的super()方法b)用来调用类C中定义的super()方法c)用来调用类B的无参构造方法d)用来调用类B中第一个出现的构造方法6、在Java中,有如下两个类Student和Person。

如果Student是Person的子类,则下列声明对象x的语句中错误的是()。

a)Person x = new Student()b)Person x = new Person()c)Student x = new Person()d)Student x = new Student()7、下列对Java中的继承描述错误的说法是()。

面向对象程序设计考试题库

面向对象程序设计考试题库

面向对象程序设计期末综合练习一(单选题)单选题1. C++源程序文件的缺省扩展名为( )。

A. cppB. exeC. objD. lik2. 由C++源程序文件编译而成的目标文件的缺省扩展名为( )。

A. cppB. exeC. objD. lik3. 由C++目标文件连接而成的可执行文件的缺省扩展名为( )。

A. cppB. exeC. objD. lik4. 编写C++程序一般需经过的几个步骤依次是( )。

A. 编译、编辑、连接、调试B. 编辑、编译、连接、调试C. 编译、调试、编辑、连接D. 编辑、调试、编辑、连接5. 以下标识符中不全是保留字的是( )。

A. case for intB. default then whileC. bool class longD. goto return char6. 能作为C++程序的基本单位是( )。

A. 字符B. 语句C. 函数D. 源程序文件7. 程序中主函数的名字为( )。

A. mainB. MAINC. MainD. 任意标识符8. C++程序的基本模块为( )。

A. 表达式B. 标识符C. 语句D. 函数9. 可用作C++语言用户标识符的一组标识符是( )。

A. void define +WORDB. a3_b3 _123 YNC. for -abc CaseD. 2a DO sizeof10. 存储以下数据,占用存储字节最多的是( )。

A. 0B. ‘0’C. “0”D. 0.011. 程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用( )符号作为分隔符。

A. 空格或逗号B. 逗号或回车C. 逗号或分号D. 空格或回车12. 设”int a=12;”,则执行完语句”a+=a*a;”后,a 的值是( )。

A. 12B. 144C. 156D. 28813. 假设在程序中 a 、b 、c 均被定义成整型,所赋的值都大于1,则下列能正确表示代数式abc1的表达式是( )。

【精品】C++面向对象程序设计题库(含答案)

【精品】C++面向对象程序设计题库(含答案)

【精品】C++面向对象程序设计题库(含答案)C++面向对象程序设计试题集一、填空题(每空2分,共20分)1. 设a、b、c都是int型变量,则a=(b=4)+(c=2)后,a值为_ _,b值为。

2. 在派生类的成员中有公有成员、、、四类成员。

3. 类Sample的构造函数将形参data赋值给数据成员data。

请将类定义补充完整。

class Sample{public: Sample(int data=0);Private: int data;};Sample::Sample(int data){4. 面向对象程序设计的机制提供了重复利用程序资源的一种途径。

5. 继承发生在利用现有类派生新类时,其中现有类称为,或父类;派生的新类称为,或。

6. 若表达式(x+(y-z)*(m/n))+3中的变量均为double型,则表达式值的类型为。

7. 已知数组a 中的元素个数为n,下列语句的作用是将下标为i 的元素移动到下标为i,1 的单元,其中1?i,n。

例如,当n=4,a 中原有数据为1,2,3,4 时,则移动后a 中元素为2,3,4,4。

请将语句补充完整:for(int i=0;i<n-1;i++) a[i]= 。

8. 类是对具有共同属性和行为的一类事物的抽象描述,共同属性被描述为类中的,共同行为被描述为类中的。

9. 类Sample的构造函数将形参data赋值给数据成员data。

请将类定义补充完整。

class Sample{public:Sample(int data=0);Private:int data; };Sample::Sample(int data){}10. 实现运行时多态,要使用函数。

11. 设A为test类的对象且赋有初值,则语句test B(A); 表示。

12. 在MyClass 类的定义中,对赋值运算符=进行重载。

请将画线处缺失的部分补充完整。

MyClass::operator=(const MyClass rhs) {if(this=&rhs) return *this;value=rhs. value;return *this; }13. C++语言中的每条基本语句以 ________作为结束符,每条复合语句以________ 作为结束符。

最新国家开放大学电大本科《面向对象程序设计》期末题库及答案

最新国家开放大学电大本科《面向对象程序设计》期末题库及答案

最新国家开放大学电大本科《面向对象程序设计》期末题库及答案考试说明:本人针对该科精心汇总了历年题库及答案,形成一个完整的题库,并且每年都在更新。

该题库对考生的复习、作业和考试起着非常重要的作用,会给您节省大量的时间。

做考题时,利用本文档中的查找工具,把考题中的关键字输到查找工具的查找内容框内,就可迅速查找到该题答案。

本文库还有其他网核及教学考一体化答案,敬请查看。

《面向对象程序设计》题库及答案一一、单项选择题(每小题2分,共20分)1.设x和y均为bool量,则x||y为假的条件是( )。

A.它们均为真 B.其中一个为真C.它们均为假 D.其中一个为假2.假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}}”,则元素a[1][2]的值为( )。

A.2 B.4 C.6 D.83.假定P是具有int* *类型的指针变量,则给P赋值的正确语句为( )。

A.p=new int B.p=new int*C.p=new int** D.p=new int[10]4.软件产品在需求发生变化、运行环境发生变化或发现软件产品本身的错误或不足时进行相应的软件更新的难易程度叫做软件的( )。

A.可维护性 B.可复用性C.兼容性 D.正确性5.若需要把一个类外定义的成员函数指明为内联函数,则必须把关键字( )放在函数原型或函数头的前面。

‘A.in B.inlineC.inLine D.InLiner .6.在一个用数组实现的队列类中,假定数组长度为MS,队首元素位置为first,队列长度为length,则队尾的后一个位置为( )。

A.1ength+1 B first+lengthC.(first+1ength—1)%MS D.(first+length)%MS7.假定一个类的构造函数为“A(int aa,int bb){a=aa;b=aa*bb;)”,则执行“A x(4,5);”语句后,X.a和x.b的值分别为( )。

C++面向对象程序设计模拟试题5

C++面向对象程序设计模拟试题5

C++面向对象程序设计模拟试题5C++面向对象程序设计模拟试题五一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中,只有一个是苻合题目要求的。

请将其代码填写在题后的括号内。

错选,多选或未选均无分。

1.下列对类的构造函数和析构函数描述正确的是()。

A)构造函数可以重载,析构函数不能重载B)构造函数不能重载,析构函数可以重载C)构造函数可以重载,析构函数可以重载D)构造函数不能重载,析构函数不能重载2.在函数定义前加上关键字“inline”,表示该函数被定义为()。

A)重载函数B)内联函数C)成员函数D)普通函数3.下面有关重载函数的说明中,()是正确的。

A) 重载函数必须具有不同的返回值类型B) 重载函数形参个数必须不同C) 重载函数一般具有不同的形参列表D) 重载函数名可以不同4.下列有关类与对象的说法中,( ) 是不正确的。

A) 对象是类的一个实列B) 任何一个对象只能属于一个具体的类C) 一个类只能有一个对象D) 类和对象的关糸和数椐类型与变量的关糸类似5.已知: Print( )函数是一个类的常成员函数,它无返回值,下列表示中,正确的是( )。

A)void Print( ) const;B) const void Print( );C) void const Print( );D) void Print(const)6.假定Myclass为一个类,那么下列的函数说明中( )为该类的析构函数。

A) void ~Myclass( ); B) ~Myclass( int n);C) Myclass( ); D) ~Myclass( )7.下面类的定义中有( ) 处错误。

class myclass{C. 保护数据成员D. 静态数据成员13.静态成员函数没有()。

A. 返回值B. this指针C. 指针参数D. 返回类型14.解决多重继承中二义性问题的方法有()。

A. 只能使用作用域分辨操作符B. 使用作用域分辨操作符或赋值兼容规则C. 使用作用域分辨操作符或虚基类D. 使用虚基类或赋值兼容规则15.如果在类CTest的外面的非成员函数中采用CTest::f()形式函数调用;则函数f( )是类CTest的()。

面向对象考试

面向对象考试

1. 下面关于Java语言中方法的说法错误的是:A. 方法调用时参数类型必须符合方法的定义B. 参数传递是值传递的方式C. 如果方法没有返回值必须声明返回为voidD. 如果方法定义为返回void,则方法中不能出现return语句2. 指出下列程序运行的结果public class Example{String str=new Strin g("tare na"); char[]ch={'a','b','c'};public static void main( Stri ng args[]){ Example ex=newExample();ex.cha nge(ex.str,ex.ch);System.out.pri nt(ex.str+" and "); System.out.print(ex.ch);}public void cha nge(Stri ng str,char ch[]){ str="test ok";ch[0]='g:}}A. tare na and abcB. tare na and gbcC. test ok and abcD. test ok and gbc3. 关于Java对象的删除,下列说法正确的是:A. 必须由程序员完成对象的清除B. Java把没有引用的对象作为垃圾收集起来并释放C. 只有当程序中调用System.gc()方法时才能进行垃圾收集(手动垃圾收集) D. Java中的对象都很小,一般不进行删除操作4. 下列代码编译或运行的结果是public class Foo {public String doit(i nt x, int y) { return "a";public String doit( in t[] vals) {return "b";}public static void main( Stri ng[] args) {Foo f=new Foo();System.out.pri ntln( f.doit(4, 5));}}A. 代码public String doit(int[] vals) { 行,编译出错B. 代码System.out.println(f.doit(4, 5));行,抛出运行时异常C. 输出:aD. 输出:b5. 请看下列代码:class Inner {private int x;public void setX(i nt x) {this.x = x;}public in t getX() {return x;}}class Outer {private Inner y;public void setY(I nner y) {this.y = y;}public Inner getY() {return y;}}public class Gamma {public static void main( Stri ng[] args) {Outer o = new Outer();Inner i = new Inn er();int n = 10;i.setX( n);o.setY(i);<插入代码>System.out.pri ntln( o.getY().getX());}}运行上述代码,要求输出“100”,那么<插入代码>处应填入的代码是:A. n = 100;B. i.setX( 100);C. o.getY().setX( 100);D. i = new Inn er(); i.setX( 100); o.setY( i);6. 关于下列代码说法正确的是:public class Foo {public int add(i nt a, int b) {return a + b;}public static void main( Stri ng[] args) {Foo foo = null; II什么都没有,也没有对象System.out.pri ntln (foo.add(10, 20));}}A. 编译错误B. 正常运行,但无结果输出C. 运行输出:30D. 运行时抛出NullPointerException 异常7. 下列说法正确的有:(constructor构造器)A. class中的constructor不可省略B. constructor必须与class同名,但方法不能与class同名(可以同名)C. constructor在一个对象被实例化时执行D. 一个class 只能定义一个constructor8. 关于Java中继承的特点,下列说法正确的是:A. 使类的定义复杂化B. Java只支持单继承,不可多继承,但可以通过实现接口来达到多继承的目的C. 子类继承父类的所有成员变量和方法,包括父类的构造方法(contructor只可以调用,不可继承)D. 不可以多层继承,即一个类不可以继承另一个类的子类9•请看下列代码:class ClassA {}class ClassB exte nds ClassA {}class ClassC exte nds ClassA {}public class Test{public static void main( Stri ng[] args) {ClassA p0 = new ClassA();ClassB p1 = new ClassB();ClassC p2 = new ClassC();ClassA p3 = new ClassB();ClassA p4 = new ClassC();<插入代码>}}下列选项中放置在<插入代码>处,使程序编译正确的是:A. pO = p1; 〃小类型转大类型,隐式转换B. p1 =p2; 〃兄弟之间不能类型转换C. p2 = p4; 〃把大类型转换成小类型需要显式转换D. p2 = (ClassC)p1; 〃兄弟之间不能强制类型转换,编译错误10•请看下列代码,程序的输出结果是:class One {public On e() {System.out.pri nt(1);}}class Two exte nds One {public Two() {System.out.pri nt(2);}}class Three exte nds Two {public Three() {System.out.pri nt(3);}}public class Numbers {public static void main( Stri ng[] argv) {new Three();}}A. 1B. 3C. 123D. 32111. 下列代码的运行结果是:public class Ani mal {public String no ise() {return "peep";}public static void main(String[] args) {An imal ani mal = new Dog();Cat cat = (Cat)animal; (兄弟不能强转)System.out.pri ntln( cat. no ise());}}class Dog exte nds An imal {public String no ise() {return "bark";}}class Cat exte nds An imal {public String no ise() {return "meow";}}A. peepB. barkC. meowD. 抛出运行时异常ng.ClassCastException __________ :javase2.Dog cannot be cast to javase2.Cat12. 下列代码的运行结果是:class SimpleCalc {public int value;public void calculate() {value += 7;}}public class MultiCalc exte nds SimpleCalc {public void calculate。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

面向对象方法题库1-0-5问题:[单选]当()时,用例是捕获系统需求最好的选择。

A.系统具有很少的用户B.系统具有很少的接口C.系统算法复杂,功能单一D.系统有很多参与者用例描述的是系统的执行者(参与者)与系统的交互,同时也是开发人员与用户进行交流的工具,可用来很好地定义系统的边界。

所以,当执行者较多的时候,用例是捕获系统需求最好的选择。

问题:[单选]对OO系统的技术度量的识别特征,Berard定义了导致特殊度量的特征。

其中()抑制程序构件的操作细节,只有对访问构件必需的信息被提供给其他希望访问的构件。

A.局部化B.封装C.信息隐藏D.继承面向对象的软件和用传统方法开发的软件有本质的不同,为此,对OO系统的技术度量必须调整以适应那些区别OO和传统软件的特征。

Berard定义了5个导致特殊度量的特征,分别是局部化、封装、信息隐蔽、继承和对象抽象技术。

(1)局部化。

局部化是软件的一个特征,它指明信息在程序中被集中的方式,例如,针对功能分解的传统方法围绕功能局部化信息,它们典型地以过程模块来实现。

数据驱动方法围绕特定的数据结构局部化信息。

在OO语境中,信息是通过封装数据和处理在类或对象的边界内而集中的。

因为传统软件强调函数为局部化机制,软件度量着重于函数的内部结构或复杂性(例如,模块长度、内聚性或环路复杂性等)或函数间相互连接的方式(例如,模块耦合)。

因为类是OO系统的基本单位,所以,局部化是基于对象的,因此,度量应该应用于作为一个完全实体的类(对象)。

此外,在操作(函数、方法)和类间的关系不必要是一对一的。

因此,反应类协作方式的度量必须能够适应一对多和多对一的关系。

(2)封装。

Berard定义封装为“一组项的包装(或捆绑在一起),(对传统软件的)低层封装例子包括记录和数组,而子程序(例如,过程、函数、子例程和段落)是封装的中层机制”。

对OO系统,封装包含了类的责任,包括其属性(和针对聚合对象的其他类)和操作,以及由特定的属性值定义的类的状态。

封装通过将测度的焦点从单个模块改变到数据(属性)和处理模块(操作)包而影响度量。

此外,封装鼓励在高抽象层的测度。

将此层次的抽象同传统的度量相比较,传统的着重于布尔条件的计数或代码行数。

(3)信息隐蔽。

信息隐蔽隐瞒(或隐藏)程序构件的操作细节,只将对访问该构件必须的信息提供给那些希望访问它的其他构件。

良好设计的OO系统应该鼓励信息隐蔽,因此,指明隐蔽所达到程度的度量应该提供了对OO设计质量的一个指标。

(4)继承。

继承是使得某对象的责任能够传播到其他对象的机制,继承出现在类层次的所有层面上,通常,传统的软件不支持该特征。

因为继承是很多OO系统的关键特征,所以很多OO度量是关注于它的。

(5)抽象。

抽象是使得设计者能够关注程序构件(数据或过程)的本质性细节而不须考虑低层细节的机制。

如Berard所说:“抽象是一个相对概念,当我们移向更高的抽象级别时,我们忽略了越来越多的细节;当我们移向抽象的低层时,我们引入了更多的细节,即我们提供了概念或项的更特定的视图”。

因为类是一种抽象,它可以在很多不同的细节级别上并以一系列不同的方式(例如,作为一个操作列表、作为一个状态序列、作为一系列协作)来观察,所以OO度量用类的测度(例如,每个应用的每个类的实例数、每个应用的参数化类数以及参数化类和非参数化类的比率)来表示抽象。

问题:[单选]博学公司欲开发一个在线交易系统。

为了能够精确表达用户与系统的复杂交互过程,应该采用UML的()进行交互过程建模。

A.类图B.序列图C.部署图D.对象图显然,为了能够精确地表达用户与系统的复杂交互过程,应该使用交互图。

在UML中,交互图包括顺序图、交互概览图、通信图和定时图。

顺序图也称为序列图,强调消息的时间次序;通信图强调消息流经的数据结构;定时图强调消息跨越不同对象或角色的实际时间;交互概览图是活动图和顺序图的一个综合体。

(羽毛球教学 /)问题:[单选]UML是面向对象开发方法的标准化建模语言。

采用UML对系统建模时,用()模型描述系统的功能,等价于传统的系统功能说明。

A.分析B.设计C.用例D.实现显然,采用UML对系统建模时,使用用例模型来描述系统的功能。

问题:[单选,共用题干题]在计算机系统中,某一功能的处理时间为整个系统运行时间的50%,若使该功能的处理速度加快10倍,根据Amdahl定律,这样做可以使整个系统的性能提高(1)倍。

若要使整个系统的性能提高1.5倍,则该功能的处理速度应加快(2)倍。

空白(1)处应选择()A.A.1.6B.1.7C.1.8D.1.9Amdahl定律表明:利用这一公式,代入fe=0.5,re=10,可以得到系统的加速比为1.8左右。

当加速比要求为1.5时,利用上述公式,可以算出该功能部件的加速比为3倍。

问题:[单选]以下关于改进信息系统性能的叙述中,正确的是()A.将CPU时钟周期加快一倍,能使系统吞吐率增加一倍B.一般情况下,增加磁盘容量可以明显缩短作业的平均CPU处理时间C.如果事务处理平均响应时间很长,首先应注意提高外围设备的性能D.利用性能测试工具,可以找出程序中最花费运行时间的20%代码,再对这些代码进行优化系统吞吐率不单是取决于CPU的速度,还与内外存交换速度、磁盘存取速度等计算机的基本性能有关,也与应用程序的性能有关。

因此,A是错误的。

增加磁盘容量与CPU处理时间没有直接的关系,所以,B也是错误的。

如果事务处理平均响应时间很长,就需要我们去分析其中的原因,然后根据原因采取相应的措施。

如果是因为外围设备导致系统瓶颈,才去提高外围设备的性能。

因此,C是错误的。

根据20-80法则,一个程序中20%的代码使用了该程序所占资源的80%;一个程序中20%的代码占用了总运行时间的80%;一个程序中20%的代码使用了该程序所占内存的80%。

从这个规律出发,我们在做程序优化的时候,就有了针对性。

比如想提高代码的运行速度,根据这个规律可以知道其中20%的代码占用了80%的运行时间,因此我们只要找到这20%的代码,并进行相应的优化,那么我们程序的运行速度就可以有较大的提高。

要想找出那20%的代码,我们可以使用性能测试工具,检查程序中各个模块所分配内存的使用情况,以及每个函数所运行的时间等。

问题:[单选]下列关于UML叙述正确的是()A.UML是一种语言,语言的使用者不能对其扩展B.UML仅是一组图形的集合C.UML仅适用于系统的分析与设计阶段D.UML是独立于软件开发过程的UML是一个通用的可视化建模语言,用于对软件进行描述、可视化处理、构造和建立软件系统的文档。

它记录了对必须构造的系统的决定和理解,可用于对系统的理解、设计、浏览、配置、维护和信息控制。

UML是独立于软件开发过程的,它适用于各种软件开发方法、软件生命周期的各个阶段、各种应用领域,以及各种开发工具,UML是一种总结了以往建模技术的经验并吸收当今优秀成果的标准建模方法。

UML包括概念的语义,表示法和说明,提供了静态、动态、系统环境及组织结构的模型,它允许用户对其进行扩展。

它可被交互的可视化建模工具所支持,这些工具提供了代码生成器和报表生成器。

UML标准并没有定义一种标准的开发过程,但它适用于迭代式的开发过程。

它是为支持大部分现存的面向对象开发过程而设计的。

UML不是一种可视化的编程语言,但是UML 描述的模型可与各种编程语言直接相连,即可把用UML描述的模型映射成编程语言。

问题:[单选]UML是面向对象开发方法的标准化建模语言。

采用UML对系统建模时,用()模型描述系统的功能,等价于传统的系统功能说明。

A.分析B.设计C.用例D.实现显然,采用UML对系统建模时,使用用例模型来描述系统的功能。

问题:[单选]博学公司欲开发一个在线交易系统。

为了能够精确表达用户与系统的复杂交互过程,应该采用UML的()进行交互过程建模。

A.类图B.序列图C.部署图D.对象图显然,为了能够精确地表达用户与系统的复杂交互过程,应该使用交互图。

在UML中,交互图包括顺序图、交互概览图、通信图和定时图。

顺序图也称为序列图,强调消息的时间次序;通信图强调消息流经的数据结构;定时图强调消息跨越不同对象或角色的实际时间;交互概览图是活动图和顺序图的一个综合体。

问题:[单选]对OO系统的技术度量的识别特征,Berard定义了导致特殊度量的特征。

其中()抑制程序构件的操作细节,只有对访问构件必需的信息被提供给其他希望访问的构件。

A.局部化B.封装C.信息隐藏D.继承面向对象的软件和用传统方法开发的软件有本质的不同,为此,对OO系统的技术度量必须调整以适应那些区别OO和传统软件的特征。

Berard定义了5个导致特殊度量的特征,分别是局部化、封装、信息隐蔽、继承和对象抽象技术。

(1)局部化。

局部化是软件的一个特征,它指明信息在程序中被集中的方式,例如,针对功能分解的传统方法围绕功能局部化信息,它们典型地以过程模块来实现。

数据驱动方法围绕特定的数据结构局部化信息。

在OO语境中,信息是通过封装数据和处理在类或对象的边界内而集中的。

因为传统软件强调函数为局部化机制,软件度量着重于函数的内部结构或复杂性(例如,模块长度、内聚性或环路复杂性等)或函数间相互连接的方式(例如,模块耦合)。

因为类是OO系统的基本单位,所以,局部化是基于对象的,因此,度量应该应用于作为一个完全实体的类(对象)。

此外,在操作(函数、方法)和类间的关系不必要是一对一的。

因此,反应类协作方式的度量必须能够适应一对多和多对一的关系。

(2)封装。

Berard定义封装为“一组项的包装(或捆绑在一起),(对传统软件的)低层封装例子包括记录和数组,而子程序(例如,过程、函数、子例程和段落)是封装的中层机制”。

对OO系统,封装包含了类的责任,包括其属性(和针对聚合对象的其他类)和操作,以及由特定的属性值定义的类的状态。

封装通过将测度的焦点从单个模块改变到数据(属性)和处理模块(操作)包而影响度量。

此外,封装鼓励在高抽象层的测度。

将此层次的抽象同传统的度量相比较,传统的着重于布尔条件的计数或代码行数。

(3)信息隐蔽。

信息隐蔽隐瞒(或隐藏)程序构件的操作细节,只将对访问该构件必须的信息提供给那些希望访问它的其他构件。

良好设计的OO系统应该鼓励信息隐蔽,因此,指明隐蔽所达到程度的度量应该提供了对OO设计质量的一个指标。

(4)继承。

继承是使得某对象的责任能够传播到其他对象的机制,继承出现在类层次的所有层面上,通常,传统的软件不支持该特征。

因为继承是很多OO系统的关键特征,所以很多OO度量是关注于它的。

(5)抽象。

抽象是使得设计者能够关注程序构件(数据或过程)的本质性细节而不须考虑低层细节的机制。

如Berard所说:“抽象是一个相对概念,当我们移向更高的抽象级别时,我们忽略了越来越多的细节;当我们移向抽象的低层时,我们引入了更多的细节,即我们提供了概念或项的更特定的视图”。

相关文档
最新文档