福师16秋《C++语言程序设计》在线作业一二答案
福师《C++语言程序设计》在线作业一附件就是答案,需要的可以下载
一、单选题:
1.如果友元函数重载一个运算符时,其参数表中没有任何参数则说明该运算符是( )。 (满分:2)
A. 一元运算符
B. 二元运算符
C. 重载错误
D. 都可能
2.C++语言对C语言做了很多改进,C++语言相对于C语言的最根本的变化是( )。 (满分:2)
A. 增加了一些新的运算符
B. 允许函数重载,并允许设置缺省参数
C. 规定函数说明符必须用原型
D. 引进了类和对象的概念
3.若用数组名作为函数调用时的实参,则实际上传递给形参的是( ) (满分:2)
A. 数组首地址
B. 数组的第一个元素值
C. 数组中全部元素的值
D. 数组元素的个数
4.关于异常和C++提供的异常处理机制。不正确的说法是( )。( ) (满分:2)
A. 若程序员预见到程序的异常,则一定可以通过修改程序代码来避免异常出现
B. 使用dyname cast操作符可能会发生异常
C. 异常可以用catch捕获处理
D. 异常可以是对象,也可以是普通函数
5.在C++语言中,为了使得类中的某些数据成员及某些成员函数的返回值能取任意类型,应使用( ) (满分:2)
A. 类
B. 类模板
C. 抽象类
D. 虚基类
6.在C++语言中,对函数参数默认值描述正确的是( )。 (满分:2)
A. 函数参数的默认值只能设定一个
B. 一个函数的参数若有多个,则参数默认值的设定可以不连续
C. 函数参数必须设定默认值
D. 在设定了参数的默认值后,该参数后面定义的所有参数都必须设定默认值
7.下面程序的运行结果为( )( )。#include class A {public: A( ){cout ~A( ){cout }class B:public A { public: B( ){cout ~B( ){cout }void main( ) { B b; } (满分:2)
A. 1234
B. 1324
C. 1342
D. 3142
8.类B是通过public继承方式从类A派生而来的,且类A和类B都有完整的实现代码,那么下列说法正确的是( )。 (满分:2)
A. 类B中具有pubic可访问性的成员函数个数一定不少于类A中public成员函数的个数。
B. 一个类B的实例对象占用的内存空间一定不少于一个类A的实例对象占用的内存空间。
C. 只要类B中的构造函数都是public的,在main函数中就可以创建类B的实例对象。
D. 类A和类B中的同名虚函数的返回值类型必须完全一致。
9.对于结构中定义的成员,其隐含访问权限为( )( )。 (满分:2)
A. public
B. protected
C. private
D. static
10.若已定义:inta[]={0,1,2,3,4,5,6,7,8,9},*P=a,i;其中O≤i≤9,则对a数组元素不正确的引用是( )。 (满分:2)
A. a
B. *(&a)
C. p
D. a
11.下列关于构造函数说法不正确的是( )。 (满分:2)
A. 构造函数必须与类同名
B. 构造函数可以省略不写
C. 构造函数必须有返回值
D. 在构造函数中可以对类中的成员进行初始化
12.虚函数使用关键字( ) (满分:2)
A. virtual
B. static
C. public
D. private
13.可以用p.a的形式访问派生类对象P的基类成员a,其中a是( )。 (满分:2)
A. 私有继承的公有成员
B. 公有继承的私有成员
C. 公有继承的保护成员
D. 公有继承的公有成员
14.下列字符中不能构成标识符的是( ) (满分:2)
A. 数字字符
B. 大写字母
C. 下划线字符
D. 连接符
15.类C是以多重继承的方式从类A和类B继承而来的,类A和类B无公共的基类,那么( )( )。 (满分:2)
A. 类C的继承方式只能采用public继承。
B. 可改用单继承的方式实现类C的同样功能。
C. 类A和类B至少有一个是抽象类。
D. 类A和类B至少有一个是虚基类。
16.整型变量i定义后赋初值的结果是( )。inti=2.8*6; (满分:2)
A. 12
B. 16
C. 17
D. 18
17.下列关于模板的说法正确的是( )。 (满分:2)
A. 模板的实参在任何时候都可以省略
B. 类模板与模板类所指的是同一概念
C. 类模板的参数必须是虚拟类型的
D. 类模板中的成员函数全部都是模板函数
18.在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并执行其他内部管理操作的函数是( )。 (满分:2)
A. 友元函数
B. 虚函数
C. 构造函数
D. 析构函数
19.下列表达式的值为false的是( )。 (满分:2)
A. 1<3&&5<7
B. !(2>4)
C. 3&0&&1
D. !(5<8)( )(2<8)
20.设int f(int);和int g(int);是函数f和g的原形,以下将f作为语句调用的是( )。 (满分:2)
A. g(f(3));
B. f(g(3));
C. g(f(3)+2);
D. p= f(g(3)+1);
二、多选题:
1.运算符重载不能改变原运算符的语义。 (满分:2)
A. 错误
B. 正确
2.字符型数据在内存中的存储形式是ASCII码( ) (满分:2)
A. 错误
B. 正确
3.定义全局变量要在程序开始时进行,并且放在所有函数的外面,静态局部变量要在函数内部定义,但生命期却随函数的第一次被调用而产生。( ) (满分:2)
A. 错误
B. 正确
4.一个类的成员函数可以任意被调用( ) (满分:2)
A. 错误
B. 正确
5.内联函数是为了提高编程效率而实现的,它克服了用#define宏定义所带来的弊病 。( ) (满分:2)
A. 错误
B. 正确
6.设有int w;,pw是与数组名w等价的数组指针,则pw应初始化为int(* pw)=w; (满分:2)
A. 错误
B. 正确
7.C++中,一个函数必须在函数声明后才能使用( ) (满分:2)
A. 错误
B. 正确
8.NULL是空指针值,它不指向任何地方。( ) (满分:2)
A. 错误
B. 正确
9.两个数组名的比较是地址的比较。 (满分:2)
A. 错误
B. 正确
10.作为语句的函数调用是通过函数的副作用来体现的。 (满分:2)
A. 错误
B. 正确
三、判断题:
11.静态就是让变量和函数在生命的区域内成为私有。( ) (满分:2)
A. 错误
B. 正确
12.设置函数的参数默认值的顺序是自左向右。 (满分:2)
A. 错误
B. 正确
13.每个cpp文件是单独编译的,但一个程序中多个cpp文件的编译顺序是不固定的。 (满分:2)
A. 错误
B. 正确
14.析构函数必须由用户定义。 (满分:2)
A. 错误
B. 正确
15.要在屏幕上显示"Hello,world!"应执行语句cout<< "\"Hello,world!\""。 (满分:2)
A. 错误
B. 正确
16.引用的目的主要用于在函数参数传递中,解决大对象的传递效率和空间都不如意的问题。( ) (满分:2)
A. 错误
B. 正确
17.inline函数表示编译器一定会将函数体直接插入到调用此函数的地方,这样可以加快程序的运行速度。 (满分:2)
A. 错误
B. 正确
18.自增运算符和自减运算符只能用于变量,不能用于常量或表达式 。( ) (满分:2)
A. 错误
B. 正确
19.一个对象必属于某个类。 (满分:2)
A. 错误
B. 正确
20.以面向IA-32处理器的VC++ 2008和gcc 4.2为准,float类型数据在内存中占4个字节,double型数据占8个字节,long double型数据占8个字节。( ) (满分:2)
A. 错误
B. 正确
1.下列关于构造函数的描述中,正确的是( )。 (满分:2)
A. 构造函数可以设置默认参数
B. 构造函数在定义类对象时自动执行
C. 构造函数可以是内联函数
D. 构造函数不可以重载
2.下列说法中错误的是( )。 (满分:2)
A. C++程序总是从第一个定义的函数开始执行
B. C++程序总是从main函数开始执行
C. C++函数必须有返回值,否则不能使用函数
D. C++程序中有调用关系的所有函数必须放在同一个程序文件中
3.对C++语言和C语言的兼容性,描述不正确的是( )。 (满分:2)
A. C++兼容C
B. C++部分兼容C
C. C++不兼容C
D. C兼容C++
4.在下面的一维数组定义中,没有语法错误的是( )。 (满分:2)
A. inta[ ]={1
2
3}
B. inta={0}
C. inta[ ]
D. inta
5.下面描述中,表达正确的是( )。 (满分:2)
A. 公有继承时基类中的public成员在派生类中仍是public的
B. 公有继承时基类中的private成员在派生类中是public的
C. 公有继承时基类中的protected成员在派生类中仍是protected的
D. 私有继承时基类中的public成员在派生类中是private的
6.C++语言的跳转语句中,对于break和continue说法不正确的是( )。 (满分:2)
A. break语句只应用于循环体中
B. continue语句只应用于循环体中
C. break是无条件跳转语句,continue不是
D. break和continue的跳转范围不够明确,容易产生问题
7.下列说法中错误的是( )。 (满分:2)
A. 不允许设置参数的默认值
B. 设置参数的默认值只能在定义函数时设置
C. 设置参数的默认值时,应该设置右边的参数
D. 设置参数的默认值时,应该全部参数都设置
8.下面哪些保留字可以作为函数的返回类型( )。 (满分:2)
A. void
B. int
C. new
D. long
9.下列哪种函数不可以是虚的( )。 (满分:2)
A. 自定义的构造函数
B. 拷贝构造函数
C. 静态成员函数
D. 析构函数
10.关于异常和C++提供的异常处理机制正确的说法是( )。 (满分:2)
A. 若程序员预见到程序中的异常,则一定可以通过修改程序代码来避免异常出现
B. 使用dynamiccast操作符可能会产生异常
C. 异常可以用catch进行捕获处理
D. 异常可以是对象,也可以是普通整数
福师《C++语言程序设计》在线作业二
一、单选题:【20道,总分:40分】
1.表示在输出时显示小数位,和在文件输入时判断文件尾的函数分别是( )。 (满分:2)
A. showbase( )和eof( )
B. showpoint( )和eof( )
C. showpoint( )和bad( )
D. showpoint( )和good( )
2.下面对静态数据成员的描述中,正确的是( )( )。 (满分:2)
A. 静态数据成员可以在类体内进行初始化
B. 静态数据成员不可以被类的对象调用
C. 静态数据成员不能受private控制符的作用
D. 静态数据成员可以直接用类名调用
3.下列程序的执行结果为( )。#include void main( ) {inta=3,b=0; int*p=&a; b=+a++; cout (满分:2)
A. 3,4
B. 4,3
C. 3,3
D. 4,4
4.下列程序的运行结果为( )( )。#includevoid print(double a) { cout } void print(int a,int b) { cout void main( ) { print(1.2); cout print(3,4); } (满分:2)
A. 1.2 34
B. 2.2 34
C. 1.2 43
D. 2.2 43
5.下列各种高级语言中,( )是面向对象编程语言。( ) (满分:2)
A. BASIC
B. C语言
C. C++语言
D. Pascal语言
6.C++语言是从早期的C语言逐渐发展演变而来的.与C语言相比,它在求解问题方法上进行的最大改进是( )。 (满分: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.当使用fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为( )。 (满分:2)
A. ios::in
B. ios::out
C. ios::int | ios::out
D. 没有
9.下列各类函数中,( )不是类的成员函数。 (满分:2)
A. 构造函数
B. 析构函数
C. 友元函数
D. 拷贝构造函数
10.如果类A被说明成类B的友元,则( )。 (满分:2)
A. 类A的成员即类B的成员
B. 类B的成员即类A的成员
C. 类A的成员函数不得访问类B的成员
D. 类B不一定是类A的友元
11.下列程序的输出结果为( )( )。#include int func(int n) { if〔n else return n+tune(n-1): return 0; } void main( ) { cout } (满分:2)
A. 0
B. 10
C. 15
D. 16
12.下列哪种用法不能体现类A和类B之间的组合关系( )( )。 (满分:2)
A. 类A中声明数据成员B b;
B. 类A中声明数据成员B* b;
C. 类A中声明数据成员const B& b;
D. 类A中声明成员函数 B func( B& obj);
13.下列各种函数中,( )不是类的成员函数。 (满分:2)
A. 构造函数
B. 析构函数
C. 友元函数
D. 拷贝构造函数
14.下列函数中,可以是虚函数的是( )。( ) (满分:2)
A. 自定义的构造函数
B. 拷贝构造函数
C. 静态成员函数
D. 析构函数
15.下列程序的执行结果为( )( )。#include void main( ) { int a=3,b=0; int*p=&a: b=+a++; cout (满分:2)
A. 3,4
B. 4,3
C. 3,4
D. 4,4
16.下列运算符中,运算对象必须是整型的是( ) (满分:2)
A. /
B. %
C. =
D. &
17.下面的哪个保留字不能作为函数的返回类型( )。 (满分:2)
A. void
B. int
C. new
D. long
18.在C++语言中,为了使得类中的某些数据成员及某些成员函数的返回值能取任意类型,应使用( ) (满分:2)
A. 类
B. 类模板
C. 抽象类
D. 虚基类
19.在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并执行其他内部管理操作的函数是( )( )。 (满分:2)
A. 友元函数
B. 虚函数
C. 构造函数
D. 析构函数
20.设有定义intx;floatv;,则10+x+v值的数据类型是( )。 (满分:2)
A. int
B. double
C. float
D. 不确定
二、判断题:【20道,总分:40分】
1.假定一个一维数组的定义为“char*a;”,则该数组所含元素的个数为32。 (满分:2)
A. 错误
B. 正确
2.NULL与void *是不同的概念,NULL是一个指针值,任何类型的指针都可赋予该值。而void *是一种类型,是一种无任何类型的指针。( ) (满分:2)
A. 错误
B. 正确
3.函数的返回值也称函数值,返回的不是函数本身,而是一个值。( ) (满分:2)
A. 错误
B. 正确
4.在一个函数中,不允许定义与结构体类型的成员相同名的变量。( ) (满分:2)
A. 错误
B. 正确
5.一个对象必属于某个类。 (满分:2)
A. 错误
B. 正确
6.类是一种类型,它封装了数据和操作。 (满分:2)
A. 错误
B. 正确
7.运算符重载不能改变原运算符的语义。 (满分:2)
A. 错误
B. 正确
8.在一个函数内的复合语句中定义的变量在本函数范围内有效。( ) (满分:2)
A. 错误
B. 正确
9.C语言程序总是从主函数开始执行,在主函数结束。( ) (满分:2)
A. 错误
B. 正确
10.静态就是让变量和函数在生命的区域内成为私有。( ) (满分:2)
A. 错误
B. 正确
11.派生类的成员一般分为两部分,一部分是从基类继承的成员,另一部分是自己定义的新成员。 (满分:2)
A. 错误
B. 正确
12.继承的方式有公有继承、私有继承两种。 (满分:2)
A. 错误
B. 正确
13.C++语言的参数传递机制包括传值和传地址两种,如果调用函数时,需要改变实参或者返回多个值,应该采取传地址方式。 (满分:2)
A. 错误
B. 正确
14.下面两个语句是等价的:charstr[]='hello,world';charstr='hello,world'; (满分:2)
A. 错误
B. 正确
15.达式operator+(x,y)还可以表示为x+y。 (满分:2)
A. 错误
B. 正确
16.假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是8。( ) (满分:2)
A. 错误
B. 正确
17.C++语言中,标识符不区分大小写。( ) (满分:2)
A. 错误
B. 正确
18.头文件中一般存放着变量和常量的定义、函数的原型以及类的定义。 (满分:2)
A. 错误
B. 正确
19.在内存中,字符数据以ASCII码存储,即以整数表示。( ) (满分:2)
A. 错误
B. 正确
20.指针在使用前可以不进行初始化( ) (满分:2)
A. 错误
B. 正确
三、多选题:【10道,总分:20分】
1.下面关于指针变量和引用变量的说法正确的是( )。 (满分:2)
A. 指针变量存放的是内存地址,并且可以置为0
B. 定义引用变量时,必须同时指明具体被引用的对象或变量
C. 使用取地址操作符,可以取得指针变量自身的地址,但取不到引用变量自身的地址
D. 类中的数据成员可以是指针变量,但不能是引用变量
2.下列说法中错误的是( )。 (满分:2)
A. 不允许设置参数的默认值
B. 设置参数的默认值只能在定义函数时设置
C. 设置参数的默认值时,应该设置右边的参数
D. 设置参数的默认值时,应该全部参数都设置
3.在下面的一维数组定义中,没有语法错误的是( )。 (满分:2)
A. inta[ ]={1,2,3}
B. inta={0}
C. inta[ ]
D. inta
4.函数调用可以( )。 (满分:2)
A. 出现在一个表达式中
B. 出现在执行语句中
C. 作为一个函数的实参
D. 作为一个函数的形参
5.下列关于构造函数的描述中,正确的是( )。 (满分:2)
A. 构造函数可以设置默认参数
B. 构造函数在定义类对象时自动执行
C. 构造函数可以是内联函数
D. 构造函数不可以重载
6.关于异常和C++提供的异常处理机制正确的说法是( )。 (满分:2)
A. 若程序员预见到程序中的异常,则一定可以通过修改程序代码来避免异常出现
B. 使用dynamiccast操作符可能会产生异常
C. 异常可以用catch进行捕获处理
D. 异常可以是对象,也可以是普通整数
7.考虑函数原型void test(int a ,int b=7,char z=’*’),下面的函数调用中,属于合法调用的是( )。 (满分:2)
A. test(5)
B. test(5,8)
C. test(6,’#’)
D. test(0,0,’*’)
8.在进行完成任何C++流的操作后,都可以用C++流的有关成员函数检测流的状态;其中不能用于检测输入流状态的操作函数名称是( )。 (满分:2)
A. fail
B. eof
C. bad
D. good
9.关于函数重载,下列描述错误的是( )。 (满分:2)
A. 函数重载是指两个或两个以上的函数取相同的函数名,但形参的个数或类型不同
B. 函数重载是指两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同
C. 函数重载是指两个以上的函数名字不同,但形参的个数或类型相同
D. 函数重载是指两个以上的函数取相同的函数名,并且函数的返回类型相同
10.以下不正确的描述是( )。 (满分:2)
A. 函数的定义可以嵌套,函数的调用不可以嵌套
B. 函数的定义不可以嵌套,函数的调用可以嵌套
C. 函数的定义和函数的调用均可以嵌套
D. 函数的定义和函数的调用均不可以嵌套
页:
[1]