函数程序设计C语言麦Word文档下载推荐.docx
《函数程序设计C语言麦Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《函数程序设计C语言麦Word文档下载推荐.docx(28页珍藏版)》请在冰豆网上搜索。
doublefact(intm);
printf("
Inputn:
"
);
scanf("
%d"
&
n);
f=fact(n);
/*调试时设置断点*/
%d!
=%f\n"
n,f);
return0;
}
doublefact(intm)
{
inti;
doubleproduct=1;
for(i=1;
i<
=m;
i++)
product=product*i;
returnproduct;
②运行结果:
(提示:
通过屏幕截图,贴粘程序运行界面)。
2、完善程序,并调试运行程序
题目
(1)求S=1+1/2!
+....+1/n!
。
程序功能:
从键盘上输入一个正整数repeat(0<
repeat<
10),做repeat次下列运算:
输入1个正整数n,计算s的前n项的和(保留4位小数),要求:
定义并调用函数fact(n)计算n的阶乘。
程序文件保存在“第1题”文件夹中)打开proj1.cpp文件,在两条星线之间填入相应的代码,使程序完成该功能。
//程序功能:
从键盘上输入一个正整数repeat(0<
10),做repeat次下列运算:
//输入1个正整数n,求s=1+1/2!
的值(保留4位小数),要求:
//定义并调用函数fact(n)计算n的阶乘。
//提示:
除在指定位置添加语句之外,请不要改动程序中的其他内容。
#include"
stdio.h"
intmain()
intri,repeat;
inti,n;
doubles;
doublefact(intn);
&
repeat);
for(ri=1;
ri<
=repeat;
ri++)
{
//请在两条星线之间填入相应的代码,求s=1+1/2!
的值(使用循环结构)
//要求:
调用函数fact(n)计算n的阶乘。
/***********************************************************************/
s=0;
for(i=1;
i<
=n;
i++)
s=s+1.0/fact(i);
%0.4f\n"
s);
}
doublefact(intn)//定义求n!
的函数
doubleproduct;
//请在两条星线之间填入相应的代码,计算正整数n的阶乘(要求使用循环结构求n!
)
/************************************************************************/
product=1;
product=product*i;
题目
(2)求a+aa+aaa+aa…a(n个a)。
输入2个正整数a和n,求a+aa+aaa+aa⋯a(n个a)之和。
要求定义并调用函数fn(a,n),它的功能是返回aa⋯a(n个a)。
例如,fn(3,2)的返回值是33。
程序文件保存在“第2题”文件夹中)打开proj2.cpp文件,在两条星线之间填入相应的代码,使程序完成该功能。
//输入2个正整数a和n,求a+aa+aaa+aa?
a(n个a)之和。
//要求定义并调用函数fn(a,n),它的功能是返回aa...a(n个a)。
voidmain()
intri,repeat;
inti,n;
longa,sn;
longfn(longa,intn);
ri<
ri++)
%ld%d"
a,&
//请在两条星线之间填入相应的代码,求a+aa+aaa+aa...a(n个a)之和(使用循环结构)
调用函数fn(longa,intn)求aa...a(n个a)的值。
/**************************************************************************/
sn=0;
i++){
sn=sn+fn(a,i);
%ld\n"
sn);
longfn(longa,intn)//定义求aa...a(n个a)的函数
longproduct;
//请在两条星线之间填入相应的代码,求aa...a(n个a)的值(要求使用循环结构求解)
/*************************************************************************/
product=a;
n;
product=product*10+a;
题目(3)统计一个整数中数字的个数。
读入1个整数,统计并输出该整数中包含某数字的个数。
要求定义countdigit(number,digit)函数并调用,它的功能是统计整数number中数字digit的个数。
例如:
调用函数countdigit(10090,0),返回10090中数字0的个数,返回值是3。
程序文件保存在“第3题”文件夹中)打开proj3.cpp文件,在两条星线之间填入相应的代码,使程序完成该功能。
intcount,digit;
longin;
intcountdigit(longnumber,intdigit);
%ld"
in);
digit);
//请在两条星线之间填入相应的代码,统计整型变量in中包含数字digit的个数
countdigit(number,digit)函数
/*******************************************************************/
count=countdigit(in,digit);
count=%d\n"
count);
//定义countdigit(number,digit)函数,求整数number中数字digit的个数
intcountdigit(longnumber,intdigit)
inti,result;
//请在两条星线之间填入相应的代码,求整数number中数字digit的个数(要求使用循环结构)
/********************************************************************************/
result=0;
while(number!
=0){
i=number%10;
number=number/10;
if(i=digit){
result++;
题目(4)判断素数。
输入一个正整数n,如果它是素数,输出"
YES"
,否则,输出"
NO"
(素数就是只能被1和自身整除的正整数,1不是素数,2是素数)。
要求定义并调用函数prime(n)判断n是否为素数。
程序文件保存在“第4题”文件夹中)打开proj4.cpp文件,在两条星线之间填入相应的代码,使程序完成该功能。
math.h>
intflag,n;
intprime(intn);
//请在两条星线之间填入相应的代码,调用prime(intn)函数判断整数n是否是素数
flag=prime(n);
if(flag)printf("
YES\n"
elseprintf("
NO\n"
intprime(intn)//定义prime(intn)函数,判断整数n是否是素数
//请在两条星线之间填入相应的代码,判断整数n是否是素数(要求使用循环结构)
/**********************************************************************/
result=1;
for(i=2;
if(n%i==0){result=0;
break;
returnresult;
题目(5)统计素数并求和。
输入2个正整数m和n(1<
=m,n<
=500),统计并输出m和n之间的素数的个数以及这些素数的和(素数就是只能被1和自身整除的正整数,1不是素数,2是素数)。
程序文件保存在“第5题”文件夹中)打开proj5.cpp文件,在两条星线之间填入相应的代码,使程序完成该功能。
math.h"
intcount,i,m,n,sum;
intprime(intm);
%d%d"
m,&
//请在两条星线之间填入相应的代码,统计m和n之间的素数的个数以及这些素数的和。
调用prime(intn)函数判断整数n是否是素数。
使用循环结构。
count=0;
sum=0;
for(i=m;
if(prime(i)==1){count++;
sum+=i;
count=%d,sum=%d\n"
count,sum);
result=1;
题目(6)统计素数并求和。
=m,n<
=10000),输出m和n之间所有的Fibonacci数。
Fibonacci序列(第1项起):
1123581321…。
要求定义并调用函数fib(n),它的功能是返回第n项Fibonacci数。
例如,fib(7)的返回值是13。
输出语句:
printf("
%d"
f);
(注:
程序文件保存在“第6题”文件夹中)打开proj6.cpp文件,在两条星线之间填入相应的代码,使程序完成该功能。
intri,repeat;
inti,m,n;
longf;
longfib(intn);
//请在两条星线之间填入相应的代码,求第m项至第n项之间所有的Fibonacci数。
//Fibonacci序列(第1项起):
调用fib(intn)函数求第n项Fibonacci数。
f=fib(i);
printf("
第%d项Fibonacci数=%ld\n"
i,f);
\n"
longfib(intn)//定义fib(intn)函数,求第n项Fibonacci数
inti,a1,a2;
longintresult;
//请在两条星线之间填入相应的代码,求第n项Fibonacci数(要求使用循环结构)
/*********************************************************************/
a1=a2=1;
if(n==1||n==2)result=1;
else
for(i=3;
{
result=a1+a2;
a1=a2;
a2=result;
}
题目(7)求完数。
=1000),输出m到n之间的所有完数(完数就是因子和与它本身相等的数)。
要求定义并调用函数factorsum(number),它的功能是返回number的因子和。
factorsum(12)的返回值是16(1+2+3+4+6)。
i);
程序文件保存在“第7题”文件夹中)打开proj7.cpp文件,在两条星线之间填入相应的代码,使程序完成该功能。
intfactorsum(intnumber);
//请在两条星线之间填入相应的代码,输出m到n之间的所有完数。
//完数:
因子和与它本身相等的数。
调用factorsum(intnumber)函数求nunmer的因子和。
for(i=m;
if(i==factorsum(i))printf("
i);
intfactorsum(intnumber)//定义factorsum(intnumber)函数,求number的因数和
//请在两条星线之间填入相应的代码,求number的因数和(要求使用循环结构)
/**************************************************************/
=number/2;
if(number%i==0)result+=i;
题目(8)求各位数字的立方和等于它本身的数。
=1000),输出m到n之间的所有满足各位数字的立方和等于它本身的数(例如:
153=1*1*1+5*5*5+3*3*3)。
要求定义并调用函数is(number),判断number的各位数字之立方和是否等于它本身。
程序文件保存在“第8题”文件夹中)打开proj8.cpp文件,在两条星线之间填入相应的代码,使程序完成该功能。
intis(intnumber);
//请在两条星线之间填入相应的代码,输出m到n之间所有满足各位数字的立方和等于它本身的数
//例如:
153=1*1*1+5*5*5+3*3*3
调用函数is(number),判断number的各位数字之立方和是否等于它本身。
/**********************************************************************************/
if(is(i)==1)printf("
/******************************************