C语言程序设计—函数—实验报告.docx

合集下载

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语言实验七函数实验报告一、实验目的1、掌握函数的定义和调用方法。

2、理解函数参数的传递方式。

3、学会使用函数实现程序的模块化设计。

二、实验环境1、操作系统:Windows 102、开发工具:Visual Studio 2019三、实验内容本次实验主要涉及以下几个方面的内容:1、编写简单的函数实现特定功能,如计算两个数的和、差、积、商等。

2、理解函数参数的传递方式,包括值传递和引用传递,并通过实例进行验证。

3、利用函数实现程序的模块化设计,将复杂的问题分解为多个相对简单的函数,提高程序的可读性和可维护性。

四、实验步骤及结果(一)函数的定义和调用1、首先,定义了一个计算两个整数之和的函数`int add(int a, intb)`,函数内部通过返回`a + b`的值来实现求和功能。

```cint add(int a, int b) {return a + b;}```2、在`main`函数中调用该函数,并输出结果。

```cint main(){int num1 = 5, num2 = 3;int sum = add(num1, num2);printf("两数之和为:%d\n", sum);return 0;}```运行结果:两数之和为:8(二)函数参数的传递方式值传递1、定义一个函数`void swap_value(int a, int b)`,尝试在函数内部交换两个参数的值。

```cvoid swap_value(int a, int b) {int temp = a;a = b;b = temp;}```2、在`main`函数中调用该函数,并输出交换前后参数的值。

```cint main(){int num1 = 5, num2 = 3;printf("交换前:num1 =%d, num2 =%d\n", num1, num2);swap_value(num1, num2);printf("交换后:num1 =%d, num2 =%d\n", num1, num2);return 0;}```运行结果:交换前:num1 = 5, num2 = 3交换后:num1 = 5, num2 = 3可以看到,值传递方式下,函数内部对参数的修改不会影响到函数外部的实参。

C语言实验报告函数1

C语言实验报告函数1
}
return s;
}_
题目6:#include<stdio.h>
#include <string.h>
void chang(char *);
int main()
{
char a[50];
printf("enter char:");
scanf("%s",a);
printf("no change char:");
printf("%s\n",a);
chang(a);
retura[])
{
char b[50],l=0;
int i;
l=strlen(a);
for(i=0;i<l;i++)
b[i]=a[l-i-1];
b[i]='\0';
printf("chage char:");
六、教师评语
签名:
日期:
成绩
附源程序清单:
题目2:
#include<stdio.h>
#include <math.h>
double funp(double c);
main()
{
double pi;
pi=sqrt(funp(0));
printf("pi=%f\n",pi);
return 0;
}
double funp(double x)
题目5:以下程序的功能是计算s= ,补足所缺语句。
#include “stdio.h”
long fun(int n)
{ int I;

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

厦门理工学院 C语言报告实验6_函数

} } 2. #include<stdio.h> #define PI 3.14 void main() { float perimeter(float a); float area(float a); float surface(float b,float h); float volume(float b,float h); float r,hh; printf("请输入半径 r 和高 h:"); scanf("%f%f",&r,&hh); printf(" 圆 周 长 : %-10.2f\n 圆 面 积 : %-10.2f\n 圆 柱 表 面 积 : %-10.2f\n 圆 柱 体 积:%-10.2f\n",perimeter(r),area(r),surface(r,hh),volume(r,hh)); } float perimeter(float a) { float p; p=2*a*PI; return p; } float area(float a) { float ar; ar=a*a*PI; return ar; } float surface(float b,float h) { float area(float a); float perimeter(float a); float s; s=area(b)*2+h*perimeter(b); return s; } float volume(float b,float h) { float area(float a); float v; v=h*area(b); return v; }
m=m*I;
int k,n; scanf("%d",&n); m=0; for(k=0;k<=n;k++) m=m+fun(k); printf("%ld\n",m); } 6. 7.

c语言函数实习报告

c语言函数实习报告

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

实验内容(1)编辑,编译,运行实验指导中的程序,并分析输出结果(2)编写一个函数primeNum(intx),功能是判别一个数是否是素数。

