C语言初学函数(含源代码)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
void main() {
char data[] = "1f2g2g3f4f5g3g2f"; fun(data); puts(data); }
function1_1
#include<stdio.h> #define N 100
void get_even(char origin[],char even[]);
6、写函数 isPlad 判断一个字符串是不是回文(回文是正读和反读都一样的字符串例如 radar, 如果存在空格等字符要将它们过滤掉,应该再编写一个函数过滤空格等分隔符),如果是回文则返 回 1,否则返回 0,在主函数中调用该函数判断用户输入的字符串是不是回文(保存为 function1_6.cpp)。
2、编写函数 int prime(int n)求一个数 n 是否素数,如果是返回值为 1,不是返回值为 0,在主 函数中调用 prime 函数来验证哥德巴赫猜想(即一个大的偶数可以分解为两个素数之和),在主函 数中读入一个偶数 m(6<m<32768),将 m 表示成两个素数之和。(保存为 function1_2.cpp)
源代码 add
#include <stdio.h> int add(int a,int b); void main() {
int a,b; printf("Input a, b :"); scanf("%d%d",&a,&b); printf("a+b=%d\n",add(a,b));
} int add(int a,int b) {
上机题目: 1.找出并改正以下源程序(add.cpp)中错误,得出正确的运行结果。 源程序如下:
#include <stdio.h> void main() {
int a,b; scanf("%d%d",&a,&b); printf("a+b=%d",add(a,b));
} void add(int a,b) {
void main() {
char data[] = "1f2g2g3f4f5g3g2f"; fun(data); puts(data); } 运行此程序,分析运行结果,说明程序的功能。
四、编写程序
1、编写函数 void get_even(char origin[],char even[])完成如下功能:将用字符串存储的 长整型数中数字为偶数的数依次取出,构成一个新数返回,在主函数中让用户输入字符串,然后调 用函数来实现提取出偶数的功能。例如,当 s 中的数为:87653142 时,则返回的数为:8642。(保 存为 function1_1.cpp)
void main() {
char num[N],even[N]; printf("输入一个数字字符串:"); gets(num); get_even(num,even); puts(even); }
void get_even(char origin[],char even[]) {
int i,j; for(i=0,j=0;origin[i]!='\0';i++)
#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<n; k++ )
实验七 函数(第一部分)
【实验目的】
1.掌握函数的定义、声明、调用; 2.掌握函数的参数传递方式。 注意:本次实验内容只是第七章的第一部分,不用提交作业,本部分源程序和第七章第二部分一 起打成一个压缩包,在下次上机完成第二部分后一起提交。本部分要提交的包括改错题和编程题。
【实验内容】
一、程序调试方法实验
if(n%i==0) {return 0;break;}
if(i==n) return 1;
}
max.cpp
#include <stdio.h> #define N 10
float max(float a[],float n);
void main() {
float data[N]; int i;
printf("Input 10 number :"); for(i=0;i<N;i++)
if(a[i] > result) result = a[i];
}
return result; }
二、分析程序输出结果
1.打开 fun.cpp 源程序文件。源程序如下: #include <stdio.h> 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'; }
return a+b; }
2.找出并改正以下源程序(max.cpp)中错误,得出正确的运行结果,其中 max 函数的功能是得到数 组中最大元素的值。 源程序如下:
#include <stdio.h> #define N 10;
float max(float a[], int n) void main() {
}
return result;
}
printf("%d",aa[k]);
printf("\n\n"wk.baidu.com; }
4、写一个函数 int appeartimes(…),统计一个整数在一个数组中出现的次数,在主函数中调用 该函数求出用户输入的数据在用户输入的数组中出现的次数。(保存为 function1_4.cpp)
5、写一个函数 get_number(…)统计一个字符串中的字母、数字空格个数,并通过参数将结果 带回主调函数,在主函数中任意读入一个字符串调用该函数求出统计结果(保存为 function1_5.cpp)。
int y; y=a+b; return y; }
Fun
#include <stdio.h> 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'; }
if(origin[i]%2==0) even[j++]=origin[i];
even[j]='\0'; }
function1_2.cpp
#include<stdio.h>
int prime(int n);
void main() {
int a,m,i; printf("请输入一个偶数 a( 6<a<32768 ):"); scanf("%d",&a); m=a%2; for(;m!=0;scanf("%d",&a),m=a%2)
float data[N]; int i;
for(i=0;i<N;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<n;i++) {
scanf("%f",&data[i]); printf("max is=%.2f\n",max(data,N)); } float max(float a[],float n) { int i; float result; result=a[0]; for(i=1;i<n;i++) {
if(a[i] > result) result = a[i];
3、请编一个函数 fun,其中 n 所指存储单元中存放了数组中元素的个数。函数的功能是:删 除所有值为 y 的元素。已在主函数中给数组元素赋值,y 的值由主函数通过键盘读入。注意:部分 源程序已给出,请勿改动主函数和其他函数中的内容,仅在函数 fun 的指定的部位填入你编写的若
干语句。(保存为 function1_3.cpp) 源程序如下: #include <stdio.h>
printf("请输入偶数! : "); for(i=1;i<=a/2;i++)
if(prime(i)==1 && prime(a-i)==1) break;
printf("%d=%d+%d",a,i,a-i); }
int prime(int n) {
int i,flag=0; for(i=2;i<n;i++)
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<n; k++ )
char data[] = "1f2g2g3f4f5g3g2f"; fun(data); puts(data); }
function1_1
#include<stdio.h> #define N 100
void get_even(char origin[],char even[]);
6、写函数 isPlad 判断一个字符串是不是回文(回文是正读和反读都一样的字符串例如 radar, 如果存在空格等字符要将它们过滤掉,应该再编写一个函数过滤空格等分隔符),如果是回文则返 回 1,否则返回 0,在主函数中调用该函数判断用户输入的字符串是不是回文(保存为 function1_6.cpp)。
2、编写函数 int prime(int n)求一个数 n 是否素数,如果是返回值为 1,不是返回值为 0,在主 函数中调用 prime 函数来验证哥德巴赫猜想(即一个大的偶数可以分解为两个素数之和),在主函 数中读入一个偶数 m(6<m<32768),将 m 表示成两个素数之和。(保存为 function1_2.cpp)
源代码 add
#include <stdio.h> int add(int a,int b); void main() {
int a,b; printf("Input a, b :"); scanf("%d%d",&a,&b); printf("a+b=%d\n",add(a,b));
} int add(int a,int b) {
上机题目: 1.找出并改正以下源程序(add.cpp)中错误,得出正确的运行结果。 源程序如下:
#include <stdio.h> void main() {
int a,b; scanf("%d%d",&a,&b); printf("a+b=%d",add(a,b));
} void add(int a,b) {
void main() {
char data[] = "1f2g2g3f4f5g3g2f"; fun(data); puts(data); } 运行此程序,分析运行结果,说明程序的功能。
四、编写程序
1、编写函数 void get_even(char origin[],char even[])完成如下功能:将用字符串存储的 长整型数中数字为偶数的数依次取出,构成一个新数返回,在主函数中让用户输入字符串,然后调 用函数来实现提取出偶数的功能。例如,当 s 中的数为:87653142 时,则返回的数为:8642。(保 存为 function1_1.cpp)
void main() {
char num[N],even[N]; printf("输入一个数字字符串:"); gets(num); get_even(num,even); puts(even); }
void get_even(char origin[],char even[]) {
int i,j; for(i=0,j=0;origin[i]!='\0';i++)
#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<n; k++ )
实验七 函数(第一部分)
【实验目的】
1.掌握函数的定义、声明、调用; 2.掌握函数的参数传递方式。 注意:本次实验内容只是第七章的第一部分,不用提交作业,本部分源程序和第七章第二部分一 起打成一个压缩包,在下次上机完成第二部分后一起提交。本部分要提交的包括改错题和编程题。
【实验内容】
一、程序调试方法实验
if(n%i==0) {return 0;break;}
if(i==n) return 1;
}
max.cpp
#include <stdio.h> #define N 10
float max(float a[],float n);
void main() {
float data[N]; int i;
printf("Input 10 number :"); for(i=0;i<N;i++)
if(a[i] > result) result = a[i];
}
return result; }
二、分析程序输出结果
1.打开 fun.cpp 源程序文件。源程序如下: #include <stdio.h> 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'; }
return a+b; }
2.找出并改正以下源程序(max.cpp)中错误,得出正确的运行结果,其中 max 函数的功能是得到数 组中最大元素的值。 源程序如下:
#include <stdio.h> #define N 10;
float max(float a[], int n) void main() {
}
return result;
}
printf("%d",aa[k]);
printf("\n\n"wk.baidu.com; }
4、写一个函数 int appeartimes(…),统计一个整数在一个数组中出现的次数,在主函数中调用 该函数求出用户输入的数据在用户输入的数组中出现的次数。(保存为 function1_4.cpp)
5、写一个函数 get_number(…)统计一个字符串中的字母、数字空格个数,并通过参数将结果 带回主调函数,在主函数中任意读入一个字符串调用该函数求出统计结果(保存为 function1_5.cpp)。
int y; y=a+b; return y; }
Fun
#include <stdio.h> 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'; }
if(origin[i]%2==0) even[j++]=origin[i];
even[j]='\0'; }
function1_2.cpp
#include<stdio.h>
int prime(int n);
void main() {
int a,m,i; printf("请输入一个偶数 a( 6<a<32768 ):"); scanf("%d",&a); m=a%2; for(;m!=0;scanf("%d",&a),m=a%2)
float data[N]; int i;
for(i=0;i<N;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<n;i++) {
scanf("%f",&data[i]); printf("max is=%.2f\n",max(data,N)); } float max(float a[],float n) { int i; float result; result=a[0]; for(i=1;i<n;i++) {
if(a[i] > result) result = a[i];
3、请编一个函数 fun,其中 n 所指存储单元中存放了数组中元素的个数。函数的功能是:删 除所有值为 y 的元素。已在主函数中给数组元素赋值,y 的值由主函数通过键盘读入。注意:部分 源程序已给出,请勿改动主函数和其他函数中的内容,仅在函数 fun 的指定的部位填入你编写的若
干语句。(保存为 function1_3.cpp) 源程序如下: #include <stdio.h>
printf("请输入偶数! : "); for(i=1;i<=a/2;i++)
if(prime(i)==1 && prime(a-i)==1) break;
printf("%d=%d+%d",a,i,a-i); }
int prime(int n) {
int i,flag=0; for(i=2;i<n;i++)
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<n; k++ )