C语言实验报告(函数应用)

合集下载

c语言实验报告 函数

c语言实验报告 函数

c语言实验报告函数C语言实验报告:函数引言:C语言是一种广泛应用于软件开发领域的高级编程语言,其强大的功能和灵活性使得它成为许多程序员的首选。

在C语言中,函数是一种非常重要的概念和工具,它可以帮助我们更好地组织和管理代码,提高代码的可读性和可维护性。

本实验报告将深入探讨C语言中函数的使用方法和特性。

一、函数的定义和声明函数是C语言中的一个基本概念,它由一组语句组成,用于完成特定的任务。

在使用函数之前,我们需要先进行函数的定义和声明。

函数的定义包括函数的名称、参数列表和函数体,而函数的声明则是告诉编译器函数的名称和参数列表。

函数的定义和声明通常放在程序的开头部分或者头文件中,以便其他部分的代码可以调用这些函数。

二、函数的参数传递在C语言中,函数的参数传递可以通过值传递和引用传递两种方式进行。

值传递是指将实际参数的值复制给形式参数,函数内部对形式参数的修改不会影响到实际参数。

而引用传递则是指将实际参数的地址传递给形式参数,函数内部对形式参数的修改会影响到实际参数。

根据实际需求,我们可以选择不同的参数传递方式。

三、函数的返回值函数的返回值是指函数执行完毕后返回给调用者的值。

在C语言中,函数的返回值可以是任意类型的数据,包括整型、浮点型、字符型等。

通过使用return语句,我们可以将需要返回的值传递给调用者。

在函数的声明和定义中,我们需要指定函数的返回类型,以便编译器正确处理函数的返回值。

四、函数的递归调用递归是指函数调用自身的过程,它在解决某些问题时非常有效。

在C语言中,我们可以使用递归来实现一些复杂的算法和数据结构。

递归函数必须包含一个终止条件,以避免无限递归的情况发生。

在编写递归函数时,我们需要仔细考虑递归的边界条件和递归的终止条件,以确保函数能够正确地执行。

五、函数的库C语言提供了许多常用的函数库,可以帮助我们更方便地进行开发和编程。

这些函数库包括数学函数库、字符串函数库、输入输出函数库等。

通过调用这些函数库中的函数,我们可以实现更复杂的功能和算法。

c语言函数实验报告

c语言函数实验报告

c语言函数实验报告C语言函数实验报告引言:C语言作为一种高级编程语言,具有灵活、高效的特点,被广泛应用于软件开发和系统编程领域。

函数是C语言中的基本构建模块,通过函数的定义和调用,可以实现程序的模块化和重用。

本篇实验报告将重点介绍C语言函数的实验过程和结果。

实验目的:1. 掌握C语言函数的定义和调用方法;2. 熟悉函数参数传递的方式;3. 理解函数返回值的作用和使用;4. 学习函数的递归调用。

实验过程:1. 函数的定义和调用在实验中,我们首先学习了函数的定义和调用方法。

通过定义函数,我们可以将一段具有特定功能的代码封装成一个函数,从而实现代码的模块化和重用。

在调用函数时,我们可以直接使用函数名来执行函数中的代码,并且可以传递参数给函数。

2. 函数参数传递C语言中函数参数传递的方式有两种:按值传递和按引用传递。

按值传递是指将实参的值复制给形参,函数内部对形参的修改不会影响实参的值。

而按引用传递是指将实参的地址传递给形参,函数内部对形参的修改会直接影响实参的值。

3. 函数返回值在C语言中,函数可以有返回值,也可以没有返回值。

有返回值的函数可以通过return语句将结果返回给调用者,调用者可以根据返回值进行后续的处理。

没有返回值的函数通常用于执行某些操作而不产生结果的情况。

4. 函数的递归调用函数的递归调用是指函数自身调用自身的过程。

递归调用在某些场景下非常方便,可以简化代码逻辑,提高代码的可读性。

然而,递归调用也需要注意控制递归的结束条件,以免造成无限循环。

实验结果:通过实验,我们成功定义和调用了多个函数,并且学习了函数参数传递和返回值的使用方法。

我们还编写了一些递归函数,验证了递归调用的正确性。

结论:函数是C语言中非常重要的概念,通过函数的定义和调用,我们可以实现代码的模块化和重用,提高代码的可读性和可维护性。

函数参数传递和返回值的使用方法也是我们需要掌握的基本技能。

递归调用作为一种特殊的函数调用方式,在某些场景下非常有用,但也需要注意控制递归的结束条件。

c语言用函数实现模块化程序设计实验报告

c语言用函数实现模块化程序设计实验报告

c语言用函数实现模块化程序设计实验报告
1设计思想
1)、设定一个一维数组,可先按员工序号设定每位员工的工资
2)、利用While语句和Print语句完成用户菜单的设计
功能为:第1项设为员工编号和工资数据
第2项设为修改员工工资数据
第3项设为查询员工工资数据
第4项设为结束系统
3)、当用户选择1、2项时,需输入员工编号,所以需要设计编号校正功能,如果出错可输出“The error employ number”
4)、当选择2时,进行工资数据的修改,并将新数据存回该员工的工资数组中
5)、利用for循环中判断语句,将用户工资数与数组中的工资数进行比较,如相同则输出,将计数器加1,如此下去,直到把整个数组遍历一遍
6)、判断计数器是否为0, 是0表示找不到相符的工资,如果不为0,则输出共查出几比相符的工资
以上当然里面也涉及了“函数的模块化”理念,可以避免但需要重复打印头文件时重复编写打印信头的语句。

