C++计算机二级考试上机实战:改错题、应用题与日期类实现

需积分: 1 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++上机考试的主要知识点,涵盖了基础的字符串操作、条件判断、函数实现以及面向对象编程中的类定义。考生需要熟练掌握这些概念并能灵活运用到实际编程中。