您的位置:首页 > 其它

第七堂课后作业

2013-05-31 13:46 162 查看
预习1
目标:了解循环的嵌套

提示:参考 C语言循环的嵌套 了解更多信息

预习1题,自拟题,要求应用循环的嵌套语句,并说明程序循环执行的过程

include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
int i,j,sum1,sum2=0;
for(i=1;i<=10;i++)
{
sum1=1;

for(j=1;j<=i;j++)

sum1=sum1*j;
sum2=sum2+sum1;

}
printf("%d\n",sum2);
return 0;


此程序是求1-100的素数:

1、循环第1轮,a=1,a<=100,成立,a=a+1=2进入内循环

2、循环第2轮,b=2,b!<a,进入循环体,b=a条件成立,输出b=2.

3、循环第3轮,b++,b=3=a,条件成立,输出b=3.

4、循环第4轮,b=4,a%b==0,循环结束,进入第五轮循环…………

------------------------------------题目分割线------------------------------------
预习2
目标:了解函数的嵌套与递归

提示:参考 函数的嵌套与递归 了解更多信息

预习2题,自拟题,要求应用递归,并说明程序执行的过程.
#include "stdafx.h"
int main()
{
int m,a;
long fact(int n);
printf("请输入一个整数:");
scanf_s("%d",&m);
a=fact(m);
printf("%d\n",a);
}

long fact(int n)
{
long result;
if(n==1||n==0)
result=1;
else
result= n*fact(n-1);
return result;
}


嵌套调用:

求三个数字中最大数和最小数的差值:

#include<stdio.h>
int dif(int x,int y,int z);
int max(int x,int y,int z);
int min(int x,int y,int z);
void main()
{
int a,b,c,d;
scanf_s("%d%d%d",&a,&b,&c);
d=dif(a,b,c);
printf("Max-Min=%d\n",d);
}
int dif(int x,int y,int z)
{
return max(x,y,z)-min(x,y,z);
}
int max(int x,int y,int z)
{
int r;
r=x>y?x:y;
return(r>z?r:z);
}
int min(int x,int y,int z)
{
int r;
r=x<y?x:y;
return(r<z?r:z);
}

递归调用:

求年龄age={10  (n=1);  age(n-1)+2   (n>1)}
#include<stdio.h>
int age(int n)
{
int c;
if(n==1)
c=10;
else
c=age(n-1)+2;
return c;
}
int main()
{
int x;
x=age(5);
printf("%d\n",x);
}


------------------------------------题目分割线------------------------------------
预习3
目标:了解位运算

提示:参考 位运算 了解更多信息

预习3题,自拟题,要求运用位运算符,并说明程序执行的过程
viod main()
{
int a,b;
a=  4;
b = 5;
printf("%d",a&b);
}


位运算:

计算绝对值
int abs(int x)
{
int y;
y=x>>31;
return (x^y)-y;
}
博客阅读,请放慢浮躁的脚步
大学的生活不再像是以前一样,远离了父母,没有了老师的束缚,渐渐地我们越来越浮躁,开始懒惰,但是我们应该有自己的追求,应该放慢浮躁的脚步。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: