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

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

1、国家二级 C+机试(操作题)模拟试卷 73及答案与解析 一、基本操作题 1 使用 VC6打开考生文件夹下的源程序文件 modi cpp,该程序运行时有错,请改正其中错误,使得程序正常运行,并使程序输出的结果为: c Test 注意:不要改动 main函数,不能增行或删行,也不能更改程序的结构,错误的语句在 *error*的下面。 #include void main() *error* char C=“C”; cout VOid fun(char*str, char*S) void mein() char str1 0 0, s1 0 0; cout #include class CBook

2、public: int ID; char Author32; public: CBook(int IDNumber, char* Author_Name) thiS一 ID: ID_umber; *1* ; ClasS CBooks private: class Node public: Node*next; CBook*book ; *m_pBook; public: CBooks() m_pBook=NULL; CBooks() *2* while() Node*p* m pBook一 next ; delete m_pBook 一 book; delete m_pBook; m_pBoo

3、k=P ; int AddBookMenber(int nID, char*Author) Node*P=m_pBook; Node*q=NULL; *3* while() if(nID=P一 book一 ID) return 0, q=P ; P=P一 next ; if(P=NULL) P=new Node, P一 next=NULL, P一 book =new CBook(nID, Author); if(q=NULL) m_pBook=p; else q一 next=P; return 1 ; char*GetBookAuthor (int nID) Node*P=m pBook; *

4、4* while() if(p一 book一 ID =nID) return P一 book-Author ; P=p一 next; return 0 ; ; int main() CBooks booksl ; books 1 AddBookMenbe r (1, “Tom”); booksl AddBookMenber (3, “Lee”); books 1 AddBookMenbe r (4, “Lily”); books 1 AddBookMenber (5, “Harry”); coutbooks 1 GetBookAuthor (1)endl; coutbooks 1 GetBoo

5、kAuthor (5)endl; return 0; 国家 二级 C+机试(操作题)模拟试卷 73答案与解析 一、基本操作题 1 【正确答案】 (1)char c=c; (2)int b=1 024; (3)b+=1 024; 【试题解析】 本题的功能是输出字符 c和字符串。 Test。因为本题程序中不存在复杂的结构,解题思路,从已定源程序的 main主函数依次处理错误提示下的语句即可。 解题思路 (1)打开 modil cpp,调试程序,显示错误提示为第一标识下 “odi 1 cpp(5):error C2440: initializing: cannotconvea fromchar2to

6、char”。变量 c的类型为字符型,字符型值应该是用单引号,双引号是字符串型。所以这里修改为 “char c=c: ”。 (2)根据第 3个标识下的语句知道, b的值加上 1024,然后判断 b的值是否为2048,所以这里 b的类型应该是整型,而不是字符型,所以修改为 “int b=1024; ”。 (3)显示第 3个标识下的语句 “b+=1024; ”的错误提示 modil cpp(10): error C2018: unknown character0xaY,因为语句中的 “; ”为中文输入 法下的输入,并不是英文下的 “; ”,所以修改为 “b+=1024; ”。 二、简单应用题 2 【

7、正确答案】 Int 1; for(i=0; stri!=1; i+) 循环 判断每一个字符 if(i 2=0) 判断字符串中下标为偶数位置 si=stri; si+1=stri; si+2= 0; 新串添加尾符 【试题解析】 (1)该程序功能是找出在字符串中下标为偶数位置上的字 符,紧随其后重复出现一次,放在一个新串。它的解题思路,解题过程利用 if条件判断表达式选择符合条件的字符,然后将符合条件的字符放入指定的字符串。 (2)从已给部分源程序的 main主函数开始入手,核心函数 void fun(char*str,char*s)中的 str参数为输入的字符串,其中 s为新串。 解题思路 (1

8、)判断一个字符串中的某一字符下标 i是否为偶数,可用 “i 2=0”来判断。 (2)对串 str中各个字符串逐个进行考查,满足条件的字符就顺序放在新串 s中,否则就不存放。 (3)所有字符处理完后,记得在新串 s的末尾加上结束符 “ 0”。 三、综合应用题 3 【正确答案】 (1)添加语句: strcpy(Author, Author_Name); (2)将 “while()”补充完整为: while(m pBook!=NULL) (3)将 “while()”补充完整为: while(P!=NULL) (4)将 “while()”补充完整为: while(p!=NULL) 【试题解析】 (1)

9、第 1个标识下完成 CBook类的构造函数,对成员变量整 ID和作者 Auor进行初始化,因此第 1个标识下应添加 “strcpy(Author,Author_Name); ”,利用 strcpy函数,将 Author Name数组内容拷贝到 Author数组中。 (2) CBooks0为 CBooks类的析构函数,由于 CBooks类在运行过程中会动态申请内存空间,因此在析构函数中必须将这些内存释放。 CBooks类是由 Node对象组成的链表,因此可利用循环逐个搜索这个链表,逐个释放内存空间,故第 2个标识下应改为 while(m pBook!=NULL),在 while循环体不断的搜索下一个节点直到m pBook为空为止,删除所以节点。 (3)AddBookMenber(int nlD char*Author)数在链表的最后添加一个新的节点,因此必须先找到最后一个节点,同样利用循环寻找最后一个节点,故第 3个标识下为 while(P! =NULL。 (4)GetBookAuthor(int nID)返回某个 Node节点的 CBook对象的 ID为 nlD的CBook对象的 Author数组名,同样需要利用循环来查找各个节点 CBook对象的ID是否为 nlD,故第 4个标识下应为 while(p! =NULL)。

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

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

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