函数程序设计(一)

来源:互联网 发布:ps身份证淘宝买东西 编辑:程序博客网 时间:2024/06/05 14:50

实验六  函数程序设计(一)

一.实验目的

1. 掌握程序中函数的基本操作方法;

2. 掌握函数的程序设计。

二.实验环境

1. 硬件:PII以上计算机;

2. 软件:Windows、Visual C++ 6.0;

3. 其它:一张软盘或者U盘等可移动的存储设备。

三.实验内容

练习1.用递归方法解决猴子吃桃子的问题(P129习题6.10)。

运行结果:1534

练习2.编写一个程序,其中包含一个子函数,功能为计算:                                。

子函数要求:

形式为:long c(int x);

功能为:求x!

运行结果示例:

练习3.编写一个程序,其中包含一个子函数,功能为判断两个数的符号是否相同。若相同则输出字母Y,否则输出字母N。

子函数要求:

形式为:char f(float a,floatb);

运行结果示例:

练习4.编写一个程序,其中包含一个子函数,功能为找出一维数组元素(设共10个)中的最小值及其下标。

子函数要求:

形式为:int min(int a[ ],int n);

(其中:n为数组元素的个数,子函数返回值为最小元素的下标值)

运行结果示例:

练习5.编写一个程序,其中包含一个子函数,功能为取出数x从右边起的第m位数字,如digit(1234,3)=2,digit(1234,6)=0。

子函数要求:

形式为:int digit(int n,int k);

运行结果示例:

练习6.编写一个程序,其中包含一个子函数,功能为在字符串中查找某个字符首次出现的位置,若字符串中没有该字符,则给出0。

子函数要求:

形式为:int at(char s[ ],charc);

运行结果示例:

 

 

 

练习1

#include<iostream.h>

#include<stdio.h>

void main()

{

       intsum(int x);

       inty;

       y=sum(1);

       printf("共摘了:%d",y);

       cout<<endl;

}

int sum(int x)

{

       intz;

       if(x<10)z=(sum(x+1)+1)*2;

       if(x==10)z=1;

       return(z);

}

 

练习二:

#include"stdio.h"

void main()

{

       longc(int x);

       intm,n,

long x,y,z;

       printf("Inputthe m and n:");

       scanf("%d%d",&m,&n);

       x=c(m);

       y=c(n);

       z=c(m-n);

       printf("Theresult is: %d\n",x/(y*z));

}

   long c(int x)

       {

              longa;

              if(x<0)

                     printf("x<0,dataerror!");

              else

                     if(x==0||x==1)

                            a=1;

                     else

                            a=c(x-1)*x;

                            return(a);

       }

 

 

 

 

 

练习3

#include<iostream.h>

void main()

{

       floatcmp(float a,float b);

       floatx,y;

       cout<<"inputtwo floats :"<<endl;

       cin>>x>>y;

       if(cmp(x,y)==1)cout<<"y"<<endl;

       if(cmp(x,y)==0)cout<<"n"<<endl;

}

float cmp(float a,float b)

{

       floati;

       if(a/b>0)i=1;

       elsei=0;

       return(i);

}

 

练习4

#include<iostream.h>

void main()

{

       intwax(int a[10],int n);

       inta[10],y,i;

       cout<<"input10 munbers:"<<endl;

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

              cin>>a[i];

       y=wax(a,10);

       cout<<"最小值:"<<a[y]<<endl;

       cout<<"下标:"<<y<<endl;

}

int wax(int a[10],int n)

{

       intmax=a[0],z,i;

       for(i=1;i<10;i++)

              if(max>a[i])z=i;

              return(z);

}

 

练习5

#include<iostream.h>

void main()

{

       intdigit(int n,int k);

       intx,m,y;

       cout<<"请出入x和m的值:"<<endl;

       cin>>x>>m;

       y=digit(x,m);

       cout<<"digit("<<x<<","<<m<<")="<<y<<endl;

}

int digit(int n,int k)

{

       intz,w,i;

       for(i=1;i<=k;i++)

       {

              w=n%10;

              n=n/10;

       }

       z=w;

       return(z);

}

 

练习6

#include<iostream.h>

#include<stdio.h>

void main()

{

       intat(char s[20],char c);

       chars[20],x;

       cout<<"输入字符串:"<<endl;

       gets(s);

       cout<<"输入查询字符:";

       cin>>x;

       cout<<endl<<"首次出现位置:"<<at(s,x)<<endl;

}

int at(char s[20],char c)

{

       intj,z;

       for(j=0;s[j]!='\0';j++)

              if(s[j]==c)

              {

                     z=j;

                     break;

              }

              if(s[j]=='\0')z=0;

              return(z);

}

 

 

 

 

原创粉丝点击