像这样的程序是多见的,这样不但降低了程序还发效率,而且耗时浪费资源“共用体”的使用简化了程序的“复杂”性,正如(4)中,学号与姓名同时表示一个人,但在函数使用了“共用体”,从而程序的简单可以便于纠错,查找问
题,避免了代码的重复,这样就给编译时带来了一定的难度与“量”的繁杂。

一般不采取这样的做法,力求“简单、明了、清晰”。

C语言实验报告函数

C语言实验报告函数

C语言实验报告函数
简介
本实验报告旨在介绍C语言中的函数,包括函数的定义和调用、参数传递、返回值以及递归等内容。

通过实验,我们将深入了解函数在C 语言程序中的作用和使用方法。

函数定义和调用
在C语言中,函数是一段完成特定任务的独立代码块。

函数可以在程序中被多次调用,提供代码的模块化和重复使用性。

函数通常由函数名、参数列表、返回值类型和函数体组成。

函数定义的一般形式如下所示:
返回值类型函数名(参数列表) {
// 函数体
// 执行特定任务的代码
return 返回值;
}
函数定义中的返回值类型指定了函数的返回类型,函数体中的代码完成特定的任务,并通过 return 语句返回一个值。

函数的调用发生在程序的其他地方,通过函数名和对应的参数来调用函数。

函数调用的一般形式如下所示:
返回值变量 = 函数名(参数1, 参数2, ...);
函数调用会执行函数体中的代码,并返回一个值。

返回值可以保存在变量中供后续使用。

参数传递
在C语言中,参数传递可以通过值传递或地址传递来进行。

当使用值传递时,函数的参数是实际参数的副本,任何对参数的修改不会影响实际参数的值。

而当使用地址传递时,函数可以通过指针来修改实际参数的值。

值传递
值传递是指将实际参数的值复制给形式参数,在函数内部对形式参数的修改不会影响实际参数的值。

下面是一个示例:
``` #include <stdio.h>
void changeValue(int num) { num = 10; printf(。

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

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

课程名称:结构化程序设计与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;elsereturn 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));elseprintf("%d is not a prime number",int(n)); }3)运行截图:2、程序二 用递归方法求n 阶勒让德多项式的值 1)程序要求:递归公式为: 当n=0,=)(x P n 1 当n=1, =)(x P n x;当n>=1, =)(x P n ((2n-1)x-P n-1(x)-(n-1)P n-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;elseif(n==1)return x;elsereturn((2*n-1)*x-p(n-1,x)-(n-1)*p(n-2,x))/n; }3)运行截图:3、程序三成绩统计程序1)程序要求:输入10个学生5门课的成绩,分别用函数实现以下功能:计算每个学生的平均分;计算每门课的平均分;找出所有50个分数中最高的分数所对应的学生和课程;计算平均方差。

C语言实验报告(函数应用)

C语言实验报告(函数应用)

C语言实验报告(函数应用)实验目的:1. 掌握C语言函数的定义方法和调用方法;2. 掌握函数的参数传递和返回值的使用方法;3. 熟悉C语言库函数的使用方法。

实验原理:C语言中函数是程序的基础构件,函数可以定义在任何地方或者文件中。

在场合需要使用函数时,只要调用函数名称,即可执行函数,然后返回将结果。

函数定义的一般形式为:类型说明符函数名(形式参数列表){函数体语句return 返回值;}函数名是对函数定义的标识符。

形式参数列表指定函数使用的形式参数。

返回值是函数的结果。

在调用函数时,必须知道函数名称和使用的参数。

当调用函数时,实际参数传递给函数。

函数的返回值传递给调用者的程序段,通常是保存在调用者中的变量中。

C语言库函数是指提供了重要功能的函数。

这些函数可以在使用时直接调用。

实验步骤:1. 实现一个求和函数add代码:int add(int a, int b){int c = a + b;说明:定义了一个名为add的函数,函数有两个参数a和b,函数体内进行a和b的加法运算,并将结果赋值给c,最终返回c作为函数的结果。

#include <stdio.h>int x, y;printf("请输入两个整数:\n");scanf("%d %d", &x, &y);printf("%d + %d = %d\n", x, y, add(x, y));说明:主函数中调用add函数,将输入的两个数作为参数传递给add函数,并输出结果。

3. 实现一个数组平均值函数averagefor(i=0; i<len; i++){sum += arr[i];return (float)sum/len;int arr[5] = {1, 2, 3, 4, 5};len = sizeof(arr)/sizeof(arr[0]);printf("数组arr的平均值是%f\n", average(arr, len));5. 使用C语言库函数实现字符串反转函数strrevvoid strrev(char s[]){char temp;说明:该程序中使用C语言库函数strlen求出字符串长度,然后进行字符交换操作,实现字符串反转。

c语言函数实验报告

c语言函数实验报告

c语言函数实验报告C 语言函数实验报告一、实验目的1、深入理解 C 语言中函数的概念、定义和使用方法。

2、掌握函数的参数传递机制,包括值传递和地址传递。

3、学会使用函数来实现程序的模块化设计,提高代码的可读性、可维护性和可重用性。

4、通过实验,熟练掌握函数的调用、返回值的处理以及函数之间的相互协作。

二、实验环境1、操作系统:Windows 102、编译环境:Visual Studio 2019三、实验内容(一)函数的定义与声明1、定义一个名为`add` 的函数,用于计算两个整数的和,并返回结果。

```cint add(int a, int b) {return a + b;}```2、在主函数之前对`add` 函数进行声明。

```cint add(int, int);```(二)函数的调用1、在主函数中调用`add` 函数,计算 5 和 10 的和,并输出结果。

```cint main(){int result = add(5, 10);printf("5 + 10 =%d\n", result);return 0;}```(三)值传递与地址传递1、定义一个函数`swap`,通过值传递方式交换两个整数的值。

```cvoid swapValue(int a, int b) {int temp = a;a = b;b = temp;}```2、定义一个函数`swapPointer`,通过地址传递方式交换两个整数的值。

```cvoid swapPointer(int a, int b) {int temp = a;a = b;b = temp;}```3、在主函数中分别调用这两个函数,观察交换结果。

(四)函数的递归调用1、定义一个递归函数`factorial`,计算一个整数的阶乘。

```cint factorial(int n) {if (n == 0 || n == 1) {return 1;} else {return n factorial(n 1);}}```2、在主函数中调用`factorial` 函数,计算 5 的阶乘,并输出结果。

c语言实验报告结果及分析

c语言实验报告结果及分析

c语言实验报告结果及分析#### 一、实验目的1. 学习如何使用函数;2. 了解函数的作用;3. 掌握C语言程序中函数的实现方法;4. 深入理解函数调用和参数传递。

#### 二、实验内容本次实验完成了一个函数factorial,它的作用是计算一个整数的阶乘。

实验代码:```c#include <stdio.h>int factorial(int n) //函数声明{int i; //定义变量int product = 1; //初始化变量for(i = 1; i<=n; i++) //循环语句{product *=i;}return product; //返回结果}int main(){int num;scanf("%d",&num); //输入变量printf("%d\n",factorial(num)); //调用函数return 0;}```#### 三、实验结果实验运行结果:![image-20200907223338892](C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20200907223338892.png)实验结果验证了函数factorial的功能,它计算出了正确的结果:输入5,计算出120;输入4,计算出24。

