欢迎来到麦多课文档分享! | 帮助中心 海量文档,免费浏览,给你所需,享你所想!
麦多课文档分享
全部分类
  • 标准规范>
  • 教学课件>
  • 考试资料>
  • 办公文档>
  • 学术论文>
  • 行业资料>
  • 易语言源码>
  • ImageVerifierCode 换一换
    首页 麦多课文档分享 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    【计算机类职业资格】国家二级C++机试(函数)模拟试卷6及答案解析.doc

    • 资源ID:1331714       资源大小:63KB        全文页数:11页
    • 资源格式: DOC        下载积分:5000积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    二维码
    微信扫一扫登录
    下载资源需要5000积分(如需开发票,请勿充值!)
    邮箱/手机:
    温馨提示:
    如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如需开发票,请勿充值!如填写123,账号就是123,密码也是123。
    支付方式: 支付宝扫码支付    微信扫码支付   
    验证码:   换一换

    加入VIP,交流精品资源
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    【计算机类职业资格】国家二级C++机试(函数)模拟试卷6及答案解析.doc

    1、国家二级 C+机试(函数)模拟试卷 6 及答案解析(总分:66.00,做题时间:90 分钟)一、选择题(总题数:33,分数:66.00)1.下列关于函数的描述中,错误的是( )。(分数:2.00)A.函数可以没有返回值B.函数可以没有参数C.函数可以是一个类的成员D.函数不能被定义为模板2.下列关于 C+函数的说明中,正确的是( )。(分数:2.00)A.内联函数就是定义在另一个函数体内部的函数B.函数体的最后一条语句必须是 return 语句C.标准 C+要求在调用一个函数之前,必须先声明其原型D.编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式3.若有下面的函数调用: fun(

    2、a+b,3,max(n1,b) 则 fun 的实参个数是( )。(分数:2.00)A.3B.4C.5D.64.有如下程序: #inc1udeiostream using namespace std; void function2(int n); void functionl(int n) if(n=0)return; function2(n2); ) void function2 (int n) if(n=0)return; functionl(n1); int main() functionl(5); return 0; 下列关于程序运行情况的描述中,正确的是( )。(分数:2.00)A.f

    3、unction1 运行 1 次,function2 运行 2 次B.function1 运行 2 次,function2 运行 1 次C.function1 运行 2 次,function2 运行 3 次D.function1 运行 2 次,function2 运行 2 次5.假设函数 fun 已经定义,其原型为“void fun(int a,int b7,char*p=“*“);”下列函数调用中错误的是( )。(分数:2.00)A.fun(5)B.fun(5,8)C.fun(6,“#“)D.fun(0,0,“=“)6.已知函数 FA 调用 FB,若要把这两个函数定义在同一个文件中,则( )。

    4、(分数:2.00)A.FA 必须定义在 FB 之前B.FB 必须定义在 FA 之前C.若 FA 定义在 FB 之后,则 FA 的原型必须出现在 FB 的定义之前D.若 FB 定义在 FA 之后,则 FB 的原型必须出现在 FA 的定义之前7.下列函数原型声明中,错误的是( )。(分数:2.00)A.int function(int m,int n);B.int function(int,int);C.int function(int m=3,int n);D.int function(int 8.在对函数进行原型声明时,下列语法成分中,不需要的是( )。(分数:2.00)A.函数返回类型B.函

    5、数参数列表C.函数名D.函数体9.关于函数中的返回类型,下列表述中错误的是( )。(分数:2.00)A.返回类型中有可能包含关键字 intB.返回类型中有可能包含自定义标识符C.返回类型中有可能包含字符牛D.返回类型中可能包含10.若一个函数的原型为“int*Xfunl(int x,int”,则该函数的返回值类型为( )。(分数:2.00)A.int*B.intC.int c1ass A public: static int a; void init()a=1; A(int a=2)int();a+;) ; int A:a=0; A obj; int main() coutobja; retu

    6、rn 0: j 运行时输出的结果是( )。(分数:2.00)A.0B.1C.2D.312.有如下程序: #inc1ude iostream void fun(intx=y;y=t; int main() int a2=23,42; std:couta0“,“ a1 std:end1; return 0; 执行后的输出结果是( )。(分数:2.00)A.42, 42B.23, 23C.23, 42D.42, 2313.有如下程序: #inc1udeiostream using namespace std; int main() void function(double val); double

    7、val; function(val); coutval; retum (); void function(double val) val=3; 编译运行这个程序将出现的情况是( )。(分数:2.00)A.编译出错,无法运行B.输出:3C.输出:30D.输出一个不确定的数14.有如下函数定义: void func(inta,intb)a+;b+; 若执行代码段: int x=0,y=1; func(x,y); 则变量 x 和 y 的值分别是( )。(分数:2.00)A.0 和 1B.1 和 1C.0 和 2D.1 和 215.已知函数 f 的原型是 void f(int *a,long 下列调用

    8、语句中正确的是( )。(分数:2.00)A.f(v1,B.f(v1,v2);C.f(D.f(16.在下列原型所示的 C+函数中,按“传值”方式传递参数的是( )。(分数:2.00)A.void f1(int x);B.void f2(int*x);C.void B(const int*x);D.void f4(int17.下列关于函数参数的叙述中,正确的是( )。(分数:2.00)A.在函数原型中不必声明形参类型B.函数的实参和形参共享内存空间C.函数形参的生存期与整个程序的运行期相同D.函数的形参在函数被调用时获得初始值18.有如下程序; #inc1udeiostream using nam

    9、espace std; void fl(intx=y;y=z;void fZ(:int x,int y)intx;x=y;y=z; int main() int x=10,y=26; f1(x,y); f2(x,y); coutyend1: retum0; 运行时的输出结果是( )。(分数:2.00)A.10B.16C.26D.3619.已知函数 f 的原型是“void flint *x,inty);”,变量 v1 v2 的定义是“int v1, v2;”,下列调用语句中,正确的是( )。(分数:2.00)A.f(vl,v2);B.fNl,C.fj(D.fi(20.有如下程序: #inc1ud

    10、eiostream using namespace std; void fl(int f1(x); f2(y); coutx+yend1; return 0; 运行这个程序的输出结果是( )。(分数:2.00)A.22B.23C.24D.2521.有如下程序: #inc1ude iostream using namespace std; c1ass AA intn; public: AA(int k):n(k) int get0 return n; int get()constretum n+1;) ; int main() AA a(5); const AA b(6); eoute_aget

    11、()bget(); return 0; 执行后的输出结果是( )。(分数:2.00)A.55B.57C.75D.7722.下面是重载为非成员函数的运算符函数原型,其中错误的是( )。(分数:2.00)A.Fraction operator+(Fraction, Fraction);B.Fraction operator (Fraction);C.FractionD.Fraction23.关于函数重载,下列叙述中错误的是( )。(分数:2.00)A.重载函数的函数名必须相同B.重载函数必须在参数个数或类型上有所不同C.重载函数的返回值类型必须相同D.重载函数的函数体可以有所不同24.有如下程序:

    12、 #inc1udeiostream using namespace std; c1ass MyClass public: MyClass(int x):val(x) void Print()const cout“const:val=“val/t; void Print()cout“val=“valt; private: int val, ; int main() const MyClass obj1(10); MyClass obj2(20); obj 1Print(); obj 2Print(); return(); 程序的输出结果是( )。(分数:2.00)A.val=10 const:v

    13、al=20B.const:val=10 const:val=20C.const:val=10 val=20D.val=10 val=2025.下列有关函数重载的叙述中,错误的是( )。(分数:2.00)A.函数重载就是用相同的函数名定义多个函数B.重载函数的参数列表必须不同C.重载函数的返回值类型必须不同D.重载函数的参数可以带有默认值26.若已经声明了函数原型“void fun(int a,double b=00);”,则下列重载函数声明中正确的是( )。(分数:2.00)A.void fun(int a=90, double b=00);B.int fun(int a,doubleb);C

    14、.void fun(double a,intb)D.bool fun(int a,double b=00);27.对 C+编译器区分重载函数无任何意义的信息是( )。(分数:2.00)A.参数类型B.参数个数C.返回值类型D.常成员函数关键字 const28.已知函数 fun 的原型为 int fun (int, int, int), 下列重载函数原型中错误的是( )。(分数:2.00)A.charfun(int,int),B.double fun(int,int,double);C.int fun(int,char*);D.float fun(int, int, int);29.下列关于函数

    15、重载的叙述中,错误的是( )。(分数:2.00)A.重载函数的参数个数可以不同B.重载函数的参数类型可以不同C.重载函数的返回值类型必须不同D.重载函数的参数个数或参数类型必须有所不同30.下列有关内联函数的叙述中,正确的是( )。(分数:2.00)A.内联函数在调用时发生控制转移B.内联函数必须通过关键字 inline 来定义C.内联函数是通过编译器来实现的D.内联函数函数体的最后一条语句必须是 return 语句31.为了取代 C 中带参数的宏,在 C+中使用( )。(分数:2.00)A.重载函数B.内联函数C.递归函数D.友元函数32.为了提高函数调用的实际运行速度,可以将较简单的函数定

    16、义为( )。(分数:2.00)A.内联函数B.重载函数C.递归函数D.函数模板33.计算斐波那契数列第 n 项的函数定义如下: int fib(int n) if(n=0) retum 1; else if(n=1) retum2; else return fib(n1)+fib(n2); 若执行函数调用表达式 fib(2),函数 fib 被调用的次数是( )。(分数:2.00)A.1B.2C.3D.4国家二级 C+机试(函数)模拟试卷 6 答案解析(总分:66.00,做题时间:90 分钟)一、选择题(总题数:33,分数:66.00)1.下列关于函数的描述中,错误的是( )。(分数:2.00)

    17、A.函数可以没有返回值B.函数可以没有参数C.函数可以是一个类的成员D.函数不能被定义为模板 解析:解析:C+是一种强类型语言,它要求对于每一个实现都要有一个实例,这给程序员带来很多不便性。函数模板提供一种用来自动生成各种类型函数实例的算法。程序员只需要初始化其中部分参数和返回值,或者都不初始化,只需要申明通用的类型,而函数体则不需要改变。2.下列关于 C+函数的说明中,正确的是( )。(分数:2.00)A.内联函数就是定义在另一个函数体内部的函数B.函数体的最后一条语句必须是 return 语句C.标准 C+要求在调用一个函数之前,必须先声明其原型 D.编译器会根据函数的返回值类型和参数表来

    18、区分函数的不同重载形式解析:解析:此题考查的是有关函数的概念。内联函数是在函数定义之前加关键字 inline 来声明的函数,而不是定义在另一个函数体内部的函数,故选项 A 错误;无返回值的函数在执行完最后一条语句后,会自动返回而不必加入 retum 语句,故选项 B 错误;如果函数只是返回值类型不同,而其它完全相同,则不能作为函数重载来使用,故选项 D 错误。3.若有下面的函数调用: fun(a+b,3,max(n1,b) 则 fun 的实参个数是( )。(分数:2.00)A.3 B.4C.5D.6解析:解析:此题考查的是函数的调用。C+中函数调用的一般形式为:函数名(实参表),其中实参表是用

    19、逗号分隔的一系列表达式。因此,本题中 fun0 函数的实参表由 a+b、3 和 max(n1,b)组成。4.有如下程序: #inc1udeiostream using namespace std; void function2(int n); void functionl(int n) if(n=0)return; function2(n2); ) void function2 (int n) if(n=0)return; functionl(n1); int main() functionl(5); return 0; 下列关于程序运行情况的描述中,正确的是( )。(分数:2.00)A.fu

    20、nction1 运行 1 次,function2 运行 2 次B.function1 运行 2 次,function2 运行 1 次C.function1 运行 2 次,function2 运行 3 次D.function1 运行 2 次,function2 运行 2 次 解析:解析:在主函数中执行 functionl(5)时,会调用 function2(3),function2(3)又会调用functionl(2),functionl(2)又会调用 function2(0),到此相互调用结束。所以 funaion1()和function2()各执行了 2 次。5.假设函数 fun 已经定义,

    21、其原型为“void fun(int a,int b7,char*p=“*“);”下列函数调用中错误的是( )。(分数:2.00)A.fun(5)B.fun(5,8)C.fun(6,“#“) D.fun(0,0,“=“)解析:解析:根据函数 fun()的定义,其前两个形参为整型变量,第三个形参为字符型变量。所以在调用时,必须符合形参的数据类型,而选项 C)的第二个实参的数据类型为字符串,不符合第二个形参的数据类型。6.已知函数 FA 调用 FB,若要把这两个函数定义在同一个文件中,则( )。(分数:2.00)A.FA 必须定义在 FB 之前B.FB 必须定义在 FA 之前C.若 FA 定义在 F

    22、B 之后,则 FA 的原型必须出现在 FB 的定义之前D.若 FB 定义在 FA 之后,则 FB 的原型必须出现在 FA 的定义之前 解析:解析:在 C+中,在调用任何函数之前,必须确保它已有原型说明。函数原型说明通常放在程序文件的头部,以使得该文件中所有函数都能调用它们。在本题中,当函数 FA 调用 FB 时,函数 FB 可以定义在 FA 的后面,但是 FB 的原型必须出现在 FA 的定义之前,因而选项 D)为正确答案。7.下列函数原型声明中,错误的是( )。(分数:2.00)A.int function(int m,int n);B.int function(int,int);C.int

    23、function(int m=3,int n); D.int function(int 解析:解析:在 C+中,函数在使用之前要预先声明。这种声明在标准 C+中称为函数原型,函数原型给出了函数名、返回类型以及在调用函数时必须提供的参数个数和类型。其语法为:返回类型函数名(形参列表);使用函数原型说明有两种形式:直接使用函数定义的头部,并在后面加上一个分号;在函数原型说明中省略参数列表中的形参变量名,仅给出函数名、函数类型、参数个数及次序。在选项C)中,给出了形参变量 m 的初值。8.在对函数进行原型声明时,下列语法成分中,不需要的是( )。(分数:2.00)A.函数返回类型B.函数参数列表C.

    24、函数名D.函数体 解析:解析:在 C+中函数在使用之前要预先声明,这种声明在标准 C+中称为函数原型。函数给出了函数名、返回类型以及在调用函数时必须指明参数个数和类型。9.关于函数中的返回类型,下列表述中错误的是( )。(分数:2.00)A.返回类型中有可能包含关键字 intB.返回类型中有可能包含自定义标识符C.返回类型中有可能包含字符牛D.返回类型中可能包含 解析:解析:返回类型又称为函数类型,表示一个函数所计算(或运行)的结果值的类型它可以是C+中已定义的数据类型,也可能是用户自定义的数据类型,但是不能包含,因为符号不是一个数据类型。10.若一个函数的原型为“int*Xfunl(int

    25、x,int”,则该函数的返回值类型为( )。(分数:2.00)A.int* B.intC.int”的定义可知,其返回值为指向 int 指针的函数。11.有如下程序: #inc1udeiostream using namespace std; c1ass A public: static int a; void init()a=1; A(int a=2)int();a+;) ; int A:a=0; A obj; int main() coutobja; return 0: j 运行时输出的结果是( )。(分数:2.00)A.0B.1 C.2D.3解析:解析:此题实际考查的是变量作用域的屏蔽效应

    26、。在 C+中,当标识符的作用域发生重叠时,在一个函数中声明的标识符可以屏蔽函数外声明的标识符或全局标识符声明类 A 的全局对象时,构造函数首先调用 ut 函数,但由于静态成员变量 a 被构造函数内部的形参 a 所屏蔽所以 a+改变的是形参 a 的值,对静态成员变量 a 没有影响。12.有如下程序: #inc1ude iostream void fun(intx=y;y=t; int main() int a2=23,42; std:couta0“,“ a1 std:end1; return 0; 执行后的输出结果是( )。(分数:2.00)A.42, 42B.23, 23 C.23, 42D.

    27、42, 23解析:解析:此题考查是是函数的调用以及参数值的传递。函数 fun 中的第一个参数是引用传值方式,是双向的:第二个参数是按值传递,是单向的。13.有如下程序: #inc1udeiostream using namespace std; int main() void function(double val); double val; function(val); coutval; retum (); void function(double val) val=3; 编译运行这个程序将出现的情况是( )。(分数:2.00)A.编译出错,无法运行B.输出:3C.输出:30D.输出一个不确

    28、定的数 解析:解析:此题考查的是函数参数的传递。C+语言中,函数在传递参数时,总是将实参的值传递给被调用函数的形参,即传值调用因此,在函数中对形参所作的任何操作都不会改变实参的值。14.有如下函数定义: void func(inta,intb)a+;b+; 若执行代码段: int x=0,y=1; func(x,y); 则变量 x 和 y 的值分别是( )。(分数:2.00)A.0 和 1B.1 和 1C.0 和 2 D.1 和 2解析:解析:此题考查的是函数参数的传递方式。此题中形参 a 是普通参数,即传值调用,函数中对 a增 l 不会影响到实参 x 的值;形参 b 是传址调用,函数中对 b

    29、 增 1 随时会改变实参 y 的值。故最终结果是0 和 2。15.已知函数 f 的原型是 void f(int *a,long 下列调用语句中正确的是( )。(分数:2.00)A.f(v1,B.f(v1,v2);C.f(D.f( 解析:解析:此题考查的是函数的调用。因为变量的定义是 int v1;longv2,而函数 fo 的第一个参数是指针,第二个参数是引用,所以选项 D 为正确引用。16.在下列原型所示的 C+函数中,按“传值”方式传递参数的是( )。(分数:2.00)A.void f1(int x); B.void f2(int*x);C.void B(const int*x);D.vo

    30、id f4(int解析:解析:传值方式是将实参复制到形参中,因此实参和形参是两个不同的变量,有各自的存储空间,可以把函数的形参看做是函数的局部变量。其中 BC 选项为按低值传递 D 选贤为按引用传递。17.下列关于函数参数的叙述中,正确的是( )。(分数:2.00)A.在函数原型中不必声明形参类型B.函数的实参和形参共享内存空间C.函数形参的生存期与整个程序的运行期相同D.函数的形参在函数被调用时获得初始值 解析:解析:函数的实参与形参是两个不同的变量,有各自的存储空间。函数形参是函数的局部变量,在函数调用时获得初始值。18.有如下程序; #inc1udeiostream using name

    31、space std; void fl(intx=y;y=z;void fZ(:int x,int y)intx;x=y;y=z; int main() int x=10,y=26; f1(x,y); f2(x,y); coutyend1: retum0; 运行时的输出结果是( )。(分数:2.00)A.10 B.16C.26D.36解析:解析:子函数 f1 中的形参是引用变量,所以执行子函数实现了变量 x,y 值的交换,变量 x 的值等于 26,而变量 y 的值等于 10。而子函数 f2 中的形参是普通变量,因为 C+的函数之间的参数传递是传值,所以执行函数 f2 不能实现变量 x,y 值的交

    32、换。19.已知函数 f 的原型是“void flint *x,inty);”,变量 v1 v2 的定义是“int v1, v2;”,下列调用语句中,正确的是( )。(分数:2.00)A.f(vl,v2);B.fNl,C.fj( D.fi(解析:解析:在函数 f 的形参表达式中第一个形参为整型指针变量,第二个为整型引用变量,所以用实参v1 的指针初始化第一个形参,用实参 v2 初始化第二形参。20.有如下程序: #inc1udeiostream using namespace std; void fl(int f1(x); f2(y); coutx+yend1; return 0; 运行这个程序

    33、的输出结果是( )。(分数:2.00)A.22B.23 C.24D.25解析:解析:在函数 fl(irit c1ass AA intn; public: AA(int k):n(k) int get0 return n; int get()constretum n+1;) ; int main() AA a(5); const AA b(6); eoute_aget()bget(); return 0; 执行后的输出结果是( )。(分数:2.00)A.55B.57 C.75D.77解析:解析:此题考查的是常成员函数和函数的重载。所谓函数重载,是指同一个函数名可以对应着多个函数实现。一般对象 a

    34、 既可以调用普通成员函数 get,也可以调用常成员函数 get,由于常成员函数不能更新对象的数据成员,所以题目中通过对象 a 调用的函数为常成员函数:常对象 b 只能调用普通成员函数。22.下面是重载为非成员函数的运算符函数原型,其中错误的是( )。(分数:2.00)A.Fraction operator+(Fraction, Fraction);B.Fraction operator (Fraction);C.Fraction D.Fraction解析:解析:此题考查的是运算符重载。C+语言规定,“=”运算符只能作为成员函数重载。23.关于函数重载,下列叙述中错误的是( )。(分数:2.00

    35、)A.重载函数的函数名必须相同B.重载函数必须在参数个数或类型上有所不同C.重载函数的返回值类型必须相同 D.重载函数的函数体可以有所不同解析:解析:此题考查的是函数重载。在 C+语言中,允许定义一系列函数名相同,但形参的个数和类型不完全相同的函数,即函数的重载。重载函数对返回值类型不做要求,返回值类型也不参与区分函数的重载形式。24.有如下程序: #inc1udeiostream using namespace std; c1ass MyClass public: MyClass(int x):val(x) void Print()const cout“const:val=“val/t; v

    36、oid Print()cout“val=“valt; private: int val, ; int main() const MyClass obj1(10); MyClass obj2(20); obj 1Print(); obj 2Print(); return(); 程序的输出结果是( )。(分数:2.00)A.val=10 const:val=20B.const:val=10 const:val=20C.const:val=10 val=20 D.val=10 val=20解析:解析:此题考查的是常成员函数的重载。常成员函数是使用 const 关键字说明的函数。const 关键字可用

    37、于区分重载函数。此时,常对象调用常成员函数,一般对象调用一般成员函数:题目中的 Print()就是通过 const 重载的两个成员函数,主函数中声明的 objl 是常对象,obj2 是一般对象。故输出结果是const:val=10 val20。25.下列有关函数重载的叙述中,错误的是( )。(分数:2.00)A.函数重载就是用相同的函数名定义多个函数B.重载函数的参数列表必须不同C.重载函数的返回值类型必须不同 D.重载函数的参数可以带有默认值解析:解析:此题考查的是函数重载的概念。在 C+语言中,允许定义一系列函数名相同,但形参的个数和类型不完全相同的函数,即函数的重载。重载函数对返回值类型

    38、不做要求,返回值类型也不参与区分函数的重载形式。故选项 C 错误。26.若已经声明了函数原型“void fun(int a,double b=00);”,则下列重载函数声明中正确的是( )。(分数:2.00)A.void fun(int a=90, double b=00);B.int fun(int a,doubleb);C.void fun(double a,intb) D.bool fun(int a,double b=00);解析:解析:函数重载的原则就是至少要在参数个数或参数类型上有所不同,且如果函数只是函数类型不同的,而其他完全相同,也不能作为重载函数来使用。27.对 C+编译器区

    39、分重载函数无任何意义的信息是( )。(分数:2.00)A.参数类型B.参数个数C.返回值类型 D.常成员函数关键字 const解析:解析:如果重载函数只是函数类型不同,而参数个数和类型完全相同,C+编译器则无法区别它们。28.已知函数 fun 的原型为 int fun (int, int, int), 下列重载函数原型中错误的是( )。(分数:2.00)A.charfun(int,int),B.double fun(int,int,double);C.int fun(int,char*);D.float fun(int, int, int); 解析:解析:重载函数至少要在参数个数或参数类型上不

    40、同。而选项 D 中的函数与原函数只是函数类型不同,而其他完全相同(参数个数及类型),则不能作为重载函数来使用。29.下列关于函数重载的叙述中,错误的是( )。(分数:2.00)A.重载函数的参数个数可以不同B.重载函数的参数类型可以不同C.重载函数的返回值类型必须不同 D.重载函数的参数个数或参数类型必须有所不同解析:解析:两个或两个以上的函数,具有相同的函数名,但是形参的个数或者类型不同,编译器根据实参和形参的类型及个数进行最佳匹配,自动确定调用哪个函数,这就是函数的重载。30.下列有关内联函数的叙述中,正确的是( )。(分数:2.00)A.内联函数在调用时发生控制转移B.内联函数必须通过关

    41、键字 inline 来定义C.内联函数是通过编译器来实现的 D.内联函数函数体的最后一条语句必须是 return 语句解析:解析:此题考查的是内联函数的概念。在调用时,内联函数会像宏函数一样的展开,将调用表达式用内联函数体来替换所以它没有一般函数的参数压栈和和退栈操作,所以选项 A 错误;即使没有使用inline 说明,编译器也会将在类的说明部分定义的函数认定为内联函数,所以选项 B 错误:内联函数只是比普通函数有更高的执行效率,所以选项 D 错误。31.为了取代 C 中带参数的宏,在 C+中使用( )。(分数:2.00)A.重载函数B.内联函数 C.递归函数D.友元函数解析:解析:此题考查的

    42、是内联函数。C+语言引入内联函数的原因是用它来取代 C 语言的预处理宏函数。故选项 B 正确。32.为了提高函数调用的实际运行速度,可以将较简单的函数定义为( )。(分数:2.00)A.内联函数 B.重载函数C.递归函数D.函数模板解析:解析:C+引入内联函数的原因是用它来取代 C 中的预处理宏函数。两者的区别在于,宏函数是由预处理器对宏进行替换,而内联函数是通过编译器来实现的。内联函数在调用时像宏函数一样展开,所以它没有一般函数的参数压栈和退栈操作,减少了调用开销,因此,内联函数比普通函数有更高的执行效率。33.计算斐波那契数列第 n 项的函数定义如下: int fib(int n) if(n=0) retum 1; else if(n=1) retum2; else return fib(n1)+fib(n2); 若执行函数调用表达式 fib(2),函数 fib 被调用的次数是( )。(分数:2.00)A.1B.2 C.3D.4解析:解析:斐波那契数列是递归函数,所以 fib(2)=fib(1)+fib(0)=2+1=3。因而执行函数调用表达式fib(2)时,函数 fib 被调用的次是 2 次。


    注意事项

    本文(【计算机类职业资格】国家二级C++机试(函数)模拟试卷6及答案解析.doc)为本站会员(赵齐羽)主动上传,麦多课文档分享仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文档分享(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
    备案/许可证编号:苏ICP备17064731号-1 

    收起
    展开