函数
说明
一个C程序由一个或多个程序模块组成,每一个程序模块作为一个源程序文件。对较大的程序,一般不希望把所有内容全放在一个文件中,而是将他们分别放在若干个源文件中,再由若干源程序文件组成一个C程序。这样便于分别编写、分别编译,提高调试效率。一个源程序文件可以为多个C程序公用。
定义
无参函数
类型标识符 函数名()
{
申明部分
语句部分
}
有参函数
类型标识符 函数名(形式参数表列)//在调用时可以使用实参;
{
声明部分
语句部分
}
数据传递
在不同的函数之间传递数据,可T以使用的法: 1.参数:通过形式参数和实际参数 2.返回值:用return语句返回计算结果
3.全局变量:外部变量
eg: 函数数据传递;
#include "stdio.h"
int main()
{
int max (int x,int y);
不加类型标识符一律按照int型处理
调用方式
-
函数语句 把函数调用作为一个语句, 如printstar(),这时不要求函数带回值,只要求函数完成一定的操作。
-
函数表达式 函数出现在一一个表达式中,这种表达式称为函数表达式。这时要求函数带回一个确定的值以参加表达式的运算。 3. 函数参数 函数调用作为一个函数的实参。例如:m= max (a,max(b,c)) ; 其中max(b,c )是一次函数调用,它的值作为max另一次调用的实参。m的值是a、b、c三者中的最大者。又如: printf ("%d", max (a,b));也是把max( a, b )作为printf函数的一一个参数。
例题
1.自己实现pow()函数并尝试验证
#include "stdio.h"
int main()
{
double xow (double x, double y);
double a,b,c;
scanf("%lf%lf",&a,&b);
c = xow (a,b);
printf("%lf",c);
}
double xow (double x ,double y)
{
double j=x;
int i;
for (i=1;i<y;i++)
2.猜想下sqrt(函数的原理并尝试编程. (暂时只要求整型数据)
#include "stdio.h"
int main()
{
int a,b,i,j;
a=0;
printf("请输入数字:");
scanf("%d",&b);
while(a*a!=b)
{
a++;
if(a*a>b)
{
printf("该数没有平方根");
goto A ;
}
}
printf("%d的平方根为%d",b,a);
A:;
}
3.编写一个用来统计输入的各个数字、空白符(空格、制表符、换行符)以及所以其他字符出现次数的程序。分别存储在变量num[ 10],blank, others里边并打印出来...
#include "stdio.h"
#include "math.h"
int main()
{
int a=0,b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,m=0,n=0,p=0,other=0;
char k;
while (1)
{
k=getchar();
if(k!=EOF)
{
if(k==9 || k == 32 || k==10)
{
switch(k)
{
case 9 :m++;break;
case 32:n++;break;
case 10:p++;break;
}
}
if(k>=48 && k<=57)
{
switch(k)
{
case 48 :a++;break;
case 49 :b++;break;
case 50 :c++;break;
case 51 :d++;break;
case 52 :e++;break;
case 53 :f++;break;
case 54 :g++;break;
case 55 :h++;break;
case 56 :i++;break;
case 57 :j++;break;
}
}
other++;
}
else
{
int num[10]={a,b,c,d,e,f,g,h,i,j},blank[3]={m,n,p},q;
printf("num=");
for(q=0;q<10;q++)
{
printf("%d",num[q]);
}
printf("\nblank:");
for(q=0;q<3;q