C程序实验报告八编译预处理

C程序实验报告八编译预处理

ID:37915806

大小:30.50 KB

页数:3页

时间:2019-06-02

C程序实验报告八编译预处理_第1页
C程序实验报告八编译预处理_第2页
C程序实验报告八编译预处理_第3页
资源描述:

《C程序实验报告八编译预处理》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验8编译预处理1.实验目的、要求(1)掌握宏定义的方法。(2)掌握文件包含处理的方法。(3)掌握条件编译的方法。2.实验内容(1)输入程序,观察运行结果并分析。#defineADD(x)x+x#include“stdio.h”intmain(){intm=1,n=2,k=3;intsum=ADD(m+n)*k;printf(“sum=%d”,sum);return(0);}运行此程序:按F2保存源程序,按F9完成一次编译连接,无提示错误,按任意键返回源程序行,按ctrl+F9运行,按alt+F5看结果,结果显示:sum=10分析:

2、分析:带参数的宏定义要进行参数的替换,带参数的宏的展开只是将语句中的宏名后面括号内的实参字符串代替#define命令行中的形参。经运行发现运行过程为m+n+m+n*k=10,若想得到预想过程则应改为#defineADD(x)(x)+(x).(2)编写程序a)定义一个带参数的宏,使两个参数的值互换,在主函数中输入两个数作为宏的参数,输出已交换后的两个值。#defineSWAP(a,b)t=b;b=a;a=tmain(){inta,b,t;printf("inputtwonumbersa,b:");scanf("%d,%d",&a,&b

3、);SWAP(a,b);printf("jiaohuanjieguowei:a=%d,b=%d",a,b);}运行此程序:按F2保存源程序,按F9完成一次编译连接,无提示错误,按任意键返回源程序行,按ctrl+F9运行,屏幕显示inputtwonumbersa,b:45,12输入45,12,按回车键返回显示源程序,然后按alt+F5显示结果,结果为:inputtwonumbersa,b:jiaohuanjieguowei:a=12,b=45分析:定义进行参数的替换,在程序中如果遇到了带参数的宏,按#define命令行中指定的字符

4、串从左到右置换。宏可以得到设法得到几个返回值,此题中就是返回两个结果。b)用子函数实现两个值的互换,在主函数中输出已交换后的两个值。#include"stdio.h"intS(intx,inty){intt;t=x;x=y;y=t;printf("%d,%d",x,y);}intmain(){inta,b;printf("pleaseputintwonumbers:");scanf("%d,%d",&a,&b);S(a,b);}分析:函数调用只能返回一个返回值,而要返回俩个则不能用简单的函数调用,应用全局变量可以得到两个返回值。(3

5、)设计输出实数的格式,包括:①一行输出一个实数;②一行输出两个实数;③一行输出三个实数。实数用“%6.2f”格式输出。用一个文件print_format.h包含上述用#define命令定义的格式,在自己的文件中用#include命令将print_format.h文件包含进来。在程序中用scanf函数读入三个实数给f1,f2,f3。然后用上述定义的三种格式分别输出:①f1;②f1、f2;③f1、f2、f3。编写程序如下:#include“stdio.h”#definePRprintf#defineNL""#defineF"%f"#

6、defineCf"%6.2f"#defineF1CfNL#defineF2CfCfNL#defineF3CfCfCfNLvoidmain(){floatf1,f2,f3;scanf("%f,%f,%f",&f1,&f2,&f3);PR(D1,f1);PR(D2,f1,f2);PR(D3,f1,f2,f3);运行此程序:按F2保存源程序,按F9完成一次编译连接,无提示错误,按任意键返回源程序行,按ctrl+F9运行,出现黑屏状态,输入:12,25,36按任意键返回源程序,按alt+F5显示结果,结果为:121225122536分析:经

7、过编译预处理后将头文件format.h包含到主文件中,得到一个新的源文件,然后对这个文件进行编译,得到目标程序。被包含文件成为新源文件的一部分。3.思考及总结总结C语言提供的预处理功能:①宏定义;②文件包含;③条件编译。4.易犯错误及纠正方法(1)在做实验内容(1)时,先分析运行结果,再上机运行,对照结果是否一致。(2)在做实验内容(2)时,注意带参数的宏定义和函数调用两种方式使用上的区别。5.总结:遇到问题要大胆猜想,回归课本深入思考,不放弃任何一个疑难问题,举一反三,多操作,多动脑。多将自己猜想结果进行对照比较,思考出现分歧的原

8、因,从而更深入的理解课本内容。

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

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

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