[计算机类试卷]国家二级C++机试(选择题)模拟试卷125及答案与解析.doc

上传人:towelfact221 文档编号:497801 上传时间:2018-11-30 格式:DOC 页数:24 大小:61KB
下载 相关 举报
[计算机类试卷]国家二级C++机试(选择题)模拟试卷125及答案与解析.doc_第1页
第1页 / 共24页
[计算机类试卷]国家二级C++机试(选择题)模拟试卷125及答案与解析.doc_第2页
第2页 / 共24页
[计算机类试卷]国家二级C++机试(选择题)模拟试卷125及答案与解析.doc_第3页
第3页 / 共24页
[计算机类试卷]国家二级C++机试(选择题)模拟试卷125及答案与解析.doc_第4页
第4页 / 共24页
[计算机类试卷]国家二级C++机试(选择题)模拟试卷125及答案与解析.doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

1、国家二级 C+机试(选择题)模拟试卷 125及答案与解析 一、选择题 1 数据结构主要研究的是数据的逻辑结构、数据的运算和 ( )。 ( A)数据的方法 ( B)数据的存储结构 ( C)数据的对象 ( D)数据的逻辑存储 2 一棵二叉树的前序遍历结果是 ABCEDF,中序遍历结果是 CBAEDF,则其后序遍历的结果是 ( )。 ( A) DBACEF ( B) CBEFDA ( C) FDAEBC ( D) DFABEC 3 在数据处理中,其处理的最小单位是 ( )。 ( A)数据 ( B)数据项 ( C)数据结构 ( D)数据元素 4 在数据库系统的内部结构体系中,索引属于 ( )。 ( A

2、)模式 ( B)内模式 ( C)外模式 ( D)概念模式 5 以下 ( )不属于对象的基本特征。 ( A)继承性 ( B)封装性 ( C)分类性 ( D)多态性 6 数据库系统的核心是 ( )。 ( A)数据模型 ( B)软件开发 ( C)数据库设计 ( D)数据库管理系统 7 开发软件 所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做 ( )。 ( A)软件矛盾 ( B)软件危机 ( C)软件藕合 ( D)软件产生 8 关系模型允许定义 3类数据约束,下列不属于数据约束的是 ( )。 ( A)实体完整性约束 ( B)参照完整性约束 ( C)属性完整性约束 ( D)用户自定义的完整性约

3、束 9 关系表中的每一行记录称为一个 ( )。 ( A)字段 ( B)元组 ( C)属性 ( D)关键码 10 在数据库管理技术的发展中,数据独立性 最高的是 ( )。 ( A)人工管理 ( B)文件系统 ( C)数据库系统 ( D)数据模型 11 下列语句中,错误的是 ( )。 ( A) const int buffer=-256; ( B) const int temp; ( C) const double*point; ( D) const double*rt=new double(5 5); 12 下列变量名中,合法的 ( )。 ( A) CHINA ( B) byte-size (

4、C) double ( D) A+a 13 在进行任何 C+流的操作后,都可以用 C抖流的有关成员函数检测流的状态;其中只能用于检测输入流状态的操作函数名称是 ( )。 ( A) fail ( B) eof ( C) bad ( D) good 14 对于语句 cout main() int m=5; ifj(m+5) cout void main() intx; cinx; if(x+5) cout using namespace std; int i=1; class Fun public: static int i; int value()return i-1; int valueoco

