秋风舞落叶 发表于 2009-4-1 09:13:42

C 语言的特点

C 语言发展如此迅速, 而且成为最受欢迎的语言之一, 主要因为它具有强大的
功能。许多著名的系统软件, 如DBASE Ⅲ PLUS、DBASE Ⅳ 都是由C 语言编写的。

用C 语言加上一些汇编语言子程序, 就更能显示C 语言的优势了,
象PC- DOS 、

WORDSTAR等就是用这种方法编写的。归纳起来C 语言具有下列特点:

1. C是中级语言


它把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以象

汇编语言一样对位、字节和地址进行操作, 而这三者是计算机最基本的工作单元。


2. C是结构式语言


结构式语言的显著特点是代码及数据的分隔化, 即程序的各个部分除了必要的

信息交流外彼此独立。这种结构化方式可使程序层次清晰, 便于使用、维护以及调

试。C 语言是以函数形式提供给用户的,
这些函数可方便的调用,
并具有多种循

环、条件语句控制程序流向, 从而使程序完全结构化。


3. C语言功能齐全


C 语言具有各种各样的数据类型, 并引入了指针概念, 可使程序效率更高。另

外C 语言也具有强大的图形功能, 支持多种显示器和驱动器。而且计算功能、逻辑

判断功能也比较强大, 可以实现决策目的。


4. C语言适用范围大


C 语言还有一个突出的优点就是适合于多种操作系统, 如DOS、UNIX,也适用于

多种机型。


……………………………复制下面红色字段………………………………………


/*这是简单的推箱子游戏,大家试试玩,谁有更好的Idea?   */
#include"stdio.h"
#include"bios.h"
#define LEFT 75
#define RIGHT 77
#define UPPER 72
#define DOWN 80
#define ESC 27
struct Boxss      /*定义箱子结构体,其中包含坐标属性*/
{
int x,y;
};
union keyboard      /*定义读取键盘码的共用体类型*/
{
unsigned int iKeyInfo;
char chKeyBit;
};
int fnGetKey(void)/*定义读取键盘码的函数*/
{
union keyboard uniKey1;    /*定义读取键盘码的共用体变量*/
while(bioskey(1)==0);      /*检测用户是否按键*/
uniKey1.iKeyInfo=bioskey(0);         /*读取按键信息*/
return(uniKey1.chKeyBit==0?uniKey1.chKeyBit:uniKey1.chKeyBit);/*返回ASCII码或扩充码*/
}
void main()
{
int iKey,x=11,y=6,tx=11,ty=6;       /*x,y为人物移动后坐标,tx,ty为人物移动前坐标*/
struct Boxss Box;                /*定义箱子数量*/
int chMap={               /*用二维数组定义地图*/
                  {0,0,0,0,0,0,0,0,0,0},          /*0表示墙1表示路2表示目标*/
                  {0,1,0,0,0,0,1,1,1,0},
                  {0,1,0,2,0,0,1,0,1,0},
                  {0,1,0,1,0,0,1,0,1,0},
                  {0,1,1,1,0,0,1,0,1,0},
                  {0,1,0,0,0,0,1,0,1,0},
                  {0,1,1,1,1,1,1,0,1,0},
                  {0,1,0,1,0,0,0,0,2,0},
                  {0,2,0,1,1,1,1,2,0,0},
                  {0,0,0,0,0,0,0,0,0,0},
                  };
int i,j;
Box.x=13;       /*定义箱子的坐标属性*/
Box.x=11;
Box.x=14;
Box.x=18;
Box.y=8;
Box.y=7;
Box.y=13;
Box.y=7;
while(1)               /*反复进行求移动的坐标运算*/
{
for(i=0;i<10;i++)       /*输出新地图(刷新地图)*/
    {
    gotoxy(10,5+i);
    for(j=0;j<10;j++)
      {
      if(chMap==0)
      printf("#");
      if(chMap==1)
      printf(" ");
      if(chMap==2)
      printf("X");
      }
    }
j=0;                                       /*判断是否所有箱子都在目标坐标上*/
for(i=0;i<4;i++)
    if(chMap.y-5].x-10]==2)
    j++;
if(j==4)                                 /*如果所有箱子都就位输出"YOU WIN!"退出*/
      {
      clrscr();
      printf("You Win!");
      break;
      }
for(i=0;i<4;i++)                           /*在起始(或移动后)的坐标输出箱子*/
    {
    gotoxy(Box.x,Box.y);
    printf("0");
    }
gotoxy(x,y);                               /*在起始(或移动后)的坐标输出人*/
printf("*\b");
tx=x;                                    /*记录本次移动前的坐标*/
ty=y;
iKey=fnGetKey();
if(iKey==LEFT&&chMap!=0)      /*按读取的按键信息改变坐标如果改变的坐标和墙(0)重合则不改变*/
    x--;
if(iKey==RIGHT&&chMap!=0)
    x++;
if(iKey==UPPER&&chMap!=0)
    y--;
if(iKey==DOWN&&chMap!=0)
    y++;                                    /*输入ESC退出并输出"YOU LOST"*/
if(iKey==ESC)
{
clrscr();
printf("You Lost");
break;
}
for(i=0;i<4;i++)                        /*如果移动后的人的坐标与箱子坐标重合,则改变箱子坐标向前一格*/
    if(Box.x==x&&Box.y==y)
      {
      Box.x+=(x-tx);
      Box.y+=(y-ty);
    if(chMap.y-5].x-10]==0)   /*如果移动后的箱子坐标会出现在墙上,则使箱子坐标和人坐标都返回移动前的值*/
      {
      Box.x-=(x-tx);
      Box.y-=(y-ty);
      x=tx;
      y=ty;
      }
      break;
      }
clrscr();
}
getch();
}



………………………END(复制上面的红色字段)…………………………………………………
页: [1]
查看完整版本: C 语言的特点