通过一学期对C语言的学习,我发现它有一定难度,但也是非常有趣的一门学科,对我们将来的职业也是有很大的帮助。这段时间我对C语言的了解分为以下几点:

   1、语言简洁,使用灵活方便。

   2、运算符丰富,表达能力强。

   3、数计类型丰富。

   4、目标程序质量高,具有面向硬件系统的特点。

   5、具有结构化的控制语句和模块化的程序结构。

   6、具有编译预处理功能。

   7、程序设计自由度大,可移植性好。

   在飞机游戏中上学期发现了许多上学期学习的基本C语言语句,例如:

          一、if语句:if语句一般有三种基本形式,其它扩展形式,也是以下面三种形式为基础

        1、 if……形式

  一般格式:if(表达式) 语句;

  语义是:如果表达式的值为真,则执行其后的语句,否则不执行该语句。语句可以是单条语句,也可以是用花括号{}包括起来的复合语句。示例如下:

    #include <stdio.h>
  int main(){
  int a,b,max;
  printf("\n input two numbers: ");
  scanf("%d%d",&a,&b);
  max=a;
  if (max<b) max=b;
  printf("max=%d\n",max);
  return 0;
  }


  2、if……else形式

  一般格式:

  if(表达式)

  语句1;

  else

  语句2;


  语义是:如果表达式的值为真,则执行语句1,否则执行语句2 。语句1和语句2可以是复合语句。

  示例如下:

 

 #include <stdio.h>
  int main(){
  int a, b;
  printf("input two numbers: ");
  scanf("%d%d",&a,&b);
  if(a>b)
  printf("max=%d\n",a);
  else
  printf("max=%d\n",b);
  return 0;
  }


  3、if……else……if形式

  一般形式为:

  if(表达式1)

  语句1;

  else if(表达式2)

  语句2;

  else if(表达式3)

  语句3;

  …

  else if(表达式m)

  语句m;

  else

  语句n;

  语义是:依次判断表达式的值,当出现某个值为真时,则执行其对应的语句。然后跳到整个if语句之外继续执行程序。 如果所有的表达式均为假,则执行语句n。然后继续执行后续程序。示例如下:

  

    #include <stdio.h>
  int main(){
  char c;
  printf("input a character: ");
  c=getchar();
  if(c<32)
  printf("This is a control character\n");
  else if(c>='0'&&c<='9')
  printf("This is a digit\n");
  else if(c>='A'&&c<='Z')
  printf("This is a capital letter\n");
  else if(c>='a'&&c<='z')
  printf("This is a small letter\n");
  else
  printf("This is an other character\n");
  return 0;
  }


  4、扩展形式

  if条件控制语句的形式是多种多样的。比如if嵌套、if……if类似的形式,但是都离不开上面介绍的三种基本形式。

二、for语句:

1: 

for语句的格式为: 
for (初始化语句; 条件语句; ) 
{ 
语句1 ; 
语句2 ; 
.... 

语句n ; 
} 

for 语句的执行顺序是:首先执行“初始化语句”;然后测试“条件语句”;若条件成立,则执行语句1到语句n;然后执行“控制”语句;接着再测试条件语句是否成立,如果成立则重复执行以上过程,直至条件不成立时才结束。如: 

for(i=0;i<10;i++)......; 

int i,a[]=new int[10]; 
for (i=0,i<10;i++) a[i]= 0; 

这段代码把整型数组a中的所有元素都赋成0。 
你可以在的头部说明你的变量,而且最后一个表达式可以省略,不过要确定在语句中对变量的值有所改变,如: 

for(int i=0;i<=10;) i+=i; 

for循环中,“初始化语句”、“条件语句”和“”都可以省略,但是其间的分号不能省略。例如: 
int i =0 ; 
for (; ; ;) 
{ 
if i>10 break ; 
i = i +1 ; 
} 

for循环中省略“条件语句”时,在for语句{}中必须包换转句语句控制程序在某个条件满足时跳出for循环,否则将形成死循环 

2:while循环 

while循环和for循环类似,其格式为: 
while (条件语句) 
{ 
语句1 ; 
语句2 ; 
.... 

语句n ; 
} 

执行while时,先测试“条件语句”,如果条件成立,则执行语句1到语句n,直至条件不成立时调处循环。 
int i=0 ; 
while (i<10) 
{ 
i++ ; 
System.out.println("Hey!.get me out of here!:); 
} 

3:do ... while 循环 
do ... while 循环语句的格式为: 
do 
{ 
语句1 ; 
语句2 ; 
.... 

语句n ; 
} 
while (条件语句) ; 

do ...while 语句的功能是首先执行语句1到语句n,然后进行条件测试,如果条件成立,则继续执行语句1到语句n,否这跳出循环。如: 
boolean test=false; 
do 
{ 
...... 

} 
while(test); 

这种控制并不是很常用,但有时却非常重要,使用时注意结尾处while语句后的分号。

          

三、switch语句:

switch (表达式或属性){ 

case 值1 : 语句1 

break; 

case 值2 : 语句2 

break; 

... 

default : 值n 

break; 



从表达式或属性值等于某个case语句后的值开始,它下方的所有语句都会一直运行,直到遇到一个break为止。随后,switch语句将结束,程序从switch结束大括号之后的第一个语句继续执行,并忽略其他case。 
假如任何一个case语句的值都不等于表达式或属性的值,就运行可选标签default之下的语句。 
假如表达式或属性的值和任何一个case标签都不匹配,同时没有发现一个default标签,程序会跳过整个switch语句,从它的结束大括号之后的第一个语句继续执行。

飞机游戏的结构分析:

switch(getch())//控制左右移动和进入菜单

      {

     case 'a':case 'A':

      if(pl>0)

     scr[21][pl]=0,scr[21][--pl]=1;

  break;

          case 'd':case 'D':

      if(pl<width-2)

     scr[21][pl]=0,scr[21][++pl]=1;

               break;

          case 'w':case 'W':

      scr[20][pl]=2;

      break;

 case 27 :

     setting();

              break;

      }

用来控制左右移动和进入菜单

飞机操作按键:A和D控制左右,W发射子弹。

程序中定义了一个二维数组,对应游戏界面。读取键盘按键操作数组内的数据,输出整个数组,刷新,重复。

有点类似一个x/y坐标,用不同的数值控制printf显示不同的字符,下面程序很好理解,就是用一个if多条件判断,

 for(j=0;j<width;j++)

{

  if(a[i][j]==0)

     printf(" ");

       if(a[i][j]==1)

          printf("\5");//输出我机的符号

       if(a[i][j]==2)

     printf(".");//子弹

       if(a[i][j]==3)

     printf("\3"); //输出敌机符号

       if(a[i][j]==4)

     printf("|");

       if(i==0&&j==width-1)

     printf("得分:%d",score);//右上角显示得分

       if(i==1&&j==width-1)

     printf("死亡:%d",death);

       if(i==2&&j==width-1)

     printf("设置:Esc");

       if(i==3&&j==width-1)

     printf("Copyright:王攀");

     }

     printf("\n");

如果是0,显示空白,1显示我的飞机,2显示子弹,3显示敌机,其他的就是显示。