《顺序结构》PPT课件.ppt
第四章 最简单的C程序顺序结构程序设计,张琴,主要内容,一、语句的概念及赋值语句二、数据的输入与输出三、例子,一、C的语句,什么是语句?一篇文章段落句子词字C程序若干个源程序文件语句,1、C语句分类,(1)控制语句,完成一定的控制功能1 if else 条件语句 6 break 间断语句 2 for 循环语句 7 switch 开关语句3 while循环语句 8 goto 转向语句 4 do while;循环语句 9 return 返回语句5 continue 继续语句我们今后学习的重点!,(2)函数调用语句,由一个函数调用加分号构成函数调用语句如:Printf(“This is a C statement.”);,(3)表达式语句,由一个表达式加一个分号构成表达式语句如:a=3;,分号,赋值表达式,表达式语句,+,=,赋值语句由一个赋值表达式加一个分号构成。,(4)空语句,只有一个分号的语句,什么也不做。如:;用来做流程的转向点用来作为循环语句中的循环体,(5)复合语句,用 括起来的语句如:z=x+y;t=z/13;printf(“%f”,t);,二、输入与输出,所谓输入与输出,是以计算机为主体而言的。输出:从计算机向外部输出设备(显示器,打印机)输出数据。输入:从输入设备(键盘,鼠标,扫描仪)向计算机输入数据。,1、输入与输出在C语言中的实现,C语言本身不提供输入输出语句,输入和输出操作是由C函数库中的函数来实现的。例如:字符输入函数:getchar 字符输出函数:putchar格式输入函数:scanf 格式输出函数:printf字符串输入函数:gets 字数串输出函数:puts,注意:,调用输入输出函数时,程序开头应该有#include“stdio.h”或:#include 作用是将有关的头文件包含到用户源程序中。,2、字符输出函数 putchar(),一般形式:putchar(c);作用:将字符c显示在显示器上。,字符型变量整型变量,例4.1 输出单个字符,#includevoid main()char a,b,c;a=B;b=O;c=Y;putchar(a);putchar(b);putchar(c);putchar(n);,运行结果:BOY,putchar(a);putchar(n);putchar(b);putchar(n);putchar(c);putchar(n);,运行结果:B O Y,3、字符输入函数getchar(),一般形式:getchar()作用:从终端或系统隐含的输入设备接收一个字符函数返回值:得到字符的ASCII码,例4.2 输入单个字符,例4.2 输入单个字符。#includevoid main()char c;c=getchar();putchar(c);putchar(n);,4、格式输出函数printf(),向终端(或系统隐含指定的输出设备)输出若干个任意类型的数据。一般格式:printf(格式控制,输出表列),1)格式说明2)普通字符比如,printf(“a=%d,b=%d”,a,b),格式说明用于指定输出格式,1)d用于输出十进制整数,printf(“%d%d”,a,b),%md m为指定输出宽度。如果数据位数小于m,则在左侧用空格补足。如果大于m,则按照实际位数输出。,#includevoid main()int a;a=1234;printf(“a=%dn”,a);,运行结果:a1234,printf(“a=%10dn”,a);,运行结果:a 1234,printf(“a=%3dn”,a);,%ld 输出长整型数据。,#includevoid main()long int a;a=1234567;printf(“a=%dn”,a);,出错!超出整型的范围!,printf(“a=%ldn”,a);,运行结果:a1234567,2)o 以八进制形式输出,注意:符号位也作为八进制数的一部分,#includevoid main()int a;a=1;printf(“%d,%on”,a,a);,运行结果:1,177777,lo 输出长整型整数的八进制形式mo 指定宽度,3)x输出十六进制形式,lx mx4)u以十进制整数输出unsigned型数据,例4.3 无符号数据的输出。#includevoid main()unsigned int a=65535;int b=-2;printf(“a=%d,%o,%x,%un”,a,a,a,a);printf(“b=%d,%o,%x,%un”,b,b,b,b);,运行结果:a=-1,177777,ffff,65535b=-2,177776,fffe,65534,5)c输出一个字符,char c;ca;printf(“c=%c”,c);问题:3个c的含义?,值在0255之间的整数,也可以用c输出。系统自动根据ASCII码转换成相应的字符输出。,例4.4 字符数据的输出。#includevoid main()char c=a;int i=97;printf(“%c,%dn”,c,c);printf(“%c,%dn”,i,i);,运行结果:a,97a,97,6)s用于输出字符串,printf(“%s”,“china”);printf(“china”);,%ms,输出的字符串占m列,若串长大于m,则全部输出,若串长小于m,则左补空格。%-ms,若串长小于m,字符串向左靠,右补空格。%m.ns,输出占m列,只取字符串中左端n个字符,输出在m列的右侧,左补空格。%-m.ns,n个字符输出在m列的左侧,右补空格,若nm,m自动取n值。,例4.5字符串的输出。#includevoid main()printf(“%3s,%7.2s,%.4s,%-5.3sn”,“CHINA”,“CHINA”,“CHINA”,“CHINA”);,7)f以小数形式输出浮点数据,由系统自动指定字段宽度,使整数部分全部输出,并输出位小数。注意,在输出的数字中并非全部数字都是有效数字。单精度实数的有效位数一般为位。双精度实数有效位数一般为17。,例4.6 输出实数时的有效位数。#include void(),;(,);,运行结果:.,例4.7输出双精度数时的有效位数。#include void(),;printf(“%f”,x+y);,运行结果:3333333333333.333010,.。指定输出的数据共占列,其中有位小数。如果数值长度小于,则左端补空格。.与.基本相同,只是使输出的数值向左端靠,右端补空格。,例4.8 输出实数时指定小数位数。#include void()float f=123.456;printf(“%f%10f%10.2f%.2f%-10.2fn”,f,f,f,f,f);,运行结果:123.455994 123.455994 123.46 123.46 123.46,8)e以指数形式输出实数,Printf(“%e”,123.456);输出:6列 5列所输出的实数共占列宽度。(注意:不同系统的规定略有不同),m.ne与m.nen未指定的话,默认取6,9)g输出实数,根据数值大小自动选择f格式或者e格式,且不输出无意义的零,若f=123.456,则Printf(“%f%e%g”,f,f,f);输出如下:123.468000 1.234680e+002 123.468 10列 13列 10列,注意:,除了X,E,G外,其他各式字符必须用小写。Printf格式控制串中的非格式字符,即普通字符,按照原样输出如何输出%?%,5、格式输入函数scanf(),接收标准输入并按照变量的顺序将输入的值存放到变量中。一般形式:scanf(格式控制,地址表列),同printf函数,形式:&+变量名,如果有多个,则用逗号分开,例4.9 用scanf函数输入数据。#includevoid main()int a,b,c;scanf(“%d%d%d”,a在内存中的地址&是地址运算符,注意:,&符号一定不能丢!如果在“格式控制”字符串中除了格式说明以外还有其他字符,则在输入数据时在对应位置应输入与这些字符相同的字符。,输入数据时,何时算作结束?,遇空格,或按“回车”或“制表”(Tab)键;按指定的宽度结束,如“”,只取列;遇非法输入。注意:在用“”格式输入字符时,空格字符和“转义字符”都作为有效字符输入。,例4.10 输入三角形的三边长,求三角形面积。假设:三个边长a,b,c能构成三角形。已知面积公式:area=s=(a+b+c)*0.5,三、例子,#include#includevoid main()float a,b,c,s,area;scanf(%f,%f,%f,数学函数库因为要用到其中的sqrt函数,例4.11 从键盘输入一个大写字母,要求改用小写字母输出。,运行情况:,,include void main()char c1,c2;c1=getchar();printf(“%c,%dn”,c1,c1);c2=c1+32;printf(“%c,%dn”,c2,c2);,#include#include void main()float a,b,c,disc,x1,x2,p,q;scanf(a=%f,b=%f,c=%f,运行情况:,,