函数1.docx

上传人:b****9 文档编号:26234180 上传时间:2023-06-17 格式:DOCX 页数:11 大小:72.05KB
下载 相关 举报
函数1.docx_第1页
第1页 / 共11页
函数1.docx_第2页
第2页 / 共11页
函数1.docx_第3页
第3页 / 共11页
函数1.docx_第4页
第4页 / 共11页
函数1.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

函数1.docx

《函数1.docx》由会员分享,可在线阅读,更多相关《函数1.docx(11页珍藏版)》请在冰豆网上搜索。

函数1.docx

函数1

 

运城学院公共计算机教学部

实验报告

(2011/2012学年第一学期)

 

课程名称

C语言程序设计

实验名称

实验八函数

(1)

实验类型

验证性/设计性/综合性

课内实验学时

2

课外实验学时

1

实验时间

2011-11-1

一、实验目的和要求

1、熟练掌握应用if语句和switch语句构成的多分支选择结构程序设计。

2、两两交互算法及打擂算法程序设计。

二、实验环境(实验设备)

硬件:

微型计算机

软件:

MicrosoftVisualC++6.0

三、实验过程

训练目标1:

(30分钟)

1、阅读并运行有返回值函数的程序,分析程序的执行过程。

2、分析常量或简单变量作实参时,函数间数据通过值传递的调用方式。

3、理解标准库函数的功能并学会使用库函数。

实验题目1:

(15分钟)

C语言提供了许多标准库函数提供给用户使用。

阅读并运行下面程序,指出该程序相当于哪个库函数的功能。

#include"stdio.h"/*调用头文件的命令行*/

intsign(intn)

{if(n>0)return1;

elseif(n<0)return-1;

elsereturn0;

}

voidmain()

