C++计算机二级考试上机实战:改错题、应用题与日期类实现
需积分: 1 47 浏览量
更新于2024-08-03
收藏 20KB DOCX 举报
在计算机二级考试C++上机考试中,考生将面临三个不同类型的题目:程序改错、简单应用以及综合应用。这些题目考察了C++语言的基础知识和编程技巧。
1. **程序改错题**
考生需使用Visual C++ 6.0编辑器打开名为1.cpp的文件,该程序功能是接收用户输入的字符串,将其中的小写字母转换为大写字母。程序中存在三个错误需要修改。首先,在提示用户输入字符串的提示符处(//********error********)应删除注释。其次,在`getline`函数调用后忘记添加结束读取的标识,应在这一行添加`'\n'`。最后,在处理小写字母的`if`条件判断中,`if(str[i] == 'a')`的条件不正确,应该用`==`比较,且不需要在等号后加单引号。正确代码示例:
```cpp
// 修改后的代码
#include <iostream>
void main()
{
int i = 0;
char str[120];
cout << "Enter a string end with ‘?’.\n";
cin.getline(str, 120);
while (str[i])
{
if (str[i] == 'a') // 修正这里
str[i] = str[i] - 'a' + 'A';
i++;
}
cout << "The result is: " << str << "\n";
return;
}
```
2. **简单应用题**
2.cpp文件中的任务是实现`fun`函数,该函数接受两个字符串`s1`和`s2`,将`s1`中下标为偶数的字符复制一次并追加到`s2`。考生需在`fun`函数的实现部分完成代码,注意保持函数参数和返回值类型不变。示例代码:
```cpp
// 在fun函数中添加实现
void fun(char* s1, char* s2)
{
for (int i = 0; s1[i]; i++)
{
if (i % 2 == 0) // 下标为偶数
s2[strlen(s2)] = s1[i]; // 将字符追加到s2末尾
s2[strlen(s2) + 1] = '\0'; // 每次追加后添加终止符
}
}
// main函数部分保持不变
```
3. **综合应用题**
在3.cpp文件中,已有一个日期类Date的定义不完整。考生需要在注释1之后定义私有成员变量year、month、day,并为类添加必要的构造函数、赋值运算符等。这部分需要熟悉类的封装和继承原则,以及基本的构造与赋值操作。完整的类定义可能如下:
```cpp
class Date
{
private:
int year;
int month;
int day;
public:
// 构造函数
Date(int y, int m, int d) : year(y), month(m), day(d) {}
// 赋值运算符
Date& operator=(const Date& other)
{
if (this != &other)
{
year = other.year;
month = other.month;
day = other.day;
}
return *this;
}
// 其他方法(如显示日期、比较等)
};
// 在注释1后的具体实现区域补充以上代码
```
以上是计算机二级考试C++上机考试的主要知识点,涵盖了基础的字符串操作、条件判断、函数实现以及面向对象编程中的类定义。考生需要熟练掌握这些概念并能灵活运用到实际编程中。
2022-10-23 上传
2022-10-23 上传
2022-10-23 上传
2022-07-13 上传
2022-07-13 上传
2023-08-01 上传
2021-11-01 上传
2021-10-29 上传
2021-10-30 上传
极客11
- 粉丝: 385
- 资源: 5519
最新资源
- 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 图片组合的开发部署记录