c语言第七章课后题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、第七章习题7(p184-p187),全做,中选做两道,要求给出程序执行结果。7-1、
#include <>
int Square(int i)
{
return i*i;
}
int main()
{
int i=0;
i=Square(i);
for(; i<3;i++)
{
static int i=1;
i+=Square(i);
printf("%d,",i);
}
printf("%d\n",i);
return 0;
}
结果:
结果分析:
开头定义square()函数
功能:计算一个数的平方
入口参数:整数x
返回值:i*i
主函数:i=0;进入循环:
静态变量i=1;
i=i+square(1)=2;
输出 2;
循环变量i=0+1=1;
i=1<3 成立
int i;
second=0;
for(i=0;i<1000000;i++)
{
update(); /*利用循环控制时钟运行时间*/
display(); /*显示时,分,秒*/
delay(); /*模一尺时间为1秒*/ }
return 0;
}
结果:
自动跳出时间
7-3、
#include <>
/*max()函数
功能:找两个数的最大值
入口参数:两个整数a,b
返回值:两数的最大值
*/
int max(int a, int b)
{
int max=0;
max = (a>b)a:b;
return max;
}
void main()
{
int x=0; /*输入的两个数x,y*/
int y=0;
int m=0; /*m用于接收max()函数的返回值*/
printf("input two integer numbers:");
scanf("%d,%d",&x,&y);
m=max(x,y);
printf("the max number is %d\n",m);
}
结果:
7-4
#include <>
/*LCM()函数
功能:计算两个整数的最小公倍数
入口参数:两整数a,b
返回值:最小公倍数
*/
int LCM(int a,int b)
{
int i=0; /*循环变量*/
int min=0; /*循环寻找范围的最小值*/
int max=0; /*循环寻找范围的最大值*/
min = (a>b)a:b; /*最小值为a,b中的最大值*/ max = a*b; /*最大值为a*b*/
for (i=min; i<=max; i++)
{
if(i%a==0 && i%b==0)
return i;
}
void main()
{
int x; /*键盘输入两整数x,y*/
int y;
int m; /*m用于接收LCM()函数的返回值*/
do{ /*输入整数的合法数据*/ printf("输入两个正整数:");
scanf("%d,%d",&x,&y);
}while(x<0 || y<0);
m = LCM(x,y);
printf("最小公倍数为:%d\n",m);
}
结果:
7-5、
#include <>
long fact(int n);
void main()
{
int i=0; /*循环变量*/
int n=0; /*输入的值*/
int m=0; /*接收fact()函数的返回值*/
do{
printf("input n:");
scanf("%d",&n);
}while(n<0);
for(i=1; i<=n; i++)
{
m=fact(i);
}
}
/*fact函数
功能:计算n!
入口参数:n
返回值:n!
*/
long fact(int n)
{
static long p=1;
p=p*n;
return p;
}
结果:
7-6、
#include <>
long fact(int n);
void main()
{
int i=0; /*循环变量*/
int n=0; /*输入的值*/
int m=0; /*接收fact()函数的返回值*/ long s=0; /*所求最终结果*/
do{
printf("input n:");
scanf("%d",&n);
}while(n<0);
for(i=1; i<=n; i++)
{