C语言程序设计题(二,带答案)

本文包含多个程序设计题目,涉及数组逆序、阶乘求和、数字立方和、求幂、求平均值、判断水仙花数、迭代求π、求多项式值、最大公约数等算法的C语言实现。通过这些题目,可以练习和提高编程能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、程序设计   

该题目来自百度以及个人编写

只可以在Program和End中编写

第11题         题号:497        难度:易        

/*------------------------------------------------

【程序设计】

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

功能:编写函数fun将一个数组中的值按逆序存放,并在

      main()函数中输出。

例如:原来存顺序为8,6,5,4,1。要求改为:1,4,5,6,8。

------------------------------------------------*/

#include

#define N 5

void  fun(int arr[],int n)

{

  /**********Program**********/

  

  

  

  

  

  

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

  

}

main()

{

  int a[N]={8,6,5,4,1},i;

  for(i=0;i

    printf("%4d",a[i]);

  printf("\n");

  fun(a,N);

  for(i=0;i

    printf("%4d",a[i]);

}

答案:----------------------

int i,t;

 for(i=0;i

  { t=arr[i];

    arr[i]=arr[n-1-i];

    arr[n-1-i]=t;

  }

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

第12题         题号:284        难度:易        

/*------------------------------------------------

【程序设计】

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

功能:编写函数fun求1!+2!+3!+ …… +n!的和,在main函

      数中由键盘输入n值,并输出运算结果。请编写fun

      函数。

例如:若n值为5,则结果为153。

------------------------------------------------*/

    

#include

long int  fun(int n)

{

  

  /**********Program**********/

  

  

  

  

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

  

}

main()

{

  int n;

  long int result;

  scanf("%d",&n);

  result=fun(n);

  printf("%ld\n",result);

}

答案:----------------------

int i;

float f=1,s=0;

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

 {f=f*i;

  s=s+f;}

 return s;

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

第13题         题号:298        难度:易        

/*------------------------------------------------

【程序设计】

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

功能:用do-while语句求1~100的累计和。

------------------------------------------------*/

#include

long int  fun(int n)

{

  /**********Program**********/

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

  

}

void main ()

{

    int i=100;

    printf("1~100的累加和为:%ld\n",fun(i));

}

答案:  --------------------

int i =1, sum =0;

    do     

    {  sum = sum + i;    

      i++;    

   } while ( i <= n );

  return sum;

第14题         题号:402        难度:易       

/*------------------------------------------------

【程序设计】

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

功能:调用函数fun判断一个三位数是否"水仙花数"。

      在main函数中从键盘输入一个三位数,并输

      出判断结果。请编写fun函数。

说明:所谓"水仙花数"是指一3位数,其各位数字立方和

      等于该数本身。

例如:153是一个水仙花数,因为153=1+125+27。

------------------------------------------------*/

#include

   

int fun(int n)

{

  

  /**********Program**********/

  

  

  

  

  

  

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

  

  

}

main()

{

  int n,flag;

  scanf("%d",&n);

  flag=fun(n);

  if(flag)

    printf("%d 是水仙花数\n",n);

  else

    printf("%d 不是水仙花数\n",n);

}

答案:----------------------

int bw,sw,gw;

bw=n/100;sw=(n-bw*100)/10;gw=n%10;

 if(n==bw*bw*bw+sw*sw*sw+gw*gw*gw) return 1;

 else return 0;

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

第15题         题号:490        难度:易     

/*------------------------------------------------

【程序设计】

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

功能:编写函数fun,求任一整数m的n次方。

------------------------------------------------*/

#include

long fun(int m,int n)

{

  /**********Program**********/

  

  

  

  

  

  

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

}

main()

{

  int m,n;

  long  s;

  long fun(int,int);

  printf("输入m和n的值:");

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

  s=fun(m,n);

  printf("s=%ld\n",s);

}

答案:----------------------

long int x=1;

  int i;

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

       x=x*m;

  return x;

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

第16题       题号:499        难度:易 

/*------------------------------------------------

【程序设计】

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

功能:有一个一维数组score,内放10个学生的成绩,用一

      个函数来求平均成绩。

例如:如果10个学生的成绩分别为92,87,68,56,92,84,

      70,65,90,60 则平均成绩为:76.400000

------------------------------------------------*/

  

#include

float average (float array[10])       

{

  /**********Program**********/

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

}

main()

{

  float score[]={92,87,68,56,92,84,70,65,90,60};

  printf("average score is %f\n",average (score));

}

答案:----------------------

   int i;

   float aver,sum=array[0];        

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

       sum=sum+array[i];

   aver=sum/10;

   return aver;

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

第17题         题号:278        难度:易    

/*-------------------------------------------------------

【程序设计】

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

题目:编写函数fun,其功能是:根据以下公式求π的值(要求精度0.0005,即某项

      小于0.0005时停止迭代)。

     ∏=1-1/3+1/5-1/7+1/9-......

      程序运行后,若输入精度0.0005,则程序应输出为3.14…。

注意:请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入

      你编写的若干语句。

-------------------------------------------------------*/

#include

#include

double  fun ( double  eps)

{

        double s=1.0,s1=1.0;

        int n=1;

        /**********Program**********/

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

}

main( )

{

        double  x;

        printf("Input eps:") ;

        scanf("%lf",&x); printf("\neps = %lf, PI=%lf\n", x, fun(x));

}

答案:-------------------

   while(s1>=eps)       

    {

        s1=s1*n/(2*n+1);    

        s=s+s1;            

        n++;

    }

    return 2*s;

第18题       题号:339        难度:易       

/*-------------------------------------------------------

【程序设计】

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

题目:请编写函数fun,其功能是:计算并输出下列多项式的值,   

      S=(1-1/2)+(1/3-1/4)+…+(1/(2n-1)-1/2n)

例如:若主函数从键盘给n输入8后,则输出为S=0.662872。

注意:要求n的值大于1但不大于100。

      请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入

      你编写的若干语句。

-------------------------------------------------------*/

#include

double fun(int n)

{

        /**********Program**********/

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

}

void main()

{

        int  n;    

        double  s;

        printf("\nInput n:  ");  

        scanf("%d",&n);

        s=fun(n);

        printf("\ns=%f\n",s);

}

答案:--------------

int i;

double s=0.0;

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

s=s+(1.0/(2*i-1)-1.0/(2*i));

/*计算S=(1-12)+(13-14)+(1/(2n-1)-12n)*/

return s;

第19题         题号:294        难度:易       

/*------------------------------------------------

【程序设计】

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

功能:对任意输入的 x,用下式计算并输出 y 的值。

            5      x<10

      y=    0      x=10

           -5      x>10

------------------------------------------------*/

#include

int fun(int n)

{

  /**********Program**********/

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

  

}

void main ()

{

    int  x,y;

    printf("enter x:");

    scanf("%d",&x);

    y=fun(x);

    printf("x=%d,y=%d\n",x,y);

}

答案:-----------

 int m;

    if(n<10)

      m=5;

    else

      if(n==10) m=0;

    else m=-5;

return m;

   int m;

   if(n>=10)

      if(n>10)  

         m=-5;

      else m=0;

   else m=5;

return m;

第20题        题号:467        难度:易        

/*------------------------------------------------

【程序设计】

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

功能:用辗转相除法求两个整数的最大公约数。

------------------------------------------------*/

#include

int gcd(int n,int m)

{

  /**********Program**********/

  

  

  

  

  

  

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

}

main()

{

  int n,m,result;

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

  result=gcd(n,m);

  printf("the gcd is %d\n",result);

}

答案:----------------------

int r,t;

 if(n

 r=n%m;

 while(r!=0)

 { n=m;m=r;r=n%m;}

 return(m);

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值