ImageVerifierCode 换一换
格式:DOC , 页数:30 ,大小:73.50KB ,
资源ID:502488      下载积分:2000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-502488.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文([计算机类试卷]国家二级(C++)机试模拟试卷3及答案与解析.doc)为本站会员(孙刚)主动上传,麦多课文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文库(发送邮件至master@mydoc123.com或直接QQ联系客服),我们立即给予删除!

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

1、国家二级( C+)机试模拟试卷 3及答案与解析 一、选择题 1 在关系代数运算中,有 5种基本运算,它们是 ( )。 ( A)并 ( )、差 (-)、交 ()、除 ()和笛卡儿积 () ( B)并 ( )、差 (-)、交 ()、投影 ()和选择 () ( C)并 ( )、交 ()、投影 ()、选择 ()和笛卡儿积 () ( D)并 ( )、差 (-)、投影 ()、选择 ()和笛卡儿积 () 2 在数据库系统的组织结构中,下列 ( )映射把用户数据库与概念数据库联系了起来。 ( A)外模式模式 ( B)内模 式外模式 ( C)模式内模式 ( D)内模式模式 3 下列关于线性链表的描述中,正确的是

2、 ( )。 I、只含有一个指针域来存放下一个元素地址 、指针域中的指针用于指向该结点的前一个或后一个结点 (即前件或后件 ) 、结点由两部分组成:数据域和指针域。 ( A)仅 I、 ( B)仅 I、 ( C)仅 、 ( D)全部 4 下面关于数据库三级模式结构的叙述中,正确的是 ( )。 ( A)内模式可以有多个,外模式和模式只有一个 ( B)外模式可以有多个,内模式和模式只有一个 ( C)内模式 只有一个,模式和外模式可以有多个 ( D)模式只有一个,外模式和内模式可以有多个 5 设有关键码序列 (66, 13, 51, 76, 81, 26, 57, 69, 23),要按关键码值递增的次序

3、排序,若采用快速排序法,并以第一个元素为划分的基准,那么第一趟划分后的结果为 ( )。 ( A) 23, 1 3, 51, 57, 66, 26, 81, 69, 76 ( B) 13, 23, 26, 51, 57, 66, 81, 76, 69 ( C) 23, 13, 51, 57, 26, 66, 81, 69, 76 ( D) 23, 13, 51, 57, 81, 26, 66, 69, 76 6 下列哪一条不属于数据库设计的任务 ?( ) ( A)设计数据库应用结构 ( B)设计数据库概论结构 ( C)设计数据库逻辑结构 ( D)设计数据库物理结构 7 数据库技术的根本目标是 (

4、 )。 ( A)数据存储 ( B)数据共享 ( C)数据查询 ( D)数据管理 8 需求分析阶段的任务是 ( )。 ( A)软件开发方法 ( B)软件开发工具 ( C)软件开发费用 ( D)软件系统功能 9 关系数据库管理系统能实现的专门关系运算包括 ( )。 ( A)排 序、索引、统计 ( B)选择、投影、连接 ( C)关联、更新、排序 ( D)显示、打印、制表 10 数据管理技术发展的三个阶段中, ( )没有专门的软件对数据进行管理。 I人工管理阶段 文件系统阶段 数据库阶段 ( A)仅 I ( B)仅 ( C) I和 ( D) 和 11 阅读以下程序: #include void mai

5、n() static int a2=5,3, 1, 2; int ij, s1=0; for(i=0; i using namespace std; int main() char*p=”abcdefgh“,*r: r=p; cout using namespace std; void fun(int&x, int y)int t=x; x=y; y=t; ) int main() int a21=1, 2; fun(a1, a0); std: cout int x=5: int fun(int a) int c; C=X*a: return C; void main() int x=3, a

6、=4; x=x+fun(a); cout class TestClass public: static int m: TestClass() m+十一 t-; TestClass(int 11) m=n: static void test() m+: ; int TestClass: m=0; void main() TestClass A; TestClass B(3); A test(); TestClass: test(); cout using namespace std; class TestClass public: TestClass 0cout class TestClass

7、1 public: void showl0 coutb?“*a=* ”; #b= d”, a, b); ( A)没有正确的输出格式控制 ( B)输出为: *a=2 ( C)输 为: #b=2 ( D)输出为: *a=2#b=2 23 若执行以下程序时从键盘上输入 9,则输出结果是 ( )。 main() int n; cinn; if(n十 +void main() int*P1; int*p2=&p1; int b=20; p1=&b: cout ( B) template ( C) template ( D) template 32 有如下程序: #include using namesp

