目录

  • 1 第一章 C语言简介
    • 1.1 C语言前世今生
    • 1.2 主流开发环境介绍
    • 1.3 第一个小程序解析
    • 1.4 常见编译错误
    • 1.5 章节知识点小结
  • 2 算法基础
    • 2.1 算法-程序的灵魂
    • 2.2 算法的描述-流程图
  • 3 数据类型与运算符
    • 3.1 数据描述
    • 3.2 运算符和表达式1
    • 3.3 运算符和表达式2
    • 3.4 章节知识点小结
  • 4 顺序结构程序设计
    • 4.1 输入和输出
    • 4.2 顺序结构程序设计
    • 4.3 章节知识点小结
  • 5 选择结构程序设计
    • 5.1 关系运算符和关系表达式
    • 5.2 逻辑运算符和逻辑表达式
    • 5.3 if语句
    • 5.4 条件运算符
    • 5.5 switch语句
    • 5.6 章节知识点小结
  • 6 循环结构程序设计
    • 6.1 while循环结构
    • 6.2 do_while循环结构
    • 6.3 for循环结构
    • 6.4 循环的嵌套
    • 6.5 break语句和continue语句
    • 6.6 章节知识点小结
  • 7 数组
    • 7.1 一维数组
    • 7.2 二维数组
    • 7.3 字符数组
    • 7.4 章节知识点小结
  • 8 函数
    • 8.1 子程序设计
    • 8.2 函数定义
    • 8.3 函数的调用
    • 8.4 局部变量和全局变量
    • 8.5 参数传递
    • 8.6 函数递归调用
    • 8.7 章节知识点小结
  • 9 指针
    • 9.1 指针的基本概念
    • 9.2 指针变量的定义及引用
    • 9.3 通过指针引用数组元素
    • 9.4 指向多维数组的指针和指针变量
    • 9.5 用指向数组的指针作函数参数
    • 9.6 指针与字符串
    • 9.7 函数指针和指针函数
    • 9.8 章节知识点小结
  • 10 用户自己建立数据类型
    • 10.1 定义和使用结构体变量
    • 10.2 使用结构体数组
    • 10.3 结构体指针
    • 10.4 章节知识点小结
  • 11 编译预处理
    • 11.1 宏定义预处理
    • 11.2 文件包含预处理
    • 11.3 条件编译预处理
    • 11.4 章节知识点小结
  • 12 文件
    • 12.1 文件的基本知识
    • 12.2 文件的基本操作
    • 12.3 章节知识点小结
for循环结构


for语句不仅可以用于循环次数已经确定的情况,还可以用于循环次数不确定而只给出循环结束条件的情况。

for语句完全可以代替while语句。

for (i=1;i<=100;i++)

    printf("%d ", i );  


1.for语句的一般形式为

    for(表达式1;表达式2;表达式3) 

                语句

表达式1一般为初始条件表达式,只执行一次;

表达式2一般为循环条件表达式,用来判断是否继续循环;

表达式3一般为循环条件增量表达式,使循环能够结束。

执行过程:

(1) 求解表达式1

(2) 求解表达式2,若值为真,执行循环体语句,再转第(3)步。若为假,则结束循环 

(3) 求解表达式3

(4) 转回第(2)继续执行


for(i=1;i<=100;i++) 

       sum=sum+i;

等价于

i=1;

while(i<=100)

{

     sum=sum+i;

     i++;

}


思考:

① 1+3+5+......+99 。

② 1-2+3-4+.....+99-100 。

③ 1*2*3*4*5 。

例题1:

求费波那西(Fibonacci)数列的前40个数。这个数列有如下特点:第1、2两个数为1、1。从第3个数开始,该数是其前面两个数之和。即:


方法一:


#include <stdio.h>

int main()

 { int f1=1,f2=1,f3;  int i;

    printf("%12d\n%12d\n",f1,f2);

    for(i=1; i<=38; i++)

    {  f3=f1+f2;

    printf("%12d\n",f3);

    f1=f2;

    f2=f3;

    }

    return 0;

}


代码可改进

方法二:


#include <stdio.h>

int main()

 {  int f1=1,f2=1;  int i;

     for(i=1; i<=20; i++)

    { printf("%12d %12d ",f1,f2);         

       if(i%2==0) printf("\n");

       f1=f1+f2;                       

       f2=f2+f1;                      

     }

    return 0;

 }


2.for循环的其他形式




for(i=0; (c=getchar())!=’\n’ ; i+=c);  

for(      ; (c=getchar())!=’\n’;     )

          printf(″%c″,c); 

For语句在EASYX图形程序设计中的应用

10条直线的代码:
#include <graphics.h>
#include <conio.h>
void main()
{
   initgraph(640, 480);
   for(int y=100; y<200; y+=10)
         line(100, y, 300, y);
   getch();
   closegraph();
}

换一下循环的范围和间隔,看看效果。

还可以用来画渐变色,例如:
#include <graphics.h>
#include <conio.h>
void main()
{
    initgraph(640, 480);
   for(int y=0; y<256; y++)
   {
         setcolor(RGB(0,0,y));
       line(100, y, 300, y);
   }
   getch();
   closegraph();
}

[作业]
1.
画围棋棋盘。
2.
画中国象棋的棋盘
3.
画国际象棋的棋盘,看手册找到颜色填充语句,实现过期象棋棋盘的区块填充。
4.
自学while语句。