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.编写宏,求两个数的最大值。