首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下函数定义: void swap(int a, int& b) { int c=a; a=b; b=c; } 若执行语句序列 int x = 0, y = 1; swap(x, y); 则变量 x 和 y 的值分别是
有如下函数定义: void swap(int a, int& b) { int c=a; a=b; b=c; } 若执行语句序列 int x = 0, y = 1; swap(x, y); 则变量 x 和 y 的值分别是
admin
2020-06-29
53
问题
有如下函数定义:
void swap(int a, int& b) { int c=a; a=b; b=c; }
若执行语句序列
int x = 0, y = 1;
swap(x, y);
则变量 x 和 y 的值分别是
选项
A、0和0
B、0和1
C、1和0
D、1和1
答案
A
解析
参数传递有三种:
传值(value),传址(address),和传引用(reference)
传值时子函数(被调用者)复制父函数(调用者)传递的值,这样子函数无法改变父函数变量的值。函数swap的第一个参数就是传值调用,所以它的值不会改变
传址时父函数将变量的地址传递给子函数,这样子函数可以能过改写地址里的内容改变父函数中的变量
传引用则是一种看起来像传值调用,而实际上功能同传址一样的传递方式。子函数可以改写父函数的变量值。函数swap的第二个参数就是传引用调用,可以改变其值,所以执行完函数后,b值与a值相同,即都是0,A选项正确。
转载请注明原文地址:https://kaotiyun.com/show/Dsyp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
程序流程图中带有箭头的线段表示的是( )。
下面是一个模板声明的开始部分:templatedouble…由此可知()。
下列语句中,错误的是()。
对C++编译器区分重载函数无任何意义的信息是()。
有如下函数模板:templateTcast(Uu){returnu;}其功能是将U类型数据转换为T类型数据。已知i为int型变量,下列对模板函数cast的调用中正确的是()。
通过运算符重载,可以改变运算符原有的()。
请使用VC6或使用【答题】菜单打开考生目录proj3下的工程文件proj3,此工程中包含一个源程序文件proj3.epp,其功能是从文本文件in.dat中读取全部整数,将整数序列存放到intArmy类的对象中,然后建立另一对象myArray,将对象内容赋值
已知Value是一个类,value是Value的一个对象。下列以非成员函数形式重载的运算符函数原型中,正确的是()。
下列关于C++预定义流对象的叙述中,正确的是()。
随机试题
合同台账主要有()。
关于饰面板(砖)工程材料技术要求的说法,正确的有()。
牛腿设计的主要内容是什么?
利多卡因与普鲁卡因比较不具有以下哪个特点
采用(),坝块浇筑的先后程序须受一定的限制,必须是上游块先浇,下游块后浇。
关闭一个活动的应用程序窗口,可以使用快捷键()。
过境的不需要办理检疫审批和过境检疫手续。()
农村信用社改革的三大目标是()。
LanguageContextandEnglishTeachingI.Themeaningsoflanguagecontext1.Generallyspeaking:itcanbedividedintosituati
Pleasepardon______you.
最新回复
(
0
)