C语言函数实验报告模版

时间:2024.3.19

第六次实验 函数

一、实验要求

1.        掌握函数定义和调用的方法

2.        掌握函数嵌套调用和递归调用的方法

3.        理解实参与形参的对应关系以及“值传递”调用函数的方法

4.        理解变量作用域和存在期的概念,掌握全局变量和局部变量、动态变量和静态变量的定义、说明和使用方法

二、实验内容(要求粘贴正确程序及测试结果)

1、完善所给的程序,通过定义一个max3函数实现求三个数中的最大值的功能。

#include <stdio.h>

int max3(int a, int b,int c); /*函数声明*/

void main ()

{

    int a, b, c;

    int max;

    printf("Please input three numbers:");

    scanf("%d%d%d", &a, &b, &c);

    max = max3(a,b,c); /*调用max3函数,其中a,b,c作为其参数,max用于保存max3函数的返回值*/

    printf("the maximum number of %d, %d, %d is %d\n", a, b, c, max);

   }

/*可在此编写max3函数,实现求三个数中的最大值的功能*/

max3(int a ,int b,int c)

{

  int m;

  m=a>b?a:b;

  m=m>c?m:c;

    return m;

}

2、在循环结构程序设计实验的第6题求完数中,要求编写程序判断1~1000之内的哪些数是完数。现要求改写该程序,新的程序中需要定义一个int wanshu(int num)函数,该函数功能是判断函数参数num是否为完数,如果是则函数返回值为1,否则为0。完成wanshu函数定义后,在新的程序中调用wanshu函数,使得新的改写的程序能判断1~1000之内的哪些数是完数。

#include <stdio.h>

int wanshu(int num); /*函数声明*/

void main ()

{

    int i;

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

       {

    if(wanshu(i)) /*调用wanshu函数,其中i作为其参数,若调用后返回值为1则说明是完数,否则不是*/

    printf("%d是完数\n", i);

       }

  

}

/*可在此编写wanshu函数,实现一个数n是否是完数*/

int wanshu(int num)

{

int s = 0,i;

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

       {

      if( num%i == 0) s += i;

    }

    if(s == num)

return 1;

else

return 0;

}

3、找出1~1000之内的所有素数并输出。要求首先定义一个int prime(int num)函数,该函数用于判断参数num是否为素数,如果是则函数返回值为1,否则为0;并循环调用该函数以判断1~1000之内的素数。

#include<stdio.h>

#include<math.h>

//判断一个整数是否为素数

int prime(int num)

{

 int i;

 if(num==1 || num==0)return 0;

 for(i=2;i<=sqrt(num);i++)

 {

  if(num%i==0)

   return 0;

 }

 return 1;

}

void main()

{

int i;

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

{

if(prime(i))

printf("%4d",i);

}

}

例如:若n=10,则A10=0.617977

三、实验小结

一、实验目的和要求

5.        掌握一维数组、二维数组的定义、使用及初始化

6.        字符型数组使用

7.        学习数组作为函数参数的用法

8.        掌握与数组有关的常用排序算法

二、实验内容(要求每题都复制程序并粘贴测试结果)

1、编程实现如下功能:输入以!作为结束的字符串,并统计该字符串中字母、数字、其他字符的个数。

注:一般可以使用gets函数gets(str)将输入字符串保存至str字符数组中,该函数以回车作为输入结束符;在本题中,需要使用!作为输入的结束符,可考虑:#include "stdlib.h"

#include "stdio.h"

int numOfLetter = 0, numOfNumber = 0, numOfElse = 0;//分别表示字母、数字、其他字符的个数

void test()

{

     

      char c;

      while(1)

      {    

             scanf("%c", &c);

             if(c == '!')    

             {

                    break;

             }    

             if(c >='a' && c <='z' || c >= 'A' && c <= 'Z')      

             {

                    numOfLetter++;

             }    

             else if(c>='0'&&c<='9'      )

             {

                    numOfNumber++;

             }    

             else       

             {

                    numOfElse++;

             }

      }

}

void main()

{

      test();

      printf("D:%d\n", numOfNumber);

      printf("A:%d\n", numOfLetter);

      printf("O:%d\n", numOfElse);

}

方法一、参考P39第2题的形式,循环输入字符(直到!)并进行处理。

方法二、使用scanf(“%c”, &str[i])形式将字符串输入到str数组里,并依次判断str[i]是否为!符号,如果是则结束输入,否则继续输入。处理完成,如果想使用puts函数输出字符串str,必须在结束输入时,将str[i]中的’!’替换为’\0’才能使用。因为判断字符串数组结束的标志是’\0’。

2、编写一个程序,实现对键盘输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差。例如:输入的两个字符串分别为“computer”和“compare”,则输出为-20。

#include <stdio.h>

void main ( ) 

       {

             char str1[100],str2[100]; 

                int i,s;      

                printf("\n Input string 1:\n");

                gets(str1);      

                printf("\n Input string 2:\n");

                gets(str2);      

                for(i=0;;i++)

                {        

                       if(str1[i]==str2[i])    

                              continue;             

                       else              

                              break;        

                }           

                s=str1[i]-str2[i]; 

                printf("%d\n",s);  

      }

