C语言实验 程序结构和函数

  • 格式:doc
  • 大小:38.50 KB
  • 文档页数:4

下载文档原格式

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

实验项目6 程序结构和函数

●实验目的

1.掌握C程序中函数的定义和调用方式。理解函数声明的概念,掌握函数声明的方法。2.理解函数类型、函数参数和返回值的概念以及它们之间的关系。

3.掌握C程序中地址值参数传递和数组作函数参数传递的调用方法。

4.掌握C程序中函数嵌套调用的方法。

5.掌握程序中递归调用函数的特征和递归调用函数执行的过程。

●实验内容

1.程序填空

(1)下面程序的功能是:求出从键盘输入的三个数的最小公倍数。请填空完成程序。

#include

int main()

{

int max(int x,int y,int z);

int x0,x1,x2,x3,i=1,j;

printf("Input 3 numbers:");

scanf("%d,%d,%d",&x1,&x2,&x3);

x0=max ;

while(1)

{

j=x0*i;

if(j%x1==0&&j%x2==0&&j%x3==0)

break;

;

}

printf("%d,%d,%d,%d\n",x1,x2,x3,j);

return 0;

}

int max(int x,int y,int z)

{

if(x>y&&x>z)

return x;

else if( )

return y;

else

return z;

}

(2)下面程序的功能是:采用冒泡法对一维数组中的数据按升序进行排序。请填空完成程序。

#include

int main( )

{

void sort( );

int i,arr[]={12,60,21,45,13,55,19,28,71,32};

sort( );

for(i=0;i<10;i++)

printf("%4d",arr[i]);

printf("\n");

return 0;

}

void sort(int a[],int n )

{

int i,j,temp;

for(i=0;i

{

for(j=0;j

if(a[j] )

temp=a[j],a[j]=a[j+1],a[j+1]=temp;

}

}

2.程序改错

(1)下面程序的功能是:用随机数填充长度为N的整型数组,输入想查找的关键字key,调用函数search进行查找,并根据查找结果给出相应的提示信息。程序中标有星号行存在错误,请改正这些错误。

#include

#include

#include

#define N 20

int search(int v[],int n,int k);

int main()

{

int a[N],i,key,pos;

srand(time(NULL));

for(i=0;i

a[i]=rand()%100;

printf("请输入查找关键字key: ");

scanf("%d",&key);

pos=search(); //*****

if(pos!=-1)

printf("查找成功,找到的是元素a[%d]\n",pos);

else

printf("数组中没有被查找的关键字存在!\n");

return 0;

}

int search(int v[],n,k) //*****

{

int i;

for(i=0;i

if(v[i]==k)

return i;

return 0; //*****

}

(2)下面程序的功能是:找出从键盘上输入的3个实型数据中的最大值。程序中存在若干错误,请改正这些错误。

#include

int main()

{

void maxnumber(double,double,double);

double a,b,c,r;

printf("?a,b,c:");

scanf("%lf%lf%lf",&a,&b,&c);

r=maxnumber();

printf("最大值是:%lf\n",r);

return 0;

}

void maxnumber(double a,double b,double c)

{

double max;

max=a>b?a:b;

max=c>max?c:max;

return a,b,c;

}

3.程序设计

(1)已有C源程序文件reversenum.c,文件中存放有设计好的reversenum函数,其功能是将一个正整数颠倒。编写程序,利用已有的reversenum.c源文件,求出所有的两位的“绝对素数”。所谓“绝对素数”是指一个素数,当它的数字位置对换后仍然是素数。

//erversenum.c源程序文件

int reversenum(int n)

{

int revn=0;

while(n)

{

revn=revn*10+n%10;

n/=10;

}

return revn;

}

(2)已有C源程序文件makestring.c(存放makestring函数)和totalchar.c(存放totalchar函数),两个文件中函数的代码如下所示:

#include

#include

void makestring(char v[],int n)