#### 四、实验分析1. 在实验代码中,我们首先定义了一个函数factorial,并给出了它的参数n和返回值product。

然后,运用循环语句把参数n的各个数相乘,取得最终结果product,并用return语句把结果返回。

2. 然后,在进入main函数时,我们用scanf传入变量num,然后调用factorial函数计算num的阶乘,将结果用printf输出,这就完成了整个程序的工作。

3. 本实验验证了函数factorial的功能,完成了整数的阶乘计算任务,并且符合了性能要求,每次输入及计算结果都符合预期,可以满足实际使用需求。

C语言程序设计实验报告

C语言程序设计实验报告

南京邮电大学通达学院程序设计(上机)报告题目: R015M专业通信工程学生姓名班级学号指导教师日期 2020.11.18给定n个点的坐标,这n个点依次围成一闭合多边形,再给一点(x,y),判断它是否在多边形中。

课题分析:1、Double函数的应用:double是C语言的一个关键字,代表双精度浮点型。

占8 个字节(64位)内存空间。

其数值范围为1.7E-308~1.7E+308,精度完全保证的有效数字是15位,16位只是部分数值有保证。

可以用格式化输入输出语句scanf和printf进行double类型的输入输出,格式化字符为%lf。

2、赋值中的类型转换当赋值运算符两边的运算对象类型不同时,将要发生类型转换,转换的规则是:把赋值运算符右侧表达式的类型转换为左侧变量的类型。

3、利用自定义的函数实现叉乘4、Input():input属于printf()函数中的式样化字符串,将输出结果格式化并将输入的参数返回到程序中。

printf()函数用于向准则输出设备按规定式样输出消息。

正在编写步骤时经常会用到此函数。

printf()函数的挪用式样为: printf("<式样化字符串>",<参数表>)。

输入n个点,例如:三角形,那n就为3。

矩形,n就为4。

其中,n有限制条件,n至少大于等于3,为一个三角形。

这n个点必须按多边形顺时针或逆时针依次输入,这个多边形必须是凸多边形。

在最后运行过程中,输入n 个点的坐标。

再定义一个(x,y),判断此(x,y)是否在n个点构成的图形当中。

首先先计算两个向量(a,b),(c,d)的叉乘。

2个向量的叉乘就是计算向量的位置是在左边还是右边。

如果这个定义点在多边形内部的话,它就会始终在多边形边框的左侧或者右侧。

int n;double x, y;/输入n个点和坐标(x,y)。

void input()/定义一个input函数。

{int a,b,c,d,k;printf("请输入第一个向量");scanf("%d%d",&a,&b);printf("请输入第二版个向量");scanf("%d%d",&c,&d);k=ac+bd;printf("叉乘结果为权%d",k);}利用上方熟悉的叉乘公式进行改编,最终算出需要的(a,b)点与(c,d)点的叉乘结果。

c语言函数实验报告总结

c语言函数实验报告总结

c语言函数实验报告总结C语言函数实验报告总结一、引言C语言是一种广泛应用于嵌入式系统和系统编程的高级编程语言,函数是C语言的基本组成单元之一。

本实验旨在通过学习C语言函数的定义、调用和参数传递等知识,掌握函数的使用方法和技巧。

在实验过程中,我通过编写不同类型的函数,并进行调试和测试,深入理解了函数在程序中的作用和重要性。

二、函数的定义和调用在C语言中,函数是一段具有特定功能的代码块,可以在程序中反复使用。

函数的定义包括函数名、参数列表、返回值类型和函数体等组成部分。

通过函数名和参数列表的组合,可以唯一标识一个函数,实现函数的调用。

在实验中,我通过编写简单的函数,如计算两个数的和、差、乘积和商等,掌握了函数的定义和调用方法。

在调用函数时,需要根据函数的参数类型和个数,传递相应的参数值。

通过调用函数,可以实现代码的模块化和复用,提高程序的可读性和可维护性。

