东南大学08级C 试卷C(电类 下)机试试卷-答案.doc
这份文档是东南大学08级C++课程的一个上机考试试卷及答案,主要考察学生对C++语言的理解和应用能力,包括基本语法、数组、指针、文件操作以及面向对象编程的知识点。 一、改错题 1. `using namespace std;` 这行代码没有错误,它允许在当前作用域内使用标准命名空间std中的所有标识符,例如cout和cin。 2. 错误在于`int* slist 或者 int slist[]`,这里应该选择一个表示法。如果表示动态数组,应使用`int* slist`,如果表示静态数组,则是`int slist[]`,具体取决于题目要求。 3. `n-1` 这个表达式没有问题,通常用于表示循环或数组索引的边界。 4. 同样,`n-1`也是正确的,可能是在遍历数组时的边界条件。 5. `k=j` 这一行可能是错误的,如果k和j应该保持不同值,如在交换变量的场景下,应使用临时变量进行交换。 6. `;` 在这里可能是多余的,如果它出现在语句末尾且没有实际作用,应删除。 7. `>>` 改成 `<< >>`,这可能是要求将输入操作符(>>)改为输出操作符(<<),用于打印变量。 8. `j` 改成 `i`,这可能是在循环或其他控制结构中,需要将变量j替换为变量i。 9. `SelectSort`,这个可能是排序算法的名称,如果题目要求使用不同的排序算法,需要更正。 10. `'\\t'`,这个表示制表符,没有错误,但如果题目要求使用空格分隔,应改为`' '`。 二、编程题 编程题涉及了C++的类(Class)和文件操作。题目给出了一个名为`CGoods`的类,包含成员变量(Description, No, Quantity, Cost, Retail)以及一个文件流对象(fstream datafile)。类的构造函数和析构函数用于读写文件。 1. `CGoods`的构造函数首先初始化成员变量,并尝试打开文件"mydatafile.txt"。如果文件打开成功,读取文件直到结束,然后跳出循环。注意,使用`eof()`来判断文件是否结束是不推荐的,因为可能会导致未预期的结果,更好的做法是检查读取操作是否成功。 2. 构造函数中,`clear()`应放在`close()`之后,因为如果文件打开失败,`close()`操作也会失败,此时调用`clear()`可以清除错误标志,以便后续操作。 3. `CGoods`的析构函数负责将对象的数据写回文件。它打开文件,以输出模式(ios::out),然后按照指定格式输出成员变量的值。最后关闭文件。 4. `CGoods`有一个`SetParam`方法,用于设置对象的参数,这些参数包括商品描述(description)、编号(number)、数量(quantity)、成本(cost)和零售价(retail)。 5. 主函数`main()`创建了一个`CGoods`对象`goods`,并调用`SetParam`方法设置其参数,但没有显示调用构造函数读取文件,也没有调用析构函数写入文件。在实际应用中,通常会在对象生命周期的适当阶段调用这些方法。 这份试卷涵盖了C++的基础语法、数组、指针、文件操作以及面向对象编程的关键概念,旨在评估学生对C++编程语言的掌握程度。
- 粉丝: 452
- 资源: 6万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助