return0;
}
运行时的输出结果是( )。
A.33 B.38 C.83 D.88
19. 下列选项中,不是C++关键字的是()。
A. class B. function C. friend D. virtual
20. 下列叙述中正确的是( )。
A.循环队列是队列的一种链式存储结构
B.循环队列是队列的一种顺序存储结构
C.循环队列是非线性结构
D.循环队列是一种逻辑结构
21.栈通常采用的两种存储结构是
A.A.线性存储结构和链表存储结构
B.散列方式和索引方式
C.链表存储结构和数组
D.线性存储结构和非线性存储结构
22.软件详细设计产生的图如下:
A.N—S图 图 C.程序流程图 D.E—R图
该图是( )。
23.下列叙述中正确的是
A.为了建立一个关系,首先要构造数据的逻辑关系
B.表示关系的二维表中各元组的每一个分量还可以分成若干数据项
C.一个关系的属性名表称为关系模式
D.一个关系可以包括多个二维表
三、2.填空题(12题)
24. 执行以下程序后,输出“#”号的个数是【 】。
#include<iostream.h>
main()
{
int i,j;
for(i=1;i<5;i++)
for(j=2;j<=i;j++)
cout<'#';
}
25. 在C++中,派生类有三种继承方式,它们分别是公有继承、私有继
承和【 】。
26. 一个项目具有一个项目主管,一个项目主管可管理多个项目,则实
体“项目主管”与实体“项目”的联系属于【 】的联系。
27. 关系模型的四种基本操作为插入、删除、修改和【 】。
28. 如果类中的一个成员函数的定义实现在类内,则该函数系统自动默
认为该类的【 】函数。
29. 下列函数的功能是判断字符串str是否对称,对称则返回true,否则
返回false。请在画线处填上适当内容,实现该函数。
bool fun(char*str)}
int i:0,j=0;
while(str[j]) (6) ;
for(J--;i<j&&str[i]==str[J];i++,J--);
return i (7) J;
}
30. 在析构函数中调用虚函数时,采用【 】联编。
31. 数据结构分为线性结构和非线性结构,带链的队列属于______。
32. 下面程序的运行结果是【 】
#include <iostream>
using namespace std;
int fun(int n)
{
static int m = 2;
m=m+n;
return m;
}
int main ( )
{
int a = 3, b = 4;
int x;
x = fun( a );
x = fun( b );
cout<<x<<end1;
return O;
}
33. 下列程序完成从文件读取文件显示的同时写入第二个文件,则在程
序中划线部分应该出现的语句是【 】。
#include<iostream, h>
#include<fstream, h>
void main()
{
fstream filel, file2;
char fnl [10], fn2[10], ch;
cout<<"输入源文件名";
cin>>fn1;
cout<<"输入目标文件名";
cin>>fn2;
(fn1, ios :: in);
______
while((ch=()) ! =EOF)
{
cout<<ch;
(ch)
}
file1, close()
file2, close();
}
34. 为满足运算符+的可交换性,必须将其重载为【
35. 以下程序的输出结果是【 】。
#include<iostream.h>
unsigned frn(ullsigned num)
{ unsi9ned k=1;
do{k*=num%10;num/=10;} while(num);
return k;
}
void main()
{ unsigned n=26;
cout<<fun(n) <<endl;
}
】。
四、程序改错题(10题)
36.使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序
运行时有错。请改正程序中的错误,使程序输出的结果为
100
37
32
注意:错误的语句在//******error******的下面,修改该语句即
可。
试题程序:
#include
//******error******
voidmain
{
//******error******
intm=0142:
//******error******
intn=0X27:
intq=32;
cout<<m<<endl;
cout<<n<<endl;
cout<<q<<endl;
return;
}
37.使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运
行时有错,请改正其中的错误,使程序正常运行,并使程序输出的结果
为:
sizeof(S1)=5
sizeof(s2)=10
sizeof(s3)=1
注意:不要改动main函数,不能增加或删除行,也不能更改程序的结
构,错误的语句在//******error******的下面。
(1)不能删除assert()语句。
(2)只能修改后面的数字。
提示:assert函数如果为假,则会产生一个中断异常。
试题程序:
#include
#include
voidmain()
{
char*s1="abc":
//********error********
assert(sizeof(s1)==3):
cout<<"sizeof(s1)=5"<chars2[10]="ab":
//********error********
assert(sizeof(s2)==2);
cout<<"sizeof(s2)=10"<chars3=23:
//********error********
assert(sizeof(s3)==4);
cout<<"sizeof(s3)=1"<return;
}
38.使用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<return0;
}
39.使用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="<
}
//******error******
TC:TC
{
COUI<<"Destructor"<}
voidmain
{
TCa;
a.display;
}
40.使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序
运行有问题,请改正main函数中的错误,使程序的输出结果为:
number=1
number=10
number=100
注意:不要改动main函数,不能增加或删除行。也不能更改程序的结
构,错误的语句在//******error******的下面。
试题程序:
#include
classTC
{
public:
TC(inti)
{
number=i;
}
voidSetNumber(intm)
{
number=m;
}
intGetNumberconst
{
returnnumber;
}
voidPrintconst
{
cout<<"number="<}
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=1
number=10
number=100
注意:不要改动main函数,不能增加或删除行。也不能更改程序的结
构,错误的语句在//******error******的下面。
试题程序:
#include
classTC
{
public:
TC(inti)
{
number=i;
}
voidSetNumber(intm)
{
number=m;
}
intGetNumberconst
{
returnnumber;
}
voidPrintconst
{
cout<<"number="<}
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,但该程
序运行有问题,请改正main函数中的错误,使该程序的输出结果正
确。
程序输出:
8
8
注意:错误的语句在/********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<cout<}
43.使用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="<
}
//******error******
TC:TC
{
COUI<<"Destructor"<}
voidmain
{
TCa;
a.display;
}
44.使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序
运行时有错误,请改正错误,使程序正常运行,并且要求最后一个
catch必须抛出执行的任何异常。
程序异常,输出信息为
error
O
ERROR
注意:不要改动main函数,不能增加或删除行,也不能更改程序的结
构,错误的语句在//******error******的下面。
试题程序:
#includeintmain
{
try
{
throw("error");
}
//********error********
catch(chars)
{
cout<
}
try
{
throw((int)0);
}
//********error********
catch
{
cout<
}
try
{
throw(O);
throw("error");
}
//********error********
catch
{
cout<<"ERROR"<}
return0;
}
45.使用VC++6.0打开考生文件夹下的源程序文件
1.cpp,该程序运行时有错误,请改正程序中的错误。本程序要求实
现的功能为从键盘输入一个字符串,并将结果保存到文件1.txt中。
注意:不要改动main函数,不能增加或删除行,也不能更改程序的结
构,错误的语句在
//******error******的下面。
试题程序:
#include
#include
//********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:"<cin.getline(s,1024);
WriteFile(s);
return0;
评论列表(0条)