三、函数的参数传递C语言中的函数参数传递有两种方式:值传递和指针传递。

值传递是将实参的值复制给形参,形参在函数内部进行操作,不会影响实参的值。

指针传递是将实参的地址传递给形参,通过操作指针可以改变实参的值。

在实验中,我通过编写函数,如交换两个数的值、计算数组元素之和等,学习了函数参数传递的不同方式。

对于简单的数据类型,如整型、浮点型和字符型,可以使用值传递方式。

而对于数组和结构体等复杂的数据类型,应使用指针传递方式,以提高程序的效率和灵活性。

四、函数的返回值函数的返回值是函数执行完毕后返回给调用者的结果。

在函数定义时,可以指定函数的返回值类型。

在函数体中,通过return语句返回具体的数值或表达式的值。

在实验中,我通过编写函数,如判断一个数是否为素数、计算阶乘等,了解了函数返回值的作用和使用方法。

函数的返回值可以用于判断函数执行的结果,以及作为其他函数的参数或表达式的一部分。

五、函数的嵌套调用在C语言中,函数可以嵌套调用,即一个函数内部调用另一个函数。

c语言实验报告函数总结心得

c语言实验报告函数总结心得

c语言实验报告函数总结心得本次实验是关于C语言函数的学习和实践,通过对各种函数的手动实现和调用掌握了函数的概念、定义、声明、调用以及传参等知识点。

在实验过程中,我遇到了许多问题,但是通过自己的努力以及与同学和老师的交流,最终解决了这些问题,获得了许多收获和体会。

首先,函数的概念是我们学习的第一个重要知识点。

函数是一段可重用的代码,可以通过函数名进行调用,可以在程序的不同位置多次使用,提高了代码的可读性和维护性。

在函数的定义中,需要指定返回值类型、函数名、参数数量和类型等信息。

在调用函数时,需要按照函数定义中规定的参数类型和顺序传递实参,并根据需要保存函数返回值。

其次,函数的参数传递方式是我们需要掌握的难点之一。

C语言中有多种参数传递方式,包括传值、传址(指针)和传数组等。

函数参数的传递方式会对函数的运行效率和代码结构产生影响。

在实验中,我们通过手动实现字串反转、矩阵转置和选择排序等算法,深入理解了参数传递方式的运用和区别。

另外,在实验中我们还需要学习函数的声明和调用方法。

函数的声明是在不同文件中搭建合理的程序框架所必需的,在函数声明中需要指定参数类型与返回值类型。

函数的调用是在程序具体实现过程中使用的,调用函数时需输入实参,确保函数的正确调用。

在函数的声明和调用中,需要注意参数与返回值的匹配问题,以保证程序的正确性。

最后,在函数实现的过程中,可以使用循环、条件语句、指针和递归等方法,实现各种复杂的算法和操作。

循环语句可以对数据进行重复操作,条件语句可以根据不同条件选择不同的分支,指针可以提高数据的操作效率和灵活性,而递归则可以实现更复杂的算法和数据结构。

在实验过程中,我们通过实现不同的算法,对这些方法的使用和优缺点进行了深入探讨。

总之,通过这次实验,我对C语言函数有了更加深入的理解和掌握。

掌握了函数的定义、声明、调用和传参等核心知识点,同时还进一步学习了诸如指针、递归、数组、链表等数据结构和算法。

实验报告函数的用法(3篇)

实验报告函数的用法(3篇)

第1篇一、实验目的1. 理解函数的概念及作用。

2. 掌握函数的声明、定义和调用方法。

3. 学习函数的参数传递和返回值。

4. 熟悉函数的嵌套调用和递归调用。

二、实验原理函数是程序设计中的一种基本概念,它将一系列具有特定功能的代码封装在一起,以便重复使用。

函数的主要作用是将复杂的程序分解为多个模块,提高代码的可读性和可维护性。

在C语言中,函数分为两大类:标准函数和自定义函数。

标准函数是C语言库函数,如printf()、scanf()等;自定义函数是由程序员根据实际需求编写的函数。

函数的基本结构如下:```c函数返回类型函数名(参数列表) {// 函数体}```三、实验内容1. 函数的声明函数声明用于告诉编译器函数的存在,包括函数名、返回类型和参数列表。

函数声明格式如下:```c函数返回类型函数名(参数类型参数名);```2. 函数的定义函数定义是函数声明的具体实现,包括函数名、返回类型、参数列表和函数体。

函数体由大括号{}包围,包含一系列执行语句。

```c函数返回类型函数名(参数类型参数名) {// 函数体}```3. 函数的调用函数调用是指程序中调用函数的过程。

调用函数时,需要按照函数的参数列表提供相应的实参。

```c函数名(实参1, 实参2, ..., 实参n);```4. 函数的参数传递函数的参数传递主要有两种方式:值传递和地址传递。

(1)值传递:将实参的值复制给形参,函数内部对形参的修改不会影响实参。

(2)地址传递:将实参的地址传递给形参,函数内部通过修改形参的地址来修改实参的值。

5. 函数的返回值函数的返回值是指函数执行完毕后返回给调用者的值。

函数返回值类型必须与函数声明时指定的返回类型一致。

6. 函数的嵌套调用函数嵌套调用是指在一个函数内部调用另一个函数。

嵌套调用的函数可以递归调用自身。

7. 函数的递归调用递归调用是指函数在执行过程中直接或间接地调用自身。

递归调用分为直接递归和间接递归两种。

C语言实验报告

C语言实验报告

课程名称: 程序设计基础(C)实验日期:2014年10月31日一、实验名称(本次实践的题目)输入输出函数的使用二、实验目的及要求1、掌握格式输入输出函数printf和scanf函数的使用三、实验环境PC机一台,windows 7 操作系统,VC++6.0软件四、实验过程1、用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’。

