首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
下列程序的运行结果是 #include<iostream.h> void fun(int *a,int *B) {int *k; k=a;a=b;b=k; } void
下列程序的运行结果是 #include<iostream.h> void fun(int *a,int *B) {int *k; k=a;a=b;b=k; } void
admin
2010-03-29
35
问题
下列程序的运行结果是 #include<iostream.h> void fun(int *a,int *B) {int *k; k=a;a=b;b=k; } void main( ) {int a=3,b=6,*x=&a,*y=&b; fun(x,y); cout << a <<" "<< b; }
选项
A、63
B、36
C、编译出错
D、0
答案
2
解析
函数的参数不仅可以是整型、实型、字符型等数据,还可以是指针类型。它的作用是将一个变量的地址传送到另一个函数中去。在本题解析中,我们试图将这一问题解释清楚!
大家可以考虑一下利用下面这函数可不可以实现 a和b的互换。
swap(int x,int y)
{int t;
t=x;
x=y;
y=t;
}
如果在main函数中用swap(a,B,会有什么结果呢?在函数调用开始时,a的值传送给x,b的值传递给 y。执行完swap()函数后,x和y的值是互换了,但 main()函数中的a和b并未互换。也就是说由于“单向传递”的“值传递”方式,形参值的改变无法传递给实参。
为了使在函数中改变了的变量值能被main()函数所用,不能采取上述办法,而应该用指针变量做函数参数。在函数执行过程中使指针变量所指向的变量值发生变化,函数调用结束后,这些变量值的变化被保留下来,这样就实现了调用函数改变变量的值,在主调函数中使用这些改变了的值的目的。
swap(int *p1,int *p2)
{ int p;
p= *p1;
*p1=*p2;
*p2=p;
}
注意交换*p1和*p2的值是如何实现的,如果写成下面这样就有问题了!
swap(int *p1,int *p2)
{ int *p;
*p=*p1;/*此语句有问题:*/
*p1=*p2;
*P2=*p;
}
*p1就是a,是整型变量。而*p是指针变量p所指向的变量,但p中并无确切地址,用*p可能会造成破坏系统的正常工作状态。应该将*p1的值赋给一个整型变量,用整型变量作为过渡变量实现*p1和*p2的交换。
转载请注明原文地址:https://jikaoti.com/ti/4JW0FFFM
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
设有如下定义struct{intn;charc;}a[2],*p=a;则以下错误引用结构体成员n的是()。
若typedefcharT[3];T*a;上述定义中a的类型与下面选项中完全相同的是()。
以下关于C语言的叙述中正确的是
软件设计中模块划分应遵循的准则是( )。
以下叙述中错误的是()。
以下选项中不能作为C语言合法常量的是
软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是()。
下面的for语句的循环次数为()。for(x=1,y=0;(y!=19)&&(x
一个算法应当具有5个特性,以下叙述中正确的是()。
在一个长度为n的线性表中插入一个元素,最好情况下需要移动的数据元素数目
随机试题
腭中缝裂开骨折线从梨状孔下方,牙槽嵴上方两侧水平方向延伸至上颌翼突缝
【背景资料】某住宅楼是一幢地上6层,地下1层的砖混结构,总建筑面积3200m2。在现浇顶层一间屋面的混凝土施工过程中出现坍塌事故,坍塌物将与之垂直对应的下面各层预应力空心板依次砸穿,10名施工人员与4辆手推车、模板及支架、混凝土一起落入地下室,造
填制原始凭证时,符合书写要求的是()。
新一轮基础教育课程改革的理论基础包括人本主义理论、合作教育学理论和素质教育理论。()
二十国集团领导人同意为国际货币基金组织和世界银行等多边金融机构提供总额1万亿美元资金,使国际货币基金组织资金规模扩大至现在的3倍,以帮助受金融危机影响陷入困境的国家。上文最恰当的标题是:
某商品按定价出售,每个可以获得45元的利润,现在按定价的八五折出售8个,按定价每个减价35元出售12个,所获得的利润一样。这种商品每个定价多少元?
设f(x)满足:=0,x(x)一x2f’2(x)=1一e-2x且f(x)二阶连续可导,则().
设函数f(x)连续且大于零,Ω(t)={(x,y,z)|x2+y2+z2≤t2},D(t)={x,y)|x2+y2≤t2},则
下列不属于软件调试技术的是()
Writeanessaybasedonthefollowingchart.Summarizetheinformationandreportthemainfeatures,andmakecomparisonswhere
最新回复
(
0
)