实验七编译预处理 、实验目的 学会恰当地使用C语言的预处理功能,使编写出的程序易读、易修改,便于 调试和移植 二、实验要求 1.掌握C语言的预处理功能:宏替换、文件包含、条件编译。 2.编写实验报告(七)。 三、实验内容 7-1如果要求a,b中的最大值,使用带参数的宏定义编写程序S7-1C来实现? 7-2如果将求一个整数是否为偶数的宏定义为 define EveN(a) a%2==0?1: 0 程序S7-2C的宏替换结果是否正确?如果不正确,分析其原因,并写出正 确的形式 源程序S7-2C #define even(a)a%2==0?1: 0 maino if (EVEn (9+1) printf( printf("is odd"); 7-3填写下表,掌握常用头文件的用途。 头文件 用途 phics. h ma tth. h stdio h 7-4程序S74C中定义了一个带参数的宏swap(xy),以实现两个整数之间的交 换,并利用它将一维数组a和b的值进行交换。请调试该程序,允许修改 和添加语句,但不得删除整行。 源程序S7-4C #define swap(x, y)tx;xy; y=t
1 实验七 编译预处理 一、实验目的 学会恰当地使用 C 语言的预处理功能,使编写出的程序易读、易修改,便于 调试和移植。 二、实验要求 1. 掌握 C 语言的预处理功能:宏替换、文件包含、条件编译。 2. 编写实验报告(七)。 三、实验内容 7-1 如果要求 a,b 中的最大值,使用带参数的宏定义编写程序 S7-1.C 来实现? 7-2 如果将求一个整数是否为偶数的宏定义为: # define EVEN(a) a%2= =0?1:0 程序 S7-2.C 的宏替换结果是否正确?如果不正确,分析其原因,并写出正 确的形式。 源程序 S7-2.C #define EVEN(a) a%2= = 0 ? 1 : 0 main() { if (EVEN (9+1)) printf ("is even"); else printf ("is odd"); } 7-3 填写下表,掌握常用头文件的用途。 头 文 件 用 途 graphics.h math.h string.h stdio.h 7-4 程序 S7-4.C 中定义了一个带参数的宏 swap(x,y),以实现两个整数之间的交 换,并利用它将一维数组 a 和 b 的值进行交换。请调试该程序,允许修改 和添加语句,但不得删除整行。 源程序 S7-4.C #define swap(x,y) {t=x; x=y; y=t;}
maino int i, a[10], b[10),n printf("n Enter n [n<10] scanf("%d", &n); printf("\n Enter a[0]a[1]. a[%d]: n); for(i=0; i<n; i++) scanf("%d",a[D printf("n Enter b[o]b[1.b[%d]: , n); for(i=0; i<n; i++) scanf("%d",biD printf("na[o][l]. a[9d]: ",n); r(=0;i<n;i++) printf("%d",a[]); printf("nb[o]b[1].b[%d]: n) for(i=0; i<n; i++) rinf("%d,b]
2 main() { int i,a[10],b[10],n; printf("\n Enter n [n<10]:"); scanf("%d",&n); printf("\n Enter a[0] a[1] ... a[%d]:",n); for(i=0;i<n;i++) scanf("%d",a[i]); printf("\n Enter b[0] b[1] ... b[%d]:",n); for(i=0;i<n;i++) scanf("%d",b[i]); swap(a,b); printf("\na[0] a[1] ... a[%d]:",n); for(i=0;i<n;i++) printf("%d",a[i]); printf("\nb[0] b[1] ... b[%d]:",n); for(i=0;i<n;i++) printf("%d",b[i]); }