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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、国家二级 C+机试(操作题)模拟试卷 33及答案与解析 一、基本操作题 1 使用 VC6打开考生文件夹下的源程序文件 modil cpp,该程序运行时有错,请改正其中的错误,使得程序正常运行,并使程序输出的结果为: init TestClass del TestClass 注意:不要改动 main函数,不能增行或删行,也不能更改程序的结构,错误的语句在 *error*的下面。 1 #include 2 class TeStClass 3 4 *error* 5 6 *error* 7 int TestClass()fcout 2 #define N 10 3 void sort(int AN,

2、 int n) 4 5 6 7 int main() 8 9 int AN=1, 2, 10, 5, 7, 19, 34, 78, -3, 8; 10 sort(A, 10); Ii for(int i=0; i 2 #include 3 class CBook 4 5 public: 6 int ID ; 7 char Author32; 8 public: 9 CBook(int ID_Number, char*Author_Name) 10 11 this-ID=ID_Number; 12 *1* 13 14 15 ; 16 class CBooks 17 18 private: 19

3、C1ass Node 20 21 public: 22 Node*next ; 23 CBook*book; 24 *m_pBook ; 25 public: 26 CBooks() 27 28 m_pBook=NULL; 29 30 CBooks() 31 32 *2* 33 while() 34 35 Node* p = m_pBook-next ; 36 delete m_pBook-book; 37 delete m_pBook; 38 m_pBook=p ; 39 40 41 int AddBookMenber(intnID, char*Author) 42 43 Node* p=m

4、_pBook; 44 Node* q=NULL; 45 *3* 46 while() 47 48 if ( nlD=p-book-ID) 49 50 return 0 ; 51 52 q=p ; 53 p=p-next; 54 55 if(p=NULL) 56 57 p=new Node ; 58 p-next=NULL; 59 p-book=new CBook(nID, Author); 60 61 if(q=NULL) 62 63 m_pBook=p ; 64 65 else 66 67 q-next=P ; 68 69 return 1; 70 71 Char*GetBookAuthor

5、(int nID) 72 73 Node* p=m_pBook ; 74 *4* 75 while() 76 77 if(P-book-ID=nID) 78 79 return P- book-Author; 80 81 p=p-next ; 82 83 return 0; 84 85 ; 86 int main() 87 88 CBooks booksl ; 89 books 1 AddBookMenber (1, “Tom“); 90 books1 AddBookMenbe r (3, “Lee“); 91 books 1 AddBookMenber (4, “Lily“); 92 boo

6、ks 1 AddBookMenber (5, “Harry“); 93 coutAj+1) 如果前面的数比后面的大则进行交换 7 8 int t=Aj;做交换 9 Aj =Aj+1; 10 Aj+1 =t ; 11 12 13 【试题解析】 选择法的思路是:将相邻两个数比较,将小的调到前头。这样下标从 0到 n-1的数与其后面相邻的数交换,可以把最大的数交换到数组的末端。进行n次下标从 0到 n-1的交换,则数组则会变成有序的,而且是由小到大的顺序。 解题思路 (1)数组 AN中有 n个数,进行 n-1趟比较,在每一趟比较中两两比较的次数逐渐减少,比如若有 6个数 9,8,5,4,2,0。第一

7、次将 8和 9对调,第二次将第 2和第 3个数 (9和 5)对调, ,如此共进行 5次,得到 8-5-4-2-0-9的顺序,可以看到:最大的数 9已 “沉底 ”,成为最下面一个数,而小的数 “上升 ”。最小的数 0已向上“浮起 ”一个位置。经第一趟 (共 5次 )后,已得到最大的数。然后进行第二趟比较,对余下的前面 5个数按上法进行比较,经过 4次比较,得到次大的数 8。如此进行下去。可以推知, 6个数要比较 5趟。在第一趟中要进行两两比较 5次,在第二趟中比 4次, 第 5趟比 1次。因此设置两层循环,外层循环变量 i从 0变化大到n-1,内层循环变量 j从 0到 n-j,在内层循环体内,比

8、较相邻两数,如果前面比后面的大则交换。 (2)在 内层循环体内,如果前面的元素比后面的元素大,则用一个临时变量记录前面的第 i个元素,然后将第 i+1个元素赋值给第 j个元素,临时变量值赋给第j+1个元素,如此完成两个元素的交换。 三、综合应用题 3 【正确答案】 (1)添加语句: strcpy(Author, Author Name); (2)将 “while()”补充完整为: while(m pBook!=NULL) (3)将 “while()”补充完整为: while(p!=NULL) (4)将 “while()”补充完整为: while(p !=NULL) 【试题解析】 程序当中定义了

9、 CBook类和 CBooks类, CBook类描述书的基本信息,包含 ID和 Author数组两个成员变量, CBooks类描述由 Node对象组成的链表,每个 Node对象包含指向 CBook对象的指针和下一个 Node对象的指针。第一个 Node对象的 next指针指向第二个 Node对象,同样第二个 Node对象的 next指针指向第三个 Node对象,如此形成一个链表结构。成员函数AddBookMenber(int nID, char*Author)实现向链表中添加一个 Node节 点,成员函数 GetBookAuthor(int nlD)返回某个 Node节点的 CBook对象的

10、ID为 nlD的CBook对象的 Author数组名。 解题思路 (1)第 1个标识下完成 CBook类的构造函数,对成员变量整 ID和作者 Author进行初始化,因此第 1个标识下应添加 “strcpy(Author,AuthorName); ”,利用 strcpy函数,将 Author_Name数组内容拷贝到 Author数组中。 (2) CBooksO为 CBooks类的析构函数,由于 CBooks类在运行过程中会动态申请 内存空间,因此在析构函数中必须将这些内存释放。 CBooks类是由 Node对象组成的链表,因此可利用循环逐个搜索这个链表,逐个释放内存空间,故第 2个标识下应改为

11、 while(m pBook!=NULL),在 while循环体不断的搜索下一个节点直到 m pBook为空为止,删除所以节点。 (3)AddBookMenber(int nlD, char*Author)函数在链表的最后添加一个新的节点,因此必须先找到最后一个节点,同样利用循环寻找最后一个节点,故第 3个标识下为 while(p!=NULL)。 (4)GetBookAuthor(int nlD)返回某个 Node节点的 CBook对象的 1D为 nlD的CBook对象的 Author数组名,同样需要利用循环来查找各个节点 CBook对象的ID是否为 nlD,故第 4个标识下应为 while(p!=NULL)。

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