c语言实验5函数

合集下载

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

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

C语言程序设计实验报告5--函数福建农林大学金山学院实验报告系(教研室):专业:年级:实验课程:姓名:学号:实验室号: _计算机号:实验时间:指导教师签字:成绩:实验5:函数一、实验目的和要求1.掌握定义函数的方法2.掌握函数实参与形参的对应关系,以及“值传递”的方式3.掌握函数递归调用的方法二、实验内容和原理1. 写一个判素数的函数,在主函数输入一个整数,输出是否素数的信息。

2. 编写一个函数,将一个字符串中的元音字母复制到另一个字符串中,然后输出。

3. 用递归调用的方法写一个求n! 的函数,在主函数中输入一个整数,输出该数的阶乘。

4. 函数编写,使其按给出的表达式计算分段函数。

|X|表示X的绝对值(利用 fabs( x )函数求浮点数x的绝对值)。

0.336x+0.015x+3.541 x< 12fun(x)= 567 1 ≤ x ≤ 31.55(|10-x|+ 0.3) x > 30 例如:fun( 0.3 ) = 3.643 fun( 1.5 ) = 567.000 fun( 5.15 )= 7.9825. 编写函数,求1+3+5+7+?+99。

6. 写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。

三、实验环境1. 硬件:PC机;2. 软件:Windows操作系统、Visual C++ 6.0 。

四、算法描述及实验步骤1、用scanf函数输入,用for(i=2;i<=sqrt(n)&&flag==1;i++)判断该数是不是素数,当n到能整除i时,输出0结束,最后判断完输出相应的语句。

2、用char来输入一个空字符串,用gets获得另一个字符串,用 for语句,另i=0,j=0且s[i]从1开始,当s[i]==大小写aeiou中的任意一个,若是j++,用c[j]=s[i]复制字母,最后输出字符串。

3、先用scanf函数输入n,调用fac函数来求值,用for语句来选择条件,当n<0时输出错误,当n=0或1时,时递归终结,若fac f=fac(n-1)*n,求值最后返回结束。

c语言实验报告 函数

c语言实验报告 函数

c语言实验报告函数标题:C语言实验报告函数摘要:本实验报告主要介绍了C语言中函数的概念、定义和使用方法。

通过实验展示了如何在C语言中定义函数、调用函数以及函数的参数传递和返回值。

通过本实验的学习,读者将能够掌握C语言中函数的基本用法,为今后的编程实践奠定基础。

关键词:C语言、函数、参数传递、返回值引言:函数是C语言中的重要概念,它可以将一段代码封装成一个独立的模块,方便代码的复用和维护。

本实验将通过具体的示例来介绍C语言中函数的定义和使用方法,帮助读者更好地理解和掌握函数的概念和用法。

一、函数的定义和声明在C语言中,函数的定义包括函数名、参数列表、返回类型和函数体。

函数的声明包括函数名、参数列表和返回类型,用于告诉编译器函数的存在和类型信息。

下面是一个简单的函数定义和声明的示例:```c// 函数声明int max(int a, int b);// 函数定义int max(int a, int b) {return a > b ? a : b;}```二、函数的调用在C语言中,可以通过函数名和参数列表来调用函数。

例如,我们可以通过max函数来比较两个数的大小:```cint a = 10, b = 20;int result = max(a, b);printf("The max number is %d\n", result);```三、参数传递和返回值函数可以通过参数列表接收外部传入的数据,也可以通过return语句返回计算结果。

例如,下面的函数用于计算两个数的和:```cint add(int a, int b) {return a + b;}```四、实验结果通过本次实验,我们成功掌握了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语言函数的实验总结C语言函数的实验总结一、实验目的C语言函数是C语言编程中的一个重要概念,能够帮助程序员实现代码模块化、提高代码复用性和可读性。

通过本次实验,旨在掌握C语言函数的基本用法和调用方式,提高编程能力和逻辑思维能力。

二、实验过程本次实验主要涉及以下几个方面的知识和技能:1. 函数的定义和声明2. 函数的参数传递方式3. 函数的返回值4. 函数的递归调用在实验开始前,我们首先了解了函数的定义和声明的概念。

函数的定义是指函数体的实现,包括函数的形参、返回值和函数体的具体实现;函数的声明是指对函数的提前声明,告诉编译器该函数的存在和返回值类型。

