内容正文:
YCF
正版可修改PPT
(中职)C语言程序设计模块五ppt电子课件
1
C语言程序的三种结构
模块5
LOGO
5.1算 法 简 述
算法是指对整个问题解决过程的描述。这个描述可以是自然语言,也可以是流程图等,其中流程图是算法描述中使用最为普遍的一种。例如:
的士计费规则:起步价5元,含2公里范围,2~10公里(含)以内每公里以1.5元计,10公里以外(超出10公里的部分)每公里以2元计。程序图如图5-1所示。
图5-1的士计费规则程序图
1
有穷性:算法必须能在执行有限个步骤之后终止。
2
确切性:算法的每一步骤必须有确切的定义。
3
输入项:一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定出了初始条件。
4
输出项:一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的。
5
可行性:算法中执行的任何计算步骤都是可以被分解为基本的可执行的操作步,即每个计算步都可以在有限时间内完成(也称为有效性)。
一般来说,算法具备五个明显的特征:
5.1算 法 简 述
4
5.2顺序结构程序设计
5.2.1顺序结构程序设计示例
1.#include "stdio.h"
2.int main()
3.{
4.char a,b,c;/*定义a,b,c三个字符变量*/
5.char ch[10];/*定义一个名为ch的一维字符数组,数组长度10*/
6.printf("Please input T , o , m:\n");/*提示输入T,o,m这3个字符*/
7.a=getchar();/*从键盘获取一个字符,赋给字符变量a*/
8.b=getchar();/*从键盘获取一个字符,赋给字符变量b*/
9.scanf("%c",&c);/*从键盘给字符变量c输入值*/
10.putchar(a);/* 输出字符变量a的值*/
5.2顺序结构程序设计
5.2.1顺序结构程序设计示例
11.putchar(b);/*输出字符变量b的值*/
12.printf("%c",c);/*输出字符变量c的值*/
13.putchar( ! );/*输出一个“!”号*/
14.putchar( \n );/*输出一个换行符,即换一行*/
15.printf("Tom s ASCII is:%d\n",a+b+c);/*输出3个字符变量所存放字符的ASCII码之和*/
16.printf("Please input Lucy :\n");/*提示输入“Lucy”*/
17.scanf("%s",ch);/*输入Lucy这个字符串*/
18.printf("%s\n",ch);/*输出Lucy这个字符串*/
19.printf("Lucy s ASCII is:%d\n", L + u + c + y );/*输出“Lucy”每个字符的ASCII码之和*/
20.}
字符变量只能用来存放单个字符,在内存中占1个字节的内存空间。
5.2顺序结构程序设计
5.2.2程序详解
1.char a,b,c;——字符变量
7
5.2顺序结构程序设计
5.2.2程序详解
字符变量只能存放单个字符,那字符串怎么办呢?当然得用字符数组了。这里声明了一个名为ch的一维字符数组,长度为10,即字符个数(包括空格及结尾符\0。C语言中空格也是字符)不能超过10个。这里要区分两个概念,一个是字符数组实际长度,另一个是字符数组内存长度。例如:①char a[10]="good";字符数组a的实际长度为4(4个字符),内存长度为10。②char b[]="good";字符数组b的实际长度为4,内存长度为5。上列表明,在给字符数组初始化赋字符串时,系统会自动在串后面加上结尾符\0,但是不会计入数组的长度,即数组实际长度仍为4。如果没有定义数组长度而初始化了字符串,计算内存长度时要加上这个结尾符(占1 B),如“char b[]="good";”,则sizeof(b)的结果就是5。
2.char ch[10];——一维字符数组
5.2顺序结构程序设计
5.2.2程序详解
(1)输入字符串:scanf("%s",ch)。
(2)输出字符串:printf("%s",ch)。
要注意的是:在用scanf输入字符串时,因为scanf以空格、回车和Tab键作为分隔符,因此,若输入了空格,系统将其默认为结尾符,表示输入到此结束,这点要特别注意。而且,数组名代表了数组首元素首地址,不用加地址与&运算符。
数组名代表了数组首元素首地址,只需数组名,便可输出整个串。
关于数组,我们以后再进行详述,这里略微提及一下。
字符数组因为存放的是字符串,因而可以用%s这个字符串格式声明进行输入和输出。举例说明:
5.2顺序结构程序设计
5.2.