1、国家二级 C+机试(操作题)模拟试卷 371及答案与解析 一、基本操作题 1 使用 VC6打开考生文件夹下的源程序文件 modi cpp,该程序运行时有错误,请改正其中的错误,使得程序正确运行。 程序输出: s1: n=20 s2: n=10 执行 s3 add(s1, s2) s3: n=30 s4: n=30 注意:不要改动 main函数,不能增行或删行,也不能更改程序的结构,错误的语句在 *error*的下面。 #include Class TestClass int n; public: TestClass() TestClass(int m) n=m; *error* TestCla
2、ss add(TestClass s1, s2) this一 n=s1 n+S2 n; *error* return(this); void di sp() cout #include int convert(char*strOct) int main() cout #include Class CBook public: int ID; char Author32; public: CBook(int ID Number, char*Author Name) thiS一 ID=ID Number; *1* ; C1ass CBooks private: Class NOde public:
3、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; mpBook=P; int AddBoo kMenber(int nID, char*Author) Node*p=mpBook; Node*q=NULL; *3* while() if f nID=P一 book一 ID) return 0; q=p; P=p一 next; if(P=NULL) P=n
4、ew Node; P一 next=NULL; Pbook= 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* while() if(P一 book一 ID=nID) return P一 book一 AUthor; P=P一 next; return 0; ; int main() CBooks booksl; booksl AddBookMenber (1, “Tom”); books 1 AddBookM
5、enber (3, “Lee”); books 1 AddBookMenber (4, “Lily”); bookS 1 AddBookMenber(5, “Harry”); coutbooks1 GetBookAuthor(1)end1; coutbooks1 GetBookAuthor(5)endi; return 0; 国家二级 C+机试(操作题)模拟试卷 371答案与解析 一、基本操作题 1 【正确答案】 (1)TeStClass add(TeStClass s1, TeStClass s2) (2)return(*this); (3); 【试题解析】 本题中的功能是设置类中的成员数值
6、,然后利用成员函数 add求和。从己定源程序的 main主函数开始入手,可以看出程序首先通过类 TestClass中的成员函数实现题目中的输出要求。 二、简单应用题 2 【正确答案】 int re=0; while(*strOct) re=re*8+(*strOct)一 0; Str0ct+; return re; 【 试题解析】 函数 convert(char*strOct)的功能是将八进制转换为十进制,将八进制转换成十进制的方法是按权展开,即八进制数第 0位的权值为 8的 0次方,第 1位权值为 8的 1次方,第 2位权值为 8的 2次方,依次将各位数乘上其权值,然后求和即得到相应的十进制
7、数。 三、综合应用题 3 【正确答案】 (1) 添加语句: strcpy(Author, AuthorName); (2)将 “while()”补充完整为: while(mpBook!=NULL) (3)将 “while()”补充完整为: while(P!: NULL) (4)将 “while()”补充完整为: while(p!=NULL) 【试题解析】 程序当中定义了 CBook类和 CBooks类, CBook类描述书的基本信息,包含 ID和 Author数组两个成员变量, CBooks类描述由 Node对象组成的链表,每个 Node对象包含指向 CBook对象的指针和下一个 Node对象的指针。第一个 Node对象的 next指针指向第二个 Node对象,同样第二个 Node对象的 next指针指向第三个 Node对象,如此形成一个链表结构。成员函数AddBookMenber(int nlD, char*Author)实现向链表中添加一个 Node节点,成员函数 GetBookAuthor(int nID)返回某个 Node节点的 CBook对象的 ID为 nlD的CBook对象的 Author数组名。