12秋华中师范大学《C++程序设计》在线作业(随机)第1

所属学校:华中师范大学 科目:C++程序设计 2015-03-17 14:00:59

华师《C++程序设计》在线作业(随机)
试卷总分:100
单选题


一、单选题(共 50 道试题,共 100 分。)
1.在int b[][3]={{1},{3,2},{4,5,6},{0}};中a[2][2]的值是( )。
A. 0
B. 5
C. 6
D. 2

2.下面关于类概念的描述中,( )是错误的。
A. 类是抽象数据类型的实现
B. 类是具有共同行为的若干对象的统一描述体
C. 类是创建对象的样板
D. 类就是C语言中的结构类型
此题选: D
3.下列字符串常量表示中,( )是错误的。
A. ’yesorNo’
B. “/’OK!/’”
C. “abcd/n”
D. “ABC/0”

4.C++语言中规定函数的返回值的类型是由( )。
A. return语句中的表达式类型所决定
B. 调用该函数时的主调用函数类所决定
C. 调用该函数时系统临时决定
D. 在定义该函数时所指定的函数类型所决定
此题选: D
5.( )不是构造函数的特征
A. 构造函数的函数名与类名相同
B. 构造函数可以重载
C. 构造函数可以设置默认参数
D. 构造函数必须指定类型说明
此题选: D
6.面向对象程序设计将数据与( )放在一起,作为一个相互依存、不可分割的整体来处理。
A. 对数据的操作
B. 信息
C. 数据隐藏
D. 数据抽象

7.已知:print()函数是一个类的常成员函数,它无返回值,下列表示中,( )是正确的。
A. void print( ) const
B. const void print( )
C. void const print()
D. void print(const)

8.派生类的构造函数的成员初始化列表中,不能包含( )。
A. 基类的构造函数
B. 派生类中子对象的初始
C. 基类的子对象初始化
D. 派生类中一般数据成员的初始化

9.以下关于do-while语句的叙述正确是( )。
A. 不能使用do-while语句构成的循环
B. do-while语句构成的循环必须用break语句才能退出
C. do-while语句构成的循环,当while语句中的表达式值为非零时结束循环
D. do-while语句构成的循环,当while语句中的表达式值为零时结循环
此题选: D
10.下列do_while循环交数为( )。 已知:int I=5; do {cout<<I--<<endl; i--; }while(I!=0);
A. 0
B. 1
C. 6
D. 无限
此题选: D
11.在32位机中,int型字宽为( )字节。
A. 2
B. 4
C. 6
D. 8

12.指针可以用来表示数组元素,下列表示中( )是错误的。已知: int a[3][7];
A. *(a+1)[5]
B. *(*a+3)
C. *(*(a+1))
D. *(&a[0][0]+2)

13.已知:int a,b;下列switch语句中,( )是正确的。
A. switch(a) { case a:a++; break; case b:b++; break; }
B. switch (a+b) {case 1:a+b; break; case 2:a-b }
C. switch(a*a) { case 1,2:++a; case 3,4:++b; }
D. switch(a/10+b) { case 5:a/5;break; default:a+b; }
此题选: D
14.下列表示引用的方法中,(  )是正确的。已知: int m=10;
A. int &x=m;
B. int &y=10;
C. int z;
D. float &t=&m;

15.( )是析构函数的特征。
A. 一个类中只能定义一个析构函数
B. 析构函数名与类名不同
C. 析构函数的定义只能在类体内
D. 析构函数可以有一个或多个参数

16.类模板的使用实际上是将类模板实例化成一个具体的( )
A. 类
B. 对象
C. 函数
D. 模板类

17.面向对象系统的多态性是( )。C++语言支持两种多态性:编译时的多态性和( )
A. 不同的对象收到相同的消息时产生不同的动作
B. 不同的对象收到相同的消息时产生相同的动作
C. 相同的对象收到相同的消息时产生不同的动作
D. 相同的对象收到相同的消息时产生相同的动作

18.若对函数类型未加显式说明,则函数的隐含类型是( )。
A. void
B. double
C. int
D. Char

19.关于成员函数特征的下述描述中,( )是错误的。
A. 成员函数一定是内联函数
B. 成员函数可以重载
C. 成员函数可以设置参数的默认值
D. 成员函数可以是静态的

20.若有以下函数调用语句:fun(a+b,(x,y),fun(n+k,d,(a+b)));在此函数调用语句中实参个数是( )。
A. 3
B. 4
C. 5
D. 6

