使用VC6打开考生文件夹下的源程序文件modi1.cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,并使程序输

题目
问答题
使用VC6打开考生文件夹下的源程序文件modi1.cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,并使程序输出的结果为:  Max is 7  提示:max()函数实现找出两个数中的最大值,并作为函数值返回。  注意:错误的语句在∥******error******的下面,修改该语句即可。
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

使用VC6打开考生文件夹下的工程RevProj12。此工程包含一个源程序文件RevMain12.cpp,但在该程序中有错误。请改正程序中的错误,使它能得到正确结果。

注意:不得删行或增行,也不得更改程序的结构。

源程序文件RevMain12.cpp中的程序清单如下:

//RevMain12.cpp

include<iostream>

/* * * * FOUND * * * * */

using namespace std;

class test

{

private:

const int value;

char dep[10];

public:

/* * * * *FOUND* * * * */

test()

{

value=0;

strcpy(dep,"m");

}

/* * * * *FOUND* * * * */

test(int newvalue)

{

value=newvalue;

strcpy (dep, "m");

}

/* * * * *FOUND * * * * */

void show()

{

cout<<"value= "<<value<<end1;

}

};

int main ()

{

test t1;

const test t2;

t1.show ();

t2.show();

return 0;

}


正确答案:

第2题:

使用VC6打开考生文件夹下的工程ms9_1,此工程包含一个源程序文件test9_1.cpp,但该程序运行有问题,请改正程序中的错误,使程序的输出结果如下:

4,5

20

源程序文件test9_1.cpp清单如下:

include<iostream.h>

class A

{

protected:

int n,m;

public:

void set(int a,int b){m=a; n=b;)

void show(){cout<<m<<","<<n<<endl;)

/**********found*********/

}

class B:public A

{

int s;

public:

void set(){s=m*n;)

void shows(){cout<<s<<endl;)

};

void main()

{

B b;

/**********found**+******/

b.set();

b.show();

b.set();

/*********found**********/

b.show();

}


正确答案:(1)错误:} 正确:}; (2)错误:b.set(); 正确:b.A::set(45); (3)错误:b.show(); 正确:b.shows();
(1)错误:} 正确:}; (2)错误:b.set(); 正确:b.A::set(4,5); (3)错误:b.show(); 正确:b.shows(); 解析:(1)主要考查考生对类定义格式的掌握,类的结尾应该使用“;”;
(2)主要考查考生对基类与派生类函数调用关系的掌握,根据所要求的输出结果,应该调用的函数为类A的set,而不是类B自身的set函数,应该避免调用的二义性;
(3)主要考查考生对继承与派生的理解,由所要求输出结果可知正确:b.shows()。

第3题:

考生文件夹下有一个数据库“学校管理”,其中有数据库表“student”、“score”和“course”

(1)在考生文件夹下有程序文件“cxl.prg”,该程序的功能是检索分数小于60的学生的全部信息。请修改程序中的错误,并调试该程序,使之正确运行。考生不得增加或删减代码。

(2)编写程序“cx2.prg”,实现“输入一个数判断其是否为素数”的功能。


正确答案:
【考点指引】本大题第1小题主要考查改正在使用SQL过程时容易产生的错误;第2小题主要是简单编程,这里要用到数学函数、取整函数和循环语句。
(1)【操作步骤】
①在命令窗口中输入命令:MODI COMM cx1(回车执行),打开程序文件编辑窗口,在程序文件编辑窗口中将原程序:SELECT*FROM student WHERE学号=(SELECT学号FROM score WHERE成绩<60)中的“=”改成“IN”,关闭程序文件编辑窗口并保存程序文件。
②在命令窗口中输入命令:DO cx1(回车执行),执行程序文件。
(2)【操作步骤】
①在命令窗H中输入命令:MODI COMM cx2(回车执行),打开程序文件编辑窗口,在程序文件编辑窗口中输入以下程序代码:
INPUT〝请输入一个>2的整数:〞TO aa
bb=.T.
FoR i=2 TO INT(SQRT(aa))
IF aa/i=INT(aa/i)THEN
?STR(aa)+〝不是素数!〞
bb=.F.
EXIT
ENDIF
NEXT
IF bb THEN
?STR(aa)+〝是素数!〞
ENDIF
关闭程序文件编辑窗口并保存程序文件。
②在命令窗口中输入命令:DO cx2(回车执行),执行程序文件。

第4题:

使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错误,请改正错误,使程序正常运行,并且要求最后一个catch必须抛出执行的任何异常。

程序异常,输出信息为

error

O

ERROR

注意:不要改动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;

}


正确答案:

(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子句中的类型,否则如果找不到匹配的catch块,系统就会调用一个系统函数,使程序终止运行。即第2处的语句修改为“catch(inti)”。如果在catch子句中没有指定异常信息的类型,那么就用删节号“…”表示它可以捕捉任何类型的异常信息,即修改为“catch(…)”。


第5题:

使用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<<C.n<<endl; cout<<C0::n<<endl; }


正确答案:
(1)“staticintn=O”应改为“staticintn;”。
(2)“intCO::n;”应改为“intCO::n=0;”。
(3)“cout<<c.n<<endl;”应改为“cout<<c->n<<endl;”。
【解析】本题要在屏幕上输出两个字符,首先要静态变量初始化,第1处应改为“staticintn;”,第2处要给n赋值,第3处输出时引用c的对象,应改为“cout<<c->n<<endl;”。

第6题:

使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错误,请改正错误,使得程序输出: Hello test 注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在 //******error******的下面。 试题程序: include<iostream> //********error******** template<T> voidfun(Tt) { std::cout<<"test"<<std::endl; } //********error******** template<bool> voidfun(boolt) { std::cout<<(t?"Hell0":"Hi")<<std::endl; } intmain { //********error******** boolflag=TRUE; fun(flag); fun((int)flag); return0; }


