存储类型宏定义数组.ppt

存储类型宏定义数组.ppt

ID:51514866

大小:435.86 KB

页数:32页

时间:2020-03-25

存储类型宏定义数组.ppt_第1页
存储类型宏定义数组.ppt_第2页
存储类型宏定义数组.ppt_第3页
存储类型宏定义数组.ppt_第4页
存储类型宏定义数组.ppt_第5页
资源描述:

《存储类型宏定义数组.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第9讲 变量的存储类型 带参数的宏定义 数组请大家及时消化我课上讲的内容,并举一反三,模仿未讲过的例题多写程序。如果说学习C语言有捷径的话:那就是多读程序,多写程序作业答案-15.6doubleS(floatx,intn){if(n==1)returnx;elsereturnS(x,n-1)+x*x;}将#include改为windows.h将clrscr();改为system(“CLS”);clrscr()是TC中的清屏函数,VC中没有,但VC中一般不需要。2习题5.12问题的关键是如何将n的问题化解为n-1的问题(即反方向求解问题)。根据分析,写出如下的

2、数学函数:doubleS(floatx,intn){if(n==1)returnx;elsereturnS(x,n-1)+pow(x,n);}3#include#includedoubleS(floatx,intn);voidmain(){doublex,s;intn;printf(“pleaseinputx,n:”);scanf(“%lf,%d”,&x,&n);s=S(x,n);printf(“S(%lf,%d)=%lf”,x,n,s);}doubleS(doublex,intn){if(n==1)returnx;elseret

3、urnS(x,n-1)+pow(x,n);/*递归要通过函数的依次调用实现*/}习题5.12程序#include#includedoubleS(floatx,intn);voidmain(){doublex,s;intn;printf(“pleaseinputx,n:”);scanf(“%lf,%d”,&x,&n);s=S(x,n);printf(“S(%lf,%d)=%lf”,x,n,s);}doubleS(doublex,intn)/*用递推求解*/{doublesum=0;inti;for(i=1;i<=n;i++)/*递推

4、要用循环语句实现*/sum+=pow(x,i);returnsum;}切忌:将递归函数的内容写至主函数中;将递归中的语句放至循环中;在递归函数中写s(x,n)=S(x,n-1)+pow(x,n);4另一个具有“记忆性”的变量类型:静态变量(static)一般的内部变量在函数退出后失效,再次进入函数,变量值重新初始化静态变量在变量类型前面用static修饰staticinti;变量存在静态存储区,当函数结束时,内存空间不被释放,因此,变量的值可以保存到下次进入函数,即变量具有记忆功能5涉及的语法-变量的存储类型编译器为变量分配内存的方式它决定变量的生存期程序存储区静态存储区动态

5、存储区形参、自动变量、函数调用的现场等全局变量、静态变量动态存储根据需要临时分配存储空间,离开即释放静态存储在程序运行期间分配固定的存储空间不释放内存分配6例-静态变量#includevoidFunc(void);main(){inti;for(i=0;i<10;i++){Func();}}/*函数功能:打印被调用的次数函数入口参数:无函数返回值:无*/voidFunc(void){staticinttimes=1;/*静态局部变量函数结束时times变量仍然占据静态存储区的存储空间,不释放*/printf("Func()wascalled%dtime(s)

6、.",times++);}Func()wascalled1time(s).Func()wascalled2time(s).Func()wascalled3time(s).Func()wascalled4time(s).Func()wascalled5time(s).Func()wascalled6time(s).Func()wascalled7time(s).Func()wascalled8time(s).Func()wascalled9time(s).Func()wascalled10time(s).1times23107例-非静态变量#include

7、voidFunc(void);main(){inti;for(i=0;i<10;i++){Func();}}/*函数功能:打印被调用的次数函数入口参数:无函数返回值:无*/voidFunc(void){inttimes=1;printf("Func()wascalled%dtime(s).",times++);}Func()wascalled1time(s).Func()wascalled1time(s).Func()wascalled1time(s).Func()wascalled1time(s)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。