1、国家二级( C+)笔试模拟试卷 247及答案与解析 1 下面概念中,不属于面向对象方法的是 ( A)对象 ( B)继承 ( C)类 ( D)过程调用 2 以下关于顺序存储结构的叙述中, ( )是正确的。 ( A)每个结点中至少包含一个指针域 ( B)逻辑上相邻的结点物理上不必邻接 ( C)可用于栈、队列、树等逻辑结构的存储表示 ( D)插入、删除运算操作不方便 3 4 5 栈底至栈顶依次存放元素 A、 B、 C、 D,在第五个元素 E入栈前,栈中元素可以出栈,则出栈序列可能 是 ( )。 ( A) ABCED ( B) DCBEA ( C) DBCEA ( D) CDABE 6 数据库系统的核
2、心是 _ 。 ( A)数据模型 ( B)数据库管理系统 ( C)数据库 ( D)数据库管理员 7 下面不属于软件设计原则的是 ( A)抽象 ( B)模块化 ( C)自底向上 ( D)信息隐蔽 8 以下函数调用语句中实参的个数是 ( )。 excc(v1,v2), (V3, v4, V5), V6); ( A) 3 ( B) 4 ( C) 5 ( D) 6 9 下面关于对 象概念的描述中, ( )是错误的。 ( A)对象就是 C语言中的结构体变量 ( B)对象代表着正在创建的系统中的一个实体 ( C)对象是一个状态和操作 (或方法 )的封装体 ( D)对象之间的信息传递是通过消息进行的 10 “
3、商品 ”与 “顾客 ”两个实体集之间的联系一般是 ( A)一对一 ( B)一对多 ( C)多对一 ( D)多对多 11 重载输入流运算符必须使用的原型为 ( A) ostream& operator (ostream&,类名 ); ( B) istream& operator (istream&,类名 &); ( C) ostream operator (ostream,类名 &); ( D)类名 operator (istream&,类名 &); 12 下列运算符中, ( )运算符在 C+中不能重载。 ( A) & ( B) ( C) : ( D) new 13 在 ios中提供控制格式的标
4、志位中, ( )是转换为十六进制形式的标志位。 ( A) hex ( B) oct ( C) dec ( D) left 14 下列关于虚函数的描述中,正确的是 ( )。 ( A)虚函数是一个 static类型的成员函数 ( B)虚函数是一个非成员函数 ( C)基类中采用 virtual说明一个虚函数后,派生类中定义相同原型的函数时可不必加 virtual说明 ( D)派生类中的虚函数与基类中相同原型的虚函数具有不同的参数个数或类型 15 解决类继承中产生的二义性的方法不包括 ( A)使用作用域运算符限定访问的成员函数 ( B)在派生类中定义同名函数,且参数表必须和基类的保持一致 ( C)在派
5、生类中定义同名函数,且参数表可以和基类的不同 ( D)采用虚基类解决多重继承中的 共同基类产生的二义性 16 在某类的公共部分有声明 string operator+( );和 string operator+(int);则说明 ( A) string operator+( );是前置自增运算符声明 ( B) string( )perator+( );是后置自增运算符声明 ( C) string operator+(int);是前置自增运算符声明 ( D)两条语句无区别 17 以下叙述中正确的是 ( )。 ( A)构成 C+语言程序的基本单位是类 ( B)可以在一个函 数中定义另一个函数 (
6、C) main()函数必须放在其他函数之前 ( D)所有被调用的函数一定要在调用之前进行定义 18 有以下程序段: #include #define MAX(x, y)(x)(y)?(x): (y) void main() int ij, k; i=10; j=15; k=MAX(i,j)*10; couty)?(x): (y)是当 x大于 y时取 x,否则取 y。当 i=10, j=15时, “MAX(ij)”的值为 15,所以 “k=MAX(ij)*10; ”答案为: 150。 19 【正确答案】 A 【试题解析】 采用保护继承方式,基类成员对子类的对象都不可见的,子类成员的公有成员对子类
7、的对象是可见的。 20 【正确答案】 B 【试题解析】 内联函数主要解决的是程序的运行效率问题,但是内联函数在时间上的节省是以最终目标代码规模的增加为代价的。 21 【正确 答案】 B 22 【正确答案】 A 【试题解析】 本题考查的是文件流的操作, app 表示追加方式打开文件 (即将指针移至文件尾 ), bi- naw 表示以二进制方式打开文件。 23 【正确答案】 C 24 【正确答案】 C 25 【正确答案】 A 【试题解析】 本题考核 C+的标识符定义。 C+规定标识符由大小写字母、数字字符 (0 9)和下划线组成,并且以字母或下划线开始,后跟 0个或多个字母、数字字符或下划线。由此
8、可知 A) 选项中的连接符不能用于组成标识符。 26 【正确答案】 A 【试题解析】 本题考核派生类的应用。本题中类 A和类 B 都是基类。而类 C从类 A公有派生,从类 B 处私有派生。所以类 C中的函数成员可以访问类 A和类 B中的公有成员。在类 C的函数成员 setc中,调用基类 A的函数成员 seta对 A的数据成员 a赋值,还调用了基类 B 的函数成员 setb对类 B 的数据成员 b 赋值,然后对类 C自己的数据成员 c赋值。在类 C的函数成员 showc中,调用基类 A的函数成员 showa显示数据成员 a的值,还调用基类 B 的函数成员 showb 显示数据成员b 的值,然后输
9、出类 C自己的数据成员 c的值。在主函数 main 中,先定义派生类的对象 c,然后调用 setc对 c中的数据成员赋值,然后输出赋值结果。所以程序最后输出应该为: 1, 2, 3。 27 【正确答案】 C 28 【正确答案】 C 【试题解析】 本题中,先将 x转换为浮点型再与 3 8相加,得到结果与 5 0相除。最后将得到的结果去掉小数位化成整型数据赋给 y。另外,值得注意的是,整型、实型、字符型数据间可以混合运算。在进行运算时,不同类型的数据先转换成同一类型,然后再进行运算。注意:如果认为执行 y=(x+3 8)/5 0后 y的值为1是错误的,此时 y的值为 0。注意 : x为 int型,
10、将 1 2赋值给 x时, x的值为1。 29 【正确答案】 A 【试题解析】 本题是一道简单的成员函数应用题,考生只要按着主函数中生成的类 Rectangle的对象 r1 进行成员函数的调用即可得到答案。 30 【正确答案】 A 【试题解析】 类中默认的类型是私有类型,除非特别指定为公有或保护类型。同时,并没有强制要求成员函数和数据成员的排列顺序,如果类的成员函数在类定义体内部定义,则为内联函数,一般类的成员函数都在类定义体的外部实现。 31 【正确答案】 C 【试题解析】 构造函数和析构函数系统可以自动调用。先执行其基类构造函数,输出 1;执行派生类的构造函数,输出 3;执行派生类析构函数,
11、输出 4;执行基类析构函数,输出 2。 32 【正确答案】 B 33 【正确答案】 A 【试题解析】 本题考查的是 C+流的一些概念。从输入流中提取数据赋给一个变量的操作称为提取操作;而把表达式的值插入到输出流中的操作称为插入操作。故选项 B 的说法不正确。 cin 是一个预定义的输入流对象而不是流类,故选项 C不正确。只有文件流中有一个 open成员函数,用来打开一个文件,而输入、输出流中没 有 open 成员函数,选项 D的说法不正确。所以,只有选项 A是正确的,应该选择 A。 34 【正确答案】 B 【试题解析】 本题考查的知识点是:构造函数。如果一个类中没有定义任何构造函数,编译器将生
12、成一个不带参数的公有缺省构造函数。但只要定义了一个任意的构造函数,就不会生成缺省构造函数了。故本题应该选择 B。 35 【正确答案】 A 【试题解析】 语句 while(int i=O)是重新定义了一个变量 i,并赋值为 O,因此while循环条件为假,不执行循环体,所以不会输出 “*”。 36 【正确答 案】 template class T1, class T2 class dataClass 【试题解析】 类模板声明的一般格式为: template typename 类型参数 Class 类名 类成员声明 ; 其中类型参数可以为多个。题中出现了两个类型参数 T1、 T2,故应该在类模板的
13、头部声明中声明两个类型参数 T1、 T2。 37 【正确答案】 10-10 【试题解析】 引用声明相当于是为变量声明一个别名,所以 r=x=10。 38 【正确答案】 * P 【试题解析】 C+语法规定。 39 【正确答案】 AAB 【试题解析】 CA a生成一个 cA类对象 a,调用 CA的构造函数一次,打印 A。CB b 中的 b是派生类,在构造时先调用基类的构造函数,然后调用派生类的构造函数,故先打印 A后打印 B。 40 【正确答案】 软件开发 41 【正确答案】 stack-top或 stacktop-=1或 stacktop=top-1 【试题解析】 本题考核类模板函数 pop 的
14、的功能栈顶元素,所以在函数体内应该完成的动作是弹出元素 stack(top-1,然后将 top做减 1一操作,由于只有一处空格,所以这两操作要在一条语句中完成。 42 【正确答案】 良好 优秀 良好 【试题解析】 本题主要考察 switch 语句中 break 语句的使用。由于 case A和 case B之间没有 break 语句,导致在输出 “优秀 ”之后顺序执行并输出了 “良好 ”,这与原来的设计思路是不符的。 43 【正确答案】 类 【试题解析】 C语言面向对象程序设计的基本组成单元是 class,面向过程的程序设计的基本组成单元是函数。 44 【正确答案】 25 45 【正确答案】
15、1000 46 【正确答案】 0 2 4 6 8 10 12 14 16 18 47 【正确答案】 15 5 6 48 【正确答案】 x.operator-() 【试题解析】 本题考核运算符函数的两种调用方式。假定已经作为某个类的成员函数重载了二元运算符 +,且 c1、 c2 都是该类的对象,则 c1 operator+(c2)与c1+c2函数相同。如果 +作为该类的非成员函数重载,则 operator+(c1, c2)与c1+c2相同。 49 【正确答案】 m 13, n 3 【试题解析】 本题考察引用作为形参进行参数传递的知识。 max函数的功能是返回较大的那个数,而 max(m, n)+的作用是将较大值再进行增一运算。 50 【正确答案】 int CalArea( ) 【试题解析】 在基类中不能对虚函数给出有意义的实现,而把它说明为纯虚函数,它的实现留给该基类的派生类去做,这就是纯虚函数的作用。所以本题应该填写 int calArea( )。
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1