【计算机类职业资格】国家二级C++机试(函数)模拟试卷6及答案解析.doc
《【计算机类职业资格】国家二级C++机试(函数)模拟试卷6及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】国家二级C++机试(函数)模拟试卷6及答案解析.doc(11页珍藏版)》请在麦多课文档分享上搜索。
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
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 国家 二级 机试 函数 模拟 试卷 答案 解析 DOC
