c语言函数实习报告

来源:文书网 3.18W

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

c语言函数实习报告

实验目的

(1)掌握函数的定义方法,调用方法,参数说明以及返回值;

(2)掌握实参与形参的对应关系,一集参数之间的'“值传递”的方式;

(3)掌握函数嵌套调用及递归调用的设计方法;

(4)在编写过程中加深理解函数调用的程序设计思想。

实验内容

(1)编辑,编译,运行实验指导中的程序,并分析输出结果

(2)编写一个函数primeNum(int x),功能是判别一个数是否是素数。

(3)编写函数mulNum(int a,int b),功能是判定a是否是b的整数倍

实验1方法一:

源程序:

#include<stdio.h>

#include<math.h>

int computeNum(int x)

{

int sum ,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;

return sum;

}

main()

{

int a,b;

printf("Please input an integer:");

scanf("%d",&a);

b=computeNum(a);

printf("the sum of all digits is %dn",b);

}

输入一个整数123 运行结果如图

输入整数98341验证 运行结果如图

方法二:

#include<stdio.h>

#include<math.h>

int computeNum(int x)

{

int sum,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;

}

}

return sum;

}

main()

{

int a,b;

printf("Please input an integer:");

scanf("%d",&a);

b=computeNum(a);

printf("The sum of all digits is %dn:",b); }

输入整数456运行结果如图

输入整数98341验证运行结果如图

实验2:

源程序:

#include<stdio.h>

void move(char geton ,char puton)

{

printf("%c->%cn",geton,puton);

}

void Hanoi(int n,char one,char two,char three) {

if (n==1)

move(one,three);

else

{

Hanoi(n-1,one,three,two);

move(one,three);

Hanoi(n-1,two,one,three);

}

}

void main()

{

int m ;

printf("Input the number of diskes:"); scanf("%d",&m);

printf("The steps of moving %d diskes:n",m); Hanoi(m,'A','B','C');

}

输入3运行结果如下:

输入4运行结果如下:

实验2:

源程序:

#include<stdio.h>

int i,a,x;

int primeNum(int x)

{

for(i=2;i<x;i++)

{

a=x%i;

if(a==0)

return 0;

}

return 1;

}

main()

{

printf("Please input x!n");

scanf("%d",&x);

if(x<2)

printf("wrong in put!n");

else

{

a=primeNum(x);

if(a==0)

printf("%d is not a prime number!n",x); else

printf("%d is a prime number!n",x);

}

}

输入数据0运行结果如下:

输入数据1运行结果如下:

输入数据2运行结果如下:

输入数据3运行结果如下:

输入数据9运行结果如下:

输入数据13运行结果如下:

输入数据59运行结果如下:

输入数据121运行结果如下:

实验3: 源程序:

#include<stdio.h>

int mulNum(int a,int b) {

int i,c; c=a%b; if(c>0)

i=0; else i=1; return i; }

main() {

int a,b,s;

printf("please input a and b:n"); scanf("%d %d",&a,&b); s=mulNum(a,b); if(s==1)

printf("%d is a multiple of %dn",a,b); else

printf("%d is not a multiple of %dn",a,b); }

输入数据1和5运行结果如下:

输入数据5和5运行结果如下:

输入数据6和2运行结果如下:

输入数据6和4运行结果如下:

输入数据20和4运行结果如下:

输入数据37和9运行结果如下:

出现的问题及解决方法:

编译过程中常出现因错漏而使语句不规范的现象。解决方法:更加认真以及注意检查。

实验心得:

通过本次试验我掌握了函数的定义,调用方法,参数的说明以及返回值,函数递归调用的设计方法等,逐步理解了函数调用的程序设计思想,学习过程常会遇到问题,因此需要认真理解,多作练习。

热门标签