03-控制结构-c语言初学系列

目录

3.1 程序设计的一般方法

3.2 结构化程序设计

3.3 C语言的顺序结构

3.4 if 语句

3.4 if 语句

§3.5 switch语句


3.1 程序设计的一般方法

  • 程序就是按照某种算法,在有限的步骤内对一些经过整理的、按照一定形式组织起来的有关联的数据(即数据结构)进行分析研究,得到期望的结果,并且计算机可以执行的指令序列。
  • 数据结构和算法是程序设计的主要因素。
  • 程序设计的一般方法可以概括为以下四个步骤:
  • 明确处理对象、选择算法
  • 画流程图
  • 编写程序
  • 调试程序
  • 已知三角形三条边,求三角形的面积
  • 首先需要明确处理对象,选择适合的算法
  • 根据数据特点和取值范围,浮点型的数据可以很好地表示三角形的边长和面积。
  • 如果a、b、c符合两边之和大于第三边,则a、b、c可以组成三角形,其面积的算法可以使用海伦公式
  • 第二步画流程图。
  • 流程图用来表示各种操作的图框。

  • 已知三角形三条边,求三角形的面积
  • 第三步根据流程图编写程序。
  • 选择一种计算机语言,按照流程图用该计算机语言提供的语句体编写源程序。
  • 第四步调试程序。
  • 对已经编写好的源程序进行上机调试,并验算结果。如果不正确,修改程序再调试,直到得到期望的结果。

3.2 结构化程序设计

  • 结构化程序设计方法的基本思想是:
  • 任何程序都可用三种基本结构的组合来实现。
  • 这三种基本结构是:顺序结构、选择结构和循环结构。
  • 这三种结构都具有一个入口和一个出口。
  • 要求限制无条件转移语句(即goto语句)的使用

顺序结构:是按照书写顺序依次执行的。

选择结构:是对给定的条件进行判断,再根据判断的结果决定决定执行哪一个分支

循环结构:是在给定条件成立时反复执行某段程序。

3.3 C语言的顺序结构

顺序结构是结构化程序设计的三种基本结构中最简单的。它可以独立存在,也可以出现在选择结构或循环结构中,整个程序都存在顺序结构。在顺序结构中,函数、一段程序或者语句是按照出现的先后顺序执行的。

例 求ax2+bx+c=0方程的解。a、b、c由键盘输入,且b2-4ac>0。

算法表示:

定义a、b、c、p、x1、x2用于存放方程的系数、中间变量和结果;

输入a、b、c

p=sqrt (b*b-4*a*c)

计算x1、x2:

x1=(-b+p)/(2*a)

x2=(-b-p)/(2*a)

输出方程的根x1、x2

举一反三 :画出实现“输入三个数a、b、c,输出平均值aver”的程序的流程图和伪代码。

3.4 if 语句

  • 选择结构是结构化程序的三种基本结构之一,用于根据给定条件的判断执行何种操作。C语言中的选择结构有两种:if语句和case语句。If语句主要提供两个分支的选择,case语句提供多分支的选择。下面我们先介绍最为常用的选择结构if语句。

if 语句的基本形式

if (条件)

语句1;

else

语句2;

  • 判断方程ax2+bx+c=0是否有实数解,其中a、b、c由键盘输入
  • 分析:用伪代码表示算法:
  • 定义a、b、c、p用于存放
  • 方程的系数、中间变量;
  • 输入a、b、c
  • 令p=b*b-4*a*c
  • if (p>=0) 输出方程有实数解
  • else 输出方程无实数解

由键盘输入系数a、b、c,判断方程ax2+bx+c=0是否有实数解,如果有则输出其解。

当语句2为空时,else可以省略,if语句形式变换为:

if (条件)

语句;

  • 例 :由键盘输入x、y两个数,要求从大到小排序并输出。
  • 分析 :
  • 关键技术:两个变量互换算法是: t=x;x=y;y=t;
  • 定义x、y、t用于存放输入的两个数和中间变量;
  • 输入x、y
  • if (x<y) {t=x;x=y;y=t;}
  • 输出x、y

#include <stdio.h>
void main()                
{
float x,y,t;
scanf (“%f,%f”,&x,&y);
if (x<y)
  {t=x;x=y;y=t;}
printf(“%6.2f,%6.2f”,x,y);
} 

当if语句中的语句1或语句2是一个含if语句的复合语句时,形成if语句的嵌套。

形式一:当语句2是if语句结构

if  (条件1)   语句1
   else  if  (条件2)
   语句2
       else  语句3

形式二:当语句1是if语句结构

if  (条件1)
 if  (条件2)   语句1
        else   语句2
else  语句3

例:编写程序,输入一个x,按照函数要求输出y值。

分析 :

