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

合集下载

C语言实验报告

C语言实验报告

C语言程序设计(B)(2010-2011-2)实验报告教学班级:学号:姓名:课程教师:王华金实验辅导教师:王华金P123--五、1、编写函数,找出5*5数组对角线上元素的最小值,并在主函数中调用它。

要求元素的值通过键盘输入。

实验前的源程序:#include<stdio.h>int func(int p[5][5]){int i,j,min;min=p[0][0];for(i=0;i<5;i++)for(j=0;j<5;j++)if(i==j)if(p[i][j]<min) min=p[i][j];return min;}void main(){int i,j,m,a[5][5];printf("请输入a[5][5]:\n");for(i=0;i<5;i++)for(j=0;j<5;j++)scanf("%d",&a[i][j]);printf("a[5][5]:\n");for(i=0;i<5;i++){for(j=0;j<5;j++)printf("%4d",a[i][j]);printf("\n");}m=func(a);printf("主对角线上元素的最小值为:%d\n",m);}实验错误报告:[Error] C:\Users\陶鑫\Documents\C-Free\Temp\未命名4.cpp:13: error: `main' must return `int'[Warning] C:\Users\陶鑫\Documents\C-Free\Temp\未命名 4.cpp:27:2: warning: no newline at end of file构建中止未命名4: 1 个错误, 1 个警告实验后的源程序:#include<stdio.h>int func(int p[5][5]){int i,j,min;min=p[0][0];for(i=0;i<5;i++)for(j=0;j<5;j++)if(i==j)if(p[i][j]<min) min=p[i][j];return min;}main(){int i,j,m,a[5][5];printf("请输入a[5][5]:\n");for(i=0;i<5;i++)for(j=0;j<5;j++)scanf("%d",&a[i][j]);printf("a[5][5]:\n");for(i=0;i<5;i++){for(j=0;j<5;j++)printf("%4d",a[i][j]);printf("\n");}m=func(a);printf("主对角线上元素的最小值为:%d\n",m);}P123--五、3、编写从整形数组中检索给定数值的函数,若找到则输出该数值在数组中的位置。

c语言函数实验报告

c语言函数实验报告

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

c实验报告

c实验报告

c实验报告C实验报告实验目的:通过编写C程序,了解C语言的基本语法和控制结构。

实验内容:编写一个C程序,实现以下功能:1. 输入两个数字,计算它们的和、差、积和商,并输出结果。

2. 输入一个数字,判断它是否为偶数,并输出结果。

实验步骤:1. 打开C集成开发环境(IDE),创建一个新的C项目。

2. 在main函数中添加代码,实现输入两个数字,并计算它们的和、差、积和商。

代码示例:```c#include <stdio.h>int main() {int num1, num2;printf("请输入两个数字: ");scanf("%d%d", &num1, &num2);int sum = num1 + num2;int difference = num1 - num2;int product = num1 * num2;float quotient = (float)num1 / num2;printf("和: %d\n", sum);printf("差: %d\n", difference);printf("积: %d\n", product);printf("商: %.2f\n", quotient);return 0;}```3. 编译并运行程序,输入两个数字,观察输出结果。

4. 在main函数中添加代码,实现输入一个数字,判断它是否为偶数,并输出结果。

代码示例:```c#include <stdio.h>int main() {int num;printf("请输入一个数字: ");scanf("%d", &num);if (num % 2 == 0) {printf("%d是偶数\n", num);} else {printf("%d不是偶数\n", num);}return 0;}```5. 编译并运行程序,输入一个数字,观察输出结果。

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

C语言实验报告范文1.实验目的本实验的目的是通过C语言编写程序来熟悉C语言的基本语法和编程方法,掌握C语言的基本数据类型、运算符、控制语句等内容,并能够利用C语言完成简单的程序设计。

2.实验内容本实验包括以下四个部分的内容:2.1输入输出通过C语言的输入输出函数,实现从用户处输入数据,再将数据输出到屏幕上的功能。

2.2算术运算通过C语言的算术运算符,实现基本的加减乘除运算,并将运算结果输出到屏幕上。

2.3控制语句通过C语言的条件语句和循环语句,实现对条件的判断和循环控制,并输出满足条件的结果。

2.4函数调用通过C语言的函数定义和函数调用,实现程序的模块化设计和代码的复用。

3.实验过程3.1输入输出首先,使用C语言的输入函数scanf(从用户处输入两个整数,并将其存储在两个变量a和b中。

然后,使用C语言的输出函数printf(将两个变量的值输出到屏幕上。

3.2算术运算定义两个变量c和d,并分别将a和b的值赋给它们。

然后,使用C 语言的算术运算符对c和d进行加、减、乘、除运算,并将运算结果分别存储在变量e、f、g、h中。

最后,使用printf(函数将这四个变量的值输出到屏幕上。

3.3控制语句根据用户输入的值,使用if-else语句判断a和b的大小关系,并输出不同的结果。

然后,使用for循环语句计算1加到100的和,并输出结果。

3.4函数调用首先,在程序中定义一个函数sum,用于计算两个整数的和。

然后,在主函数中调用该函数,并将a和b作为参数传递给该函数。

最后,将函数的返回值输出到屏幕上。

4.实验结果根据实验过程中的步骤,编写C语言程序并进行编译运行。

输入不同的数据值,观察程序的输出结果。

根据所输入的数据和程序逻辑,验证程序运行是否正确。

5.实验总结通过本次实验,我掌握了C语言的基本语法和编程方法。

通过编写程序,我能够熟练使用C语言的输入输出函数、算术运算符、控制语句和函数调用等功能。

通过对实验结果的观察和分析,我对C语言的运行机制和语法规则有了更深入的理解,并且能够独立解决简单的编程问题。

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)点的叉乘结果。

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

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. 实现一个数组平均值函数average
for(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语言库函数实现字符串反转函数strrev
void strrev(char s[]){
char temp;
说明:该程序中使用C语言库函数strlen求出字符串长度,然后进行字符交换操作,实现字符串反转。

char s[100];
strrev(s);
printf("反转后的字符串为:%s\n", s);
说明:主函数中输入一个字符串,并调用strrev函数进行反转操作,最后输出反转后的结果。

实验结果:
测试add函数:
请输入两个整数:
6 9
6 + 9 = 15
测试average函数:
数组arr的平均值是3.000000
请输入一个字符串:
hello, world!。

相关文档
最新文档