(3)编写函数mulNum(inta,intb),功能是判定a是否是b的整数倍实验1方法一:源程序:#include#includeintputeNum(intx) {intsum,a,b,c,d,e; sum=0;x=abs(x);a=x/10000;b=(x%10000)/1000; c=(x%1000)/100; d=(x%100)/10;e=(x%10)/1;sum=a+b+c+d+e;returnsum;}main(){inta,b;printf("Pleaseinputaninteger:");scanf("%d",&a);b=puteNum(a);printf("thesumofalldigitsis%d\n",b); }输入一个整数123运行结果如图输入整数98341验证运行结果如图方法二:#include#includeintputeNum(intx) {intsum,i,t;sum=0;x=abs(x);for(i=4;i>=0;i--) {t=pow(10,i);if(x>=t){sum=sum+x/t;x=x-(x/t)*t;}}returnsum;}main(){inta,b;printf("Pleaseinputaninteger:");scanf("%d",&a);b=puteNum(a);printf("Thesumofalldigitsis%d\n:",b);} 输入整数456运行结果如图输入整数98341验证运行结果如图实验2:源程序:#includevoidmove(chargeton,charputon){printf("%c->%c\n",geton,puton);}voidHanoi(intn,charone,chartwo,charthree){ if(n==1)move(one,three);else{Hanoi(n-1,one,three,two);move(one,three);Hanoi(n-1,two,one,three);}}voidmain(){intm;printf("Inputthenumberofdiskes:");scanf("%d",&m);printf("Thestepsofmoving%ddiskes:\n",m);Hanoi(m,'A','B','C' );}输入3运行结果如下:输入4运行结果如下:实验2:源程序:#includeinti,a,x;intprimeNum(intx){for(i=2;i {a=x%i;if(a==0)return0;}return1;}main(){printf("Pleaseinputx!\n");scanf("%d",&x);if(x printf("wronginput!\n"); else{a=primeNum(x);if(a==0)printf("%disnotaprimenumber!\n",x);else printf("%disaprimenumber!\n",x);}}输入数据0运行结果如下:输入数据1运行结果如下:输入数据2运行结果如下:输入数据3运行结果如下:输入数据9运行结果如下:输入数据13运行结果如下:输入数据59运行结果如下:输入数据121运行结果如下:实验3:源程序:#includeintmulNum(inta,intb){inti,c;c=a%b;if(c>0)i=0;elsei=1;returni;}main(){inta,b,s;printf("pleaseinputaandb:\n");scanf("%d%d",&a,&b);s=mulNum( a,b);if(s==1)printf("%disamultipleof%d\n",a,b);elseprintf("%disnotamultipleof%d\n",a,b);}输入数据1和5运行结果如下:输入数据5和5运行结果如下:输入数据6和2运行结果如下:输入数据6和4运行结果如下:输入数据20和4运行结果如下:输入数据37和9运行结果如下:出现的问题及解决方法:编译过程中常出现因错漏而使语句不规范的现象。

【优质文档】C语言实验报告《函数》-实用word文档 (1页)

【优质文档】C语言实验报告《函数》-实用word文档 (1页)

本文部分内容来自网络,本司不为其真实性负责,如有异议请及时联系,本司将予以删除== 本文为word格式,简单修改即可使用,推荐下载! ==C语言实验报告《函数》学号:__________ 姓名:__________ 班级:__________ 日期:__________指导教师:__________ 成绩:__________实验四函数一、实验目的1、掌握函数定义、调用和声明的方法2、掌握实参和形参之间的传递方式3、函数的嵌套调用二、实验内容1、写一个函数,将两个字符串连接。

(习题8.6)2、编写一个函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其他字符的个数,在主函数中输入字符串以及输出上述的结果。

(习题8.9)3、请将实验三中的实验内容三改正后,再改写成函数形式(排序部分)。

物理实验报告·化学实验报告·生物实验报告·实验报告格式·实验报告模板三、实验步骤与过程四、程序调试记录以下文字仅用于测试排版效果, 请使用时删除!“山不在高,有仙则灵。

