C语言初学函数(含源代码)
实验七 函数(第一部分)
【实验目的】
1.掌握函数的定义、声明、调用;
一、程序调试方法实验
上机题目:
1.找出并改正以下源程序(add.cpp)中错误,得出正确的运行结果。
源程序如下:
#include
void main()
{
int a,b;
scanf("%d%d",&a,&b);
printf("a+b=%d",add(a,b));
}
void add(int a,b)
{
return a+b;
}
2.找出并改正以下源程序(max.cpp)中错误,得出正确的运行结果,其中max函数的功能是得到数组中最大元素的值。
源程序如下:
#include
#define N 10;
float max(float a[], int n)
void main()
{
float data[N];
int i;
for(i=0;i
scanf("%f",data[i]);
printf("max is=%f",max(data[N],N));
}
float max(float a[], int n)
{
int i,result;
for(i=0;i
{
if(a[i] > result)
result = a[i];
}
return result;
}
二、分析程序输出结果
1.打开fun.cpp源程序文件。源程序如下:
#include
void fun (char s[])
{ int i,j;
for (i=0,j=0; s[i]!='\0'; i++)
if (s[i]>='0' && s[i]<='9')
s[j++]=s[i];
s[j]='\0';
}
void main()
{
char data[] = "1f2g2g3f4f5g3g2f";
fun(data);
puts(data);
}
运行此程序,分析运行结果,说明程序的功能。
四、编写程序
1、将长整型数中偶数的数依次取出,构成一个新数返回,例如,当s中的数为,则返回的数为:8642请编一个函数fun,其中n所指存储单元中存放了数组中元素的个数。函数的功能是:删除所有值为y的元素。已在主函数中给数组元素赋值,y的值由主函数通过键盘读入。注意:部分源程序,请勿改动主函数和其他函数中的内容,仅在函数fun的指定的部位填入你编写的若干语句。源程序如下:#include
#define M 20
int fun(int bb[],int n, int y)
{
}
void main()
{
int aa[M]={1,2,3,3,2,1,1,2,3,4,5,4,3,2,1}, n=15, y, k;
printf("The original data is: \n");
for(k=0; k
printf("%d",aa[k]);
printf("\nEnter a number to deleted: ");
scanf("%d",&y);
n = fun(aa, n, y);
printf("The data after deleted %d: \n",y);
for(k=0; k
printf("%d",aa[k]);
printf("\n\n");
}
4、写一个函数int appeartimes(…),统计一个整数在一个数组中出现的次数,在主函数中调用该函数求出用户输入的数据在用户输入的数组中出现的次数。(保存为function1_4.cpp)
5、写一个函数get_number(…)统计一个字符串中的字母、数字空格个数,并通过参数将结果带回主调函数,在主函数中任意读入一个字符串调用该函数求出统计结果(保存为function1_5.cpp)。
6、写函数isPlad判断一个字符串是不是回文(回文是正读和反读都一样的字符串例如radar,如果存在空格等字符要将它们过滤掉,应该再编写一个函数过滤空格等分隔符),如果是回文则返回1,否则返回0,在主函数中调用该函数判断用户输入的字符串是不是回文(保存为function1_6.cpp)。
源代码
add
#include
int add(int a,int b);
void main()
{
int a,b;
pr