A. c语言一条简单的题目,
你是没有分清传址和传值的区别。
void f(int v,int w)
{int t;
t=v;v=w;w=t;
}
对于这个函数,在main函数中进行 f(x,y)的调用后,只是将x,y的值分别赋给v,w,
然后在函数体中,将变量v,w的值进行了交换,这并不会影响x,y的值。
所以在进行了下列调用后:
if(x>y) f(x,y);
else if (y>z) f(y,z);
else f(x,z);
x,y,z的值不会有任何变化,仍然是1,3,2
再给你一个传址的情况,你比较一下:
#include<stdio.h>
void f(int *v,int *w)
{int t;
t=*v;*v=*w;*w=t;
}
main()
{int x=1,y=3,z=2;
if(x>y) f(&x,&y);
else if (y>z) f(&y,&z);
else f(&x,&z);
printf("%d,%d,%d\n",x,y,z);}
上面这个程序输出的是1,2,3,
因为是将x,y,z的地址传递给函数f,
所以v,w是指向这些地址的指针,对于*v,*w的操作将直接影响其所指向的地址中的值。所以x,y,z的值也就被改变了。
B. C语言程序设计:小学生心算CAI系统
楼主去那些网站花钱找人做吧
C. c语言 怎么算
int a=1,b=2;
for(;a<8;a++){b+=a;a+=2;}
printf("%d %d\n",a,b);
初值:a=1...b=2
for循环里面
第一次
b=b+a=2+1=3......a=a+2=3
a=a+1=4
第二次:
b=b+a=3+4=7......a=a+2=6
a=a+1=7
第三次:
b=b+a=7+7=14......a=a+2=9
a=a+1=10
判断a,跳出循环