《C语言程序设计》C函数定义和使用

更新时间:2024-01-13 06:06:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《C

语言程序设计》实验报告

实验名称:函数定义和使用

系 别: 计算机系 专业:计算机科学与技术 班级:五班

姓 名: 学号: 实验日期: 教师审批签字:

实验5 C函数定义和使用

⒈ 实验目的

⑴ 学习C语言中函数的定义和调用方法。 ⑵ 掌握通过参数在函数间传递数据的方法。

⑶ 熟悉TC集成环境对包含函数调用的程序的调试方法。

⒉ 实验内容或实验题目

A:修改调试题目:

题目⑴:调试下列程序,使之具有如下功能:fun函数是一个判断整数是否为素数的函

数,使用该函数求1000以内的素数平均值。写出调试过程。 #include “stdio.h” void main()

{ int a=0,k; /* a保存素数之和 */

float av; /* av保存1000以内素数的平均值 */ for (k=2;k<=1000;k++)

if (fun(k)) /* 判断k是否为素数 */ a+=k; av=a/1000;

printf(\; }

fun(int n) /* 判断输入的整数是否为素数 */ { int i,y=0;

for(i=2;i

题目⑵:调试以下程序并查看运行结果:

#include “stdio.h” void main()

{ int a=1,b=2,c; c=max(a,b);

printf(\is %d\\n\

}

max(int x,int y) //请回答:函数功能是什么? { int x; z=(x>y)?x:y; return(z); }

题目⑵:调试以下程序并查看运行结果:

int a=5;int b=7; #include “stdio.h” void main()

{ int a=4,b=5,c; c=plus(a,b);

printf(\ }

int plus(int x,int y) 请回答:函数功能是什么? { int z; z=x+y; return(x); }

B、编程题目:

要求:每道题目分别书写程序,试运行(如何输入,结果如何)。 题目⑴:编写函数求x的n次方的值(提示:有一个参数的函数)

题目⑵:编写一个求水仙花数的函数,求3位正整数的全部水仙花数中的次大值。所

谓水仙花数是指三位整数的各位上的数字的立方和等于该整数本身。例如:153就是一个水仙花数:153 = 13 + 53 + 33

⒊ 算法说明

(用文字或流程图说明。)

开始 a=0,b=0 k=2 N k<=1000?Y N fun(k)? Y a+=k,b++ k++ av=(float)a/b; 输出av 结束 fun(int n) i=2 N i

开始 a=1,b=2 c=max(a,b) 输出c 结束 开始 a=4,b=5 c=plus(a,b) 输出c 结束 定义整形x,y,z max(x,y) N x>y? Y z=x z=y z plus(int x,int y) z=x+y 输出z

result=1,i=1 N i<=n Y result=result*x result i++ power(float x,int n); 开始 输入x,n a=power(x,n) 输出a 结束

开始 d=0 n=999 n>=100 Y n-- NarcissisticNumber(n)!=0 NarcissisticNumber (int n) 定义整形a,b,c,x d++ d=2 a=n/100; b=n0/10; c=n; x=a*a*a+b*b*b+c*c*c e=n 次大值为e N n=x 结束 return 0 return n Y ⒋ 程序清单

A程序1:

#include \fun(int n); void main()

{ int a=0,k,b=0; /* a保存素数之和 */

float av; /* av保存1000以内素数的平均值 */ for (k=2;k<=1000;k++)

if (fun(k)) /* 判断k是否为素数 */ {

a+=k; b++; }

av=(float)a/b;

printf(\}

fun(int n) /* 判断输入的整数是否为素数 */ { int i,y;

for(i=2;i

A程序2:

#include \max(int x,int y); void main() { int a=1,b=2,c;

c=max(a,b);

printf(\ }

max(int x,int y)

{ int z;

z=(x>y)? x:y; return(z); }

A程序3:

#include \void main() { int a=4,b=5,c; c=plus(a,b);

printf(\ }

int plus(int x,int y) { int z; z=x+y; return(z); }

B程序1:: #include \float power(float x,int n) {

float result=1; int i;

for(i=1;i<=n;i++) {

result=result*x; }

return result; }

float power(float x,int n); main() {

float a,x; int n;

printf(\scanf(\a=power(x,n);

printf(\的%d次方为%f\\n\}

B程序2:#include\NarcissisticNumber (int n) {

int a,b,c; a=n/100; b=n0/10; c=n;

if(n==a*a*a+b*b*b+c*c*c) return n; else return 0; }

void main() {

int n,d=0,e;

for(n=999;n>=100;n--) {

if(NarcissisticNumber(n)!=0) { d++;

printf(\第%d大水仙花数%d\\n\ }

if(d==2) e=n; }

printf(\所以次大值%d\\n\ }

⒌ 运行结果

(包括原始数据、相应的运行结果和必要的说明。)

求a和b的最大数

求a和b的和

⒍ 分析与思考

调试过程及调试中遇到的问题及解决办法;调试程序的心得与体会;其他算法的存在与实践等。若最终未完成调试,要认真找出错误并分析原因等。

①注意循环体具体循环到哪里,别忘了把这一部分循环体括起来。

②当运行出现错误时,要多在程序中插入打印语句,检查具体是哪里错了,这样可以减少范围去发现问题。

③当程序运行,开始输入数据时,特别要注意输入格式,即电脑上的输入法,看是否匹配。

本文来源:https://www.bwwdw.com/article/sieo.html

Top