8、ace std; class AA int n: public: AA(int k): n(k) int get()retum n; int getOconstretum n+1; ; int main() AA a(5); const AA b(6); cout c lass Sample int n: public: Sample(int i)n=i; operator+()n+; 前缀重载运算符 operator+(int)n+=2; 后缀重载运算符 void disp() cout”必须使用的原型为 ( )。 ( A) istream&operator(istream&, &); (

9、B) istream&operator(istream, ); ( C) istream operator(istream, &); ( D) operator(istream&, &); 36 运算符函数调用格式的表达式 “y x+”与表达式 “y operator (operator+(x,0)”的含义相同,由此可看出 ( )。 ( A) “ ”和 “+”都是作为成员函数重载的 ( B) “ ”和 “+”都是作为非成员函数重载的 ( C) “ ”是作为成员函数重载的, “+”是作为非成员函数重载的 ( D) “ ”是作为非成 员函数重载的, “+”都是作为成员函数重载的 37 派生类的构造

10、函数的成员初始化列表中,不能包含 ( )。 ( A)基类的构造函数 ( B)派生类中子对象的初始化 ( C)基类中子对象的初始化 ( D)派生类中一般数据成员的初始化 38 在下面的类定义中,横线处应填入的内容是 ( )。 class Fred public: void print()cout #include *error* using std; void WriteFile(char*S) ofstream outl: *error* outl open(”modi l txt”, binarylapp); for(int i=0; si!=0; i+) *error* outl puts

11、(si); outl close(); void ClearFile() ofstream outl; out 1 open(”modi 1 txt”); out 1 close(); int main() char s1024; ClearFileo; cout #define MAX N 10 int XXMAXNMAXN; int fun(int n) void main() int n: do coutn: i“n=1) break; while(1); for(int i=0; iXXii; cout class TestClass public: TestClass(int dat

12、a=0) this data=data; mis一 next=NULL; ; int dam; TestClass*next; ; void Insert(TestClass木 p, int data) TestClass*temp=new TestClass(data); TestClass*pParent=p; TestClass*pNext=P-next; while(pNext) if(datapNext一 data) *1* temp一 next=pNext; return; Else pParent: pNext; *2* ) if(pNext=NULL) pParent一 nex

13、t=temp; return; void printf(TestClass*P) *3* while() D-next-datanextdata”; P=P-next; coutnext; delete templ; temp1=temp2; void main() int i=0: TestClass head; Do coutdata; if(data=0)break; Insert(&head, data); )while(1); printf(&head); Delete(&head); return; 国家二级( C+)机试模拟试卷 3答案与解析 一、选择题 1 【正确答案】 D 【

14、试题解析】 并、差、笛卡儿积、投影和选择是 5种基本的运算,其他运算即交、连接和除,均可以通过 5种基本的运算来表达。 2 【正确答案】 A 【试题解析】 数据库有两层映像,即外模式模式和模式内模式映像。模式内模式映像定义数据库全局逻辑结构与存储结构之间的对应关系。 3 【正确答案】 D 【试题解析】 在定义的链表中,若只含有一个指针域来存放下一个元素地址,称这样的链表为单链表或线性链表。 在链式存储方式中,要求每个结点由两部分组成:一部分用于存放数据元素值,称为数据域:另一部分用于存放指针,称为指针域。其中指针用于指向该结点的前一个或后一个结点 (即前件或后件 )。 4 【正确答案】 B 【

15、试题解析】 数据库的三级模式结构是指数据库系统的外模式、模式和内模式。一个数据库可以有多个外模式,但只有一个模式和一个内模式。 5 【正确答案】 A 【试题解析】 快速排序是起泡排序的改进。在快速排序中,任取一个记录,以它为基准用交换的方法将所有的记录分成两部分,关键码值比它小的在一部 分,关键码值比它大的在另一部分,再分别对两个部分实施上述过程,一直重复到排序完成。 6 【正确答案】 A 【试题解析】 数据库设计工作量大而且过程复杂,既是一项数据库工程也是一项庞大的软件工程。考虑数据库及其应用系统开发全过程,将数据库设计分为以下 6个阶段:需求分析、概念结构设计、逻辑结构设计、物理结构设计、

16、数据库实施和数据库的运行和维护。 7 【正确答案】 B 【试题解析】 数据库是长期储存在计算机内、有组织的、可共享的大量数据的集合,它具有统一的结构形式并存放于统一的存储介质内, 是多种应用数据的集成,并可被各个应用程序所共享,所以数据库技术的根本目标是解决数据共享问题。 8 【正确答案】 D 【试题解析】 需求分析是软件定义时期的最后一个阶段,它的基本任务就是详细调查现实世界要处理的对象,充分了解原系统的工作概况,明确用户的各种需求,然后在这些基础上确定新系统的功能。 9 【正确答案】 B 【试题解析】 关系数据库管理系统的专门关系运算包括选择运算、投影运算和连接运算。 10 【正确答案】