接下来,我们根据实验要求分别编写了一些示例函数来巩固相关的知识。

在函数的参数传递方式方面,我们编写了一些传值调用、指针调用和引用调用的示例函数,以便深入理解C语言中参数的传递方式为值传递。

在函数的返回值方面,我们编写了一些返回值为基本类型和引用类型的示例函数,以便理解C语言中函数返回值的作用和类型。

在函数的递归调用方面,我们编写了一些递归求阶乘、递归求斐波那契数列的示例函数,以便掌握递归调用的原理和实现方式。

在实验过程中,我们针对每一个示例函数进行了编码,并通过编译器进行了测试和调试。

在测试过程中,我们特别注意了函数的输入参数和输出结果,确保程序的正确性和可靠性。

同时,我们还使用了一些调试技巧,如打断点、输出调试信息来帮助我们查找代码中的错误和问题。

三、实验结果通过本次实验,我们成功实现了所有示例函数,并通过了编译器的测试和调试。

我们发现C语言函数在编程中的作用非常重要,能够帮助我们实现代码的模块化和封装。

同时,通过函数的参数传递方式可以提高代码的复用性,通过函数的返回值可以获得函数的执行结果,避免了代码之间的耦合性。

另外,通过递归调用函数可以简化代码的实现和理解,但同时也需要注意递归的终止条件和递归的效率问题。

四、实验总结通过本次实验,我们总结出以下几个重要的收获和体会:1. 函数是C语言中的基本概念,是代码模块化和可读性的重要手段。

C语言实验报告函数

C语言实验报告函数

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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、程序一素数函数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,=)(xP n 1当n=1, =)(xP n x;当n>=1, =)(xP n((2n-1)x-Pn-1(x)-(n-1)Pn-2)x))/n2)代码:#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语言实验5-8答案(函数与数组)

C语言实验5-8答案(函数与数组)

