《C++程序设计》东师17秋在线作业12题目
C++程序设计17秋在线作业1
一、单选题:【20道,总分:60分】
1.建立包含有对象成员的派生类对象时,自动调用构造函数的执行顺序依次为( )的构造函数。 (满分:3)
A. 基类、自己所属类、对象成员所属类
B. 对象成员所属类、基类、自己所属类
C. 自己所属类、对象成员所属类、基类
D. 基类、对象成员所属类、自己所属类
2.假定变量x定义为“int x=8;”,要使rx成为x的引用(别名),rx应定义为( )。 (满分:3)
A. int rx=x;
B. int rx=&x;
C. int *rx=&x;
D. int &rx=x;
3.对于类定义class A{ public: virtual void func1( ){} void func2( ){}};class B:public A{ public: void func1( ){cout<<″class B func 1″<<end1;} virtual void func2( ){cout<<″class B f (满分:3)
A. A::func2( )和B::func1( )都是虚函数
B. A::func2( )和B::func1( )都不是虚函数
C. B::func1( )是虚函数,而A::func2( )不是虚函数
D. B::func1( )不是虚函数,而A::func2( )是虚函数
4.C++利用( )实现面向对象程序设计的多态性。 (满分:3)
A. 类的派生机制
B. 构造数据类型—类
C. 构造数据类型—枚举
D. 函数重载或运算符重载
5.假定一个类的构造函数为“A(int aa=1, int bb=0) {a=aa; b=aa*bb;}”, 则执行“A x(3,6);”语句后,x.a和x.b的值分别为( )。 (满分:3)
A. 3和6
B. 6和3
C. 3和18
D. 6和18
6.若已定义了person类,则执行语句"person p1=p2;"将调用p1的( )。 (满分:3)
A. 构造函数
B. 拷贝构造函数
C. 析构函数
D. 赋值运算符重载函数
7.在磁盘文件操作中,以追加方式打开磁盘文件时,其mode值为( )。 (满分:3)
A. in
B. app
C. out
D. ate
8.类的析构函数是在( )被调用的。 (满分:3)
A. 类创建时
B. 创建对象时
C. 删除对象时
D. 不自动调用
9.如果在类A中用友元函数的方式重载了前缀自增运算符++,又定义了类A的一个对象a,则以下用法正确的是( )。 (满分:3)
A. operator++(a);
B. a.operator++( );
C. a.operator++(0);
D. a++;
10.派生类的对象对它的基类成员中什么是可访问的( )? (满分:3)
A. 公有继承的公有成员
B. 公有继承的私有成员
C. 公有继承的保护成员
D. 私有继承的公有成员
11.假定classA为一个类,a为该类公有的数据成员,x为该类的一个对象,则访问x对象中数据成员a的格式为( )。 (满分:3)
A. x(a)
B. x
C. x->a
D. x.a
12.下列语句中不存在类型转换的是( )。 (满分:3)
A. int(1.1);
B.(double)2.2;
C. int i=1;
D. char c=97;
13.对于一个类,可以利用关键字( )将其他类声明为该类的友元。 (满分:3)
A. public
B. private
C. protected
D. friend
14.( )是析构函数的特征。 (满分:3)
A. 一个类中只能定义一个析构函数
B. 析构函数在对象创建时调用
C. 析构函数的定义只能在类体内
D. 析构函数可以有一个或多个参数
15.以下叙述正确的是( )。 (满分:3)
A. 函数的定义和函数的调用都可以嵌套
B. 函数的定义和函数的调用均不可以嵌套
C. 函数的定义不可以嵌套,函数的调用可以嵌套
D. 函数的定义可以嵌套,函数的调用不可以嵌套
16.下面对静态数据成员的描述中,正确的是( )。 (满分:3)
A. 静态数据成员可以在类体内进行初始化
B. 静态数据成员不可以被类的对象调用
C. 静态数据成员不能受private控制符的作用
D. 静态数据成员可以直接用类名调用
17.#include class BASE{ char c; public: BASE(char n):c(n){} virtual~BASE( ){cout<<C;} }; class DERIVED:public BASE{ char c; public: DERIVED(char n):BASE(n+1),c(n){} ~DERIVED( ){cout (满分:3)
A. XY
B. YX
C. X
D. Y
18.假设A为抽象类,下列声明( )是正确的。 (满分:3)
A. A fun(int);
B. A *p;
C. int fun(A);
D. A obj;
19.C++的继承性允许派生类继承基类的( )。 (满分:3)
A. 部分特性,并允许增加新的特性或重定义基类的特性
B. 部分特性,但不允许增加新的特性或重定义基类的特性
C. 所有特性,并允许增加新的特性或重定义基类的特性
D. 所有特性,但不允许增加新的特性或重定义基类的特性
20.类的构造函数被自动调用执行的情况是在定义该类的( )。 (满分:3)
A. 成员函数时
B. 数据成员时
C. 对象时
D. 友元函数时
二、判断题:【20道,总分:40分】
1.原型说明中没有指出返回类型的函数(包括主函数main),C++默认该函数的返回类型是void (满分:2)
A. 错误
B. 正确
2.若重载了赋值运算符“=”,则相当于重载了“+=”、“-=”、“*=”、“/=”运算符。 (满分:2)
A. 错误
B. 正确
3.C++标准库中的输入输出格式操作符(函数)可以直接用在提取运算符“>>”或插入运算符“<<”后面。 (满分:2)
A. 错误
B. 正确
4.不能在类声明中给数据成员赋初值。 (满分:2)
A. 错误
B. 正确
5.类成员是按照它们在成员初始化表中列出的顺序进行初始化的,与它们在类里被声明的顺序无关。 (满分:2)
A. 错误
B. 正确
6.ios类中的格式化输入输出成员函数可以直接用在提取运算符“>>”或插入运算符“<<”后面。 (满分:2)
A. 错误
B. 正确
7.拷贝构造函数是重载的构造函数。 (满分:2)
A. 错误
B. 正确
8.操纵符hex、oct、dec只对下一个输出有效。 (满分:2)
A. 错误
B. 正确
9.使用重载运算符既可以用运算符的方式又可以用函数调用的方式。 (满分:2)
A. 错误
B. 正确
10.前缀自增运算符用成员函数方式重载时,其参数个数为0,用友元函数重载时,其参数个数为1。 (满分:2)
A. 错误
B. 正确
11.类A继承类B,则A称为B的派生类,B称为A的基类。 (满分:2)
A. 错误
B. 正确
12.拷贝构造函数是在用一个对象初始化另一个对象时被调用的。 (满分:2)
A. 错误
B. 正确
13.C++利用函数重载实现面向对象程序设计的封装性。 (满分:2)
A. 错误
B. 正确
14.若左操作数为基本数据类型或其它类对象时,此运算符应以友元函数的方式重载。 (满分:2)
A. 错误
B. 正确
15.虚基类中的成员函数都是虚函数。 (满分:2)
A. 错误
B. 正确
16.C++利用类的派生机制实现面向对象程序设计的多态性。 (满分:2)
A. 错误
B. 正确
17.当一个类被说明为另一个类的友元时,它的所有的成员函数都成为另一个类的友元函数。 (满分:2)
A. 错误
B. 正确
18.C++是一种纯粹的面向对象程序设计语言。 (满分:2)
A. 错误
B. 正确
19.析构函数是不能被派生类继承的。 (满分:2)
A. 错误
B. 正确
20.要对文件进行读写操作,必须在文件开头包含头文件fstream.h (满分:2)
A. 错误
B. 正确
C++程序设计17秋在线作业2
一、单选题:【20道,总分:60分】
1.应在下列程序划线处填入的正确语句是( )。#include class Base { public: void fun( ){cout<<"Base::fun"<<ENDL;} }; class Derived:public Base { void fun( ) {( )( )( ) //显示调用基类的函数fun( ) cout<<"Derived::fun"<<ENDL; } }; (满分:3)
A. fun( );
B. Base.fun( );
C. Base::fun( );
D. Base->fun( );
2.静态成员函数仅能访问( )。 (满分:3)
A. 静态的数据成员
B. 非静态的成员函数
C. 非静态的数据成员
D. 以上都不对
3.下面描述中,表达错误的是( )。 (满分:3)
A. 公有继承时基类中的public成员在派生类中仍是public的
B. 公有继承时基类中的private成员在派生类中仍是private的
C. 公有继承时基类中的protected成员在派生类中仍是protected的
D. 保护继承时基类中的public成员在派生类中是private的
4.下面对静态数据成员的描述中,正确的是( )。 (满分:3)
A. 静态数据成员可以在类体内进行初始化
B. 静态数据成员不可以被类的对象调用
C. 静态数据成员不能受private控制符的作用
D. 静态数据成员可以直接用类名调用
5.定义类模板时要使用关键字( )。 (满分:3)
A. const
B. new
C. delete
D. template
6.C++语言建立类库是通过( )实现的。 (满分:3)
A. 类的嵌套
B. 类的继承
C. 虚函数
D. 抽象类
7.C++程序的执行总是从( )开始的。 (满分:3)
A. main函数
B. 第一行
C. 头文件
D. 函数注释
8.下列函数中,( )是对文件进行读操作的。 (满分:3)
A. put
B. read
C. write
D. seekp
9.运算符重载函数必须以特殊的关键字( )开始。 (满分:3)
A. virtual
B. operator
C. template
D. static
10.定义p并使p指向动态空间中的包含10个整数的数组所使用的定义语句为( )。 (满分:3)
A. int *p=new;
B. int *p=new int(10);
C. *p=new int;
D. int *p=new int;
11.C++利用( )实现面向对象程序设计的继承性。 (满分:3)
A. 构造数据类型—类
B. 类的派生机制
C. 构造数据类型—枚举
D. 函数重载与运算符重载
12.下列类中( )不是输入流类istream的派生类。 (满分:3)
A. ifstream
B. istrstream
C. iostream
D. ofstream
13.在多继承的构造函数的定义中,若干个基类的构造函数之间用( )分隔开。 (满分:3)
A. ::
B. :
C. ;
D. ,
14.当使用fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为( )。 (满分:3)
A. ios::in
B. ios::out
C. ios::in|ios::out
D. 以上都不对
15.下列描述中错误的是( )。 (满分:3)
A. 派生类至少有一个基类
B. 派生类可作为另一个类的基类
C. 派生类所继承的基类成员的访问权限保持不变
D. 派生类除了包含它直接定义的成员外,还包含基类的成员
16.使用派生类的主要原因是( )。 (满分:3)
A. 提高代码的可重用性
B. 提高程序的运行效率
C. 加强类的封装性
D. 实现数据的隐藏
17.下面不能作为函数的返回类型的是( )。 (满分:3)
A. new
B. int
C. long
D. void
18.假定变量x定义为“int x=8;”,要使rx成为x的引用(别名),rx应定义为( )。 (满分:3)
A. int rx=x;
B. int rx=&x;
C. int *rx=&x;
D. int &rx=x;
19.在C++中,编写一个内联函数Fun,使用int类型的参数,求其平方并返回,返回值也为int类型,下列定义正确的是( )。 (满分:3)
A. int Fun(int x){return x*x;}
B. inline int Fun(int x){return x*x;}
C. int inline Fun(int x){return x*x;}
D. int Fun(int x){inline return x*x;}
20.类的析构函数的作用是( )。 (满分:3)
A. 一般成员函数的初始化
B. 类的初始化
C. 对象的初始化
D. 删除类创建的对象
二、判断题:【20道,总分:40分】
1.IO流库重载的插入和析取运算符能处理所有的数据类型(包括自定义类型)。 (满分:2)
A. 错误
B. 正确
2.编译时的多态是通过动态联编来实现的,运行时的多态是通过静态联编实现的。 (满分:2)
A. 错误
B. 正确
3.C++语言对同一字母的大小写将认为是同一字符。 (满分:2)
A. 错误
B. 正确
4.使用cin和cout进行输入和输出操作必须包含头文件iomanip.h (满分:2)
A. 错误
B. 正确
5.成员函数体写在类的外部时一定要在类的内部保留函数声明。 (满分:2)
A. 错误
B. 正确
6.this指针是一个const指针,不能在程序中修改它或给它赋值。 (满分:2)
A. 错误
B. 正确
7.cout通常与键盘相连,cin通常与显示器相连。 (满分:2)
A. 错误
B. 正确
8.数组中的每个元素它们的类型可以是不同的。 (满分:2)
A. 错误
B. 正确
9.new和delete运算符可以被重载。 (满分:2)
A. 错误
B. 正确
10.get( )和put( )函数的功能是一次读写一个数据块,而read( )和write( )函数是一次读写一个字符。 (满分:2)
A. 错误
B. 正确
11.ofstream是用于读文件的文件流。 (满分:2)
A. 错误
B. 正确
12.C++标准库中的输入输出格式操作符(函数)可以直接用在提取运算符“>>”或插入运算符“<<”后面。 (满分:2)
A. 错误
B. 正确
13.构造函数和析构函数都不能重载。 (满分:2)
A. 错误
B. 正确
14.类成员是按照它们在成员初始化表中列出的顺序进行初始化的,与它们在类里被声明的顺序无关。 (满分:2)
A. 错误
B. 正确
15.C++编译器能够区分重载的无参函数和缺省参数的函数。 (满分:2)
A. 错误
B. 正确
16.如果一个类只定义了一个带参的构造函数,则系统会给它提供缺省的无参构造函数。 (满分:2)
A. 错误
B. 正确
17.指针和引用都是变量,都占有单独的内存空间。 (满分:2)
A. 错误
B. 正确
18.在文件操作结束时,可以用eof( )成员函数关闭该文件。 (满分:2)
A. 错误
B. 正确
19.若有声明:class C: public A,B{};则类C公有继承自类A及类B。 (满分:2)
A. 错误
B. 正确
20.若将函数说明为返回一个引用,则该函数可以用在赋值运算符的左边。 (满分:2)
A. 错误
B. 正确
页:
[1]