1、二级 C+分类模拟 250及答案解析(总分:76.00,做题时间:90 分钟)一、选择题(总题数:40,分数:76.00)1.派生类对象对其基类中的什么成员是可访问的?(分数:1.00)A.公有继承的私有成员B.私有继承的公有成员C.私有继承的保护成员D.保护继承的保护成员2.有如下程序: #includeiostream using namespace std; int i=1; class Fun public: static int i; int value() return i-1; int value()const return i+1; ; int Fun:i=2; int mai
2、n() int i=3; Fun fun1; const Fun fun2; return 0; 若程序的输出结果是: 123 则程序中下画线处遗漏的语句是_。(分数:1.00)A.coutfun1. value()Fun:ifun2. value();B.coutFun:ifun1. value()fun2. value();C.coutfun1. value()fun2. value()Fun:i;D.coutfun2. value()Fun:ifun1. value();3.C+系统预定义了 4个用于标准数据流的对象,下列选项中不属于此类对象的是_。(分数:1.00)A.coutB.ci
3、nC.cerrD.cset4.有下列程序: #include stdio.h void main() (int a=1,2,3,4),y,*p=a3; -p;y=*p;printf(“y=%d/n“,y); 程序的运行结果是 _ ,(分数:2.50)A.y=0B.y=1C.y=2D.y=35.为了提高函数调用的实际运行速度,可以将较简单的函数定义为_。(分数:1.00)A.内联函数B.重载函数C.递归函数D.函数模板6.下面程序错误的语句是 # include iostreamh void main( ) int * p=new int1; p=9; cout * p endl; delete
4、 p; (分数:1.00)A.B.C.D.7.结构化程序设计的主要特征是 _ 。(分数:2.00)A.封装和数据隐藏B.继承和重用C.数据和处理数据的过程分离D.把数据和处理数据的过程看成一个整体8.有如下程序: #includeiostream using namespace std; void fl(intx,inty) int z=x;x=y;y=z; void f2(int x,int y) int z=x;x=y;y=z; int main() int x=10,y=26; f1(x,y); f2(x,y); coutyendl; return 0; 运行时的输出结果是_。(分数:2
5、.50)A.10B.16C.26D.369.在软件开发中,需求分析阶段产生的主要文档是_。(分数:1.00)A.软件集成测试计划B.软件详细设计说明书C.用户手册D.软件需求规格说明书10.以下程序中调用 cin函数给变量 a输人数值的方法是错误的,其错误的原因是_。 #includeiostream.h void main() int*p,*q,a,b; p=a; cout“input a;“; cinp; (分数:2.50)A.*p表示的是指针变量 p的地址B.p表示的是变量 a的地址,而不是变量 a的值C.*p表示的是指针变量 p的值D.*p只能用来说明 p是一个指针变量11.下列数据结
6、果中,能够按照“先进后出”原则存取数据的是_。(分数:2.50)A.循环队列B栈C.队列D.二叉树12.己知基类 Employee只有一个构造函数,其定义如下: Employee:Employee(int n):id(n) Manager是 Employee的派生类,则下列对 Manager的构造函数的定义中,正确的是_。(分数:2.00)A.Manager:Manager(int n):id(n)B.Manager:Manager(int n)id=n;C.Manager:Manager(int n):Employee(n)D.Manager:Manager(int n)Employee(n
7、);13.结构化分析方法是面向 _ 的自顶向下、逐步求精进行需求分析的方法。(分数:2.00)A.对象B.数据结构C.数据流D.目标14.在对函数进行原型声明时,下列语法成分中,不需要的是_。(分数:2.50)A.函数返回类型B.函数参数列表C.函数名D.函数体15.假设 a为一个整型数组名,则元素 a4的字节地址为_ 。(分数:2.00)A.a+4B.a+8C.a+16D.a+3216.由于常对象不能被更新,因此_。(分数:1.00)A.通过常对象只能调用它的常成员函数B.通过常对象只能调用静态成员函数C.常对象的成员都是常成员D.通过常对象可以调用任何不改变对象值的成员函数17.在最坏情况
8、下,冒泡排序所需要的比较次数为(分数:2.00)A.n/2B.(n+1)/2C.n(n-1)/2D.n(n+1)/218.派生类的构造函数的初始化列表中,不能包含_。(分数:2.50)A.基类的构造函数B.派生类中成员对象的初始化C.基类中子对象的初始化D.派生类中一般数据成员的初始化19.若有定义语句“int i=2,j=3;”,则表达式 i/j的结果是_。(分数:2.00)A.0B.0.7C.0.66667D.0.6666666720.下面是一个模板声明的开始部分: templatetypename Tdouble. 由此可知_。(分数:2.50)A.这可能是一个函数模板的声明B.这可能是
9、一个类模板的声明C.这既可能是一个函数模板的声明,也可能是一个类模板的声明D.这肯定是一个错误的模板声明21.下列语句中,与语句“n=(ab?(bc?1:0):0);”的功能等价的是 _ 。(分数:2.00)A.if(a=B) n=0;B.if(aB) |(bC) )n=1; else n=0;C.if(aB) if(bC) n=h else n=0; else n=0;D.if(aB) n=1; else if(b=C) n=1; else if(bC) n=1; else n=0;22.有如下程序: #includeiostream using namespace std; class P
10、art public: Part(int x=0):val(x)coutval; Part()coutval;) private: int val; ; class Whole public: Whole(int x,int y,int z=0):p2(x),p1(y),val(z)coutval; Whole()coutval; private: Part p1,p2; int val; ; int main() Whole obj(1,2,3); return 0; 程序的输出结果是_。(分数:2.00)A.123321B.213312C.213D.12312323.下面的函数调用语句中
11、func函数的实参个数是 _ 。 fune(f2(v1,v2),(v3,v4,vS),(v6,max(v7,v8);(分数:2.00)A.3B.4C.5D.824.有下列程序: # include stdio.h void fun(int*s,int n1,int n2) int i,j,t; i=n1;j=n2 while(ij)t=si;si=sj;sj=t;i+;j-; void main() int a10=1,2,3,4,5,6,7,8,9,0,k; fun(a,0,3);fun(a,4,9);fun(a,0,9); for(k=0;k10;k+)printf(“%d“, ak);p
12、rintf (“/n“); 程序的运行结果是_ 。(分数:2.50)A.0987654321B.4321098765C.5678901234D.098765123425.下列程序的运行结果是 #include iostreamh class Location private: int X,Y; public: void init(int=0,in=0); Void valueX(int val) X=val; int valueX( ) return X; void valueY(int val) Y=val; int valueY( ) return Y; ; void Location:i
13、nit(int initX,int initY) X=initX; Y=initY; void main( ) Location A,B; Ainit( ); AvalueX(5); cout AvalueX( ) end1 AvalueY( ) end1; Binit(6,2); BvaleY(4); cout BvalueX( ) end1 BvalueY( ) end1;(分数:1.00)A.5064B.0064C.5062D.006226.如果派生类以 protected方式继承基类,则原基类的 protected成员和 public成员在派生类中的访问属性分别是_。(分数:2.00)
14、A.public和 publicB.public和 protectedC.protected和 publicD.protected和 protected27.有如下程序: #includeiostream using namespace std; int main() int i,s=0; for(i=1;s20;i+=2)s+=i*i; coutiendl; return 0; 运行这个程序的输出结果是_。(分数:2.00)A.3B.5C.7D.928.对下列二叉树 (分数:1.00)A.ACBDFEGB.ACBDFGEC.ABDCGEFD.FCADBEG29.下列叙述正确的是_。(分数:1
15、.00)A.算法的执行效率与数据的存储结构无关B.算法的空间复杂度是指算法程序中指令(或语句)的条数C.算法的有穷性是指算法必须能在执行有限个步骤之后终止D.以上三种描述都不对30.为了取代 C中带参数的宏,在 C+中使用_。(分数:2.00)A.重载函数B.内联函数C.递归函数D.友元函数31.关于函数重载,下列叙述中错误的是_。(分数:3.00)A.重载函数的函数名必须相同B.重载函数必须在参数个数或类型上有所不同C.重载函数的返回值类型必须相同D.重载函数的函数体可以有所不同32.下面程序的运行结果是 _。 #includeiostream.h class A public virtua
16、l、() cout”call A: A()”end1; ; class B:public A B(int i)p=new chari: -B() delete)p; Cout”call B: B()”; ; void main() A*a=new B(8); Delete a; (分数:2.00)A.call B: B()B.call B: B()C.call A:A()D.call A:A()33.若已定义; inta=0,1,2,3,4,5,6,7,8,9,*p=a,i; 其中 0i=9,则对 a数组元素不正确的引用是 _ 。(分数:2.00)A.ap-aB.x( double d1,d2
17、; 则下列调用中,错误的是_。(分数:3.00)A.sumdouble,double,double(d1,d2);B.sumdouble,double(d1,d2);C.sumdouble(d1,d2);D.sum(d1,d2);37.以下程序运行后的输出结果是 _ 。 #includeiostream.h void main() char aft=“abbcabbcabbc“; int i=0,j=0,k=0; while(ai) if(ai=“a“) j+; if(ai=“b“) k+; i+; coutj“kend1; (分数:2.00)A.2,6B.3,5C.4,7D.3,638.有如
18、下程序: #includeiostream using namespace std; class base public: base(int x=0)coutx; ; class derived:public base public: derived(int x=y)coutx; public: base val; ; int main() derived d(1); return 0; 程序的输出结果是_。(分数:2.50)A.0B.1C.01D.00139.下列选项中合法的用户标识符是 _ 。(分数:2.00)A.10ngB.2TestC.3DmaxD.dat40.下列叙述中错误的是_。(
19、分数:2.50)A.用户定义的函数中可以没有 return语句B.用户定义的函数中可以有多个 return语句,以便可以调用一次返回多个函数值C.用户定义的函数中若没有 return语句,则应当定义函数为 void类型D.函数的 return语句中可以没有表达式二级 C+分类模拟 250答案解析(总分:76.00,做题时间:90 分钟)一、选择题(总题数:40,分数:76.00)1.派生类对象对其基类中的什么成员是可访问的?(分数:1.00)A.公有继承的私有成员B.私有继承的公有成员C.私有继承的保护成员D.保护继承的保护成员 解析:解析 关于 c+语言继承问题中派生类对基类的访问能力的考查
20、 【解题要点】C+语言中通常有三种继承修饰符 public,protected,Privale,限制依次严格,另外对类中的数据和函数也有这三种修饰符进行限制,有 3种是不能继承的:公有继承基类的私有成员,私有继承基类的私有成员,保护继承基类的私有成员。 2.有如下程序: #includeiostream using namespace std; int i=1; class Fun public: static int i; int value() return i-1; int value()const return i+1; ; int Fun:i=2; int main() int i=
21、3; Fun fun1; const Fun fun2; return 0; 若程序的输出结果是: 123 则程序中下画线处遗漏的语句是_。(分数:1.00)A.coutfun1. value()Fun:ifun2. value(); B.coutFun:ifun1. value()fun2. value();C.coutfun1. value()fun2. value()Fun:i;D.coutfun2. value()Fun:ifun1. value();解析:解析 本题考查构造函数、常成员函数和静态数据成员。外部同名的变量赋值,不能改变类的静态变量值,所以 Fun对象里的 i值为 2,所
22、以本题答案为 A。3.C+系统预定义了 4个用于标准数据流的对象,下列选项中不属于此类对象的是_。(分数:1.00)A.coutB.cinC.cerrD.cset 解析:解析 C+标准数据流的对象分别是 cout、cin、cerr、clog,所以本题答案为 D。4.有下列程序: #include stdio.h void main() (int a=1,2,3,4),y,*p=a3; -p;y=*p;printf(“y=%d/n“,y); 程序的运行结果是 _ ,(分数:2.50)A.y=0B.y=1C.y=2D.y=3 解析:解析 本题定义一个一维数组和指针,接着将数组第 4个元素的地址赋予
23、*p 数组下标从 0开始,进行-p 使指针 p指向了数组的第 3个元素,通过 y=*p将数组第 3个元素的值 3赋予 y所以选项 D正确。5.为了提高函数调用的实际运行速度,可以将较简单的函数定义为_。(分数:1.00)A.内联函数 B.重载函数C.递归函数D.函数模板解析:解析 内联函数一般是程序代码少于 10行的函数,在编译过程中,直接在调用点处被展开,不会因函数调用带来巨大的系统开销,因此能提高实际运行速度。6.下面程序错误的语句是 # include iostreamh void main( ) int * p=new int1; p=9; cout * p endl; delete
24、p; (分数:1.00)A.B. C.D.解析:解析:本题考查的是指针的使用,p 是指向 int型的指针,若想给它指向的元素赋值,应使用 * 符号,直接赋值相当于改变了原来 P存储的地址。7.结构化程序设计的主要特征是 _ 。(分数:2.00)A.封装和数据隐藏B.继承和重用C.数据和处理数据的过程分离 D.把数据和处理数据的过程看成一个整体解析:8.有如下程序: #includeiostream using namespace std; void fl(intx,inty) int z=x;x=y;y=z; void f2(int x,int y) int z=x;x=y;y=z; int
25、main() int x=10,y=26; f1(x,y); f2(x,y); coutyendl; return 0; 运行时的输出结果是_。(分数:2.50)A.10 B.16C.26D.36解析:解析 该题考查了函数参数传递的两种方式:引用传递和值传递。引用传递时 x和 y会交换,而值传递时二者不交换,因此选 10。9.在软件开发中,需求分析阶段产生的主要文档是_。(分数:1.00)A.软件集成测试计划B.软件详细设计说明书C.用户手册D.软件需求规格说明书 解析:解析 需求分析阶段只能产生需求分析规格说明书,A 测试说明书是软件测试阶段生成的,B 软件详细设计说明数是设计阶段生产,C
26、用户手册是软件发布时随软件一同交付给用户的。10.以下程序中调用 cin函数给变量 a输人数值的方法是错误的,其错误的原因是_。 #includeiostream.h void main() int*p,*q,a,b; p=a; cout“input a;“; cinp; (分数:2.50)A.*p表示的是指针变量 p的地址B.p表示的是变量 a的地址,而不是变量 a的值 C.*p表示的是指针变量 p的值D.*p只能用来说明 p是一个指针变量解析:解析 p 表示的是变量 a的地址,定义后*p 表示的是变量 a的值。11.下列数据结果中,能够按照“先进后出”原则存取数据的是_。(分数:2.50)
27、A.循环队列B栈 C.队列D.二叉树解析:解析 栈是一种线性表,其插入或者删除运算都在表的一端进行,即按照“先进后出”原则存取数据。12.己知基类 Employee只有一个构造函数,其定义如下: Employee:Employee(int n):id(n) Manager是 Employee的派生类,则下列对 Manager的构造函数的定义中,正确的是_。(分数:2.00)A.Manager:Manager(int n):id(n)B.Manager:Manager(int n)id=n;C.Manager:Manager(int n):Employee(n) D.Manager:Manage
28、r(int n)Employee(n);解析:解析 基类的构造函数是带有参数的,派生类从基类派生,这就需要在派生类的构造函数名后面显示的调用基类的构造函数。13.结构化分析方法是面向 _ 的自顶向下、逐步求精进行需求分析的方法。(分数:2.00)A.对象B.数据结构C.数据流 D.目标解析:解析 结构化分析方法是面向数据流进行需求分析的方法,采用自顶向下、逐步求精,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。14.在对函数进行原型声明时,下列语法成分中,不需要的是_。(分数:2.50)A.函数返回类型B.函数参数列表C.函数名D.函数体 解析:解析 该题考查的内容是
29、函数的声明问题,考生必须注意:函数声明的形式为: 函数返回类型函数名(函数参数列表);15.假设 a为一个整型数组名,则元素 a4的字节地址为_ 。(分数:2.00)A.a+4B.a+8C.a+16 D.a+32解析:解析 a4的字节地址为 a+4*4。16.由于常对象不能被更新,因此_。(分数:1.00)A.通过常对象只能调用它的常成员函数 B.通过常对象只能调用静态成员函数C.常对象的成员都是常成员D.通过常对象可以调用任何不改变对象值的成员函数解析:解析 本题考查常对象的基本知识,常对象只能调用它的常成员函数,而不能调用非 const函数,常对象的成员函数不一定都是常成员函数,只需保证其
30、数据成员是常数据成员即可。所以本题选 A。17.在最坏情况下,冒泡排序所需要的比较次数为(分数:2.00)A.n/2B.(n+1)/2C.n(n-1)/2 D.n(n+1)/2解析:解析 在长度为 n的线性表中,在最坏情况下,冒泡排序需要经过 n/2遍的从前往后的扫描和n/2遍从后往前的扫描,共需 n(n-1)/2。18.派生类的构造函数的初始化列表中,不能包含_。(分数:2.50)A.基类的构造函数B.派生类中成员对象的初始化C.基类中子对象的初始化 D.派生类中一般数据成员的初始化解析:19.若有定义语句“int i=2,j=3;”,则表达式 i/j的结果是_。(分数:2.00)A.0 B
31、.0.7C.0.66667D.0.66666667解析:解析 由于变量 i、j 都是整型变量,所以两者相除所得的商也是整型数据。20.下面是一个模板声明的开始部分: templatetypename Tdouble. 由此可知_。(分数:2.50)A.这可能是一个函数模板的声明 B.这可能是一个类模板的声明C.这既可能是一个函数模板的声明,也可能是一个类模板的声明D.这肯定是一个错误的模板声明解析:解析 函数模板的定义格式为 template模板形参表函数声明 类模板定义的格式为 template模板形参表类声明 可以看出,题中是一个函数模板的声明。21.下列语句中,与语句“n=(ab?(bc
32、?1:0):0);”的功能等价的是 _ 。(分数:2.00)A.if(a=B) n=0;B.if(aB) |(bC) )n=1; else n=0;C.if(aB) if(bC) n=h else n=0; else n=0; D.if(aB) n=1; else if(b=C) n=1; else if(bC) n=1; else n=0;解析:解析 条件表达式(ab?(bc?1:0):0)的含义是,如果 ab 成立,则此表达式的值等于条件表达式(bc?1:0)的值,否则其值等于 0。而条件表达式(bc?1:0)的含义是,如果 bc 成立,其值等于1,否则其值等于 0。22.有如下程序: #
33、includeiostream using namespace std; class Part public: Part(int x=0):val(x)coutval; Part()coutval;) private: int val; ; class Whole public: Whole(int x,int y,int z=0):p2(x),p1(y),val(z)coutval; Whole()coutval; private: Part p1,p2; int val; ; int main() Whole obj(1,2,3); return 0; 程序的输出结果是_。(分数:2.00
34、)A.123321B.213312 C.213D.123123解析:解析 此题考查的是类的构造与析构。建立类的对象时,构造函数的执行顺序如下:执行基类的构造函数,调用顺序按照各个基类被继承时声明的顺序(自左向右)接着执行成员对象的构造函数,调用顺序按照各个成员对象在类中声明的顺序,最后执行自身的构造函数。析构顺序与之相反。本题中,Whole类中有两个 Part类的成员 p1和 p2,根据它们定义的顺序,先构造 p1再构造 p2。所以,首先被构造的是p1(y),输出 2;第二个被构造的是 p2(x),输出 1;最后调用析构函数,输出 val的值 3;析构函数调用顺序与构造函数相反。故最后输出 2
35、13312。23.下面的函数调用语句中 func函数的实参个数是 _ 。 fune(f2(v1,v2),(v3,v4,vS),(v6,max(v7,v8);(分数:2.00)A.3 B.4C.5D.8解析:解析 逗号表达式及实参的形式,在逗号表达式中,取最后一个表达式的值,结合 func的调用形式,可以知道实参的个数只有 3个。24.有下列程序: # include stdio.h void fun(int*s,int n1,int n2) int i,j,t; i=n1;j=n2 while(ij)t=si;si=sj;sj=t;i+;j-; void main() int a10=1,2,
36、3,4,5,6,7,8,9,0,k; fun(a,0,3);fun(a,4,9);fun(a,0,9); for(k=0;k10;k+)printf(“%d“, ak);printf (“/n“); 程序的运行结果是_ 。(分数:2.50)A.0987654321B.4321098765C.5678901234 D.0987651234解析:解析 本题定义一个一维数组并赋初值,接着调用 fun(),功能是使数组中的元素逆序,当调用fUn(a,0,3),将实参传递给形参实现数组 a中 a0至 a3这 4个元素逆序;同理调用 fun(a,4,9)是将上步排列好的 a数组中 a4至 a9这 6个元素
37、逆序;调用 fun(a,0,9)是将数组中 a0至 a9这 10个元素再逆序,再用 prtntf()函数输出结果为 5678901234,故选项 C正确。25.下列程序的运行结果是 #include iostreamh class Location private: int X,Y; public: void init(int=0,in=0); Void valueX(int val) X=val; int valueX( ) return X; void valueY(int val) Y=val; int valueY( ) return Y; ; void Location:init(i
38、nt initX,int initY) X=initX; Y=initY; void main( ) Location A,B; Ainit( ); AvalueX(5); cout AvalueX( ) end1 AvalueY( ) end1; Binit(6,2); BvaleY(4); cout BvalueX( ) end1 BvalueY( ) end1;(分数:1.00)A.5064 B.0064C.5062D.0062解析:解析:本题中有成员函数和它的重载函数,要注意它们的不同在本题中先调用了 init函数,初始化了 X,Y,都为 0,valueX(5);又将 X变为 5,所以
39、输出 5和 0,然后初始化 init(6,2),接着又value Y(4);将 X,Y 设为 6和 4,所以输出 6和 4。26.如果派生类以 protected方式继承基类,则原基类的 protected成员和 public成员在派生类中的访问属性分别是_。(分数:2.00)A.public和 publicB.public和 protectedC.protected和 publicD.protected和 protected 解析:解析 此题考查的是基类成员在派生类中的访问属性。派生类中的成员不能访问基类中的私有成员,可以访问基类中的公有成员和保护成员。派生类从基类公有继承时,基类的公有成员
40、和保护成员在派生类中仍然是公有成员和保护成员;派生类从基类私有继承时,基类的公有成员和保护成员在派生类中都变成私有成员;派生类从基类保护继承时,基类的公有成员在派生类中变成保护成员,基类的保护成员在派生类中仍然是保护成员。27.有如下程序: #includeiostream using namespace std; int main() int i,s=0; for(i=1;s20;i+=2)s+=i*i; coutiendl; return 0; 运行这个程序的输出结果是_。(分数:2.00)A.3B.5C.7 D.9解析:解析 在这段程序中 for循环共执行 3次,每次循环变量 i的值增
41、2,在执行第三次循环语句时,变量 s的值等于 25,大于 20而退出循环,此时再执行循环变量 i加 2运算,所以最后变量 i的值等于7。28.对下列二叉树 (分数:1.00)A.ACBDFEG B.ACBDFGEC.ABDCGEFD.FCADBEG解析:解析 二叉树的遍历有三种:前序、中序和后序。中序遍历首先遍历左子树或左子结点,然后访问根结点,最后遍历右子树或右子结点,分析本题二叉树,对其进行中序遍历,结果为 ACBDFEG。29.下列叙述正确的是_。(分数:1.00)A.算法的执行效率与数据的存储结构无关B.算法的空间复杂度是指算法程序中指令(或语句)的条数C.算法的有穷性是指算法必须能在
42、执行有限个步骤之后终止 D.以上三种描述都不对解析:解析 算法的执行效率与数据的存储结构密切相关。算法的空间复杂度是指算法执行过程中所需的存储空间。30.为了取代 C中带参数的宏,在 C+中使用_。(分数:2.00)A.重载函数B.内联函数 C.递归函数D.友元函数解析:解析 此题考查的是内联函数。C+语言引入内联函数的原因是用它来取代 C语言的预处理宏函数。故选项 B正确。31.关于函数重载,下列叙述中错误的是_。(分数:3.00)A.重载函数的函数名必须相同B.重载函数必须在参数个数或类型上有所不同C.重载函数的返回值类型必须相同 D.重载函数的函数体可以有所不同解析:解析 此题考查的是函
43、数重载。在 C+语言中,允许定义一系列函数名相同,但形参的个数和类型不完全相同的函数,即函数的重载。重载函数对返回值类型不做要求,返回值类型也不参与区分函数的重载形式。32.下面程序的运行结果是 _。 #includeiostream.h class A public virtual、() cout”call A: A()”end1; ; class B:public A B(int i)p=new chari: -B() delete)p; Cout”call B: B()”; ; void main() A*a=new B(8); Delete a; (分数:2.00)A.call B:
44、B() B.call B: B()C.call A:A()D.call A:A()解析:33.若已定义; inta=0,1,2,3,4,5,6,7,8,9,*p=a,i; 其中 0i=9,则对 a数组元素不正确的引用是 _ 。(分数:2.00)A.ap-aB.x( double d1,d2; 则下列调用中,错误的是_。(分数:3.00)A.sumdouble,double,double(d1,d2);B.sumdouble,double(d1,d2);C.sumdouble(d1,d2);D.sum(d1,d2); 解析:解析 虚拟类型参数 T1没有出现在模板函数的形参表中,因此在调用时不可能
45、从模板函数的实参表中获得相应的信息,因此 T1无法省略。而在选项 D中省略了。37.以下程序运行后的输出结果是 _ 。 #includeiostream.h void main() char aft=“abbcabbcabbc“; int i=0,j=0,k=0; while(ai) if(ai=“a“) j+; if(ai=“b“) k+; i+; coutj“kend1; (分数:2.00)A.2,6B.3,5C.4,7D.3,6 解析:解析 程序中首先定义字符数组 a,然后在 while循环中统计字符 a和 b的个数。其中 j记录 a的个数,k 记录 b的个数。第一个 if语句是当第 i
46、个字符为 a时,i 加 1;第二个 if语句是当第 i个字符为 b时,k 加 1。38.有如下程序: #includeiostream using namespace std; class base public: base(int x=0)coutx; ; class derived:public base public: derived(int x=y)coutx; public: base val; ; int main() derived d(1); return 0; 程序的输出结果是_。(分数:2.50)A.0B.1C.01D.001 解析:解析 本题考查基类成员和对象成员的初始化。题中,生成派生类 derived对象 d
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1