17、A 【试题解析】 数据管理技术发展的三个阶段中,只有人工 管理阶段,没有操作系统,没有管理数据的软件,数据处理方式是批处理。在文件系统阶段,操作系统中已经有了专门数据管理软件,一般称为文件系统。在数据库系统阶段,出现了统一管理数据的专门软件系统,即数据库管理系统。 11 【正确答案】 B 【试题解析】 程序中 “staticna2=5, 3, 1, 2定义了一个 2*2的整型矩阵。两个 for循环读取数组元素。 “ifi=j)”语句中的条件是取矩阵的正对角线上的元素。对角线上的元素为 5, 2,所以 “s1=s1+ai啪 ”的计算结果为 7。 12 【正 确答案】 A 【试题解析】 字符指针

18、p指向 “abcdefgh”字符串,语句 “r=p; ”是 r指向 p指向的字符串,而 *r则是指向字符串中的第一个字符。即 a。 13 【正确答案】 B 【试题解析】 程序中的 fun函数的功能是实现函数中两个参数的交换。主函数中fun的调用中第一个参数为数组第二个值即 2,第二个参数为第一个值即 1。在 fun的定义中第一个形参引用类型,其改变会改变主函数中实参的值;而第二个形参不是引用类型,其改变不会改变第二个实参,所以 2, 1的交换结果为 1, 1,即B。 14 【正 确答案】 C 【试题解析】 C+中函数 return语句中返回的类型应与函数定义指定的类型一致,即函数定义的类型即为

19、函数应返回的类型。 15 【正确答案】 C 【试题解析】 由主函数 main入手,首先 x被赋值为 3, a被赋值为 4。然后调用fun函数,参数为 4,所以在 fun函数中的 a=4。而主程序中的 x作用域是由它定义开始到 cout输出,在 fun函数中无效。而在 fun函数定义前的变量 x作用域是整个程序,所以 fun函数中的 x值为 5,这样 c的值就为 20。在主函数中的x+fun(a)中的 x为靠近这 条语句的 x定义,即 3,所以最后 x的值为 20+3=23。 16 【正确答案】 C 【试题解析】 由主函数 main入手,首先定义 Te8tClass对象 A, B;对象 B构造函

20、数值为 3,构造函数中 m+,所以这时 m=4。主函数中调用 A test(),因为“static int m; ”, m被定义为类 TestClass静态成员变量,当它的值改变后,则在各对象中这个数据成员的值都同时改变了。所以这里执行 “A test(); ”中的 m为前面进行加 1操作后的 4,即 m现在的值为 5。 17 【正确答案】 B 【试题解析】 公用继承时基类中的公用成员和保护成员在派生类中保持原有访问属性,其私有成员仍为基类私有。私有继承时,基类的公有成员和保护成员在派生类中成了私有成员,其私有成员仍为基类私有。受保护的继承时,基类的公用成员和保护成员在派生类中成了保护成员,其

21、私有成员认为基类私有。 18 【正确答案】 D 【试题解析】 构造函数的主要作用是对数据成员初始化。构造函数不能声明为虚函数,这是因为在执行构造函数时类对象还未完成建立过程,当然谈不上函数与类对象的关联。 19 【正确答案】 D 【试题 解析】 程序中的 TestClassl为 TestClass的派生类,从程序中的 main函数入手,定义了 TestClassl对象 x。调用析构函数的顺序,先执行派生类自己的析构函数,对派生类新增加的成员进行清理,然后调用子对象的析构函数,对子对象进行清理,最后调用基类的析构函数,对基类进行清理。这里派生类中析构函数输出 DELVED,基类析构函数输出 BA

22、SE。 20 【正确答案】 C 【试题解析】 TestClass1为 FestClass2的私有基类,所以派生类 TestClass2中继承过来的 show1()为私有的。 TestClass3为 TestClass2的受保护派生类。所以TestClass3定义的对象不能访问 TestClass中的 showl()。 21 【正确答案】 B 【试题解析】 本题考查表达式作为变量进行输出,且表达式为两个三目表达式的嵌套,其中,第 1个三目表达式 z函数声明。调用 模板函数时,如果与模板实参中最后的若干个参数有关的信息可以从模板函数的实参中获得,则相关的模板实参可以省略。 32 【正确答案】 B

23、【试题解析】 语句 AAa(5)调用的是 AA( ntk): n(k), a get()调用 int get()return n; ,结果会输出 5:而常对象 const AA b(6), b get()调用的是intget()constreturn+1; ,会输出结果 7。 33 【正确答案】 C 【试题解析】 所谓函数重载是指同一函数名可以对应多个函数实现。 进行函数重载时,要求同名函数在参数个数上不同,或者参数类型上不同。但函数的返回类型不能作为判断重载的依据。 34 【正确答案】 A 【试题解析】 此题考查的是 “+”运算符的重载。为了区分前缀和后缀运算符,规定:重载后缀运算符时必须多

