1、二级 C+机试-140 及答案解析(总分:100.00,做题时间:90 分钟)一、1改错题(总题数:1,分数:30.00)使用 VC+6.0 打开考生文件夹下的源程序文件 1.cpp,该程序运行时有错误,请改正错误,使得程序通过运行。程序输出结果为5a1注意:不要改动 main 函数,不能增加或删除行,也不能更改程序的结构,错误的语句在/*error*的下面。试题程序:#includeiostreamtemplateclass T/*error*t min(t x,t y)return(xy)?y:x;void main()int n=5;/*error*char c=“a“;int d=1;
2、/*error*coutmin(n,n)end1;coutmin(c,c)end1;coutmin(d,d)end1;(分数:30.00)填空项 1:_填空项 1:_填空项 1:_二、2简单应用题(总题数:1,分数:40.00)1.使用 VC+6.0 打开考生文件夹下的源程序文件 2.cpp。请完成函数 fun(int n),使其实现以下功能:当i 等于 3 时,则打印如下内容。AAAAAA注意:不能修改程序的其他部分,只能修改 fun 函数。试题程序:#includeiostream.hvoid fun(int n)void main()int n;cout“请输入打印的行数:“end1;c
3、inn;if(n1)cout“输入的行数必须大于 0“end1;return;fun(n);return;(分数:40.00)_三、3综合应用题(总题数:1,分数:30.00)使用 VC+6.0 打开考生文件夹下的源程序文件 3.cpp。其中定义的类不完整,按要求完成下列操作,将类的定义补充完整。(1)在类 TC 中定义 name 为字符串类型,age 为 int 型,请在注释 1 之后添加语句。(2)没置类 TC0 的基类为 TC 类的定义,请在注释 2 后添加语句。(3)在类 TC 的派生类 TC0 的公有成员中定义析构函数 TC0,请在注释 3 后添加语句。(4)设置类 TCl 的基类为
4、 TC 类的定义,请在注释 4 后添加语句。程序输出结果为TC class constructorTC0 class constructorTC on class constructorTC1 class constructorTC1 class constructorTC class constructorTC0 class constructorTC class constructor注意:增加或者修改代码的位置已经用符号表示出来,请不要修改其他的程序代码。试题程序:#includeiostream.hclass TC/*1*public:TC()cout“TC class constru
5、ctor“end1;TC()cout“TC class constructor“end1;/*2*char *departmert;int level;public:TC0()cout“TC0 class constructor“end1;/*3*cout“TC0 class constructor“end1;/*4*char *major;float salary;public:TC1()cout“TC1 class constructor“end1;TC1()cout“TC1 class constructor“end1;void main()TC0 s1;TC1 t1;(分数:30.00
6、)填空项 1:_填空项 1:_填空项 1:_填空项 1:_二级 C+机试-140 答案解析(总分:100.00,做题时间:90 分钟)一、1改错题(总题数:1,分数:30.00)使用 VC+6.0 打开考生文件夹下的源程序文件 1.cpp,该程序运行时有错误,请改正错误,使得程序通过运行。程序输出结果为5a1注意:不要改动 main 函数,不能增加或删除行,也不能更改程序的结构,错误的语句在/*error*的下面。试题程序:#includeiostreamtemplateclass T/*error*t min(t x,t y)return(xy)?y:x;void main()int n=5
7、;/*error*char c=“a“;int d=1;/*error*coutmin(n,n)end1;coutmin(c,c)end1;coutmin(d,d)end1;(分数:30.00)填空项 1:_ (正确答案:应改为“T min(T x,T y)”。)解析:填空项 1:_ (正确答案:应改为“char c=a;”。)解析:填空项 1:_ (正确答案:应改为“using namespace std;”。)解析:解析 本题 C+是区分大小写的,“template(class T)”语句中定义的模板类为 T 不是 t,所以第 1 处的“t min(t x,t y)”修改为“T min(T
8、 x,T y)”。第 2 处的“char c=“a“;”语句中的变量 a为 char 型,赋值为字符 a,在 C+中应该使用单引号标注字符变量,而不是双引号,所以修改为“char c=a;”。在程序中用到 C+标准库时,要使用 std 标准命名空间进行限定。cout 为标准库函数,所以要声明 cout 是在命名空间 std 中定义的流对象,即添加“using namespace std;”。二、2简单应用题(总题数:1,分数:40.00)1.使用 VC+6.0 打开考生文件夹下的源程序文件 2.cpp。请完成函数 fun(int n),使其实现以下功能:当i 等于 3 时,则打印如下内容。AA
9、AAAA注意:不能修改程序的其他部分,只能修改 fun 函数。试题程序:#includeiostream.hvoid fun(int n)void main()int n;cout“请输入打印的行数:“end1;cinn;if(n1)cout“输入的行数必须大于 0“end1;return;fun(n);return;(分数:40.00)_正确答案:(int i;for(i=0;in;i+) /外层循环,要打印的行数int j;for(j=0;jn-i-1;j+) /循环打印空格cout;for(;jn;j+)/循环打印 Acout“A“;coutend1; /打印每一行的回车符)解析:解析
10、本题利用外层循环打印每一行。内层循环分为打印空格和打印 A。打印空格由第一个位置到第 n-i-1。打印 A,是由打印完空格开始一直到行结束。在外循环中打印每一行的结束符。三、3综合应用题(总题数:1,分数:30.00)使用 VC+6.0 打开考生文件夹下的源程序文件 3.cpp。其中定义的类不完整,按要求完成下列操作,将类的定义补充完整。(1)在类 TC 中定义 name 为字符串类型,age 为 int 型,请在注释 1 之后添加语句。(2)没置类 TC0 的基类为 TC 类的定义,请在注释 2 后添加语句。(3)在类 TC 的派生类 TC0 的公有成员中定义析构函数 TC0,请在注释 3
11、后添加语句。(4)设置类 TCl 的基类为 TC 类的定义,请在注释 4 后添加语句。程序输出结果为TC class constructorTC0 class constructorTC on class constructorTC1 class constructorTC1 class constructorTC class constructorTC0 class constructorTC class constructor注意:增加或者修改代码的位置已经用符号表示出来,请不要修改其他的程序代码。试题程序:#includeiostream.hclass TC/*1*public:TC()
12、cout“TC class constructor“end1;TC()cout“TC class constructor“end1;/*2*char *departmert;int level;public:TC0()cout“TC0 class constructor“end1;/*3*cout“TC0 class constructor“end1;/*4*char *major;float salary;public:TC1()cout“TC1 class constructor“end1;TC1()cout“TC1 class constructor“end1;void main()TC
13、0 s1;TC1 t1;(分数:30.00)填空项 1:_ (正确答案:应添加“char *name;int age;”。)解析:填空项 1:_ (正确答案:应添加“class TC0:public TC”。)解析:填空项 1:_ (正确答案:应添加“TC0()”。)解析:填空项 1:_ (正确答案:应添加“class TC1:public TC”。)解析:解析 本题第 1 处要求“TC 中定义 name 为字符串类型,age 为整型”。根据题目要求,在程序TC 类中定义变量 name 和 age,即“char *name;int age;”。第 2 处要求“设置类 TC0 的基类为 TC 类的定义”。在 C+中,从已有的类产生一个新的子类,称为类的派生。声明派生类的一般形式为“class派生类名:继承方式基类名”。根据声明派生类的一般形式,这里补全“class TC0:public TC”。第3 处要求“在类 TC 的派生类 TC0 的公有成员中定义析构函数 TC0”。析构函数也是一个特殊的成员函数,它的作用与构造函数相反,它的名称是在类名前面加一个“”符号。题目中要求的类名称为“TC0”即这里补全“TC0()”。第 4 处要求“设置类 TC1 的基类为 TC1 类的定义”,在第 4 处补充“class TC1:public TC”。