{intx;

printf("enterx:

");

scanf("%d",&x);

printf("%d:

%d\n",x,sign(x));

}

题目1运行结果截图:

(本程序保存为8-1.c):

 

问题1:

sign函数的功能是什么?

问题2:

可以使用条件表达式来实现sign函数的功能,函数定义如何表示?

解答:

问题一

输入正数,返回值为1;输入负数,返回值为-1;输入0,返回值为0

问题二

#include

intsign(intn)

{

}

voidmain()

{intx,n;

printf("enterx");

scanf("%d",&x);

if(x>0)n=1;

elseif(x<0)n=-1;

elsen=0;

printf("%d:

%d\n",x,n);

}

 

实验题目2:

(15分钟)

运行下面程序,输入一个整数,根据输入数据和输出数据分析程序的功能。

#include

#include

longfun(longnum)/*函数的定义*/

{

longk=1;

num=fabs(num);

do{

k*=num%10;

num/=10;

}while(num);

return(k);

}

voidmain()

{longn;

printf("\nPleaseenteranumber:

");

scanf("%ld",&n);

printf("\nTheproductofitsdigitsis%ld.",fun(n));/*函数调用*/

}

目2运行结果截图:

(本程序保存为8-2.c):

 

问题1:

程序的功能是什么?

问题2:

如果把语句k*=num%10;改为k+=num%10;那么程序的功能是什么?

解答:

问题一将一个多位数每个数位上的数相乘的积。

问题二将一个多位数每个数位上的数相加的和。

训练目标2:

(50分钟)

4、编写递推算法函数解决问题,利用通用函数实现此类问题的求解。

5、编写枚举算法函数解决问题,利用通用函数实现此类问题的求解。

6、编写求极值算法的通用函数,利用通用函数实现求极值。

7、编写求累加和算法的通用函数,利用通用函数实现求累加和。

8、编写求平均值算法的通用函数,利用通用函数实现求平均值。

实验题目3:

(15分钟)

下面函数pi的功能是:

根据以下公式,返回满足精度(小于等于0.0005)要求的π值,请将程序补充完整,使程序具有指定的功能。

=1+

+

+

+

+……

#include

#include

doublepi(doubleeps)/*求π的值*/

{doublesum,t;

intn;

for(①;t>eps;n++)/*通过累加计算π/2的值*/

{sum+=t;

t=n*t/(2*n+1);/*求累加项t*/

}

return(②);/*返回π的值*/

}

voidmain()

{doublex;

printf("\nPleaseenteraprecision:

");/*提示输入精度*/

scanf("%lf",&x);

printf("\neps=%lf,pi=%lf",x,pi(x));

}

题目3源程序代码和运行结果截图:

(本程序保存为5-3.c):

#include

#include

doublepi(doubleeps)/*求π的值*/

{doublesum,t;

intn;

for(sum=0,n=1,t=1;t>eps;n++)/*通过累加计算π/2的值*/

{sum+=t;

t=n*t/(2*n+1);/*求累加项t*/

}

return(2*sum);/*返回π的值*/

}

voidmain()

{doublex;

printf("\nPleaseenteraprecision:

");/*提示输入精度*/

scanf("%lf",&x);

printf("\neps=%lf,pi=%lf",x,pi(x));

}

 

实验题目4:

(20分钟)

编写一个函数判断一个整数是否为素数,调用该函数输出1000以内所有的素数。

题目4源程序代码和运行结果截图:

(本程序保存为8-4c):

#include

#include

intprime(intx)

{

inti;

printf("请输入一个大于1的正整数:

\n");

scanf("%d",&x);

for(i=2;i<=sqrt(x);i++)

if(x%i==0)break;

if(i>sqrt(x))printf("%d是素数。

\n",x);

elseprintf("%d不是素数。

\n",x);

}

voidmain()

{

intx,i,n,f;

prime(x);

printf("1000以内的素数为:

\n");

for(n=2;n<1000;n++)

{

f=1;

for(i=2;i<=sqrt(n)&&f;i++)

if(n%i==0)f=0;

if(f)

printf("%5d",n);

}

}

 

问题1:

程序中判断某数是否为素数时,用的是标记变量法还是循环变量终止法?

问题2:

采用另一种方法如何实现?

解答:

问题一

标记变量法

问题二#include

#include

voidsushu()

{

intk,n,i=0;

for(n=2;n<1000;n++)

{

for(k=2;k<=sqrt(n);k++)

if(n%k==0)break;

if(n%k!

=0){i++;printf("%5d",n);}

}

printf("\n\n1000之内有%d个素数\n",i);

}

voidmain()

{

sushu();

}

 

实验题目5:

(15分钟)

在统计学生的学习成绩时,我们经常需要统计某课程的最高分、最低分、平均值,各分数段的百分比,及格率等数据。

编写一个函数实现求若干个学生成绩的最高分、最低分、平均值的功能。

在main函数中调用该函数,实现统计功能。

(课外完成,要求学生实验课后两天内上交)

题目5源程序代码和运行结果截图:

(本程序保存为8-5.c):

#include

floatmax,min,ave;

floatmark()

{intx,i=2;

floatsum=0,score;

printf("请输入学生人数:

\n");

scanf("%d",&x);

printf("请输入第1个学生成绩:

\n");

scanf("%f",&score);

max=score;

min=score;

while(i<=x)

{printf("请输入第%d个学生成绩:

\n",i);

scanf("%f",&score);

if(score>max)max=score;

if(score

sum=sum+score;

i=i+1;

}

ave=sum/x;

printf("这%d个学生的最大值为:

%f\n",x,max);

printf("这%d个学生的最小值为:

%f\n",x,min);

printf("这%d个学生的平均值为:

%f\n",x,ave);

}

intmain(void)

{

mark();

}

 

四、实验小结(包括问题和解决方法、心得体会、意见与建议等)

应该多灵活运用各种方法对一种编程的多解,多理解各变量的含义,

 

批阅人

李妮

日期

2011.11.7

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1