源码: github.
#include
int main()
{
void printstar();
void print_message();
printstar();
print_message();
printstar();
return 0;
}
void printstar()
{
printf("******************\n");
}
void print_message()
{
printf(" How do you do!\n");
}
#include
int main()
{
int max(int x,int y);
int a,b,c;
printf("please enter two integer numbers:");
scanf("%d,%d",&a,&b);
c=max(a,b);
printf("max is %d\n",c);
return 0;
}
int max(int x,int y) // 定义max函数
{
int z; // 定义临时变量
z=x>y?x:y; // 把x和y中大者赋给z
return(z); // 把z作为max函数的伦值带回main函数
}
#include
int main()
{
int max(float x,float y);
float a,b;
int c;
scanf("%f,%f,",&a,&b);
c=max(a,b);
printf("max is %d\n",c);
return 0;
}
int max(float x,float y)
{
float z;
z=x>y?x:y;
return(z);
}
#include
int main()
{
float add(float x, float y);
float a,b,c;
printf("Please enter a and b:");
scanf("%f,%f",&a,&b);
c=add(a,b);
printf("sum is %f\n",c);
return 0;
}
float add(float x,float y)
{
float z;
z=x+y;
return(z);
}
#include
float add(float x,float y)
{
float z;
z=x+y;
return(z);
}
int main()
{
float a,b,c;
printf("Please enter a and b:");
scanf("%f,%f",&a,&b);
c=add(a,b);
printf("sum is %f\n",c);
return 0;
}
#include
int main()
{ int max4(int a,int b,int c,int d); // 对max4的函数声明
int a,b,c,d,max;
printf("Please enter 4 interger numbers:"); // 提示输入4个数
scanf("%d %d %d %d",&a,&b,&c,&d); // 输入4个数
max=max4(a,b,c,d); // 调用max4函数,得到4个数中的最大者
printf("max=%d \n",max); // 输出4个数中的最大者
return 0;
}
int max4(int a,int b,int c,int d) // 定义max4函数
{int max2(int a,int b); // 对max2的函数声明
int m;
m=max2(a,b); // 调用max2函数,得到a和b两个数中的大者,放在m中
m=max2(m,c); // 调用max2函数,得到a,b,c三个数中的大者,放在m中
m=max2(m,d); // 调用max2函数,得到a,b,c,d四个数中的大者,放在m中
return(m); // 把m作为函数值带回main函数
}
int max2(int a,int b) // 定义max2函数
{if(a>=b)
return a; // 若a>=b,将a为函数返回值
else
return b; // 若a
}
#include
int main()
{ int max4(int a,int b,int c,int d);
int a,b,c,d,max;
printf("Please enter 4 interger numbers:");
scanf("%d %d %d %d",&a,&b,&c,&d);
max=max4(a,b,c,d);
printf("max=%d \n",max);
return 0;
}
int max4(int a,int b,int c,int d)
{int max2(int a,int b);
int m;
m=max2(a,b);
m=max2(m,c);
m=max2(m,d);
return(m);
}
int max2(int a,int b)
{
return(a>b?a:b);
}
#include
void main()
{ int max4(int a,int b,int c,int d);
int a,b,c,d,max;
printf("Please enter 4 interger numbers:");
scanf("%d %d %d %d",&a,&b,&c,&d);
max=max4(a,b,c,d);
printf("max=%d \n",max);
}
int max4(int a,int b,int c,int d)
{ int max2(int a,int b);
int m;
m=max2(max2(max2(a,b),c),d); /* 仔细分析此行 */
return(m);
}
int max2(int a,int b)
{
return(a>b?a:b);
}
#include
int main()
{
int age(int n);
printf("NO.5,age:%d\n",age(5)); //输出第5人的年龄
return 0;
}
int age(int n) //定义递归函数
{
int c;
if(n==1) // 如果n等于1
c=10; // 年龄为10
else // 如果n不等于1
c=age(n-1)+2; // 年龄是前一人的年龄加2(如第4人年龄是第3人年龄加2)
return(c); // 返回年龄
}
#include
int main()
{
int fac(int n);
int n;
int y;
printf("input an integer number:");
scanf("%d",&n);
y=fac(n);
printf("%lld!=%d\n",n,y);
return 0;
}
int fac(int n)
{
int f;
if(n<0)
printf("n<0,data error!");
else if(n==0||n==1)
f=1;
else
f=fac(n-1)*n;
return(f);
}
#include
int main()
{
void hanoi(int n,char one,char two,char three); // 对hanoi函数的声明
int m;
printf("input the number of diskes:");
scanf("%d",&m);
printf("The step to move %d diskes:\n",m);
hanoi(m,'A','B','C');
return 0;
}
void hanoi(int n,char one,char two,char three) // 定义hanoi函数
{// 将n个盘从one座借助two座,移到three座
void move(char x,char y); // 对move函数的声明
if(n==1)
move(one,three);
else
{
hanoi(n-1,one,three,two);
move(one,three);
hanoi(n-1,two,one,three);
}
}
void move(char x,char y) // 定义move函数
{
printf("%c-->%c\n",x,y);
}
#include
int main()
{
int max(int x,int y);
int a[10],m,n,i;
printf("enter 10 integer numbers:");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("\n");
for(i=1,m=a[0],n=0;i<10;i++)
{
if (max(m,a[i])>m) // 若max函数返回的值大于m
{
m=max(m,a[i]); // max函数返回的值取代m原值
n=i; // 把此数组元素的序号记下来,放在n中
}
}
printf("The largest number is %d\nit is the %dth number.\n",m,n+1);
return 0;
}
int max(int x,int y)
{
return(x>y?x:y);
}
#include
int main()
{
float average(float array[10]); // 函数声明
float score[10],aver;
int i;
printf("input 10 scores:\n");
for(i=0;i<10;i++)
scanf("%f",&score[i]);
printf("\n");
aver=average(score); // 调用average函数
printf("average score is %5.2f\n",aver);
return 0;
}
float average(float array[10]) // 定义average函数
{ int i;
float aver,sum=array[0];
for(i=1;i<10;i++)
sum=sum+array[i]; // 累加学生成绩
aver=sum/10;
return(aver);
}
#include
int main()
{
float average(float array[ ],int n);
float score1[5]={98.5,97,91.5,60,55};
float score2[10]={67.5,89.5,99,69.5,77,89.5,76.5,54,60,99.5};
printf("The average of class A is %6.2f\n",average(score1,5));
printf("The average of class B is %6.2f\n",average(score2,10));
return 0;
}
float average(float array[ ],int n)
{
int i;
float aver,sum=array[0];
for(i=1;i<n;i++)
sum=sum+array[i];
aver=sum/n;
return(aver);
}
#include
int main()
{
void sort(int array[],int n);
int a[10],i;
printf("enter array:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
sort(a,10);
printf("The sorted array:\n");
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}
void sort(int array[],int n)
{
int i,j,k,t;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(array[j]<array[k])
k=j;
if(k != i)
{
t=array[k];
array[k]=array[i];
array[i]=t;
}
}
}
#include
int main()
{
int max_value(int array[][4]);
int a[3][4]={{1,3,5,7},{2,4,6,8},{15,17,34,12}};
printf("Max value is %d\n",max_value(a));
return 0;
}
int max_value(int array[][4])
{
int i,j,max;
max=array[0][0];
for(i=0;i<3;i++)
for(j=0;j<4;j++)
if(array[i][j]>max)
max=array[i][j];
return (max);
}
#include
float Max=0,Min=0; // 定义全局变量Max,Min
int main()
{ float average(float array[ ],int n);
float ave,score[10];
int i;
printf("Please enter 10 scores:");
for(i=0;i<10;i++)
scanf("%f",&score[i]);
ave=average(score,10);
printf("max=%6.2f\nmin=%6.2f\naverage=%6.2f\n",Max,Min,ave);
return 0;
}
float average(float array[ ],int n) // 定义函数,有一形参是数组
{ int i;
float aver,sum=array[0];
Max=Min=array[0];
for(i=1;i<n;i++)
{if(array[i]>Max)Max=array[i];
else if(array[i]<Min)Min=array[i];
sum=sum+array[i];
}
aver=sum/n;
return(aver);
}
#include
int a=3,b=5; // a,b是全局变量
int main()
{
int max(int a,int b); // 函数声明。a,b是形参
int a=8; // a是局局部变量
printf("max=%d\n",max(a,b)); // 变量a是函数中定义的局部变量a
return 0;
}
int max(int a,int b) // a,b是函数形参
{
int c;
c=a>b?a:b; // 把a和b中的大者存放在c中
return(c);
}
#include
int main()
{
int f(int);
int a=2,i;
for(i=0;i<3;i++)
printf("%d\n",f(a));
return 0;
}
int f(int a)
{
auto int b=0;
static int c=3;
b=b+1;
c=c+1;
return(a+b+c);
}
#include
int main()
{
int fac(int n);
int i;
for(i=1;i<=5;i++)
printf("%d!=%d\n",i,fac(i));
return 0;
}
int fac(int n)
{
static int f=1;
f=f*n;
return(f);
}
#include
int main()
{
int max( );
extern A,B,C; // 把外部变量A,B,C的作用域扩展到从此处开始
printf("Please enter three integer numbers:");
scanf("%d %d %d",&A,&B,&C);
printf("max is %d\n",max());
return 0;
}
int A ,B ,C; // 定义外部变量A,B,C
int max( )
{
int m;
m=A>B?A:B;
if (C>m) m=C;
return(m);
}
//file1.c
#include
int A;
int main()
{
int power(int);
int b=3,c,d,m;
printf("enter the number a and its power m:\n");
scanf("%d,%d",&A,&m);
c=A*b;
printf("%d*%d=%d\n",A,b,c);
d=power(m);
printf("%d**%d=%d\n",A,m,d);
return 0;
}
//file2.c
extern A;
int power(int n)
{
int i,y=1;
for(i=1;i<=n;i++)
y*=A;
return(y);
}
存储类别总结
作用域:
如果一个变量在某个文件或某个函数范围内是有效的,就称该范围为该变量的作用域
该变量在此作用域为可见,称为变量的可见性
生存周期
如果一个变量值在某一时刻是存在的,则认为这一时刻属于该变量的生存期或称该变量在此刻存在
定义性声明
需要建立存储空间,简称定义
引用型声明
不需要建立存储空间
内部函数
如果函数只能被本文件中其他函数调用,则成为内部函数,又称静态函数
形式
static 类型名 函数名 (形参表)
static int fun(int a,int b)
此fun函数为内部函数,不能被其他函数调用
外部函数
如果函数可以被其他文件调用,则称为外部函数
形式
extern int fun(int a, int b)
此fun可以被其他文件调用。
NoteC语言规定,如果在定义函数时省略extern,则默认是外部函数
//file1.c
#include
int main()
{
extern void enter_string(char str[]);
extern void delete_string(char str[],char ch);
extern void print_string(char str[]);
// 以上3行声明在本函数中将要调用的已在其他文件中定义的3个函数
char c,str[80];
enter_string(str); // 调用在其他文件中定义的enter_string函数
printf("please input a char will deleted \n");
scanf("%c",&c);
delete_string(str,c); // 调用在其他文件中定义的delete_string函数
print_string(str); // 调用在其他文件中定义的print_string函数
return 0;
}
//file2.c
#include
void enter_string(char str[80])
{
printf("please input a str \n");
gets(str);
}
//file3.c
void delete_string(char str[],char ch)
{int i,j;
for(i=j=0;str[i]!='\0';i++)
if(str[i]!=ch)
str[j++]=str[i];
str[j]='\0';
}
//file4.c
void print_string(char str[])
{
printf("%s\n",str);
}