24、一个虚拟参数: int。本题中, A(2)首先给 n赋值2,语句 A+,调用的是后缀运算符重载语句,使得 n加 2变为 4。 B(2)首先给 n赋值 2,然后语句 +B,调用前缀运算符重载函数,使得 n加 1。因此最终的输出结果是 n=4 n=3。 35 【正确答案】 A 【试 题解析】 C+流的输入运算符 “”和输出运算符 “”须使用以下原型: istream&operator(istream&, ):。 36 【正确答案】 C 【试题解析】 运算符函数有两种调用形式,第一种是像一般函数那样用函数名调用,即 y operator*(z)或者 operator*(y, z):另一种是通过运算符

25、构成表达式,即 y*z。因为 “+”运算符既可以作为前缀运算符,又可以作为后缀运算符,所以重载这个运算符时,重载后缀 “+”时必须多一个虚拟参数: int。 37 【正确答案】 C 【试题解析】 在定义派生类的构造函数时,除了对自己的数据成员进行初始化外,还必须负责调用基类的构造函数使基类的数据成员得以初始化。如果派生类中还有子对象,还应包含对子对象初始化的构造函数。 38 【正确答案】 C 【试题解析】 此题考查的是静态数据成员的定义。题目中 count数据成员要定义成静态的,其初始化的格式为:类型类名:静态数据成员 =常量。 39 【正确答案】 D 【试题解析】 此题考查的是 this指针

26、的使用 。类的每一个非静态成员函数都有一个隐含的常量指针,即 this指针。类的静态成员函数不能含有 this指针,因为 this指针是一个指向本对象的指针。 40 【正确答案】 B 【试题解析】 此题考查的是复制构造函数的概念。用一个已知的对象初始化一个正在创建的同类对象时,就会发生复制构造函数。因此,选项 A)、 C)、 D)均会调用复制构造函数,而只有选项 B)没有创建的动作,不调用复制构造函数。 二、基本操作题 41 【正确答案】 (1)using namespace std; (2)outl open(”modil txt”, ios: binaryI ios: app); (3)o

27、ut1 put(si); 【试题解析】 程序要求从键盘输入一个字符串,并将结果保存到文件 modil txt中。从已给定源程序的 main主函数开始入手, main主函数首先调用 ClearFile函数打开文件,然后调用 WriteFile函数将字符串写入文件。 解题思路 (1)第 1个标识下的 “using std; ”是在程序中引入标准命名空间 std,对于 C+中引入标准命名空间的格式,缺少 namespace,所以第 1个标识 下的语句修改为 “using namespace std; ”。 (2)第 2个标识下,调用成员函数 open中,输入输出方式是在 ios类中定义的,所以 “o

28、ut1 open(“modi1 txt”, binarylapp); ”语句缺少类 ios,即第 2个标识下的语句修改为 “out1 otx)“modil txt”, ios: binarylios: app); ”。 (3)第 3个标识应该用流成员函数 put输出字符,所以第 3个标识下的语句修改为“out1 put(si); ”。 三、简单应用题 42 【正确答案】 int data=0: 初始化求平方和变量 for(int i=0; inext=temp; (2)添加语句: pNext=pNext一 next; (3)将 “while()”补充完整为: while(p一 next!=NU

29、LL) (4)将 “TestClass*temp1=: ”补充完整为: TestClass*temp 1=1)一 next; 【试题解析】 在 VC环境下打开程序,根据题干给出的几条功能要求,对程序中给出注释下的内容逐个补全或修改。从已给定源程序的 main主函数开始入手,可以看出程序通过调用类 TestClass实现各种输出操作。 解题思路 (1)题目 1要求 “在父节点的 Next中保存新插入的节点的指针 ”。对于指针的操作pParent一 next为 pParent的子结点,在父节点的 Next中保存新插入的节点的指针,即 “pParent-next=temp; ”。 (2)题目 2要求

30、 “把 pNext的子节点赋给 pNext本身 ”。 pNext-next为 pNext的子结点,把 pNext的子节点赋给 pNext本身,即 “pNext=pNext-next”。 (3)注释 /*3*下是判定 p的子节点不为空。 p的子节点是 p-next。程序中的 “while()”缺乏 p的子节点不为空的判断条件,所以修改为 “while(p-next!=NULL)”。 (4)题目 4要求 “用 templ保存动态申请内存节点的链表头 ”。 p为链表, p-next为链表头。程序中 的语句 “TestClass*temp1=; ”中 templ没有被赋值,所以修改为“TestClass*templ=D-next; ”。

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