2014计算机二级考试题型,2014年计算机二级考试C++上机考试试题及答案6

本文解析了程序改错题、简单应用题及综合应用题。涉及成员访问属性、数列计算及类的继承等知识点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、程序改错题

使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错误,请改正程序中的错误,使得程序输出:

9,8,7,6,5

注意:错误的语句在/********error********/的下面,修改该语句即可。其他的语句不能修改。

试题程序:

#include(iostream.h>

classTC

{

/********error********/

TC(inti)

{

m_i=i;

}

voidprint()

{

cout<

}

public:

intm_i;

};

intmain()

{

/********error********/

inti();

TC04(10);

while(i>5)

{

/********errOr********/

i++:

04.print();

}

cout

}

二、简单应用题

使用vC++6.0打开考生文件夹下的源程序文件2.cpp,请实现函数fun(doublea[],intlen)的如下功能:

(1)a[]是一个数组,长度为len。

(2)a[0]=0,a[1]=1。

(3)a[i+2]=a[i]+a[i+1]。

注意:不能修改函数的其他部分。

试题程序:

#include(iostream)

voidfun(doublea[],intlen)

{

}

voidmain()

{

doublea[20];

fun(a,20);

for(inti=0;i<20;i++)

{

std::cout

std::eout

return;

)

三、综合应用题

使用VC++6.0打开考生文件夹下的源程序文件3.cpp。请完成以下部分,实现在屏幕上输出为

C3

C2

这个程序需要修改的部分,请按照以下部分实现。

(1)类C0不能被实例化,请定义一个纯虚函数print,在注释1后添加适当的语句。

(2)类C1私有虚继承类C0,请在注释2后添加适当的语句。

(3)类C2公有继承于C0,请在注释3后添加适当的语句。

(4)类c3公有继承于C2与C1,请在注释4后添加适当的语句。

注意:增加代码或者修改代码的位置已经用符号表示出来。请不要修改其他的程序代码。

试题程序:

#include(iostream.h)

classCO

{

//********1********

};

//********2********

classC1:

{

public:

voidprint()

{

cout

};

//********3********

classC2:

{

public:

voidprint()

{

cout<

};

//********4***x****

classC3:

{

public:

voidprint()

{

cout<

};

voidmain()

{

C30bj3;

C20bj2;

obj3.print();

obj2.print();

return;

}

上机考试试题答案与解析

一、程序改错题

(1)应添加“public:”。

(2)“inti()”应改为“inti(10);”。

(3)“i++;”应改为“i--;”。

【解析】本题主要考查的是成员的访问属性。成员的访问属性有公有、保护和私有3种,而默认的访问属性为私有,只有公有成员才能通过类的对象被访问。故应在构造函数前添加“public:”,否则该类无法被实例化。变量的初始化可以通过“=”号,也可以和初始化对象一样添加构造参数,题目已要求使用后者。本题要求输出5个数,while的循环变量i每次减1,在i>5时循环,故i初始化应为10。若循环中i每次增1,则循环永远不会退出。

二、简单应用题

voidfun(doublea[],intlen)

{

if(1en>O)

a[0]=0:

if(1en>1)

a[1]=1;

for(inti=2;i<1en;i++)

a[i]=a[i-1]+a[i-2];

}

【解析】本题考查的是计算数列值。首先给a[0]和a[1]赋初值,注意判断数组是否越界,然后循环遍历a[2]~a[len-1],根据题目给出关系计算每一个元素的值。

三、综合应用题

(1)应添加“virtualvoidprint()=0,”。

(2)“classC1:”应改为“classC1:virtualprivateC0”。

(3)“classC2:”应改为“classC2:publicC0”。

(4)“classC3:”应改为“classC3:publicC2,publicC1”。

【解析】本题考查了类的继承。根据题意,第1处应该添加“virtualvoidprint()=0;”。第2处根据题意,在冒号后面应添加“virtualprivateCO”。第3处根据题意,冒号后应添加“publicCO”。第4处根据题意,冒号后应添加“publicC2,publicC1”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值