2023年吉林省吉林市全国计算机等级考试C++语言程序设计模拟考试(含答案).docx
2023年吉林省吉林市全国计算机等级考试C+语言程序设计模拟考试(含答案)学校:班级:姓名:考号:一、1.选择题(10题)1 .有如下程序 #include < iostream.h > void main() char ch25="6937", "8254", *p2 ; inti, j, s = 0 ; for(i = 0 ;i(2 ;i+)pi = chi ; for(i = 0 ; i(2 ; i+) for(j = 0 ; pij > '0, j+ 二 2) s = 10*s+pij- 101 ; cout< <s ; )该程序的输出结果是()。A.69825 B.63825 C.6385 D.6938252 .有以下程序:#include iestreamusing namespace std ; int f(int n) if(n= 1) return 1 ; else return f(n-1)+1 ; int main() inti, j=0 ; for(i=l ; i<3 ; i+)j+=f(i) ; cout<3 .下面程序的结果为 #includeniostream . hn voidchange(int a, int b) int temp ; temp二a ; a = b ; b=temp ; void main() int m, n ; m=8 ; n=9 ; change(m, n) ; cout < < m < < n n < < n < < endl ; A.8 9 B.9 8 C.程序有错误D.9 94 .已知一个运行正常的的程序中有下面两个语句:int *pl,*p2=&a;Pl=b由此可知,变量a和b的类型分别是A.int 和 int B.int*和 int C.int 和 At* D.int*和 intpublic:Derived2() x=20;);class Derived: public Derived 1, protected Derived2);int main()(Derived obj;cout < < obj.x < < endl;return 0;)该程序运行后的输出结果是【】。35 .度为10的线性表进行冒泡排序,最坏情况下需要比较的次数为四、程序改错题(10题)36 .使用VC+ + 6 .0打开考生文件夹下的源程序文件1 .cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,输出的结果为Constructor, i=0,Destructor注意:错误的语句在/ / *error*的下面,修改该语句即可。试题程序:#include(iostream . h)classTCpublic :TC ;voiddisplay ;TC ;vt*不下不不不,、eu*or,,、个个不不TC : TC cout«nConstructorn«n," i=0;不下不不不不erpor不小不不不不TC : display tout<<ni=n«i«H, n«endl ;TC : TCCOUI«nDestructorn«endl :voidmainTCa ;a . display ;37 .使用VC + + 6 .。打开考生文件夹下的源程序文件1 .cpp,该程序运行时有错误,请改正程序中的错误。本程序要求实现 的功能为从键盘输入一个字符串,并将结果保存到文件1 . txt中。注意:不要改动main函数,不能增加或删除行,也不能更改程序的结 构,错误的语句在error的下面。试题程序:#include<iostream>#include<fstream>vl* vl*vl*个个个个个个个个rror个个*个个个个个usingstd ;voidWriteFile(char*s) (ofstreamoutl ;rT*erroroutl . open(nl . txt", binary|app);for(inti=0 ; si!=0 ; i + +) outl . puts(si); )errorri>outl . close ;)voidClearFile ofstreamoutl ;outl . open(nl . txt");outl . close ;)intmain(chars 1024;ClearFile ;cout«npleaseinputastrin9 :n«endl ;cin . getline(s, 1024);WriteFile(s);returnO ;)38.使用VC+6.。打开考生文件夹下的源程序文件1. cpp,该程序运行时有错误,请改正错误,使程序正常运行,并且要求最后一个catch必须抛出执行的任何异常。程序异常,输出信息为errorOERROR注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在/ / *error*的下面。试题程序:#include<iostream. h)try throw(nerrorn);vl* vl* wj> k!> «1>>J> *1> *J> *1> vl* *J> *1>个个个个个个个个rror个个*个个个个个catch(chars) cout«s«endl;throw(int)0);个个个个个个个个nor个个个个个个个小catch cout«i«endl;) try throw(O);throw(nerrorn);kI*vt*vl* kL*个不不不不不不不noi*不不不不不不不不catch cout«nERRORn«endl;returnO ;运行有问题,请改正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«nnumber=n«number«endl;)private:;voidmain1#X# £#2*个个个个个个个个rror个个个个个个个个TCobjl;objl. Print;TCobj2(3);k|>*.1> *1> kI> k|> k|> <t>k¥> kI> *1> kJ> 7,7,个个个个个个个个个个个个个个个个objl. number=10;! I * error* *TC. SetNumber(lOO);objl. Print;obj2. Print; )40.使用VC+ +6 .0打开考生文件夹下的源程序文件1 .cpp,该程序运 行时有错误,请改正程序中的错误,使得程序输出:9, 8, 7, 6, 5注意:错误的语句在/ *error* /的下面,修改该语句即 可。其他的语句不能修改。试题程序:#include(iostream . h>classTCvl* vl* *L* vi*个不个个小小个不小小个个个个个TC(inti) voidprint cout«m_i«, public :intm i ;intmain7,7" 7,7” 7,k1> 个个个个个不个个enr个个干干不干个个inti ;TC04(10);while(i>5)! * * * /i+ + :04 . print ;cout«endl ;returnO ;运行时有错。请改正程序中的错误,使程序输出的结果为1003732注意:错误的语句在/ / *error*的下面,修改该语句即可。试题程序:#include<iostream. h>* eiror* * * * * *voidmain* error* * * * * *intm=0142:* eiror* * * * * *intn=0X27 :intq=32;cout<<m<<endl;cout< <n< <endl;cout< <q<<endl;return ;42.使用VC+6. 0打开考生文件夹下的源程序文件1.cpp,该程序 运行时有错,请改正其中的错误,使程序正常运行,输出的结果为 Constructor, i=0,Destructor注意:错误的语句在/ / *error*的下面,修改该语句即 可。试题程序:#include(iostream. h) classTC (inti;public:TC;voiddisplay;TC;TC:TCcout«nConstructorn«n,"; i=0;)/vt*vL* 1*/不不不不不不error不不下不不不TC: display5 .下面对静态数据成员的描述中,正确的是()。A.静态数据成员是类的所有对象共享的数据B.类的每个对象都有自己的静态数据成员C类的不同对象有不同的静态数据成员值D.静态数据成员不能通过类的对象调用6 .如果类A被说明成类B的友元,则()。A.类A的成员即类B的成员B.类B的成员即类A的成员C.类A的成 员函数不得访问类B的成员D.类B不一定是类A的友元7 .以下程序的运行结果是 #inchide < iostream.h > void sub(int x,int y,int *z) *z=y-x ; void main() int a,b,c ; sub(10,5,&a) ; sub(7,a,&b); sub(a,b,&c) ; cout < < a < << < b < << < c < < en A.5, 2, 3 B.-5,-12,-7 C.-5,-12,-17 D.5,-2,-78 .执行语句序列:inti=0 ; while (i < 25)i+=3 ; cout < <i ;输出结果是 oA.24 B.25 C.27 D.89 .已知n是一个int型变量,下列语句中错误的是()。A.long*p=new longn;10 longpn;C.long*p二new longn;D.longp10;tout«ni=n«i<<% n«endl; )/不不不不不不eiror不小小不小个TC: TC (COUI«"Destructor"«endl :) voidmain (TCa;a. display; )43.使用VC+ +6 .0打开考生文件夹下的源程序文件1 .cpp,该程序运 行有问题,请改正main函数中的错误,使程序的输出结果为: number=l number=10 number=100注意:不要改动main函数,不能增加或删除行。也不能更改程序的结构,错误的语句在/ / *errc)r*的下面。试题程序:#include<iostream . h> classTC ( public :TC(inti) number=i ;voidSetNumber(intm) number=m ;)intGetNumberconst returnnumber ;voidPrintconst cout«nnumber=n«number«endl ;private : intnumber ;voidmain个个个干不个个不rror个个个个个个个个TCobjl ;objl . Print ;TCobj2(3);errorobjl . number=10 ;I ! * ej*j*or* * *TC . SetNumber(lOO);objl . Print ;obj2 . Print ;44,使用VC+6.。打开考生文件夹下的源程序文件1.cpp,该程序运行时有错误,请改正错误,使程序正常运行,并且要求最后一个catch必须抛出执行的任何异常。程序异常,输出信息为error0 ERROR注意:不要改动main函数,不能增加或删除行,也不能更改程序的结 构,错误的语句在/ / *error*的下面。试题程序:#include<iostream h) intmain throw(Herrorn);catch(chars) cout«s«endl;) try throw(int)0);7, 个个个个个个个个rror不不不"个个不不catch cout«i«endl;) try throw(O);throw(nerrorn);*1*vl*个个个个个个个个个个个个个个个个catch cout«nERRORn«endl;returnO ;45.使用VC+6. 0打开考生文件夹下的源程序文件1.cpp。本程序要求输入一个字符串,然后将其中的小写字母改成大写字母,字符可 能输入多行,当输入字符“?”时,默认字符输入结束,最后把结果输出 到屏幕中。注意:不要改动main函数,不能增加或删除行,也不能更改程序的结 构,错误的语句在/ / *error*的下面。试题程序:#include<iostream. h> voidmain inti=0;charstr120;cout«nEnterastringendwith?. H«endl;/1* vt* vi*1* 1* vt* kL* vt* kI#/不不不不不不不不error不不不不不不不不cin. getline(str, 120);/ *L* *-L* *1* vt* si* kJ# vl*vt* vt* vt* vt* vt> vt* vY> kI#/不不不不不不不不error不不不不不不不不while(str)(/不不不不不不不不error小不小个不小不不if(stri)=a)stri=stri-a+A;i+ +;)cout«str«endl ;return ;五、综合应用题(2题)46 .使用VC+6.。打开考生文件夹下的源程序文件3. cpp。请完成以下部分,实现在屏幕上输出为C3C2这个程序需要修改的部分,请按照以下部分实现。类C0不能被实例化,请定义一个纯虚函数print,在注释1后添加适当的语句。(2)类C1私有虚继承类C0,请在注释2后添加适当的语句。类C2公有继承于CO,请在注释3后添加适当的语句。(4)类c3公有继承于C2与C1,请在注释4后添加适当的语句。注意:增加代码或者修改代码的位置已经用符号表示出来。请不要修改其他的程序代码。试题程序:#include(iostream. h)classCO(/1/I); /1*kI* vt*<1*/4、"、 J rj, -j、4、classCl :(public:voidprint (cout<H,Cr,<<endl;);/k!>k1>vj> kL* kL* k!> kJ> kI>/ *rw rTw rrw <T* <T* *Tm *T* rrw rj*rrw *T* rj*classC2:(public:voidprint (cout<<nC2n<<endl;);*4*kJ> kI> k!> kJ> k1> k1>个个个个个个个个/不不不y不不不不classC3:(public:voidprint(cout<<"C3"<<endl;);voidmain(C3Obj3;C20bj2;obj3. print;obj2. print;return;47 .使用VC+6. 0打开考生文件夹下的源程序文件3. cpp,其中定 义了类A、A1和A2,其中A1类由A类公有派生,A2类由A1类公 有派生。定义类A的构造函数,该构造函数有一个整型的参数x,在构造函 数中请将x赋值给数据成员a。请在注释“/ / *1*”之 后添加适当的语句。定义类Al的构造函数,该构造函数有两个整型的参数x和y,在构 造函数中请将x赋值给数据成员b,将y作为基类A构造函数的参数 值传人。请在注释“/ / *2*”之后添加适当的语句。(3)定义类A2的构造函数,该构造函数有3个整型的参数x, y和z, 在构造函数中请将x赋值给数据成员C,将y和z分别赋值给基类A1 构造函数的参数x和y。请在注释“/ / *3*”之后添加 适当的语句。(4)完成类A2的成员函数show的定义,该函数调用基类成员函数,输 出基类数据成员a和b及类A2自身的数据成员C的值,上述3个值 在输出时以空格隔开。请在注释“/ / *4*”之后添加适 当的语句。程序输出结果如下:73738注意:除在指定的位置添加语句之外,请不要改动程序的其他部分。试题程序:#include<iostream. h>classA(inta;public:/ 7"i 7" 7" 7" 7"7" 7" 7"/Irj. q.intgetareturns; ;class Al : publicA intb;public:/ q. 、rr> Jrr* 7 Twintgetb returnb ; );classA2: publicA 1 (intC;public:k1>k>vl> k1> k!> kJ> *1*、?、voidshowI I *4* );voidmain(A2a(8. 3. 7):cout«a . geta«endl :cout«a . getb«endl :a. show;六、3.综合应用题(2题)48.使用VC6打开考生文件夹下的工程MyProj2。此工程包含一个源程 序文件MyMain2.cpp,此程序的运行结果为:Derive Ts Print() Called .Derive2fs Print() called .其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。 定义函数Print。为无值型纯虚函数。请在注释“*1*”之后添加适当 的语句。建立类Derivel的构造函数,请在注释“*2*”之后添加适当的语句。完成类Derive2成员函数Print。的定义。请在注释“*3*”之后添加 适当的语句。定义类Derivel的对象指针dl,类Derive2的对象指针d20其初始化 值分别为1和2。源程序文件MyMain2 . cpp中的程序清单如下:/MyMain2. cpp#include < iostream >using namespace std;class Base(public:Base(int i)(b=i;)* * * *protected:int b;);class Derivel: public Base10.下列关于队列的叙述中正确的是A.只能插入元素,而不能删除元素B.可以插入元素,也能删除元素C.插入元素时需要移动队列中所有的元素D.删除元素时需要移动队列中所有的元素二、单选题(13题)11 .程序设计方法要求在程序设计过程中A.先编制出程序,经调试使程序运行结果正确后再画出程序的流程图B.先编制出程序,经调试使程序运行结果正确后再在程序中的适当位置 处加注释C.先画出流程图,再根据流程图编制出程序,最后经调试使程序运行结 果正确后再在程序中的适当位置处加注释D.以上三种说法都不对12 .耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的 是OA.提高耦合性降低内聚性有利于提高模块的独立性B.降低耦合性提高内聚性有利于提高模块的独立性C.耦合性是指一个模块内部各个元素间彼此结合的紧密程度D.内聚性是指模块间互相连接的紧密程度public:* * 2 * * void print () (cout < < n DeriveFs Print() called.n < < endl;);class Derive2 : public Base (public:Derive2(int i) :Base(i) )* * 3 * *);void fun (Base *obj) (obj- > Print ();)int main () (* * 4 * *fun (dl);fun (d2);return 0; )49.使用VC6打开考生文件夹下的工程test32_3o此工程包含一个 test32_3.cpp,其中定义了复数类complex,但该类的定义并不完整。请 按要求完成下列操作,将程序补充完整。定义复数类complex的私有数据成员real和image,用来分别表示复 数的实部和虚部,它们都是double型的数据。请在注释“*1*之后添 加适当的语句。(2)添加复数类complex的带一个参数的构造函数,分别将real和image 赋值为参数r的值和0.0,请在注释“*2*”之后添加适当的语句。完成复数类complex的“+”运算符重载成员函数的定义,两个复数相 加是将复数的实部和虚部分别进行相加,请在注释“*3*”之后添加适 当的语句。(4)完成复数类 complex 的友元函数 isequal(complex complex *c2)的 定义,如果复数Cl与c2相等即C1与c2的实部和虚部分别相等,则返 回1,否则返回0。请在注释“*4*”之后添加适当的语句。程序输出结果如下:36+0i=36+0i注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。源程序文件test32_3.cpp清单如下:#include < iostream.h > class complex public:complex() real=image=O.O; complex(double r)* 2 *)complex operator+(const complex &c);friend bool isequal(complex cl,complex *c2 void displayO;);complex complex:operator+(const complex &c)* 3 *temp.real=real+c.real;temp.image=image+c.image;return temp;)bool isequal(complex cl,complex *c2) / /* 4 * return 1;elsereturn 0;)void complex: displayO(cout < < real;if (image > =0) cout < < "+" < < image < < nin;else if (image < 0) cout < < image < < nin;)void main()(complex cl,c2(36.0);cl=cl+c2;cl.displayO;if (isequal(&cl,&c2) cout < <else coat < < n < > n;c2.display();cout < < endl;参考答案l.C解析:该题主要要搞清楚以下几点:定义了一个指针数组char *p后,程序中第一个循环or(i=o;i<2, i+)pi=chi;的作用是使指 针数组的p元素(它本身是一个指针)指向了二维数组ch的第一行字 符串,井使指针数组的pl元素指向了二维数组ch的第二行字符串, 这样,就使指针数组P和二维数蛆ch建立起了一种对应关系,以后对 二维数组ch的某个元素的引用就有两种等价的形式;chij或PiUo对二维数组ch的初始化,使其第一行chO中存入了字符串,6937、第2.B解析:本题考查的知识点是递归函数的调用。根据程序代码逐步分 析:f(n)用来计算n+(n-l).+l,在f(n)定义内部又调用f(n)自身,这就是 递归函数。f(n)=f(n-l)+l,因此必须先计算出f(n-l),而f(n-l)=f(n-2)+l,又必须 计算 f(n-2)o由此类推,直到n=l,返回后可以此计算出f(返f(n-l), .f(l)o第1次调用f(n)时,形参n接收的值为1,进入函数体后,由于满足 “n=l",执行return语句得到1。第2次调用f(n)时,n的值为2,不满 足条件“n=l”,执行returnf(n-l)+l,在这条语句中又调用f(n-l)即f(l), 从而得到f(2)的返回值为2。所以1+2=3。3 .A解析:两数只在函数change内被使用,函数调用完后该内存被释放, 因此没有交换两数。注意:交换两个数的方法简单说有两种一是使用指 针,二是用引用。4 .C解析:本题乍一看让人迷惑,如果找到切入点就可以简单快速的解 答本题;观察四个选项可知,变量a和b的四种组合分别是四个选项。 很明显指针在做值使用时需要加星号修饰,即如*plu3000=整数变量的 形式。故b不可能是int型,故可排除A和B。另外需要注意的是变量 的初始化和赋值是不同的P2在声明时就指向变量a,其值为a的地址; 因此,变量a应为int型,故正确答案为C。5 .A静态成员表示整个类范围共享的信息;必须对静态数据成员进行初 始化;静态数据成员是属于类的,不能通过类的对象调用。6 .DDo【解析】本题考查的是友元类的定义:类A为类B的友元类,则 类A的所有成员函数都是类B的友元函数,但反之则不一定成立。7.B解析:在C+语言中,调用函数不可能改变实参指针变量的值,但 可以改变实参指针变量所指变量的值。了解了实参指针变量的改变情况, 本题只剩下简单的“加减法”了。8.C解析:当i=27时跳出循环,所以输出结果应是27o9.B解析:本题考核指针、数组和关键字new0说明一维数组的一般形 式为: < 数据类型 > < 数组名 > < 数组长度 > ;在此数组长度必须常 量表达式,它是一个整常数。B)选项中n是一个int型变量不是常数, 所以是错误的。选项A、C使用new获得动态内存空间,它的操作数可 以带有初始值表达式或元素个数,A选项的形式表示数组元素的个数, C选项的形式表示为变量*p赋初值n010.B解析:队列是一种特殊的线性表,只能在一端插入元素,在另一端 删除元素,并且在插入与删除操作时都不需要移动其他元素。11.D解析:在程序设计过程中,一个很重要的环节是首先确定实现各种 功能的算法,并且用某种工具将它精确地表达出来。流程图是其中的工 具之一。因此,程序设计的过程应是先画出流程图,然后根据流程图编 制出程序。因此,选项A中的说法是错误的。程序中的注释是为了提高 程序的可读性,使程序易于理解、易于维护,注释必须在编制程序的同 时加入。因此,选项B和C中的说法也都是错误的。12.B模块独立性是指每个模块只完成系统要求的独立的子功能,并且与 其他模块的联系最少且接口简单。一般较优秀的软件设计,应尽量做到 高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有 利于提高模块的独立性,所以A错误,B正确。耦合性是模块间互相连 接的紧密程度的度量而内聚性是指一个模块内部各个元素间彼此结合 的紧密程度,所以C与D错误。故答案为B选项。13.B栈是先进后出的原则组织数据,所以入栈最早的最后出栈,所以选 择B。14 .AAo【解析】程序设计的风格主要强调程序的简单、清晰和可理解性, 以便读者理解。程序滥用goto语句将使程序流程无规律,可读性差; 添加注释行有利于对程序的理解.不应减少或取消,程序的长短要依 据实际的需要而定,并不是越短越好。15 .D解析:选项A插入和选项C删除因为有数据变更,因此会改变数 据元素之间的结构关系,而排序则因为顺序的改变会改变数据元素之间 的结构关系。16 .A解析:单目的抖运算优先级高于双目的+运算,不过抖的结合性是 自右向左的,而十是自左至右的,所以上面的两个表达式都是先计算a+b 的值之后,a再自加1。17.D本题考查C+关键字,属于基本常识,显然D选项不正确。18.D解析:定义函数模板时可以使用多个类型参数,这时每个类型参数前 面都要加上关键字class或typename,其间用逗号分隔。19.BBo【解析】C+语言中当一个新对象被另一个已存在的同类型对象 初始化时要调用复制构造函数,语句"MyStringb(a);”符合此条件,将 调用类MyString的复制构造函数,但是类MyString没有定义此复制构 造函数,所以会出错。20.B本题考查构造函数和复制构造函数,如果没有定义构造函数,编译器 将生成一个缺省的构造函数和一个拷贝构造函数,如果已经定义了构 造函数和拷贝构造函数,编译器不会生成任何构造函数。如果没有定 义拷贝构造函数,编泽器将生成一个拷贝构造函数。2LD解析:滥用goto语句将使程序流程无规律,可读性差,因此选项 A)不选;注解行有利于对程序的理解,不应减少或取消,选项B)也不 选;程序的长短要依照实际情况而论,而不是越短越好,选项C)也不选。22.BBo【解析】虚基类的引入就是为了消除二义性,其构造函数的调用仍 然是按照继承的顺序进行的,对于多个虚基类则按它们说明的次序调 用,虚基类的构造函数先于非虚基类的构造函数执行。23.C外部变量i实际上记录的是调用构造函数的次数。24.325.x.operator"() 26,181027 .类类解析:本题考查的是类模板的定义,C+语言中模板分为两种: 类模板和函数模板,类模板只能用于类型参数,函数模板可以重载。28.2n-l29 .初始化对象成员初始化对象成员解析:构造函数的主要作用是初始 化对象成员。30 .有穷有穷31 .外模式外模式解析:数据库系统的三级模式分别是内模式、概念模 式和外模式。其中,物理模式给出了数据库的物理存储结构和存取方法; 概念模式是数据库系统中全局数据逻辑结构的描述为卜模式是用户的数 据视图,也就是用户所见到的数据模式。32 .自顶向下逐步求精自顶向下,逐步求精33.99解析:本题考核运算符的应用,题中的逗号运算符用于将多个表 达式串在一起,逗号运算符的左边总是不返回的,这就是说,最右边表 达式的值才是整个表达式的值。逗号运算符的结合性为从左到右。所以 从左开始计算,a被赋值为2, b被赋值为5,然后a和b分别自增1, 最后返回a+b,即9。34.2035.4545解析:对于长度为n的线性表,在最坏情况下(即线性表中元 素现在的顺序与目标顺序正好相反),冒泡排序需要经过n/2遍的从前往 后的扫描和n/2遍的从后往前的扫描,需要的比较次数为n(n-l)/2o36 .应改为“TC : TC”。n(2)应改为"voidTC : : display”。n(3)应改为“TC :TC”。n【解析】在类的外部定义成员函数时,必须在成员函数前面加上类名 和作用域运算符“:作用域运算符用采表示某个成员属于哪个类,使 用格式为“(类名):(成员函数(参数函数),因此第1处应改为“TC :TC”,默认构造函数没有参数。由第2处“TC "display”后的语句看,这 是在类外实现TC函数,因此也有作用域运算符使用错误问题,display 函数返回值为void,因此第2处的语句应改为“voidTC : display”。由第 3处的语句叮(2:1:”可知,显然这里是在类外实现析构函数,析构函 数是一个特殊的函数,它的名称和类名相同,并在前面加“”字符,用 采与构造函数加以区别,因此第3处的语句应改为“TC :TC”。37 .应改为"usingnamespacestd ;n(2)应改为“outl . open('l . txt', ios : binary | ios : app);n(3)应改为“outl . put(si);n【解析】本题第1处的“usingstd厂是在程序中引入标准命名空间std, 对于C + +中引入标准命名空间的格式,缺少namespace,所以第1处 的语句修改为“usingnamespacestd ; "。第2处,调用成员函数open中, 输入、输出方式是在ios类中定义的,所以“outl . open。. txt', binary | app)了语句缺少类ios,即第2处的语句修改为“outl .open(1 .txt ios : binary | ios : app);第3个标识应该用流成员函数put输出字符,所以第3处的语句修改为“outl . put(si)38 .( 1)应改为"catch(char*s)”。应改为“cateh(inti)”。(3)应改为"catch()”。【解析】本题中第1个标识前的异常抛出语句为“throw'error");",其 中的类型为字符串。所以对应的异常捕捉语句catch中应该符合这个类 型,而程序中给出的语句“catch(chars)”是字符型的,所以第1处的语 句修改为“catch