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语言用函数实现模块化程序设计实验报告
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语言与程序设计》实验06---函数

《C语言与程序设计》实验06---函数

实验六函数一、实验目的1. 熟练掌握函数的定义、函数的类型和返回值。

2. 熟练掌握形式参数与实际参数、参数值的传递。

3. 掌握函数的嵌套调用与递归调用。

4.学会使用指向函数的指针变量。

5.了解指向指针的指针的概念及带参数的main函数。

6. 掌握局部变量和全局变量。

7. 掌握变量的存储类型。

8. 了解内部函数和外部函数。

二、实验学时:8课时三、预习知识1.标准库函数标准库函数是C系统提供的,这些库函数定义了一些基本的、常用的功能,用户可以使用这些库函数,但是在使用库函数之前需要用预编译命令# include将该库函数所在的头文件包含进来。

2.自定义函数定义函数一般有两种形式形式1:存储类型类型符函数名(类型符形参1,类型符形参2 ,… ) { 说明语句执行语句}形式2:存储类型类型符函数名(形参1,形参2 ,……)形参类型说明{ 说明语句执行语句}说明:①形参表中即使没有参数,函数名后的一对圆括号也不能省略。

②函数名前的类型符是用来说明函数返回值的数据类型(也作为函数的数据类型) 。

当函数值为整型时,类型符可以省略。

③当函数只完成某一特定操作不需要返回值时,可用类型标识符 void 说明,将函数定义成空类型。

④C 规定:不允许在一个函数内部再定义另外一个函数,即函数不允许嵌套定义。

⑤函数的存储类型:函数的存储类型有 extern 和 static 两种。

extern 型的函数除了可以被本程序中其它函数调用外,还可以被其它文件中的函数调用,这种函数称为外部函数,如果定义函数时省略 extern ,则隐含为外部函数。

static 型的函数只能被本源程序文件中的函数调用,称为内部函数(静态函数)。

3.函数的参数(1)在定义函数时函数名后面括号中的变量称为形参(形式参数),如果有两个以上形参,形参之间以逗号分隔。

形参是函数的内部变量,只在函数内部才有意义。

在未出现函数调用时,形参不占内存。

对每个形参必须指明其名字和数据类型。

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. 巩固和加深对C语言程序设计的理解。

2. 掌握C语言编程的基本技巧和方法。

3. 提高分析问题、解决问题的能力。

4. 学会将理论知识应用于实际编程中。

二、实习内容XXX语言基础语法练习变量、数据类型、运算符、表达式等基础语法练习。

控制结构(顺序、分支、循环)的实现。

函数的定义和调用方式练习。

2. 模块化程序设计将一个大的程序分解成多个模块,每个模块完成特定的功能。

通过模块间的调用和传递数据来实现整个程序的功能。

3. 文件操作与文件读写文件的打开、关闭、读写操作练习。

文件格式的转换和数据统计处理。

4. 预处理指令与宏定义使用预处理指令进行条件编译和宏定义替换。

练习使用常见的预处理指令如include、define、ifdef等。

5. 结构体、链表与指针结构体的定义和使用。

链表的创建、插入、删除、遍历等操作。

指针的概念和指针运算。

深入理解指针与数组、结构体等数据结构的关系。

6. 位运算与嵌入式系统编程学习位运算符的使用和位段操作的实现。

嵌入式系统的基本概念和编程方法。

7. 综合项目实践参与或独立完成一个综合性C语言程序设计项目。

项目可以包括基于命令行参数的程序设计、基于文件操作的程序设计、基于网络编程的程序设计等。

三、实习过程1. 理论学习:通过教材、网络资源等途径学习C语言的基础知识和编程技巧。

2. 上机实践:在计算机上编写和调试C语言程序,不断巩固所学知识。

3. 问题解决:遇到问题时,通过查阅资料、请教老师或同学等方式解决问题。

4. 团队合作:在小组项目中与他人协作,共同完成任务。

四、实习收获1. 知识技能方面:深入理解了C语言的基本概念和编程技巧,掌握了模块化程序设计和文件操作等常用算法。

