1、国家二级 C+机试(操作题)模拟试卷 300 及答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.使用 VC6 打开考生文件夹下的源程序文件 modi1cpp,但该程序运行时有错,请改正程序中的错误,使程序输出的结果为: 150 200 注意:错误的语句在*error*的下面,修改该语句即可。提示:定义 Number1 为一个整型数据位长的变量。#includeiostreamh*error*struct *error* int Number1:1; int Number2;Mystruct;Void main() Mystruct mstr; m
2、strNumber1=150; mstrNumber2=15; *error* int*ptr=mstrNumberl; cout*ptrendl; *ptr=200; cout*ptrendl;(分数:2.00)_二、简单应用题(总题数:1,分数:2.00)2.使用 VC6打开考生文件夹下的源程序文件 modi2cpp。阅读下列函数说明和代码,补充空出的代码。函数 DecToBin(char*des,int n)的功能是将十进制数据 n 转换成二进制数据,并将转换结果存放在 des中。 如:120 的二进制数据为 1111000 例: DecToBin(char*des,120); cout
3、des #define MAXLEN 1024 void DecToBin(char*des,int n) void main() char desMAXLEN; int n=120; DecToBin(des,n); coutdes_三、综合应用题(总题数:1,分数:2.00)3.使用 VC6 打开考生文件夹下的源程序文件 modi3cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。 (1)对文件以追加的方式打开文件。请在注释*1*后添加适当的语句。 (2)定义 m、n 为类 TestClass 的公有 int 型数据成员,请在注释*2*后添加适当的语句。 (3)定义 P
4、 为类 TestClass 的数据成员指针,并指向类 TestClass 数据成员 m,请在注释*3*后添加适当的语句。 (4)定义 P 指向类 TestClass 数据成员 n,请在注释*4*后添加适当的语句。 注意:增加代码,或者修改代码的位置已经用符号表示出来。请不要修改其他的程序代码。#includeiostreamh#includefstream#includeiomanip#includecmathusing namespace std;Void WriteFile(int x) ofstream out1; *1* out1open(“modi3txt“, ); out1X ;
5、out1close();void ClearFile() ofstream out1; out1open(“modi 3txt“); out1Close();Class TestClasspublic: void disp() cout“m=“mendl; WriteFile(m); cout“n=“nendl; WriteFile(n); *2*;Void main() *3* ClearFile(); TestClass a; a*p=30; *4* a*p=45; adisp();(分数:2.00)_国家二级 C+机试(操作题)模拟试卷 300 答案解析(总分:6.00,做题时间:90
6、分钟)一、基本操作题(总题数:1,分数:2.00)1.使用 VC6 打开考生文件夹下的源程序文件 modi1cpp,但该程序运行时有错,请改正程序中的错误,使程序输出的结果为: 150 200 注意:错误的语句在*error*的下面,修改该语句即可。提示:定义 Number1 为一个整型数据位长的变量。#includeiostreamh*error*struct *error* int Number1:1; int Number2;Mystruct;Void main() Mystruct mstr; mstrNumber1=150; mstrNumber2=15; *error* int*p
7、tr=mstrNumberl; cout*ptrendl; *ptr=200; cout*ptrendl;(分数:2.00)_正确答案:(正确答案:(1)typedef struct (2)int Number1:32 ; 或 int Number1; (3)int*ptr=(int*)mstr;)解析:解析:(1)第 1 标识下是定义结构体,结构体定义的一般形式为: struct结构体名 成员列表 变量名列表: 程序当中定义结构体名放在后面,Mystruct 为结构体变量类型,相当于typedef 为已有的类型定义一个新的类型,第 1 个标识下应改为“typedefstruct”。 (2)第
8、 2 标识下是定义 Number1 为一个整型数据变量,整型数据位数为 32(4 字节),因此第 2 个标识下应改成“int Number1:32;”或“int Number1;”。 (3)ptr 为整型数据指针,mstr 为 Mystruct 类型结构变量,两者类型不一致应该做强制类型转换,第 3 个标识下应改成“int*ptr=(int*)mstr;”,表示将 mstr 的地址给 ptr,ptr 指向 MyStmct 的第一个域 Number1,Number1 也是整形,类型一致,故可通过 ptr 指针来改变 Number1 的值。二、简单应用题(总题数:1,分数:2.00)2.使用 VC
9、6打开考生文件夹下的源程序文件 modi2cpp。阅读下列函数说明和代码,补充空出的代码。函数 DecToBin(char*des,int n)的功能是将十进制数据 n 转换成二进制数据,并将转换结果存放在 des中。 如:120 的二进制数据为 1111000 例: DecToBin(char*des,120); coutdes #define MAXLEN 1024 void DecToBin(char*des,int n) void main() char desMAXLEN; int n=120; DecToBin(des,n); coutdes_正确答案:(正确答案:int j,i=
10、0; char temp; while(n!=0) desi=n2+0; n=n2; i+; 转化结果为 2 进制最高位在 des 的下标最低处,顺序刚好反了 desi=NULL; for(j=0;ji2;j+) 将顺序倒过来 temp=desj;交换 desj=desi-1-j; desi-1-j=temp; )解析:解析:(1)本题为将十进制数转换成二进制数,因此采用除 2 求余法,通过该方法最终可以将一个十进制数转换成一个只包含 1 和 0 的数组。 (2)除 2 求余法得到的是 0 和 1 的数值,不是“0”和“1”字符,还需将数字转化成字符,0 和 1 通过加上“0”的 ASCII
11、码便可得到 0 和 1 的 ASCII 码字符。 (3)因为除 2 求余法得到的字符数组是从低位到高位保存的,因此需要先倒序后再输出,可利用循环方式将顺序调转过来。三、综合应用题(总题数:1,分数:2.00)3.使用 VC6 打开考生文件夹下的源程序文件 modi3cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。 (1)对文件以追加的方式打开文件。请在注释*1*后添加适当的语句。 (2)定义 m、n 为类 TestClass 的公有 int 型数据成员,请在注释*2*后添加适当的语句。 (3)定义 P 为类 TestClass 的数据成员指针,并指向类 TestClass
12、 数据成员 m,请在注释*3*后添加适当的语句。 (4)定义 P 指向类 TestClass 数据成员 n,请在注释*4*后添加适当的语句。 注意:增加代码,或者修改代码的位置已经用符号表示出来。请不要修改其他的程序代码。#includeiostreamh#includefstream#includeiomanip#includecmathusing namespace std;Void WriteFile(int x) ofstream out1; *1* out1open(“modi3txt“, ); out1X ; out1close();void ClearFile() ofstrea
13、m out1; out1open(“modi 3txt“); out1Close();Class TestClasspublic: void disp() cout“m=“mendl; WriteFile(m); cout“n=“nendl; WriteFile(n); *2*;Void main() *3* ClearFile(); TestClass a; a*p=30; *4* a*p=45; adisp();(分数:2.00)_正确答案:(正确答案:(1)将“out1open(“modi 3txt“,);”补充完整为:out1open(“modi3txt“,ios base:app);
14、 (2)添加语句:int m,n; (3)添加语句:int TestClass:*p=(TestClass:m); (4)添加语句:p=(TestClass:n);)解析:解析:(1)题目 1 要求“对文件以追加的方式打开文件”。文件输出输入方式的设置值,以ios:app 方式是以输出方式打开文件,写入的数据添加在文件末尾,即第 1 个标识下语句补全为“out1open(“modi3txt“ios_base:app);”。 (2)题目 2 要求“定义 m、n 为类 TestClass 的公有 int 型数据成员”。只需在程序中的 TestClass 类中的 public 区域添加 m、n 的定
15、义即可。即在第 2 个标识下添加“int m,n;”。 (3)题目 3 要求“定义 p 为类 TestClass 的数据成员指针,并指向类TestClass 数据成员 m”。程序中类 TestClass 数据成员 m 为:TestClass:m,定义 p 为类 TestClass的数据成员指针语句为:TestClass:*p,将其指向前面的数据成员 m,即为“intTestClass:*p=(TestClass:m);”。 (4)题目 4 要求“定义 P 指向类 TestClass 数据成员n”。类 TestClass 数据成员 n 语句为 TestClass:n,用 P 指向类 TestClass 数据成员 n,添加的语句即“p=(TestClass:n);”。
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1