实验5函数编译与数据处理(答案)

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

实验五函数与编译预处理

实验课程名:高级语言程序设计5

专业班级:学号:姓名:

实验时间:2016年5月11日实验地点:K4 指导教师:

一、实验目的及要求

1.掌握函数定义的方法;

2.掌握函数实参与形参的对应关系以及“值传递”的方式;

3.掌握函数的嵌调用和递归调用的方法;

4.掌握全局变量和局部变量动态变量、静态变量的概念和使用方法。

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

二、实验内容

(一)(1)程序代码:#include

void main()

{ void fun(int i, int j, int k);

int x,y,z;

x=y=z=6;

fun(x,y,z);

printf("%x=%d;y=%d;z=%d\n",x,y,z);

}

void fun(int i, int j, int k)

{ int t;

t=(i+j+k)*2;

printf("t=%d\n",t);

}

(2)程序运行结果:

(3)程序分析:f7是持行调试f8是选择调试的语句

(二)实验任务2

(1)程序代码:#include

void main()

{

int x=10,y=20;

void swap (int ,int);

printf("(1)in main :x=%d,y=%d\n",x,y);

swap(x,y);

printf("(4)in main :x=%d,y=%d\n",x,y);

}

void swap (int m,int n)

{

int temp;

printf("(2)in main :m=%d,n=%d\n",m,n);

temp=m;m=n;n=temp;

printf("(3)in main :m=%d,n=%d\n",m,n);

}

(2)程序运行结果:

(3)程序分析:将用户自定义函数swap()中的形式参数m和n对应改成x和y后,运行结果不会发生改变。实参和形参在内存中占有不同的存储单元,实参无法得到形参的值。

(三)实验任务3

(1)程序代码:#include

#include

void main()

{ int m;

void prime(int n); /* 申明求素数函数 */

printf("Please input a data m=:");

scanf("%d",&m);

prime(m); /* 调用求素数函数 */

}

void prime(int n)

{ int i,k;

k=sqrt(n);

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

if (n%i==0) break;

if(i>=k+1)

printf("This is a prime number\n");

else printf("This isn't a prime number\n");

}

(2)程序运行结果:

(3)程序分析:用户自定义一个求素数的prime函数,然后运行时调用该函数。

(四)实验任务4

(1)程序代码:#include

void main( )

{int i;

int s[10], max; /* Findmax()函数的申明 */ int Findmax( int x[ ], int n );

printf("Input 10 number : \n"); /* 输入10个数据到s数组中 */ for(i=0;i<10;i++)

scanf("%d",&s[i]); /* 调用Findmax函数 */ max=Findmax(s,10);

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

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

printf("\n");

printf("the max is %d \n",max);

}

int Findmax( int x[ ], int n )

{ int max,i;

max=x[0];

for ( i=1; i

if(max

max=x[i];

return max;

}

(2)程序运行结果:

(3)程序分析:先输入10个数,再用用户自定义的函数fingmax超出最大值。

(五)实验任务5

(1)程序代码:#include

void main()

{

void sort( int x[],int n);

int i,k;

float s[100],j ;

printf(" Input number : \n");

for (i=0; scanf("%f",&j); i++)

s[i]=j;

sort(s,i);

for (k=0; k

printf( "%f ", s[k]);

printf("\n");

}

void sort( int x[], int n )

{ int i, j, temp,min;

for ( i=0; i

{ min=i;

for(j=i+1;j

if ( x[j] < x[min])

min=j;

if(min!=i)

{ temp=x[min];

相关文档
最新文档