|
福师《C++语言程序设计》在线作业二
一、单选题:
1.下列关于函数模板和模板函数的描述,错误的是( ) (满分:2)
A. 函数模板是一组函数的模板
B. 模板函数是一个实在的函数
C. 函数模板是定义重载函数的一种工具
D. 模板函数在编译时不生成可执行代码
2.对于结构中定义的成员,其隐含访问权限为( )( )。 (满分:2)
A. public
B. protected
C. private
D. static
3.C++语言对C语言做了很多改进,C++语言相对于C语言的最根本的变化是( )( )。 (满分:2)
A. 增加了一些新的运算符
B. 允许函数重载,并允许设置缺省参数
C. 规定函数说明符必须用原型
D. 引进了类和对象的概念
4.下列关于C++语言类的描述中错误的是( ) (满分:2)
A. 类用于描述事物的属性和对事物的操作
B. 类与类之间通过封装而具有明确的独立性
C. 类与类之间必须是平等的关系,而不能组成层次结构
D. 类与类之间可以通过一些方法进行通信和联络
5.以下叙述中正确的是( )。 (满分:2)
A. 构成C++语言程序的基本单位是类
B. 可以在一个函数中定义另一个函数
C. main( )函数必须放在其他函数之前
D. 所有被调用的函数一定要在调用之前进行定义
6.在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并执行其他内部管理操作的函数是( )( )。 (满分:2)
A. 友元函数
B. 虚函数
C. 构造函数
D. 析构函数
7.下面不能正确表示a*b/(c*d)的表达式是( ) (满分:2)
A.(a*b)/c*d
B. a*b/(c*d)
C. a/c/d*b
D. a*b/c/d
8.在对typedef的叙述中错误的是( )。 (满分:2)
A. 用typedef可以定义各种类型名,但不能用来定义变量
B. 用typedef可以增加新类型
C. 用typedef只是将已存在的类型用一个新的标识符来代表
D. 使用typedef有利于程序的通用和移植
9.以下各选项组中,均是C++语言关键字的组是( )。 (满分:2)
A. publicoperatorthis
B. shodstringstatic
C. itwhile>=
D. privatecoutprintf
10.下列关于多态性的描述,错误的是( )( )。 (满分:2)
A. C++语言的多态性分为编译时的多态性和运行时的多态性
B. 编译时的多态性可通过函数重载实现
C. 运行时的多态性可通过模板和虚函数实现
D. 实现运行时多态性的机制称为动态绑定
11.结构化程序设计的一种基本方法是( )。 (满分:2)
A. 筛选法
B. 递归法
C. 归纳法
D. 逐步求精法
12.下列关于多态性的描述,错误的是( )。 (满分:2)
A. C++语言的多态性分为编译时的多态性和运行时的多态性
B. 编译时的多态性可通过函数重载实现
C. 运行时的多态性可通过模板和虚函数实现
D. 实现运行时多态性的机制称为动态绑定
13.下面的哪个保留字不能作为函数的返回类型( )。 (满分:2)
A. void
B. int
C. new
D. long
14.在每个C++程序中都必须包含有这样一个函数,该函数的函数名为( )。 (满分:2)
A. main
B. MAIN
C. name
D. function
15.下面关于数组的初始化正确的是( )。 (满分:2)
A. charstr[]={‘a',’b','c‘}
B. charstr[2]={'a','b','c’}
C. charstr[2][3]={{'a‘,'b’},{’e’,'d’},{’e’,‘f'}}
D. charstr[]={'a','b','c’}
16.下列各种高级语言中,( )是面向对象编程语言。( ) (满分:2)
A. BASIC
B. C语言
C. C++语言
D. Pascal语言
17.若x,y,z均被定义为整数,则下列表达式能正确表达代数式1/(x*y*z)的是 (满分:2)
A. 1/x*y*z
B. 1.0/(x*y*z)
C. 1/(x*y*z)
D. 1/x/y/(float)z
18.设int * p2=&x,* p1=a;p2= *b;则a和b的类型分别是( )。 (满分:2)
A. int * 和int
B. int * 和int **
C. int 和int *
D. int * 和int *
19.下列对引用的陈述中,不正确的是( ) (满分:2)
A. 每一个引用都是其所引用对象的别名
因此必须初始化
B. 形式上针对引用的操作实际上作用于它所引用的对象
C. 一旦定义了引用
一切针对其所引用对象的操作只能通过该引用间接进行
D. 不需要单独为引用分配存储空间
20.以下哪个不是循环语句 (满分:2)
A. while语句
B. do-while语句
C. for语句
D. if-else语句
二、多选题:
1.在内存中,字符数据以ASCII码存储,即以整数表示。( ) (满分:2)
A. 错误
B. 正确
2.类的静态数据成员需要在定义每个类的对象时进行初始化。 (满分:2)
A. 错误
B. 正确
3.NULL与void *是不同的概念,NULL是一个指针值,任何类型的指针都可赋予该值。而void *是一种类型,是一种无任何类型的指针。( ) (满分:2)
A. 错误
B. 正确
4.C++语言程序中,要调用的函数必须在main( )函数中定义( ) (满分:2)
A. 错误
B. 正确
5.C++语言中的每条基本语句以;作为结束符,每条复合语句以}作为结束符。 (满分:2)
A. 错误
B. 正确
6.inline函数表示编译器一定会将函数体直接插入到调用此函数的地方,这样可以加快程序的运行速度。 (满分:2)
A. 错误
B. 正确
7.类是一种类型,它封装了数据和操作。 (满分:2)
A. 错误
B. 正确
8.关系表达式x+y>5的相反表达式为x+y<=5。 (满分:2)
A. 错误
B. 正确
9.float和double类型的大小分别为4和8。 (满分:2)
A. 错误
B. 正确
10.C++语言程序必须要有return语句( ) (满分:2)
A. 错误
B. 正确
三、判断题:
11.如果类B继承了类A,则称类A为类B的基类,类B称为类A的派生类。 (满分:2)
A. 错误
B. 正确
12.说明函数原型时不需要指明每个函数参数的名字,只需要说明每个参数的类型和返回值类型就可以了。 (满分:2)
A. 错误
B. 正确
13.C++语言中规定函数的返回值的类型是由return语句中的表达式类型所决定。 (满分:2)
A. 错误
B. 正确
14.指针在使用前可以不进行初始化( ) (满分:2)
A. 错误
B. 正确
15.自增运算符和自减运算符只能用于变量,不能用于常量或表达式 。( ) (满分:2)
A. 错误
B. 正确
16.C++中,一个函数必须在函数声明后才能使用( ) (满分:2)
A. 错误
B. 正确
17.用new动态申请的内存是在堆中分配的,而不是在栈中分配的。 (满分:2)
A. 错误
B. 正确
18.16位计算机中整型占4个字节存储空间。 (满分:2)
A. 错误
B. 正确
19.在内存中,字符数据以ASCII码存储,即以整数表示。( ) (满分:2)
A. 错误
B. 正确
20.声明一个结构并不分配内存,内存分配发生在定义这个新数据类型的变量中。( ) (满分:2)
A. 错误
B. 正确
1.下列哪种函数不可以是虚的( )。 (满分:2)
A. 自定义的构造函数
B. 拷贝构造函数
C. 静态成员函数
D. 析构函数
2.下列说法中错误的是( )。 (满分:2)
A. 不允许设置参数的默认值
B. 设置参数的默认值只能在定义函数时设置
C. 设置参数的默认值时,应该设置右边的参数
D. 设置参数的默认值时,应该全部参数都设置
3.下列关于构造函数的描述中,正确的是( )。 (满分:2)
A. 构造函数可以设置默认参数
B. 构造函数在定义类对象时自动执行
C. 构造函数可以是内联函数
D. 构造函数不可以重载
4.关于函数重载,下列描述错误的是( )。 (满分:2)
A. 函数重载是指两个或两个以上的函数取相同的函数名,但形参的个数或类型不同
B. 函数重载是指两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同
C. 函数重载是指两个以上的函数名字不同,但形参的个数或类型相同
D. 函数重载是指两个以上的函数取相同的函数名,并且函数的返回类型相同
5.在进行完成任何C++流的操作后,都可以用C++流的有关成员函数检测流的状态;其中不能用于检测输入流状态的操作函数名称是( )。 (满分:2)
A. fail
B. eof
C. bad
D. good
6.对C++语言和C语言的兼容性,描述不正确的是( )。 (满分:2)
A. C++兼容C
B. C++部分兼容C
C. C++不兼容C
D. C兼容C++
7.下列哪些是类的特性( )。 (满分:2)
A. 多态性
B. 继承性
C. 封装性
D. 虚拟性
8.在下面的一维数组定义中,没有语法错误的是( )。 (满分:2)
A. int a[ ]={1
2
3}
B. int a[10]={0}
C. int a[ ]
D. int a[5]
9.考虑函数原型void test(int a ,int b=7,char z=’*’),下面的函数调用中,属于合法调用的是( )。 (满分:2)
A. test(5)
B. test(5
8)
C. test(6
’#’)
D. test(0
0
’*’)
10.关于异常和C++提供的异常处理机制正确的说法是( )。 (满分:2)
A. 若程序员预见到程序中的异常,则一定可以通过修改程序代码来避免异常出现
B. 使用dynamiccast操作符可能会产生异常
C. 异常可以用catch进行捕获处理
D. 异常可以是对象,也可以是普通整数
|
|