早教吧作业答案频道 -->其他-->
C语言选择题下列程序能对两个整型变量的值进行交换。以下正确的说法是(4)D。main(){inta=10,b=20;printf("(l)a=%d,b=%d\n",a,b);swap(&a,&b);printf(“(2)a=%d,b=%d\n”a,b);
题目详情
C语言选择题下列程序能对两个整型变量的值进行交换。以下正确的说法是(4) D 。 main() { int a=10,b=20; printf("(l) a=%d,b=%d\n",a,b); swap(&a,&b); printf(“(2)a=%d,b=%d\n”a,b); } swap(int p, int q) { int t; t=p;p=q;q=t;} A. 该程序完全正确 B. 该程序有错,只要将语句swap(&a,&b);中的参数改为a,b即可 C. 该程序有错,只要将swap()函数中的形参p和q以及t均定义为指 针(执行语句不变)即可 D. 以上说法都不对
▼优质解答
答案和解析
首先,A肯定不对,因为这个程序没有实现a,b的交换。 其次,B的做法也无法改变a,b的值。因为调用函数的时候会复制参数的一个副本,函数内部是用这个副本运算,因此,值传递无法改变原始数据的值。 再次,C的意思是改为 swap(int *p, int *q) { int *t; t=p;p=q;q=t;} 这个函数运行时,同样把a,b的地址复制一个副本给p,q,然后将p,q的值(a,b地址的副本)进行了交换,而地址指向的值却没有任何变动,因此无法改变a,b的值。 所以,D.以上说法都不对
看了 C语言选择题下列程序能对两个...的网友还看了以下:
下面的matlab程序为什么出错?p=[];p(1)=2;a=7;for i=1:10p(i)=( 2020-05-16 …
有点迷惑复利计算.1.复利终值已知现值P,年利率i,在复利计息的前提下,几年后本金与利息之和F即为 2020-06-12 …
根据音标写单词1./ba:θ/2./θik/3./fəiv/4./ʃi:p/5./ʃeik/6./ 2020-06-14 …
椭a2+y2/b2=1(a大于b大于0)的左,右焦点分别为F1F2点P在此椭圆上且PF1垂直PF2 2020-06-21 …
债券的价值计算公式,求解释!债券是固定利率,每年付息一次,到期归还本金,债券价值计算公式是V=I* 2020-06-30 …
若有以下定义和赋值double*q,a=5.5;int*p,i=1;double*q,a=5.5; 2020-07-09 …
高二数学选修1---2复数代数形式的乘除运算1.计算题(1)7+3i/3+4i;(2)2i/2-i 2020-08-02 …
oracleGreatest最大值函数的值为空的问题selectgreatest(i.Fdate,u 2020-10-29 …
设随机变量X1,X2,X3,X4独立同分布,P{Xi=0}=0.6,P{Xi=1}=0.4(i=1, 2020-10-30 …
若有以下说明和语句且0<=i<10。inta[]={1,2,3,4,5,6,7,8,9,0},若有以 2020-11-01 …