实验六 定义编译预处理

更新时间:2023-10-19 20:30:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验六 定义编译预处理

一. 实验目的

1.掌握宏定义的方法;

2.掌握文件包含处理方法; 3.掌握条件编译的方法。

二. 实验要点

预处理语句主要有四种:宏定义和宏替换,文件包含,条件编译和行控制。 1.宏定义:以#define开头的语句,为的是在C语言程序中方便的作一些定义和扩展。

2.文件包含:是指一个程序文件将另一个指定文件的内容包含进来,用#include语句来说明。一般有两种格式: #include<文件名> #include”文件名” 3.条件编译:

一般格式: #ifdef 标识符 语句块1 #else

语句块2 #endif

三. 实验要求

1. 上机前编写好以下程序。(1为填空,2,3自己编程) 2. 上机输入和调试自己所编的程序并存在自己的软盘上。 3. 检查实验结果是否正确。

4. 上机结束后,整理实验报告。

四. 实验内容

上机调试运行以下程序。

1.以下程序的输出结果是( 9 )。 #include”stdio.h”

#define F(y) 3.84+y

#define PR(a) printf(“%d”,(int)(a)) #define PRINT(a) PR(a) ;putchar(?\\n?) main(){ int x=2;

PRINT(F(3)*x);}

2.定义一个带参数的宏,使两个参数的值互换。在主函数中输入两个数作为使用宏的实参,输出已交换后的两个值。

说明:在程序主函数使用宏时只能用两个实参,如SWAP(a,b),不能用三个实参。(谭浩强书8.1)

#include \

#define SWAP(a,b) {int t; t=a;a=b; b=t;} main() {

int x=2,y=5; SWAP(x,y);

printf (\}

3.设计输出实数的格式,包括:(1)一行输出一个实数;(2)一行内输出两个实数;(3)一行内输出三个实数。实数用“6.2f”格式输出。 (谭浩强书8.6)

#include \

#define PR1(a) printf(\

#define PR2(a,b) printf(\

#define PR3(a,b,c) printf(\main() {

float x=2,y=5,z=7; PR1(x); PR2(x,y); PR3(x,y,z); } 2.00

2.00, 5.00

2.00, 5.00, 7.00

作业题: 一. 选择题

1.在宏定义:#define PI 3.141592中,用宏名PI代替一个(D) A)常量 B)单精度数 C)双精度数 D) 字符串

2.以下任何情况下计算平方数时都不会引起二义性的宏定义是( D)。 A)#define POWER(x) x*x

B) #define POWER(x) (x)*(x) C) #define POWER(x) (x*x) D)#define POWER(x) ((x)*(x)) 3.以下正确的叙述是(C )。

A) C语言的预处理功能是指完成宏替换和包含文件的调用。 B) C语言的预处理指令只能位于C源程序文件的首部。

C) 凡是C源程序中行首以“#”标识的控制行都是预处理指令。 D) C语言的编译预处理就是对源程序进行初步的语法检查。替换 4.C语言提供的预处理功能包括条件编译,其基本形式是: #XXX 标识符 程序段 1 #else

程序段 2 #endif

这里XXX可以是(D )。

A)define或 include B) ifdef或include C) ifdef或ifndef或define D)ifdef或 ifndef 或if

二. 填空题

1.下面程序的运行结果是( 9 )。 #define MAX(a,b) (a>b?a:b)+1 main(){

int j=6,k=8,f;

printf(“%d\\n”,MAX(j,k));}

2.下面程序的运行结果是( 9.0 )。 #define A 4

#define B(x) A*x/2 main(){

float c,a=4.5; c=B(a);

printf(“%5.1f\\n”,c);}

3.设有以下程序,为使之正确运行,请在【 】中填入应包含的命令行。 【 】 main(){

int x=2,y=3;

printf(“%d\\n”,pow(x,y));} #include main() {

int x=2,y=3;

printf(\}

4.下面程序的运行结果是( c=0 )。 main(){

int a=10,b=20,c; c=a/b;

#ifdef DEBUG

printf(“a=%d,b=%d”,a,b); #endif

printf(“c=%d\\n”,c);}

5.下面程序的运行结果是( a=14,b=15,c=0 )。 #define DEBUG main(){

int a=14,b=15,c; c=a/b;

#ifdef DEBUG

printf(“a=%d,b=%d,”,a,b); #endif

printf(“c=%d\\n”,c);}

本文来源:https://www.bwwdw.com/article/howf.html

Top