版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021年广东省惠州市全国计算机等级考试C++语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________
一、1.选择题(10题)1.在E-R图中,用来表示实体联系的图形是
A.椭圆形B.菱形C.矩形D.三角形
2.下列关于C++函数的叙述中,正确的是A.每个函数至少要具有一个参数B.每个函数都必须返回一个值C.函数在被调用之前必须先声明D.函数不能自己调用自己
3.下列对类的构造函数和析构函数描述正确的是______。
A.构造函数不能重载,析构函数可以重载。
B.构造函数可以重载,析构也可以重载。
C.构造函数不能重载,析构函数也不能重载。
D.构造函数可以重载,析构函数不能重载。
4.一个关系数据库文件中的各条记录()。
A.前后顺序不能任意颠倒,一定要按照输入的顺序排列
B.前后顺序可以任意颠倒,不影响库中数据的数据关系
C.前后顺序可以任意颠倒,但排列/顷序不同,统计处理的结果就可能不同
D.前后顺序不能任意颠倒,一定要按照关键词段值的顺序排列
5.下列选项中不全是C++语言关键字的是
A.const,break,default
B.long,void,using
C.virtual,extem,include
D.try,throw,this
6.下面不属于C++语言的基本数据类型的是()。
A.字符类型B.整数类型C.逻辑类型D.枚举类型
7.栈和队列______。
A.共同之处在于二者都是先进先出的特殊的线性表
B.共同之处在于二者都是先进后出的特殊的线性表
C.共同之处在于二者都只允许在顶端执行删除操作
D.没有共同之处
8.需求分析中开发人员要从用户那里了解()。
A.软件做什么B.用户使用界面C.输入的信息D.软件的规模
9.下面描述中属于软件测试目的的是
A.改正程序中的错误B.发现程序中的错误C.表明程序没有错误D.验证程序的可靠性
10.对关系S和关系R进行集合运算,结果中既包含S中元组也包含R中元组,这种集合运算称为()。
A.并运算B.交运算C.差运算D.积运算
二、单选题(13题)11.已知枚举类型声明语句为:enumCOl,OR{WHITE,YELLOW,GREEN=5,RED,BLACK=10};则下列说法中错误的是()。A.枚举常量YELLOW的值为1
B.枚举常量RED的值为6
C.枚举常量BLACK的值为10
D.枚举常量WHITE的值为1
12.设函数中有整型变量n,为保证其在未赋初值的情况下初值为0,应选择存储类别是()。
A.autoB.registerC.staticD.auto或register
13.有下列程序:#include<stdi0.h>intf(intx){inty;if(x==0‖x==1)return(3);y=x*x-f(X-2);returny;}voidmain(){intZ;z=f(3);printf("%d\n",z);}程序的运行结果是()。A.0B.9C.6D.8
14.下列说法正确的是()。
A.内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方
B.内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方
C.类的内联函数必须在类体内定义
D.类的内联函数必须在类体外通过加关键字inline定义
15.一个队列的进队列顺序是1,2,3,4,则出队列顺序为()。
A.4,3,2,1B.2,4,3,1C.1,2,3,4D.3,2,1,4
16.关于函数重载,下列叙述中错误的是A.重载函数的函数名必须相同。
B.重载函数必须在参数个数或类型上有所不同。
C.重载函数的返回值类型必须相同。
D.重载函数的函数体可以有所不同。
17.一个关系中属性个数为1时,称此关系为()。
A.对应关系B.单一关系C.一元关系D.二元关系
18.在一个被调用函数中,关于rerun语句的描述,______是错误的。
A.被调用函数中可以不用return语句
B.被调用函数中可以使用多个return语句
C.被调用函数中,如果有返回值,就一定要有return语句
D.被调用函数中,一个return语句可以返回多个值给调用函数
19.下面对于友元函数描述正确的是()。
A.友元函数的实现必须在类的内部定义
B.友元函数是类的成员函数
C.友元函数破坏了类的封闭性和隐藏性
D.友元函数不能访问类的私有成员
20.若为Fraction类重裁前增1运算符++,应在类体中将其声明为()。
A.A.Fraction&poerator++();
B.B.Fraction&poeralor++(int);
C.C.friendFraction&operator++();
D.D.friendFraction&operator++(int);
21.以下哪个不是C++语言中的有效标识符?A.34aB.-ABC.A-BD.A25
22.
23.下面程序的运行结果是()。#include<iostream.h>voidmain(){inti=1:while(i<=8)if(++i%3!=2)continue;elsecout<<i;}A.25B.36C.258D.369
三、2.填空题(12题)24.类模板不同于函数模板,类模板只可用【】型参数。
25.定义类对象时自动调用【】为类对象中的数据成员赋初值。
26.程序文件的编译错误分为连接错误和【】两类。
27.以下程序的输出结果是【】。
#include<iostream.h>
voidfun()
{staticinta=0;
a+=2;
cout<<a<<"";}
voidmain()
{intcc;
for(cc=1;cc<4;cc++)
fun();
cout<<end1;}
28.C++语言中关键字运算符有new,delete和【】。
29.mystrlen函数的功能是计算str所指字符中的长度,并作为函数值返回,请填空。
intmystrlen(char*str)
{inti;
for(i=0;【】!='\0';i++);
return(i);}
30.测试分为白箱法和黑箱法,______又称为逻辑覆盖测试。
31.在下面程序横线处填上适当内容,使程序输出为:55599。
#include<iostream>
usingnamespacestd;
template<classTYPE>
classHisClass
{
TYPEdata;
public:
HisClass(TYPEa,TYPEb,TYPEC);
TYPEgetData(){returndata;)
};
template<classTYPE>
HisClass<TYPE>::HisClass(TYPEa,TYPEb,TYPEC)
{
【】;
else主f(b>C)
data=b;
else
data=c;
}
intmain()
{
HisClass<int>x1(3,4,5),x2(5,3,4),x3(4,5,3),x4(7,8,9),x5(8,7,9);
cout<<x1.getData()<<x2.getData()<<x3.getData()
<<x4.getData()<<X5.getData();
return0;
}
32.C++语句constchar*constp="hello";,所定义的指针p和它所指的内容都不能被【】。
33.在数据库逻辑结构的设计中,将ER模型转换为关系模型应遵循相关原则。对于三个不同实体集和它们之间的多对多联系m:n:p,最少可转换为【】个关系模式。
34.关系代数是关系操作语言的一种传统表示方式,它以集合代数为基础,它的运算对象和运算结果均为______。
35.一个C++语言程序的开发步骤通常包括编辑、【】、链接、运行和调试。
四、程序改错题(10题)36.使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,输出的结果为Constructor,i=0,Destructor注意:错误的语句在//******error******的下面,修改该语句即可。试题程序:#include(iostream.h)classTC{inti;public:TC;voiddisplay;~TC;};//******error******TC:TC{cout<<"Constructor"<<",";i=0;)//******error******TC:display{tout<<"i="<<i<<","<<endl;}//******error******TC:TC{COUI<<"Destructor"<<endl:}voidmain{TCa;a.display;}
37.使用VC++6.0打开考生文件夹下的源程序文件
1.cpp,该程序运行时有错误,请改正程序中的错误。本程序要求实现的功能为从键盘输入一个字符串,并将结果保存到文件1.txt中。
注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在
//******error******的下面。
试题程序:
#include<iostream>
#include<fstream>
//********error********
usingstd;
voidWriteFile(char*s)
{
ofstreamout1;
//********error********
out1.open("1.txt",binary|app);
for(inti=0;s[i]!=0;i++)
{
//********error********
out1.puts(s[i]);
}
out1.close;
}
voidClearFile
{
ofstreamout1;
out1.open("1.txt");
out1.close;
}
intmain
{
chars[1024];
ClearFile;
cout<<"pleaseinputastrin9:"<<endl;
cin.getline(s,1024);
WriteFile(s);
return0;
}
38.使用VC++6.0打开考生文件夹下的源程序文件1.cpp。本程序要求输入一个字符串,然后将其中的小写字母改成大写字母,字符可能输入多行,当输入字符“?”时,默认字符输入结束,最后把结果输出到屏幕中。注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在//******error******的下面。试题程序:#include<iostream.h>voidmain{inti=0;charstr[120];cout<<"Enterastringendwith?."<<endl;//********error********cin.getline(str,120);//********error********while(str){//********error********if(str[i])=a)str[i]=str[i]-a+A;i++;}cout<<str<<endl;return;}
39.使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,并使程序输出的结果为:
sizeof(S1)=5
sizeof(s2)=10
sizeof(s3)=1
注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在//******error******的下面。
(1)不能删除assert()语句。
(2)只能修改后面的数字。
提示:assert函数如果为假,则会产生一个中断异常。
试题程序:
#include<iostream.h>
#include<assert.h>
voidmain()
{
char*s1="abc":
//********error********
assert(sizeof(s1)==3):
cout<<"sizeof(s1)=5"<<endl;
chars2[10]="ab":
//********error********
assert(sizeof(s2)==2);
cout<<"sizeof(s2)=10"<<endl;
chars3=23:
//********error********
assert(sizeof(s3)==4);
cout<<"sizeof(s3)=1"<<endl;
return;
}
40.使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行有问题,请改正main函数中的错误,使程序的输出结果为:
number=1
number=10
number=100
注意:不要改动main函数,不能增加或删除行。也不能更改程序的结构,错误的语句在//******error******的下面。
试题程序:
#include<iostream.h>
classTC
{
public:
TC(inti)
{
number=i;
}
voidSetNumber(intm)
{
number=m;
}
intGetNumberconst
{
returnnumber;
}
voidPrintconst
{
cout<<"number="<<number<<endl;
}
private:
intnumber;
};
voidmain
{
//********error********
TCobjl;
objl.Print;
TCobj2(3);
//********error********
objl.number=10;
//********error*‰******
TC.SetNumber(100);
objl.Print;
obj2.Print;
}
41.使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行有问题,请改正main函数中的错误,使程序的输出结果为:number=1number=10number=100注意:不要改动main函数,不能增加或删除行。也不能更改程序的结构,错误的语句在//******error******的下面。试题程序:#include<iostream.h>classTC{public:TC(inti){number=i;}voidSetNumber(intm){number=m;}intGetNumberconst{returnnumber;}voidPrintconst{cout<<"number="<<number<<endl;}private:intnumber;};voidmain{//********error********TCobjl;objl.Print;TCobj2(3);//********error********objl.number=10;//********error*‰******TC.SetNumber(100);objl.Print;obj2.Print;}42.使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错误,请改正错误,使程序正常运行,并且要求最后一个catch必须抛出执行的任何异常。程序异常,输出信息为errorOERROR注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在//******error******的下面。试题程序:#include<iostream.h)intmain{try{throw("error");}//********error********catch(chars){cout<<s<<endl;}try{throw((int)0);}//********error********catch{cout<<i<<endl;}try{throw(O);throw("error");}//********error********catch{cout<<"ERROR"<<endl;}return0;}
43.使用VC++6.0打开考生文件夹下的源程序文件1.cpp。本程序要求输入一个字符串,然后将其中的小写字母改成大写字母,字符可能输入多行,当输入字符“?”时,默认字符输入结束,最后把结果输出到屏幕中。
注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在//******error******的下面。
试题程序:
#include<iostream.h>
voidmain
{
inti=0;
charstr[120];
cout<<"Enterastringendwith?."<<endl;
//********error********
cin.getline(str,120);
//********error********
while(str)
{
//********error********
if(str[i])=a)
str[i]=str[i]-a+A;
i++;
}
cout<<str<<endl;
return;
}
44.使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错误,请改正程序中的错误,使得程序输出:
9,8,7,6,5
注意:错误的语句在/********error********/的下面,修改该语句即可。其他的语句不能修改。
试题程序:
#include(iostream.h>
classTC
{
/********error********/
TC(inti)
{
m_i=i;
}
voidprint
{
cout<<--m_i<<,;
}
public:
intm_i;
};
intmain
{
/********error********/
inti;
TC04(10);
while(i>5)
{
/********errOr********/
i++:
04.print;
}
cout<<endl;
return0;
}
45.使用VC++6.0打开考生文件夹下的源程序文件1.cpp,但该程序运行有问题,请改正main函数中的错误,使该程序的输出结果正确。程序输出:88注意:错误的语句在/********error********/的下面。修改该语句即可,其他的语句不能修改。试题程序:#include(iostream.h>classCO{public:/********error********/staticintn=0:CO{n++:}~CO{n--:}}:/********error********/intCO::n;voidmain{COobj;COobj2[7];CO*C=NULL:c=&obj:/********error********/eout<<C.n<<endl;cout<<C0::n<<endl;}五、综合应用题(2题)46.使用VC++6.0打开考生文件夹下的源程序文件3.cpp。其中定义的类不完整,按要求完成下列操作,将类的定义补充完整。(1)定义类的公有数据成员函数N0、Name[32],其中N0是int型的数据,Name[32]为字符型。请在注释1后添加适当的语句。(2)完成函数Set的定义,分别设置N0和Name的值,请在注释2后添加适当的语句。(3)完成函数print,请在注释3后添加适当的语句,输出结果如下:N0=12345Name=HelloWorld!(4)添加默认构造函数,设置N0为0,Name为空,请在注释4后添加适当的语句。注意:增加或者修改代码的位置已经用符号表示出来,请不要修改其他的程序代码。试题程序:#include<iostream.h>classTC{public://********1********//********2********{No=no;for(inti=0;strName[i]!=0;i++){Name[i]=strName[i];Name[i+1]=0;}}voidprint(){//********3********}TC(){//********4********)};intmain(){TCstu:stu.Set(12345,"HelloWorld!");stu.print();return0;}47.使用VC++6.0打开考生文件夹下的源程序文件3.cpp。请完成以下部分,实现在屏幕上输出为C3C2这个程序需要修改的部分,请按照以下部分实现。(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;}};//********3********classC2:{public:voidprint{cout<<"C2"<<endl;}};//********4***x****classC3:{public:voidprint{cout<<"C3"<<endl;}};voidmain{C30bj3;C20bj2;obj3.print;obj2.print;return;}六、3.综合应用题(2题)48.使用VC6打开考生文件夹下的工程MyProj6。此工程包含一个源程序文件MyMain6.cpp。在程序中,定义了一个Furniture类,Bed类和Sofa类是在Furniture类的基础上按公有继承的方式产生的派生类,Sleepersofa类是在Bed类和Sofa类的基础上按公有继承的方式产生的派生类。
请按要求完成下列操作,将类Date的定义补充完成:
①Bed类是在Furniture类的基础上按公有继承的方式产生的派生类,为了使程序中的多重继承关系不出现二义性。请在注释“//**1**”之后添加适当的语句。
②Sofa类是在Furniture类的基础上按公有继承的方式产生的派生类,为了使程序中的多重继承关系不出现二义性。请在注释“//**2**”之后添加适当的语句。
③Sleepersofa类是在Bed类和Sofa类的基础上按公有继承的方式产生的派生类。请在注释“//**3**”之后添加适当的语句。
注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
源程序文件MyMain6.cpp清单如下;
//MyMain6.cpp
#include<iostream>
usingnamespacestd;
classFurniture
{
public:
Furniture(){}
voidsetweight(intw)
{
weight=w;
}
intgetweight()
{
returnweight;
}
protected:
intweight;
};
//**1**classBeddefinition
{
public:
Bed(){}
voidsleep()
{
cout<<"sleeping..."<<end1;
}
};
//**2**classSofadefinition
{
public:
Sofa(){}
voidwatchTV()
{
cout<<"watchingTV..."<<end1;
}
};
//***3***
{
public:
Sleepersofa(){}
voidFoldout()
{
cout<<"Foldoutthesofa".<<endl;
};
intmain()
{
Sleepersofass;
ss.setweight(20);
cout<<ss.getweight()<<end1;
return0;
}
49.使用VC6打开考生文件夹下的工程MyProj10。此工程包含一个源程序文件MyMain10.cpp。程序中定义了两个类Base和Derived,但类的定义并不完整。
请按要求完成下列操作,将类的定义补充完成:
①类Derived是基类Base公有派生来的。请在注释“//**1**”之后添加适当的语句。
②完成构造函数Derived(inti)定义,采用初始化列表的方式使基类Base私有成员a初始化为i+1,类Derived的私有成员b初始化为i。请在注释“//**2**”之后添加适当的语句。
③完成类Derived的成员函数show()的类体外的定义。函数show()中要显式调用基类的show()函数,然后要输出私有成员b的值。请在注释“//**3**”之后添加适当的语句。
注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
源程序文件MyMain10.cpp清单如下:
//MyMain10.cpp
#include<iostream>
usingnamespacestd;
classBase
{
public:
Base(intx)
{
a=x
}
voidshow()
{
cout<<a;
}
private:
inta;
};
//***1***
{
public:
//***2***
voidshow();
private:
intb;
};
voidDerived::show()
{
//***3***
}
intmain()
{
Derivedd(1),*pb;
pb=&d;
pb->show();
return0;
}
参考答案
1.C解析:E-R图中用矩形表示实体(等同于表),用椭圆形表示实体的属性(等同于表中的字段),用菱形表示实体关系(等同于外键)。
2.C解析:本题考核函数的声明和调用。定义一个函数就是为了以后的调用,但如果函数定义在后面而调用在前,就会产生编译错误。为此,必须将函数定义在前或在调用前进行“函数的说明”。函数说明消除了函数定义的位置影响。C选项的描述是正确的。函数可以没有参数,可以没有返回值。递归函数就是自己调用自己。所以A、B和D选项的描述都是错误的。
3.A
4.B解析:关系数据库的逻辑性强而物理性少,因此关系数据库中的各条记录前后顺序可以任意颠倒,不影响库中数据的数据关系。
5.C解析:要熟练掌握c++语言中的关键字。注意:include不是C++语言的关键字。注意:define也不是关键字。
6.B解析:本题考核C++数据类型范围。C++中unsignedchar类型的数据其取值范围为0~127,所以题中value加1后,其值将变为0。因此程序的最后输出为100,即B选项。
7.C
8.A解析:需求分析是软件定义时期的最后一个阶段,它的基本任务就是准确问答“系统必须做什么”。这个问题即软件系统功能,需求分析的任务还不是确定系统怎样完成它的工作,而仅仅是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。
9.B解析:软件测试的目标是在精心控制的环境下执行程序,以发现程序中的错误,给出程序可靠性的鉴定。测试不是为了证明程序是正确的,而是在设想程序有错误的前提下进行的,其目的是设法暴露程序中的错误和缺陷。有人将测试的挑剔性总结为以下三点:①测试是程序执行的过程,目的在于发现错误;②一个好的测试在于能发现至今未发现的错误;③一个成功的测试是发现了至今未发现的错误。由于测试的这一特征,一般应当避免由开发者测试自己的程序。测试只能说明程序有错,而不能证明程序无错,希望通过有限次的测试就能发现程序中的所有错误是不可能的,即完全测试是不可能的。由此可知,选项A、C、D都不属于软件测试目的。
10.A解析:本题考查集合运算。在关系数据库理论中,两个关系的并是由属于这两个关系的元组组成的集合,故选项A正确。两个关系的交是由既属于一个关系又属于另一个关系的元素组成的集合,两个集合的差运算是由从一个集合中去掉另一个集合中有的元素组成。两个集合的交运算是由既属于前一个集合又属于后一个集合的元素组成。
11.D枚举变量中的枚举元素系统是按照常量来处理的。如果没有进行元素赋值操作,那么元素将会被系统从0开始自动递增地进行赋值操作,但是,如果一旦定义了某一个元素的值,那么系统将对下一个元素进行按前一个元素的值加1操作,故WHITE=0,YELLOW=1,GREEN=5,RED=6,BLACK=10。
12.CC。【解析】未赋初值的静态局部变量,编译程序自给它赋初值0。所以选择C。
13.CC。【解析】本题考查了函数的调用,在f函数中将实参传给X,判断if语句为假。接着执行y=3*3=f(1),再执行f(1)而f(1)满足if条件语句,所以f(1)的值为3,那么代入y=3*3-f(1)=9-3=6,故选项C正确。
14.B解析:本题考查的是内联函数的定义,引入内联函数是为了解决程序中函数调用的效率问题,是以目标代码的增加为代价换取时间的节省;一般函数在运行时被调用,而调用的内联函数在编译时就被替代了,如果不加inline关键字,则编译器会将在类说明部分定义的任何函数都被认定为内联函数。
15.C解析:队列是指允许在一端进行插入,而在另一端进行删除的线性表。因此队列又称为先进先出的线性表。本题正确答案为选项C。
16.C解析:本题考查的知识点是:函数重载。在C++语言中,允许定义一系列函数名相同,但形参的个数或类型不完全相同函数。这种定义就叫做函数的重载。重载函数对返回值类型不作要求,返回值类型也不参与区分函数的重载形式。故本题应该选择C。
17.C解析:在关系模型数据库中,基本结构是二维表,这种二维表称为关系。关系的列称为属性,一个具有N个属性的关系称为N元关系。注意:各种关系查询语言与过程性语言和非过程性语言的关系,过程性语言的特点。
18.D解析:被调用函数中,一个return语句只能返回一个值给调用函数。
19.C
20.CC。【解析】声明必须以友元friend开头。为了区分,用++表示前自增,用++(int)表示后自增。
21.A在C++语言中,标识符只能由数字,字母,下划线组成,并且第一个字符不能是数字。注意:选项A是以数字开始的。注意:关键字不能用作标识符。
22.A
23.CC。【解析】应该先做++运算,然后进行%运算,最后比较不等式,实际上最后输出的结果就是被3除,余数为2的不大于8的数。
24.类类解析:本题考查的是类模板的定义,C++语言中模板分为两种:类模板和函数模板,类模板只能用于类型参数,函数模板可以重载。
25.构造函数构造函数解析:构造函数在初始化对象时便会自动调用。
26.语法错误语法错误解析:程序文件的编译错误分为语法错误和连接错误。
27.246246解析:本题考查静态局部变量的使用。用关键字static声明的局部变量为“静态局部变量”,其值在函数调用结束后不消失而保留原值,即其占用的存储单元不释放,在下一次该函数调用时,该变量已有值,就是上一次函数调用结束时的值。
28.sizeofsizeof解析:C++语言中关键字运算符有3个分别new,delete和sizeof。new是申请内存,delete是释放内存,sizeof是求字节数。
29.*(str+i)或str[i]*(str+i)或str[i]解析:str是指针变量,它指向字符型数据,在循环过程中,可以用*(str+i)来访问字符串中的第i个元素,判断是否是结束标志,如果不是,i=i+1,继续取下一个元素进行判断,直到*(str+i)的值为'\\0'为止,也可以用下标的方式引用字符,如*(str+i)相当于str[i]。注意:C++中字符串指针的相关问题。
30.白箱法白箱法解析:白箱测试是根据程序内部逻辑结构的分析来选取测试用例。由于测试用例对程序的逻辑覆盖程序决定了测试的完全性的程度,因此白箱测试也称为逻辑覆盖测试。
31.if(a>b&&a>C)data=aif(a>b&&a>C)data=a解析:本题考核类模板的定义。其构造函数实现的功能是将a、b、c中的最大值赋给私有成员data。
32.改变改变解析:本题考查的是定义常量的关键字const,由const定义的变量的值不可以再改变,所以定义时必须进行初始化。
33.44解析:将ER图转换为关系模型的转换方法有:一个实体型转换为一个关系模式;一个m:n联系转换为一个关系模式;三个或三个以上实体间的一个多元联系转换为一个关系模式。因此,本题答案为4。
34.关系关系解析:关系代数是关系操纵语言的一种传统表示方式,它以集合代数为基础发展起来的,但它的运算对象和运算结果均是关系,这些新关系仍可以使用同样的代数运算进一步操作。关系代数也是一种抽象的查询语言,它通过对关系的运算来表达查询和修改处理的需求。
35.编译编译解析:C++语言程序开发的基本步骤是编辑、编译、链接、运行和调试。36.(1)应改为“TC::TC”。(2)应改为“voidTC::display”。(3)应改为“TC::~TC”。【解析】在类的外部定义成员函数时,必须在成员函数前面加上类名和作用域运算符“::”,作用域运算符用采表示某个成员属于哪个类,使用格式为“(类名)::<成员函数>((参数函数)),因此第1处应改为“TC::TC”,默认构造函数没有参数。由第2处“TC::display”后的语句看,这是在类外实现TC函数,因此也有作用域运算符使用错误问题,display函数返回值为void,因此第2处的语句应改为“voidTC::display”。由第3处的语句“TC::TC”可知,显然这里是在类外实现析构函数,析构函数是一个特殊的函数,它的名称和类名相同,并在前面加“~”字符,用采与构造函数加以区别,因此第3处的语句应改为“TC::~TC”。
37.(1)应改为“usingnamespacestd;”。
\n(2)应改为“outl.open('1.txt',ios::binary|ios::app);”。
\n(3)应改为“out1.put(s[i]);”。
\n【解析】本题第1处的“usingstd;”是在程序中引入标准命名空间std,对于C++中引入标准命名空间的格式,缺少namespace,所以第1处的语句修改为“usingnamespacestd;”。第2处,调用成员函数open中,输入、输出方式是在ios类中定义的,所以“out1.open('1.txt',binary|app);”语句缺少类ios,即第2处的语句修改为“out1.open('1.txt',ios::binary|ios::app);”。第3个标识应该用流成员函数put输出字符,所以第3处的语句修改为“out1.put(s[i]);”。
38.(1)应改为“ein.getline(str,120,?);”。
(2)应改为“while(str[i])”。
(3)应改为“if(str[i]>=a&&str[i]<=2)”。
【解析】本题中要求以输入字符“?”为结束符,用于字符输入的流成员函数getline函数读入一行字符,格式为“cin.getline(字符数组,字符个数,终止标志字符)”,所以第1处改为“cin.getline(str,120,?);”。第2处的“while(str)”语句应该是判断字符串str中的每一个字符是否为结束符,若不是结束符,在循环中判断每一个字符是否为小写,若为小写,则转换。所以应该修改为“while(str[i])”。第3处的“if(str[i]>=a)”语句是判断字符str[i]是否为小写字符,而现有的语句只是判断字符是否大于a,但是小写字符应该是a到2,所以修改为“if(str[i]>=a&&str[i]>=z)”。
39.(1)应改为“assert(sizeof(s1)==4);”。
\n(2)应改为“assert(sizeof(s2)==1O);”。
\n(3)应改为“assert(sizeof(s3)==1);”。
\n【解析】assert函数如果为假,则会产生一个中断异常。所以要让它正常执行输出结果,那么assert函数只有为真,才不会产生中断异常。“assert(sizeof(s1)==3);”语句中“sizeof(s1)==3”为假,这会使程序产生异常,不能正常执行。因为str1的值为abc,但是它还有一个尾符,它的长度应该是4,而不是3,所以在第1处修改为“assert(sizeof(s1)==4);”。str2[10]说明,str2的空间为10,在第2处修改为“assert(sizeof(s2)==10);”。charstr3=23;语句说明23是字符,所占存储空间为1,所以修改为“assert(sizeof(s3)==1);”。
40.(1)应改为“TCobjl(1);”。
\n(2)应改为“0bj1.SetNumber(10);”。
\n(3)应改为“0bj2.SelNumber(100);”。
\n【解析】本题第1处的“TCobjl;”语句是声明TC类的对象0bj1,根据TC类构造函数的定义TC(inti),存在整型参数,并且题目要求第一个输出结果两1,所以补全参数1,即第1处的“TCobjl(1);”。第2处处的“objl.number=10;”应该是调用成员函数SetNumber赋值。在C++中成员函数的使用形式应该是:对象名.成员函数,所以修改为“obj1.SetNumber(10);”。类是对象的抽象,而对象是类的具体实例。第3处“TC.SetNumber(100);”语句中的TC为类,并不是对象,这里应该使用定义的对象,即obj2,所以将语句修改为“obj2.SetNumber(100);”。
41.(1)应改为“TCobjl(1);”。(2)应改为“0bj1.SetNumber(10);”。(3)应改为“0bj2.SelNumber(100);”。【解析】本题第1处的“TCobjl;”语句是声明TC类的对象0bj1,根据TC类构造函数的定义TC(inti),存在整型参数,并且题目要求第一个输出结果两1,所以补全参数1,即第1处的“TCobjl(1);”。第2处处的“objl.number=10;”应该是调用成员函数SetNumber赋值。在C++中成员函数的使用形式应该是:对象名.成员函数,所以修改为“obj1.SetNumber(10);”。类是对象的抽象,而对象是类的具体实例。第3处“TC.SetNumber(100);”语句中的TC为类,并不是对象,这里应该使用定义的对象,即obj2,所以将语句修改为“obj2.SetNumber(100);”。42.(1)应改为“catch(char*s)”。(2)应改为“cateh(inti)”。(3)应改为“catch(…)”。【解析】本题中第1个标识前的异常抛出语句为“throw("error");”,其中的类型为字符串。所以对应的异常捕捉语句catch中应该符合这个类型,而程序中给出的语句“catch(chars)”是字符型的,所以第1处的语句修改为“catch(char*S)”。第2个标识前的异常抛出语句为“throw((int)0);”,其中的类型为int。对应的异常捕捉语句catch中应该符合这个类型,所以补充catch子句中的类型,否则如果找不到匹配
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年高职AI训练师(模型优化)试题及答案
- 冷库节能改造实施方案
- JBT 15111-2025 养猪设备 漏缝板标准立项发展报告
- 复杂地质边坡支护结构设计报告
- 嘉祥县2027届四年级数学第一学期期末质量跟踪监视试题含解析
- 2026湖北黄冈应急管理职业技术学院非事业编合同制教师(第一批)招聘30人考试模拟试题及答案详解
- 海信集团2027届信动力计划校园招聘考试参考题库及答案详解
- 2026浙江杭州市西湖区慧仁幼儿园招聘幼儿教师(非事业)1人考试参考题库及答案详解
- 优化采购流程规范通知(3篇范文)
- 2026年8月海南昌江黎族自治县医疗集团公开考核招聘石碌镇山竹沟村卫生室编外乡村医生1人考试备考试题及答案详解
- 2021变电站用充气式开关柜运维检修规程
- 风电场项目部重大危险源监控管理制度培训
- 2026年IHC希望杯数学培训100题-6年级+答案
- 影像科错误报告的更正及重新报告制度
- 特种设备维护保养检查记录表(低温压力容器)
- 电力重大事故隐患判定标准及治理监督管理规定宣贯
- 卫生健康系统职业技能竞赛中药调剂竞赛综合试题
- 2025~2026学年湖北省云学联盟高一上学期12月阶段性练习语文试卷
- 铁路货物运输管理规范及运营流程
- 2026绍兴上虞区事业单位编外招聘15人考试参考题库及答案解析
- 许林芳讲管理七剑课件
评论
0/150
提交评论