3、对于任意输入的字符串,编程求字符“a”首次出现的位置。

例如:输入字符串“Hello,boys and girls.”输出结果为 12

#include <stdio.h>

#include <string.h>

int main()

{

       int j;

    char s[1000000];

    scanf("%s",&s);

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

     if( s[j] == 'a')   

        { 

               printf("%d",j+1);

               break; 

       }    

        else if (s[j] == '\0')   

        {

               printf("NO!");  

               return 0;     

       }

        return 0;

}

4、设数组a包括10个整型元素。下面程序的功能是求出a中各相邻两个元素的和,并将这些和存在数组b中按每行3个元素的形式输出。

例如:输入 6 5 4 5 6 7 8 4 3 2

      输出 11  9   9

           11  13  15

12  7   5

#include"stdio.h"

main()

{    

          int a[10],b[10],i;

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

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

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

              b[i]=a[i-1]+a[i];  

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

       {     

           printf("%5d",b[i]);

           if(i%3==0) 

          printf("\n"); 

       }

}

5、(选做题)编程实现如下功能:从键盘输入一个3*3的二维数组,输出此二维数组,并求此二维数组中的最大值,及其位置(位于第几行第几列)

#include <stdio.h>

void main()

 {

       int a[3][3],i,j,max,r=0,c=0;

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

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

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

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

             

              {    

                    

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

                           

                            if(max<a[i][j])

                            {

                            max=a[i][j];

                            r=i;

                            c=j;

                            }

              }    printf("max=%d,\nr=%d,\nc=%d\n",max,r,c);

       

      

}


第二篇:C语言综合性实验报告模版


         

《大学计算机基础》综合性实验

实验报告

题目:      个人简历的制作      

姓名:                          

班级:                          

学号:                          

指导教师:                      

完成时间:    20##年12月8日  

                               

实验报告内容书写模版:

一、    实验题目

个人简历的制作

二、    实验目的

培养学生综合运用WORD、EXCEL和POWERPOINT知识的能力。

三、    实验要求

1、以PPT为主线,适当使用超链接。

2、PPT文件中包含6张幻灯片,其中第一张为标题幻灯片,第二张为全部演示文稿的内容提要。

3、第二张幻灯片的主标题为“内容提要”, 在第二张幻灯片中设置超链接,当单击某标题时即切换到对应的幻灯片,对应的四个标题分别为:

基本情况介绍

求学经历及高考成绩

我的大学生活

联系方式

4、PPT文件通过某些文字分别超链接到WORD和EXCEL文件。

5、WORD文件的要求:

通过Internet搜索,将所在省份的地图和基本文字介绍组织在同一个WORD文件中,该WORD文件的标题是“××省简介”,使用系统默认的样式2并居中;页眉是“姓名、班级”并居中;页脚是系统的当前时间并右对齐。

6、EXCEL文件的表头如下:

其中“总计”列和“平均费用”行用函数计算。

并依据此表制作折线图,放在同一个工作表中。

7、幻灯片要有基本一致的外观风格。

8、除第一张幻灯片外,其余幻灯片要有固定位置的徽标或小图形。

9、第一张幻灯片背景要与其他幻灯片有异,且标题文字用艺术字。

10、每张幻灯片要有切换效果。

11、幻灯片中适当运用动画效果。

12、在后四张幻灯片中设置动作按钮,当单击按钮时能够返回到第二张幻灯片“内容提要”中。

13、在第二张幻灯片中设置动作按钮,当单击该按钮时能够结束放映。

四、    实验环境

五、    实验步骤

六、    实验结果

七、    实验体会

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

课程名称结构化程序设计与C语言开课实验室年月日一实验目的用C语言编写和调试函数的程序从而对函数的定义调用全局变量的灵活运用有比较深入的了解二内容及结果1程序一素数函数1程序要求写一个判断是否是素数的函数在主函数...

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语言实验报告函数

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

C语言实验报告《函数》

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

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

C语言程序设计实验报告1实验目的掌握C函数的定义方法函数的调用方法参数说明以及返回值掌握实参与形参的对应关系以及参数之间的值传递的方式掌握函数的嵌套调用及递归调用的设计方法掌握全局变量和局部变量动态变量与静态变...

C语言实验报告之利用函数进行程序设计

一实验的目的1掌握定义函数的方法2掌握函数的实参与形参的对应关系以及值传递的方式3掌握函数的嵌套调用及其递过调用的方法4掌握全局变量与局部变量的使用二要求及内容本实验主要完成函数的的应用训练总共要求完成四个问题...

C语言实验四实验报告——函数

一实验项目名称函数二实验目的1掌握C函数的定义方法函数的调用方法参数说明以及返回值掌握实参与形参的对应关系以及参数之间的值传递的方式掌握函数的嵌套调用及递归调用的设计方法2掌握全局变量和局部变量动态变量与静态变...

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