点击查看:2018年3月全国计算机二级C++上机试题及答案汇总
一、程序改错题
使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错误,请补充程序中的丢失部分,使得程序运行。可以在修改处增加或者删除一条语句。
本程序完成以下功能:
(1)获得输入的两个数字d1,d2(d1=6,d2=1)。
(2)输出两个中较大的一个(输出6)。
(3)计算d1/d2,如果d2等于0,返回-l(输出结果6)。
(4)输出d1+d2的结果(输出结果7)。
(5)输出d1+1的结果(输出结果7)。
(6)输出d2-1的结果(输出结果0)。
注意:错误的语句在/********error********/的下面。修改该语句即可。其他的语句不能修改。
试题程序:
#include(iostream.h>
voidmain()
{
intd1;
intd2;
intd3;
cout<<"pleaseinputtWOnumber:"< cin>>d1>>d2;
/********error********/
d3=(d1 cout<<"Maxdatais:"< //计算d1/d2如果d2等于0,返回-l
/********error********/
d3=(d2)?d1\d2:-l;
cout<<"d1/d2="< /********error********/
d3=(--dl)+(d2++);
cout<<"d1+d2="< cout<<"d1+1="< cout<<"d2-1="< return;
}
二、简单应用题
使用VC++6.0打开考生文件夹下的源程序文件2.cpp。请完成以下两个函数。
(1)funl(intn)求出n的阶乘,必须使用递归调用。
(2)fun2(intn)求出n的阶乘,不能使用递归调用。如果n小于1则返回0。
注意:不能修改函数的其他部分。
试题程序:
#include
//必须使用递归
intfunl(intn)
{
}
//不能使用递归
intfun2(intn)
{
}
voidmain()
{
inti;
cout<<"请输入一个整数:"< cin>>i;
cout<<"输入数字的阶乘是:"< cout<<"输入数字的阶乘是:"< return;
}
三、综合应用题
使用VC++6.0打开源程序文件3.cpp。其中类TC用于把文件输出到屏幕,然后进行文件的分割。分割的方法如下:第一个文件的大小是文件的前一半,另外一个文件的大小是剩余部分。此程序将in.txt文件中的内容输出到
屏幕,并且将文件按照以上方式分割,存于文件out1.txt和out2.txt中。
其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。
(1)从输入文件中获得一个字符,并判断是否到文件结
尾,如果到文件结尾,则退出循环。请在注释1后添加适当的语句。
(2)把获得的输入文件的内容存储到bur中,并且用len
记录下文件的长度。请在注释2后添加适当的语句。
(3)将输入文件的后一半内容存储在第二个文件中,请
在注释3后添加适当的语句。
(4)使用文件流对象打开输入文件in.txt,请在注释4
后添加适当的语句。
注意:增加代码或者修改代码的位置已经用符号表示出来。请不要修改其他的程序代码。
试题程序:
#include
#include
#include classTC
{
public:
TC(char*fileName)
{
len=0;
fstreaminfile;
infile.open(fileName,ios::in);
charch;
//********1********
while()
{
cout< //********2********
}
infile.close();
}
voidsplit()
{
fstreamoutfilel;
fstreamoutfile2;
outfile1.open("out1.txt",ios::out);
outfile2.open("out2.txt",ios::out);
inti=0:
for(i=0;i {
outfilel< }
do
{
//********3********
}
while(i!=len);
outfilel.close();
outfile2.close();
}
prwate:
intlen;
charbuf[1024];
};
voidmain()
{
//********4********
TCobj();
obj.split();
return;
}
微信搜索"考试吧"了解更多考试资讯、下载备考资料
相关推荐: