早教吧作业答案频道 -->其他-->
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语言选择题下列程序能对两个...的网友还看了以下:
判断奇偶程序#includeintmain(){inta,b;printf("输入a=");sca 2020-06-03 …
关于左自增左自减,右自增右自减的问题#includeintmain(){intresult;int 2020-06-11 …
已知△ABC是等腰直角三角形,AC=BC=2,D是边AB上一动点(A、B两点除外),将△CAD绕点 2020-06-13 …
Inta=3,b=5,c=7;If(a>b)a=b;c=a;If(c!=a)c=b;Printf( 2020-07-09 …
C程序题都来看看41.有以下程序main(){inta;charc=10;floatf=100.0 2020-07-17 …
1.以下程序的运行结果是#include"stdio.h"main(){inta[]={1,2,3 2020-07-23 …
multiplydefinedsymbolsfound#includemain(){doublea 2020-07-23 …
#includeintmain(void){intjc(intn);inty=0,n=0;prin 2020-07-23 …
下列程序运行后的输出结果是()#includemain(){inti=1,j=3printf("% 2020-07-23 …
main(){intg;printf("Enteramark:");scarf("%d",&g); 2020-07-25 …