C语言:函数的应用实验报告

时间:2024.4.21

课程名称:结构化程序设计与C语言    开课实验室:年 月 日

一、实验目的

用C语言编写和调试函数的程序。从而对函数的定义、调用、全局变量的灵活运用有比较深入的了解。

二、内容及结果

1、程序一  素数函数

1)程序要求:写一个判断是否是素数的函数,在主函数输入一个整数,调用它后输出结果。

2)代码:

 #include<stdio.h>

#include<math.h>

int prime(int n)

{   int i,k;

   k=sqrt(n);

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

      if(n%i==0) break;

    if(i<=k)

      return 0;

   else

      return 1;

}

int main()

{   int prime(int n);

     int n;

    printf("Please enter n:");

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

      if(prime(n)==1)

         printf("%d is a prime number",int(n));

     else

         printf("%d is not a prime number",int(n));

}

3)运行截图:

2、程序二  用递归方法求n阶勒让德多项式的值

1)程序要求:

递归公式为:

当n=0,1

当n=1, x;

当n>=1, ((2n-1)x-Pn-1(x)-(n-1)Pn-2)x))/n

2)代码:

 #include<stdio.h>

#include<math.h>

int p(int n,int x);

void main()

{

   int n,x;

    scanf("%d",&x); 

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

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

}

int p(int n,int x)

{

   if(n==0)

      return 1;

   else

      if(n==1)

         return x;

      else

         return((2*n-1)*x-p(n-1,x)-(n-1)*p(n-2,x))/n;

}

3)运行截图:

3、程序三  成绩统计程序

1)程序要求:输入10个学生5门课的成绩,分别用函数实现以下功能:

计算每个学生的平均分;计算每门课的平均分;找出所有50个分数中最高的分数所对应的学生和课程;计算平均方差。

2)代码:

 #include<stdio.h>

float x1[10],x2[5];

float pp(float f[10][5]); 

float cc(float y[10][5]);

void find(float z[10][5],float s[5],int t[5]);

float xx(float q);

 

int main() 

{

   char name[5][20],class1[5][20];

   float score[10][5],o,k=0,max[5];

   int a[2],i,j;

   printf("请你输入名字:\n");

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

    gets(name[i]);

   printf("请你输入班级:\n");

    for(j=0;j<5;j++)

    gets(class1[j]);

   printf("请你输入十个学生五门课的成绩:\n");

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

    for(j=0;j<5;j++) 

    scanf("%f",&score[i][j]); 

    x1[i]=pp(score); 

    x2[j]=cc(score); 

    find(score,max,a); 

    o=xx(k); 

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

   {

      puts(name[i]); 

        printf("%.3f\n",x1[i]);

   } 

    for(j=0;j<5;j++) 

   {

      puts(class1[j]);

      printf("%.3f\n",x2[j]);

   } 

    for(j=0;j<5;j++)

   {

      printf("%.3f \n",max[j]); 

        puts(name[a[j]]); 

        puts(class1[j]);

   }

   printf("o=%.3f\n",o);

   return 0;

}

 

float pp(float f[10][5])   

{

   float sum;

   int i,j; 

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

   {

      for(j=0;j<5;j++) 

        sum=sum+f[i][j]; 

        x1[i]=sum/2;

      sum=0;

   }

   return 0;

}

 

float cc(float y[10][5]) 

{

   float sum;

   int i,j; 

     for(j=0,sum=0;j<5;j++) 

    {

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

         sum=sum+y[i][j]; 

         x2[j]=sum/2;

       sum=0;

    }

    return 0;

}

 

void find(float z[10][5],float s[5],int t[5])   

{

   int i,j; 

    for(j=0,s[j]=z[0][j];j<5;j++) 

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

    if(s[j]<z[i][j])

   {

      s[j]=z[i][j];

      t[j]=i;

   }

}

 

float xx(float q)  

{

   float f=0,e=0;

   int i; 

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

   {

      e=x1[i]*x1[i]+e; 

        f=f+x1[i];

   } 

    q=e/10-(f/10)*(f/10); 

    return(q); 

3)运行截图:

4、程序四  大奖赛评分系统。

1)程序要求:

已知某大奖赛有10个选手参赛,5个评委为参赛选手评分(最高10分,最低0分),统分规则为:在每个选手的5个得分中,去掉一个最高分和最低分后,取平均分作为该选手的最后得分。要求编程实现:

根据选手的最后得分,从高到低输出选手的得分名次表,以确定获奖名单;

根据各选手的最后得分与各评委给该选手所评分数的差距,对每个评委评分的准确性和评分水准给出一个定量的评价,从高到低输出各评委得分的名次表。

2)代码:

 #include<stdio.h>

#define N 10

float max=0,min=0;

int j,k;

float find(float b[N]);

void mingci(float aver[5]);

void pwei(float a[5]);

int main()

{

   float a[N],aver[5];

   int i;

   for(j=1;j<=N;j++)

   {

      printf("请各位评委亮分:\n");

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

      scanf("%f",&a[i]);

       aver[j]=find(a);

       printf("第%d号选手的最后得分为%.2f分\n",j,aver[j ]);

   }

   mingci(aver);

   for(j=1;j<=N;j++)

      pwei(a);

return 0;

}

float find(float b[N])

