第4章 顺序结构、选择结构和循环结构的程序设计

  1. 结构化程序设计方法。
    1. 任何算法的算法步骤都可以用顺序、选择、循环三个基本控制结构中的一种来描述。
    2. 结构化程序设计方法就是将解决问题的算法分解成仅由这三种控制结构组成的算法步骤,同时,所选用的计算机语言应提供实现这三种控制结构的对应语句。
  2. 结构化程序的三种基本结构。
    1. 顺序结构。
    2. 选择结构。选择结构又称为分支结构。
      1. 单分支选择结构。
      2. 双分支选择结构。
      3. 多分支选择结构。
    3. 循环结构。
      1. 当型循环结构。
      2. 直到型循环结构。
      3. 次数型循环结构。
  3. 顺序结构的程序设计。
    1. 赋值语句。
      1. 格式:
        【格式1】变量 = 表达式;
        【格式2】变量 自反赋值运算符 表达式;
      2. 从语句格式上看,赋值语句就是赋值表达式后跟一个分号。
    2. 函数调用语句。
      1. 函数是事先编好的一段程序,这段程序的加工对象成为函数的参数,加工后的结果可以利用函数值返回。
      2. 系统函数分类存放在扩展名为“h”的磁盘文件中,称为“头函数”或“头文件”。
      3. 要在程序中使用某个系统函数,必须在程序清单的开头写上下列命令:
        #include <头文件名.h>
      4. 函数调用语句的格式和功能如下:
        【格式】函数名(参数1, 参数2, ...);
        【功能】调用指定的系统函数或用户自编的函数,对圆括号中指定的参数进行函数约定的计算,运算的结果可以作为函数的返回值。
      5. 从语句格式上看,函数调用语句就是函数调用后跟一个分号。
    3. 表达式语句。
      1. 表达式语句的格式和功能如下:
        【格式】表达式;
        【功能】计算表达式的值。
      2. 从语句格式来看,表达式语句就是表达式后跟一个分号。
    4. 复合语句。
      1. 复合语句的格式和功能如下:
        【格式】{语句1;
        语句2;
        ...
        语句k;
        }
        【功能】依次执行语句1、语句2、...、语句k
      2. 复合语句中虽然含有多条语句,但是,整体上应看成一条语句。
      3. 复合语句中的语句若有数据定义语句,要放在复合语句中其他语句的前面。
    5. 字符输入/输出语句。输入和输出语句是程序中不可缺少的语句。C语言中并没有提供这两类语句,输入输出功能是采用系统函数来实现的。
      1. 字符输入函数。
        【函数调用格式】getchar()
        【函数参数】无。
        【函数功能】从键盘读取单个字符。只能读取单个字符。方法是输入字符后回车。若直接回车,则读取到的是回车符。若输入多个字符然后回车,则读取到的是输入的第一个字符。
        【函数返回值】读取的单个字符。
        接收该函数值时,可以用字符型或整型变量。通常采用下列赋值语句:
        变量 = getchar();
      2. 字符输出函数。
        【函数调用格式】putchar()
        【函数参数】ch 字符常量、字符变量或整型表达式。
        【函数功能】将参数ch对应的字符输出到显示器上。只能输出单个字符。puts()可以输出字符串;
        【函数返回值】ch对应的字符。
        通常的使用方式是利用下列两种函数调用语句:
        putchar(字符变量);    putchar('字符');
    6. 格式输入/输出函数。
      1. 格式化输入函数。
        1. 【函数调用格式】scanf(输入格式字符串, 输入变量地址表)
          【函数参数】输入格式字符串  由控制输入格式的字符组成的字符串。
          输入变量地址表  用逗号分隔的若干个接收输入数据的变量地址。
          【函数功能】从键盘按照“输入格式字符串”中规定的格式读取若干个数据,按“输入变量地址表”中变量的顺序,依次存入对应的变量。
          【函数返回值】读取的数据个数。
        2. 输入格式字符串是由输入格式字符和非格式字符组成的,通常是一个字符串常量。其中非格式字符作为输入数据的间隔,输入时必须原样原位置输入;而每个输入格式字符对应一个输入数据,输入时必须按照规定的格式输入。
        3. 常用的非格式字符主要是“逗号”。
        4. 常用的输入格式字符有:% md(十进制整型)、%mo、%mx、%mld(十进制长整型)、%mlo、%mlx、%mf、%me、%mlf、%mle、%mc(单个字符)、%ms(字符串)。
        5. 其中的m是一个整型常量,主要用来控制输入数据的位数。m可以省略,省略时可用空格、Tab、回车换行键作为两个输入数据的间隔;也可以在输入时用非格式字符作为两个数据的间隔。
        6. 针对每条输入语句,所有输入数据从键盘输入后,都要有一个回车换行健作为数据输入的结束。
        7. 用%c作为输入格式字符时,仅接受单个字符。
        8. 变量地址之间用“逗号”分隔。变量的地址必须写成“&变量名”。
      2. 格式化输出函数。
        1. 【函数调用格式】printf(输出格式字符串, 输出表达式表)
          【函数参数】输出格式字符串  由控制输出格式的字符组成的字符串。
          输出表达式表  用逗号分隔的若干个表达式表。
          【函数功能】先按照自左向右的顺序,依次计算“输出表达式表”中诸表达式的值。然后按照“输出格式字符串”中规定的格式顺序,将各个表达式值输出到显示器上显示。
          【函数返回值】输出数据的个数。
    7. 顺序结构程序设计举例。
  4. 选择结构的程序设计。
    1. 单分支选择语句。
      1. 【格式】if (表达式) 语句;
        【功能】计算表达式的值。
        如果为真(非0),则执行“语句”;
        否则不执行语句。
      2. 语句可以是除数据定义语句外的任何语句,当然也可以是另一个if语句。
    2. 双分支选择语句。(if-else)
      1. 在出现多个if-else的情况下,else总是和前面最近的if配对。
    3. 多分支选择语句。(switch)
      1. default及其后的语句组可以省略。
      2. 没有操作的case行是允许的。
    4. 选择结构程序设计举例。
      1. 同一个问题可以采用不同的算法或者不同的程序结构。一般来说,有经验的程序设计人员会选择程序清晰易读的方案。
      2. 闰年的二月份是29天,不是闰年的二月份是28天。闰年是能被4整除而不能被100整除的年份或者是能被400整除的年份。
  5. 循环结构的程序设计。
    1. while语句。
    2. do-while语句。
    3. for语句。
    4. break语句和continue语句。
      1. break语句只能用在三条循环语句的循环体中或switch语句中。
      2. continue语句只能用在三条循环语句的循环体中。
    5. 多重循环结构的实现。
      1. 输出图形:
        **
         ****
          ******
           ********
    6. 循环结构程序设计举例。
      1. 标记变量flag。
      2. 编写一个程序验证:任何一个自然数n的立方都等于n个连续奇数之和。
      3. “二分法”求高次方程的一个实根。

发表评论

电子邮件地址不会被公开。 必填项已用*标注