ImageVerifierCode 换一换
格式:DOC , 页数:21 ,大小:55KB ,
资源ID:497147      下载积分:2000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-497147.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文([计算机类试卷]国家二级C++机试(函数)模拟试卷8及答案与解析.doc)为本站会员(testyield361)主动上传,麦多课文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文库(发送邮件至master@mydoc123.com或直接QQ联系客服),我们立即给予删除!

[计算机类试卷]国家二级C++机试(函数)模拟试卷8及答案与解析.doc

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

2、实参个数是 ( )。 ( A) 3 ( B) 4 ( C) 5 ( D) 6 4 有如下程序: #include using namespace std; void function2(int n); void function1(int n) if(n,下列表述中错误的是 ( )。 ( A) 中有可能包含关键字 int ( B) 中有可能包含自定义标识符 ( C) 中有可能包含字符 * ( D) 中可能包含 10 若一个函数的原型为 “int*Xfun1(int x, int& y, char z); ”,则该函数的返回值类型为 ( )。 ( A) int* ( B) int ( C) in

3、t& ( D) char 11 有如下程序: #include using namespace std; class A public: static int a; void init()a=1; A(int a=2)int(); a+; ; int A: a=0: A obj; int main() cout void fun(int&x, int y)int t=x; x=y; y=t; int main() int a2=23, 42; fun(a1, a0); std: cout using namespace std; int main() void function(double

4、val); dOuble val; function(val); cout using namespace std; void f1(int&X, int&y)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; fl(x, y); f2(x, y); cout using namespace std; void f1(int&x)x+; void f2(int x)+x; int main() int x=10, y=12; f1(X); f2(y); cout using

5、namespace std; class AA int n: public: AA(int k): n(k) int get()return n; int getoconstreturn n+1; ; int main() AAa(5); const AA b(6); cout using namespace std; class MyClass public: MyClass(int x): val(x) void Print()constcout();使用函数原型说明有两种形式: 直接使用函数定义的头部,并在后面加上一个分号; 在函数原型说明中省略参数列表中的形参变量名,仅给出函数名、函数

6、类型、参数个数及次序。在选项 C)中,给出了形参变量 m的初值。 【知识模块】 函数 8 【正 确答案】 D 【试题解析】 在 C+中函数在使用之前要预先声明,这种声明在标准 C+中称为函数原型。函数给出了函数名、返回类型以及在调用函数时必须指明参数个数和类型。 【知识模块】 函数 9 【正确答案】 D 【试题解析】 又称为函数类型,表示一个函数所计算 (或运行 )的结果值的类型。它可以是 C+中已定义的数据类型,也可能是用户自定义的数据类型。但是不能包含 ,因为符号 不是一个数据类型。 【知识模块】 函数 10 【正确答案】 A 【试题解析】 由 “int*Xfun1(int x, int&

7、y, char z); ”的定义可知,其返回值为指向 int指针的函数。 【知识模块】 函数 11 【正确答案】 B 【试题解析】 此题实际考查的是变量作用域的屏蔽效应。在 C+中,当标识符的作用域发生重叠时,在一个函数中声明的标识符可以屏蔽函数外声明的标识符或全局标识符。声明类 A的全局对象时,构造函数首先调用 int函数,但由于静态成员变量 a被构造函数内部的形参 a所屏蔽所以 a+改变的是形参 a的值,对静态成员变量 a没有影响。 【知识模块】 函数 12 【正确答案】 B 【试题解析】 此题考查是是函数的调用以及参数值的传递。函数 fun中的第一个参数是引用传值方式,是双向的;第二个参

8、数是按值传递,是单向的。 【知识模块】 函数 13 【正确答案】 D 【试题解析】 此题考查的是函数参数的传递。 C+语言中,函数在传递参数时,总是将实参的值传递给被调用函数的形参,即传值调用。因此,在函数中对形参所作的任何操作都不会改变实参的值。 【知识模块】 函数 14 【正确答案】 C 【试题解析】 此题考查的是函数参数的传递方式。此 题中形参 a是普通参数,即传值调用,函数中对 a增 l不会影响到实参 x的值;形参 b是传址调用,函数中对b增 1同时会改变实参 v的值。故最终结果是 0和 2。 【知识模块】 函数 15 【正确答案】 D 【试题解析】 此题考查的是函数的调用。因为变量的

9、定义是 int v1; long v2,而函数 f()的第一个参数是指针,第二个参数是引用,所以选项 D为正确引用。 【知识模块】 函数 16 【正确答案】 A 【试题解析】 传值方式是将实参复制到形参中,因此实参和形参是两个不同的变量,有各自的存储 空间,可以把函数的形参看做是函数的局部变量。其中 BC选项为按低值传递 D选贤为按引用传递。 【知识模块】 函数 17 【正确答案】 D 【试题解析】 函数的实参与形参是两个不同的变量,有各自的存储空间。函数形参是函数的局部变量,在函数调用时获得初始值。 【知识模块】 函数 18 【正确答案】 A 【试题解析】 子函数 n中的形参是引用变量,所以

