4.函数应用程序设计

更新时间:2024-02-26 09:52:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

函数应用程序设计

1、编写求圆的面积的函数,并调用该函数求出圆环的面积。 #define PI 3.14159 float area(float r) {float s; s=PI*r*r; return(s); } main()

{float r1,r2,s;

scanf(\ s=area(r1)-area(r2); printf(\}

2A、编写求k!的函数,再调用该函数求10!并输出。 解法1:

float jc(int k) {float p=1; int i;

for(i=1;i<=k;i++) p=p*i; return(p); } main() {float p; p=jc(10);

printf(\} 解法2:

float jc(int k) {float p=1; while(k>0) {p=p*k; k--; }

return(p); } main() {float p; p=jc(10);

printf(\}

2、编写求k!的函数,再调用该函数求1!+3!+5!+...+19!之和并输出。 float jc(int k) {float p=1; int i;

for(i=1;i<=k;i++) p=p*i; return(p); } main() {float s=0; int i;

for(i=1;i<=19;i+=2) s=s+jc(i); printf(\}

3、编写求k!的函数,再调用该函数求C(m,n)=m!/(n!*(m-n)!)并输出。 float jc(int k) {float p=1;

int i;

for(i=1;i<=k;i++) p=p*i; return(p); } main() {float c; int m,n;

scanf(\

c=jc(m)/jc(n)/jc(m-n); /*或c=jc(m)/(jc(n)*jc(m-n));*/ printf(\}

4、编写判断素数的函数,再调用该函数判断1937是否是素数。 int isp(int m) {int i;

for(i=2;i<=m-1;i++) {if(m%i==0)

return(0); /*能除尽,不是素数,返回0*/ }

return(1); /*不能除尽,是素数,返回1*/ }

main()

{if(isp(1973)!=0)

printf(\ else

printf(\}

5、编写判断素数的函数,再调用该函数求出1000以内的所有素数。 int isp(int m) {int i;

for(i=2;i<=m-1;i++) {if(m%i==0)

return(0); /*能除尽,不是素数,返回0*/

}

return(1); /*不能除尽,是素数,返回1*/ } main() {int i;

for(i=2;i<=1000;i++) {if(isp(i)!=0) printf(\ }

printf(\}

6、编写判断素数的函数,调用该函数求出1000以内的所有素数,存入数组中并输出。 int isp(int m) {int i;

for(i=2;i<=m-1;i++) {if(m%i==0)

return(0); /*能除尽,不是素数,返回0*/ }

return(1); /*不能除尽,是素数,返回1*/ } main()

{int a[500],i,n=0; for(i=2;i<=1000;i++) {if(isp(i)!=0) {a[n]=i; n++;

printf(\或printf(\ } }

printf(\}

7、编写判断素数的函数,调用该函数求出1000以内的所有素数之和并输出。

int isp(int m) {int i;

for(i=2;i<=m-1;i++) {if(m%i==0)

return(0); /*能除尽,不是素数,返回0*/

}

return(1); /*不能除尽,是素数,返回1*/ } main() {int s=0,i;

for(i=2;i<=1000;i++) {if(isp(i)!=0) s=s+i; }

printf(\}

8、编写求两个数中最大数的函数,并调用该函数求出三个数中的最大数。

float m(float a,float b) {float max; if(a>b) max=a; else max=b; return(max); } main()

{float x,y,z,t,max;

scanf(\ t=m(x,y);

max=m(t,z); /*主调函数中变量名不能与被调函数名重名*/ printf(\}

9、编写求两个数中最大数的函数,并调用该函数求出四个数中的最大数。

float m(float a,float b) {float max;

if(a>b) max=a; else max=b; return(max); } main()

{float a,b,c,d,u,v,max;

scanf(\ u=m(a,b); v=m(c,d);

max=m(u,v); /*主调函数中变量名不能与被调函数名重名*/ printf(\}

10、编写求三个数中最大数的函数,并调用该函数求出三个数中的最大数。

float m(float a,float b,float c) {float max; if(a>b) max=a; else

max=b; if(c>max) max=c; return(max); } main()

{float x,y,z,max;

scanf(\

max=m(x,y,z); /*主调函数中变量名不能与被调函数名重名*/ printf(\}

11、编写判定闰年的函数,并调用此函数判定某一年是否是闰年。 int isleap(int y)

{if(y@0==0||y%4==0&&y0!=0) return(1); else

return(0); } main() {int year;

scanf(\

} main( ) {int a,b,d;

scanf(\

d=h(a,b); /*最小公倍数*/ printf(\}

18、编写求n个数平均值的函数,并调用此函数求从键盘输入的100个数的平均值。

float ave(float a[],int n) {float s=0,p; int i;

for(i=0;i

{float x[100],p; int i;

for(i=0;i<100;i++)

{scanf(\ p=ave(x,100); printf(\}

18、编写求n个数平均值的函数,并调用此函数找出从键盘输入的100个成绩中所有低于平均分的成绩。 float ave(float a[],int n) {float s=0,p; int i;

for(i=0;i

{float a[100],p; int i;

for(i=0;i<100;i++) {scanf(\ p=ave(a,100); for(i=0;i<100;i++)

{if(a[i]

printf(\ } }

19、编写求字符串长度的函数,并调用此函数求一个字符串的长度。 int slen(char a[]) {int n=0;

while(a[i]!='\\0') n++; return(n); } main() {char a[80]; int n; gets(a); n=slen(a);

printf(\}

20、编写字符串复制的函数,并调用此函数复制一个字符串。

void scopy(char b[],char a[]) {int i;

for(i=0;a[i]!='\\0';i++)

b[i]=a[i]; /*未复制'\\0'*/ b[i]='\\0'; } main()

{char a[80],b[80]; gets(a); scopy(b,a); puts(b); }

21、编写连接两个字符串的函数,并调用此函数连接两个字符串。 void scat(char a[],char b[]) {int i,n1,n2; n1=strlen(a); n2=strlen(b); for(i=0;i<=n2;i++)

a[n1+i]=b[i]; /*已复制'\\0'*/ } main()

{char a[200],b[100]; gets(a); gets(b); scat(a,b); puts(a); }

22、编写比较两个字符串大小的函数,并调用此函数比较两个字符串的大小。

int scomp(char a[],char b[]) {int i,r; i=0;

while(a[i]!='\\0'&&b[i]!='\\0') /*若遇到'\\0',则停止比较*/ {if(a[i]==b[i])

i++; /*若对应字符相等,则继续比较下一个*/ else

break; /*若对应字符不相等,则停止比较*/ }

r=a[i]-b[i]; /*对应字符ASCII码之差,即比较结果*/ return(r); } main()

{char a[80],b[80]; int d; gets(a); gets(b); d=scomp(a,b); printf(\}

23、编写将字符数组中的字符串前后倒置的函数,并调用此函数将一个字符串前后倒置。 void srev(char a[]) {char t; int n,i,j; n=strlen(a); i=0;j=n-1; while(i

{t=a[i];a[i]=a[j];a[j]=t; /*交换对应元素的值*/ i++;j--; } } main() {char a[80];

gets(a); srev(a) puts(a); }

24、编写判断回文的函数,并调用此函数判定一个字符串是否是回文。 int isR(char a[]) {int i,j n; n=strlen(a); i=0; j=n-1; while(i

{i++;j--;} /*若对应字符相等,则继续比较*/ else

break; /*否则中止比较*/ } if(i>=j)

return(1); /*若所有对应字符都相等,则是回文*/ else return(0); }

main() {char s[100]; gets(s); if(isR(s)!=0) printf(\ else

printf(\}

25、编写判断汉字回文的函数,并调用此函数判定一个汉字字符串是否是回文。

int isR(char a[]) {int i,j n; n=strlen(a); i=0; j=n-2; while(i

{if(a[i]==a[j]&&a[i+1]==a[j+1]) {i+=2;j-=2;} else break; }

if(i>=j) return(1); else return(0); } main() {char s[100]; gets(s); if(isR(s)!=0) printf(\ else

printf(\}

本文来源:https://www.bwwdw.com/article/qaka.html

Top