[二級C]專題習題-函數

初學C語言,程序代碼只是單純的實現功能,並未考慮Bug問題。

--------------------------------------------------------------------------------------------------------------




1.     編寫程序,在主函數輸入m的值,在函數fun中計算如下公式的值並將結果返回到主函數中輸出:

例如,若輸入5,則應輸出-0.283333。

  

float fun(int m)
{
    int i;
    float result=1.0/2;
    for(i=3;i<=m;i++)
    {
           result-=1.0/i;
    }
   return result;
}

2.      編寫程序,求下列公式P的值,並將求階乘編寫函數fun實現其功能。

P=

例如,m=12,n=8時,運行結果爲495.000000

    

#include<stdio.h>
long int  fun(int m)
{
    int i,result=1;
    for(i=m;i>0;i--)
       {
           result*=i;
       }
    return result;
}
int main()
{
    int m,n;
    float  re;
    scanf("%d%d",&m,&n);
    re=fun(m)/(fun(n)*fun(m-n));
    printf("%f",re);
    return  0;
}
  計算那裏也可以做個函數


3.      編寫程序,在主函數中輸入兩個兩位數的正整數a和b,定義fun函數合併這兩個正整數形成一個新的正整數放到c中,並返回給主函數輸出。合併的方式是:將a中的十位和個位依次放在變量c的十位和千位上,b中的十位和個位數依次放在變量c的個位和百位上。

例如,當a=45,b=12。調用該函數後,c=5241。

 

#include<stdio.h>
int change(int a, int b)
{
    int a1,a10,b1,b10,c;
    a10=a/10;
    a1=a%10;
    b10=b/10;
    b1=b%10;
    c=a1*1000+b1*100+a10*10+b10*1;
    return c;
}
int main()
{
    int m,n;
    scanf("%d%d",&m,&n);
    printf("%d",change(m,n));
    return  0;
}


4.      編寫程序,定義函數fun,實現如下功能:找出一個大於給定整數m且緊隨m的素數,並作爲函數值返回。

 

#include<stdio.h>
#include<math.h>
int IsPrime(int a)
{
    int i;
    if(a==2)
        return 1;
    for(i=2;i<=sqrt(a);i++)
        if(a%i==0)  return  0;
    return 1;
}
int main()
{
    int m,i;
    scanf("%d",&m);
    for(i=2;i<=m;i++)
        {
             if(IsPrime(i)==1)
                    printf("%d\t",i);
        }
    return 0;
}

5.      編寫函數fun,實現它的功能:求小於形參n同時能被3和7整除的所有自然數之和的平方根,並作爲函數值返回。

 

#include<stdio.h>
#include<math.h>
float fun(int a)
{
    int i,result=0;
    float re;
    for(i=0;i<=a;i++)
    {
        if(i%3==0&&i%7==0)
            result+=i;
    }
    re=sqrt(result);
    return re;
}
int main()
{
    int m;
    scanf("%d",&m);
    printf("%f",fun(m));
    return 0;
}

 

6.      編寫函數fun,實現功能如下:判斷一個整數是否爲素數,若是素數返回1,否則返回0。在main函數中,若fun返回1輸出YES,若fun返回0輸出NO!

 

#include<stdio.h>
#include<math.h>
int IsPrime(int a)
{
    int i;
    if(a==2)
        return 1;
    for(i=2;i<=sqrt(a);i++)
        if(a%i==0)  return  0;
    return 1;
}
int main()
{
    int m,i;
    scanf("%d",&m);
    if(IsPrime(m)==1)printf("YES");
    else printf("NO");

    return 0;
}

7.      定義函數fun實現功能:將形參n中,各位上爲偶數的數取出,並按原來從高位到低位的順序組成一個新數,作爲函數值返回。

例如,從主函數輸入一個整數27638496,則函數返回值爲26846。

#include <stdio.h>
int fun(int n)
{
	int t,j,x;
	for(j=1,x=0;n!=0;)
	{
	    t=n%10;
	    n=n/10;
	    if(t%2==0)
		{
		    x+=t*j;
		    j*=10;
		}
	}
	return x;
}
int main()
{
	int n;
	scanf("%d",&n);
	printf("%d",fun(n));
	return 0;
}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章