”晋江的万石山,因有摩尼光佛而香客、游人接踵而至。

你若来过晋江草庵,或许会知道摩尼光佛就趺坐在这古寺中。

它一眼望去,小小的庵门亮起一个小世界,那两株为陪伴它而等候数百年的圆柏,于沧桑中潜生奇崛、苍劲的虬枝,照焕岁月的光芒。

春冬之时,等风来,等小雨飘洒,一股梅花的香迎了过来,拂过行人的肩,贴着它,泛出温润的笑意和光,让人也心生端庄与慈祥。

还有那古井、亭子、石径、山石、果树等交叉环绕,似乎只有赞叹才能应景了。

设若携一身惶灼而来,在这幽僻之处清凉,沉潜时光,再轻松而去,应是畅然。

而对于一个“身在福中不知福”的人,如我,大抵因可便宜观赏而更多感觉到了寡淡、不稀奇。

诚然,草庵仍是我时常光顾的所在。

清明节的那个周末,为了陪儿子完成一篇登山日记,我们又去了草庵。

依然先是在庵前的空地上停留、四处张望,继而复入寺中瞻仰摩尼光佛的尊座,读读石柱上的对联,做若有引动之状。

函数(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)程序编制要点:①函数实参与形参的对应关系,以及“值传递”的方式;;②对多文件的程序进行编译。

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