任务
1.fact(j-1)*j
2.gcd(n,m%n)
m<n
3.//for(j=0;j<=n-i;j++)
//printf("");//删除这两行,因为顶格输出,不要空行了。
y==1||y==x
z=c(x-1,y-1)+c(x-1,y)
4.程序代码如下:
#include<stdio.h>
fib(int n)
#include <stdio.h>
main( )
{double fun(int m);//先调用再定义,且不是能缺省的int型,请加上函数说明。
int m;
printf("\n input m:");
scanf("%d",&m);
printf("\n t= %12.10lf \n",fun(m));
j=2
j—
i+j==2
输出为:a=13,b=14
4.i=1
x[i-1]
5.m<1000
m/10%10或m/10-x*10
a[i]=m
m<i
输出结果为:153 370 371 407
6.a
a
sum/n
x[i]<ave
任务
1.‘\0’
str1[i]-str2[i]
2.c[k]=a[i++];
c[k]=b[j++];
return yes;
}
main( )
{
int n;
scanf("%d",&n);

函数(C语言实验报告)

函数(C语言实验报告)

仲恺农业工程学院实验报告纸信息学院(院、系)专业班C语言程序设计课实验目的:(1)掌握定义函数的方法。

(2)掌握函数实参与形参的对应关系,以及“值传递”的方式。

(3)掌握函数的嵌套调用和递归调用。

(4)掌握变量作用域和存储方式的概念和方法。

(5)学习对多文件的程序进行编译和运行。

实验内容与总结:编程练习1、写出求第n个Fibonacci数的递归函数,主函数输入n,输出第n个Fibonacci数。

Fibonacci数列为1, 1, 2, 3, 5, 8, 13,…程序如下:#include <stdio.h>void main(){int fibonacci(int n);int n,f;printf("请输入n= ");scanf("%d",&n);f=fibonacci(n);printf("第n个Fibonacci数是:%d\n",f);}int fibonacci(int n){int f;if(n<=0)printf("出错了,请输入大于0的整数!");elseif(n==1||n==2)f=1;elsef=fibonacci(n-1)+fibonacci(n-2);return (f);}(1)程序编制要点:①定义函数的方法;②递归调用。

(2)该题目涉及的知识点和难点:①函数的定义与使用;②函数的嵌套调用和递归调用;③if语句的使用;④return语句的使用。

2、成绩排名次某班期末考试科目为数学(MT)、英语(EN)和物理(PH),有最多不超过30人参加考试。

考试后要求:1.输入学号、姓名、各科成绩;2.计算每个学生的总分和平均分,并输出学号,姓名,各科成绩,总分,平均分;程序如下:#include <stdio.h>#include<string.h>#define N 2#define M 3#define L 13void main(){extern void input(long num[],char name[][L],float score[][M]);extern void getsumaver(float score[][M], float sum[],float aver[]);int i,j;long num[N];char name[N][L];float score[N][M],sum[N],aver[N];input(num,name,score);getsumaver(score,sum,aver);printf("\n 学号姓名数学英语物理总分平均分\n");for(i=0;i<N;i++){printf("%5d",num[i]); /*输出一个学生的学号*/printf(" %5s",name[i]); /*输出一个学生的姓名*/for(j=0;j<M;j++)printf(" %5.2f",score[i][j]); /*输出一个学生的各门课的成绩*/ printf(" %5.2f",sum[i]); /*输出一个学生的总分*/printf(" %5.2f\n",aver[i]); /*输出一个学生的平均成绩*/ }}void input(long num[],char name[][L],float score[][M]) /*输入学生学号、姓名、成绩*/{int i,j;for(i=0;i<N;i++){printf("输入第%d位学生的学号:\n",i+1);scanf("%d",&num[i]);printf("输入姓名:\n");scanf("%s",&name[i]);printf("输入数学、英语和物理成绩:\n");for(j=0;j<M;j++)scanf("%f",&score[i][j]);}}void getsumaver(float score[][M], float sum[],float aver[]) /*计算总分和平均分*/ {int i,j;float s;for(i=0;i<N;i++){s=0;for(j=0;j<M;j++)s+=score[i][j];sum[i]=s;aver[i]=s/M;}}(1)程序编制要点:①函数实参与形参的对应关系,以及“值传递”的方式;;②对多文件的程序进行编译。

C语言在线实验第5次(第七章函数)-题目与答案

C语言在线实验第5次(第七章函数)-题目与答案

第五次实验题目-第七章函数教学目标31.一元二次方程的系数:a、b、c由主函数输入,编写函数求方程的根。

#include <stdio.h>#include <math.h>void root(double a, double b, double c){ double delta,x1,x2,m,n;if (fabs(a) <= 1e-6){if (fabs(b) <= 1e-6)puts("Not an equation");elseprintf("x=%.2lf",-c/b);return;}else{delta=b*b - 4*a*c;m = -b / (2*a);n = sqrt(fabs(delta)) / (2*a);x1 = m + n;x2 = m - n;if (fabs(delta) <= 1e-6)printf("x1=%.2lf, x2=%.2lf", x1, x1);else if (delta < 0)printf("x1=%.2lf+%.2lfi, x2=%.2lf-%.2lfi",m,n,m,n);elseprintf("x1=%.2lf, x2=%.2lf", x1, x2);}}int main( ){ double a,b,c;scanf("%lf%lf%lf",&a,&b,&c);root(a,b,c);return 0;}教学目标32.输入一串字符,统计其中英文字母的个数,编写统计英文字母个数的函数。

#include<stdio.h>int numberOfLetter(char str[]) {int i=0;int num = 0;//统计字母个数while (str[i]!=’\0’) {if ((str[i]>='A'&& str[i]<='Z')||( str[i]>='a'&& str[i]<='z')) num++;i++;}return num;}int main( ) {char str[100];int letterNum;printf("Enter a string: ");gets(str);letterNum = numberOfLetter(str);printf("Number of letters is %d.\n", letterNum);return 0;}教学目标33. 求100以内所有素数的和。

c语言程序设计5(函数)

c语言程序设计5(函数)

参数的传递
1. 函数调用时,被调函数中的形参被分配 临时的存储单元,实参的值赋给形参变量 2. 实参可以是常量、变量或表达式 3. 实参的个数、类型和顺序必须与形参一致 4. 形参与实参各占一个独立的存储空间,调 用结束后,形参单元被释放
形参值的改变不会影响实参-----值传递
例:P134 main( ) { int v1=10, v2=20; printf(“v1=%d v2=%d\n”,v1,v2); printf(“_ do swap _\n”); swap(v1,v2); printf(“v1=%d v2=%d\n”,v1,v2); } void swap(int x, int y) { int temp; v1=10 v2=20 temp=x; _ do swap _ x=y; y=temp; v1=10 v2=20 }
自定义函数的应用实例
P136 例3:输出“九 九表”。 它是一个
9行9列的二维表格,
加上一个行标题和一
个列标题,显示出来
应该是10行10列。
#include <stdio.h> void drawLine(int n,char ch); /* 连续显示n个ch字符 */ main() { int i,j; printf("\n 9.9 table\n"); /* 显示表名 */ drawLine(30, '='); /* 显示每列的标题 */ printf("\n 1 2 3 4 5 6 7 8 9"); drawLine(30, '='); for (i=1; i<=9; i++) { /* 显示每行的内容 */ printf("\n%3d", i); for (j=1; j<=9; j++) printf("%3d", i*j); if (i<9) drawLine(30, '-'); else drawLine(30, '='); } void drawLine(int n, char ch) /*连续显示n个ch字符*/ } { int i; putchar('\n'); /*换行*/ for (i=1; i<=n; i++) putchar(ch); /*连续显示n个字符ch*/ }

C语言程序设计实验五 参考答案

C语言程序设计实验五  参考答案
5-2、以下程序的功能:输出3—1000之间的素数。选择合适的内容填入空白处,并调试运行程序。
答案:
#include<stdio.h>
void main()
{
int i,j,num=0;
for(i=3;i<=1000;i++)
{
for(j=2;j<=1000;j++)
if(i%2==0)
break;
5-4从键盘输入一个整数n,计算2n+1与++n之和。要求计算两数之和用函数实现。
答案:
#include<stdio.h>
void main()
{
int a;
int sum(int n);
printf("input n:\n");
scanf("%d",&a);
sum(a);
}
int sum(int n)
if(i%2!=0)
{
printf("%5d",i);
num++;
if(num%10==0)
printf("\n");
}
}
printf("\n");
}
*************************************************************************************************************实验三*******************************************
c语言程序设计实验五参考答案实验解答实验五参考答案编程语言c语言吧c语言答案

C语言程序设计实验五:函数(5篇范例)

C语言程序设计实验五:函数(5篇范例)

C语言程序设计实验五:函数(5篇范例)第一篇:C语言程序设计实验五:函数C语言程序设计实验五:函数1、定义函数返回两个数中较大的数,在主函数中通过调用该函数求三个数中较大的数并输出,编写主函数调用该函数。

说明:(1)请大家按学号来坐,便于考勤和管理。

(2)请珍惜宝贵的实验时间!不要做与实验无关的事情,比如聊QQ、上网或打游戏。

(3)直接把C语言代码粘贴到相应的实验题目下方,上交实验报告时只交word文档。

(4)文档名称:班级+学号后2位+姓名+实验编号,例如12通1班12张山实验五.doc。

第二篇:C语言程序设计实验七:函数、数组、指针C语言程序设计实验七:函数、数组、指针1、程序运行后,用户任意输入一个字符串,求出字符串长度,然后输出字符串内容及个数。

不能使用strlen函数。

求字符串长度函数的函数原型必须如下:int MyStrLenPt(char *str)若输入:nihao123!则输出:nihao123!:9 chars2、编写一个对一维数组进行排序的程序。

要求:写两个函数,一个主函数,一个sort函数。

在主函数中完成数组的输入和输出,通过调用sort函数对数组进行排序。

sort函数的原型为:voidsort(int*p, intn);说明:(1)请大家按学号来坐,便于考勤和管理。

(2)请珍惜宝贵的实验时间!不要做与实验无关的事情,比如聊QQ、上网或打游戏。

(3)直接把C语言代码粘贴到相应的实验题目下方,上交实验报告时只交word文档。

(4)文档名称:班级+学号后2位+姓名+实验编号,例如11电1班12张山实验七.doc。

第三篇:C语言程序设计—函数—实验报告实验报告专业软件工程班级X班学号_ XXXXXXXXXXX_姓名实验日期:201X年X月X日报告退发(订正、重做)课程C程序设计实验实验名称函数一、实验目的① 熟练掌握C程序中函数的定义;② 掌握函数的调用,函数参数的传递;③ 熟练掌握函数的嵌套调用和递归调用;二、实验环境(描述实验的软件、硬件环境)① 软件环境:windows xp/win7等操作系统,Microsoft Visual C++ 6.0编译器;② 硬件环境:PC机一台三、实验内容、步骤和结果分析题目一:编写一个用来判断质数(素数)的函数。

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

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

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。

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

函数c语言实验报告

函数c语言实验报告

函数c语言实验报告函数C语言实验报告一、引言函数是C语言中的重要概念之一,它能够将一系列的代码逻辑封装成一个独立的模块,提供给其他代码进行调用,从而实现代码的复用性和可维护性。

本实验旨在通过实际的编程实践,掌握函数的定义、调用和参数传递等基本概念,进一步理解函数的作用和使用方法。

二、实验目的1. 理解函数的定义和调用的基本原理;2. 掌握函数的参数传递方式;3. 熟悉函数的返回值类型和使用方法。

三、实验过程1. 函数的定义和调用在C语言中,函数的定义包括函数的返回值类型、函数名、参数列表和函数体。

函数的调用通过函数名和实参进行,实参的值会传递给形参进行函数运算。

为了更好地理解函数的定义和调用,我们可以通过一个简单的例子进行说明。

```c#include <stdio.h>// 定义一个函数,用于计算两个整数的和int sum(int a, int b) {return a + b;}int main() {int num1 = 10, num2 = 20;int result = sum(num1, num2); // 调用sum函数,将num1和num2作为实参传递给函数printf("The sum of %d and %d is %d\n", num1, num2, result);return 0;}```在上述代码中,我们定义了一个名为sum的函数,它接受两个整数类型的参数a和b,并返回它们的和。

在main函数中,我们声明了两个整数变量num1和num2,并将它们的值分别赋为10和20。

然后,我们调用sum函数,并将num1和num2作为实参传递给函数。

函数执行完毕后,返回的结果会被赋值给result变量,并通过printf函数输出。

2. 函数的参数传递函数的参数传递方式有两种:值传递和指针传递。

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

函数c语言实验报告

函数c语言实验报告

函数c语言实验报告《函数c语言实验报告》在计算机编程中,函数是一种非常重要的概念。

它可以将一组相关的代码封装起来,使得程序更加模块化和易于维护。

在C语言中,函数也是一种非常常见的编程结构,它可以帮助我们更好地组织代码和提高代码的重用性。

在本次实验中,我们将通过几个实例来演示C语言中函数的使用方法和特点。

首先,我们将从最简单的函数开始,即不带参数和返回值的函数。

我们将创建一个名为“hello”的函数,它的作用是打印“Hello, World!”这个字符串。

通过调用这个函数,我们可以在程序中任何需要的地方打印出这个字符串,而不需要重复编写打印代码。

接下来,我们将介绍带参数但不带返回值的函数。

我们将创建一个名为“sum”的函数,它的作用是计算两个整数的和并打印结果。

通过传入不同的参数,我们可以在程序中多次调用这个函数,而不需要重复编写计算和打印的代码。

然后,我们将介绍带参数和返回值的函数。

我们将创建一个名为“max”的函数,它的作用是计算两个整数中的最大值并返回结果。

通过调用这个函数,我们可以在程序中获取两个整数的最大值,而不需要重复编写比较的代码。

最后,我们将介绍递归函数。

递归函数是一种非常有趣的函数,它可以调用自身来解决问题。

我们将创建一个名为“factorial”的函数,它的作用是计算一个整数的阶乘。

通过递归调用这个函数,我们可以在程序中获取任意整数的阶乘,而不需要使用循环来实现。

通过这些实例,我们可以更加深入地理解C语言中函数的使用方法和特点。

函数的封装和重用性可以帮助我们更好地组织代码和提高代码的可维护性。

希望本次实验可以帮助大家更好地掌握C语言中函数的使用技巧,为日后的编程工作打下坚实的基础。

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语言实验报告实验五参考答案实验五一维数值数组(参考答案)1、设计程序sy5-1.c,计算n门课程的平均分。

例如:若有5门课程的成绩是:90.5.72.80.61.5.55,则平均分是:71.80.算法分析:先求n门课的成绩总和,(累加求和),再用累和除以课程数。

参考答案:includevoid main()double score[30]。

sum=0,aver;int n,i;printf("Inputn:");scanf("%d",&n);printf("请依次输入%d门课程的成绩",n);for(i=0;i<n;i++)scanf("%lf",&score[i]);sum=sum+score[i];aver=sum/n;printf( "\nAverage scoreis: %5.2f\n"。

aver);运行结果:2、设计步伐sy5-2.c,对输入的10个整数按倒序寄存后输出成效。

算法阐发:利用“半数交流”算法,最前面的元素和末了面的元素交流,逐步向中央挨近。

可利用两个下标变量i和XXX。

参考答案:includeint main()int a[10]={1,2,3,4,5,6,7,8,9,10};int i,j,t;for( i=0,j=9.i<j。

i++,j--)//逐一向中,交换。

直到已没有元素没交换t=a[i]。

a[i]=a[j]。

a[j]=t;}// a[i]-数组前端的数,a[j]-数组后端的数printf("交流后数组元素是:");for(i=0;i<10;i++)printf("%5d",a[i]);//%5d,5透露表现宽度printf("\n");//输出完所有的数后换行return 0;运行结果:3、设计程序sy5-3.c,输入10个整数,找出其中的最大数及其所在的下标。

