1、国家二级 C+机试(操作题)模拟试卷 77及答案与解析 一、基本操作题 1 使用 VC6打开考生文件夹下的源程序文件 modil cpp,但该程序运行时有错,请改正程序中的错误,使程序输出的结果为: 1 0 注意:错误的语句在 *error*的下面,修改该语句即可。 #include struct Struct union int a; char C4; ; int b ; *error* void msin() Struct m; *error* m C0=0 ; m C1=0 ; m C2=0 ; *error* m C3=1 ; m b=m c3; cout void fun (int
2、a, int n, int b, int m, int*c) void main() int A=3, 5, 7, 9, II, 18, 21, int B=6, 15, 19, 21, 3 9); int C25, i ; for(i=0; i class CMyFormula private: *1* public: *2* thiS一 a=a ; this一 b=b; void set(int x, int y) a=x ; b=y; void display() *3* ; int main() CMyFormula formular(1, 1); for(int i=1 ; i ;
3、这里定义的结构体并没有变量名列表,但是结构体定义一定是以 “; ”结束的,因此第 1个标识下应改为 “; ”。 (2)根据题目要求程序输出结果分别为 “1”和 “0”,即结构体变量 m的成员变量 a的值为 1, b的值为 0,又 a和字符数组 c4存放在同一段内存单元中,因此 it的值可由数组 c4决定 (两者使用同一地址单元 ),故 c0表示 a的低 8位, c1为 a的第二个 8位, c2为 a的第三个 8位, c3为 a的最高 8位, a=0,所以 c0=1,c1=c2*c3=0,故第 2个标识下应改为 “m c0=1; ”。 (3)由 (2)分析可知第 3个标识下应改为 “m c3=0; ”。 二、简单应用题 2 【正确答案】 int i, j ; for(i=j=0; in ”。 (4)观察可知第 4个标识下的 for循环是死循环, j没有判断退出条件,会一直循环下去得不到想到的 99的口诀表,外层循环变量 i从 1开始变化至 9,循环 9次,内部循环变量 j应该从 1变化到 i,输出一行, j=i,这样保证输出的是倒 99口诀,因此第 4个标识下应改为 “fortintj=1; j=i j+)”。