1、国家二级 C+机试(操作题)模拟试卷 85及答案与解析 一、基本操作题 1 使用 VC6打开考生文件夹下的源程序文件 modil cpp,但该程序运行时有错,请改正程序中的错误,使程序输出的结果为: i=5 i=10 i=15 i=20 注意:错误的 *error*语句在的下面,修改该语句即可。 #include class CMyClass public: template void func(T x, T y) *error* T i=0; if(x=i) i=i+x; else i=i+y; cout #include #include us ing namespace std void
2、 WriteFile(char*s) void fun(char*S) void ClearFile() ofstream outl; outl open(”modi2 txt”) outl Close()j int main() ClearFile() char S1024 cout #include using rlamespace std; void Wr: i t: ePle(char*x) ofstream out: 1; *1* out: 1 open(“modi3 txt”, ); out: 1 0,此时 i和 X的和为 5,故屏幕输出 i的值为 i=5;第二次调用 func()
3、函数,传入参数为 char型数据,此时 T表示字符型 (char), char i=0, 680,故 i为 68,屏幕输出 ASCII码为 68的字符,即i=D;第三次调用 func()函数,传入整型数据 10和 1,此时 T表示整型 (int),输出为 i=1 5,显然如果 i为一般的局部变量,输出应该是 i=10(100, i=10+0=10),这里 i记忆了第一次调用 func0函数后的值 0=5, 105, 10+5=15),故 i为静态变量,因此第 1个标识下应改为 “staticT i=0: ”。 (2)func0函数两个参数类型一致,从输出结果看,第二次调用 func0传入的参数
4、均是 char型的,故第 2个标识下 应改为 “t func(char)68, (char)1); ”, (char)68和(char)1含义是做强制类型转换,将整型转换成 char型。 (3)第 3个标识下传入参数 1为整型,局部变量 i为 float型,由输出结果可知,第四次调用 func0函数也改变了静态变量 i(static int i)的值,故传入的参数均为整型,因第 3个标识下的局部变量 i(float型 )也要强制类型转换,故第 3个标识下应改为 “t func(int)i, 1); ”。 二、简单应用题 2 【正确答案】 (1)void WriteFile(char*s)中的命
5、令语句: ofStream outl ; outl open(”modi2 txt”, ios base : binary I losbase: app);打 开文件 modi2 outl=A&si=a&si=z) 如果是小写字符,转换为大写字符 si=si一 a+A; si一 a+A-等于字符 si-32 writeFile(s); 【试题解析】 (1)本题要求实现两个函数的功能,其中 WriteFile(char*s)实现把字符串输入到文件中; fun(char*s)函数实现大 写字母转换成小写字母,把其中的小写字母转换成大写字母。其中大小写字母之间的 ASCII码差为 32。 (2)从已
6、给部分源程序的 main主函数开始入手,首先实现 WriteFile函数,然后再实现 fun函数,并在其中调用 WriteFile函数。 解题思路 (1)在 WriteFile(char*s)函数中,利用标准流 ofstream实现字符串写入文件modi2 txt。 (2)在 fun函数中,利用 for循环逐个判断字符是大写还是小写。 (3)如果是大写,那么加上 32实现大写转换为小写。否则,就减去 32,实现小写到大写 的转换。最后调用前面实现的 WriteFile函数,将字符串写入文件。 三、综合应用题 3 【正确答案】 (1)将 “outl open(“modi3 txt“, ); ”补
7、充完整为:outl open(”modi3 txt”, iosbase: app); (2)添加语句: TestClass s; 【试题解析】 本题中程序的功能是将字符串 “Hello”“Test”“出现异常情况 ”输入到文件 modi3 txt和屏幕上。在 VC环境下打开程序,根据题干给出的几条功能要求,对程序中给出注释下的内容逐个补全 或修改。从已定源程序的 main主函数开始入手,可以看出程序通过调用类 TestClass和成员函数实现各种输出操作。 解题思路 (1)题目 1要求 “以追加的方式打开文件 modi3 txt”。文件输出输入方式的设置值,以 ios: app方式是以输出方式打开文件,写入的数据添加在文件末尾,即第 1个标识下语句补全为 “outl open(”modi3 txt”, ios base: app); ”。 (2)题目 2要求 “定义一个类对象 S”。 C+中,在声明了类类型后,定义对象的一般形式:类名对象名。所以这里添加 “TestClass s; ”。