- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
作业2:验证一些问题
作业2:验证一些问题
1.下面程序用以验证多函数程序执行时控制权的移交情况。请对照运行结果体会相关术语:挂起/激活/结束运行/消失/控制权移交/继续/嵌套调用。。。
请找出下面程序中每个函数的函数声明/函数调用/函数定义
#include stdio.h
void f1();
void f2();
void f3();
void main()
{ printf(this is inner main, press CR to continue.\n);
getchar();
f1();
printf(continue main.\n);
f3();
printf(continue main.\n);
printf(end of main.\n);
}
void f1()
{printf(this is inner f1,press CR to continue.\n);
getchar();
f2();
printf(continue f1.\n) ;
printf(end of f1.\n);
}
void f2()
{printf(this is inner f2,press CR to continue.\n);
getchar();
printf(end of f2.\n);
}
void f3()
{ printf(this is inner f3,press CR to continue.\n);
getchar();
printf(end of f3.\n);
}
2.下面程序用于验证当调用发生时实参x 和 y将其数值传递(复制)给了形参变量a 和 b。请找出函数三要素:函数声明/函数调用/函数定义
#include stdio.h
void f(int a, float b);
void main()
{ int x=3; float y=4.5;
f(x,y);
printf(end of main.\n);
}
void f(int a, float b)
{ printf(inner f:\n);
printf( a=%d, b=%f\n,a,b);
printf(end of f\n);
}
3. 下面程序用于验证调用完毕时子函数将结果返回给了主调函数。 请找出函数三要素:函数声明/函数调用/函数定义
#include stdio.h
int f();
void main()
{ int result;
result=f();
printf(main :result=%d\n,result) ;
}
int f()
{ return 100 ;}
4.下面程序用于验证全局变量/局部变量的作用域规则。
#include stdio.h
void f1();
void f2();
int a=3;
void main()
{ int b=4;
printf(a=%d\n,a);
printf(b=%d\n,b);
f1();
f2();
}
void f1()
{ int b=5;
printf(\n\na=%d\n,a);
printf(b=%d\n,b);
}
int b=7;
void f2()
{ printf(\n\na=%d\n,a);
printf(b=%d\n,b);
}
5.该程序用于验证静态局部变量的特性
void main()
{ incx(); incy();
incx(); incy();
incx(); incy();
}
void incx()
{ int x=0;
printf(x=%d\t,++x);
}
void incy()
{ static int y=0;
printf(y=%d\n,++y);
}
6.该程序用于验证传址调用下,子函数以间接形式访问了主调函数中的一维数组,而不是某些初学者所认为的“主函数中一个数组,子函数中一个复制过来的数组,存在两个相同数组”, 这一点从两个函数所显示的数组元素的地址就可以证明。内存的编址是唯一的,不可能出现两个相同地址编号的内存字节。
记住一句话:形参中定义的数组名是地址变量,其它地方(函数体内)定义的数组名是地址常量。大家可以自己添加一些语句来验证一下这句话。
#include stdio.h
void f(in
您可能关注的文档
- 53生殖结构.ppt
- 南昌大学重点专业.doc
- 第九章算法复杂性模型.ppt
- 解热镇痛药复习题.ppt
- 咨询问答+中药、天然药物研究与评价药学问题.doc
- 三年级数学下(苏教版)20认识分数3.解决实际问题.doc
- 高一三角函数小测试.doc
- 2011年中考物理总复习计划.doc
- 委托加工业务处理流程.doc
- 论德育与幸福论文.doc
- 数据仓库:Redshift:Redshift与BI工具集成.docx
- 数据仓库:Redshift:数据仓库原理与设计.docx
- 数据仓库:Snowflake:数据仓库成本控制与Snowflake定价策略.docx
- 大数据基础:大数据概述:大数据处理框架MapReduce.docx
- 实时计算:GoogleDataflow服务架构解析.docx
- 分布式存储系统:HDFS与MapReduce集成教程.docx
- 实时计算:Azure Stream Analytics:数据流窗口与聚合操作.docx
- 实时计算:Kafka Streams:Kafka Streams架构与原理.docx
- 实时计算:Kafka Streams:Kafka Streams连接器开发与使用.docx
- 数据仓库:BigQuery:BigQuery数据分区与索引优化.docx
文档评论(0)