网站大量收购闲置独家精品文档,联系QQ:2885784924

函数程序设计-C语言程序实验报告.docx

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

函数程序设计-C语言程序实验报告

安徽工程大学

高级语言程序设计实验报告

班级姓名同组者/成绩

日期2019\11\21指导教师

实验名称函数程序设计

一、实验目的

1.掌握定义函数的方法。

2.掌握函数实参与形参的对应关系,体会“值传递”的方式。

3.掌握函数的嵌套调用和递归调用的方法。

4.掌握全局变量和局部变量、动态变量和静态变量的概念与使用方法。

5.理解数组作为函数参数的传递方式。

6.理解宏的概念,掌握宏的定义。

7.了解文件包含的概念,掌握其用法。

二、实验内容

1.完成程序,求解n!

具体要求:输入并完善源程序;对源程序进行编译、连接和运行;写出程序运行结果。

2.计算s=1的k次方+2的k次方+3的k次方+……+N的k次方。

具体要求:输入并完善源程序;对源程序进行编译、连接和运行;写出程序运行结果。

3.写出下面3个程序的输出结果,说明每个程序中的各个x有何不同。

4.阅读程序,理解程序的功能,写出预期结果并上机验证。

5.编程并上机调试运行。

(1)编写一个判断素数的函数,在主函数输入一个整数,输出是否为素数的信息。(2)输入一个整数,将它逆序输出。要求定义并调用函数rverse(number),它的功能是返回number的逆序数。如reverse(12345)的返回值是54321。

(3)用递归法求n阶勒让德多项式的值,递归公式为

P(x)=1,n=0;P(x)=x,n=1;P(x)=[(2n-1)*x-Pn-1(x)-(n-1)Pn-2(x)]/n,n1

(4)编写一函数,由实参传递一个字符串,统计此字符串中字母、数字、空格和其他

字符的个数,在主函数中输入字符串并输出上述结果。

(5)带参数的宏,使两个参数的值互换,并写出程序,输入两个数作为使用宏时的实参。输出交换后的两个值。

(6)编写函数,实现两个字符串的连接,在主函数中输入两个字符串并输出连接后的结果(不要使用库函数中的strcat函数)。

(7)请编写函数fun,它的功能是:求出1~1000之内能被7或11整除,但不能同时被7和11整除的所有整数,并将它们放在a所指的数组中,通过n返回这些数的个数,在主函数中输出这些整数,并给出统计的总数。

(8)设有未完成的函数:

charGetChar(charc)

{chars[]=9038571426;

……

}

字符串s中无序地存储了10个数字字符,没有重复。函数的功能是:

如果字符c不是数字字符,函数原样返回该字符;否则,在s中查找字符C,并返回其在s中的前一个字符。如果该字符位于s的最前面(字符9),则返回最后一个字符6。

如GetChar(4)得到字符I,GetChar(T)得到字符T。请完成该函数并在主函数中调用。*思考题

1.请分析不返回值的函数定义与有返回值的函数定义有什么不同,思考这两类函数在实际编程中的作用。

2.请观察本次实验中使用的函数都有几个返回值,当个函数需要有多个返回值时,应该如何处理?

3.数组作为函数参数有哪几种方式?这些方式中有没有能解决之前“函数多值返回问题”的方法?

4.请分析下面程序的作用。

/*format.h*/

#defineDIGIT(d)printf(整数输出:%d\n,d)

#defineFLOAT(f)printf(实数输出:%10.2f\n,f)

#defineSTRING(s)printf(字符串输出:?号s\n,s)

/*usersprogram*/

#include

#include

intmain()

{

intd,num;

floatf;

chars[80];

printf(请选择输入格式:1-整数,2-实数,3-字符串:);

scanf(%d,num);

switch(num)

{case1:printf(请输入一个整数:);

scanf(%d,d);

DIGIT(d);

break;

case2:printf(请输入一个实数:);

scanf(%f,f);

FLOAT(f);

break;

case3:printf(请输入一个字符串:);

scanf(%s,s);

STRING(s);

break;

default:printf(输入有错误!);

}

return0;

}

三、算法流程图或实验步骤(可根据需要增删、修改)

1.

#include

f(intn)

{

if(n==1)

return(1);

else

returnn*f(n-1);

}

voidmain()

{

intx,i;

scanf(%d,i);

x=f(i);

printf(i!=%d\n,x);

}

2.

#include

longf1(inti,intj)

{

longpow

文档评论(0)

朝兵 + 关注
实名认证
内容提供者

原版文件原创

1亿VIP精品文档

相关文档