- 1、本文档共13页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验06函数、编译预处理11实验06函数、编译预处理11
实验6 函数、编译预处理
实验目的:
1.掌握函数的定义、函数的说明和调用方法;
2.掌握函数实参与形参的对应关系以及“值传递”的方式和函数值的正确返回;
3.掌握函数的嵌套调用和递归调用的方法;
4.掌握数组做函数参数的用法;
5.掌握全局变量、局部变量、动态变量、静态变量的概念和使用方法;
6.掌握宏定义、文件包含处理和条件编译的方法;
7.学习对多文件程序的编译和运行。
实验内容:
1.程序阅读理解训练。
1) 输入并运行下面的程序,分析输出的结果。
#include stdio.h
void try(int,int,int);
void main( )
{
int x=2,y=3,z=4;
printf((1) x=%d y=%d z=%d\n,x,y,z);
try(x,y,z);
printf((4) x=%d y=%d z=%d\n,x,y,z);
}
void try(int x,int y,int z)
{
printf((2) x=%d y=%d z=%d\n,x,y,z);
z=x+y;
x=x*x;
y=y*y;
printf((3) x=%d y=%d z=%d\n,x,y,z);
}
该程序中定义了一个try函数,最后按此规律输出: z=x+y;x=x*x;y=y*y;
运行结果如下:
2) 输入并运行下面的程序,分析输出的结果。
#include stdio.h
void swap(int,int);
void main( )
{
int x=10,y=20;
printf((1) x=%d y=%d\n,x,y);
swap(x,y);
printf((4) x=%d y=%d\n,x,y);
}
void swap(int a,int b)
{
int t;
printf((2) a=%d b=%d\n,a,b);
t=a;
a=b;
b=t;
printf((3) a=%d b=%d\n,a,b);
}
定义swap函数来交换x,y的值,并显示每一步每个变量的变化。运行结果如下:
3) 输入并运行下面的程序,分析输出的结果。
#include stdio.h
int a=3,b=5,c;
void f(int b)
{
c=a+b;
printf(%d %d %d\n,a,b,c);
}
void main()
{
int a=8;
f(3);
printf(%d %d %d\n,a,b,c);
}
定义一个函数f,并运用了局部变量与全局变量,结果如下:
4) 输入并运行下面的程序,分析输出的结果。
#include stdio.h
int f1(int n)
{
static int f=1;
f=f*n;
return(f);
}
void main()
{
int i;
for(i=1;i=4;i++)
printf(%5d,f1(i));
printf(\n);
}
定义阶乘函数f,并显示1—4的阶乘
5) 输入并运行下面的程序,说明程序及其ispring函数的功能。运行程序时,分别输入数据:17、34、2,1、0,检查结果是否正确,如果结果不正确,请修改。(熟练掌握该程序)
#include math.h
int isprime(int);
void main( )
{
int x;
printf(Enter a integer number:);
scanf(%d,x);
if(isprime(x))
printf(%d is prime.\n,x);
else
printf(%d is not prime.\n,x);
}
int isprime(int a)
{
int i;
for(i=2;i=sqrt((double)a);i++)
if(a%i==0)
return 0;
return 1;
}
该函数是检验一个数是不是素数的函数,运行如下:
6) 输入并运行下面的程序,说明函数fun的功能。
#include stdio.h
int fun(int num)
{
int k=1;
do
{
k*=num%10;
num/=10;
}
while(num);
return k;
}
void main()
{
int n=26;
printf(%d\n,fun(n));
}
思考:如果将函数fun中的变量k初始化为0,并将语句“k*=num%10;”改为“k+=num%10;”,函数fun的功能变为什么?
7) 输入并运行下面的程序,说明函数fun的功能
文档评论(0)