2019年9月二级C++操作练习题及答案(6)

发布于 2019-04-02 10:25  编辑:simi
0
计算机等级考试题库 扫码微信刷题


因害怕计算机等级考试不过关而不敢去尝试做二级C++操作练习题,永远不能战胜自己。


二级C++操作练习题.png

2019年9月二级C++试题

【1】

简单应用题

使用VC++6.0打开考生文件夹下的源程序文件2.cpp。请完成以下两个函数。

(1)funl(intn)求出n的阶乘,必须使用递归调用。

(2)fun2(intn)求出n的阶乘,不能使用递归调用。如果n小于1则返回0。

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

试题程序:

#include

//必须使用递归

intfunl(intn)

{

}

//不能使用递归

intfun2(intn)

{

}

voidmain()

{

inti;

cout<<"请输入一个整数:"<<ENDL;< p>

cin>>i;

cout<<"输入数字的阶乘是:"<<FUNL(I)<<ENDL;< p>

cout<<"输入数字的阶乘是:"<<FUN2(I)<<ENDL;< p>

return;

}

答案://必须使用递归

jntfunl(intn)

{

if(n<=0)

return0;

if(n==1)

return1;

returnn*funl(n-1);

};

//不能使用递归

intfun2(intn)

{

if(n<=0)

retturn0;

intres=1

for(inti=1;i<=n;i++)

{

res*=i;

}

returnres;

}

 

 

【2】

综合应用题

使用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<STDLIB.H)< p>

classTC

{

public

TC(char*fileName)

{

len=0;

fstreaminfile;

infile.open(fileName,ios::in);

charch;

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

while()

{

cout<<CH;< p>

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

}

infile.close();

}

voidsplit()

{

fstreamoutfilel;

fstreamoutfile2;

outfile1.open("out1.txt",ios::out);

outfile2.open("out2.txt",ios::out);

inti=0

for(i=0;i<LEN p 2;i++)<>

{

outfilel<<BUF[I];< p>

}

do

{

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

}

while(i!=len);

outfilel.close();

outfile2.close();

}

prwate

intlen;

charbuf[1024];

};

voidmain()

{

//********4********

TCobj();

obj.split();

return;

}

答案:(1)“while()”应改为“while(infile.get(ch))”。

(2)应添加“bur[len++]=ch;bur[len]=ch;len++;”。

(3)应添加“outfile2<<BUR[I++];”或“OUTFILE2<<BUF[I];I++;”。< p>

(4)“TCobj();”应改为“TCobi("in.txt");”。

 

 

 

【3】

程序改错题

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

程序输出结果为

5

a

1

注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在//******error**

****的下面。

试题程序:

#include(iostream)

template(classT>

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

tmin(tX,ty)

{

return(x>y)?y:x;

}

voidmain()

{

intn=5:’

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

charc="a"

intd=1

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

cout<<MIN(N,N)<<ENDL:< p>

cout<<MIN(C,C)<<ENDL:< p>

cout<<MIN(D,D)<<ENDL:< p>

}

答案:(1)应改为“Tmin(TX,Ty)”。

(2)应改为“charc='a';”。

(3)应改为“usingnamespacestd;”。

 

 

 

【4】

简单应用题

使用VC++6.0打开考生文件夹下的源程序文件2.cpp。完成fun函数,使其功能为将两个按小到大排序的数组a和b,复制合并成一个有序整数序列c,其中形参n和m分别是数组a和b的元素个数。

注意:不能修改程序的其他部分,只能修改fun函数。

试题程序:

#include

voidfun(inta[],intn,intb[],intm,int*c)

{

}

voidmain()

{

intA[]={3,5,7,9,11,18,21);

intB[]={6,15,19,21,39};

intC[25],i;

for(i=0;i<25;i++)C[i]=0;

cout<<"A[]=";

for(i=0;i<7;i++)

cout<<A[I]<<',';< p>

eout<<ENDL;< p>

cout<<"B[]=";

for(i=0;i<5;i++)

coul<<B[I]<<',';< p>

cout<<ENDL;< p>

fun(A,7,B,5,C);

cout<<"C[]=";

for(i=0;i<12;i++)

cout<<C[I]((',';< p>

cout<<ENDL:< p>

return

}

答案:inti,j;

for(i=j=0;i(n&&j<M;)< p>

{

*c++=a[i]<B[J]?A[I++];B[J++]. p 比较两<>

个数组中元素大小

}

while(i<N)*C++=A[I++];< p>

while(j(m)*c++=b[j++];

 

 

 

 

【5】

综合应用题

使用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<"”C1"<<ENDL;< p>

}

};

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

classC2

{

public

voidprint()

{

cout<<"C2"<<ENDL;< p>

}

};

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

classC3

{

public

voidprint()

{

cout<<"C3"<<ENDL;< p>

}

};

voidmain()

{

C30bj3;

C20bj2;

obj3.print();

obj2.print();

return;

}

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

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

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

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



考无忧小编tips

有时候经历越多越会明白,在这个世界上,总有几样东西是别人拿不走的。比如,你读过的书、看过的风景、复习过的二级C++操作练习题,更包括你那些曾经被嘲笑过的梦想。



文章推荐:

全国计算机等级考试可以不考一级直接考二级吗?

2019年全国计算机等级考试题库“二级MS Office 高级应用考试大纲”

全国计算机等级考试报考成功后可以退费吗?(内附计算机等级考试题库)


温馨提示:

考试想拿高分吗?更多计算机等级考试题库二级ms office试题请点击查看>>>二级ms office

想要了解更多的计算机等级考试题库请点击下载>>>计算机等级考试题库

想知道更多关于计算机等级考试题库的最新资讯吗?点击进入>>>计算机等级考试题库资讯


本文网址:http://www.k51.com.cn/info/jsjdjks/1904/0250863.html
选择分享到: