预习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;
}
博客阅读,
请放慢浮躁的脚步
大学的生活不再像是以前一样,远离了父母,没有了老师的束缚,渐渐地我们越来越浮躁,开始懒惰,但是我们应该有自己的追求,应该放慢浮躁的脚步。