21.有关类的说法不正确的是( )
A. 类是一种用户自定义的类据类型
B. 只有类中的成员函数才能存取类中的私有类型
C. 在类中如果不作特别说明所有的数据均为私有类型
D. 在类中如果不作特别说明所有的成员函数均为公有类型
此题选: D
22.若类A和类B的定义如下: class A { int I, j; public: void get(); //..}; class B :A{ int k; public: void make( ){ k=I*j; }则上述定义中,( )是非法的表达式。
A. void get();
B. int k;
C. void make();
D. k=I*j;
此题选: D
23.以下程序和输出结果是( ); #include<iostream.h main( ) { int num=0; while(num<=2) { num++; cout<<num<<endl; } }
A. 1
B. 1 2
C. 1 2 3
D. 1 2 3 4

24.面向对象系统的( )是一种信息隐藏技术,目的在于将于对象的使用者与设计者分开,使用者不必知道对象行为实现的细节,只需用设计者提供的协议命令对象支做即可。
A. 多态性
B. 封装性
C. 继承性
D. 复用性

25.在一个被调用函数中,关于return语句使用的描述,错误的是( )。
A. 被调用函数中可以不用return语句
B. 被调用函数中可以使用多个return语句
C. 被调用函数中,如果有返回值,就一定要有return语句
D. 被调用函数中,一个return语句可返回多个值给调用函数
此题选: D
26.关于C++与C语言的关系的描述中,( )是错误的。
A. C语言是C++的一个子集
B. C++与C语言是兼容的
C. C++对C语言进行了一些改进
D. C++和C语言都是面向对象的
此题选: D
27.下述关于goto语句的描述中,( )是正确的
A. goto语句可在一个文件中随意转向
B. goto语句后面要跟上一个它所转向的语句
C. goto语句可以同时转向多条语句
D. goto语句以从一个循环体内转到循环体外
此题选: D
28.下列关于指针的运算中,( )是非法的。
A. 两个指针在一定条件下,可以进行相等或不相等的运算
B. 可以用一个空指针赋值给某个指针
C. 一个指针可以加上两个整数之差
D. 两个指针在一定条件下,可以相加
此题选: D
29.在多继承中,公有派生和私有派生对于基类成员在派生类中的可访问性与单继承的规则(  ),
A. 完全相同
B. 完全不同
C. 部分相同,部分不同
D. 以上都不对

30.按照标识符的要求,( )符号不能组成标识符。
A. 连接符
B. 下划线
C. 大小写字母
D. 数字字符

31.关于new运算符的下列描述中,( )是错误的。
A. 它可以用来动态创建对象和对象数组
B. 使用它创建对象或对象数组,可以使用运算delete删除
C. 使用它创建对象时要调用构造函数
D. 使用它创建对象数组时必须指定初始值
此题选: D
32.类的说明,请指出错误的地方( )。 Class Csample { int a=2.5;
A. Csample( );
B. public: Csample(int val);
C. ~Csample( );
D. };

33.C++中的类有两种用法:一种是类的实例化,即生成类的对象,并参与系统的运行;另一种是通过( ),派生出新的类。
A. 复用
B. 继承
C. 单继承
D. 多继承

34.若定义:float x; int a,b; 正确的switch语句是( )。
A. switch (x) { case 1.0:cout<<”*/n”; case 2.0:cout<<”**/n”; }
B. switch(x) { case 1.2:cout<<”*/n”; case 3:cout<<”**/n”; }
C. switch(a+b) { case 1:cout<<”*/n”; case 1+2:cout<<”**/n”; }
D. switch(a+b) { case 1:cout<<”
此题选: D
35.设 char ch; 以下正确的赋值语句是(  )
A. Ch=’123’;
B. ch=’xff’;
C. ch=’/08’;
D. ch=’/’;
此题选: D
36.局部变量可以隐藏全局变量,那么在有同名全局变量和局部变量的情形时,可以用( )提供对全局变量的访问。
A. 域运算符
B. 类运算符
C. 重载
D. 引用

37.关于多继承二义性的描述中,( )是错误的。
A. 一个派生类的两个基类中都有某个同名成员,在派生类中对这个成员的访问可能出现二义性
B. 解决二义性的最常用的方法是对成员的限定法
C. 基类和派生类同时出现的同名函数,也存在二义性问题
D. 一个派生类是从两个基类派生来的,而这两个基类又有一个共同的基类,对该基类成员进行访问时,也可能出现二义性

38.下列( )的调用方式是引用调用。
A. 形参是指针,实参是地址值
B. 形参和实参都是变量
C. 参是数组名,实参是数组名
D. 形参是引用,实参是变量
此题选: D
39.在C++中,关于下列设置参数默认值的描述中,正确的是( )。
A. 不允许设置参数的默认值
B. 设置参数默认值只能在定义函数时设置
C. 设置参数默认值时,应该是先设置右边的再设置左边的
D. 设置参数默认值时,应该全部参数都设置

40.在多继承的构造函数定义中,几个基类的构造函数之间用(  )分隔。
A. :
B. ;
C. ,
D. ::

41.下列的标识符中,( )是文件级作用域的
A. 函数形参
B. 语句标号
C. 外部静态类标识符
D. 自动类标识符

42.下列符号中,( )不可作为分隔符。
A. ,
B. :
C. ?
D. ;

43.在派生类中定义的析构函数与它所属的基类(  )
A. 定有关
B. 一定无关
C. 以上都不对

44.有关构造函数的说法不正确是( )
A. 构造函数名字和类的名字一样
B. 构造函数在说明类变量时自动执行
C. 构造函数无任何函数类型
D. 构造函数有且只有一个
此题选: D
45.关于delete运算符的下列描述中,( )是错误的。
A. 它必须用于new返回的指针
B. 它也适用于空指针
C. 对一个指针可以使用多次该运算符
D. 指针名前只用一对方括号符,不管所删除数组的维数

46.一个类A,( )是指向类A成员函数的指针,假设类有三个公有成员:void f1(int),void f2(int)和int a
A. A*p
B. int A::*pc=&A::a
C. void A::*pa
D. A *pp

47.运算符-* 功能是( )。
A. 用来表示指向对象指针对指向类成员指针的操作
B. 用来表示对象对指向类成员指针的操作
C. 用来表示指向对象指针对类成员的操作
D. 用来表示对象类成员的操作。

48.重载函数在调用时选择的依据中,错误的是( )。
A. 参数个数
B. 参数的类型
C. 函数名字
D. 函数的类型
此题选: D
49.以下程序段( )。 Int x=-1; Do { x=x*x;}while(!x);
A. 是死循环
B. 循环执行二次
C. 循环执行一次
D. 有语法错误

50.已知:p是一个指向类A数据成员m指针,A1是类A的一个对象。如果要给m赋值为5,( )是正确的。
A. A1.p=5
B. A1-p=5
C. A1.*p=5
D. *A1.p=5






版权声明

声明:有的资源均来自网络转载,版权归原作者所有,如有侵犯到您的权益 请联系本站我们将配合处理!

分享: