头歌C语言函数综合实训(公共C实验六)1~8

第1关 定义求x的n次幂的函数,并返回计算结果

/*在下面Begin至End间,按原型 int  power(int x, int n) 定义函数*/
/********** Begin **********/
int power(int x,int n)
{
    int i,j=1;
    for(i=0;i<n;i++)
    {
        j*=x;
    }
    return j;
}
/********** End **********/
int main()
{
    int a,b,s;  
    scanf("%d%d",&a,&b); 
    s = power(a,b);      //调用power( )函数,求a与b的和
    printf("%d\n",s); 
    return 0; 
}

第2关 调用求x的n次幂的函数

#include <stdio.h>
int  power(int x, int n)
{
	int   t=1;
	int i;
	for(i=0;i<n;i++)
	{      t=t*x;
	}
	return t;
}
int main()
{
	int a,b,s;  
	scanf("%d%d",&a,&b); 
	/*调用power( )函数,计算并输出a的b次幂*/
	/********** Begin **********/
	printf("%d\n",power(a,b));
	/********** End **********/
	/*调用power( )函数,计算并输出a的3次幂*/
	/********** Begin **********/
	printf("%d\n",power(a,3));
	/********** End **********/
	/*调用power( )函数,计算并输出2的a+b次幂*/
	/********** Begin **********/
	printf("%d\n",power(2,a+b));
	/********** End **********/
	/*调用power( )函数,求a的3次幂的b+2次幂 */
	/********** Begin **********/
	printf("%d\n",power(power(a,3),b+2));
	/********** End **********/
	return 0; 
}

第3关 判断一个正整数是否为素数的函数

#include <stdio.h>
void  prime(int m);                         //prime()函数声明
int main()
{
	int a[10],i;  
	for(i=0;i<10;i++)
	{
		scanf("%d",&a[i]); 
	}
	for(i=0;i<10;i++)
	{
		prime(a[i]);  //调用无返回值函数,判断a[i]是否是素数
	}
	return 0; 
}
/*****定义void  prime(int m) *****/
/********** Begin **********/
void prime(int m)
{
    int i;
    for(i=2;i<m;i++)
    {
        if(m%i==0)
        {
            printf("%d 不是素数.\n",m);break;
        }
    }if(i==m)
    {
        printf("%d 是素数.\n",m);
    }
    return;
}
	
/********** End **********/

第4关 编写函数计算并输出n(包括n)以内能被5或9整除的所有自然数的倒数之和

#include<stdio.h>
/*****定义fun()函数*****/
/********** Begin **********/
int fun(int n)
{
    int i;float j,s=0;
    for(i=1;i<=n;i++)
    {
        if(i%5==0||i%9==0)
        {
            j=(float)i;
            s+=(1/j);
        }
    }printf("%.2f",s);
}
/********** End **********/
/*****定义main()函数*****/
/********** Begin **********/
main()
{
    int n;
    scanf("%d",&n);
    fun(n);
}

/********** End **********/

第5关 ​​​​​​编写函数将两个两位数的正整数合并形成一个整数 

#include <stdio.h>
/********** Begin **********/
int fun(int a,int b)
{
    int i,j,k,l;
    i=a%10;
    j=10*(b/10);
    k=100*(a/10);
    l=1000*(b%10);
    l=i+j+k+l;
    return l;
}
main()
{
    int a,b;
    scanf("%d%d",&a,&b);
    printf("c=%d",fun(a,b));
}
/********** End **********/
 

第6关 调用求阶乘函数计算并输出1!+2!+3!+……+n!的值

#include <stdio.h>
/*****定义fact()函数*****/
/********** Begin **********/
int fact(int n)
{
    int s=1;
    for(int i=1;i<=n;i++)
    {
        s*=i;
    }return s;
}
/********** End **********/
/*****定义fun()函数*****/
/********** Begin **********/
int fun(int n)
{
    int i,s=0;
    for(i=1;i<=n;i++)
    {
        s+=fact(i);
    }return s;
}
/********** End **********/
/*****定义main()函数*****/
/********** Begin **********/
main()
{
    int n;
    scanf("%d",&n);
    printf("sum=%d",fun(n));
}
/********** End **********/

第7关 ​​​​​​调用求阶乘函数计算并输出p=m!/(n!*(m-n)!) 的值 

#include <stdio.h>
/*****定义fact()函数*****/
/********** Begin **********/
int fact(int a)
{
    int i,s=1;
    for(i=1;i<=a;i++)
    s*=i;
    return s;
}
/********** End **********/
/*****定义fun()函数*****/
/********** Begin **********/
float fun(int a,int b)
{
    float m,i,j;
    i=(float)(fact(a));j=(float)(fact(b)*fact(a-b));
    m=i/j;
    return m;
}
/********** End **********/
/*****定义main()函数*****/
/********** Begin **********/
main()
{
    int a,b;
    scanf("%d%d",&a,&b);
    for(;a<b;)
    {
        scanf("%d%d",&a,&b);
    }printf("%f",fun(a,b));
}
/********** End **********/

第8关 编写函数交换两个变量的值 

#include <stdio.h>
void swap(int *p1,int *p2);
/*****定义main()函数*****/
/********** Begin **********/
main()
{
    int a,b;
    scanf("%d%d",&a,&b);
    swap(&a,&b);
    printf("%d %d\n",a,b);
    return 0;
}
/********** End **********/
/*****定义swap()函数*****/
/********** Begin **********/
void swap(int *p1,int *p2)
{
    int temp;
    temp=*p1;
    *p1=*p2;
    *p2=temp;
}

/********** End **********/

 

 

 

 

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值