5、nstreturn i+1; ; int Fun: i=2; int main() int i=3: Fun fun1; constFun fun2; retum 0: 若程序的输出结果是: 123 则程序中横线处的语句是 ( )。 ( A) cout void main() int i(0); while(+i) if(i=10)break; if(i 3!=1) continue; cout using namespace std; class A ( public: AOcout #include“string h“ void main() char a=“Hello Test“, b=

6、“Test“; strcpy(a, b); cout void main() char str25=“1234“, “5678“, *p2; int i, j, s=0; for(i=0; i 0; j+=2) s=10*s+pij-0; cout using namespace std; void fun(char*q) +q; cout int fun(int); void main() inta=2, i; for(i=0; i using namespace std; int a; int fun(); int main() extem int a; intb: a=10; b=fun

7、(); cout using namespace std; class TestClass1 public: TestClass1()cout5成立 (此时 m的值变为 6),所以执行语句cout5不成立,因为 “+”后缀,之后 x的值变为 5,执行语句 COHt5成立,所以执行语句 coutxendl:输出7。 17 【正确答案】 D 【试题解析】 this指针不能在程序中修改,不能被幅值;静态成员没有 this指针,因为类中只有一个静态成员函数实例,使用 this指针无意义。 18 【正确答案】 A 【试题解析】 函数模板是一系列相关函数的模型或样板,这些函数的源代码形式相同,只是所针对的

8、数据类型不同。因此,函数模板使一个函数可以定义成对许多不同数据类型完成同一个任 务。 19 【正确答案】 A 【试题解析】 此题因为定义的变量 i是 static类型的 (main()函数内部的 i只是一个局部变量 ),所以,选项 A)中 funl value()的返回值是 1, Fun: i引用的是外部变量会输出 2; fun2 value();会调用常成员函数 int value()constretun i+1; 使得外部静态变量 i的值增加为 3,故输出 3。 20 【正确答案】 A 【试题解析】 选项 A)中,重载函数中是允许使用默认参数的;为了使重载函数有意义,不要使用重载函数来描述

9、毫 无相干的函数;重载函数中编译是根据参数表进行选择,包括参数的个数和类型。 21 【正确答案】 D 【试题解析】 对象之间的信息传递是通过消息进行的。对象 =方法 (函数 )+属性(数据 ),而 C语言的结构体其实就是不同类型数据的组合。并没有处理数据的方法。 22 【正确答案】 A 【试题解析】 在 C+中,科学计数法表示小数的方法: E(e)左右必须有数,且E(e)的右侧只能为整数。 23 【正确答案】 C 【试题解析】 在 C+中定义二维数组时并赋值,则数组的行数可以省略不写。选项 A)、 B)、 D)均是字符字符串初始化。 24 【正确答案】 A 【试题解析】 语句 “int*p5”

10、表示一个数组 p,它的大小是 5,里面存放的数据类型是 int*,也就是整型指针。称之为指针数组 (从右向左解析这个表示 )。 25 【正确答案】 A 【试题解析】 从 if(i=10)break;语句了解本循环只到 10,输出 i的条件是只要1-10之间的数对 3取余为 1的输出,所以输出的 1 4 7。 26 【正确答案】 D 【试题解析】 此题中,语句 C obj对象初始化首先调用基类的构造函数 A(),输出 “A”,其次是 C类中对象的构造函数的调用,即调用 B(),输出 “B”;最后是调用自身的构造函数 C(),输出 “C”。 27 【正确答案】 B 【试题解析】 程序中首先定义字符

11、数组 a和 b,其值分别为 “Hello Test”和“Test”。然后利用 strcpy复制函数,将 b的值复制给 a,所以输出 a的结果为Test。 28 【正确答案】 A 【试题解析】 程序中的 “for(i=0; i2; i+)pi=stri; ”语句将 str中的值赋值给指针数组 p。在接下来的二重 for循环中,跳 取 “j+=2”, p指针指向的值即 “1”,“3”, “5”, “7”。在分别对字符到整型的转换,即减去字符 0,然后依次转换为干位,百位,十位,个位 “10*s”操作输出整型 s,即 “1357”。 29 【正确答案】 C 【试题解析】 由程序 main主函数入手,

12、调用 fun函数,在 fun函数中执行“cout*qendl; ”语句实现程序输出。主函数中变量 char*s为指针数组,chat *p表示 p指向的字符指针数据。 *p就代表 p指向的字符指针。语句“p=s; ”表明 p指向字符指针 s,而 *p则是 s中的第一个字符串 “HI”。主函数将变量 p传值给函数 fun(char*q)中的 q,在函数体内部首先执行 “+q”语句,就是将 q的指针指向 s中的下一个字符串,即 “HELLO”,所以输出语句“cout*qendl: ”输出该字符串值。 30 【正确答案】 A 【试题解析】 由程序中的主函数 main入手,调用 fun函数。其中第一个实

