福师《C 语言程序设计》在线作业一
试卷总分:100 得分:100
一、 单选题 (共 20 道试题,共 40 分)优学100f(www.youxue100f.com)
1.在进行完任何C++流的操作后,都可以用C++流的有关成员函数检测流的状态;其中只能用于检测输入流状态的操作函数名称是()。
A.fail
B.eof
C.bad
D.good
正确答案:
2.函数重载体现了面向对象的( )
A.封装性
B.多态性
C.继承性
D.抽象性
正确答案:
3.()的功能是对对象进行初始化。
A.析构函数
B.数据成员
C.构造函数
D.静态成员函数
正确答案:
4.一个类的友元函数能够访问该类的()。
A.私有成员
B.保护成员
C.公有成员
D.所有成员
正确答案:
5.下列关于构造函数说法不正确的是( )
A.构造函数必须与类同名
B.在构造函数中可以对类中的成员进行初始化
C.构造函数可以省略不写
D.构造函数必须有返回值
正确答案:
6.设int f(int);和int g(int);是函数f和g的原形,以下将f作为语句调用的是( )。
A.g(f(3));
B.f(g(3));
C.g(f(3)+2);
D.p= f(g(3)+1);
正确答案:
7.表达式9!=10的值为
A.非零值
B.true
C.0
D.1
正确答案:
8.
下列程序的执行结果为()。
#include void main( )
{inta=3,b=0; int*p=&a; b=+a++; cout<<*P<<","<<b<<endl; }
A.3,4
B.4,3
C.3,3
D.4,4
正确答案:
9.下列哪项不是面向对象程序设计的主要特征( )
A.封装
B.继承
C.多态
D.结构
正确答案:
10.假定AB为一个类,则该类的拷贝构造函数的声明语句为_________。
A.AB &(AB x)
B.AB(AB x)
C.AB(AB &)
D.AB(AB * x)
正确答案:
11.在下面的一维数组定义中,哪一个有语法错误?
A.int a[ ]={1,2,3}
B.int a[10]={0}
C.int a[ ]
D.int a[5]
正确答案:
12.以下各选项企图说明一种新的类型名,其中正确的是( )
A.typedef v1 int;
B.typedef v2=int;
C.typedef int v3;
D.typedef v4: int;
正确答案:
13.在C++语言中,数据封装要解决的问题是_________。
A.数据的规范化
B.便于数据转换
C.避免数据丢失
D.防止不同模块之间数据的非法访问
正确答案:
14.在设计程序时,应采纳的原则之一是()。
A.不限制goto语句的使用
B.减少或取消注解行
C.程序越短越好
D.程字结构应有助于读者理解
正确答案:
15.下面不能正确表示a*b/(c*d)的表达式是
A.(a*b)/c*d
B.a*b/(c*d)
C.a/c/d*b
D.a*b/c/d
正确答案:
16.()不是构造函数的特征
A.构造函数的函数名与类名相同
B.构造函数可以重载
C.构造函数可以设置缺省参数
D.构造函数必须指定类型说明.
正确答案:
17.类模板规定了如何创建一个______。( )
A.对象
B.类
C.实例
D.变量
正确答案:
18.下面关于数组的描述错误的是_________。
A.在C++语言中数组的名字就是指向该数组第一个元素的指针
B.长度为n的数组,下标的范围是0-n-1
C.数组的大小必须在编译时确定
D.数组只能通过值参数和引用参数两种方式传递给函数
正确答案:
19.
下列程序的执行结果为_________。
#include
void main()
{
int a=3,b=0;
int*p=&a:
b=+a++;
cout<<*P<<","<b<<endl;}
A.3,4
B.4,3
C.3,4
D.4,4
正确答案:
20.下面关于类和对象的描述中,错误的是___________。
A.类就是C语言中的结构体类型,对象就是C语言中的结构体变量
B.类和对象之间的关系是抽象和具体的关系
C.对象是类的实例,一个对象必须属于一个已知的类
D.类是具有共同行为的若干对象的统一描述体
正确答案:
二、 判断题 (共 20 道试题,共 40 分)
1.类模板的使用实际士:是将类模板实例化成一个具体的类。
A.错误
B.正确
正确答案:
2.要使引用pr代表变量char * p;,则pr应初始化为 char ** &pr=p;
A.错误
B.正确
正确答案:
3.一个类的成员函数可以任意被调用( )
A.错误
B.正确
正确答案:
4.若在类Base和派生类Derived中,分别声明一个同名的整型成员变量int x;,那么通过Derived类的实例对象,不可能输出基类Base中的变量x的值。
A.错误
B.正确
正确答案:
5.变量分为全局和局部两种,局部变量没有赋初值时,其值是确定的。
A.错误
B.正确
正确答案:
6.定义全局变量要在程序开始时进行,并且放在所有函数的外面,静态局部变量要在函数内部定义,但生命期却随函数的第一次被调用而产生。( )
A.错误
B.正确
正确答案:
7.float和double类型的大小分别为4和8。
A.错误
B.正确
正确答案:
8.假定一个一维数组的定义为“char*a[8];”,则该数组所含元素的个数为32。
A.错误
B.正确
正确答案:
9.程序的编译是以文件为单位的,因此将程序分到多个文件中可以减少每次对程序修改所带来的编译工作量。
A.错误
B.正确
正确答案:
10.字符型数据在内存中的存储形式是ASCII码( )
A.错误
B.正确
正确答案:
11.作为语句的函数调用是通过函数的副作用来体现的。
A.错误
B.正确
正确答案:
12.对于全局函数int f(void),与其完全等价的函数原型为const int f( )。
A.错误
B.正确
正确答案:
13.输出字符指针就是输出字符串。
A.错误
B.正确
正确答案:
14.常对象必须进行初始化,而且不能被更新( )
A.错误
B.正确
正确答案:
15.用new动态申请的内存空间,必须用delete来释放。
A.错误
B.正确
正确答案:
16.在面向对象的程序设计中,类描述的是具有相似性质的一组对象。
A.错误
B.正确
正确答案:
17.在一个函数内的复合语句中定义的变量在本函数范围内有效。( )
A.错误
B.正确
正确答案:
18.表达式8&3的结果是1。
A.错误
B.正确
正确答案:
19.inline函数表示编译器一定会将函数体直接插入到调用此函数的地方,这样可以加快程序的运行速度。
A.错误
B.正确
正确答案:
20.自增运算符和自减运算符只能用于变量,不能用于常量或表达式 。( )
A.错误
B.正确
正确答案:
三、 多选题 (共 10 道试题,共 20 分)
1.下列关于构造函数的描述中,正确的是______。
A.构造函数可以设置默认参数
B.构造函数在定义类对象时自动执行
C.构造函数可以是内联函数
D.构造函数不可以重载
正确答案:
2.函数调用可以______。
A.出现在一个表达式中
B.出现在执行语句中
C.作为一个函数的实参
D.作为一个函数的形参
正确答案:
3.下面描述中,表达正确的是______。优学100f(www.youxue100f.com)
A.公有继承时基类中的public成员在派生类中仍是public的
B.公有继承时基类中的private成员在派生类中是public的
C.公有继承时基类中的protected成员在派生类中仍是protected的
D.私有继承时基类中的public成员在派生类中是private的
正确答案:
4.以下关于函数模板叙述错误的是______。
A.函数模板也是一个具体类型的函数
B.函数模板的类型参数与函数的参数是同一个概念
C.通过使用不同的类型参数,函数模板可以生成不同类型的函数
D.用函数模板定义的函数没有类型
正确答案:
5.在进行完成任何C++流的操作后,都可以用C++流的有关成员函数检测流的状态;其中不能用于检测输入流状态的操作函数名称是______。
A.fail
B.eof
C.bad
D.good
正确答案:
6.对C++语言和C语言的兼容性,描述不正确的是______。
A.C++兼容C
B.C++部分兼容C
C.C++不兼容C
D.C兼容C++
正确答案:
7.下列说法中错误的是______。
A.不允许设置参数的默认值
B.设置参数的默认值只能在定义函数时设置
C.设置参数的默认值时,应该设置右边的参数
D.设置参数的默认值时,应该全部参数都设置
正确答案:
8.使用值传递方式将实参传给形参,下列说法不正确的是______。
A.形参是实参的备份
B.实参是形参的备份
C.形参和实参是同一对象
D.形参和实参无联系
正确答案:
9.关于函数重载,下列描述错误的是______。
A.函数重载是指两个或两个以上的函数取相同的函数名,但形参的个数或类型不同
B.函数重载是指两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同
C.函数重载是指两个以上的函数名字不同,但形参的个数或类型相同
D.函数重载是指两个以上的函数取相同的函数名,并且函数的返回类型相同
正确答案:
10.下列哪种函数不可以是虚的______。
A.自定义的构造函数
B.拷贝构造函数
C.静态成员函数
D.析构函数
正确答案: