《第四章 顺序程序设计.ppt》由会员分享,可在线阅读,更多相关《第四章 顺序程序设计.ppt(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第四章第四章 顺序程序设计顺序程序设计本章内容:本章内容:1.C语句概述,包括C语句的组成、C的语句2.赋值语句3.数据的输入/输出概念4.字符型数据的输入/输出5.格式输入/输出6.程序举例4.1 C语句概述C程序源程序文件1源程序文件2源程序文件n.预处理命令全局变量声明函数1函数2函数n函数首部函数体变量声明执行部分(语句)一、C程序的组成 程序的执行部分是由语句组成的。程序的功能也是由执行语句实现的。C语句可分为以下五类:表达式语句 函数调用语句 控制语句 复合语句 空语句 程序的语句1.表达式语句 表达式语句由表达式加上分号“;”组成。其一般形式为:表达式;执行表达式语句就是计算表达
2、式的值。二、程序的语句例如:x=y+z;赋值语句 y+z;加法运算语句,但计算结果不能保留,无实际意义 i+;自增1语句,i值增1 2.函数调用语句 由函数名、实际参数加上分号“;”组成。其一般形式为:函数名(实际参数表);执行函数语句就是调用函数体并把实际参数赋予函数定义中的形式参数,然后执行被调函数体中的语句,求取函数值。或完成函数的功能。例如:printf(C Program);调用库函数,输出字符串。3.控制语句 控控制制语语句句用用于于控控制制程程序序的的流流程程,以以实实现现程程序序的的各各种种结结构构方方式。它们由特定的语句定义符组成。语言有九种控制语句。式。它们由特定的语句定义
3、符组成。语言有九种控制语句。可分成以下三类:(1)条件判断语句 if语句,switch语句(2)循环执行语句 do while语句,while语句,for语句(3)转向语句 break语句,goto语句,continue语句,return语句4.复合语句把把多多个个语语句句用用括括号号 括括起起来来组组成成的的一一个个语语句句称称复复合合语语句句。在在程程序中应把复合语句看成是单条语句,而不是多条语句,序中应把复合语句看成是单条语句,而不是多条语句,例如 x=y+z;a=b+c;printf(“%d%d”,x,a);是一条复合语句。复合语句内的各条语句都必须以分号“;”结尾,在括号“”外不能加
4、分号。5.空语句 只有分号“;”组成的语句称为空语句。空语句是什么也不执行的语句。在程序中空语句可用来作空循环体。例如 while(getchar()!=n);2.注意在变量说明中给变量赋初值和赋值语句的区别。给变量赋初值是变量说明的一部分,赋初值后的变量与其后的其它同类变量之间仍必须用逗号间隔,而赋值语句则必须用分号结尾。3.在变量说明中,不允许连续给多个变量赋初值。如下述说明是 错误的:int a=b=c=5 必须写为:int a=5,b=5,c=5;而赋值语句允许连续赋值。4.注意赋值表达式和赋值语句的区别。赋值表达式是一种表达式,它可以出现在任何允许表达式出现的地方,而赋值语句则不能。
5、下述语句是合法的:if(x=y+5)0)z=x;语句的功能是,若表达式x=y+5大于0则z=x。下述语句是非法的:if(x=y+5;)0)z=x;因为x=y+5;是语句,不能出现在表达式中。4.3 4.3 数据输入数据输入/输出的概念输出的概念一、数据输入一、数据输入/输出的概念输出的概念内内存存RAMRAM从键盘将数据输入从键盘将数据输入从从数据文件读入数据文件读入将将数据输出到屏幕数据输出到屏幕将将数据输出到文件数据输出到文件数据输入数据输入/输出是相对计算机内存输出是相对计算机内存二、数据输入/输出语句 在语言中所有的数据输入输出都是由库函数完成的。因此都是函数语句。在C语言中使用库函数
6、时,要使用预编译命令#include 将相关的头文件(*.h)包含到用户源文件中。使用形式:#include 头文件 或#include 说明:1.标准输入/输出头文件是:stdio.h 2.printf()和 scanf()函数不需要头包含文件4.4 数据的输入和输出 1、字符输出函数 格式:putchar(c)其中 c为字符型或整型的常量、变量及其表达式 功能:每次向屏幕输出一个字符供显示。注意:使用本函数前必须要用文件包含命令:#include stdio.h【例】求以下程序运行结果#include main()char x=a;clrscr();putchar(x);putchar(b
7、);putchar(x+2);putchar(b+2);结果:abcd2字符输入函数 格式:getchar()getche()getch()功能:从键盘上读入一个字符,但后两个函数输入后无需回车。getch()还有一个功能,即不把读入的字符回显到屏幕上,常用于密码输入或菜单选择。getchar()包含在stdio.h中,getche()和getch()包含在conio.h中。【例一】#include main()char a,b;a=getchar(),b=getchar();printf(“a=%c,b=%cn”,a,b);运行时,如果 输入:Student 输出结果为 a=S,b=t【例二
8、】#include main()char i=y;while(i=y|i=Y)printf(“您好!是否继续?(y/n)n”);i=getche();/*见注*/printf(“再见!”);注:不能用getchar(),否则会把回车符作为第二次读入值【例三】/*一个设置密码输入程序*/#include main()char password10,c=*;int i=0;printf(npassword:);while(i=9)passwordi=getch();putchar(c);if(passwordi=r)break;i+;/*此处加入密码验证语句*/printf(“n欢迎使用本程序!”
9、);注意:1.getchar函数只能接受单个字符,输入数字也按字符处理。输入多于一个字符时,只接收第一个字符,多余的字符存入到键盘的缓冲区,若有下一个getchar函数语句,则直接从键盘的缓冲区读一个字符。2.使用本函数前必须包含文件“stdio.h”。3.在TC屏幕下运行含本函数程序时,将退出TC 屏幕进入用户屏幕等待用户输入。输入完毕再返回TC屏幕#include#include main()main()char c1,c2;char c1,c2;c1=c1=getchargetchar();();c2=c2=getchargetchar();();putchar(c1);putchar(
10、c1);putchar(c2)putchar(c2)当程序运行后:输入当程序运行后:输入ABCDEF ABCDEF 输出为:输出为:ABAB格式:printf(“”,输出项1,输出项2,输出项n);例:printf(“x=%d,y=%fn”,x,x+3 );格式控制(转换控制字符串)输出表列(用逗号分隔的数据组,可选项)格式控制分为两个部分:u格式说明%+格式字符(替换输出)u普通字符原样输出(转义字符按表3.3输出)3格式输出函数 printf()格式说明的一般形式:%-0 m.n l(或h)格式字符 -左对齐输出 0 数字前的空位填0 m 输出域宽(长度,包括小数点)如数据的位数小于m,则
11、左端补以空格 如数据的位数大于m,则按实际位数输出 n 输出精度(小数位数)l 或 h 长度修正符 l 长整型及双精度 注:long型的数据宜用%ld,double型宜用%lf h 表示短整型 如%hd%hx 格式字符(规定了输出的数据形式):%d 输出十进制整数%x 以十六进制无符号形式输出整数%o 以八进制无符号形式输出整数%u 以无符号十进制数形式输出整数%f 输出小数形式浮点数(double型用%lf )%s 输出字符串%c 输出单字符【例一】求运行结果。main()int a=30;printf(%d,%o,%x,%u,%c,a,a,a,a,a);结果:30,36,1e,30,【例二
12、】求运行结果。main()int a=-30;printf(%d,%o,%x,%u,%c,a,a,a,a,a);结果:-30,177742,ffe2,65506,结论:格式字符与对应输出项类型要一致,否则正确的运算结果不能得到正确的显示结果。【例】若float y=1234.9999;printf(“%d”,y);则输出结果为何?0 实际上本例中实数y为任意值(如1234或1)结果都是0!【例】求以下程序段运行结果。printf(“|%-15s|%2.2f|n”,”ZHANG WEI”,165.1256);printf(“|%s|%012f|n”,”LI CHANG”,234.45);运行结果
13、:|ZHANG WEI|165.13|(注意:WEI后面补了六个空格)|LI CHANG|00234.450000|(注意:数字部分连小数点共12位)如果将程序段作些修改:printf(“|%-15s|%2.2f|n”,”ZHANG WEI”,165.1256);printf(“|%15s|%012f|n”,”LI CHANG”,234.45);运行结果:|ZHANG WEI|165.13|LI CHANG|00234.450000|格式:scanf(“”,&变量名1,&变量名2,,&变量名n);例:scanf(“%d,%d,%d”,&a,&b,&c );4格式输入函数scanf()格式控制(
14、转换控制字符串)地址表列(简单变量要用&开头)格式说明的一般形式:%*m l (或h)格式字符&求地址的运算符&a 表示该变量所占空间的首地址 *抑制字符(“虚读”,即读入数据后不送给任何变量)【例】对于 scanf(“%3d%*4d%f”,&i,&f);如果输入 1234567890.1234567890 结果 i=123,f=890.123474注意:scanf()函数没有输出功能(即不会向屏幕显示任何字符)也不能规定小数位数(m.n)典型错误:scanf(“a=%d,b=%d,c=%d n”,&a,&b,&c);scanf(“%5.2f“,&x);正确语句:printf(“Input a
15、,b,c=“);scanf(“%d,%d,%d”,&a,&b,&c);printf(“n”);/*不必要*/scanf(“%5f“,&x);4.6 4.6 顺序结构程序设计举例顺序结构程序设计举例例例4.10 4.10 输入三角形的三边长,求三角形面积输入三角形的三边长,求三角形面积#include math.h main()float a,b,c,s,area;scanf(%f,%f,%f,&a,&b,&c);s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c);printf(a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2fn”,a,b,c
16、,s);printf(area=%7.2fn,area);例4.11 从键盘输入一个字母,要求改用小写字母输出。#include stdio.hmain()char c1,c2;c1=getchar();printf(%c,%dn,c1,c1);c2=c1+32;printf(%c,%cn,c1,c2);课堂练习:本章例4.1到例4.12作业:Pg.88 4.5 4.6 4.8 4.9 4.10五、算术运算符和算术表达式(续)C程序中的算术表达式 【例】编程求以下数学表达式的值(设x=15)#include main()int x=15;double y;y=sqrt(pow(sin(15*3.14/180),2.5)/8/log10(2*3.14)+fabs(exp(2.5)-x);printf(y=%f,y);