C语言程序设计实验5 函数

C语言程序设计实验5  函数

实验5 函数
姓名:XXX 学号:XXX实验日期:XXX
1.实验目的和要求:参见实验指导书实验八
2.实验内容和步骤:
实验内容:实验指导书中的实验八
实验步骤:
2.1.实验内容的第1题,通过本题,了解到要在单步调试时能够观察自定义的函数内部变量变化情况,单步调试如何操作:
1.添加断点将光标移动到要添加断点的行中,然后按下Ctrl+F8即可。

2..观察变量现在想要观察a,b两个变量,按下Ctrl+F7,会弹出Add watch对话框,在其中填入所需观察变量a,b即可。

3.单步执行按F7执行单步跟踪操作,也可以按Ctrl+F9键执行到下一个断点。

4.终止测试按下Ctrl+F2
提问(1),请在下面粘贴运行结果画面:
实参a是否为同一变量?不是同一变量。

提问(2),请请在下面粘贴运行结果画面:
提问(3),观察结果有何变化?答:输出数据出错了。

通过本题,可以得出什么结论?
答:extern int a,b 表示a是在其它文件中定义的一个变量,需要在这里引用。

如果在外部定义了而没有引用的话输出时内存就按原来的输出也就不是输出定义值了。

2.2 实验内容部分第2题源程序代码,请贴图:
程序运行结果画面,请贴图:
2.3 实验内容部分第3题源程序代码,请贴图:
程序运行结果画面,请贴图:
2.4 选做题,若做了,请在下面给出源程序代码贴图及运行结果贴图
2.5选做题,若做了,请在下面给出源程序代码贴图及运行结果贴图
3.实验小结
通过对函数的学习,学习到了怎么样把程序模块,让我对函数的调用和定义,有了一个更深入的了解.。

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

