[计算机类试卷]国家二级(C++)机试模拟试卷181及答案与解析.doc
《[计算机类试卷]国家二级(C++)机试模拟试卷181及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级(C++)机试模拟试卷181及答案与解析.doc(31页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级( C+)机试模拟试卷 181及答案与解析 一、选择题 1 设数据结构 B (D, R),其中 D: a, b, c, d, e, f R: (f, A), (d, B), (e, D), (e, e), (a, C) 该数据结构为 ( )。 ( A)线性结构 ( B)循环队列 ( C)循环链表 ( D)非线性结构 2 下列叙述中错误的是 ( )。 ( A)循环队列空的条件是队头指针与队尾指针相同 ( B)若二叉树没有叶子结点,则为空二叉树 ( C)带链栈的栈底指针是随栈的操作而动态变化 的 ( D)若带链队列中只有一个元素,则队头指针与队尾指针必定相同 3 某带链栈的初始状态为 to
2、p bottom NULL,经过一系列正常的入栈与退栈操作后, top bottom 20。该栈中的元素个数为 ( )。 ( A) 1 ( B) 0 ( C) 20 ( D)不确定 4 设一棵度为 3的树,其中度为 2, 1, 0的结点数分别为 3, 1, 6。该树中度为 3的结点数为 ( )。 ( A) 1 ( B) 2 ( C) 3 ( D)不可能有这样的树 5 下面描述错误的是 ( )。 ( A)模块的独立性与模 块的信息隐蔽和局部化无关 ( B)内聚性和耦合性是模块独立程度的定性度量标准 ( C)一个模块的内聚性越高则该模块的独立性越强 ( D)一个模块的耦合性越高则该模块的独立性越弱
3、 6 下面属于黑盒测试方法的是 ( )。 ( A)错误推测法 ( B)基本路径测试 ( C)判定覆盖 ( D)条件覆盖 7 下面模型中为概念模型的是 ( )。 ( A)实体一联系模 ( B)层次模型 ( C)关系模型 ( D)网状模型 8 学生关系模式中有 D(D#, Dn, D1, DAddr)(其属性分别为系编号、系名 称、系主任和系地址 )和 S(S#, Sn, SG, Date, Maj, D#)(其属性分别为学号、姓名、性别、入学日期、专业和系编号 )两个关系,关系 S的主键 (码 )是 S#,关系 S的外键(码 )是 ( )。 ( A) D# ( B) Maj ( C) D1 (
4、D) Dn 9 关系的实体完整性要求关系中不能为空的属性是 ( )。 ( A)主键属性 ( B)外键属性 ( C)全部属性 ( D)候选键属性 10 学生选修课程的关系模式为 Sc(S#, Sn, Sd, Sa, C#, G)(其属性分别为学号、姓名、所在系、年龄、课程 号和成绩 ); C(C#, Cn, P#)(其属性分别为课程号、课程名、先选课 )。关系模式中包含对主属性部分依赖的是 ( )。 ( A) S#Sd ( B) (S#, C#)G ( C) C#Cn ( D) C#P# 11 已知类 X中一个成员函数的原型声明为 “void Copy(X& r); ”,则下列选项中,解释正确的
5、是 ( )。 ( A) r为指向类 X的指针 ( B) r的地址值赋值给了变量 Copy ( C)变量 X与 r按位与的结果作为函数 Copy的参数 ( D) r是类 X的对象引用,用来作为函数 Copy的形参 12 下列字符串中不能作为 C标识符使用的是 ( )。 ( A) IN25 ( B) test ( C) 1481 ( D) 123 13 下列语句中能正确定义变量的是 ( )。 ( A) const int*p NULL; ( B) const int y 99; ( C) const int x 0; ( D) const int z: 100; 14 有如下程序: #includ
6、e iostream using namespace std; int main( ) int sum 0: for(int i 1; i 4; i ) for(int j i; j 4; j )sum j; cout sum end1; return 0; 运行时的输出结果是 ( )。 ( A) 15 ( B) 17 ( C) 16 ( D) 14 15 下列语句中,能够进行正确初始化的是 ( )。 ( A) char str “abcde“; ( B) char*str “abcde“; ( C) char str4 “abcde“; ( D) char str5 “abcde“; 16
7、有如下程序段: #include iostream using namespace std; int i 1; int j 4; int main( ) int i 5; j i; cout i j end1; return 0; 运行时的输出结果是 ( )。 ( A) 14 ( B) 95 ( C) 59 ( D) 55 17 下列关于运 算符重载的叙述中,错误的是 ( )。 ( A)重载运算符时能够改变运算符原有的优先级 ( B)有些运算符不能作为普通函数重载 ( C)重载运算符时不能改变运算符原有的操作数个数 ( D)加法运算符重载为成员函数时形参表只有一个参数 18 下列运算符函数中肯
8、定不属于类 Can的成员函数的是 ( )。 ( A) int operator (Can, Can); ( B) Can operator (double); ( C) int operator (Can); ( D) Can operator (int); 19 下列因素中,对 C编译器区分重载函数无任何意义的是 ( )。 ( A)常成员函数关键字 const ( B)返回值类型 ( C)参数类型 ( D)参数个数 20 有如下程序: #include iostream using namespace std; class Date public: Date(int y 2014, int
9、m 9, int d 9): year(y), month(m), day(d) _(ostream&stream, Date&ddd)运算符的定义 stream ddd year ddd month ddd day: return stream; private: int year, month, day; ; int main( ) Date GoodDay; cout GoodDay end1: return 0; 若运行时的输出结果是 “2014 9 9”,横线处的内容应为 ( )。 ( A) istream&operator ( B) ostream&operator ( C) fr
10、iend istream&operator ( D) friend ostream&operator 21 已知函数 fune的原型为 int func(int, int); 则下列选项中,不能作为它的重载函数原型的是 ( )。 ( A) bool func(int, int, b001); ( B) void func(int a, int b); ( C) int func(int, char); ( D) float func(double, int); 22 已知表达式 x中的 “ ”是作为成员函数重载的运算符,则与 x等效的运算符函数调用形式为 ( )。 ( A) x operato
11、r (1) ( B) operator (x) ( C) x operator () ( D) x operator (X) 23 有如下程序: #include iostream using namespace std; void fun(int &x, int y) int temp; temp x: x y: y temp: int main( ) int x 4, y 5; fun(x, y); cout x , y; return 0: 运行后的输出结果是 ( )。 ( A) 4, 5 ( B) 5, 4 ( C) 4, 4 ( D) 5, 5 24 有如下程序: #include
12、iostream using namespace std; int f1(int x, int y 5)return x y; int f1(double x)return x; int main( ) int a 3; double b 2 5: cout f1(a) f1(b); return 0; 运行后的输出结果是 ( )。 ( A) 5 ( B) 6 ( C) 10 ( D) 11 25 有如下类定义: class MyClass public: MyClass(int d 0): val(d) _运算符函数的声明 private: int val; ; 若要使语句序列 MyClas
13、s X(2), y(4), z; z 7 y: y x 3: 能够正常运行,横线处的声明语句应为 ( )。 ( A) friendMyClass operator (MyClass, MyClass); ( B) friendMyClass operator (MyClass&, MyClass&); ( C) friendMyClass operator (MyClass, MyClass&); ( D) friendMyClass operator (MyClass&, MyClass); 26 已知函数 func的原型为 int func(int, int); 则下列选项中,不能作为它的
14、重载函数原型的是 ( )。 ( A) bool func(int, int, char); ( B) int func(int, char); ( C) float fune(int a, int); ( D) double func(double, int); 27 已知表达式 x中的 “ ”是作为成员函数重载的运算符,则与 x等效的运算符函数调用形式为 ( )。 ( A) x operator (1) ( B) operator (x) ( C) x operator (x, 1) ( D) x operator () 28 计算数列第 n项的函数定义如下: int fa(int n) i
15、f(n 1)return 1; else return 3*fa(n 1) 2; 若执行函数调用表达式 fa(4)时,返回的函数值为 ( )。 ( A) 53 ( B) 17 ( C) 23 ( D) 49 29 计算斐波那契数列第 n项的函数定义如下: mt fib(int n) if(n 0) return 1: else if(n 1) return 2: else return fib(n 1) 6b(n 2); 执行调用表达式 fib(2),则函数 fib被调用的次数是 ( )。 ( A) 1 ( B) 2 ( C) 3 ( D) 4 30 有如下程序: #include lostr
16、eam using namespace std; double add(double a, double b, double c 1) return a b c: int main( ) int result add(2, 3); cout result end1: return 0: 运行后的输出结果是 ( )。 ( A) 3 ( B) 5 ( C) 6 ( D)编译出错 31 下列关于多个成员对象构造函数调用顺序的叙述中,正确的是 ( )。 ( A)与成员对象在类中声明的顺序相同 ( B)与成员对象的析构函数的调用顺序相同 ( C)与成员对象在初始化列表中的初始化顺序相同 ( D)与成员对
17、象在构造函数体中被调用的顺序相同 32 有如下类定义和对象定义: class A public: A( ): data(0) A(int x): data(x) A( ) int GetData( )constreturn data; void SetData(int n)data n; prirate: int data: ; const A a(5); A b(8); 下列函数调用中错误的是 ( )。 ( A) a GetData( ); ( B) a SetData; ( C) b GetData; ( D) b SetData; 33 在 C中,编泽系统自动为一个类生成默认构造函数的条
18、件是 ( )。 ( A)该类没有定义任何有参构造函数 ( B)该类没有定义任何无参构造函数 ( C)该类没有定义任何构造函数 ( D)该类没有定义任何成员函数 34 下列关于构造函数的叙述中,错误的是 ( )。 ( A)构造函数在创建类对象时自动执行 ( B)构造函数要负责对所有数据成员进行初始化 ( C)可以为构造函数的参数设置默认值 ( D)如果没有声明任何构造函数,则该类的构造函数 有 2个 35 下列关于构造函数的叙述中,正确的是 ( )。 ( A)每个类中都有一个复制构造函数 ( B)类成员的初始化在构造函数体中进行 ( C)创建对象时由用户负责调用构造函数 ( D)默认构造函数是指
19、参数表为空的构造函数 36 下列关于类成员的叙述中,正确的是 ( )。 ( A)友元函数是类的成员函数 ( B)类成员的默认访问权限是私有的 ( C)类的成员函数都是内联函数 ( D)类成员函数必须声明为公有的 37 下列关于 this指针的叙述中,正确的是 ( )。 ( A)类的成 员函数都有 this指针 ( B)类的友元函数都有 this指针 ( C)类的非静态成员函数具有 this指针 ( D)任何与类相关的函数都有 this指针 38 有如下程序: #include iostream using namespace std; class clock public: clock( ):
20、 seconds(O) ; clock&operator ( ) this seconds; return * this; void display( ) cout this seconds : private: int seconds; ; int main ( ) clock c; c: c display( ); ( ( c) display( ); c display( ); return 0; 运行后的输出结果是 ( )。 ( A) 1 3 2 ( B) 1 3 3 ( C) 1 2 3 ( D) 1 2 2 39 下列关于构造函数的叙述中,错误的是 ( )。 ( A)构造函数名与类
21、名相同 ( B)构造函数可以有返回值 ( C)构造函数可以重载 ( D)每个类都有构造函数 40 下列关于 this指针的叙述中,错误的是 ( )。 ( A) this指针只能在类的非静态成员函数中使用 ( B) this指针存储着对象的地址 ( C) this指针不需要显式定义 ( D)在构造函数中不能使用 this指针 二、基本操作题 41 请使用 VC6或使用【答题】菜单打开考生文件夹 proj1下的工程 proj1,此工程中含有一个源程序文件 proj1 cpp。其中位于每个注释 “ ERROR *found*”之后的一行语句存在错误。请改正这些错误,使程序的输出结果为: Constr
22、uctor called The value is 10 Copy constructor called The value is 10 Destructor called Destructor called 注意:只修改注释 “ ERROR *found*”的下一行语句,不要改动程序中的其他内容。 proj1 cpp #include iostream using namespace std; class MyClass public: ERROR*found* MyClass(int i) value i; cout “Constructor called “ end1; ERROR *f
23、ound* MyClass(const MyClass p) value P value; cout “Copy constructor called “ end1; void Print() cout “The value is“ alue end1; ERROR*found* void MyClass() cout “Destructor called “ end1; private: int value; ; int main() MyClass obj1; obj1 Print(); MyClass obj2(obj1); obj2 Print(); return 0; 三、简单应用题
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 模拟 181 答案 解析 DOC
