实验5函数编译与数据处理(答案)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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];