实验9变量的存储属性与编译预处理
实验9 变量的存储属性与编译预处理
一、实验目的
1(理解、掌握变量的作用域和生存期的概念。
2(掌握全局变量、局部变量的定义
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
以及它们作用域的确定方法。 3(掌握静态局部变量的定义和使用方法。
(掌握宏定义的方法,了解使用宏时应注意的问题。 4
5(掌握文件包含处理的方法。
6(了解条件编译的方法。
二、实验
内容
财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容
1(验证性实验
(1) 下列程序的执行结果是什么,(理解变量的作用域、生存期,全局变量及局部变量的
定义方法)
#include
---MAIN--- int i=1;
I:1 a:0 b:-10 c: 0 int main() 程{ static int a; ---OTHER--- 变 int b=-10; 序I:33 a:4 b:0 c: 15 量 int c=0; 分 void other(void); ---MAIN--- 变 printf("---MAIN---\n"); 析 I:33 a:0 b:-10 c:8 化 printf(" i:%d a: %d b:% d c: %d\n",i,a,b,c);
c=c+8; other(); ---OTHER---
printf("---MAIN---\n"); I:75 a:6 b:4 c: 15 printf(" i:%d a: %d b:% d c: %d\n",i,a,b,c); i=i+10; other();
}
void other(void)
{ static int a=2;
static int b;
int c=10;
a=a+2; i=i+32; c=c+5;
printf("---OTHER---\n");
printf(" i:%d a: %d b:% d c: %d\n",i,a,b,c);
b=a;
}
(2)下列程序的执行结果是什么,(利用参数宏实现两个参数的值交换) #include
enter 2 integer (x y) to #define SWAP(a,b) {int t=a; a=b; b=t;}
swap:
void main()
{ int x,y;
printf("enter 2 integer (x y) to swap:");
scanf("%d%d",&x,&y);
SWAP(x,y); {int t=x ;x=y ;y=t ;}
printf("swap..\nx=%d,y=%d\n",x,y); }
(3)下列程序的执行结果是什么,(利用带参数宏判断一个字符是否为字母字符)
#include
#define MYALPHA(c) (c>='A'&&c<='Z'||c>='a'&&c<='z'?1:0)
void main()
{ char ch;
printf("enter a char:"); scanf("%c",&ch);
if(MYALPHA(ch)) if((ch>='A'&&ch='Z'||ch>='a'&&ch<='z'?1:0))
printf("%c is an alpha.\n",ch);
else
printf("%c isn't an alpha.\n",ch); }
2(程序填空
(1)函数fac()求n的阶乘,主函数main()打印l,6的阶乘。
#include
int fac(int n)
{ int f;
if(n==1||n==0) f=1;
else f=fac(n-1)*n;
return f;
}
void main()
{
int i;
for(i=1;i<=6;i++)
printf("%d!=%d\n",i, fac(i) );
}
(2)以下程序的功能是求三个数的最大值。
#include
#define MAX(a,b) ((a)>(b)?(a):(b) )
void main( )
{int a,b,c,m;
printf("input three number a,b,c:\n");
scanf("%d%d%d",&a,&b,&c);
m=MAX(MAX(a,b),c);
printf("the max number is %d!\n",m); }
3(程序改错
以下程序的功能是用带参数的宏计算园面积。
#include
#define PI 3.14 ?
#define GETAREA(r) PI*(r)*(r)
void main( )
{float r,s;
scanf("%f",&r); ?
s=GETAREA(r+2); s=PI*(r+2)*(r+2);
printf("s=%f\n",s); ?
}
4(
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
性实验
(1)编写一函数,把输入的4个数字字符转换成int数据存放。
22(2)从主函数中输入ax+bx+c=0的a、b、c参数,用函数求出当b-4ac大于等于0时的
实数根,并输出结果。
(3)编写一函数,将形参n中各位上为偶数的数取出,按原来从高到低位的顺序组成一
个新的数,并作为函数值返回。
(4)定义两个带参数的宏,将两个参数的值相加和相减,并写出程序,输入两个数作为使用
宏时的实参。输出相加和相减后的和与差。
#include
#define TSH(a,b,c) s void main()
{ float a,b,c,d,e,f;
printf(“输入a,b,c”);
scanf(“%f%f%f”,&a,&b,&c);
if(b*b-4*a*c>0)
{d*d=b*b-4*a*c;
e=(d-b)/2a;
f=(-d-b)/2a;
}
else
printf(“the printf is wrong!”);
printf(“e=%f\nf=%f\n”,e,f);
getch();
}