《《顺序结构程序》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《顺序结构程序》PPT课件.ppt(47页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第四章第四章 顺序结构程序顺序结构程序4.1 C语句概述语句概述 C语句全部为可执行语句,对应若干机器操作指命令C程序由许多源文件组成。(分别编译,然后连接)每一个源文件由预编译命令和若干函数组成。每一个函数由说明部分和语句部分组成。C程序结构如图:除说明部分外,重要部分为语句部分。C 程 序源程序文件1源程序文件i源程序文件n预编译命令函 数1函 数n说 明 部 分执行部分(语句)函数调用语句函数调用语句:如:printf();C C 语句分为六类1.表达式语句赋值语句赋值语句:如:i=i+1;i+;x+y;空语句空语句:任何事情都不做。2.控制语句改变语句的执行顺序 if()else (条
2、件)for()(循环)while()(循环)do while (循环)switch (多分支选择)()表示条件,表示语句 continue (结束本次循环)break (中止整个循环)return (函数返回)3.限定转向(无条件转向)语句5.终止程序运行语句4.无条件转移语句goto exit6.复合语句用 括起来的一系列语句。如:z=x+y;t=z/100;printf(%f,t);4.2 4.2 赋值语句赋值语句 由赋值表达式加分号;构成,与其它高级语言相比有以下不同点:“=”为一运算符,由此,构成一赋值表达式,可出现于表达式能出现的任何地方:if (a=b)0)t=a;4.3 4.3
3、数据输出输出在数据输出输出在C C语语言中的实现言中的实现 前面已论述:C语言本身无输入/出语句,由函数实现,如printf.等。一般:C语言提供了一些标准的输入/出函数系统函数。形式:putchar(c);功能:向终端(一般为显示器)输出一个字符,其中c为 字符型或整型变量注意:用该函数时,须用预编译命令:#include stdio.h 4.4.1 putchar 函数函数 字符输出函数字符输出函数4.4 4.4 字符数据输入输出字符数据输入输出例例4.1:4.1:#include stdio.h结果:BOYmain()char a,b,c;a=B;b=O;c=Y;putchar(a);p
4、utchar(b);putchar(c);putchar(a);putchar(n);putchar(b);putchar(n);putchar(c);putchar(n);*利用putchar还可输出其它转义字符结果:B O Y putchar(101);输出Aputchar();输出putchar(015);输出*若将最后一行改为:4.4.2 getchar 函数函数()字符输入函数字符输入函数形式:getchar()功能:从标准输入装置(键盘)上输入一个字符要求:有#include stdio.h预编译命令例4.2:#include stdio.h“main()char c;c=getc
5、har();putchar(c);4.5.1 printf 函数函数格式输出函数格式输出函数一、printf的一般形式printf(格式控制序列,输出表列);输出表列 用“,”号隔开的变量或表达式序列,其变量的值按对应的格式控制符所指定的格式输出。4.5 4.5 格式输入输出格式输入输出格式控制序列用双引号“.”括起来的格式符序列。格式控制序列由格式说明符和普通字符组成。2.普通字符 原样输出1.格式说明符:由%加格式字符组成 如:%f,%d等例例:a=3;b=4;printf(a=%d,b=%d,a,b);输出结果输出结果:a=3,b=4无论 a,b中位数多少,均为上述形式.若:a=123,
6、b=45则:printf(a=%d,b=%d,a,b);输出结果输出结果:a=123,b=45而:printf(%d%d,a,b);则输出结果为则输出结果为:12345二、格式字符不同类型的数据输出不同类型的数据输出,用不同格式字符用不同格式字符,共有十种格式共有十种格式1.d格式符十进制整数输出。(1)%d:按数据的实际长度输出。(2)%md:m表示输出字段宽度。若实际位数m,则m自动取n值,即保证n个字符正常输出。例:char a=abcdef;printf(a=%10.3s,%3.5s,a,a);结果输出:a=abc,abcde例例4.57.f格式符以小数形式输出单、双精度实数,有以下几
7、种形式:%f,不指定字段宽度,由系统自动指定,使整数部分全部如数输出,并输出6位小数。%f%m.nf%m.nf例例4.6双精度双精度:例例4.7%m.nf,指定输出的数据共占m列,其中有n位小数。如果值长度小于m,则左端补空格。%m.nf,与%m.nf基本相同,只是使输出的数值向左端靠,右端补空格。例例4.8:main()float a=123.456;printf(%f+%12f+%10.2f+%.2f+%-10.2f,a,a,a,a);结果输出:123.456001+*123.456001+*123.46+123.46+123.46*注意:小数点占一位。8.e格式符以指数形式输出单,双精度
8、实数基本形式:%e结果:1.23456共13列6例5例可有%m.ne和%m.ne的形式9.g格式符根据实数大小自动选择f格式,或e格式输出单双精度实数。e+002例:printf(%e,123.456)10.%格式符输出百分号本身。表表4.1 printf格式字符总结格式字符总结(printf(“%”,)格式字符d以带符号的十进制形式输出整数(正数不输出符号)oxucsfeg以8进制无符号形式输出整数(不输出前导符0)。以16进制无符号形式输出整数(不输出前导符0 x)。以无符号10进制形式输出整数。以字符形式输出,只输出一个字符。说明输出字符串。以小数形式输出单、双精度数,隐含输出6位小数。
9、以标准形式输出单、双精度数,数字部分小数位数为6位。选用f或%e格式中输出宽度较短的一种格式,不输出无意义的0。许多情况与具体机器或系统有关,最好机器上一试。表表4.2 附加格式说明字符附加格式说明字符字符说明用于长整型整型,可加在格式符d、o、x、u前面。数据最小宽度对实数,表示输出n位小数;对字符串,表示截取的字符个数。输出的数字或字符在域内向左靠。m(代表一个正整数).n(代表一个正整数)字母14.5.2 scanf函数函数格式输入函数格式输入函数功能:在标准输入装置(键盘)上按指定格式 输入各种类型的数据地址表列变量的地址或字符串首地址。形式:scanf(格式控制序列,地址表列)格式控
10、制序列同printf(.)用&(变量名)表示取的地址如:&a,&b等等。例例4.9:main()int a,b,c;scanf(%d%d%d,&a,&b,&c);printf(%d,%d,%dn,a,b,c);结果 3,4,5运行,机器等待你输入:3 4 5 注意:1.scanf函数采用地址量接受数据。2.数据之间的间隔为,Tab.空格,不能为“,”.3.允许在格式符中插入附加字符。格式字符及附加字符的定义如下表3.3和表3.4表表4.3 scanf格式字符格式字符格式字符d用来输入十进制整数。oxcsfe用来输入八进制整数。用来输入十六进制整数。用来输入单个字符。说明用来输入字符串,将字符串
11、送到一个字符数组中,在输入时以非空白字符开始,以第一个空白字符结束。字符串以串结束标志 0作为其最后一个字符。用来输入实数,可以用小数形式或指数形式输入。以f作用相同,e与f可以互相替换。表表4.4 scanf附加的格式说明字符附加的格式说明字符字符说明用于输入长整型数据(可用ld,%lo,%lx),以及double型数据(用%lf或%le)。用于输入短整型数据(可用%hd,%ho,%hx)。指定输入数据所占宽度(列数)。表示本输入项在读入后不赋给相应的变量。h域宽(为一正整数)*l4.对于输入unsigned型数据,不用%u,而用%d,%o,%x.5.指定数据长度时,系统自动截取。scanf
12、(%3d%3d,&a,&b);例如:int a,bprintf(a=%d,b=%d,a,b)则当输入123456789 后显示:a=123,b=4567.输入数据不能规定精度.6.在%后加“*”表示跳过相应的数据则当输入为12 345 67则a12 b67scanf(%2d%*3d%2d,&a,&b);scanf(%7.2f,&a);是错误的8.在格式控制中除格式说明符外若还有其它字符,则应按顺序原样输入。例:scanf(%d,%d,&a,&b);这必须输入:21,28又如:scanf(a=%d,b=%d,c=%d,&a,&b,&c);必须这样输入:a=34,b=58,c=100提示提示:输入
13、格式要求比较严格,稍有疏忽,输入格式要求比较严格,稍有疏忽,就会出错。就会出错。例:int a,bscanf(%d,%d,&a,&b);printf(a=%d,b=%d,a,b);则结果显示:a=12345,b=23266显然b的结果是错误的。若输入:12345(或12345 23456)应输入:12345,234564.6 4.6 程序举例程序举例例4.10:输入三角形三边,求三角形面积。程序如下:程序如下:程序如下:程序如下:#include#include main()float a,b,c,s,area;printf(Please imput three sides length:n);scanf(%f,%f,%f,&a,&b,&c);s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c);printf(The area of triangle is%5.2f,area);if(a+b)c&abs(a-b)0时,求ax2+bx+c=0的两个根。例例4.114.11:输入一个大写字母,要求系统改为小写字母输出。