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

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

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

2、A)模式 ( 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; if(m+ 5) cout void main() int x; cinx; if(x+5) cout using namespace std; int i=1: class Fun public: static int i: int value()return i-1; ) int valu

5、eoconstreturn i+1; ; int Fun: i=2: int main() int i=3: Fun fun1; const Fun fun2; return 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: A()cout #include“string h” void main() char a=“Hello Test

6、“,b=“Test”; strcpy(a, b); cout voidmain() char str25=“1234“,“5678”, *2; int ij, s=0; for(i=0; i 0j+=2) s=1 0*s+pij10; cout using namespace std; void fun(char*c() +q; cout #include int fun(int*p, intn,int*j) int i; *j=0; for(i: 0; i int fun(int); void main() int a=2, i; for(i=0; i using namespace std

7、; inta; int fun(); int main() extem int a; int b; a=10; b=fun0; cout using namespace std; class TestClass 1 public: TestClass 1()cout5成立 (此时 m的值变为 6),所以执行语句cout5不成立,因为 “+”后缀,之后 x的值变为 5,执行语句 cout5成立,所以执行语句 coutxend1;输出7。 17 【正确答案】 D 【试题解析】 this指针不能在程序中修改,不能被幅值;静态成员没有 this指针,因为类中只有一个静态成员函数实例,使用 this指针

8、无意义。 18 【正确答案】 A 【试题解析】 函数模板是一系列相关函数的模型或样板,这些函数的源代码形式相同,只是所针对的数据类型不同。因此,函数模板使一个函数可以定义成对许多不同数据类型完成同 一个任务。 19 【正确答案】 A 【试题解析】 此题因为定义的变量 i是 static类型的 (main()函数内部的 i只是一个局部变量 ),所以,选项 A)中 funl value()的返回值是 1, Fun: i引用的是外部变量会输出 2: fun2 value();会调用常成员函数 int value()constretun i+l; 使得外部静态变量 i的值增加为 3,故输出 3。 20

9、 【正确答案】 A 【试题解析】 选项 A)中,重载函数中是允许使用默认参数的;为了使重载函数有意义,不要使用重载函数来 描述毫无相干的函数;重载函数中编译是根据参数表进行选择,包括参数的个数和类型。 21 【正确答案】 D 【试题解析】 对象之间的信息传递是通过消息进行的。对象 =方法 (函数 )+属性(数据 ),而 C语言的结构体其实就是不同类型数据的组合。并没有处理数据的方法。 22 【正确答案】 A 【试题解析】 在 C+中,科学计数法表示小数的方法: E(e)左右必须有数,且E(e)的右侧只能为整数。 23 【正确答案】 C 【试题解析】 在 C+中定义二维数组时并赋值,则数组的行数

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

11、,输出 “B”;最后是调用自身的构造函数 C(),输出 “C”。 27 【正确答案】 B 【试题解析】 程序中首先定义字符数组 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,然后依次转换为千位,百位,十

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

13、d1; ”输出该字符串值。 30 【正确答案】 A 【试题解析】 由程序中的主函数 main入手,调用 fun函数。其中第一个实参为数组 a的名字,数组名作为实参,传递的是数组的起始地址。所以在 fun函数中指针 p指向了数组的第一个元素 a0。另外实参整型 j传递的是引用,也就是 i的地址。在 fun函数中在 for循环中,依次将当前元素 pi与 i指针值为标识的 p*j进行比较,取较大的。最后循环后的结果就是 p*j存放数组中的最大值,并且指针 j为该值的标识位。可以看出数组的最大值是 9标识位为 2。 31 【正确答案】 C 【试题解析】 主函数中在 for循环中依次调用 fun函数。其

14、中 c为静态变量,到程序结束有效。第一次循环中 2+1+4=7,第二次循环 20+1+5=8,第三次循环2+1+6=9。即答案为 7 8 9。 32 【正确答案】 C 【试题解析】 由主函数 main入手,首先定义外部变量 a,它的作用域为从变量的定义处开始,到本程序文件的末尾,赋值为 10。然后调用 fun函数,在 fun函数中计算 10*a,其中 a的作用域为到文件结尾,所以这里的 a为 10,即 10*10。 33 【正确答案】 B 【试题解析】 静态数据成员不能在参数初始化表对静态数据成员初始化,只能在类体外进行初始化。 34 【正确答案】 B 【试题解析】 派生类中构造函数的执行顺序

15、是:先调用基类构造函数,对基类数据成员初始化,然后调用子对象构造函数,对子对象数据成员初始化;最后执行派生类构 造函数本身,对派生类数据成员初始化。由主函数 main入手,首先定义了一个 TestClass2对象 obj。其中 TestClass2公共继承 TestClass1,对象 obi可以访问 TestClass1中的公有成员函数。 TestClass2中定义了一个 TestClass1的指针p,给 p分,配新空间,即指向类 TestClass1,输出 “YestClassl”。在 restClass2的构造函数中首先输出 “TestClass2”,并在 TestClass1构造函数中输

16、出“TestClass1”。 TestClass2析 构函数中输出 “ TestClass2”,删除指针 p,输出 “TestClass1”。析构 TestClass1输出 “ TestClass1”。 35 【正确答案】 B 【试题解析】 题目中程序 TestClass为基类, TestClass1为派生类,派生类构造函数的一般形式为:派生类构造函数名 (总参数类表 ):基类构造函数名 (参数列表 )派生类中新增数据成员初始化语句 。派生类 TestClass1的基类函数名为TestClass,总参数为 int a, intb,所以选择 B)。 36 【正确答案】 B 【试题解析】 程序中的

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

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

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

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