2. 解决问题能力方面:学会了如何分析问题、寻找解决方案并通过实践验证解决方案的正确性。

3. 团队协作能力方面:学会了与他人合作,共同完成任务,提高了团队协作能力。

4. 职业素养方面:培养了耐心、细致的工作态度和勇于尝试、敢于创新的探索精神。

C语言程序设计实验报告3_学习总结_总结汇报_实用文档

C语言程序设计实验报告3_学习总结_总结汇报_实用文档

实验3 函数与程序结构实验3.1 实验目的(1)熟悉和掌握函数的定义、声明;函数调用与参数传递方法;以及函数返回值类型的定义和返回值使用。

(2)熟悉和掌握不同存储类型变量的使用。

(3)熟悉多文件编译技术。

3.2 实验内容及要求3.2.1源程序改错下面是计算s=1!+2!+3!+…+n!的源程序,在这个源程序中存在若干语法和逻辑错误。

要求在计算机上对这个例子程序进行调试修改,使之能够正确完成指定任务。

1 #include<stdio.h>2 int main(void)3 {4 int k;5 for(k=1;k<6;k++)6 printf("k=%d\tthe sum is %ld\n",k,sum_fac(k));7 }8 return 0;9 long sum_fac(int n)10 {11 long s=0;12 inti;13 long fac;14 for(i=1;i<=n;i++)15 fac*=i;16 s+=fac;17 return s;18}解答:(1)错误修改1)未声明函数sum_fac(int n)的情况下,就调用函数。

2)第8行中,return 0;语句应放在主函数中。

3)第15,16行,应该被括号括起来,否则程序意义不是计算阶乘的和。

(2)修改错误后的程序为#include<stdio.h>long sum_fac(int n);int main(void){int k;long sum_fac(int n);for(k=1;k<6;k++)printf("k=%d\tthe sum is %ld\n",k,sum_fac(k));return 0;}long sum_fac(int n){long s=0;inti;long fac=1;for(i=1;i<=n;i++){fac*=i;s+=fac;}return s;}(3)运行结果图1 3.2.1程序运行截图3.2.2源程序修改替换(1)修改第1题中sum_fac函数,使其计算量最小。

C语言程序设计实验报告

C语言程序设计实验报告

实验二数据类型、运算符和表达式实验时间:2机时一、实验目的1. 掌握C语言数据类型,熟悉各种类型变量的定义和含义。

2. 掌握C语言标准输入、输出函数的使用方法3. 进一步熟悉C程序的上机过程,积累调试经验。

二、实验意义通过上机实验,巩固本章所学基本知识-C语言的数据类型、变量的定义和使用、结合数据类型更深入地理解标准输入函数scanf()和标准输出函数printf ()的格式控制符的意义和使用。

通过简单程序设计的练习加深对运算符优先级和结合方向的理解,并正确求解表达式的值,这些必要的基础知识是后面深入学习C语言所必须的知识储备。

三、实验重点1. 数据类型、变量的定义和使用;2. 运算符、表达式的求解3. 简单顺序结构的C程序设计四、实验难点数据类型的转换、自增自减运算五、实验方式提前编写程序,写好实验报告,上机实验时一边调试程序一边将实验报告上关于程序调试和运行结果的信息填写到实验报告上,实验完成时上交实验报告。

六、实验内容(一).完善程序题1.用scanf函数输入数据,使得x=1.23,y=67.1234。

#include <math.h>#include <stdio.h>int main(){double x,y,z;scanf ("%lf%lf",&x,&y);z=2*x+y/sin(3.1415/4);printf("z=%6.2f",z);return 0;}输入1.23 67.1234输出z= 97.392. #include <stdio.h>int main(){int str;str=getchar();putchar(str);return 0;}输入a输出a3.根据下面的输出结果,完善程序s1=C,ASCII is 67x=655.35,y=765.43#include <stdio.h>int main(){double x=655.3524,y=765.4271;char s1='C';printf("s1=%c,ASCII is %d\nx=%6.2f,y=%6.2f",s1,s1,x,y);return 0;}输出s1=C,ASCII is 67x=655.35,y=765.434.用scanf函数输入数据,使得程序运行结果为a=2,b=’x’,c=’z’。

