《面向对象程序设计》第01章在线测试
第一题、单项选择题(每题1分,5道题共5分) 1、下面的数据类型不属于C++基本数据类型的是
A、整型 C、双精度型
B、数组型 D、无值型
2、下面的常量类型不属于C++常量类型的是
A、整型 C、枚举型
B、字符串型 D、浮点型
3、执行完下列语句后,n的值为多少?( ) int n; for (n = 0; n < 100; n++)
A、n = 99 C、n = 101
B、n =100 D、n = 99
4、下列关于条件语句的描述中,错误的是
A、if语句中只有一个else子句 C、if 语句中if体内不能是开关语句
B、if语句中可以有多个else if子句 D、if语句的if体内可以是循环语句
5、do-while语句的循环体至少执行
A、1次 C、无限次
B、0次 D、不一定
第二题、多项选择题(每题2分,5道题共10分)
1、高级语言源程序需要经过那些步骤才能成为可执行文件?
A、编辑 B、编译 C、连接 D、格式化
2、C++的输入可以使用
A、scanf B、printf
C、cin D、in
3、下面关于while和do-while说法错误的是
A、do-while的循环体至少执行一次 B、while的循环控制条件比do-while严格 C、do-while允许从外部转到循环体内 D、do-while的循环体不能是复合语句
4、内联函数正确的是
A、内联函数用inline关键字说明
B、内联函数调用时用具体的函数体代码替换函数调用 C、内联函数与预定义语句相同
D、在一个文件中定义的内联函数不可以在另一个文件中使用
5、C++程序中声明变量 int *p1 , *p2 ,m=5, n;下面错误的语句是
A、p1=&m; p2=&p1; B、p1=&m; p2=&n;*p1=*p2 C、p1=&m;p2=p1; D、p1=&m;*p2=*p1;
第三题、判断题(每题1分,5道题共5分) 1、内联函数体内可以使用C++的所有控制语句。
正确
错误
2、重载的函数的函数名是相同的,但它们的参数的个数、参数数据类型或返回值类型中至少应有一种是不同的。
正确
错误
3、变量声明int * p [5] 定义了一个指向数组的指针变量p。
正确
错误
4、静态局部变量和全局变量的作用域和生存期都是一样的。
正确 错误 5、数组 int array[10]中共有10 个整型元素,其下标值从1到10。 正确 错误
《面向对象程序设计》第02章在线测试
剩余时间: 59:54
第一题、单项选择题(每题1分,5道题共5分)
1、类的指针成员的初始化是通过函数完成的,这个函数通常是 ( )
A、析构函数 C、其它成员函数
B、构造函数 D、友元函数
2、假定AB为一个类,则执行 “AB r1=r2;”语句时将自动调用该类的( )。
A、无参构造函数 C、赋值重载函数
B、带参构造函数 D、拷贝构造函数
3、假定AB为一个类,则执行“AB *p=new AB(1,2);”语句时共调用该类构造函数的次数为( )。
A、0 C、2
B、1 D、3
4、假定AB为一个类,px为指向该类的一个含有n个对象的动态数组的指针,则执行“delete []px;”语句时共调用该类析构函数的次数为( )。
A、0 C、n
B、1 D、n+1
5、假定AA是一个类,abc是该类的一个成员函数,则参数表中隐含的第一个参数为( B )。
A、abc C、this
B、*this D、this&
第二题、多项选择题(每题2分,5道题共10分) 1、定义析构函数时,错误的说法是 ( ) 。
A、其名与类名完全相同 B、返回类型是 void 类型 C、无形参,也不可重载
D、函数体中必须有 delete 语句
2、假定AA为一个类,a为该类私有的数据成员,GetValue()为该类公有函数成员,它返回a的值,x为该类的一个对象,则访问x对象中数据成员a的语句错误的是()。
A、x.a
B、x.a()
C、x->GetValue() D、x.GetValue()
3、下面关于构造函数的说法正确的是()
A、构造函数的函数名与类名相同 B、构造函数可以重载
C、构造函数不可以设置默认参数 D、构造函数必须指定类型说明
4、使类中的一个指针成员指向一块动态存储空间时,通常不能在下面哪些函数中实现()
A、析构 B、构造
C、任一函数成员 D、友元
5、下面关于常对象的说法正确的是( )
A、在定义常对象时必须进行初始化。 B、常对象的数据成员不能被更新。 C、常对象不能作为类的成员。
D、通过常对象可以调用该对象的成员函数
第三题、判断题(每题1分,5道题共5分)
1、 假定AA为一个类,a为该类公有的数据成员,x为该类的一个对象,则访问x对象中数据成员a的格式为x->a。
正确
错误
2、 对类中引用成员的初始化是通过构造函数中给出的初始化表实现的。
正确
错误
3、 C++允许使用友元,但是友元会破坏封装性。
正确
错误
4、 所谓私有成员是指只有类中所提供的成员函数才能直接使用它们,任何类以外的函数对它们的访问都是非法的。 正确 错误 5、 如果类A的声明中将类B的对象作为数据成员,则称类A和类B之间是一种has-a关系,类B是类A的子对象。 正确 错误
《面向对象程序设计》第03章在线测试
剩余时间: 59:54
第一题、单项选择题(每题1分,5道题共5分)
1、类的指针成员的初始化是通过函数完成的,这个函数通常是
A、析构函数 C、其它成员函数
B、构造函数 D、友元函数
2、静态成员函数 没有( )
A、返回值 C、指针参数
B、this 指针 D、返回类型
3、假定 ab 为一个类,则执行 ab x ;语句时将自动调用该类的 ( ) 。
A、有参构造函数 C、拷贝构造函数
B、无参构造函数 D、赋值构造函数
4、当一个类对象结束它的生存期的时侯,系统自动调用该类的( )。
A、无参构造函数 C、拷贝构造函数
B、带参构造函数 D、析构函数
5、假定AA是一个类,abc是该类的一个成员函数,则参数表中隐含的第一个参数为( )。
A、abc C、this
B、*this D、this&
第二题、多项选择题(每题2分,5道题共10分) 1、下面有关类说法正确的是( )
A、一个类可以有多个构造函数 B、一个类只有一个析构函数 C、析构函数需要指定参数
D、在一个类中可以说明具有类类型的数据成员
2、假定AA为一个类,a为该类私有的数据成员,GetValue()为该类公有函数成员,它返回a的值,x为该类的一个对象,则访问x对象中数据成员a的语句错误的是( )。
A、x.a B、x.a()
C、x->GetValue() D、x.GetValue()
3、构造函数的初始化表一般用来( )
A、初始化常量数据成员 B、初始化子对象 C、初始化引用成员 D、初始化静态数据成员
4、下面关于静态数据成员的说法错误的是( )
A、静态数据成员是类的所有对象所共有的 B、静态数据成员要在构造函数内初始化 C、类的每个对象有自己的静态数据成员 D、静态数据成员不能通过类的对象调用
5、使类中的一个指针成员指向一块动态存储空间时,通常不能在下面哪些函数中实现( )
A、析构 B、构造
C、任一函数成员 D、友元
第三题、判断题(每题1分,5道题共5分)
1、析构函数的作用是在对象被撤销时收回先前分配的内存空间。
正确
错误
2、C++允许使用友元,但是友元会破坏封装性。
正确
错误
3、静态成员函数允许访问类的数据成员。
正确
错误
4、如果类A的声明中将类B的对象作为数据成员,则称类A和类B之间是一种has-a关系,类B是类A的子对象。
正确 错误 5、静态数据成员不从属于任何一个具体对象,所以必须在构造函数对它初始化。 正确 错误
《面向对象程序设计》第04章在线测试
剩余时间: 59:54
第一题、单项选择题(每题1分,5道题共5分) 1、如果在类B 中定义友元,其中正确的是:
A、class B { friend int fun(A*, B&);}; C、class B { friend int fun(A&, B&);};
B、class B { friend int fun(A*, B*);}; D、class B { friend int fun(A&, B*);};
2、关于友元的说法正确的是( )
A、友元关系可以继承 C、友元关系不可以传递
B、友元关系是双向的 D、友元关系可以取消
3、将类B的成员函数int f(void)声明为类A的友元函数的语句是( )
A、class A { friend int f();} C、class A { friend class B;};
B、class A { friend int B::fun();} D、class A { friend B::fun(void);}
4、关于友元类的定义正确的说法是( )
A、如果在类B中定义友元类A ,必须先定义类A C、如果在类B中定义友元类A ,可以定义类B,后定义类A,但是必须在类B的定义之前,对类A向前引用说明
B、如果在类B中定义友元类A ,必须先定义类B
D、类A是类B的友元,类A 和类B 的定义顺序没有先后之分
5、一个类的友元函数或友元类能够通过成员操作符访问该类的( )
A、私有成员 C、公有成员
B、保护成员 D、所有成员
第二题、多项选择题(每题2分,5道题共10分) 1、定义类B的构造函数为类A的友元函数的语句是( )
A、class A { friend B();}; B、class A { friend B::B();}; C、class A { friend void B::B();}; D、class A { friend double B::B();};
2、如果函数int f(int, int)是类A的友元,那么下面的说法正确的是( )bcd ab bc bd b a
C,D,ABD
A、int f(int, int)可以访问A的私有成员
B、int f(void)是int f(int, int)的重载函数 C、int f(void)可以访问A的私有成员 D、int f()不是类A的友元函数
3、关于友元的描述中正确的是( )
A、友元函数可以访问该类的私有数据成员
B、一个类的友元类中的成员函数都是这个类的友元函数 C、友元可以提高程序的运行效率 D、类和类之间的友元关系可以继承
4、若B类为A类的友元类,则下面的说法错误的是( )
A、B类的所有成员函数都是A类的友元函数 B、B类指定的成员函数才是A类的友元 C、A类的所有成员函数可以访问B类的成员 D、B类的私有成员函数不能可以访问A类的私有成员
5、友元函数在类中的定义位置是( )
A、只能在public区 B、可以在任意区域 C、只能在protected区 D、只要在类中就可以
第三题、判断题(每题1分,5道题共5分)
1、友元只能访问类中的公有成员,不能访问私有成员。
正确
错误
2、某类中的友元类的所有成员函数可以存取或修改该类中的私有成员。
正确
错误
3、友元类是使用friend关键字声明的类,它的所有成员函数都是相应类的友元函数。
正确
错误
4、如果函数f()要操作类A和类B的私有成员,可以把f()声明为类A的成员函数,把类A声明为类B的友元类。 正确 错误 5、一个函数可以是多个类的友元函数。 正确 错误
《面向对象程序设计》第05章在线测试
《面向对象程序设计》第05章在线测试
剩余时间:5 9:53
第一题、单项选择题(每题1分,5道题共5分)
1、为了实现两个复数类对象c1,c2相加c1+c2,下面的语句正确的是()
B、class Complex { Complex operator+(Complex &);}
C、class Complex { Complex operator+(Complex, Complex);}
A、class Complex { Complex operator+();}
D、Complex operator+(Complex &);
2、如果表达式a==b中的“==”是作为普通函数重载的运算符,若采用运算符函数调用格式,则可表示为( )。
A、a.operator==(b) C、operator==(a,b)
B、b.operator==(a) D、operator==(b,a)
3、如果表达式++a中的“++”是作为成员函数重载的运算符,若采用运算符函数调用格式,则可表示为( )。
A、a.operator++(1) C、operator++(a,1)
B、operator++(a) D、a.operator++()
4、假定M是一个类名,且M中重载了操作符=,可以实现M对象间的连续赋值,如“m1=m2=m3;”。重载操作符=的函数原型最好是( )。
A、int operaotor=(M); C、M operator=(M&);
B、int operator=(M&); D、M& operator=(M);
5、下面是重载双目运算符+的普通函数原形,其中最符合+原来含义的是( )。
A、Value operator+(Value, Value); C、Value &operator+(Value, Value);
B、Value operator+(Value,int); D、Value &operator+(Value&, Value&);
第二题、多项选择题(每题2分,5道题共10分) 1、下面运算符不能重载的是( )
A、<< B、:: C、. D、,
2、关于运算符重载,下列说法错误的是( )。
A、所有的运算符都可以重载。
B、通过重载,可以使运算符应用于自定义的数据类型。 C、通过重载,可以创造原来没有的运算符。 D、通过重载,可以改变运算符的优先级。
3、在重载一个运算符时,其参数表中没有任何参数,这表明该运算符不可能是( )。
A、作为友元函数重载的1元运算符 B、作为成员函数重载的1元运算符 C、作为友元函数重载的2元运算符 D、作为成员函数重载的2元运算符
4、类A中重载运算符new为成员函数的定义如下: void * operator new ( size_t size, int x, int y){?} 则使用重载new的方法错误的是:( )
A、new A;
B、new (1,2,3); C、new (1,2,3)A; D、new A (1,2,3);
5、重载del_ete运算符的格式错误的是( )
A、void * operator del_ete(void*); B、void * operator del_ete(void*,参数表); C、void * operator del_ete(参数表); D、void * operator del_ete();
第三题、判断题(每题1分,5道题共5分)
1、多数运算符可以重载,个别运算符不能重载,运算符重载是通过函数定义实现的。
正确
错误
2、单目运算符->只能被重载为成员函数。
正确
错误
3、双目运算符重载为成员函数的时候,一个运算对象由this指针给出,另一个运算对象通过重载运算符的形参传递。
正确 错误 4、双目运算符op重载为A类的成员函数后,表达式“ obj1 op obj2”可以解释为:operator op(obj1,obj2)。 正确 错误 5、重载=运算符没有实际意义,因为系统会为每一个类自动生成赋值运算符。 正确 错误
《面向对象程序设计》第06章在线测试
剩余时间: 58:51
第一题、单项选择题(每题1分,5道题共5分)
1、模板参数在函数参数表中出现的次数不可能是( )。
A、1 C、0
B、2 D、任意
2、关于函数模板的说法错误的是( )
B、函数模板是具体的函数,在系统遇到具体函数调用时生成
C、函数模板是一组函数的抽象
A、函数模板是一个模板,其中用到通用类型参数
D、函数模板不能执行
3、下面函数模板的声明正确的是( )
A、template void fun(int x){?}
B、template < class T> void fun(int x){?} D、template <class T> void fun(class T x){?}
C、template < class T> void fun(T x){?}
4、下面关于函数调用的顺序说法正确的是( )
A、函数调用时首先匹配参数完全相同的函数 C、函数调用时如果没有找到对应的函数模板生成模板函数就查找参数相同的函数
5、下面的说法错误的是( )
A、类模板或类模板的引用可以作为函数的形参 C、调用带有类模板参数的函数时对应的实参应该是该类模板实例化的模板类对象
B、函数调用时首先寻找匹配的函数模板
D、函数调用时如果函数模板和函数都没有对应的,函数调用错误
B、带有类模板参数的函数与普通函数相同
D、类模板中可以设计友元函数
第二题、多项选择题(每题2分,5道题共10分) 1、关于模板函数的说法正确的是( )
A、模板函数是编译系统在编译时根据函数模板自动生成的。 B、模板函数是函数的模板
C、模板函数是程序员用代码写出来的 D、模板函数是函数模板的实例化
2、模板函数与函数模板的区别是( )
A、模板函数是函数模板的抽象 B、函数模板是模板函数的抽象 C、模板函数是函数模板的重载函数 D、函数模板是具体的函数
3、关于类模板的说法正确的是( )
A、类模板是类的抽象 B、类模板是模板类的抽象 C、类模板中用到通用类型参数
D、类模板和普通类一样可以用于定义对象
4、关于函数模板的说法正确的是( )
A、函数模板生成的模板函数是重载的,但是函数模板不能重载 B、C++程序中函数模板可以同名,但是形参个数和类型应有区别 C、函数模板可以和普通函数重载 D、函数模板不能重载
5、关于类模板的成员函数的说法正确的是( )
A、类模板的成员函数被认为是函数模板,也成为类属函数 B、类模板的成员函数的定义与类的成员函数的定义一样 C、类模板的成员函数通过类模板调用
D、类模板的成员函数可以在类外定义,但要符合函数模板定义的规范
第三题、判断题(每题1分,5道题共5分)
1、在C++中,当存在一个与模板函数同名的普通函数时,调用的顺序是模板函数优先。
正确
错误
2、带有类模板参数的友元函数必须是模板函数。
正确
错误
3、模板类型参数名可以用来指定函数模板的返回类型。
正确 错误 4、函数模板每个模板类型参数前面都必须用关键字class或typename修饰。 正确 错误 5、函数模板是程序员用代码写出来的,模板函数是编译系统在编译时根据函数模板自动生成的。 正确 错误
《面向对象程序设计》第07章在线测试
剩余时间: 59:54
第一题、单项选择题(每题1分,5道题共5分) 1、下面叙述不正确 的是 ( )
A、派生类都用公有派生产生
C、赋值兼容规则也适用于多重继承的组合
B、对基类成员的访问必须是无二义性的 D、基类的公有成员在派生类中仍然是公有的
2、对基类和派生类的关系描述中, 错误 的是 ( )
A、派生类是基类的具体化 C、派生类是基类定义的延续
B、基类继承了派生类的属性 D、派生类是基类的特殊化
3、继承机制的作用是 ( )
A、信息隐藏 C、定义新类
B、数据封装 D、数据抽象
4、可以用 p.a 的形式访问派生类对象 p 的基类成员 a ,其中 a 是 ( )
A、私有继承的公有成员 C、公有继承的保护成员
B、公有继承的私有成员 D、公有继承的公有成员
5、下列虚基类的说明中,正确的是( )
A、class virtual B:public A C、virtual class B:public A
B、class B:virtual public A D、class B:public A virtual
第二题、多项选择题(每题2分,5道题共10分)
1、在公有派生情况下,有关派生类对象和基类对象的关系,不正确的叙述是 ( )c
A、派生类的对象可以赋给基类的对象 B、派生类的对象可以初始化基类的引用 C、派生类的对象可以直接访问基类中的成员 D、派生类的对象的地址可以赋给指向基类的指针
2、如果是类B在类A的基础上构造,那么,就称( )。
A、类A为基类或父类,类B为超类或子类 B、类A为基类、父类或超类,类B为派生类或子类
C、类A为派生类,类B为基类
D、类A为派生类或子类,类B为基类、父类或超类
3、对于公有继承,基类中的私有成员在派生类中将 ( )。
A、不能够直接使用成员名访问 B、能够通过成员运算符访问 C、仍然是基类的私有成员 D、变为派生类的私有成员
4、派生类的对象对其基类中( )不可以直接访问。
A、公有继承的公有成员 B、公有继承的私有成员 C、公有继承的保护成员 D、私有继承的公有成员
5、下面说法正确的是( )
A、派生类指针可以直接指向基类对象 B、派生类指针可以强制转换为基类指针 C、派生类成员可以通过基类指针引用 D、基类指针可以指向派生类中对象
第三题、判断题(每题1分,5道题共5分) 1、基类的保护成员不能被派生类的对象访问。
正确
错误
2、公有继承时基类中的protected成员在派生类中仍是protected的。
正确
错误
3、派生类的继承方式有两种,公有继承和私有继承。
正确
错误
4、在私有继承中,基类中只有公有成员对派生类是可见的。
正确 错误 5、析构函数不能被继承。 正确 错误
《面向对象程序设计》第09章在线测试 剩余时间: 58:34 答题须知:1、本卷满分20分。 2、答完题后,请一定要单击下面的“交卷”按钮交卷,否则无法记录本试卷的成绩。 3、在交卷之前,不要刷新本网页,否则你的答题结果将会被清空。 第一题、单项选择题(每题1分,5道题共5分) 1、执行语句序列 ofstream outf( “ salary.dat ” ) ; if(...)cout<< “成功”; else cout<< “失败”;后,如文件打开成功,显示”成功”,否则显示”失败” . 由此可知,上面 if 语句的条件表达式是 ( ) 。c,a A、!outf 或者 outf.fail() C、outf 或者 outf.fail() B、!outf 或者 outf.good() D、outf 或者 outf.good() 2、相对于文本文件,下列关于二进制文件的说法中,不正确的是(D) A、占用空间小 C、执行效率高 B、无法用常规的编辑工具看懂 D、可移植性好 3、流有一个状态标志字,关于failbit的下列说法中,正确的是(C) A、上次读写操作成功,但流仍可用 C、上次读写操作失败,但流仍可用 B、上次读写操作成功,但流不可使用 D、上次读写操作失败,但流不可使用 4、seekg(-40,ios::cur)的意思是(A) A、读写位置从当前位置前移40个字节 C、读写位置从当前位置上移40个字节 B、读写位置从当前位置后移40个字节 D、读写位置从当前位置下移40个字节 5、关于重载插入运算符的说法,正确的是( ) A、函数的返回值必须是对类ostream的引用 C、函数的第二个操作数是“>>”的左操作数 B、函数的第一个操作数是“>>”的右操作数 D、函数的第二个参数必须是对类ostream的引用 第二题、多项选择题(每题2分,5道题共10分) 1、下面提供输入操作的类是( ) A、ios B、istream C、iostream D、ostream 2、关于运算符“<<”的说法正确的是( )abc ac cd
A、“<<”如果用于cout后,则表示输出操作 B、“<<”也叫做插入运算符 C、“<<”运算符可以重载
D、“<<”是从流中提取一个字符序列
3、下面关于cout的说法正确的是( )
A、cout是与标准设备链接的预定义输出流 B、运算符>>向cout发送字符 C、一个语句中只能使用一个插入运算符 D、插入运算符是左结合的
4、下面关于cin的说法正确的是( )
A、cin是与标准设备链接的预定义输入流 B、运算符>>向cin发送字符
C、提取运算符读取键盘输入的所有字符,包括空格 D、一个语句中可以使用多个提取运算符
5、 关于重载析取运算符的说法,错误的是(BCD)
A、函数的返回值必须是对类istream的引用 B、函数的第一个操作数是“>>”的右操作数 C、函数的第二个操作数是“>>”的左操作数 D、函数的第二个参数必须是对类istream的引用
第三题、判断题(每题1分,5道题共5分)
1、为了输入和输出类类型的数据,用户可以重载“<<”和“>>”运算符。
正确
错误
2、trunc与out参数的作用是相同的。
正确
错误
3、IO流库重载的插入和析取运算符处理所有的数据类型。 正确 错误 4、ws跳过输入流前面的空白字符 正确 错误 5、调用clear函数后,流就变成可用 正确 错误
《面向对象程序设计》第08章在线测试
剩余时间: 59:52
第一题、单项选择题(每题1分,5道题共5分) 1、通过 ( ) 调用虚函数时,采用动态束定。
A、对象指针 C、成员名限定
B、对象名 D、派生类名
2、类 B 是类 A 的公有派生类,类 A 和类 B 中都定义了虚函数 func(),p 是一个指向类 A 对象的指针,则 p->A::func() 将 ( )
A、调用类 A 中的函数 func()
C、根据 p 所指的对象类型而确定调用类 A 中或类 B 中的函数 func()
B、调用类 B 中的函数 func()
D、既调用类 A 中函数,也调用类 B 中的函数
3、关于纯虚函数和抽象类的描述中,( )是错误的。
A、纯虚函数是一种特殊的虚函数,它没有具体的实现;
C、一个基类说明有纯虚函数,该基类的派生类一定不再是抽象类;
的是( )
A、a.f();
C、p1=&b; p1->f();
B、抽象类是指具有纯虚函数的类;
D、抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出。
4、类A 中定义了虚函数f,类C是类A的派生类,类C中重新定义了虚函数f。声明变量: A a,*p1; B b, *p2; 下面语句实现动态绑定
B、b.f();
D、p2=&b; p2->f();
5、下面的说法正确的是( )
A、虚函数是成员函数
C、构造函数和析构函数都可以定义为虚函数
B、虚函数可以是静态成员函数 D、虚函数可以是内联函数
第二题、多项选择题(每题2分,5道题共10分) 1、下列描述中,( )不是抽象类的特征。
A、可以说明虚函数; B、可以进行构造函数重载; C、可以定义友元函数; D、不能说明其对象。
2、下面属于多态性的是( )
A、函数重载 B、类模板 C、函数模板 D、派生类
3、下面的说法正确的是( )
A、虚函数在派生类中可能有不同实现 B、C++对虚函数的调用采取了动态绑定方式
C、动态绑定只能通过指针或引用表示对象来调用虚函数 D、动态绑定的处理方式不能实现静态类型检查
4、调用虚函数实现多态的步骤是( )
A、将基类对象地址或派生类对象地址赋给基类指针 B、定义基类指针
C、用派生类对象或基类对象调用虚函数 D、用基类指针调用虚函数
5、下面的说法正确的是( )
A、抽象类只能做基类 B、抽象类是继承层次中的根 C、抽象类用abstract定义 D、抽象类中至少有一个虚函数
第三题、判断题(每题1分,5道题共5分)
1、函数绑定是指函数的入口地址同函数调用相联系的过程。
正确
错误
2、抽象类是指一些没有说明对象的类。
正确
错误
3、动态联编是在运行时选定调用的成员函数的。
正确 错误 4、抽象类是指具有纯虚函数的类; 正确 错误 5、抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出。 正确 错误
《面向对象程序设计》第10章在线测试
剩余时间: 59:55
第一题、单项选择题(每题1分,5道题共5分) 1、下面哪些情况不会造成异常( )
A、内存耗尽 C、除数为0
B、再次打开文件 D、数组越界访问
2、关于异常的处理过程,正确的说法是( )
A、在可能会出现错误的地方,用catch捕捉 C、catch块可以捕捉所有异常
B、在可能会出现错误的地方,用throw抛出异常 D、只有与catch()参数匹配的异常才可以捕捉
3、如果异常没有列入异常规范,在C++中将( )
A、忽略它
C、系统调用unexpected()终止程序
B、程序中止 D、询问用户
4、关于catch(。。。)的说法错误的是( )
A、catch(。。。)可以捕捉所有类型的异常 C、catch(。。。)可以避免出现没有被捕捉的异常
B、catch(。。。)必须放在所有catch块的后面 D、catch(。。。)不能单独使用
5、C++中异常处理的默认模式是( )
A、终止模式 C、挂起模式
B、恢复模式 D、暂停模式
第二题、多项选择题(每题2分,5道题共10分) 1、下面的说法正确的是( )
A、异常处理是指允许C++程序非正常结束
B、异常处理是指C++程序在出错的情况下有正确合理的表现 C、C++程序绝对不能出现错误
D、异常处理使C++程序在出现错误的情况下仍能继续运行
2、处理程序中可预料的错误的方法有( )
A、根据函数返回值进行判断处理 B、出现错误转向专门的错误处理程序
C、异常处理 D、没有办法
3、异常处理的优点是( )
A、提高程序可读性
B、程序的控制不会因产生异常而随意跳转 C、正常处理代码和异常处理代码隐式分离 D、与函数调用返回的控制方法一致
4、关于异常处理的说法正确的是()
A、将异常的检测与处理分离 B、异常就是错误 C、异常由函数调用引起
D、在上层调用函数中使用try检测函数调用是否引发异常
5、下面与异常处理相关的关键字有( )
A、Try B、Catch C、try D、catch
第三题、判断题(每题1分,5道题共5分)
1、抛出异常的模块只是报告某个地方存在错误,这个报告可以帮助异常处理器解决这个错误。
正确
错误
2、异常处理器根据抛出异常模块的报告来处理异常。
正确
错误
3、C++引入了关键字throw和catch,用于进行异常处理。
正确
错误
4、异常信号传递方式有三种:传值方式、引用方式和指针方式。
正确 错误 5、throw( )表示函数不会抛出任何类型的异常 正确 错误
《面向对象程序设计》第11章在线测试
剩余时间: 59:54
第一题、单项选择题(每题1分,5道题共5分) 1、以下正确的说法是( )。
B、用户可以重新定义标准库函数,若如此,该函数将失去原有含义
D、用户调用标准库函数前,不必使用预编译命令将该函数所在文件包括到用户源文件中
A、用户调用标准库函数前,必须重新定义
C、系统不允许用户重新定义标准库函数
2、关于STL的说法正确的是( )
A、STL是新的C++标准库 C、STL是基于模板实现的
B、STL是函数集合 D、STL是VC++6.0的一部分
3、STL中算法访问容器的中介是( )
A、容器 C、算法
B、迭代器 D、数组
4、列表list属于( )
A、顺序容器 C、前向容器
B、关联容器 D、双向容器
5、堆栈(stack)属于( )
A、顺序容器 C、前向容器
B、关联容器 D、容器适配器
第二题、多项选择题(每题2分,5道题共10分) 1、下面是算法完成的工作的是( )
A、计算 B、画流程图 C、操作容器对象 D、堆栈操作
2、下面属于C++标准库的是( )
A、STL
B、C标准函数库 C、COM D、DLL
3、STL 的算法部分涉及的头文件有( )
A、algorithm B、functional C、math D、numeric
4、下面的说法正确的是( )
A、STL中有sort函数,所以程序员不能定义名字叫sort的函数 B、STL中的sort函数在名字空间之外
C、程序员可以在自定义的名字空间内定义sort函数
D、使用STL的sort函数可以在源程序的开头加入using namespace std
5、下面关于string类型的说法正确的是( )
A、使用string类型前,程序必须包含头文件string B、string类型是C++的一部分
C、string类型与char* 类型的作用一样 D、string相当于一个保存字符的序列容器
第三题、判断题(每题1分,5道题共5分)
1、在STL中,几乎所有的代码都采用了类模板和函数模板的方式.
正确
错误
2、算法就是一个按照一组定义明确的步骤来解决某个问题的处理过程。
正确
错误
3、向量(vector)、双队列(deque)、列表(list)都是顺序容器
正确
错误
4、前向容器是一种采用前向迭代器的容器 正确 错误 5、前向容器是指一种长度可变的容器,直接继承于顺序容器 正确 错误
《面向对象程序设计》第12章在线测试
剩余时间: 59:25
第一题、单项选择题(每题1分,5道题共5分) 1、下面关于UML的说法中,正确的是( )
A、不是一种可视化的程序设计语言而是一种可视化的建模语言
C、不是过程也不是方法但允许任何一种过程和方法使用它
B、不是工具或知识库的规格说明而是一种建模语言规格说明
D、是一种表示的标准
2、面向对象的方法学是一种基于( )的方法学
A、数据 C、对象
B、操作 D、实体
3、OOD的作用是( )
A、提取需求 C、求解域建模
B、逻辑建模 D、分析用例
4、按钮与电梯按钮的关系是( )
A、部分与整体 C、实例连接
B、一般与特殊 D、消息连接
5、描述相互协作的对象之间的交互关系和连接关系的是( )
A、类图 C、协作图
B、顺序图 D、用例图
第二题、多项选择题(每题2分,5道题共10分) 1、部分与整体的关系有( )方式
A、组合 B、联合 C、聚合 D、整合
2、对象之间存在的关系包括( )
A、部分与整体
B、一般与特殊 C、实例连接 D、消息连接
3、关于多态的说法正确的是( )
A、不同类型的对象接收相同的消息产生不同的行为 B、多态的成员函数需要定义为虚函数 C、在C++中通过基类指针调用虚函数实现多态 D、多态是指对象的多种表现形式
4、类/对象之间的关系可概括为( )
A、关联 B、归纳 C、组合 D、实例
5、下面关于面向对象的基本概念正确的是( )
A、类是具有相同或相似性质的对象的抽象 B、类具有属性和操作 C、类之间没有关系
D、对象之间的通信是通过消息实现的
第三题、判断题(每题1分,5道题共5分)
1、面向对象开发技术分三个阶段:面向对象分析,面向对象设计和面向对象实现。
正确
错误
2、UML不是一种可视化的程序设计语言而是一种可视化的建模语言.
正确
错误
3、UML用若干个视图构造系统的模型,每个视图描述系统的一个方面。
正确
错误
4、UML视图中包含的模型元素可以有类、对象、节点、包、构件、关系和消息等。 正确 错误 5、窗口类与标题栏、菜单条的关系是共享聚集。 正确 错误