c语言实验函数讨论 c语言实验七函数实验报告

c语言函数实验报告#includestdio.h
int main()
{
int sum(int);
int factorial(int);
int n,s;
long int p;
printf("请输入n值:\n");
scanf("%d",n);
s=sum(n);
p=factorial(n);
printf("1+2+3+...+n=%d\n",s);
printf("n!=%ld\n",p);
return 0;
}
int sum(int x)
{
int a=0;
for(int i=0;i=x;i++)
a=a+i;
return a;
}
int factorial(int y)
{
int b=1;
for(int i=1;i=y;i++)
b=b*i;
return b;
}
因为阶乘会得到很大的结果,会超出p的范围,所以n值不能太大,否则阶乘没有结果(或不对),只有加法的结果;
C语言实验 函数#includestdio.h
int computNum(int num)
{
int sum=0;
int n;
while(num)
{
n=num%10;//取数的一位数
sum=sum+n;//累加这个数
num=num/10;//把num去掉一位数
}
return sum;
}
void main()
{
int number;
printf("请输入一个整数:");
scanf("%d",number);
printf("各个数的和是%d",computNum(number));
}
c语言中函数的进一步讨论!fun(int n,int *s)
{ int f1,f2;
if(n==1||n==2) *s=1;
else
(1)[ { fun(n-1,f1);
fun(n-2,f2);
*s=f1+f2;
} ] (1)[...]这部分看不明白,请帮忙解释一下. fun是函数c语言实验函数讨论的入口这里面其实相当于循环
}
当(n==1||n==2)不成立c语言实验函数讨论的时候
执行函数调用 并传值 简单c语言实验函数讨论的理解就是 一行一行代码 读
(程序只能这样)函数调用也好什么也好都是起到跳转语句的作用
C语言实验7 函数1#include stdio.h
int main ()
{
int ad(int);
int n;
printf("请输入一个测试数:");
while(scanf("%d",n)==1)
if(ad(n))
printf("\t %d 是素数.\n",n);
else
printf("\t %d 不是素数.\n",n);
return 0;
}
int ad(int n)
{
int flag=1,i;
for (i=2;i=n/2flag==1;i++)// 这里 i=n/2就好c语言实验函数讨论了
if(n%i==0)
flag=0;
return (flag);
}
代码有点小问题c语言实验函数讨论,参看上面的注释
c语言实验报告心得c语言实验心得:
1、只有频繁用到或对运算速度要求很高的变量才放到data区内 , 如for循环中的计数值 。
2、其他不频繁调用到和对运算速度要求不高的变量都放到xdata区 。
3、常量放到code区,如字库、修正系数 。
4、逻辑标志变量可以定义到bdata中 。
在51系列芯片中有16个字节位寻址区bdata,其中可以定义8*16=128个逻辑变量 。这样可以大大降低内存占用空间 。定义方法是: bdata bit LedState;但位类型不能用在数组和结构体中 。
5、data区内最好放局部变量 。
因为局部变量的空间是可以覆盖的(某个函数的局部变量空间在退出该函数是就释放,由别的函数的局部变量覆盖),可以提高内存利用率 。当然静态局部变量除外 , 其内存使用方式与全局变量相同;
6、确保程序中没有未调用的函数 。
在Keil C里遇到未调用函数,编译器就将其认为可能是中断函数 。函数里用的局部变量的空间是不释放,也就是同全局变量一样处理 。这一点Keil做得很愚蠢,但也没办法 。
7、如果想节省data空间就必须用large模式 。
将未定义内存位置的变量全放到xdata区 。当然最好对所有变量都要指定内存类型 。
8、使用指针时,要指定指针指向的内存类型 。
在C51中未定义指向内存类型的通用指针占用3个字节;而指定指向data区的指针只占1个字节;指定指向xdata区的指针占2个字节 。如指针p是指向data区,则应定义为:char data *p; 。还可指定指针本身的存放内存类型 , 如:char data * xdata p; 。其含义是指针p指向data区变量,而其本身存放在xdata区 。

推荐阅读