C语言函数学习
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
函数
一:学习目的
1:正确理解函数在C语言程序设计中的作用和地位。
2:熟悉函数的定义、原型声明和调用的方法。
3:熟悉数组名做函数参数的用法
二:学习准备
1:有一个一维数组score,内放10个学生成绩,求平均成绩。
#include
void 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);
printf("%5.2f\n",aver);
}
float average(float array[10])
{ int i;
float aver,sum=array[0];
for(i=1;i<10;i++)
sum=sum+array[i];
aver=sum/10;
return(aver);
}
2:有两个班级,分别有35名和30名学生,调用一个average函数,分别求这两个班的学生的平均成绩。
#include
void main()
{ float average(float array[ ],int n);
float score1[5]={98.5,97,91.5,60,55};
float score2[10]={6 5,89.5,99,69.5,
77,89.5,76.5,54,60,99.5};
printf(“%6.2f\n”,average(score1,5));
printf(“%6.2f\n”,average(score2,10));
}
float average(float array[ ],int n)
{ int i;
float aver,sum=array[0];
for(i=1;i sum=sum+array[i]; aver=sum/n; return(aver); } 三:实验内容: 1:选择题 (1)以下函数调用语句中含有_ _B_______个实参。 fun ((exp1,exp2),(exp3,exp4,exp5)); A.1 B.2 C.4 D.5 (2)以下说法正确的是( C )。 (3)以下程序有语法性错误,有关错误原因的正确说法是( C )。 Main() {int G=5,k; void prt_char(); …… k=prt_char(G); ……} (4)C语言允许函数值类型缺省定义,此时该函数值隐含的类型是( B )。 (5)若用数组名作为函数调用的实参,传递给形参的是(A)。 (6)若使用一维数组名作函数参数,则以下正确的说法是( C )。 2:编程题: 1、编写函数fun,它的功能是输出一个200以内能被3整除且个位数为6的所有整数,返回这些数的个数。 #include void fun() { int i,a=0; printf("这些数分别为:"); for(i=6;i<200;i+=10) { if (i%3==0) a++; if (i%3!=0) continue; printf("%d ",i); } printf("\n"); printf("这些数的个数为%d个\n",a); } void main() { fun(); } 2、已有变量定义和函数调用语句:int a=1,b=-5,c; c=fun(a,b);fun函数的作用是计算两个数之差的绝对值,并将计算好的值返回调用函数,请编写程序。 #include int fun(int a,int b) { int z; z=a-b; if (z<0) z*=-1; else z*=1; return(z); } int main() { int a=1,b=-5,c; c=fun(a,b); printf("%d\n",c); } 3、写一个函数,要求把从主函数传递过来的一个字符串中的大写字母、小写字母、数字和其它字符进行统计,并把结果显示输出。 #include #include void fun(char e[],int n) { int a=0,b=0,c=0,d=0; int i; for(i=0;i { if(e[i]>'A'&&e[i]<'Z') a++; else if(e[i]>'a'&&e[i]<'z') b++; else if(e[i]>'0'&&e[i]<'9') c++; else d++; } printf("大写字母有%d个\n小写字母有%d个\n数字有%d个\n其它字符有%d个\n",a,b,c,d); } void main() { char e[1024]; int n; printf("请输入一串字符\n"); gets(e); n=strlen(e); fun(e,n); } 4、输入一个字符串,然后在一个函数中把这个字符串里的字长符头尾互换:如输入字符串chinese,要输出:esenihc。 #include #include void fun(char ch[],int len) { int i; printf("倒序后输出的字符为\n"); for(i=len-1;i>=0;i--) { printf("%c",ch[i]);