c语言第七章课后题.doc
文本预览下载声明
一、第七章习题7(p184-p187),7.1-7.7全做,7.8-7.12中选做两道,要求给出程序执行结果。
7-1、
#include stdio.h
int Square(int i)
{
return i*i;
}
int main()
{
int i=0;
i=Square(i);
for(; i3;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=13 成立
静态变量i=i+square(2)=2+4=6;
输出 6;
循环变量i=i+1=2;
I=23 成立
静态变量(i保持原值)i=6;
i=i+square(6)=6+36=42;
输出42;
循环变量i=i+1=3;
I=33不成立退出循环
输出循环变量i=3
7-2、
#include stdio.h
int hour,minute,second; /*定义全局变量*/
void update()
{
second ++;
if(second == 60)
{
second=0;
minute++;
}
if(minute==60)
{
minute=0;
hour++;
}
if(hour==24)
hour=0;
}
void display()
{
printf(%d : %d : %d\n,hour,minute,second);
}
void delay()
{
int t;
for (t=0;t100000000;t++); /*用循环体为空语句的循环实现延时*/
}
int main()
{
int i;
second=0;
for(i=0;i1000000;i++)
{
update(); /*利用循环控制时钟运行时间*/
display(); /*显示时,分,秒*/
delay(); /*模一尺时间为1秒*/
}
return 0;
}
结果:
自动跳出时间
7-3、
#include stdio.h
/*max()函数
功能:找两个数的最大值
入口参数:两个整数a,b
返回值:两数的最大值
*/
int max(int a, int b)
{
int max=0;
max = (ab)?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 stdio.h
/*LCM()函数
功能:计算两个整数的最小公倍数
入口参数:两整数a,b
返回值:最小公倍数
*/
int LCM(int a,int b)
{
int i=0; /*循环变量*/
int min=0; /*循环寻找范围的最小值*/
int max=0; /*循环寻找范围的最大值*/
min = (ab)?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{ /*输入整数的合法
显示全部