C语言 42.下列程序的运行结果是( ) void fun(int *a,int *b) {int *k; �k=a;a=b;b=k; } main() {int a=3,

Python015

C语言 42.下列程序的运行结果是( ) void fun(int *a,int *b) {int *k; �k=a;a=b;b=k; } main() {int a=3,,第1张

答案选B.

函数 fun(int* a,int* b)的两个参数类型都是int*型.

也就是说,参数变量a, b本身的值不会变.

当传入两个实参int* x , int* y后.

尽管fun里面作了交换操作,这种交换不会影响到原来的x,y变量值.

要象这样定义FUN函数,才有意义.

void fun(int *a,int *b)

{int k

�k=*a*a=*b*b=k

}

fun(m)执行是这样的。

k*=n%10,因为n=26,n%10=6,所以k=1*6=6.

n/10=2,所以n=2.再循环。

k*=n%10,因为n=2,n%10=2,所以k=6*2=12.

return(k+30)就返回了42

/*利用辗转相除法求最大公因数*/

#include "stdio.h"

int Gcd(int m,int n)/*最大公约数*/

{

int t

if(m<n)

{

t = n,n = m,m = t

}

if(n == 0) return m

else return Gcd(n,m%n)

}

void main()

{

int A,B,gys,gbs

scanf("%d %d",&A,&B)

gys=Gcd(A,B)

gbs=A*B/gys

printf("最大公因数为:%d,最小公倍数为%d\n",gys,gbs)

}