《C程序设计初步》课件.ppt
第三章 C程序设计初步,3.1 结构化程序设计思想 3.2 C语句概述 3.3 赋值语句 3.4 数据输出 3.5 数据输入3.6 程序举例,总目录,3.1 结构化程序设计思想,3.1.1 程序的质量标准,一个好的程序在满足运行结果正确的基本条件之后,首先要有良好的结构,使程序清晰易懂。在此前提之下,才考虑使其运行速度尽可能的快,运行时所占内存应尽量压缩至合理的范围。也就是说,现在的程序质量标准易读性好是第一位的,其次才是效率。因为从根本上说,只有程序具有了良好的结构,才易于设计和维护,减少软件成本,从整体来说才是真正提高了效率。,本章目录,3.1.2 结构化程序设计方法,(1)一个大的程序开发应当采取“自顶向下,逐步细化,模块化”的方法。(2)任何程序均由具有良好特性的三种基本模块(顺序,分支,循环)“堆积”搭成,即由基本小单元顺序组成一个大结构,从而避免了使用goto语句的缺点。,本章目录,3.1.3 结构化程序的标准,(1)程序符合“清晰第一,效率第二”的质量标准。(2)具有良好的特性。只有一个入口。只有一个出口(有些分支结构很容易写成多个出口)。无死语句(永远执行不到的语句).没有死循环(永远执行不完的无终止的循环)。,本章目录,3.1.4 三种基本模块,1.顺序结构,图 3.1 顺序结构,本章目录,2.分支结构,图 3.2 分支结构,本章目录,3.循环结构,图 3.3 当型循环结构,本章目录,图 3.4 直到型循环结构,本章目录,3.2 C 语 句 概 述,C语言是函数式语言,每一个函数是由数据说明部分和执行语句部分组成。C语言中的所有语句均是执行语句,没有非执行语句。根据C语言的句法,语句可分为单个语句,复合语句和空语句。根据结构化程序设计的三个模块大致可分为:用于顺序结构中的表达式语句、赋值语句、函数调用语句等;用于分支结构中的if语句、switch语句、转移语句、标号语句等;用于循环结构中的while语句、for语句、do-while语句。另外在后两种结构中还可出现break语句、continue语句、复合语句和空语句等作为其中的一部分。,本章目录,(1)逻辑上每个语句最后都必须有一个分号(;),一个语句可分写成几行,几个语句也可合写成一行(但不提倡,因其不利于单步调试)。(2)空语句直接由分号(;)组成,常用于控制语句中必须出现语句之处,它不做任何操作,只在逻辑上起到有一个语句的作用。(3)复合语句由花括号 括起的若干个语句,语法上可以看成是一个语句。复合语句中最后一个语句的分号不能省略。如下面是一个复合语句:z=x+y;y=x/z;x=z-y;,本章目录,(4)表达式语句是在各种表达式后加一个分号(;)形成一个语句。如赋值语句由赋值表达式加一个分号构成:x=x+y;再如表达式x+后加一个分号构成表达式语句:x+;表达式和表达式语句的区别是表达式后无分号,可以出现在其它语句中允许出现表达式的地方;而表达式语句后有分号,自己独立成一个语句,不能再出现在其它语句的表达式中。如:if(a=b)0)min=a;,本章目录,(5)控制语句有条件判断语句(if、switch),循环语句(for、while、do-while),转移语句(goto、continue、break、return)。,本章目录,3.3 赋值语句,赋值语句是由赋值表达式加上一个分号构成。如x=a+b;。C语言的赋值语句具有其它高级语言中赋值语句的一切特点和功能,也有C语言自己的特色:(1)C语言中赋值号“=”作为赋值运算符。(2)其它高级语言没有赋值表达式这个概念。作为赋值表达式可以出现在其它表达式能出现的地方,也可出现在其它表达式之中。例如:if(x=a+b)!=0)t=10;,本章目录,3.4 数据输出,3.4.1 putchar函数(字符输出函数)函数调用形式:char ch;putchar(ch);,本章目录,例 3.1 字符数据的输出。include void main()char a,b;a=b;b=o;putchar(a);putchar(b);putchar(y);putchar(n);经编译后运行,在屏幕上显示:boy,本章目录,3.4.2 printf函数(格式输出函数),函数的调用形式:printf(控制字符串,参量表);,例如:printf(The output x=%dn,x);若x=10,则输出为“The output x=10”。,本章目录,表 3.1 printf()的格式说明,本章目录,例 3.2 不同类型数据的输出。,程序:,本章目录,3.4.3 puts函数(字符串输出函数),函数的原型是:char*puts(char*s),函数的调用形式是:puts(字符串数据);puts函数将字符串数据(可以是字符串常量、字符指针或字符数组名)写在屏幕上并换行。,本章目录,3.5 数据输入,3.5.1 getche函数与getchar()和getch(),getche函数的调用形式:char ch;ch=getche();getche()用于等待从键盘上键入一个字符,返回它的值并在屏幕上自动回显该字符。使用该函数必须在程序的头部使用文件包含命令:include,本章目录,例 3.3 单个字符的输入和输出。,include include void main()char ch;ch=getche();putchar(ch);putchar(n);经编译后运行,输入a,最后在屏幕上显示:aa,本章目录,自动回显,例 3.4 多个字符的输入和输出。,#include#include void main()char a,b,c;a=getch();b=getch();c=getch();putchar(a);putchar(b);putchar(c);putchar(n);,本章目录,不回显,3.5.2 scanf函数(格式输入函数),scanf函数的调用形式:scanf(控制字符串,参量表);如scanf(%d%d,即要在键盘上输入12-34 或 12-34 此时12送给变量a,-34送给变量b。,本章目录,表 3.2 scanf()的格式说明,本章目录,3.5.3 gets函数(字符串输入函数),函数的原型是:char*gets(char*s)其中s是一个字符数组或有存贮空间的字符指针。gets()函数用来从键盘读入一串字符,并把它们送到gets函数中的字符数组成字符型指针所指定地址的存贮单元中。在输入字符串后,必须用回车作为输入结束,该回车符并不属于这串字符,由一个“空操作字符(0)”在串的最后来代替它。此时空格不能结束字符串的输入。gets函数返回一个指针。,本章目录,例 3.5 字符串的输入和输出。程序:include void main()char str80;gets(str);puts(str);运算结果:ABC DEF ABC DEF,本章目录,3.6 程序举例,例 3.6 输入一个小写字母,按大写输出。程序一:include include void main()char ch;ch=getche();putchar(ch-32);运行:aA,本章目录,回显,输入的a,输出的A,程序二:include include void main()char ch;ch=getch();putchar(ch-32);运行:A,本章目录,不显示输入的a,程序三:include void main()char ch;ch=getchar();putchar(ch-32);运行:,本章目录,等待回车才能输入,显示输入的abcdefg,A,abcdefg,例 3.7 输入三角形的三条边长,求三角形的面积。我们假设输入的三边能构成三角形。分析:三角形面积的计算公式如下:,s=(a+b+c)/2,本章目录,程序:include include void main()float a,b,c,s,area;scanf(%f,%f,%f,运行:3,4,6a=3.00,b=4.00,c=6.00area=5.33,本章目录,