13、参为数组 a的名字,数组名作为实参,传递的是数组的起始地址。所以在 fun函数中指针 p指向了数组的第一个元素 a0。另外实参整型 i传递的是引用,也就是 i的地址。在 fun函 数中在 for循环中,依次将当前元素 pi与 j指针值为标识的 p*j进行比较,取较大的。最后循环后的结果就是 p存放数组中的最大值,并且指针 j为该值的标识位。可以看出数组的最大值是 9标识位为 2。 31 【正确答案】 C 【试题解析】 主函数中在 for循环中依次调用 fun函数。其中 c为静态变量,到程序结束有效。第一次循环中 2+1+4=7,第二次循环 20+1+5=8,第三次循环2+1+6=9。即答案为

14、7 8 9。 32 【正确答案】 C 【试题解析】 由主函数 main入手,首先定义外部变量 a,它的作用域为从变量的定义处开始,到本程序文件的末尾,赋值为 10。然后调用 fun函数,在 fun函数中计算 10*a,其中 a的作用域为到文件结尾,所以这里的 a为 10,即 10*10。 33 【正确答案】 B 【试题解析】 静态数据成员不能在参数初始化表对静态数据成员初始化,只能在类体外进行初始化。 34 【正确答案】 B 【试题解析】 派生类中构造函数的执行顺序是:先调用基类构造函数,对基类数据成员初始化,然后调用子对象构造函数,对子对象数据成员初始化;最后执行派生类构造函数本身,对派生类

15、数据 成员初始化。由主函数 main入手,首先定义了一个 TestClass2对象 obi。其中 TestClass2公共继承 TestClass1,对象 obi可以访问 TestClass1中的公有成员函数。 TestClass2中定义了一个 TestClass1的指针p,给 p分配新空间,即指向类 TestClass1,输出 “TestClass1”。在 TestClass2的构造函数中首先输出 “TestClass2”,并在 TestClass1构造函数中输出“TestClass1”。 TestClass2析构函数中输出 “ TestClass2”,删除指针 p,输出 “TestClas

16、s1”。析构 TestClass1输出 “ TestClass1”。 35 【正确答案】 B 【试题解析】 题目中程序 TestClass为基类, TestClass1为派生类,派生类构造函数的一般形式为:派生类构造函数名 (总参数类表 ):基类构造函数名 (参数列表 )派生类中新增数据成员初始化语句 。派生类 TestClass1的基类函数名为TestClass,总参数为 int a, int b,所以选择 B)。 36 【正确答案】 B 【试题解析】 程序中的 TestClass1为 TestClass的派生类,如果不写继承方式,则默认为 private,所以 TestClass 1私有继

17、承 TestClass,对于基类中的保护成员,继承类的访问权限为 private。所以选择 B)。 37 【正确答案】 D 【试题解析】 基类的公有成员和保护成员在保护派生类中都成了保护成员,其私有成员仍为基类私有。 38 【正确答案】 B 【试题解析】 此题考查的是 C+语言中对象概念的理解。所谓封装性是指将数据和算法捆绑成一个整体,这个整体就是对象。 C+语言通过建立 用户定义类型 “类 ”来支持封装性和信息隐藏。 39 【正确答案】 A 【试题解析】 此题考查的是类和对象的概念。类是用户定义的一种数据类型,可以使用这个类型来说明一个或多个变量,即对象。 40 【正确答案】 C 【试题解析】 此题考查的是有关函数的概念。内联函数是在函数定义之前加关键字 inline来声明的函数,而不是定义在另一个函数体内部的函数,故选项 A)错误;无返回值的函数在执行完最后一条语句后,会自动返回而不必加入 return语句,故选项 B)错误;如果函数只是返回值类型不同,而其他完全 相同,则不能作为函数重载来使用。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1