问在键盘上如何输入。

#include <stdio.h>int main(){int a,b; float x,y;char c1,c2;scanf(“a=%db=%d”,&a,&b);scanf(“%f%e”,&x,&y);scanf(“%c%c”,&c1,&c2);printf(“a=%d,b=%d,x=%f,y=%f,c=%c,c2=%c\n“,a,b,x,y,c1,c2);}答:按如下方式在键盘下输入a=3b=78.5000071.8200Aa理由:主要是上面的scanf函数中的双引号中的内容决定了输出的格式%f%e表示输出的小数默认都是6位,所以要加后面加0补齐位数2、请编程序将“China”译成密码,密码规律是:用原来的字母后面第4字母代替原来的字母。

例如,字母”A”后面第4个字母是”E”,用”E”代替”A”。

因此“China”应译成”Glmre”。

请编一程序,用赋初值的方法使c1,c2,c3,c4,c5这5个变量的值分别为’C’,’h’,’i’,’n’,’a’,经过运算使c1,c2,c3,c4,c5分别变为’G’,’l’,’m’,’r’,’e’。

分别用putchar函数和printf函数输出这5个字符。

答:#include <stdio.h>int main(){{char c1='C',c2='h',c3='i',c4='n',c5='a';c1+=4;//类型转换,字符型(char类型的变量存储的就是ASCII码)+数字=字符型c2+=4;c3+=4;c4+=4;c5+=4;printf("密码是%c%c%c%c%c\n",c1,c2,c3,c4,c5);printf("用putchar函数输出:");putchar(c1);putchar(c2);putchar(c3);putchar(c4);putchar(c5);printf("\n");}}3、编写一个程序,请输入以下结果(每列左对齐)12 43 6 94 8 12 165 10 15 20 25答:分析总共有5行,每行第一个的数字代表行数,同时也代表每行中有几个数字,行数乘以2 3以此类推可以得到对应的结果#include <stdio.h>int main(){int i=1;int j=1;for( i=1;i<=5;i++){for( j=1;j<=i;j++){ int m=j*i;printf("%d ",m);}printf("\n");}}五、实验结果(这栏可以不写)六、小结(用文字叙述本次实验存在的问题,解决方法或心得体会等,必须填写)你需要去了解数据输出格式的相关含义学会发现数字与数字之间的简单的逻辑关系如第2题掌握ASCII码char类型以及与整型之间的关系。

C程序设计_函数_实验报告

C程序设计_函数_实验报告

贵州大学《C程序设计实验》实验报告实验名称:函数专业电子信息科学与技术班级姓名学号教师2010年}else{printf("%d isn't a prime number\n",n);}}bool prime_number(int x){bool flag=true;for(int i=2;i<x/2&&(flag==true);i++){if(x%i==0)flag=0;}return flag;}运行情况:分析:程序开始:bool prime_number(int x);声明一个函数,函数返回值为bool型,函数名为prime_number,函数带一个int型参数。

scanf("%d",&n);从屏幕输入数n。

if(prime_number(n)) 调用函数,传入参数n。

bool prime_number(int x){bool flag=true;for(int i=2;i<x/2&&(flag==true);i++){if(x%i==0)flag= false;}return flag;}把两个函数分别放在两个程序文件中,作为两个文件进行编译、连接和运行。

(3). 用递归法将一个整数n转换成字符串。

例如,输入483,应输出字符串“483”。

n的位#include <stdio.h>void main(){int n;void covert( int n);printf("input n\n");scanf("%ld",&n);if(n<0){putchar('-');n=-n;}covert(n);}void covert(int n){inti;if((i=n/10)!=0)covert(i);printf("%c",n%10+'0');}数不确定,可以是任意的整数。

C语言实验报告 函数

C语言实验报告 函数

实验名:函数的定义及调用一、实验目的1、掌握C语言函数定义及调用的规则。

2、理解参数传递的过程。

二、实验内容(一))题目11、题目内容描述1、上机调试下面的程序,记录系统给出的出错信息,并指出出错原因。

main(){int,y;printf(“%d\n”,sum(x+y));int sum(a,b){int a,b;return(a+b);}}2、编写并调试一个求n!(n为整数)的递归函数,希望能在程序运行过程中动态地显示递归函数被调用的轨迹。

三、分析讨论1、针对以上实验内容写出相应的参数传递过程并分析结果。

2、讨论参数的传递的几种形式。

2、输入和输出信息描述及数据类型确定;、输入数据(1)序号输入数据描述数据类型1 x,y int2 a,b int(2)输出数据序号输出数据描述数据类型1 x+y int3、程序源代码(填写程序调试正确后的代码)#include <stdio.h>int main(){int sum(int a,int b); //对被调用函数sum 的声明int x,y,z;scanf("%d,%d",&x,&y);z=sum(x,y); //调用sum 函数,将其值赋给zprintf("%d\n",z); //输出函数结果zreturn 0;//返回值为0}int sum(int a,int b) //定义sum函数{return(a+b); //将a+b的值作为返回值返回到调用sum的位置}4、程序调试错误序号错误信息(列出出错语句以及出错提示)是否解决解决方法1 In function 'main':|int,y;是改为int x,y;2 error: stray '\241' in program|error: expected expressionbefore '%' token|error: stray '\' in program|printf(“%d\n”,sum(x+y));是将整段改为int sum(int a , int b);int x,y,z;z=sum(x,y);printf("%d\n",z);3 error: 'a' redeclared asdifferent kind of symbol|error: 'b' redeclared asdifferent kind of symbol|int a,b;是去掉整句话4 warning: 'x' is useduninitialized in this function[-Wuninitialized]|是加上scanf("%d,%d",&x,&y);5 error: static declaration of'sum' follows non-staticdeclaration|是将int及后面的语句块都移到main外面5、测试与结果分析(1)、测试数据与结果测试序号测试用例选取原因测试输入数据测试输出结果是否正确结果分析1 测试用例4,5 9 是可运算范围内2 测试用例55555,7933 63488 是可运算范围内3 测试用例-89,-79 -168 是可运算范围内(2)、相关问题回答2、编写并调试一个求n!(n为整数)的递归函数,希望能在程序运行过程中动态地显示递归函数被调用的轨迹。

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

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

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

2实验内容(1)编写一个函数primeNum(int x),功能是判别一个数是否为素数。

要求:①在主函数中输入一个整数x(直接赋值或从键盘输入);②函数类型为空值(void),调用primeNum( )函数后,在函数中输出x是否为素数的信息,输出格式为“x is a prime number”或”x is not aprime number”;③分别输入一下数据:0,1,2,5,9,13,59,121,并运行程序,检查结果是否正确。

(2)编写函数 mulNum(int a,int b),它的功能是用来确定a和b是否是整数倍的关系。

如果a是b的整数倍,则函数返回值为1,否则函数返回值为0。

要求:①在主函数中从键盘输入一对整型数据a和b;②调用函数后,根据返回值对a和b的关系进行说明。

例如,在主函数中输入:10,5,则输出“10 is a multiple of 5”;③分别输入下面几组数据进行函数的正确性测试:1与5,5与5,6与2,6与4,20与4,37与9。

3算法描述流程图(1)primeNum(int x)(判别一个数是否是素数)函数流程图①主函数流程图:②判断素数函数流程图:(2)mulNum(int a,int b)(确定a和b是否是整数倍的关系)函数流程图①主函数流程图:②判断倍数流程图:4源程序(1)判断某个数是否是素数#include <stdio.h>int primNum(int x) /*编写函数判断某个数是否是素数*/ {int i;if (x==0||x==1) /*当x等于1或等于0时判断是否为素数*/return 0;for (i=2;i<x;i++) /* 当x大于2时判断不为素数的数*/{if (x%i==0)return 0;}if (x%i) /* 当x等于2或不满足上述条件时时判断出该数是素数*/ return 1;}void main(){int n ;printf("Please input an integer:"); /* 提示从键盘输入一个数x */scanf("%d",&n);if (primNum(n)==1) /* 调用定义的函数*/ printf("%d is a prime number\n",n); /* 由函数得出结论判断是否为素数*/ elseprintf("%d is not a prime number\n",n);}(2)个数是否是整数倍关系#include <stdio.h>int mulNum(int a,int b)/* 定义函数确定两个数是否有整数倍关系*/{if (a%b==0) /* 判断出a是b的整数*/return 1;else /* 判断出a不是b的整数*/return 0;}void main (){int m,n;printf ("please input tow integers:\n"); /*提示从键盘输入两个数*/scanf ("%d%d",&m,&n); /*从键盘输入两个数的值*/if(mulNum(m,n)==1) /*调用定义的函数并判断输出相应的结果*/printf("%d is a multiple of %d\n",m,n);elseprintf("%d is not a multiple of %d\n",m,n);}5测试数据(1)实验(1)测试数据为0,1,2,5,9,13,59,121 运行结果当测试数据0时当测试数据1时当测试数据2时当测试数据5时当测试数据9时当测试数据13时当测试数据59时当测试数据121时(2)实验2测试的数据1与5,5与5,6与2,6与4,20与4,37与9。

C语言程序设计实验报告范文c语言程序设计实验报告书

C语言程序设计实验报告范文c语言程序设计实验报告书

C语言程序设计实验报告范文c语言程序设计实验报告书c语言程序设计实验报告篇一一、实验目的:1、掌握C语言的`数据类型和变量的声明。

2、掌握不同类型数据之间赋值的规律。

3、掌握C语言的运算符和表达式的使用。

4、熟悉C程序的编辑、编译、连接和运行的过程。

二、实验内容:①输人程序: includevoid main() { int a, b; float d,e; charc1,c2; double f, g; long m, n; unsigned int p,q; a=61;b=62; c1='a';c2='b'; d=3.56;e=-6.87; f=3157.;g=0.; m=50000;n=-60000;p=32768;q=40000; printf("a=%d,b=%d c1=%c,c2=%c d=%6.2f,e=%6.2f ",a,b,c1,c2,d,e); printf("f=%15.6f,g=%15.6f m=%ld,n=%ld p=%u,q=%u ",f,g,m,n,p,q); }②运行此程序并分析结果按习题4. 8要求编写程序题目为: 设圆半径r=l. 5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。

用scanf输人数据,输出计算结果口输出时要有文字说明,取小数点后两位数字。

程序:三、实验步骤:①输人程序:includevoid main() { int a, b; float d,e; char c1,c2; double f, g; long m, n; unsigned int p,q; a=61;b=62; c1='a';c2='b'; d=3.56;e=-6.87; f=3157.;g=0.; m=50000;n=-60000; p=32768;q=40000; printf("a=%d,b=%dc1=%c,c2=%c d=%6.2f,e=%6.2f ",a,b,c1,c2,d,e); printf("f=%15.6f,g=%15.6f m=%ld,n=%ld p=%u,q=%u ",f,g,m,n,p,q); }②运行此程序并分析结果。

使用函数输出指定范围内的fibonacci数c语言实验报告

使用函数输出指定范围内的fibonacci数c语言实验报告

使用函数输出指定范围内的fibonacci数c语言实验报告以下是一个使用函数输出指定范围内Fibonacci数的C语言实验报告:一、实验目的1. 掌握函数的使用方法;2. 掌握循环语句的使用方法;3. 掌握数组的使用方法。

二、实验内容1. 定义一个函数,用于计算Fibonacci数列的第n项;2. 定义一个函数,用于输出指定范围内的Fibonacci数列。

三、实验步骤1. 定义函数,计算Fibonacci数列的第n项。

可以使用递归或迭代的方式实现,这里采用迭代的方式实现。

```cint fibonacci(int n) {if (n <= 1) {return n;} else {return fibonacci(n-1) + fibonacci(n-2);}}```2. 定义函数,输出指定范围内的Fibonacci数列。

可以使用循环语句实现。

```cvoid print_fibonacci(int start, int end) {int i;for (i = start; i <= end; i++) {printf("%d ", fibonacci(i));}printf("\n");}3. 在主函数中调用print_fibonacci函数,输出指定范围内的Fibonacci数列。