{

   int i;

   float sum=0,aver[5];

   min=max=b[0];

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

   {   if(b[i]>max)

           max=b[i];

      else if(b[i]<min)

         min=b[i];

   }

    printf("第%d号选手去掉一个最高分%.2f和去掉一个最低分%.2f最后得分:\n",j,max,min);

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

   {  max=0;

       min=0;

      sum=sum+b[i];

       aver[j]=sum/3;

   }

   return (aver[j]);

}

void mingci(float aver[5])

{  

   float t;

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

    for(k=1;k<=5-j;k++)

      if(aver[k]<aver[k+1])

      {

          t=aver[k];

        aver[k]=aver[k+1];

          aver[k+1]=t;

      }

   printf("\n");

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

        printf("第%d名的分为%.2f\n",k,aver[k]);

    printf("\n");

}

void pwei(float a[5])

{

   int i;

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

   {

      if(a[i]>=8&&a[i]<=10)

         printf("该评委评分优秀\n");

      else if(a[i]>=5&&a[i]<8)

         printf("该评委评分委良\n");

      else if(a[i]>=0&&a[i]<5)

         printf("该评委评分中\n");

   }

}

3)运行截图:

三、实验结果、分析和结论:

此次试验主要就是函数的运用,以及再次复习了循环语句、条件语句。在函数运用中,最重要的就是函数的调用.函数调用分为函数调用语句、函数调用表达式、函数调用参数三种方式,在主调函数和被调用函数之间又有数据的传递,即实参和形参间的数据传递。同时也知道了,在调用函数时还需具备一些条件:(1)被调用的函数必须是已经定义的函数;(2)如果使用库函数,应该在本文件开头用#include指令将调用有关库函数时所需用到的信息“包含”到文件中来;(3)如果使用用户自己定义的函数,而该函数的位置在调用它的函数的后面,应该在主调函数中对调用函数作声明。函数的调用也是编程中一个重要的类容,我们也应该熟练的掌握,以此才能更好的运用于学习实践中。


第二篇:C语言实验报告7《函数》


嘉应学院  计算机学院

更多相关推荐:
C语言函数实验报告

北京联合大学信息学院程序设计基础课程调研研究报告题目函数姓名学号专业计算机科学与技术编制时间20xx63版本指导教师北京联合大学信息学院编制函数实验程序设计报告20xx年6月3日班号姓名学号第一章实验情况概述本...

C语言实验七 函数 实验报告

C语言程序设计实验题目实验七函数实验目的实验报告1掌握函数定义的方法2掌握函数实参与形参的对应关系以及值传递的方式3掌握函数的嵌套调用和递归调用的方法4掌握全局变量和局部变量动态变量静态变量的概念和使用方法5学...

C语言实验报告(四)

C语言实验报告四一实验目的1掌握C语言中函数和模块2掌握怎样定义函数如何调用或使用函数如何声明函数3掌握函数的参数了解在函数调用时参数是如何传递的4在使用函数的过程中怎样确定函数的参数5如何使用局部变量和全局变...

C语言程序设计实验报告(函数)

C语言程序设计实验报告实验名称函数1实验目的1掌握函数的定义方法调用方法参数说明以及返回值2掌握实参与形参的对应关系以及参数之间的值传递的方式3掌握函数的嵌套调用及递归调用的用的设计方法4在编程过程中加深理解函...

C语言集中上机实验报告

重庆邮电大学移通学院C语言集中上机实验报告学生学号班级专业重庆邮电大学移通学院20xx年5月重庆邮电大学移通学院目录第一章循环311实验目的312实验要求313实验基本内容3131题目一3132题目二5第二章数...

c语言函数实验报告

实验报告课程名称C语言程序设计实验名称姓名学号专业班级实验日期一实验目的1学习定义函数的方法2练习形参与实参数据传递的方式3深刻理解全局变量与局部变量动态变量与静态变量的区别二实验内容1判断素数2求平均成绩3字...

C语言实验报告-函数

华北水院高级语言程序设计C语言实验报告五20xx20xx学年第二学期20xx级专业学号姓名一实验题目函数二实验目的略三实验内容1程序验证略2程序设计1编程实现求两个正整数的最大公约数要求计算最大公约数用函数fu...

C语言函数实验报告模版

第六次实验函数一实验要求1掌握函数定义和调用的方法2掌握函数嵌套调用和递归调用的方法3理解实参与形参的对应关系以及值传递调用函数的方法4理解变量作用域和存在期的概念掌握全局变量和局部变量动态变量和静态变量的定义...

C语言实验报告函数

高级语言程序设计实验报告实验序号6实验项目名称函数2includeltstdiohgtincludeltmathhgtdefinee1e5doublefunadoublenfloati1doublex10s0w...

C语言实验报告《函数》

C语言实验报告函数学号姓名班级日期指导教师成绩实验四函数一实验目的1掌握函数定义调用和声明的方法2掌握实参和形参之间的传递方式3函数的嵌套调用二实验内容1写一个函数将两个字符串连接习题862编写一个函数由实参传...

C语言实验报告

内蒙古工业大学信息工程学院实验报告课程名称高级语言程序设计C实验名称循环数组函数和结构体程序设计实验类型验证性综合性设计性实验室名称校计算中心班级学号姓名组别同组人成绩实验日期20xx年6月13日实验报告撰写要...

C语言解八数码问题之人工智能实验报告

人工智能导论上机实验指导书基于人工智能的状态空间搜索策略研究八数码问题求解一实验软件TC20或VC60编程语言或其它编程语言二实验目的1熟悉人工智能系统中的问题求解过程2熟悉状态空间的盲目搜索和启发式搜索算法的...

c语言函数实验报告(47篇)