函数
xt8_1
/*有参有返回值*/
#include <stdio.h>
main()
{
int fun(int);
printf("%d\n",fun(10));
}
int fun(int n)
{
int i,sum=0;
for(i=0;i<=n;i++)
if(i%2!=1) sum+=i;
return sum;
}
/*改为有参无返回值、无参有返回值、无参无返回值三种形式*/
xt8_2
/*按值单向传递*/
#include <stdio.h>
void fun(int x,int y)
{
printf("原 值:x=%d,y=%d\n",x,y);
x+=5;y*=3;
printf("运算后:x=%d,y=%d\n",x,y);
}
main()
{
int a,b;
scanf("%d%d",&a,&b);
printf("调用前:a=%d,b=%d\n",a,b);
fun(a,b);
printf("调用后:a=%d,b=%d\n",a,b);
}
/*解释运行结果*/
xt8_3
/*变量地址-指针变量*/
#include <stdio.h>
#define N 4
main()
{
int i=3;
void fun(int *);
fun(&i);
printf("%d\n",i);
}
void fun(int *p)
{
*p=10;
}
/*解释运行结果*/
xt8_4
/*数组名-指针变量*/
#include <stdio.h>
#define N 4
main()
{
int a[]={1,3,5,7},i;
void fun(int *,int);
fun(a,N);
for(i=0;i<N;i++)
printf("%3d",a[i]);
printf("\n");
}
void fun(int *p,int n)
{
int i;
for(i=0;i<n;i++)
++(*p++);
}
/*解释运行结果*/
xt8_5
/*数组名-数组名*/
#include <stdio.h>
#define N 4
main()
{
int a[]={1,3,5,7},i;
void fun(int []);
fun(a);
for(i=0;i<N;i++)
printf("%2d",a[i]);
printf("\n");
}
void fun(int b[])
{
b[1]=b[0]+b[2];
}
/*解释运行结果*/
xt8_6
/*指针变量-指针变量*/
#include <stdio.h>
#define N 4
main()
{
int a[]={1,3,5,7},*p,i;
void fun(int [],int);
p=a;
fun(p,N);
for(i=0;i<N;i++)
printf("%3d",a[i]);
printf("\n");
}
void fun(int *q,int n)
{
int i;
for(i=0;i<n;i++)
*(q+i)+=i;
}
/*解释运行结果*/
xt8_7
/*同名局部变量*/
#include <stdio.h>
void fun(int b)
{
int a;
a=b*2;
printf("%d ",a);
}
main()
{
int a=3;
fun(a);
printf("%d\n",a);
}
xt8_8
/*全局变量*/
#include <stdio.h>
int a=3;
void fun(int b)
{
a=b*2;
printf("%d\n",a);
}
main()
{
fun(a);
printf("%d\n",a);
}
xt8_9
/*全局变量*/
#include <stdio.h>
int a=3;
void fun(int b)
{
int a;
a=b*2;
printf("%d\n",a);
}
main()
{
fun(a);
printf("%d\n",a);
}
xt8_10
/*静态变量*/
#include <stdio.h>
void fun(int y)
{
static a;
int b=0;
a+=y;
b+=y;
printf("%d,%d\n",a,b);
}
main()
{
int i;
for(i=1;i<3;i++)
fun(i);
}