1、国家二级 C+机试(操作题)模拟试卷 421及答案与解析 一、基本操作题 1 使用 VC6打开考生文件夹下的源程序文件 modil cpp,该程序运行时有错,请改正其中的错误,使得程序正常运行,并使程序输出的结果为: sizeof(str1)=5 sizeof(str2)=10 sizeof(str3)=1 注意:不要改动 main函数,不能增行或删行,也不能更改程序的结构,错误的语句在 *error*的下面。 (1)不能删除 assert()语句; (2)只能修改后面的数字。 提示: assert()函数如果为假,则会产生一个中断异常。 #include #include void main
2、() char* str1=“abc“; *error* assert(sizeof(Str1)=3); cout #define N 100 int aNN; int fun(int n) void main() int n; coutn; for(int i=0; iaij; cout class TestClass public: *1* *2* No=no; for(int i=0; strNamei! =0; i+) Namei=strNamei; Namei+1=0; void print() *3* TestClass() *4* ; int main() TestClass S
3、tu; stu set(111, “Garfield“); stu print(); return 0; 国家二级 C+机试(操作题)模拟试卷 421答案与解析 一、基本操作题 1 【正确答案 】 (1)assert(sizeof(str1)=4); (2)assert(sizeof(str2)=10); (3)assert(sizeof(str3)=1); 【试题解析】 (1)assert()函数如果为假,则会产生一个中断异常。所以要让它正常执行输出结果,那么 assert()函数就要为真,才不会产生中断异常。“assert(sizeof(strl)=3); ”语句中 “sizeof(str
4、1)=3”为假,这个会使程序产生异常,不能正常执行。因为 str1的值为 abc但是它还有一个尾符, 所以它的长度应该是4,而不是 3,所以第 1个标识下修改为 “assert(sizeof(str1)=4); ”。 (2)同 (1), str210说明, str2的空间为 10,第 2个标识下修改为“assert(sizeof(str2)=10); ”。 (3)同 (1), char str3=23;语句说明 23是字符,占空间为 1,所以修改为“assert(sizeof(str3)=1); ”。 二、简单应用题 2 【正确答案】 int row; int max; int min; in
5、t col; for(row=0; rown; row+) 外循环求行最大值中的最小值 for(max=arow0, col=1; coln; col+) 求每一行中的最大值 if(maxarowcol) max=arowcol; if(row=0) 求最小值 min=max; else if(maxmin) min=max; return min; 【试题解析】 (1)两层循环,内层循环求每一行最大值,外层循环求最 小值。 (2)求最大值,首先将最大值赋值为每行第一列的元素,然后依次循环比较。 (3)将求出的第一个最大值赋值为第一个最小值,然后将以后求得的最大值依次与之比较,求出所有值的最小
6、值。 三、综合应用题 3 【正确答案】 (1)添加语句: int No; char Name32; (2)添加语句: void Set(int no, char*StrName) (3)添加语句: cout“No=“Noend1”Name=”Nameend1; (4)添加语句: No=Name0=0; 【试题解析】 (1)题目 1要求 “定义类的公有数据成员函数 No、 Name32,其中No是 int型的数据, Name32为字符型 ”。在已有程序中,类定义的 public区域中,定义变量 No, Name32,即在第 1个标识下添加语句 “int No;charName32; ”。 (2)
7、题目 2要求 “完成函数 set的定义,分别设置 No和 Name的值 ”。第 2个标识下说明函数 set的语句中,应该包括变量 no, strName的定义,然后在函数中将其值赋值给 No, Name,即添加定义语句 “void Set(int no,char*strName)”。 (3)题目 3要求 “完成函数 print()”,根据输出结果,知道输出的是 No和 Name的值,所以这里补全 cout“No=“Noend1“Name=“Nameend1; (4)题目 4要求 “加缺省构造函数,设置 No为 0, Name为空 ”,即在 TestClass()构造函数中补充赋值语句 “No=Name0=0; ”。