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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、国家二级( C+)机试模拟试卷 130及答案与解析 一、选择题 1 下列叙述中正确的是 ( )。 ( A)线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的 ( B)线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构 ( C)线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构 ( D)线性表的链式存储结构与顺序存储结构在存储空间的需求上没有可比性 2 下列叙述中正确的是 ( )。 ( A)栈是一种先进先出的线性表 ( B)队列是一种后进先出的线性表 ( C)栈与队列都 是非线性结构 ( D)以上三种说法都不对 3 软件测试的目的是 ( )。 ( A)评估软件可靠性 (

2、B)发现并改正程序中的错误 ( C)改正程序中的错误 ( D)发现程序中的错误 4 在软件开发中,需求分析阶段产生的主要文档是 ( )。 ( A)软件集成测试计划 ( B)软件详细设计说明书 ( C)用户手册 ( D)软件需求规格说明书 5 软件生命周期是指 ( )。 ( A)软件产品从提出、实现、使用维护到停止使用退役的过程 ( B)软件从需求分析、设计、实现到测试完成的过程 ( C)软件的开发过程 ( D)软件的运行维护过程 6 面向对象方法中,继承是指 ( )。 ( A)一组对象所具有的相似性质 ( B)一个对象具有另一个对象的性质 ( C)各对象之间的共同性质 ( D)类之间共享属性和

3、操作的机制 7 层次型、网状型和关系型数据库划分原则是 ( )。 ( A)记录长度 ( B)文件的大小 ( C)联系的复杂程度 ( D)数据之间的联系方式 8 一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间的联系是 ( )。 ( A)一对一 ( B)一对多 ( C)多对多 ( D)多对一 9 数据库设计中反映用户对数据要求的模式是 ( )。 ( A)内模式 ( B)概念模式 ( C)外模式 ( D)设计模式 10 有三个关系 R、 S和 T如下: 则由关系 R和 S得到关系 T的操作是 ( )。 ( A)自然连接 ( B)差 ( C)交 ( D)并

4、11 下列符号中能够作为 C+标识符的是 ( )。 ( A) const ( B) 2a ( C) _shape ( D) -count 12 已知枚举类型声明语句为: enum COLORWHITE, YELLOW, GREEN=5, RED, BLACK=10; 则下列说法中错误的是 ( )。 ( A)枚举常量 YELLOW的值为 1 ( B)枚举常量 RED的值为 6 ( C)枚举常量 BLACK的值为 10 ( D)枚举常量 WHITE的值为 1 13 执行下列语句段后,输出字符 “*”的个数是 ( )。 for(int i=50; il; i-=2) coutgetPl();和 co

5、utgetPI();和 coutgetPI(); ( D) cout using namespace std; class VAC public: int f()coastreturn 3; int f()return 5; ; int main() VAC v1; coast VAC v2; cout using namespace std; class MyClass public: MyClass(int i=0)cout using namespace std; class AA int k; protected: int n; void setK(int k)tllis-k=k; p

6、ublic: void setN(im n)this-n=n; ; class BB: public AA *类体略 * ; int main() BB x; x n=1: 1 x setN(2); 2 x k=3: 3 x setK(4); 4 return 0; 在标注号码的四条语句中正确的是 ( )。 ( A) 1 ( B) 2 ( C) 3 ( D) 4 35 有如下程序: #include using namespllce std; class Base int x; public: Base(int n=0): x(n)eout using namespaee std; class

7、 GA public: virtual int f()return 1; ; class GB: public GA public: virtual int f( )return 2; ; void show(GA g)toutdouble 由此可知 ( )。 ( A)这可能是一个函数模板的声明 ( B)这可能是一个类模板的声明 ( C)这既可能是一个函数模板的声明,也可能是一个类模板的声明 ( D)这肯定是一个错误的模板声明 39 C+系统预定义了 4个用于标准数据流的对象,下列选项中不属于此类对象的是 ( )。 ( A) cout ( B) cin ( C) cerr ( D) cset

8、40 下列语句都是程序运行时的第 1条输出语句,其中一条语句的输出效果与其他三条语句不同,该语句是 ( )。 ( A) cout #include using namespace std; class Point private: double x, y; public: Point(double XX, double yy) x=xx: y=yy; ERROR *found* double MyDistance(Point&a, Point&b); ; double MyDistance(Point&a, Point&b) ERROR *found* double dx=x-b x: ERR

9、OR vfound* double dy=a y-y: return sqrt(dx * dx+dy * dy); int main() Point p1(3 6, 6 4), p2(8, 0 3); double d=MyDistance(p1, p2); cout #include using namespace std; #define MaxElement 100 class Element “元素 ”类 public: int n; Element(int i=0): n(i) ; class MySet “集合 ”类 Element水 element;指向存储元素的数组的指针 in

10、t size:数组大小 int counter;数组中元素的个数 int current; 属于表示扫描位置,及当前被扫描元素在数组中的下标 public: MySet(): element(new Element100), size(100), counter(0), current(0) MySet()deleteelement; void add(Element ele);向集合中添加一个元素,保持由小到大的顺序。 void remove(Element ele);删除集合中指定的元素 void scanFirst()current=0; 将扫描位置定位于首元素 *found* void

11、 scanNext()_; 将扫描位置定位于下一个元素 Element get()constreturn elementcurrent; 返回当前被扫描的元素 bool isEnded()constreturn current=counter; 如果已经没有更多的元素可扫描了,返回 true。 void show();显示集合中所有元素 : void MySet: add(Element ele) int DOs=counter; pos用于确定元素应插入的位置 while(pos0) 从后往前寻找该位置 if(ele nelementpos-1 n)break;找到应插入的位置,退出循环 *

