【计算机类职业资格】二级C++-230及答案解析.doc
《【计算机类职业资格】二级C++-230及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++-230及答案解析.doc(16页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+-230 及答案解析(总分:65.50,做题时间:90 分钟)一、选择题(总题数:38,分数:65.50)1.关于函数中的返回类型,下列表述中错误的是 _ 。(分数:2.00)A.返回类型中有可能包含关键字 intB.返回类型中有可能包含自定义标识符C.返回类型中有可能包含字符*D.返回类型中可能包含口2.有如下程序: #includeiostream using namespace std; void fl(intx,inty) int z=x;x=y;y=z; void f2(int x,int y) int z=x;x=y;y=z; int main() int x=10,y=
2、26; f1(x,y); f2(x,y); coutyendl; return 0; 运行时的输出结果是_。(分数:2.50)A.10B.16C.26D.363.已知在一个类体中包含如下函数原型:VOLUMEOPER ATOR-(VOLUME)const;,下列关于这个函数的叙述中,错误的是_。(分数:1.00)A.这是运算符一的重载运算符函数B.这个函数所重载的运算符是一个一元运算符C.这是一个成员函数D.这个函数不改变类的任何数据成员的值4.有如下类声明: class Foo int bar; 则 Foo 类的成员 bar 是_。(分数:2.00)A.公有数据成员B.公有成员函数C.私有数
3、据成员D.私有成员函数5.已知函数 FA 调用 FB,若要把这两个函数定义在同一个文件中,则_。(分数:2.00)A.FA 必须定义在 FB 之前B.FB 必须定义在 FA 之前C.若 FA 定义在 FB 之后,则 FA 的原型必须出现在 FB 的定义之前D.若 FB 定义在 FA 之后,则 FB 的原型必须出现在 FA 的定义之前6.下列叙述中正确的是_。(分数:1.00)A.栈是一种先进先出的线性表B.队列是一种后进先出的线性表C.栈与队列都是非线性结构D.以上三种说法都不对7.下列关于派生类构造函数和析构函数的说法中,错误的是_。(分数:1.00)A.派生类的构造函数会隐含调用基类的构造
4、函数B.如果基类中没有缺省构造函数,那么派生类必须定义构造函数C.在建立派生类对象时,先调用基类的构造函数,再调用派生类的构造函数D.在销毁派生类对象时,先调用基类的析构函数,再调用派生类的析构函数8.有下列程序: #include stdio.h void main() int a=1,b=2,c=3,d=0; if(a=1b+=2) if(b!=2|c-!=3) printf(“%d,%d,%d/n“,a,b,c); else prinif(“%d,%d,%d/n“,a,b,c); else printf(“%d,%d,%d/n“,a,b,c); 程序运行后的输出结果是_。(分数:2.50
5、)A.1,2,3B.1,3,2C.1,3,3D.3,2,19.下列叙述中正确的是_。(分数:1.00)A.有一个以上根结点的数据结构不一定是非线性结构B.只有一个根结点的数据结构不一定是线性结构C.循环链表是非线性结构D.双向链表是非线性结构10.数据结构中,与所使用的计算机无关的是数据的(分数:1.00)A.存储结构B.物理结构C.逻辑结构D.物理和存储结构11.下列关于关系运算的叙述中正确的是(分数:2.00)A.投影、选择、连接是从二维表的行的方向来进行运算B.并、交、差是从二维表的列的方向来进行运算C.投影、选择、连接是从二维表的列的方向来进行运算D.以上三种说法都不对12.为类 Ma
6、trix 重载下列运算符时,只能作为 Matrix 类成员函数重载的运算符是_。(分数:2.50)A.+B.=C.D.+13.下列关于函数重载的叙述中,错误的是_。(分数:2.50)A.重载函数的参数个数可以不同B.重载函数的参数类型可以不同C.重载函数的返回值类型必须不同D.重载函数的参数个数或参数类型必须有所不同14.语句 ofstream f(“SALARY.DAT“,ios:appl ios:binary);的功能是建立流对象 f,试图打开文件SALARY.DAT 并与之连接,并且 _ 。(分数:2.00)A.若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件B.若文件
7、存在,将其置为空文件;若文件不存在,打开失败C.若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件D.若文件存在,打开失败;若文件不存在,建立一个新文件15.在深度为 5 的满二叉树中,叶子节点的个数为(分数:2.00)A.32B.31C.16D.1516.有如下类模板定义: templatetypename T class BigNumber long n; public; BigNumberT i:n(i) BigNumber operator+(BigNumber b) return BigNumbern+b.n); ; 已知 b1、b2 是 BigNumber 的两个对
8、象,则下列表达中错误的是_。(分数:1.00)A.b1+b2B.b1+3C.3+b1D.3+317.下列选项中正确的定义语句是_。(分数:2.50)A.double a;b;B.double a=b=7;C.double a=7,b=7;D.double,a,b;18.已知函数 FA 调用函数 FB,若要把这两个函数定义在同一个文件中,则_。(分数:1.00)A.FA 必须定义在 FB 之前B.FB 必须定义在 FA 之前C.若 FA 定义在 FB 之后,则 FA 的原型必须出现在 FB 的定义之前D.若 FB 定义在 FA 之后,则 FB 的原型必须出现在 FA 的定义之前19.下列关于单目
9、运算符+、-的叙述中,正确的是 _ 。(分数:1.00)A.它们的运算对象可以是任何变量和常量B.它们的运算对象可以是 char 型变量和血型变量,但不能是 float 型变量C.它们的运算对象可以是 int 型变量,但不能是 doule 型变量和 float 型变量D.它们的运算对象可以是 char 型变量、int 型变量和 float 型变量20.有如下说明: int a10=1,2,3,4,5,6,7,8,9,10,*p=a; 则数值为 9 的表达式是_。(分数:1.00)A.*p+9B.*(p+8)C.*p+=9D.p+821.下面的语句中错误的是(分数:2.00)A.int a5;i
10、nt xa ;B.const int a5;int xa ;C.int n5;int * pnew inta ;D.const int n5;int * pnew inta ;22.计算机能直接执行的程序是_。(分数:2.50)A.源程序B.目标程序C.汇编程序D.可执行程序23.语句 ofstream outf(“TEST.DAT“,ios_base:app);的功能是建立流对象 outf,并试图打开文件TEST.DAT 与 outf 关联,而且 _ 。(分数:2.00)A.如果文件存在,打开失败:如果文件不存在,建立一个新文件B.如果文件存在,将文件指针定位于文件首;如果文件不存在,打开失
11、败C.如果文件存在,将文件指针定位于文件尾:如果文件不存在,建立一个新文件D.如果文件存在,将其置为空文件;如果文件不存在,打开失败24.下列有关指针的用法中错误的是 _ 。(分数:2.00)A.int i;int *ptr=B.int i;int *ptr;i=*ptr;C.int *ptr;ptr=0;D.inti=5;int *ptr;*ptr25.有如下程序: #includeiostream using namespace std; class Power public: Power(int x):val(x) _ protected: int val; ; class Square
12、:public Power public: Square(int x):Power(x) void Display() coutval“的平方是“val*valendl; ; int main() Power*p=new Square(3); p-Display(); delete p; return 0; 若运行时的输出结果为“3 的平方是 9”,则划线处缺失的语句可能是_。(分数:1.00)A.void Display()B.virtual void Display()=0C.void virtual Display()=0;D.void Display()virtual 26.在开发一个
13、 C+程序的整个过程中,第 3 个步骤为_。(分数:2.50)A.链接B.运行C.编辑D.编译27.有如下 4 个语句: cout“A“setfill(“*“)leftsetw(7)“B“endl; coutsetfill(“*“)leftsetw(7)“A“B“endl; cout“A“serfill(“*“)rightsetw(7)“B“endl; coutsetfill(“*“)rightsetw(7)“A“B“endl; 其中能显示 A*B 的是_。(分数:2.00)A.和B.和C.和D.和28.有如下类定义: class AA int a; public: AA(int n=0):a
14、(n) ; class BB:public AA public: BB(int n)_ ; 其中横线处缺失部分是_。(分数:3.00)A.:a(n)B.:AA(n)C.a(n);D.a=n;29.有如下两个类定义: class XX private: double x1; protected: double x2; public: double x3; ; class YY: protected XX private: double y1; protected: double y2; public: double y3; ; 在类 YY 中保护成员变量的个数是_。(分数:1.00)A.1B.2
15、C.3D.430.有下列程序: #include stdio.h int b=2; int fun(int*k) b=*k+b;return(b); void main() int a10=1,2,3,4,5,6,7,8,i; for(i=2;i4;i+)b=fun(ai)+b;printf (“%d“,b);) printf(“/n“); 程序运行后的输出结果是_。(分数:2.50)A.10 12B.8 10C.10 28D.10 1631.下列关于数据库设计的叙述中,正确的是_。(分数:1.00)A.在需求分析阶段建立数据字典B.在概念设计阶段建立数据字典C.在逻辑设计阶段建立数据字典D.
16、在物理设计阶段建立数据字典32.下列函数的运行结果是 _ 。 #includeiostream.h int f(int a,int b) int c; if(ab) c=1; else if(a=b)c=0 elsec=-1; return(c); void main() int i=2,j=3; int p=f(i,j); coutp:(分数:1.00)A.-1B.1C.2D.编译出错,无法运行33.已知 n 是一个 int 型变量,下列语句中错误的是_ 。(分数:2.00)A.long *p=new long n;B.long pn;C.long *p=new long (n);D.lon
17、g p1034.下列程序的运行结果为 #includeiostream.h templateclass TT class FF TTa1,a2,a3; public: FF(TT b1,TT b2,TT b3) a1b1;a2b2;a3b3; TT Sum( ) return a1a2a3; void main( ) FF int x(int(1.1) ,2,3) ,y(int(4.2) ,5,6) ; cout x. Sum( ) “ “ y. Sum( ) endl;(分数:2.00)A.6.1 15.2B.6 15C.6 15.2D.6.1 1535.下列关于 dowhile 语句的叙述
18、中,正确的是_。(分数:2.50)A.dowhile 语句所构成的循环不能用其他语句构成的循环来代替B.dowhile 语句所构成的循环只能用 break 语句跳出C.dowhile 语句所构成的循环只有在 while 后面的表达式非零时才结束D.dowhile 语句所构成的循环只有在 while 后面的表达式为零时才结束36.C+语言中标点符号中表示一条预处理命令开始的是(分数:1.00)A.#B.;C.*D.37.数据处理的最小单位是_。(分数:1.00)A.数据B.数据元素C.数据项D.数据结构38.有如下类定义: class Foo public: Foo(int v):value(v
19、) / Foo() / private: Foo() / int value=0; / ; 其中存在语法错误的行是_。(分数:1.00)A.B.C.D.二级 C+-230 答案解析(总分:65.50,做题时间:90 分钟)一、选择题(总题数:38,分数:65.50)1.关于函数中的返回类型,下列表述中错误的是 _ 。(分数:2.00)A.返回类型中有可能包含关键字 intB.返回类型中有可能包含自定义标识符 C.返回类型中有可能包含字符*D.返回类型中可能包含口解析:解析 返回类型又称函数类型,表示一个函数所计算(或运行)的结果值类型,这里的类型可以是预定义类型(如 int)、复合类型(如 d
20、ouble*)、用户定义类型(如枚举类),若返回值只做更新(或设置)等操作,则该函数返回类型为 void 类型,函数类型和内置数组不能作为返回类型,但类类型和容器类型可以被直接返回。2.有如下程序: #includeiostream using namespace std; void fl(intx,inty) int z=x;x=y;y=z; void f2(int x,int y) int z=x;x=y;y=z; int main() int x=10,y=26; f1(x,y); f2(x,y); coutyendl; return 0; 运行时的输出结果是_。(分数:2.50)A.1
21、0 B.16C.26D.36解析:解析 该题考查了函数参数传递的两种方式:引用传递和值传递。引用传递时 x 和 y 会交换,而值传递时二者不交换,因此选 10。3.已知在一个类体中包含如下函数原型:VOLUMEOPER ATOR-(VOLUME)const;,下列关于这个函数的叙述中,错误的是_。(分数:1.00)A.这是运算符一的重载运算符函数B.这个函数所重载的运算符是一个一元运算符 C.这是一个成员函数D.这个函数不改变类的任何数据成员的值解析:解析 本题考核运算符的重载。题中语句为运算符一这是一个二元运算符,且是作为常成员函数来重载的,所以它不能更新对象的数据成员,也不能调用该类中没有
22、用 const 修饰的成员函数。4.有如下类声明: class Foo int bar; 则 Foo 类的成员 bar 是_。(分数:2.00)A.公有数据成员B.公有成员函数C.私有数据成员 D.私有成员函数解析:解析 此题考查的是类的定义。在定义类的成员变量时,如果没有使用关键字;所有成员默认定义为 private 私有权限。5.已知函数 FA 调用 FB,若要把这两个函数定义在同一个文件中,则_。(分数:2.00)A.FA 必须定义在 FB 之前B.FB 必须定义在 FA 之前C.若 FA 定义在 FB 之后,则 FA 的原型必须出现在 FB 的定义之前D.若 FB 定义在 FA 之后,
23、则 FB 的原型必须出现在 FA 的定义之前 解析:解析 在 C+中,在调用任何函数之前,必须确保它已有原型说明。函数原型说明通常放在程序文件的头部,以使得该文件中所有函数都能调用它们。在本题中,当函数 FA 调用 FB 时,函数 FB 可以定义在 FA 的后面,但是 FB 的原型必须出现在 FA 的定义之前,因而选项 D 为正确答案。6.下列叙述中正确的是_。(分数:1.00)A.栈是一种先进先出的线性表B.队列是一种后进先出的线性表C.栈与队列都是非线性结构D.以上三种说法都不对 解析:解析 栈是一种先进后出的线性表,队列是一种先进先出的线性表,栈与队列都是线性结构。7.下列关于派生类构造
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 C230 答案 解析 DOC