实验5 函数
1.实验目的和要求:参见实验指导书实验八
2.实验内容和步骤:
实验内容:实验指导书中的实验八
实验步骤:
2.1.实验内容的第1题,通过本题,了解到要在单步调试时能够观察自定义的函数内部变量变化情况,单步调试如何操作:
“组建”→“开始调试”→“Step Into”→按F10一步一步调试F11进入函数内部调试
提问(1),请在下面粘贴运行结果画面:
实参a是否为同一变量?不是
提问(2),请请在下面粘贴运行结果画面:
提问(3),观察结果有何变化?
出现乱码
通过本题,可以得出什么结论?
实参一般取全局变量,当全局变量和局部变量都存在时实参优先取局部变量,当需要取外部变量时应在主函数内定义变量时前面加extern
2.2 实验内容部分第2题源程序代码,请贴图:
#include <stdio.h>
int prime(int n)
{
int i;
for(i=2;i<n;i++)
if(n%i==0)
{return 0;break;}
if (i+1==n)return 1;
}
void main()
{
int n;
printf("请输入一个数:");
scanf("%d",&n);
if(prime(n))
printf("\n这个数是素数\n\n");
else
printf("\n这个数不是素数\n\n");
}
程序运行结果画面,请贴图:
2.3 实验内容部分第3题源程序代码,请贴图:
程序运行结果画面,请贴图:
2.4 选做题,若做了,请在下面给出源程序代码贴图及运行结果贴图
2.5选做题,若做了,请在下面给出源程序代码贴图及运行结果贴图
3.实验小结。

相关文档
最新文档