```cint main() {int start, end;printf("请输入Fibonacci数列的起始项和结束项(用空格分隔):"); scanf("%d %d", &start, &end);printf("Fibonacci数列%d到%d为:", start, end);print_fibonacci(start, end);return 0;}```四、实验结果与分析在本次实验中,我们使用函数实现了计算Fibonacci数列和输出指定范围内的Fibonacci数列的功能。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言程序设计II实验报告题目:实验五函数应用院系名称:计算机学院专业名称:计算机科学与技术班级:学号:学生姓名:指导教师:实验日期:2017年4月1日报告提交截止日期:2017年4月11日一、实验目的1、掌握C语言函数的定义方法、函数的声明及函数的调用方法及调用过程;2、掌握主调函数和被调函数之间的参数传递方式;二、实验内容与要求:1、求两个整数的最大公约数和最小公倍数。

用一个函数求最大公约数,用另一个函数根据求出的最大公约数求最小公倍数。

(提示:设两个整数是a,b,最大公约数是p,最小公倍数是q,那么ab=pq)2、用牛顿迭代法求方程f(x)=ax3+bx2+cx+d=0的根。

系数a、b、c、d由主函数输入。

求根过程写成函数。

(提示:牛顿迭代法是先给定方程f(x)=0的一个较好的初始近似根x0,然后重复使用迭代公式:求x的近似解,直至相邻两次的近似解相差很小为止,如差值的绝对值小于1e-07。

x0可以从键盘输入或直接设定。

)3、定义一个函数,功能是计算n个学生的成绩中高于平均成绩的人数,并作为函数返回值。

用主函数来调用它。

统计30个学生成绩中高于平均成绩的有多少人。

4、∑=+++==ninpppipns1)()2()1()()(ΛΛ,!)(iip=5、编写和调用函数,给定圆筒的内径、外径和高,计算该圆筒的体积;给定圆锥的高、底面半径,计算该圆锥的体积和表面积。

6、编写和调用函数,求出10000以内的所有素数、绝对素数、水仙花数、完全数(或称完数)、互满数。

提示:一个素数经过任意次调换位,仍然为素数,则称其为绝对素数,例如13和31就是一个绝对素数。

水仙花数是指一个三位整数,其各位数字立方之和等于该数。

例如,153就是一个水仙花数:153=1*1*1+5*5*5+3*3*3。

完全数是指一个数正好是它的所有约数(本身除外)之和。

例如,6就是一个完全数,因为6的因子有1、2、3,并且6=1+2+3。

如果有两个数,每一个数的所有约数(除它本身以外)之和正好等于对方,则称这两个数为互满数。

三、实验结果{a=a+b;b=a-b;a=a-b;}for(i=a;i>=1;i--)if(a%i==0&&b%i==0)return i;}int s(int a,int b,int i){return a*b/i;}main(){int a,b;while(1){scanf("%d%d",&a,&b);printf("最大公约数:%d\n最小公倍数:%d\n",f(a,b),s(a,b,f(a,b)));}}实验测试结果(使用截图,图形格式JPEG。

截图不要包含源代码):讨论(文本):2题目内容与要求:用牛顿迭代法求方程f(x)=ax 3+bx 2+cx+d=0的根。

系数a 、b 、c 、d 由主函数输入。

求根过程写成函数。

(提示:牛顿迭代法是先给定方程f(x)=0的一个较好的初始近似根x 0,然后重复使用迭代公式:)(')(000x f x f x x -=求x 的近似解,直至相邻两次的近似解相差很小为止,如差值的绝对值小于1e-07。

x 0可以从键盘输入或直接设定。

)算法简要描述(文本):通过构造函数实现题中给的公式。

源代码标识符说明(文本):a,b,c,d,存系数x 存根。

源代码(粘贴程序,注意缩进,不得使用截图):#include"stdio.h" #include"math.h"float f1(float a,float b,float c,float d,float x) {return (a*x*x*x+b*x*x+c*x+d);}float f2(float a,float b,float c,float x){return (3*a*x*x+2*b*x+c);}main(){while(1){float a,b,c,d,x,y,m,n;scanf("%f%f%f%f%f",&a,&b,&c,&d,&x);do{x=y;m=f1(a,b,c,d,x);n=f2(a,b,c,x);y=x-(m/n);}while(fabs(x-y)>=1e-7);printf("%.2f\n",y);}}实验测试结果(使用截图,图形格式JPEG。

