1、二级 C+-196 及答案解析(总分:93.50,做题时间:90 分钟)一、选择题(总题数:35,分数:68.50)1.有三个关系 R,S 和 T 如下: R A B C a 1 2 b 2 1 c 3 1 S A B C d 3 2 T A B C a 1 2 b 2 1 C 3 1 d 3 2 其中关系 T 由关系 R 和 S 通过某种操作得到,该操作为_。(分数:1.00)A.选择B.投影C交D并2.下列叙述中正确的是_。(分数:2.50)A.有一个以上根结点的数据结构不一定是非线性结构B.只有一个根结点的数据结构不一定是线性结构C.循环链表是非线性结构D.双向链表是非线性结构3.当使用
2、 fstream 流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为_(分数:1.00)A.ios:inB.ios:outC.ios:in | ios:outD.以上都不对4.下列函数的运行结果是_。 #includeiostream.h int f(int a,int b) int c; if(ab)c=1; else if(a=b)c=0; else c=-1; return(c); void main() int i=2,j=3; int p=f(i,j); coutp;(分数:2.50)A.-1B.1C.2D.编译出错,无法运行5.关于关键字 class 和 typename
3、,下列表述中正确的是_。(分数:1.00)A.程序中的 typename 都可以替换为 classB.程序中的 class 都可以替换为 typenameC.在模板形参表中只能用 typename 来声明参数的类型D.在模板形参表中只能用 class 或 typename 来声明参数的类型6.下列关于 this 指针的叙述中正确的是_。(分数:1.00)A.任何与类相关的函数都有 this 指针B.类的成员函数都有 this 指针C.类的友元函数都有 this 指针D.类的非静态成员函数才有 this 指针7.有如下程序段 #include void main( ) int a=14,b=15
4、,x;char c=“A“;x=(a do x=x-2; coutx; while(!(-x); 则上面程序段_。(分数:2.50)A.输出的是 1B.输出的是 1 和-2C.输出的是 3 和 0D.是死循环10.为了使模块尽可能独立,要求_。(分数:2.50)A.内聚程度要尽量高,耦合程度要尽量强B.内聚程度要尽量高,耦合程度要尽量弱C.内聚程度要尽量低,耦合程度要尽量弱D.内聚程度要尽量低,耦合程度要尽量强11.下列关于 C+流的描述中,错误的是 _ 。(分数:2.00)A.cout“A“表达式中输出字符 AB.eof 函数可以检测是否到达文件尾C.对磁盘文件进行流操作时,必须包含头文件
5、fstreamD.以 ios_base:out 模式打开的文件不存在时,将自动建立一个新文件12.有如下数组声明:int num10l;,下标值引用错误的是_。(分数:1.00)A.num10B.num5C.num3D.num013.线性表进行二分法检索,其前提条件是 _ 。(分数:2.00)A.线性表以顺序方式存储,并按关键码值排好序B.线性表以顺序方式存储,并按关键码的检索频率排好序C.线性表以链式方式存储,并按关键码值排好序D.线性表以链式方式存储,并按关键码的检索频率排好序14.字符串“a+b=12/n/t”的长度为_。(分数:2.00)A.12B.10C.8D.615.下列不构成无限
6、循环的语句或语句组是 _ 。(分数:2.00)A.n=0;do+n;)while(n=0);B.n=0;while(1)n+;C.while(n=10);n-;D.for(n=0,i=1; ;i+)n+=i16.己知类 Myclass 的定义如下 class MyClass public: void function1(MyClass static void function2(MyClass void function3()coutdata; staric void function4()coutdata; private: int data; ; 其中有编译错误的函数是_。(分数:2.00
7、)A.function1B.function2C.function3D.function417.凡是函数中未指定存储类别的局部变量,其隐含的存储类型是 _ 。(分数:2.00)A.autoB.staticC.regiserD.extern18.有以下程序 #include iostream using namespace std; int a; int fun (); int main () extern int a; int b; a = 100; b = fun(); coutbend1; return 0; int fun) extern int a; return (10*a ; 其程
8、序运行后的输出结果是(分数:2.00)A.100B.10C.1000D.1000019.下列关于函数模板的描述中,正确的是_。(分数:2.50)A.函数模板是一个实例函数B.使用函数模板定义的函数没有返回类型C.函数模板的类型参数与函数的参数相同D.通过使用不同的类型参数,可以从函数模板得到不同的实例函数20.下列叙述中,错误的是_。(分数:2.50)A.false 是一个逻辑型常量B.“b”是一个字符型常量C.365 是一个 int 常量D.3.1415926 是一个 double 常量21.下列关于函数的说法中,正确的是(分数:2.50)A.C+允许在函数体中定义其他函数B.所有的内联函数
9、都要用 inline 说明C.仅函数返回类型不同的同名函数不能作为重载函数使用D.有默认值的参数应从左至右逐个定义22.以下程序的执行结果为_。 #includeiostream.h class Sample int n; public: Sample(int i)n=i; operator+()n+; /前缀重载运算符 operator+(int)n+=2; /后缀重载运算符 void disp() cout“n=“nendl; ; void main() Sample A(2),B(2); A+; +B; A.disp(); B.disp(); (分数:2.50)A.n=4n=3B.n=1
10、n=2C.n=3n=4D.n=5n=623.有如下程序: #include iostream using namespace std; class BASE public: BASE()cout“BASE“; ; class DERIVED: public BASE public: DERIVED() cout“DERIVED“; int main() DERIVED x; return 0; 执行后的输出结果是 _ 。(分数:2.00)A.BASEB.DERIVEDC.BASEDERIVEDD.DERIVEDBASE24.有如下类定义: class AA int a; public: AA(
11、int n=0):a(n) ; class BB:public AA public: BB(int n)_ ; 其中横线处缺失部分是_。(分数:3.00)A.:a(n)B.:AA(n)C.a(n);D.a=n;25.下列关于关系运算的叙述中正确的是(分数:2.00)A.投影、选择、连接是从二维表的行的方向来进行运算B.并、交、差是从二维表的列的方向来进行运算C.投影、选择、连接是从二维表的列的方向来进行运算D.以上三种说法都不对26.类的析构函数是在什么时候调用的?(分数:1.00)A.类创建时B.创建对象时C.删除对象时D.不自动调用27.某类中有一个无参且无返回值的常成员函数 Show,则
12、正确的 Show 函数原型是(分数:2.00)A.const void Show( );B.void const Show( );C.void Show( )const;D.void Show(const);28.若有如下程序: #includeiostream using namespace std; class TestClass public: void who() cout“TestClass“endl; ; class TestClass1:public TestClass public: void who()cout“TestClass1“endl; ; int main() Te
13、stClass *p; TcstClass1 obj1; p= p-who(); return 0; 则该程序运行后的输出结果是 _ 。(分数:2.00)A.TestClass1B.TestClassC.0D.无输出29.已知主函数中通过如下语句序列实现对函数模板 swap 的调用: int a10,biol; swap(a,b,10); 下列对函数模板 swap 的声明中,会导致上述语句序列发生编译错误的是_。(分数:1.00)A.template typename Tvoid swap(T a,T b,int size);B.templatetypename Tvoid swap(int
14、size,T a,T b);C.templatetypename T1,typename T2void swap(T1 a,T2 b,int size);D.templateclass T1,class T2void swap(T1 a,T2 b,int size);30.若进栈序列为 a,b,c,则通过入出栈操作可能得到的 a,b,c 的不同排列个数为 _。(分数:2.00)A.4B.5C.6D.731.若有以下函数调用语句:fun(m+n,x+y,f(m+n,z,(x,y);在此函数调用语句中实参的个数是 _ 。(分数:2.00)A.6B.5C.4D.332.在下列枚举符号中,用来表示“相
15、对于当前位置”文件定位方式的是_。(分数:2.00)A.ios_base:curB.ios_base:begC.ios_base:outD.ios_base:end33.下列关于栈的描述正确的是_。(分数:2.50)A.在栈中只能插入元素而不能删除元素B.在栈中只能删除元素而不能插入元素C.栈是特殊的线性表,只能在一端插入或删除元素D.栈是特殊的线性表,只能在一端插入元素,而在另一端删除元素34.有如下程序: #includeiostream using namespace std; class Pair int m; int n; public: Pair(int i,int j):m(i)
16、,n(j) bool operator(Pair P)const; /须在类体外给出定义 ; int main() Pair p1(3,4),p2(4,3),p3(4,5); cout(p1p2)(p2p1)(p2p3)(p3p2); return 0; 运算符函数。perator的功能是比较两个 Pair 对象的大小,当左边对象大时,返回 true,否则返回false。比较规则是首先比较两对象的 m 成员,m 大者为大:当 m 相等时比较 n,n 大者为大。程序输出0101,下列对运算符重载函数的正确定义是_。(分数:2.00)A.bool Pair:operator(Pair p)cons
17、tif(m!=p.m)return mp.m;return np.n;B.bool Pair:operator(Pair P)if(m!=p.m)return mp.m;return np.n;C.bool Pair:operator(Pair p)constif(mp.m)return true;return np.n;D.bool Pair:operator(Pair P)if(mp.m)return true;return np.n;35.有如下程序: #include iostream using namespace std; class AA public: virtual void
18、 f()cout“AA“; ; class BB:public AA public: BB()cout“BB“; ; class CC:public BB public: virtual void f() BB:f(); cout“CC“; ; int main() AA aa, *p; BB bb; CC cc; p= p-f(); return 0; 执行上面的程序将输出_。(分数:2.50)A.BBAACCB.AABBCCC.BBAABBCCD.BBBBAACC二、填空题(总题数:15,分数:25.00)36.一棵二叉树第 6 层(根结点为第一层)的结点最多为 1 个。 (分数:2.00
19、)37.在下面程序横线处填上适当内容,以使程序的输出为:9 8 7 6。 #include iostream using namespace std; templateclass T void“ 1, 2) 3; for(int i=0;in/2;i+) t=ai,ai=an-1-i,an-1-i=t, int main() int x=6,7,8,9; f(x,4); for(int i=0;i4;i+)coutxi; return 0; (分数:2.50)38.多态性分为两类:编译时的多态性和 _ 1_ 。 (分数:1.00)39.软件工程研究的内容主要包括: 【4】 技术和软件工程管理。
20、 (分数:1.00)40.如果表达式-x 中的“-”是重载的类成员函数运算符,采用运算符函数调用格式时,该表达式应表示为 1。 (分数:2.00)41.请将下列类定义补充完整。 class Basepublic:void fun()cout“Base:fun“end;; class Derived:public Base public: void fun() _ 1_ /显式调用基类的 fun 函数 cout“Derived:fun“endl; ; (分数:1.00)42.若有以下程序: #includeiostream using namespace std; class Base publ
21、ic: void who()cout“Base“end1; class Derived1:public Base public: void who()cout“Derived“end1; ; int main() Base *p; Derived1 obj1; p= public: void fun() int a; a=10; this-,a=5; b=6; this-c=7; cout“a=“a“,this-a=“this-aendl; ; void main() myclass obj1; obj1.fun() (分数:2.00)48.下列程序的输出结果是 1。 #includeiost
22、ream using namespace std; class Test public: Test() cnt+; Test() cnt-; static int Count() return cnt; private: static int cnt; ; int Test:cnt=0; int main() coutTest:Count()“; Test t1,t2; Test*oT3=new Test; Test*pT4=new Test; coutTest:Count()“; delete pT4; delete pT3; coutTest:Count()endl; return 0;
23、(分数:2.00)49.定义如下变量和数组: int i; int y2 3=2,4,6,8,10,12; 则下面语句的输出结果是: 1。 for (i=0;i2;i+) couty1-ii+1endl; (分数:2.50)50.在下面的程序的横线处填上适当的语句,使该程序的输出为 12。 #include iostream using namespace std; class Base public: int a,b; Base(int i) a=i; ; class Derived: public Base int a; public: Derived(int x): Base(x),b(
24、x+1) void show() _ 1_ ; /输出基烃数据成员 a 的值。 coutbend1; ; int main() Derived d(1); D. show(); return 0; (分数:2.00)二级 C+-196 答案解析(总分:93.50,做题时间:90 分钟)一、选择题(总题数:35,分数:68.50)1.有三个关系 R,S 和 T 如下: R A B C a 1 2 b 2 1 c 3 1 S A B C d 3 2 T A B C a 1 2 b 2 1 C 3 1 d 3 2 其中关系 T 由关系 R 和 S 通过某种操作得到,该操作为_。(分数:1.00)A.
25、选择B.投影C交D并 解析:解析 并关系 T 中包含了关系 R 与 S 中的所有元组,所以进行的是并的运算。2.下列叙述中正确的是_。(分数:2.50)A.有一个以上根结点的数据结构不一定是非线性结构B.只有一个根结点的数据结构不一定是线性结构C.循环链表是非线性结构D.双向链表是非线性结构 解析:解析 线性表的特点是在数据元素的非空有限集合中,存在唯一一个被称为“第一个”的数据元素;存在唯一一个被称为“最后一个”的数据元素;除第一个以外,集合中的每个数据元素均只有一个后继;除最后一个以外,集合中的每个数据元素均只有一个后继。因此,双向表是非线性结构。3.当使用 fstream 流类定义一个流
26、对象并打开一个磁盘文件时,文件的隐含打开方式为_(分数:1.00)A.ios:inB.ios:outC.ios:in | ios:outD.以上都不对 解析:解析 使用 fstream 类建立文件流必须定义打开方式,否则编译器无法判断该文件流是读还是写。4.下列函数的运行结果是_。 #includeiostream.h int f(int a,int b) int c; if(ab)c=1; else if(a=b)c=0; else c=-1; return(c); void main() int i=2,j=3; int p=f(i,j); coutp;(分数:2.50)A.-1 B.1C
27、.2D.编译出错,无法运行解析:解析 本题的函数是根据 a 和 b 的值来给 c 赋值。5.关于关键字 class 和 typename,下列表述中正确的是_。(分数:1.00)A.程序中的 typename 都可以替换为 class B.程序中的 class 都可以替换为 typenameC.在模板形参表中只能用 typename 来声明参数的类型D.在模板形参表中只能用 class 或 typename 来声明参数的类型解析:解析 程序中的 typename 都可以替换为 class,但程序中的 class 不可以全部替换为 typename。在模板类型形参中除了 typename 和 c
28、lass 以外,也可以用常规类型来声明参数的类型,所以 C、D 选项错误。6.下列关于 this 指针的叙述中正确的是_。(分数:1.00)A.任何与类相关的函数都有 this 指针B.类的成员函数都有 this 指针C.类的友元函数都有 this 指针D.类的非静态成员函数才有 this 指针 解析:解析 本题考查 this 指针的使用。类的每一个成员函数都有一个隐含的常量指针,即 this 指针。类的静态成员函数不能含有 this 指针,因为 this 指针是一个指向本对象的指针。7.有如下程序段 #include void main( ) int a=14,b=15,x;char c=“
29、A“;x=(a do x=x-2; coutx; while(!(-x); 则上面程序段_。(分数:2.50)A.输出的是 1B.输出的是 1 和-2 C.输出的是 3 和 0D.是死循环解析:解析 do.while 语句的一般格式为“do 循环体语句 while(表达式);”,先执行循环体语句一次,再判断表达式的值,若为真则继续执行循环,否则终止循环。本题中,先执行 x=x-2,即为 1。判断表达式的值,!(-x)为真,x=0,继续循环。再次执行循环体语句后,x=-2,此时表达式的值为 0,结束循环。10.为了使模块尽可能独立,要求_。(分数:2.50)A.内聚程度要尽量高,耦合程度要尽量强
30、B.内聚程度要尽量高,耦合程度要尽量弱 C.内聚程度要尽量低,耦合程度要尽量弱D.内聚程度要尽量低,耦合程度要尽量强解析:解析 模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。耦合性与内聚性是模块独立性的两个定性标准,耦合与内聚是相互关联的。在程序结构中,各模块的内聚性越强,则耦合性越弱。一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。11.下列关于 C+流的描述中,错误的是 _ 。(分数:2.00)A.cout“A“表达式中输出字符 A B.eof 函数可以检测是否到达文件尾C.对磁盘
31、文件进行流操作时,必须包含头文件 fstreamD.以 ios_base:out 模式打开的文件不存在时,将自动建立一个新文件解析:解析 在 C+中输入用“cin”,输出用“cout”。12.有如下数组声明:int num10l;,下标值引用错误的是_。(分数:1.00)A.num10 B.num5C.num3D.num0解析:解析 数组定义中的数字指的是数组的大小,而下标是从 0 开始的,所以数组的最后一个元素是num9。13.线性表进行二分法检索,其前提条件是 _ 。(分数:2.00)A.线性表以顺序方式存储,并按关键码值排好序 B.线性表以顺序方式存储,并按关键码的检索频率排好序C.线性
32、表以链式方式存储,并按关键码值排好序D.线性表以链式方式存储,并按关键码的检索频率排好序解析:解析 对线性表进行二分法检索,要求线性表是按顺序方式存储,并按关键码值的大小排好序,而不是按关键码的检索频率排序。14.字符串“a+b=12/n/t”的长度为_。(分数:2.00)A.12B.10C.8 D.6解析:解析 题目给出的字符串含有 7 个字符,再加字符串的结束字符,所以共 8 个字符。15.下列不构成无限循环的语句或语句组是 _ 。(分数:2.00)A.n=0;do+n;)while(n=0); B.n=0;while(1)n+;C.while(n=10);n-;D.for(n=0,i=1
33、; ;i+)n+=i解析:解析 选项 B 中 while(1)永远为真,一直自加下次进入死循环;选项 c 中 while(n=10)同理死循环,没有下限范围;选项 D 中 for 循环中 i 也没有循环限定条件也将进入死循环;只有选项 A 中while(n=0)循环判定成立,循环结束。16.己知类 Myclass 的定义如下 class MyClass public: void function1(MyClass static void function2(MyClass void function3()coutdata; staric void function4()coutdata; pr
34、ivate: int data; ; 其中有编译错误的函数是_。(分数:2.00)A.function1B.function2C.function3D.function4 解析:解析 funcyion4()函数作为类的静态成员函数,不能直接访问类中说明的非静态成员,即coutdata 在编译时会出错。17.凡是函数中未指定存储类别的局部变量,其隐含的存储类型是 _ 。(分数:2.00)A.auto B.staticC.regiserD.extern解析:解析 变量说明时使用 auto 修饰的局部变量是自动变量,auto 经常省略,在未指定存储类别时,默认为 auto。18.有以下程序 #inc
35、lude iostream using namespace std; int a; int fun (); int main () extern int a; int b; a = 100; b = fun(); coutbend1; return 0; int fun) extern int a; return (10*a ; 其程序运行后的输出结果是(分数:2.00)A.100B.10C.1000 D.10000解析:解析 本题考核变量的作用域、生存周期和存储类别(自动、静态、存储器,外部)。先来了解外部变量:外部变量用关键字 extern 表示。由于外部变量可以被程序中的所有函数共同访问
36、,其作用域为全局,因此也称为全局变量。对于外部变量而言,“定义变量”和“说明变量”是两个不同的概念。定义a 为外部变量是告诉编译程序, a 是一个外部变量,并要求系统为 a 分配一个固定的永久存储空间。a 的值在整个程序的运行期间都存在,只有当定义它的程序运行结束时,它的存储空间才释放。外部变量定义后,当程序中的函数要引用外部变量时,应在函数中作引用说明。在此程序中,在第二行定义了一个外部变量 a,主函数 main 给外部变量赋的初始值为 100,当调用函数 fun()时,外部变量 a 的值传到函数 fun()中,因此函数所返回的值为 100*10=1000。19.下列关于函数模板的描述中,正
37、确的是_。(分数:2.50)A.函数模板是一个实例函数B.使用函数模板定义的函数没有返回类型C.函数模板的类型参数与函数的参数相同D.通过使用不同的类型参数,可以从函数模板得到不同的实例函数 解析:解析 函数模板是一系列相关函数的模型或样板;使用函数模板定义的函数可以带有返回类型;函数模板的类型参数为虚拟类型参数,与函数的参数不同。故 A、B、C 项错误。定义好函数模板后,编译系统将依据每一次对函数模板调用时实际所使用的的数据类型生成适当的调用代码,并生成相应的函数版本,故 D 项正确。20.下列叙述中,错误的是_。(分数:2.50)A.false 是一个逻辑型常量B.“b”是一个字符型常量C
38、.365 是一个 int 常量D.3.1415926 是一个 double 常量 解析:解析 double 型数据一般占 8 个字节,D 选项超出了范围。21.下列关于函数的说法中,正确的是(分数:2.50)A.C+允许在函数体中定义其他函数B.所有的内联函数都要用 inline 说明C.仅函数返回类型不同的同名函数不能作为重载函数使用 D.有默认值的参数应从左至右逐个定义解析:22.以下程序的执行结果为_。 #includeiostream.h class Sample int n; public: Sample(int i)n=i; operator+()n+; /前缀重载运算符 oper
39、ator+(int)n+=2; /后缀重载运算符 void disp() cout“n=“nendl; ; void main() Sample A(2),B(2); A+; +B; A.disp(); B.disp(); (分数:2.50)A.n=4n=3 B.n=1n=2C.n=3n=4D.n=5n=6解析:解析 此题考查的是“+”运算符的重载。为了区分前缀和后缀运算符,规定:重载后缀运算符时必须多一个虚拟参数:int。本题中,A(2)首先给 n 赋值 2,语句 A+,调用的是后缀运算符重载语句,使得 n 加 2 变为 4。B(2)首先给 n 赋值 2,然后语句+B,调用前缀运算符重载函数
40、,使得 n 加 1。因此最终的输出结果是 n=4 n=3。23.有如下程序: #include iostream using namespace std; class BASE public: BASE()cout“BASE“; ; class DERIVED: public BASE public: DERIVED() cout“DERIVED“; int main() DERIVED x; return 0; 执行后的输出结果是 _ 。(分数:2.00)A.BASEB.DERIVEDC.BASEDERIVEDD.DERIVEDBASE 解析:24.有如下类定义: class AA int
41、a; public: AA(int n=0):a(n) ; class BB:public AA public: BB(int n)_ ; 其中横线处缺失部分是_。(分数:3.00)A.:a(n)B.:AA(n) C.a(n);D.a=n;解析:解析 根据派生类构造函数的一般格式:派生类名(总参数表):基类名 1(参数表1),基类名 n(参数表 n),成员对象名 1(参数表 n+1),成员对象名 m(参数表 n+m)派生类构造函数体。在派生类 BB 的构造函数总参数表后面应该接上基类名从和其参数。25.下列关于关系运算的叙述中正确的是(分数:2.00)A.投影、选择、连接是从二维表的行的方向来
42、进行运算B.并、交、差是从二维表的列的方向来进行运算C.投影、选择、连接是从二维表的列的方向来进行运算 D.以上三种说法都不对解析:解析 在关系模型的数据语言中,一般除了运用常规的集合运算(并、交、差、笛卡尔积等)外,还定义了一些专门的关系运算,如投影、选择,连接等运算前者是将关系看成是元组的集合,这些运算主要是从二维表的行的方向来进行的;后者主要是从二维表的列的方向来进行运算。周此,选项 A 与 B 错误,选项 C 正确。26.类的析构函数是在什么时候调用的?(分数:1.00)A.类创建时B.创建对象时C.删除对象时 D.不自动调用解析:解析 析构函数可以被函数调用,也可以系统调用:函数体内
43、的对象在函数结束时调用析构函数和使用 delete 释放对象所占有用的资源。27.某类中有一个无参且无返回值的常成员函数 Show,则正确的 Show 函数原型是(分数:2.00)A.const void Show( );B.void const Show( );C.void Show( )const; D.void Show(const);解析:28.若有如下程序: #includeiostream using namespace std; class TestClass public: void who() cout“TestClass“endl; ; class TestClass1:p
44、ublic TestClass public: void who()cout“TestClass1“endl; ; int main() TestClass *p; TcstClass1 obj1; p= p-who(); return 0; 则该程序运行后的输出结果是 _ 。(分数:2.00)A.TestClass1 B.TestClassC.0D.无输出解析:解析 程序中的 TestClas1 为 TestClass 的派生类,主函数 main 中定义 TestClass 对象*p,TestClass1 对象 obj1,然后 p 引用 obj1,执行 p-who()则是调用基类中的 who
45、 函数,输出TcstClass。29.已知主函数中通过如下语句序列实现对函数模板 swap 的调用: int a10,biol; swap(a,b,10); 下列对函数模板 swap 的声明中,会导致上述语句序列发生编译错误的是_。(分数:1.00)A.template typename Tvoid swap(T a,T b,int size);B.templatetypename Tvoid swap(int size,T a,T b); C.templatetypename T1,typename T2void swap(T1 a,T2 b,int size);D.templateclas
46、s T1,class T2void swap(T1 a,T2 b,int size);解析:解析 参数顺序有错。30.若进栈序列为 a,b,c,则通过入出栈操作可能得到的 a,b,c 的不同排列个数为 _。(分数:2.00)A.4B.5 C.6D.7解析:31.若有以下函数调用语句:fun(m+n,x+y,f(m+n,z,(x,y);在此函数调用语句中实参的个数是 _ 。(分数:2.00)A.6B.5C.4D.3 解析:解析 参数之间是用逗号分隔的,不要因为参数是表达式而被迷惑。函数的第一个参数是表达式m+n,第三个参数是表达式 f(m+n,z,(x,y)。32.在下列枚举符号中,用来表示“相对于当前位置”文件定位方式的是_。(分数:2.00)A.ios_base:cur B.ios_base:begC.ios_base:outD.ios_base:end解析:解析 C+流的定位方式(也就是指针移动方式)有三种,被定义为 ios_base:seek_dir 中的一组枚举符号: ios base