实验报告

实验报告

C语言程序设计实验报告1实验目的(1)熟练掌握scanf()/print()库函数的调用格式,正确使用各种格式转换控制副,掌握各种数据的输出输入方法;2(2)掌握getchar()/putchar()库函数的调用格式,以及使用它们进行字符类型数据输出输入的方法。

实验内容(2)输入并运行下面程序:#include<stdio.h>main(){int a,b,c;scanf("%d%d",&a,&b);c=a/b;printf("%d\n",c);}要求:调试通过后,运行该程序。

○1输入值:50 4<回车>,查看并运行结果;○2输入值:50.4 10.8<回车>,查看运行结果;○3输入值:50000 100<回车>,查看运行结果;○4输入值:10 0<回车>,查看运行结果;○5输入值:50,4<回车>,查看运行结果。

分析得到的结果,并说明原因。

(3)从键盘上输入三个小写字母,输出其对应的大写字母(例如:输入:a,b,c,则输出分别为A,B,C)。

要求:○1通过一条scanf库函数语句输入三个小写字母,通过printf函数以空格键分隔字符输出;○2通过getchar函数输入三个小写字母,通过printf函数以域宽为3的规定格式输出;○3通过getchar函数输入三个小写字母,通过putchar函数输出。

3算法描述流程图4.源程序:○1#include<stdio.h>main(){char c1,c2,c3;scanf("%c%c%c",&c1,&c2,&c3);printf("%c %c %c\n",c1-32,c2-32,c3-32);}○2#include<stdio.h>main(){char c1,c2,c3;c1=getchar();getchar();c2=getchar();getchar();c3=getchar();printf("%3c,%3c,%3c\n",c1-32,c2-32,c3-32);}○3#include<stdio.h>main(){char c1,c2,c3;c1=getchar();c2=getchar();c3=getchar();putchar(c1-32);putchar(c2-32);putchar(c3-32);}5测试数据:4 56789116运行结果(1)50 4 12Press any key to continue (2)50 .4 10.8Press any key to continue (3)50000 100500Press any key to continue (4)10 0Press any key to continue (5)50,4Press any key to continue (1)a bcA B CPress any key to continue6(2)a,b,c7A,B,CPress any key to continue8(3)abc9ABCPress any key to continue7出现问题及解决方法1.在编写第一个程序,运行的时候发现出现了一个错误,最后才找到是因为c的大小写问题,幸好及时改正。

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语言_实验四、函数程序设计

实验四函数一、实验目的1.掌握函数的定义、函数的说明和调用。

2.掌握函数的参数及其传递方式,函数值的正确返回。

二、实验内容1.[目的]掌握标准库函数的说明和调用方法。

[题目内容]编写一个程序,首先显示一个菜单,然后根据用户的选择,输入数据后,执行相应的操作。

[输入]用户选择和函数自变量值[输出]如下菜单:=======MENU======1.。

sin2.。

cos3.。

pow4.。

sqrt0.。

exit==================[提示]使用标准库函数、多分支选择结构。

2.[目的]掌握用户自定义函数的定义、函数的说明和调用方法。

[题目内容]编写一个用户自定义函数,该函数有一个整型参数,函数的功能是:当这个整型数的值是偶数时,函数的返回值为0,当这个整型数的值是奇数时,返回值为1 。

编写一个程序,从键盘输入任意10个整数,分别调用用户自定义函数来判断这10个整数的奇偶性。

[输入]任意10个整数[输出]这10个整数的奇偶性[提示]在主函数中使用循环结构输入10个整数。

根据子函数的返回值输出相应的判断结果信息。

3.[目的]掌握用户自定义函数的定义、函数的说明和调用方法。

[题目内容]编写一个用户自定义函数,该函数有三个整数参数,函数的功能是:求解这三个整数的最大值,函数的返回值为三个参数的最大值。

