8.8 上机实践

1.以下程序的输出结果是什么?


01:#include<stdio.h>//头文件

02:#include<reg52.h>

03:

04:#define N 2

05:#define M N+2

06:#define CUBE(x)(xxx)

07:

08:void main(void)//主函数

09:{

10:int i=M;

11:

12:TI=1;

13:

14:i=CUBE(i);

15:printf(“%d\n”,i);

16:

17:while(1);

18:}


2.写出以下程序的运行结果。


01:#include<stdio.h>//头文件

02:#include<reg52.h>

03:

04:#define TRUE 1

05:#define FALSE 0

06:#define SQ(x)((x)*(x))

07:

08:void main(void)//主函数

09:{

10:int num;

11:int again=1;

12:

13:SCON=0x50;//串口模式1,允许接收

14:TMOD|=0x20;//初始化T1为定时功能,模式2

15:PCON|=0x80;//设置SMOD=1

16:TL1=0xF4;//波特率4800bit/s,初值

17:TH1=0xF4;

18:IE|=0x90;//中断

19:TR1=1;//启动定时器

20:TI=1;

21:

22:printf(“Program will stop if input value less than 50.\n”);

23:while(again)

24:{

25:printf(“Please input number==>”);

26:scanf(“%d”,&num);

27:printf(“The square for this number is%d\n”,SQ(num));

28:if(num>=50)

29:again=TRUE;

30:else

31:again=FALSE;

32:}

33:while(1);

34:}


3.输入圆的半径,求圆的周长和面积。要求使用无参宏定义圆周率。

提示使用以下宏定义语句定义圆周率,然后在程序中调用。


define PI 3.1415926/PI是宏名,3.1415926用来替换宏名的常数/


4.编写宏,求两个数的最大值。