2023年浙江省嘉兴市全国计算机等级考试C++语言程序设计真题(含答案).docx
2023年浙江省嘉兴市全国计算机等级考试C+语言程序设计真题(含答案)学校:班级:姓名:考号:一、1.选择题(10题)1 .下列程序的输出结果是 #include < iostream.h > class Myclass public :Myclass( int i=0, int j=0) x=i; y=j ; void show( )cout < < "x="< < x < < n n < ny=n < < y < < endl ; void show( )constcout < < nx=n <A.x=4,y=3;x=7,y=8B.x=3,y=4;x=7,y=8C.x=7,y=8;x=4,y=3D.x=8,y=7;x=7,y=82 .能保证对所有的参数能够结束的递归函数是A.int f(int n)if(n < 1 )return l;else return n*f(n+l);B.int f(int n)if(n > 1 )return l;else return n*f(n-l);C.int f(int n)if(abs(n) < 1 )return 1 ;else return n*f(n/2);D.int f(int n)if(n > 1 )return l;else return n*f(n*2);)3.建立派生类对象时,3种构造函数分别是a(基类的构造函数)、b(成员对象的构造函数)、c(派生类的构造函数)这3种构造函数的调用顺序为A.abc B.acb C.cab D.cba四、程序改错题(10题)36.使用VC+ +6 .0打开考生文件夹下的源程序文件1 .cpp,该程序运行时有错误,请改正程序中的错误,使得程序输出:9, 8, 7, 6, 5注意:错误的语句在/ *error* /的下面,修改该语句即 可。其他的语句不能修改。试题程序:#include(iostream . h> classTCTC(inti)(m_i=i ;) voidprint(cout«m_i«,;)public :intmaink1>error不不不小不不不不inti ;while(i>5)! * * * !i+ + :04 . print ; cout«endl ;returnO ;)37.使用VC+6. 0打开考生文件夹下的源程序文件1. cpp,该程序运行时有错误,请改正程序中的错误。本程序要求实 现的功能为从键盘输入一个字符串,并将结果保存到文件1. txt中。注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在* enror* * - 曰 jo试题程序:#include<iostream> #include<fstream> usingstd;voidWriteFile(char*s) ofstreamoutl ;kI*个不不不不不不不不不不不不不不不outl. open(n 1. txt”, binary|app);for(inti=0; si!=O; i+)/不下不不不不可不error不不不不个不不不outl. puts(si);outl. close;)voidClearFile (ofstreamoutl ;outl. open(Hl. txt");outl. close;) intmain(chars 1024;ClearFile;cout«npleaseinputastrin9 :n«endl ;cin. getline(s, 1024);WriteFile(s);returnO;)38.使用VC+6. 0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,输出的结果为Destructor注意:错误的语句在/ / *error*的下面,修改该语句即可。试题程序:#include(iostream. h)classTC(inti;public:TC;voiddisplay;TC;/不不不不不不error不小不不不不TC:TCcout«nConstructorn«n, n;i=0;卜-I,enror不不不不不kL* *j>TC:TCTC: display( tout«ni=n«i«n, n«endl;kL> k!> k!> k!> *J> enor不不不不不不COUI«nDestructorn«endl :) voidmain(TCa;a. display;)39 .使用VC+6. 0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错。请改正程序中的错误,使程序输出的结果为10037 32注意:错误的语句在/ / *eirc>r*的下面,修改该语句即可。试题程序:#include<iostream. h> voidmain不下不不不,、erj*or,.、个个不不intm=0142:不不不不不不en<0r不不不不不不intn=0X27 :intq=32;cout <<m<<endl;cout< <n< <endl;cout< <q< < endl ;return ;)40 .使用VC + + 6 . 0打开考生文件夹下的源程序文件1 . cpp,该程序运行时有错误,请改正程序中的错误。本程序要求实现 的功能为从键盘输入一个字符串,并将结果保存到文件1 . txt中。注意:不要改动main函数,不能增加或删除行,也不能更改程序的结 构,错误的语句在error的下面。试题程序:#include<iostream>#include<fstream>个个个个个个个个nor个个* *个个个个usingstd ;voidWriteFile(char*s) ofstreamoutl ;个个个个小个个个nor个个小个个个个个outl . open(Hl . txt", binary|app);for(inti=0 ; si!=0 ; i + +)*J> *1> vl* vl* *1*个个个个个个个个nor个个个个个个个个outl . puts(si);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 ;)41 .使用VC + +6.0打开考生文件夹下的源程序文件1.cpp,该程序运 行时有错,请改正其中的错误,使程序正常运行,并使程序输出的结果 为:sizcof(Sl)=5sizeof(s2)=10sizeof(s3)=l注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在/ / *eir()r*的下面。不能删除assert ()语句。只能修改后面的数字。提示:assert函数如果为假,则会产生一个中断异常。试题程序:#include<iostream . h>#include<assert . h>voidmain ()(chartsl=,abcM:/不下不不不不下不error不不不不个不不不assert(sizeof(s 1 )=3):cout«nsizeof(sl)=5n«endl ;chars210="ab":/不不不不个不不不error不不小个不小不小assert(sizeof(s2)=2);cout«nsizeof(s2)=10n«endl ;chars3=23 :/不不不不不不不不error不不不不不不不不assert(sizeof(s3)=4);cout«nsizeof(s3)=ln«endl ;return ; )42,使用VC+ +6.0打开考生文件夹下的源程序文件1 .cpp。本程序要 求输入一个字符串,然后将其中的小写字母改成大写字母,字符可能输 入多行,当输入字符“?”时,默认字符输入结束,最后把结果输出到屏幕 中。注意:不要改动main函数,不能增加或删除行,也不能更改程序的结 构,错误的语句在/ / *errc)r*的下面。试题程序:#include<iostream . h> voidmain inti=O ;charstr120;cout«nEnterastringendwith? . n«endl ;个个个个个个个个rror不不不不不不不不cin . getline(str, 120);<!>个个个个个个个个个个不不不不不不while(str)*1*个个个个个个个不不不不不不不不不stri=stri-a + A ;i+ + ;cout«str«endl ;return ;43.使用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不不不"个个不不4 .下列 while 循环的次数是()。while (int i=O)i-;A.OB.l C.5 D.无限5 .在C+语言中函数返回值的类型是由()决定的。A.调用该函数时系统临时B.return语句中的表达式类型C.定义该函数时所指定的函数类型D.调用该函数时的主调函数类型6 .下列选项中不属于结构化程序设计方法的是()oA.自顶向下B.逐步求精C模块化D.可复用7 .一间教室可坐多名学生,则实体教室和学生之间的联系是()。A.一对一B.一对多C.多对一 D.多对多8 .数据的存储结构是指。A.数据所占的存储空间量B.数据的逻辑结构在计算机中的表示C.数 据在计算机中的顺序存储方式D.存储在外存中的数据9 .下列关于抽象类的叙述不正确的是()。A.含有纯虚函数的类称作抽象类B.抽象类只能是基类C.抽象类不能 被实例化D.纯虚函数可以被继承10 . C+中数组下标的下限是。catch cout«i«endl;) try(throw(O);throw(nerrorn);)/不不不不不不不不error不不不不不不不不catch(cout«nERRORn«endl;returnO ;)44 .使用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«nnumber=n«number«endl ;private :intnumber ;voidmainTCobjl ;objl . Print ;TCobj2(3);I Ierroiobjl . number= 10 ;不为不下不不不不 arret*不 Wxc不不不 不可不TC . SetNumber(lOO);objl . Print ;obj2 . Print ; )45 .使用VC + +6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,输出的结果为Constructor, i=0,Destructor注意:错误的语句在/ / *error*的下面,修改该语句即可。试题程序:#include(iostream . h) classTC inti ;public :TC ;voiddisplay ;TC ;TC : TC cout«nConstructorn«n," i=0;*1* *1* kL*不不不不下不en*or不不不不不不TC : display tout«ni=n«i«n, n«endl ; )/不不不不不不error不不不不不不COUI«HDestructorn«endl : voidmain (TCa ;a . display ; )五、综合应用题(2题)46 .请使用VC6或使用【答题】菜单打开考生目录proj3下的工程文件 proj3,此工程中包含一个源程序文件proj3. cpp,补充编制C+程序 proj3. cpp,其功能是读取文本文件in. dat中的全部内容,将文本存 放到doc类的对象myDoc中。然后将myDoc中的字符序列反转,并 输出到文件out. dat中。文件in. dat的长度不大于1000字节。 要求:补充编制的内容写在“*”与"*”两行之间。实现 将myDoc中的字符序列反转,并将反转后的序列在屏幕上输出。不得 修改程序的其他部分。注意:程序最后已将结果输出到文件Out. dat中,输出函数writeToFile已经给出并且调用。proj3. cpp#include<iostream>#include<fstream>#include<catting>using namespace std;class doc (private:char*sir;文本字符串首地址int length;文本字符个数public:构造函数,读取文件内容,用于初始化新对象,filename是文件名字符串首地址doc(char*filename);void reverse;将字符序列反转一 doc;void writeToFile(char*filename););doc : doc(char filename)(ifstream myFile(filename);int len=1001, tmp;atr=new charl en;length=O;while(trap=myFile . get)!=EOF)(strl ength+=trap ;str length="0;myFile. close;void doc: reverse将数组atr中的length个字符中的第一个字符与最后一个字符交换,第二个字符与倒数第二个字符交换/ / vl* vL*kI>vL* vl* vlx vt* vl*/ /一卜?、/卜44卜)doc:doe(deletefstr;)void doc : writeToFile(char* filename) (Ofstream outFile(filename);outFile«str;outFile. close;void main doc myDoc("in . dat");myDoc. reveme;my Doc. writeT oF ilef,out. dat"); 47.使用VC+6. 0打开源程序文件3. cpp。其中类TC用于把文件 输出到屏幕,然后进行文件的分割。分割的方法如下:第一个文件的 大小是文件的前一半,另外一个文件的大小是剩余部分。此程序将 in. txt文件中的内容输出到屏幕,并且将文件按照以上方式分割,存于文件。utl. txt和out2. txt 中。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完 整。(1)从输入文件中获得一个字符,并判断是否到文件结尾,如果到文件结尾,则退出循环。请在注释1后添加适当的语句。把获得的输入文件的内容存储到bur中,并且用len记录下文件的长度。请在注释2后添加适当的语句。将输入文件的后一半内容存储在第二个文件中,请在注释3后添加适当的语句。(4)使用文件流对象打开输入文件in. txt,请在注释4后添加适当的语句。注意:增加代码或者修改代码的位置已经用符号表示出来。请不要修 改其他的程序代码。试题程序:#include<iostream. h>#include<fstream. h> #include<stdlib. h)classTC (public:TC(char*fileName) (len=O;fstreaminfile;infile. open(fileName, ios: in);charch ;while(cout«ch;/ kI*7,/rj* rj*rjw J)infile, close;)voidsplit(fstreamoutfilel ;fstreamoutfile2;outfilel. open(noutl. txt”, ios: out);outfile2. open(nout2. txt", ios: out);inti=0:for(i=0; i<len / 2; i+ +)(outfilel«bufi;do(/ /-J. q、"、while(i!=len);outfilel. close;outfile2. close; )prwate:intlen;charbuf1024;voidmainI I *4*TCobj ;obj. split;return ;六、3.综合应用题(2题)48.使用VC6打开考生文件夹下的工程MyProj80此工程包含一个源程 序文件MyMain8.cpp,该程序实现栈的入栈和出栈的操作。其中有两个 类:一个是节点类node,它包含节点值和指向上一个节点的指针prey ; 另一个类是栈类stack,它包含栈的头指针top。但类的定义并不完整。 请按要求完成下列操作,将类Sample的定义补充完成:定义私有节点值data,它是血型的数据,以及定义一个指向上一个节 点的指针prev。请在注释“/* *1* *”之后添加适当的语句。完成构造函数node(intd,node*n)的定义,使得私有成员data和prev分 别初始化为d和no请在注释“/* *2* *”之后添加适当的语句。完成类stack的成员函数push(int i)的类体内的定义。函数push()实现 入栈这个操作,即把形参i压入栈中,那么此时应该创建一个新的节点, 并让这个节点的prev指针指向栈顶。请在注释“* *3 * *之后添加适当 的语句。注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。源程序文件MyMain8.cpp清单如下:/MyMain 8.cpp#include < iostream >using namespace std;class stack; class node (private: * * 1 * *A.1B.0C.不确定D.无固定下限二、单选题(13题)11 .若PAT是一个类,则程序运行时,语句“PAT(*ad)3;"调用PAT的构造函数的次数是()。A.A.OB.l C.2 D.312 .以下程序的运行结果是()。#include(iostream . h>voidsub(intx,inty, int*z)*Z=y-x;)voidmain ()inta, b, c;sub(10, 5, &a);sub(7, a, &b);sub(a, b, &c);cout(a<<", "<<b<<", "<<C<<endl; A.5, 2, 3B.-5, -12, -7 C.-5, -12, -17D.5, -2, -713 .下列运算符中,在C+语言中不能重载的是()。A.* C. :D./14 .下面 是正确的递归函数,它保证对所有的参数能够结束。public:node(int d, node *n)* * 2 * *)friend class stack;);class stack(node *top; /栈头public:stack()(top=0;)void push(int i)(* * 3 * *)int pop()(node*t=top ;if(top)(top=top- > prev ;int c=t- > data ;delete t ;return c ;)return 0 ;);int main() stack s ;s.push(6); s.push(3);s.push(l);return 0 ; 49.使用VC6打开考生文件夹下的工程testl3_3o此工程包含一个 testl3_.cpp,其中定义了类Vector,但类的定义并不完整。请按要求完成 下列操作,将程序补充完整。完成构造函数的定义,把数据成员size初始化为参数s的值,数据成 员buffer指向动态申请的int型size大小的空间。请在注释“*1*之 后添加适当的语句。完成拷贝构造函数的定义,注意解决多次删除的问题。请在注释 “*2*,之后添加适当的语句。完成成员函数elem的定义,该函数返回buffer的第ndx个元素的值, 注意如果ndx超界,请输出“error in index”。请在注释“*3*”之后添加 适当的语句。完成析构函数的定义,要求先将字符d打印在屏幕上,再释放buffer 指向的空间。请在注释“*4*”之后添加适当的语句。输出结果如下:Odd注意:除在指定的位置添加语句外,请不要改动程序中的其他语句。源程序文件testl3_3清单如下:#include < iostream.h >#include < stdlib.h >class Vector (public :Vector(int s=100);Vector(Vector &v);int &elem(int ndx);void displayO ;void set();Vector();protected :int size ;int .buffer ;);Vector : Vector(int s)(II * *)Vector : Vector(Vector &v)( * 2 *for(int i=0 ; i < size ; i+)*(buffer+i)=*(v.buffer+i);int & Vector : elem(int ndx)( * 3 * (cout < < nerror in index” < < endl ;exit(l);)return bufferndx;)void Vector : displayO(for(int j=0 ; j < size ; j+)cout < < elem(i) < < endl ;)void Vector : set()(for(int j=0 ; i < size ; j+)elem(j)=j+l ;Vector :Vector()(II * 4 * void main() (Vector a(10);Vector b(a);a. set();b. set();a. display();b. displayO ; )参考答案LA解析:在Myclass类中定义了两个同名函数show,其中一个是常成 员函数。在main函数中定义了两个对象myl, my2,其中对象my2是 常对象。这两个对象调用成员函数show时,通过对象myl调用的是没 有用const修饰的一般成员函数,而通过对象my2调用的是const修饰 的常成员函数。2 .C解析:递归函数的两个重要条件是要有结束和递归表达式。选项A、 B、D无法结束。根据这两个条件可以进行判断出答案为C。3 .A解析:本题考查的是在继承中派生类的对象调用构造函数的顺序, 应该是先调用基类的构造函数,然后是成员中的对象对应类的构造函数, 最后是派生类自己的构造函数。4 .A5 .C解析:本题考查对函数定义的掌握程度。函数类型决定了函数返回 值的,类型。函数值返回类型可以由编译器自动完成类型转换。在函数 有返回值的调用中,编译器将return后面的表达式的类型强制转换为该 函数定义时指定的返回值类型。6 .D解析:20世纪70年代以来,提出了许多软件设计方法,主要有逐步 求精:对复杂的问题,应设计一些子目标作过渡,逐步细化;自顶 向下:程序设计时应先考虑总体,后考虑细节;先考虑全局目标,后 考虑局部目标。不要一开始就过多追求众多的细节,先从最上层总目 标开始设计,逐步使问题具体化;模块化:一个复杂问题,肯定是 由若干稍简单的问题构成。模块化是把程序要解决的总目标分解为分 目标,再进一步分解为具体的小目标,把每个小目标称为一个模块, 而可复用是面向对象程序设计的一个优点。7.B两个实体集间的联系可以有下面几种:一对一的联系、一对多或多 对一的联系和多对多的联系。由于一间教室可以坐多个学生,所以它们 的联系是一对多联系。8.B解析:数据元素在计算机存储空间中的位置关系与它们的逻辑关系 不一定是相同的,而且一般不可能相同。数据的逻辑结构在计算机存储 空间中的存放形式称为数据的存储结构,也称数据的物理结构。9.B抽象类是指包含纯虚函数的类,它主要用于基类,给其他派生类提供 参考,由于含纯虚函数,故抽象类不能实例化。10.B 11.AAo解析PAT(*ad)3);该表达式表示一个指向类PAT的数组的指 针,只是声明了该指针,而并没有进行实例化对象,因此该语句运行 时并不会调用构造函数。12.BBo【解析】在C+ +语言中,调用函数不可能改变实参指针变量的 值,但可以改变实参指针变量所指变量的值。13.C14.C15.B解析:本题非常简单,考查C+中基本的输出语句,注意不要与 C语言的输出控制字符混淆。16.C解析:友元函数的定义既可以在类内部进行,也可以在类外部进 行。它提高了程序的运行效率,但破坏了类的封装性和隐藏性,使得 类的非成员函数可以访问类的私有成员。17.B解析:继承的基本概念。18.AAo【解析】题中fun函数进行了递归调用,第1次调用时: fun(3)n=3, s=3-fun(2),第二次调用时:fun(2)n=2, s=2,返回第一次 调用后,s=3-2=l。19.BA错误,可行性分析阶段产生可行性分析报告。C错误,概要设计 说明书是总体设计阶段产生的文档。D错误,集成测试计划是在概要设 计阶段编写的文档。B正确,软件需求规格说明书是后续工作如设计、 编码等需要的重要参考文档。20.CC。【解析】面向对象的程序设计是用对象模拟问题领域中的实体, 各对象之间相对独立,相互依赖性小,通过消息来实现对象之间的相互 联系。21.A解析:题目要求先比较m的大小。其次比较n的大小,首先看函数定 义bool operator>(Pairp)corlst,从中可以看出B)和D)选项和函数定义不 一致,缺少const,故排除;选项c只有一层比较不符合题意,故排除 C)选项。因此,本题答案为A)。22.B (33)B)解析此题考查的是虚函数的概念。在成员函rnrn数的 声明前面加上virtual关键字,即可把函数声明为虚函数。虚函rnrn数 可以是另一个函数的友元函数而不能是静态成员函数。23 .C本题考查的是顺序查找。在进行顺序查找过程中,如果线性表中 的第一个元素就是被查找元素,则只需做一次比较就查找成功,查找效 率最高;但如果被查找的元素是线性表中的最后一个元素,或者被查找 的元素根本就不在线性表中,则为了查找这个元素需要与线性表中所 有的元素进行比较,这是顺序查找的最坏情况。所以对长度为n的线 性表进行顺序查找,在最坏情况下需要比较n次。故本题答案为C。24 .ios 类 ios 类25 .自顶而下自顶而下26 .前件前件解析:在树形结构中,每一个节点只有一个前件,称为父 节点,没有前件的节点只有一个,称为树的根节点;每一个节点可以有多 个后件,它们都称为该节点的子节点。没有后件的节点称为叶子节点。 27.efghefgh解析:本题定义了一个字符型指针变量p,并通过赋初值让 它指向了一个字符串,还定义了另一个字符型指针变量r和一个长整型 指针变量q0首先通过语句“a=(long*)p ; 把p的地址值强制转换为长 整型地址值并赋值给小然后执行“q+; ”,地址值增加了 4,执行语句 “r=(char*)q :把长整型指针变量q的值再强制转换成字符型地址值并 赋给r, r的值应为字符串中字符“e”的地址。最后输出r指向的字符串。28.0 10rnl解析:C+中友元函数重载一元运算符要有一个参数,重载 二元运算符要有两个参数,而用成员函数重载时,重载一元运算符没有 参数,重载二元运算符要有一个参数。29.+x+x解析:C+语言中用成员函数重载+x为x . operatoH+O用 友元函数重载+x为:operator+(x)30.inCinC解析:本题考查虚函数和多态性。原本。bj指向祖先类,随 后被赋值,指向新的子孙类,则在使用use这个重载的虚函数时,根据 当前指向可确定调用子孙的同名虚函数。31.11解析:计算表达式!a <b,先计算!a,因a的值为10, !a的值为0。 关系表达式0< 20为真,所以表达式!a <b,的值为1。32,101,0解析:本题考核带有缺省值的函数,本题中函数initialize。进行 了两次函数原型的说明,使本来不带默认值的形参带上默认值。由于主 函数中调用initialize。时没有给定实参,所以函数自动调用其参数缺省 值。输出1和0。33.栈顶栈顶解析栈是限定在表的一端进行插入和删除操作的线性表。 在表中,允许插入和删除的一端叫做栈顶",不允许插入和删除的一端 叫做“栈底”。34.3235.黑盒测试黑盒测试解析:黑盒测试是把测试对象看做一个黑盒子, 测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。白盒测试把测 试对象看做一个透明的盒子,它允许测试人员利用程序内部的逻辑结构 及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通 过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。 36.(1)应添力Tpublic :"。n(2)“inti”应改为“inti(10);n(3)“i+ +'应改为“i;n【解析】本题主要考查的是成员的访问属性。成员的访问属性有公有、 保护和私有3种,而默认的访问属性为私有,只有公有成员才能通过类 的对象被访问。故应在构造函数前添加“public :",否则该类无法被实例 化。变量的初始化可以通过“=”号,也可以和初始化对象一样添加构造 参数,题目已要求使用后者。本题要求输出5个数,while的循环变量i 每次减1,在i>5时循环,故i初始化应为10。若循环中i每次增1,则 循环永远不会退出。37.应改为"usingnamespacestd;"。应改为"outl. open("l. txt", ios: binary I ios: app);(3)应改为“outl. put(si);【解析】本题第1处的“usingstd;”是在程序中引入标准命名空间std, 对于C+ +中引入标准命名空间的格式,缺少namespace,所以第1处 的语句修改为“usingnamespacestd;第2处,调用成员函数open中,输入、输出方式是在ios类中定义的,所以“outl. open("l. txt", binary I叩p);”语句缺少类ios,即第2处的语句修改为A.int f(int n) if(n < 1) return 1 ; else return n*f(n+l) ; 1.1 nt f(int n) if(n > 1) return 1 ; else return n*f(n-l) ; C.int f(int n) if(abs(n) < 1) return 1 ; else return n*f(n/2); D.int f(int n) if(n > 1) return 1; else return n*f(n*2); 15 .下列程序的运行结果是main()int a=2,c=5;cout < < "a="< < a < < "b="< < c < < endl;)A.a=% b=%5 B.a=2 b=5 C.a=d b=d D.a=%d b=%d16 .下面