12、found* if(_)return; 发现相同元素,终止添加过程。 pos_: if(counter=size) 如果没有足够空 间,扩充空间 (增加 100个元素的容量 ) Element*tmp=element; tmp指向原来的数组 * found* element=_; 请一个新的数组,容量扩大 100个元素的容量 for(int i=0; iDos; i-)elementi=elementi-1; 后移相关元素,腾出存放新元素的空间 elementDos=ele;插入新元素 counter+; void MySet: show() scanFirst();扫描位置定位于首元素 wh

13、ile(!isEnded() coat=0) 从后往前寻找该位置 if(ele nelementDOs n)return;集合中没有该元素,终止删除过程。 if(ele n=elementDOs n)break;找到删除的元素,退出循环。 pos_; if(pos #include using namespace std; class MiniString public: friend ostream&operator (ostream&output, const MiniString&s)重载流插入运算符 output(istream&input, MiniString&s)重载流提取运算符

14、 char temp100;用于输入 的临时数组 temp0: = 0;初始为空字符串 inputsetw(100)temp; int inLen=strlen(temp);输入字符串长度 if(inLen!=0) s length=inLen;赋长度 if(s sPtr!=0)deletes sPtr;避免内存泄漏 s sPtr=new chars length+1; strcpy(s sPtr, temp);如果 s不是空指针, 则复制内容 else s sPtr0= 0;如果 s是空指针,则为空字符串 return input; void modString(const char*str

15、ing2)更改字符串内容 if(string2 !=0)如果 string2不是空指针,则复制内容 if(strlen(string2)!=length) length=strlen(string2); deletesPtr; sPtr=new charlength+1; 分配内存 strcpy(sPtr, string2); else sPtr0= 0;如果 string2是空指针,则为空字符串 MiniString&operator=(const MiniString &otherString); MiniString(const char*s= ): length(s!=0)?strle

16、n(s): 0)构造函数 sPtr=0; if(length!=0) setString(s); MiniString()析构函数 deletesPtr; private: int length;字符串长度 char * sPtr;指向字符串起始位置 void setString(const char* string2)辅助函数 sPtr=new charstrlen(string2)+1;分配内存 if(string2 !=0)strcpy(sPtr, string2);如果 string2不是空指针,则复制内容 else sPtr0= 0;如果 string2是空指针,则为空字符串 ; p

17、roj3 cpp #include #include using namespace std; #includeproj3 h MiniString& MiniString: operator=(const MiniString &otherString) 重载赋值运算符函数。提示:可以调用辅助函数 setString *333* *666* int main() MiniString strl(Hello!“), str2; void writeToFile(const char*); str2=strl;使用重载的赋值运算符 str2 modString(Happy neW year!);

18、 coutdouble这里就可以看出这是一个函数模板的声明。 39 【正确答案】 D 【试题解析】 C+标准数据流的对象分别是 cout、 cin、 cerr、 clog,所以本题答案为 D。 40 【正确答案】 D 【试题解析】 本题考查控制输出格式, A、 B、 C选项都会输出 “12345”,只有 D选项输出 “12345”,所以本题答案为 D。 二、基本操作 题 41 【正确答案】 (1)friend double: MyDistance(Point&a, Point&b); (2)double dx=a x-b x; (3)double dy=a y-b y; 【试题解析】 (1)主

19、要考查考生对友元函数的掌握,由于 MyDis-tance函数在类定义体外定义时,未加类名 Point修饰作用域,可知 MyDistance并不是类 Point的成员函数,但是声明是在 Point定义体内部,所以应该是友元函数,另外函数MyDistance可以直接操作 Point对象的成员变量,所以进一步确定是友元函数,使用 friend关键字修饰。 (2)主要考查考生对友元函数的掌握和成员变量的访问,在函数 MyDistance中,为了计算 a、 b两点的距离,需要计算两个点的横纵坐标差值,所以需要访问 a、 b的横纵坐标,将 a的横坐标减去 b的横坐标,得到差值 dx,再计算 dy。 (3)

20、主要考查考生对友元函数的掌握和成员变量的访问,在函数 MyDistance中,为了计算 a、 b两点的距离,需要计算两个点的横纵坐标差值,所以需要访问 a、 b的横纵坐标,将 a的纵坐标减去 b的纵坐标 ,得到差值 dy,再与 dx一起计算距离。 三、简单应用题 42 【正确答案】 (1)+current (2)ele n=elementpos-1 n (3)new Elementsize+100 (4)scanNext() 【试题解析】 (1)主要考查考生对数组和自增运算符的掌握情况,扫描数组元素,将扫描位置定位到下一个元素,需要将下标加 1,使用自增运算符 (2)主要考查考生对数组元素的访

21、问和比较运算符的掌握, pos初值为数组元素个数,所以访问 element元素使用 pos-1,避免访问数组越界;另外需要判断插入元素与当前元素是否相等来决定程序是否返回,使用相等运算符。 (3)主要考查考生对动态内存分配的掌握,题意需要申请一个新的数组,并将当前数组容量 size扩大 100个,所以答案为 new Elementsize+100。 (4)主要考查考生对类成员函数的掌握, show函数用来输出数组的所有元素,所以从首元素开始一次输出,输出一个元素需要将扫描定位到下一个元素,对应于前面的 scanFirst(),使用成员函数 scanNext()最合适不 过了。 四、综合应用题 43 【正确答案】 length=otherString length: 把对象字符串 otherString的长度赋值给变量 length setString(otherString sPtr); 调用函数 setstring,实现给类变量 sptr分配空间,以及逐个把对象otherstring字符串的值复制到 sptr中 return*this: 返回被赋值的对象

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