湖北理工学院c语言实验报告实验五[精选]
实验五 函数与编译预处理
实验课程名:高级语言 程序设计
专业班级: 软件工程 学号: 姓名: 高敏
实验时间: 11.25-12.2 实验地点: K4-208 指导教师: 刘天印
一、实验目的和要求
掌握函数定义的方法;
掌握函数实参与形参的对应关系以及“值传递”的方式;
掌握函数的嵌调用和递归调用的方法;
掌握全局变量和局部变量动态变量、静态变量的概念和使用方法。
学习对多文件程序的编译和运行。二、实验内容
阅读下面程序,通过调试该程序,熟悉函数的调用方法及单步跟踪键F7和F8的不同。
#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);
}
解答:
(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是选择调试的语句
阅读下面程序,注意在调试时F11和F10的区别,还要注意函数调用过程中形参、实参的关系。
#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);
}
解答:
(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)运行结果分析:
下面程序是实现求素数的,请填空完成该程序,并上机运行测试。
#include
#include
void main()
{ int m;
; /* 申明求素数函数 */
printf("Please input a data m=:");
scanf("%d",&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");
else printf("This isn’t a prime number");
}
解答:
(1)源代码:
#include
#include
void main()
{ int m;
void prime(int n); /* 申