10、执行子函数实现了变量 x, y值的交换,变量 x的值等于 26,而变量 y的值等于 10。而子函数 f2中的形参是普通变量,因为 C+的函数之间的参数传 递是传值,所以执行函数 f2不能实现变量x, y值的交换。 【知识模块】 函数 19 【正确答案】 C 【试题解析】 在函数 f的形参表达式中第一个形参为整型指针变量,第二个为整型引用变量,所以用实参 v1的指针初始化第一个形参,用实参 v2初始化第二形参。 【知识模块】 函数 20 【正确答案】 B 【试题解析】 在函数 n(int&x)x+; 中,是对变量 x的引用,所以当在 main函数中执行 “n(x); ”语句后,变量 x的值等于

11、11,而在函数 void f2(intx)+x; 中 ,对变量 x的传递调用,在 main函数中执行 “f2(y); ”语句后,变量 y的值仍然等于12,所以输出 x+y的值等于 23。 【知识模块】 函数 21 【正确答案】 B 【试题解析】 此题考查的是常成员函数和函数的重载。所谓函数重载,是指同一个函数名可以对应着多个函数实现。一般对象 a既可以调用普通成员函数 get,也可以调用常成员函数 get,由于常成员函数不能更新对象的数据成员,所以题目中通过对象 a调用的函数为常成员函数;常对象 b只能调用普通成员函数。 【知识模块】 函数 22 【正确答案 】 C 【试题解析】 此题考查的是

12、运算符重载。 C+语言规定, “=”运算符只能作为成员函数重载。 【知识模块】 函数 23 【正确答案】 C 【试题解析】 此题考查的是函数重载。在 C+语言中,允许定义一系列函数名相同,但形参的个数和类型不完全相同的函数,即函数的重载。重载函数对返回值类型不做要求,返回值类型也不参与区分函数的重载形式。 【知识模块】 函数 24 【正确答案】 C 【试题解析】 此题考查的是常成员函数的重载。常成员函数是使用 const关键字说明的函数。 const关键字可用于区分重载函数。此时,常对象调用常成员函数,一般对象调用一般成员函数;题目中的 Print()就是通过 const重载的两个成员函数,主

13、函数中声明的 obj1是常对象, obj2是一般对象。故输出结果是 const:val=10 val=20。 【知识模块】 函数 25 【正确答案】 C 【试题解析】 此题考查的是函数重载的概念。在 C+语言中,允许定义一系列函数名相同,但形参的个数和类型不完全相同的函数,即函数的重载。重载函数对返回值类型不做要求,返回值类型也不参与区分函数的重 载形式。故选项 c错误。 【知识模块】 函数 26 【正确答案】 C 【试题解析】 函数重载的原则就是至少要在参数个数或参数类型上有所不同,且如果函数只是函数类型不同的,而其他完全相同,也不能作为重载函数来使用。 【知识模块】 函数 27 【正确答案

14、】 C 【试题解析】 如果重载函数只是函数类型不同,而参数个数和类型完全相同,C+编译器则无法区别它们。 【知识模块】 函数 28 【正确答案】 D 【试题解析】 重载函数至少要在参数个数或参数类型上不同。而选项 D中的函数与原函数只是函数类型不同,而其他完全相同 (参数个数及类型 ),则不能作为重载函数来使用。 【知识模块】 函数 29 【正确答案】 C 【试题解析】 两个或两个以上的函数,具有相同的函数名,但是形参的个数或者类型不同,编译器根据实参和形参的类型及个数进行最佳匹配,自动确定调用哪个函数,这就是函数的重载。 【知识模块】 函数 30 【正确答案】 C 【试题解析】 此题考查的是

15、内联函数的概念。在调用时,内联函数会像宏函数一样的展开,将调用表达式用内联函数体来替换所以它没有一般 函数的参数压栈和和退栈操作,所以选项 A错误;即使没有使用 inline说明,编译器也会将在类的说明部分定义的函数认定为内联函数,所以选项 B错误;内联函数只是比普通函数有更高的执行效率,所以选项 D错误。 【知识模块】 函数 31 【正确答案】 B 【试题解析】 此题考查的是内联函数。 C+语言引入内联函数的原因是用它来取代 C语言的预处理宏函数。故选项 B正确。 【知识模块】 函数 32 【正确答案】 A 【试题解析】 C+引入内联函数的原因是用它来取代 C中的预处理宏函数。两者的区 别在于,宏函数是由预处理器对宏进行替换,而内联函数是通过编译器来实现的。内联函数在调用时像宏函数一样展开,所以它没有一般函数的参数压栈和退栈操作,减少了调用开销,因此,内联函数比普通函数有更高的执行效率。 【知识模块】 函数 33 【正确答案】 B 【试题解析】 斐波那契数列是递归函数,所以 fib(2)=fib(1)+fib(0)=2+1=3。因而执行函数调用表达式 fib(2)时,函数 fib被调用的次是 2次。 【知识模块】 函数

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