正确答案:
(1)应改为“template<classT>”。
(2)删除“template(bool)”。
(3)应改为“boolflag=true;”。
【解析】C++中的模板类格式为template<classT>,所以第1处的语句“template<T>”应修改为“template(classT>”。在第2处的“voidfun(boolt)”函数中,t变量为布尔型变量,是C++中的基础变量,不是模板变量,没有使用到模板类,所以删除第2处的模板类型定义语句。第3处的“boolflag=TRUE;”是声明布尔型变量flag,并将其值赋为逻辑真。而TRUE并不是合法值,C++中区分大小写,所以逻辑真值应为true,即“boolflag=true;”。

第7题:

使用VC6打开考生文件夹下的工程test11_1,此工程包含一个源程序文件test11_1.cpp,但该程序运行有问题,请改正程序中的错误,使程序的输出结果如下:

ch1=7 ch2=9

源程序文件test11_1.cpp清单如下:

include<iostream.h>

class Sample

{

/**************** found ***************/

char ch1,ch2

public:

/************** found ***************/

friend void set(Sample s, char c1,char c2)

{

s.ch1=c1;

s.ch2=c2;

}

void print() {cout<<"ch1="<<" ch2="<<ch2<<end1;}

};

void main()

{

Sample obj;

/************* found ****************/

obj.set(obj,'7','9');

obj.print();

}


正确答案:(1)错误:char ch1ch2 正确:char ch1ch2; (2)错误:friend void set(Sampleschar c1char c2) 正确:friend void set(Sample &schar c1char c2) (3)错误:obj. set(obj'7''9'); 正确:set(obj'7''9');
(1)错误:char ch1,ch2 正确:char ch1,ch2; (2)错误:friend void set(Samples,char c1,char c2) 正确:friend void set(Sample &s,char c1,char c2) (3)错误:obj. set(obj,'7','9'); 正确:set(obj,'7','9'); 解析:(1)主要考查考生对于变量定义格式的掌握,结尾应该使用“;”;
(2)主要考查考生对于传值调用与引用调用区别的掌握,为了改变对象的值,在这里应该使用引用调用;
(3)主要考查考生对于友元函数概念的理解,友元函数而不是当前类的成员函数,而是独立于当前类的外部函数,在使用时应该直接调用不需要使用对象访问。

第8题:

使用VC6打开考生文件夹下的工程test28_1,此工程包含一个源程序文件test28_1.cpp,但该程序运行有问题,请改正程序中的错误,使该程序的输出结果为:

5

5

源程序文件test28_1.cpp清单如下:

include <iostream.h>

class A{

public:

/***************** found *****************

static int n=1;

A(){n++;};

~A() (n--;};

};

/***************** found *****************

int n=0;

int main() {

A a;

A b[3];

A *c=new A;

c=&a;

/***************** found *****************

cout<<c.n<<end1;

cout<<A::n<<end1;

return 0;

}


正确答案:(1) 错误:static int n=1; 正确:static int n; (2) 错误:int n=0; 正确:int A::n=0; (3) 错误:coutc.nend1; 正确:coutc->nend1;
(1) 错误:static int n=1; 正确:static int n; (2) 错误:int n=0; 正确:int A::n=0; (3) 错误:coutc.nend1; 正确:coutc->nend1; 解析:(1)在类的声明中只能对静态数据成员进行引用性声明,不能进行静态数据成员的初始化:
(2)由于静态数据成员是类的成员,所以在初始化时必须限定它所属的类:
(3)c为类的对象指针,访问类成员函数时使用符号“->”,而不能用“.”。

第9题:

使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错。请改正程序中的错误,使程序输出的结果为 100 37 32 注意:错误的语句在//******error******的下面,修改该语句即可。 试题程序: include<iostream.h> //******error****** voidmain { //******error****** intm=0142: //******error****** intn=0X27: intq=32; cout<<m<<endl; cout<<n<<endl; cout<<q<<endl; return; }


正确答案:
(1)“voidmain”。
(2)“intm=0144;”。
(3)“intn=OX25;”或“intn===0x25;”。
【解析】本题主要考查了主函数定义及幂同进制之间的转换,包括十进制到八进制,十进制到十六进制。主函数定义的定义形式为“main”,函数名之后必须是一对括号,因此第1处应改为“voidmain”。cout输出默认是以十进制方式输出的,根据题目要求输出的结果可发现变量的初值不正确,十进制的100对应八进制的144,卡进制的37对应十六进制的25,因此2和3应分别改成“intm=0144;”,“intn=0×25;”或“intn=0×25;”。

第10题:

使用VC6打开考生文件夹下的工程RevProj7。此工程包含一个源程序文件RevMain6.cpp,但该程序运行有问题。请改正主函数中的错误,使程序的输出结果是:

MyNumber=0

MyNumber=1

MyNumber=2

源程序文件RevMain6.cpp清单如下:

//RevMain6.cpp

include<iostream>

using namespace std;

class MyClass

{

public:

MyClass(int i)

{

MyNumber=i;

}

void SetMember(int m)

{

MyNumber=m;

}

int GetMember()const

{

return MyNumber;

}

void Print() const

{

cout<<"MyNumber="<<MyNumber<<end1;

}

private:

int MyNumber;

};

int main()

{

/* * * * * * * * *found* * * * * * * * *

MyClass *pObj=new MyClass(O);

pObj.Print();

/* * * * * * * * *found* * * * * * * * *

pObj->MyNumber = 1;

pObj->Print();

/* * * * * * * * *found* * * * * * * * *

MyClass. SetMember(2);

(*pObj).Print();

return O;

}


正确答案:

更多相关问题