题目三 :编写一个求阶乘的函数,接着调用该函数实现组合的求解
要求: ① 提示用户输入 n 和 m 的数值;
: ② 输出的 C 结果
#include<stdio.h> /*======二阶乘函数=======*/ int fac(int n) {
int f; if(n<0)
printf(nn<O,data error!11); else if(n==0lln==l)
/*--------- 判断威数丄素数、的曲弍 ---------------- * /
l.nt main ()
prmr:(
输入一个检金来丁…
for (mt num® x tcmp;num> ;)
歪敷(繁数〉・ 当绘入鲨
ቤተ መጻሕፍቲ ባይዱ
:( scant(M- i".,num);
nter a numh );
if(nui<=) b“ak;
{ if(n%i==0) return 0; else continue;
OQSXWindom AmiMUTF 8 IN、
*include<stdio.h> •lncludecmath・h>
—寸!|斷质致工素数 L 的函数「 judgePrine(int n) for (irr i= ; K=sqrt (n);i”)〃一个数 ntfljg 基合数■ 3B 么它的 fl?衣的 B9 孑不超过 n 的并"方
if(n%i==0) return 0;
else continue; } return 1; } /*====判断质数(素数)的函数=======*/ int main() { printH/'Xn 提示:输入一个数字来判断是否是质数(素数),当输入数值 v=l 时,停止输入和判断。\n\ii"); for(int num=24emp;num>l;) {
if (nti—) return ; continue;
•include<stdio.h>
} return 1 ;//tr ue-> 1 ,false->0 } /†=======验证哥德巴赫猜想的函数(调用 judgePrime)=======*/ int proveGoldbach(int m) { if(m<6llm%2!=0)
printf「\n 提示:输入一个偶数来验证哥德巴赫猜想,当输入数值<6 时,停止输入和判断。\ii\nM); for(int num=6;num>=6;)
{ int temp; printf'C'Please enter a number:‡); scanf(,,%d,,,&num); temp=proveGoldbach(num); if(temp==())//当输入小于 6 或者不是偶数时结束 return 0; printf(*'================================================================================n); }
†include<math•h> /*——判翫质亦 4 奏数〉的函數=—=•/
r)t judgePrime ( nt n)
( for (int
{
;i<»sqrt (n) ;i++) 〃一个 Itnto 鼻 jfc 合那么它的质有的国子不趟过 n 的开方
if) return ; else continue;
19 void main()
20
21
xnt mfn;
22
int res;
23
严\nlft 云,这事求塑合求 fO 公或的屬 ltt・绘入 BTbONft
24 loopsprintf (NPleaae enter two nund>er:');
25 26 27 28
dcanf(M *iid"94m,€n); if (m>n) 〃判虹上枉丿二小林至型 SiA
4 止愉入 fOjMVi
temp®judgeprime(num); if (temp=) prin:ot AMBDfiX
else prlntf (M --丨 < • r- : •
!\nH.num); -i;!x - '*rnum);
28
29
return ;
30
CwucccMt
③ 当输入数据<6 或者不是偶数时,停止输入和验证。
}
return ;//t •ue 一>1, false—
)
IJ
验证哥德巴赫病想的函数(调用 judgePrime)
:nt proveGoldbach( nt m)
if(m< ||m% !-)
return ;//判斷是否大于等于 6 或者不是偶数
for (int 严;j<(m/ ) ; jx)
(
if (judgeprime (j)= & & judge Prime (m ・j)= )//判断用数足 {
实验报告
专业 软 件工程 班级 X 班 学号 XXXXXXXXXXX— 姓名 _________________________________
实验日期:201X 年 X 月 X 日
报告退发(订正、重做) _______________________
课程 ________ C 程序设计实验 _________ 实验名称 ____________ 函 ___________数 ___________
int tempMax,tempMin; if(arry[0][0]>arry[()][l])// 赋初始值
{ tempMax=arry[()][0]; tempMin=arry[O][l];
}
else {
tempMax=arry[O][l]; tempMin=arry[0][()];
}
for(int i=0;i<ROW;i++)//判断大小,分别赋值
for(int j=0;j<COLUMN;j++)
if(arryliJ|jJ>tempMax) {
tempMax=arry[i][j];
1
if(arry[i][j]<tempMin) {
tempMin=arry[i][j]; }
1
} printf(n\tMax is %d\n\tMin is %d\n,\tempMax5tempMin); } //主函数 int main() { int matlROVVUCOLUMNJ; printf("Please enter a %d X %d matrix:\nn,R()VV,COLUMN); for(int i=0;i<ROVV;i++)//输入矩阵
33
scanf(H :” r &num);
34
temper)roveGo 1 dbach (num);
35
if (temp— )//当输入小于 6 或者不是偶贾 彳
36
37
P丄
38
return ;
39
40
CMXMCCMC
length; KW lino; 40
Ln;29 3;初 Sd;0|0
Oc$\Wtf)dcrw> ANMasUn 8 介 ®
题目四 编写一个求矩阵中最大元素以及最小元素的函数 selectMaxAndMin(),在 main 函数中调用 该函数 要求: 最大值和最小值的输出操作,可以放在 selec(MaxAnd\1in()函数中
# include<stdio.h> #define ROW 4〃矩阵的行 #define COLUMN 4〃矩阵的列 /*=======4 矩阵中选择最大最小数的函数=======*/ void selectMaxAndMin(int arry[ROVV]fCOLUMNl)//ffl 指针更方便 {
—、实验目的
① 熟练掌握 C 程序中函数的定义; ② 掌握函数的调用,函数参数的传递; ③ 熟练掌握函数的嵌套调用和递归调用;
二、 实验环境(描述实验的软件、硬件环境)
① 软件环境:windows xp/win7 等操作系统,Microsoft Visual C++ 6.0 编译器; ② 换件环境:PC 机一台
#include<stdio.h>
# include<math.h> /*=======判断质数(素数)的函数=======*/
length:907 lirmilO
in:6 Col;35 $c<:0|0
int judgePrime(int n)
{ for(int i=2;iv=sqi*t(n);i++)〃一个数 n 如果是合数,那么它的所有的因子不超过 n 的开方
三、 实验内容、步骤和结果分析
题目一 :编写一个用来判断质数(素数)的函数。
要求:
(1) 在 main 函数中调用该函数对输入的数值进行判断,并输出判断结果; (2) 当输入数值<7 时,停止输入和判断。 # include<stdio.h> #include<math.h> /*=======判断质数(素数)的函数=======*/ int judgePrime(int n) { for(int i=2;i<=sqrt(n);i 卄)〃一个数 n 如果是合数,那么它的所有的因子不超过 n 的开方 {
printf (M\t d : > A\t
i
}
int main()
相关文档
最新文档