教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 建筑文档 >

实验8 函数基本应用

来源:网络收集 时间:2026-08-23
导读: 实验8 函数基本应用 一、实验目的 1.掌握函数声明、定义及调用的方法。 2.掌握函数实际参数与形式参数的对应关系以及数据的“值传递”方式。 3.掌握递归的思想和递归调用的一般方法。 4.学习编写简单的递归程序。 二、实验内容 1.验证性实验 (1)下列程

实验8 函数基本应用

一、实验目的

1.掌握函数声明、定义及调用的方法。

2.掌握函数实际参数与形式参数的对应关系以及数据的“值传递”方式。 3.掌握递归的思想和递归调用的一般方法。 4.学习编写简单的递归程序。 二、实验内容 1.验证性实验 (1)下列程序的执行结果是什么? #include \void change(int a,int b) { int t; t=a;a=b;b=t;

}

void main( )

{ int x,y;

printf(\ scanf(\

change(x,y); printf(\}

思考:为什么x与y的值没有互换?

(2)下列程序的执行结果是什么? #include void exam1(int); void exam2(void); int a=0; void main(void) { int a; a=15; printf(\exam1(a);

printf(\exam2( );

printf(\}

void exam1( int a)

{ printf(\ a++;

printf(\

定义格式:类型 函数名(形式参数表) 注意:形参表每个参数单独定义 调用方法:a=函数名(形式参数表) 实际参数个数类型与形参一一对应 声明:在调用位置之前的函数可以不用声明 声明方法:类型 函数名(形式参数表); a=9 b=6 T=6 y=9 x=6 a=15 a=15 a=16 a=15 a=0 a=1 a=15 }

void exam2(void)

{ printf(\ a++;

printf(\}

2.程序填空

(1)下列程序的功能是输出100~1000之间所有既能被3整除,又能被7整除的数。 #include void main() {int k;

int sele(int n); for(k=100;k<=1000;k++) if(sele(k))

printf(\ printf(\}

int sele(int n)

{ if(n%3==0&&n%7==0 ) return (1); return 0 ; }

(2)下列程序的功能是:prime()函数用于判别一个数是否为素数,在主函数输入一个整数,输出是否素数的信息。

#include void main() {

int number;

int prime(int number);

printf(\请输入一个正整数:\\n\scanf(\if (prime(number))

printf(\是素数. \else

printf(\不是素数. \}

int prime(int num) /*此函数用于判别素数*/ { int flag= ① ,n;

for(n=2;n

if ( ③ ==0)

flag=0;

return( ④ ); }

(3)以下程序功能是:输入一个长的正整数,将其每位数分离出来,并求其和。例如,输入650123,输出为:6+5+0+1+2+3=17。(求和采用递归实现) #include int sum(long n) { unsigned long x; if(n<10)

① ;

else

x=sum(n/10)+ ② ; return ③ ;

}

void main()

{ unsigned long x;

printf(\请输入一个整数:\ scanf(\

printf(\=%d\④ ); printf(\

}

3.程序改错

(1)下列程序的功能是利用自定义函数计算一无符号整数各位数字的乘积。 #include

unsigned f(unsigned num) {unsigned k=0; ★ do

{k*=num/10; ★ num/=10;

}while(k); ★ return k; }

void main() {int x;

printf(\ scanf(\ ★ printf(\}

(2)以下程序的功能是:输入一个三位数,判断是否为“水仙花数”。函数flower()用以判断一个数是否为“水仙花数”,主函数main()中进行测试。

#include int flower(int n) { int x=0,i,j,k; i=(n);

j= (n/10/10); ★ k=(n/100);

x=i*i*i+j*j*j+k*k*k; if(x==n) return 0; else return 1; }

void main() { int n;

printf(\scanf(\ ★ if(n>999||n<100)

printf(\else

{if(flower(n)) ★

printf(\ else

printf(\ } }

4.设计性实验

(1)写一函数判断输入年份是否为闰年,并编写主函数测试。 提示:

①该函数有一个整型参数year,若year为闰年,则返回1,否则返回0。

②判断年份year是否为闰年的条件是:若year能被4整除而且不能被100整除,则是闰年;若year能被400整除也是闰年。

(2)编写函数求出任意二个正整数的最大公约数和最小公倍数。在主函数中输入这两个数,并输出它们的最大公约数和最小公倍数。

(3)编写一个函数求1+2+3+?100。要求用递归调用的方法实现,并写一个主函数输出结果。

(4)已知二阶Fibonacci数列: Fib(0)=0;若n=0 Fib(1)=1;若n=1

Fib(n)= Fib(n-1)+ Fib(n-2) 其他情况 定义递归和非递归函数求Fib(n)。

…… 此处隐藏:470字,全部文档内容请下载后查看。喜欢就下载吧 ……
实验8 函数基本应用.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/681126.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)