采用形式一的算法:

定义变量x,y

输入x

   if  (x<0)    y=-1; 
   else    if  (x= =0) y=0;  
 else y=1; 

输出y值

采用形式二的算法:

定义变量x,y输入x

输入x if  (x<=0)
if  (x<0)  y= -1;
else  y=0;
else  y=1;

输出y值

举一反三 :试判断下列选择结构是否可以表示上例函数。

if (x<0) y=-1;
if (x= =0) y=0;
else y=1;
  • 在if语句嵌套中,特别注意else与if的配对问题
  • C编译系统处理该问题的的原则是:else总是与同一语法层次中离它最近的尚未配对的if配对。为了避免出现else的配对错误,通常利用大括号将if-else语句结构括起来。
  • 程序段一: 程序段二:
  • if (a>=0) if (a>=0)
  • {if (a>0) printf(“a>0\n”);} if (a>0) printf(“a>0\n”);
  • else printf(“a<0\n”); else printf(“a= =0\n”);

3.4 if 语句

  • 关系运算符
  • < 小于
  • <=小于或等于
  • >大于
  • >=大于或等于
  • ==等于
  • !=不等于
  • 逻辑运算符
  • &&逻辑与(相当于AND,并且)
  • ||逻辑或(相当于OR,或者)
  • !逻辑非(相当于NOT,非)

§3.5 switch语句

  • switch语句
  • 用于实现多重分支
  • 格式为

switch(整型表达式)

{

case 数值1:语句1;break;

case 数值2:语句2;break;

… … … …

case 数值n:语句n;break;

default :语句n+1

}

注意:如果需要执行完本case语句后就跳出switch语句,则在对应的case语句后加上一个break语句

  • switch语句
  • 由键盘输入一个成绩,然后输出相应的等级“优”、“良”、“中”、“及格”、“不及格”。

#include <stdio.h>
void main()                 
{ int score;
   printf(“请输入学生分数:”);
   scanf (“%d”,&score);
   switch (score)
    { case 10:
       case 9: printf(“成绩优秀\n”);  break;
       case 8: printf(“成绩良好\n”);  break;
       case 7: printf(“成绩中等n”);   break;
       case 6: printf(“成绩及格\n”);  break;
       case 5:  
       case 4:  
       case 3:  
       case 2:  
       case 1:  
       case 0: printf(“成绩不及格\n”); break;
       default : printf(“输入分数错误\n”);
     }
     return;
  }


举一反三 :
由键盘输入等级A、B、C、D,输出成绩范围。其中“A”代表85~100分,“B”代表70~85分,“C”代表60~70分,“D”代表60分以下。

/*-----------------------------------------------------------------
   程序L3_8.C : 从键盘输入0~6之间的数字,输出对应星期中的英文单词。
   -----------------------------------------------------------------*/
 #include <stdio.h>
 main( )                               
 { 
  char  w;
  scanf("%c",&w);              
  switch (w)
        { case '0': printf("Sunday\n"); break;   
           case '1': printf("Monday\n"); break;
           case '2': printf("Tuesday\n"); break; 
           case '3': printf("Wednesday\n"); break;   
           case '4': printf("Thursday\n"); break;
           case '5': printf("Friday\n"); break;
           case '6': printf("Saturday\n"); break;
        }
   }


作业与上机练习
1.输入两个数,判断两个数的关系是“大于”、“等于”或“小于”,并输出结果。
2.从键盘任意输入三个整数,按从小到大顺序输出。
3. 判断ax2+bx+c=0方程的有几个解,如果有解则输出。系数a、b、c由键盘输入。
4. 要求输出如下菜单
主菜单
================================

    1. 输入功能
    2. 按学号查找
    3. 打印输出

0. 退出

================================

请选择 (0~3):

如果选择1,则显示“请输入”;选择2,则显示“请输入查找学生学号”;选择3,显示“正在输出”;选择0,显示“谢谢使用”;选择其它则显示“输入错误”。(用switch语句实现)。

上机题目:

  • 思考题:
  • 给一个不多于5位的正整数,要求:
  • 1.求出它是几位数
  • 2.分别打印出每一位数字
  • 3.按逆序打印出各位数字,例如原数321,输出123

ps:此教程配套ppt下载地址如下,如果需要可以下一下,不过其实也无所谓,这篇文章就是全部文本。

03-控制结构-选择结构-自己使用的C语言教程PPT-适合备课或自学-C文档类资源-CSDN文库​




 

 全部课程的PPT已经整理好了,需要的童鞋可以点击下载
总-自己使用的C语言教程PPT-适合老师备课或者自学-15篇PPT合集.zip-C文档类资源-CSDN下载

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

锁住子锁不住

老少爷们向前冲!!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值