东南大学C卷:程序设计与算法语言试题与解析
151 浏览量
更新于2024-08-04
收藏 97KB DOC 举报
"程序设计及算法语言C卷是东南大学吴健雄学院的一门课程的考试试卷,主要测试学生对C语言程序设计和算法的理解。试卷包括闭卷考试部分,总分为60分,另外还有上机编程30分以及平时成绩10分。试题涵盖了简答题和程序阅读与修改题,旨在考察学生对于类的定义、函数的使用以及异常处理等C++核心概念的掌握。
在简答题部分,题目主要涉及了类的定义和成员变量的声明:
1. 类Circle的定义中,使用了`register`和`auto`关键字,这两个在C++中并不是合法的存储类别修饰符。`register`通常用于告诉编译器尝试将变量存储在寄存器中以提高速度,但在这里不能用于类的数据成员。而`auto`在C++中用于变量声明,表示由编译器推断类型,但不能用于类的成员声明。正确的定义应去除这两个关键字。
2. 类Figure的定义中,析构函数`~Figure()`接受了一个布尔参数,这是不常见的。通常析构函数不接受任何参数,且在C++中,析构函数的主要作用是清理对象创建时分配的资源。如果需要特定行为,可以考虑使用带有参数的构造函数或重载函数,而不是析构函数。
3. 函数`swap(double d1, double d2)`用来交换两个双精度浮点数的值。然而,由于`d1`和`d2`是按值传递的,函数内部的修改不会影响到调用者中的原始变量。为了实现交换,需要使用引用或者指针。正确的函数定义应该是`void swap(double &d1, double &d2)`,这样函数内的修改会直接影响到传入的变量。
程序阅读与修改题部分,主要考察的是C++的异常处理。题目给出了一个自定义异常类ZeroExcep,当除数为0时抛出该异常。程序中使用`try-catch`结构捕获异常,打印出异常信息。异常处理部分的代码如下:
```cpp
try {
cout << "5.0/2.0=" << divide(5.0, 2.0) << endl;
cout << "7.0/0.0=" << divide(7.0, 0.0) << endl;
cout << "9.0/2.0=" << divide(9.0, 2.0) << endl;
}
catch (ZeroExcepze) {
cout << ze.what() << endl;
}
```
当调用`divide(7.0, 0.0)`时,由于除数为0,会抛出ZeroExcep异常,程序进入对应的`catch`块,打印出异常信息“被0除异常”。其他两行正常执行,输出相应的除法结果。
综合来看,这个考试试卷全面地检查了学生对于C++语言基础、类和对象、函数使用以及异常处理的掌握程度,是评估学生程序设计和算法能力的有效方式。
2022-05-05 上传
2022-05-08 上传
2022-06-20 上传
2021-10-10 上传
2022-07-11 上传
2007-08-23 上传
2022-05-30 上传
2022-05-06 上传
xinkai1688
- 粉丝: 381
- 资源: 8万+
最新资源
- JHU荣誉单变量微积分课程教案介绍
- Naruto爱好者必备CLI测试应用
- Android应用显示Ignaz-Taschner-Gymnasium取消课程概览
- ASP学生信息档案管理系统毕业设计及完整源码
- Java商城源码解析:酒店管理系统快速开发指南
- 构建可解析文本框:.NET 3.5中实现文本解析与验证
- Java语言打造任天堂红白机模拟器—nes4j解析
- 基于Hadoop和Hive的网络流量分析工具介绍
- Unity实现帝国象棋:从游戏到复刻
- WordPress文档嵌入插件:无需浏览器插件即可上传和显示文档
- Android开源项目精选:优秀项目篇
- 黑色设计商务酷站模板 - 网站构建新选择
- Rollup插件去除JS文件横幅:横扫许可证头
- AngularDart中Hammock服务的使用与REST API集成
- 开源AVR编程器:高效、低成本的微控制器编程解决方案
- Anya Keller 图片组合的开发部署记录