1、国家二级 C+机试(操作题)模拟试卷 394及答案与解析 一、基本操作题 1 使用 VC6打开考生文件夹下的源程序文件 modil cpp。本程序要求输入一字符串,然后将其中的小写字母改变成大写字母,字符可能输入多行,当输入字符 “?”时,默认字符输入结束,最后把结果输出到界面。 注意:不要改动 main函数,不能增行或删行,也不能更改程序的结构,错误的语句在 *error*的下面。 #include Void main() int i=0; char Str12 0; cout=a) stri =stri 一 a+A; i+; cout int fun(int*a, int n) void
2、msin() int A=6, 6, 5, 4, 4, 3, 3, 2, 1; Int j =fun(A, s i zeof(A) si zeof(int); for(int i=0 ; i class MyFileClasS private: char filename64; char*contex; int FileLength; public: MyFileClass() *1* contex=NULL; FileLength=0; 一 MyFileClasS() if(FileLength) *2* void OpenFile(char*str, int len) for(int i=
3、0; i=a stri=Z) 【试题解析】 同一英文字母的大写和小写形式的 ASCII码值相差 32,因此,要将小写字母转换为大写字母,只要将其对应的 ASC 码值减去 32即可,程序中给出的语句中,减去字符 a的 ASC 码再加上字符 A的 ASC 码正好是减去 32。 二、简单应用题 2 【正确答案】 Int j; int k=0;指向数组第一个元素 j=1; 指向数组第二个元素 while(jn)将本次循环 k指向的元素依次与其他元素比较,如果不同,则存入数组 if(aj!=ak) a+k=aj; k指向下一个元素 j+; return k+1; 为新数组大小 三、综合应用题 3 【正确
4、答案】 (1)添加语句: filename0 =0;或 filename0=NULL; (2)添加语句: deletecontex; (3)添加语句: delete contex; (4)添加语句: WriteFlie(file contex, file FileLength); 【试题解析】 程序当中定义了类 MyFileClass,包含 3个成员变量,分别为filename、 contex和 FileLength,分别表示文件名、文件内容和文件长度,类MyFileClass有多个成员函数:构造函数、析构函数、 OpenFile(char*str,int len)、WriteFlie(char*str,intlen)、 CopyFile(MyFileClass&file)和 display(), OpenFile()用来给 filename赋值,并清空 contex内容; WriteFile()函数用来对 contex内容进行设置填充内容; CopyFile(MyFileClass&file)函数完成将参数 file对象的 contex内容拷贝到当前的文件内容中; display()将 contex内容打印到屏幕上。