41、学习static定义静态变量的用法。
程序分析:
无。
参考代码:
#include<stdio.h>
int main()
{
void fun();
for(int i=0; i<3; i++)
fun();
return 0;
}
void fun()
{
int i=0;
static int static_i=0;
printf("i=%d\n",i);
printf("static_i=%d\n",static_i);
i++;
static_i++;
}
运行结果:
i=0 static_i=0 i=0 static_i=1 i=0 static_i=2
42、学习使用auto定义变量的用法。
程序分析:
无。
参考代码:
#include <stdio.h>
int main()
{
int i,num;
num=2;
for(i=0; i<3; i++)
{
printf("num 变量为 %d \n",num);
num++;
{
auto int num=1;
printf("内置模块 num 变量为 %d \n",num);
num++;
}
}
return 0;
}
运行结果:
num 变量为 2 内置模块 num 变量为 1 num 变量为 3 内置模块 num 变量为 1 num 变量为 4 内置模块 num 变量为 1
43、学习使用static的另一用法。
程序分析:
无。
参考代码:
#include <stdio.h>
int main()
{
int i,num;
num=2;
for(i=0; i<3; i++)
{
printf("num 变量为 %d \n",num);
num++;
{
static int num=1;
printf("内置模块 num 变量为 %d\n",num);
num++;
}
}
return 0;
}
运行结果:
num 变量为 2 内置模块 num 变量为 1 num 变量为 3 内置模块 num 变量为 2 num 变量为 4 内置模块 num 变量为 3
44、学习使用如何调用外部函数。
程序分析:
无。
参考代码:
#include <stdio.h>
int a,b,c;
void add()
{
int a;
a=3;
c=a+b;
}
int main()
{
a=b=4;
add();
printf("c 的值为 %d\n",c);
return 0;
}
运行结果:
c 的值为 7
45、学习使用register定义变量的方法。
程序分析:
无。
参考代码:
#include <stdio.h>
int main()
{
register int i;
int tmp=0;
for(i=1; i<=100; i++)
tmp+=i;
printf("总和为 %d\n",tmp);
return 0;
}
运行结果:
总和为 5050
46、宏#define命令练习。
程序分析:
无。
参考代码:
#include<stdio.h>
#define TRUE 1
#define FALSE 0
#define SQ(x) (x)*(x)
int main()
{
int num;
int again=1;
printf("如果值小于 50 程序将终止。\n");
while(again)
{
printf("\n请输入数字:");
scanf("%d",&num);
printf("该数字的平方为 %d \n",SQ(num));
if(num>=50)
again=TRUE;
else
again=FALSE;
}
return 0;
}
运行结果:
如果值小于 50 程序将终止。 请输入数字:100 该数字的平方为 10000 请输入数字:5 该数字的平方为 25
47、宏#define命令练习2。
程序分析:
无。
参考代码:
#include<stdio.h>
#define exchange(a,b) { int t;t=a;a=b;b=t;}//注意放在一行里
int main()
{
int x=10;
int y=20;
printf("x=%d; y=%d\n",x,y);
exchange(x,y);
printf("x=%d; y=%d\n",x,y);
return 0;
}
运行结果:
x=10; y=20 x=20; y=10
48、宏#define命令练习3。
程序分析:
无。
参考代码:
#define LAG >
#define SMA <
#define EQ ==
#include <stdio.h>
int main()
{
int i,j;
printf("请输入两个数字:\n");
scanf("%d %d",&i,&j);
if(i LAG j)
printf("%d 大于 %d \n",i,j);
else if(i EQ j)
printf("%d 等于 %d \n",i,j);
else if(i SMA j)
printf("%d 小于 %d \n",i,j);
else
printf("没有值。\n");
return 0;
}
运行结果:
请输入两个数字: 1 2 1 小于 2
49、#if #ifdef和#ifndef的综合应用。
程序分析:
无。
参考代码:
#include<stdio.h>
#define MAX
#define MAXIMUM(x,y)(x>y)?x:y
#define MINIMUM(x,y) (x>y)?y:x
int main()
{
int a=10,b=20;
#ifdef MAX
printf("更大的数字是 %d\n",MAXIMUM(a,b));
#else
printf("更小的数字是 %d\n",MINIMUM(a,b));
#endif
#ifndef MIN
printf("更小的数字是 %d\n",MINIMUM(a,b));
#else
printf("更大的数字是 %d\n",MAXIMUM(a,b));
#endif
#undef MAX
#ifdef MAX
printf("更大的数字是 %d\n",MAXIMUM(a,b));
#else
printf("更小的数字是 %d\n",MINIMUM(a,b));
#endif
#define MIN
#ifndef MIN
printf("更小的数字是 %d\n",MINIMUM(a,b));
#else
printf("更大的数字是 %d\n",MAXIMUM(a,b));
#endif
return 0;
}
运行结果:
更大的数字是 20 更小的数字是 10 更小的数字是 10 更大的数字是 20
50、#include 的应用练习。
程序分析:
无。
参考代码:
test.h 文件代码如下:
#define LAG >
#define SMA <
#define EQ ==
主文件代码:
#include "test.h"
#include <stdio.h>
int main()
{
int i=10;
int j=20;
if(i LAG j)
printf("%d 大于 %d \n",i,j);
else if(i EQ j)
printf("%d 等于 %d \n",i,j);
else if(i SMA j)
printf("%d 小于 %d \n",i,j);
else
printf("没有值。\n");
return 0;
}
运行结果:
10 小于 20