编写一个程序,从键盘输入任意5个整数,分别两次调用用户自定义函数来求出这5个整数中的最大值。

[输入]任意5个整数[输出]这5个整数的最大值[提示]先用前三个整数调用函数,求出的最大值作为参数之一,再与另两个整数一起求出最大值即为所求。

4.[目的]掌握用户自定义函数的定义、函数的说明和调用方法。

[题目内容]nA表示从m各元素中抽出n个元素的排列的个数。

它的计算公式为:m)!(!n m m A n m -=。

编写一个用户自定义函数,该函数有一个整数参数,函数的功能是:求解这个整数的阶乘,函数的返回值为这个整数的阶乘。

C语言程序设计实验报告

C语言程序设计实验报告

C语言程序设计实验报告一、实验目的本次 C 语言程序设计实验的主要目的是通过实际编写和调试 C 语言程序,加深对 C 语言语法、数据类型、控制结构、数组、指针、函数等核心概念的理解和掌握,提高编程能力和问题解决能力。

二、实验环境本次实验使用的编程环境是 Visual Studio Code,编译器为 GCC。

操作系统为 Windows 10。

三、实验内容及步骤(一)简单数据类型与运算1、定义并初始化不同类型的变量,如整型、浮点型、字符型等。

2、进行基本的算术运算、关系运算和逻辑运算,并输出结果。

(二)控制结构1、编写使用 ifelse 语句进行条件判断的程序,根据不同的条件执行不同的操作。

2、运用 for 循环和 while 循环实现特定次数的重复操作,例如计算1 到 100 的和。

(三)数组1、定义并初始化一维数组和二维数组。

2、实现数组元素的遍历和操作,如查找最大值、最小值等。

(四)指针1、理解指针的概念,定义指针变量并进行赋值。

2、通过指针访问变量和数组元素。

(五)函数1、定义和调用具有不同参数类型和返回值类型的函数。

2、理解函数的参数传递机制,包括值传递和指针传递。

四、实验过程中的问题及解决方法(一)语法错误在编写程序的过程中,经常会出现语法错误,如遗漏分号、括号不匹配等。

通过仔细检查代码,对照 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语言程序设计课程实验三实验报告

上海开放大学
闵二分校《学生实验报告》记录表
姓名: 学号: 实验日期: 2014 年 5 月19 日
实验名称:实验三函数
使用主要设备:VC++6.0
实验目的:
1、熟练掌握函数的定义和调用;
2、理解形式参与和实际参数的传递;
3、了解函数的递归调用;
实验要求:
1、根据每个实验的具体要求,填写程序或编写完整程序,将运行结果截图,并粘贴到指定位置。

2、实验独立完成。

实验安排:
1、本实验时间为4学时。

2、实验结束后,须完成实验报告作为评分依据,它应包括实验名称,实验目的、实验内容、实验结果及实验体会等内容,以电子版形式上交(包括调试源程序)
实验考核:
1、实验成绩占总成绩的20%,本次成绩占总成绩的5%。

2、实验成绩以百分制记分。

本次实验共4题,每题25分。

3、实验成绩的评分标准为:(1)编写了程序源代码,但没调试程序,得50%;(2)编写了程序源代码,并调试了程序,但结果不完全正确,得70%;(3)编写了程序源代码,并调试了程序,结果正确,得为90%;(4)编写了程序源代码,调试了程序,结果正确,并撰写体会,得95%或更高。

实验题序号 2
实验题描述:
完成求一个数组中平均值的函数,并在主函数中调用该函数。

程序文本,请补充完整
#include <stdio.h>
本次实验的体会(可选):。

c语言程序设计实验报告

c语言程序设计实验报告

c语⾔程序设计实验报告C语⾔程序设计实验报告实验⼀1.⽤scanf函数输⼊数据,a=3,b=7,x=8.2,y=123.22,c1=‘A’,c2=‘a’,⽤printf 函数进⾏输出。

2.输⼊三⾓形的三边长,求三⾓形⾯积。

3..存款利息计算,有10000元,想存5年,按以下⼏种⽅法存。

(1)⼀次存5年。

(2)先存2年期,到期将本息再存3年。

(3)先存3年期,到期后再存2年。

(4)存1年期,到期将本息再存1年,连存5次。

计算各⾃存法5年后的本息是多少?4.设半径r=1.5,圆柱⾼h=3,求圆周长,圆⾯积,圆柱表⾯积,圆柱体积。

⽤scanf 输⼊数据,输出结果,输⼊要有⽂字说明,取⼩数点后2位数字。

5.给出⼀个不多于5位的正整数,要求:(1)求出它是⼏位数?(2)分别输出每个数字?(3)按逆顺序输出。

如(123输出321)实验⼆1.输⼊两个正整数,求其最⼤公约数和最⼩公倍数。

2.⼀个数如果恰好等于它的因⼦之和,这个数就称为完数,例如6=1+2+3,编程找出1000之内的所有完数,并按下⾯格式输出其因⼦。

6its factors are1,2,33.输⼊⼀⾏字符,分别统计出其中英⽂字母、空格、数字和其他字符的个数。

4.⼀个球从100m⾼度⾃由落下,每次落地后反跳回原⾼度的⼀半,再落下,再反弹。

求它在第10次落地式,共经过多少⽶,第10次反弹多⾼。

实验三1.从键盘输⼊⼀个整数,并将其插⼊到其元素已按升序排列的数组中,要求插⼊操作完成后,数组中的元素仍按升序排列。

2.⼀篇⽂章,共有三⾏⽂字,每⾏有80个字符。

要求分别统计出其中英⽂⼤写字母、⼩写字母、数字、空格以及其他字符的个数。

3.从键盘输⼊10个整数,并求出这10个数的最⼤值及出现次数。

4.编写个⼈所得税计算器。

输⼊个税起征点和⽉收⼊,计算应交税款。

(起征点为2000元)不超过500元的部分税率5%超过500元⾄2000元的部分税率10%超过2000元⾄5000元的部分税率15%超过5000元⾄20000元的部分税率20%超过20000元⾄40000元的部分税率25%超过40000元⾄60000元的部分税率30%超过60000元⾄80000元的部分税率35%超过80000元⾄100000元的部分税率40%超过100000元的部分税率45%。

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。

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

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

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

要求:
①在主函数中输入一个整数x(直接赋值或从键盘输入);
②函数类型为空值(void),调用primeNum( )函数后,在函数中输出x是
否为素数的信息,输出格式为“x is a prime number”或”x is not a
prime 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); /* 由函数得出结论判断是否为素数*/ else
printf("%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);
else
printf("%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时
当测试数据59时
当测试数据121时
(2)实验2测试的数据1与5,5与5,6与2,6与4,20与4,37与9。

运行结果
当测试1与5时
当测试5与5时
当测试6与2时
当测试6与4时
当测试37与9时
6出现问题及解决方法
1)在判断某个数是否是素数的本实验中,我在使用循环遍历判断x是否为素数的时候循环体的内容错误地编写为:
for (i=2;i<x;i++)
{
if (x%i==0)
return 0;
else
return 1;
}
导致程序不能正确地按照设想的结果运行,在判断清循环体的执行过程后将程序正确地改为了:
for (i=2;i<x;i++)
{
if (x%i==0)
return 0;
}
2)在判断确定两个数是否是整数倍关系的本实验中,我在定义两个形参时错误地编写成了(int a ,b),经检查后改为正确格式(int a ,int b)。

3)此外,在编写程序的时候,在标点符号上还有一些细节上的疏漏,如:标点没有在英文的状态下使用,还有一条语句结束后遗漏了分号“; ”。

7实验心得
本次实验,我掌握了一些具体函数的定义和调用方法,函数形参以及返回值的使用。

在操作的过程中深刻地体会到函数调用的便捷。

通过对循环和条件选择的使用,我亲自感受并实践了程序设计的思想,同时对C程序设计也有了总体的认识。

此外,编写程序的严谨思想也令我深深地感受一丝不苟地工作的重要性。

相关文档
最新文档