截图不要包含源代码):讨论(文本):3 题目内容与要求:定义一个函数,功能是计算n个学生的成绩中高于平均成绩的人数,并作为函数返回值。

用主函数来调用它。

统计30个学生成绩中高于平均成绩的有多少人。

算法简要描述(文本):构造函数求出平均值,再和平均值一一比较。

源代码标识符说明(文本):p指针变量操作数组。

q存大于平均值成绩的个数。

源代码(粘贴程序,注意缩进,不得使用截图):#include"stdio.h"int f(float *p,int n){int i,q=0;float s=0;for(i=0;i<n;i++)s+=*(p+i);for(i=0;i<n;i++){if(*(p+i)>(s/n))q++;} return q; } main() {float a[30]; int i,n=30; for(i=0;i<n;i++) scanf("%d",&a[i]); printf("%d",f(a,n)); }实验测试结果(使用截图,图形格式JPEG 。

截图不要包含源代码):讨论(文本):4题目内容与要求:编写程序,计算下列函数值:)()(),(n s m s n m f =,其中,m ,n 为正整数, ∑=+++==ni n p p p i p n s 1)()2()1()()(ΛΛ,!)(i i p =算法简要描述(文本):构造一个阶乘函数。

源代码标识符说明(文本):x存数据。

源代码(粘贴程序,注意缩进,不得使用截图):#include"stdio.h"long long s(int x){if(x==1)return 1;return x*s(x-1);}long long f(int a,int b){return s(a)/s(b);}main(){int a,b;while(1){scanf("%d%d",&a,&b);printf("%d!=%lld %d!=%lld\n",a,s(a),b,s(b));printf("s(a)/s(b)=%lld\n",f(a,b));}}实验测试结果(使用截图,图形格式JPEG。

截图不要包含源代码):讨论(文本):5 题目内容与要求:编写和调用函数,给定圆筒的内径、外径和高,计算该圆筒的体积;给定圆锥的高、底面半径,计算该圆锥的体积和表面积。

算法简要描述(文本):构造圆锥和圆筒体积表面积函数源代码标识符说明(文本):a,b,c存数据。

源代码(粘贴程序,注意缩进,不得使用截图):#include"stdio.h"#include"math.h"#define PI 3.1415926float v(float a,float b,float h){if(b!=0)return PI*(b*b-a*a)*h;return PI*a*a*h/3;}float s(float a,float h){return PI*a*sqrt(a*a+h*h)+PI*a*a;}main(){float a,b,h;while(1){printf("请输入圆筒的内径,外径,高\n"); scanf("%f%f%f",&a,&b,&h);printf("v=%f\n",v(a,b,h));b=0;printf("请输入圆锥的半径,高\n");scanf("%f%f",&a,&h);printf("v=%f s=%f\n",v(a,b,h),s(a,h));}}实验测试结果(使用截图,图形格式JPEG。

截图不要包含源代码):讨论(文本):6 题目内容与要求:编写和调用函数,求出10000以内的所有素数、绝对素数、水仙花数、完全数(或称完数)、互满数。

提示:一个素数经过任意次调换位,仍然为素数,则称其为绝对数,例如13和31就是一个绝对素数。

水仙花数是指一个三位整数,其各位数字立方之和等于该数。

例如,153就是一个水仙花数:153=1*1*1+ 5*5*5+3*3*3。

完全数是指一个数正好是它的所有约数(本身除外)之和。

例如,6就是一个完全数,因为6的因子有1、2、3,并且6=1+2+3。

如果有两个数,每一个数的所有约数(除它本身以外)之和正好等于对方,则称这两个数为互满数。

算法简要描述(文本):构造出各自函数,通过调用实现。

绝对素数在已知的素数里面通过移位再判断是否是素数。

源代码标识符说明(文本):x,a,b,c存数据。

源代码(粘贴程序,注意缩进,不得使用截图):#include"stdio.h"#include"math.h"int f(int i){int j,k=sqrt(i);for(j=2;j<=k;j++)if(i%j==0)break;if(j>=k+1)return 1;else return 0;}int g(int x){int i,a,b,c;for(i=100;i<=x;i++){a=i%10;b=i/100;c=(i-b*100)/10;if(i<=999&&i==a*a*a+b*b*b+c*c*c) printf("% d",i);}}int h(int x){int i,j,k,a;for(i=2;i<=x;i++){a=0;for(j=1;j<=i/2;j++)if(i%j==0)a+=j;if(a==i)printf("% d",i);} }int w(int x){int j,a=0;for(j=1;j<=x/2;j++)if(x%j==0)a+=j;return a;}int s(int x){int i,j,k;for(i=1;i<=x;i++)if(w(w(i))==i){if(w(i)<i)continue;printf("%d,%d ",i,w(i)); }}main(){int i,j=0,x,a,b,c,m[1000]; scanf("%d",&x);printf("素数为:\n");for(i=2;i<=x;i++)if(f(i)){printf("%5d",i);if(i>9&&i<100)if(f(i%10*10+i/10))m[j++]=i;if(i>100&&i<=999){c=i%10;a=i/100;b=(i-a*100)/10;if(a%2==0||b%2==0||c%2==0||a==5||b==5||c==5)continue;if(f(a*100+c*10+b)&&f(b*100+c*10+a)&&f(b*100+a*10+c)&&f(c*10 0+b*10+a)&&f(c*100+a*10+b))m[j++]=i;}}printf("\n绝对素数为:");for(i=0;i<j;i++)printf("% d",m[i]);printf("\n水仙花数为:"); g(x);printf("\n完全数为:"); h(x);printf("\n互满数为:\n"); s(x);}实验测试结果(使用截图,图形格式JPEG。

相关文档
最新文档