首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下函数定义: 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
2021-09-05
38
问题
有如下函数定义:
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/HZfp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
有如下程序:#includeusingnamespacestd;classPoint{intx,y;public:Point(intx1=0,inty1=0):x(x1),y(y1){
有如下程序:#include<iostream>Usingnamespacestd;ClassAmount{imamount;public;Amount(intn=0):amount(n
下列叙述中正确的是()。
下面叙述中错误的是
以下程序中调用cin函数给变量a输入数值的方法是错误的,其错误原因是()。#includevoidmain(){int*p,*q,a,b;p=&a;coutp;}
执行下列语句段后,输出字符“*”的个数是()。for(inti=50;i>1;i-=2)cout
下列运算符中,在C++语言中不能重载的是()。
面向对象方法中,继承是指()。
下列关于this指针的叙述中,正确的是()。
若实体A和B是一对多的联系,实体B和C是一对一的联系,则实体A和C的联系是()。
随机试题
下列能够用于错账更正的工具是()。
某同学大学毕业已有机会就业,可又想考硕士研究生,举棋不定,难以决断,心情焦虑。上述行为属于哪种冲突
十万级洁净区的指标为
信用证结算是当前国际贸易的主要结算方式,下列关于信用证结算特点表述错误的是()。
家庭教养方式对儿童有重要影响,该案例中反映的家庭家养方式倾向于()。
某商品进价240元,8折销售后还可获利40元,则原销售价的加价率为()。
人们在思维活动中使用的言语是()。
WorkingEnvironmentYourcompanyhasmadeadiscussionaboutcreatingaharmoniousatmosphere.Youhavebeenaskedtomakerecom
Publictransit.InNorthAmerica,publictransportationhasbeenthemajorcasualtyofthecommitmenttotheautomobile.Ridersh
Thepopularityofcross-borderonlineshoppingisgrowinginChina.Fromtheexcerpts,youcanfindthatcross-borderonlinesho
最新回复
(
0
)