收藏 分享(赏)

c语言课件第3章 顺序结构程序设计.ppt

上传人:fmgc7290 文档编号:8007351 上传时间:2019-06-03 格式:PPT 页数:46 大小:1.11MB
下载 相关 举报
c语言课件第3章 顺序结构程序设计.ppt_第1页
第1页 / 共46页
c语言课件第3章 顺序结构程序设计.ppt_第2页
第2页 / 共46页
c语言课件第3章 顺序结构程序设计.ppt_第3页
第3页 / 共46页
c语言课件第3章 顺序结构程序设计.ppt_第4页
第4页 / 共46页
c语言课件第3章 顺序结构程序设计.ppt_第5页
第5页 / 共46页
点击查看更多>>
资源描述

1、1/42,3.1 C语言的基本语句,3.2 数据输入与输出,3.3 顺序程序设计举例,第3章 顺序结构程序设计,2/42,3.1 C语言的基本语句,简单语句,空语句(;) 复合语句(一条或多条语句),表达式语句(表达式 ;),函数调用语句(函数名(参数列表);),流程控制语句,结构化语句,条件语句(if语句,switch语句),while语句,do-while语句,for语句,非结构化语句,break语句,continue语句,return语句,非限定转向语句 (goto),C语言数据操作语句,循环语句,3/42,C语言的语句概述:,程序对数据的处理是通过“语句”的执行来实现的。,一条语句完成

2、一项操作(或功能)。,一个为实现特定目的的程序应包含若干条语句。,C语句以“;”作分隔符,编译后产生机器指令.,4/42,C语句分类:,4、空语句: ; 执行该语句不做任何操作,1、程序控制语句(9种):,如 total=total+limit; a=3;func( ); printf(“Hello,world!n”);,3、表达式语句:表达式加分号构成。,2、函数调用语句:由一次函数调用加一个分号构成,5、复合语句:用 括起来的一组语句 一般形式: 数据说明部分;执行语句部分; 说明: “”后不加分号 语法上和单一语句相同 复合语句可嵌套,9种控制语句: if( )else for( ) w

3、hile( ) dowhile( ) continue break switch goto return,Y = sin ( 1.12); Y1 = sin ( x ); Y2 = 3*sin (x+1.12 ) + sqrt(x); Y3 = sin ( sqrt(x+1.12) );,5/42,例3-1:,#include stdio.h main() int x=1,y=2; int x=2; int x=3;printf(x=%d,y=%dn,x,y); printf(x=%d,y=%dn,x,y); printf(x=%d,y=%dn,x,y); ,程序运行结果为: x=3, y=2

4、 x=2, y=2 x=1, y=2,6/42,3.2 数据的输入与输出,C语言本身不提供输入/输出语句。,C语言的输入/输出功能由C语言的标准I/O库函数提供。 #include ,C语言的输入/输出库函数名称不是保留字(或称关键字)。如printf,scanf。,7/42,#include main() int c;char a;c=65; a=B;putchar(c); putchar(n); putchar(a); ,运行结果:AB,例,3.2.1 字符的输入与输出 字符输出函数,格式: putchar( c ) 参数: c为字符常量、字符型变量、整型变量、常量或表达式 功能:把字符c

5、输出到显示器上 返值:正常,返回输出字符的ASCII码值,8/42,例3-2:,#include ,程序运行结果为: ABBC,main( ) int a=65;char b=B;putchar(a);putchar(65+1);putchar(b); putchar(B+1); ,包含函数putchar的头文件,9/42,格式:getchar( ) 功能:从键盘读一字符 返值:正常,返回读取字符的ASCII码值,字符输入函数,例,#include main() int ch;ch=getchar();putchar(ch); ,运行时,输入如下: A 运行结果: A,10/42,注意:,调用

6、函数getchar时,程序执行被中断,等待用户从键盘输入数据。当用户键入字符并敲回车键以后,程序继续运行。若用户输入字符后未按回车键,则键入的内容一直保留在键盘缓冲区中,只有用户键入回车键后,字符输入函数getchar才进行处理。,函数getchar将回车键作为一个字符读入。如果程序中有两个以上函数getchar时,应该一次性输入所需字符,最后再按回车键。,无论输入的是英文字母或标点符号还是数字,都是作为字符输入 。,11/42,3.2.2 格式输出函数,格式:printf(“格式控制字符串”,输出项列表) 功能:按指定格式向显示器输出数据 返值:正常,返回输出字节数,输出表:要输出的数据(可

7、以没有,多个时以“,”分隔) 格式控制串:包含两种信息 格式说明:%修饰符格式字符,用于指定输出格式 普通字符或转义字符:原样输出,12/42,13/42,格式说明字符:,%修饰符格式字符,14/42,int a=567;printf ( “%d”,a);,int a=255;printf(“%x”,a);,int a=65;printf(“%o”,a);,int a=567;printf(“%u”,a);,char a=65;printf(“%c”,a);,printf(“%s”,“ABC”);,float a=567.789;printf(“%e”,a);,float a=567.789;

8、printf(“%f”,a);,float a=567.789;printf(“%g”,a);,printf(“%”);,567,ff,101,567,A,ABC,5.67789e+02,567.789000,567.789,%,说明 格式字符要用小写 格式字符与输出项个数应相同,按先后顺序一一对应 输出转换:格式字符与输出项类型不一致,自动按指定格式输出,例 main() unsigned int u=65535;printf(”u=%dn“,u);输出结果:u=-1,例 int a=3,b=4;printf(“%d %dn”,a,b); printf(“a=%d,b=%dn”,a,b);,

9、例 int a=3,b=4;printf(“%d %dn”,a,b); printf(“a=%d,b=%dn”,a,b); 输出结果: 3 4a=3, b=4,15/42,例如:,printf (“%dn“,100);,printf(“%5dn“,100);,printf(“%8dn%8d,100,100*100);,16/42,例如:,printf (“%on“,-1);,printf (“%x,%Xn“,-1,-1);,printf (“%u,%d“,-1,-1);,17/42,printf (“%4c,%cn“,A, A);,printf (“%-8s,%8.2s“, “ Name “,

10、 “ Name “);,例如:,18/42,printf (“%fn%10.3fn“,100.7654321, 100.7654321);,printf (“%en%10.9e“, 100.7654321,100.7654321);,m.n 例如:,19/42,例:实型数据 #include main() float x,y,z;double a,b;x=111111.111;y=222222.222;z=123.456;a=1111111111111.111111111;b=2222222222222.222222222;printf(“%fn%fn”,x+y,a+b);printf(“%1

11、0f,%10.2fn”,z,z);printf(“%en”,z);printf(“%gn”,z); ,输出为: 333333.328125 3333333333333.333010 123.456001,123.46 1.23456e+02 123.456,20/42,例 int a=1234;float f=123.456;printf(“%08dn”,a); printf(“%010.2fn”,f); printf(“%0+8dn”,a); printf(“0+10.2fn”,f);,例 0 、+,例 int a=123;printf(“%o,%#o,%X,%#Xn”,a,a,a,a);,

12、例 #,例 long a=65536;printf(“%8ldn”,a);,例 l,/00001234,/0000123.46,/000+1234,/000+123.56,/173,0173,7B,0X7B,/65536,21/42,#include “stdio.h“ void main() int a=3,b=4;printf(“%dn“,(a=b,b,a+3); /*输出序列是一个逗号表达式*/printf(“%dn“,a=b,b,a+3); /*输出第一个参数变量a的值*/ ,例:,输出结果为:7 4,22/42,3.2.3 格式输入函数,格式: scanf(“格式控制串”,地址表)

13、功能:按指定格式从键盘读入数据,存入地址表指定的存储单元中,并按回车键结束 返值:正常,返回输入数据个数,地址表:变量的地址,常用取地址运算符& 格式字符:d,i,o,x,u,c,s,f,e,例 scanf(“%d”,输入:10 则 a=10,例 scanf(“%x”,输入:11 则 a=17,23/42,格式控制字符:,(1)组成:,普通字符、格式说明。,普通字符:,格式说明:,键盘输入时,要按原样输入,一般起分隔或提示作用。,但分隔或提示作用若由用户输入,就失去了本来的意义,一般采用printf来实现。,% * m h|l type,24/42,附加格式说明符(修饰符),例 scanf(“

14、%4d%2d%2d”,输入 19991015 则1999yy, 10 mm, 15 dd,例 scanf(“%3d%*4d%f”,输入 12345678765.43则123k, 8765.43f,例 scanf(“%2d%*3d%2d”,输入 1234567 则12a, 67b,例 scanf(“%3c%2c”,输入 abcde 则ac1, d c2,25/42,scanf (“i=%d“,&i);printf (“i=%d“,i);,scanf (“%d%d%d“, &a,&b,&c);,&:取地址运算符。 表示将所输入后的数据放入对应地址的存储单元中。,26/42,scanf (“%d,%

15、d,%d”, &a,&b,&c);,scanf (“%d,%*d,%d”, &a,&b);,scanf (“%f%f%*f”, &a,&b);,27/42,输入分隔符的指定 默认数据分隔符:空格、TAB或回车键 普通字符:格式串中两个格式符间字符,必须原样输入,例 scanf(“%d%o%x”,输入 123 123 123 输出 a=123,b=83,c=291,例 scanf(“%d:%d:%d”,输入 12:30:45 则12 h, 30 m, 45 s,例 scanf(“%d,%d”,&a,&b)输入 3,4 则3a, 4 b,例 scanf(“a=%d,b=%d,c=%d”,输入 a=

16、12,b=24,c=36 ,28/42,说明:用“%c”格式符时,空格和转义字符作为有效字符输入,如 scanf(“%c%c%c”,若输入abc 则ac1, c2, b c3,输入数据时,遇以下情况认为该数据结束: 遇空格、TAB、或回车 遇宽度结束 遇非法输入,如 scanf(“%d%c%f”,若输入1234a123o.26 则 1234 a, a b, 123 c,29/42,例3-6:,#include “stdio.h“ void main() int a,b;printf(“input a,b:“);scanf(“%d%d“,input a,b: 78 a=7,b=8,30/42,(

17、4)注意事项:,scanf()的格式控制字符串中没有转义字符。如scanf (“%dn”, &a);是错误的。,scanf()的格式控制字符串中的普通字符不是用来显示的, 而是输入时要求照普通字符输入的。,scanf()中参数的第二部分一定是地址列表,不能是表达式。,31/42,3.3 顺序程序设计举例,例3.1输入圆的半径,输出圆的周长和面积。 分析: (1) 定义实型变量r,l,s用于存放半径、周长、面积; (2) 调用输入函数,输入r; (3) 分别利用周长公式和面积公式求出l,s; (4) 调用输出函数输出l,s。,程序: #include void main() float r,l,

18、s;scanf(“%f”, ,#include void main() float r;scanf(“%f”, ,32/42,例3.2 输入三个字符,将它们反向输出。 分析: (1) 定义三个字符变量ch1,ch2,ch3; (2) 调用字符输入函数,输入三个字符依次存于ch1,ch2,ch3; (3) 按ch3,ch2,ch1顺序输出三个字符。,程序: #include void main() char ch1,ch2,ch3;ch1=getchar(); ch2=getchar();ch3=getchar(); putchar(ch3);putchar(ch2);putchar(ch1);

19、 ,33/42,例3.用格式输入函数输入三个字符,并用输出函数反向输出三个字符和它们的ASCII码。程序: #include void main() char ch1,ch2,ch3;scanf(“%c%c%c”, ,34/42,例3.4输入任意三个整数,求它们的平均值。 程序: #include void main() int num1,num2,num3;float average;printf(“Please input three numbers:”); scanf(“%d,%d,%d”, 思考: 能否将average=(num1+num2+num3)/3.0改为average=(nu

20、m1+num2+num3)/3 ?,注意数学表达式到C语言表达式的转换,35/42,例3-5:输入两个整数a、b,将它们交换,例如a为3,b为5,交换后a为5,b为3。,#include “stdio.h“ void main() int a,b,t; /*t就相当于空杯子*/scanf(“%d,%d”, /*观察交换后的值*/ ,用于交换变量a、b的方法通常称为两两交换法。,36/42,例3.6求方程ax2+bx+c=0的实数根。程序: #include #include void main() float a,b,c,disc,x1,x2;printf(“input a,b,c:”);sc

21、anf(“%f,%f,%f”, ,37/42,例3.7从键盘输入一个小写字母,用大写形式输出该字母。 程序: #include void main() char a;printf(“input a lowercase letter:”);a=getchar();a=a-32; printf(“%cn”,a); ,38/42,计算机中数的表示及进制转换 数码、基与权 数码:表示数的符号 基:数码的个数 权:每一位所具有的值 数制,预备知识,39/42,十进制:4956= 410+910 +510+610,二进制:1011=12+02 +12+12,十六进制:81AE=816+116 +1016+

22、1416,八进制:4275=48+28 +78+58,40/42,各种进制之间的转换,二进制、八进制、十六进制转换成十进制 方法:按权相加,41/42,二进制、八进制、十六进制转换成十进制,十进制转换成二进制、八进制、十六进制,方法:连续除以基,从低到高记录余数,直至商为0,各种进制之间的转换(整数),方法:按权相加,42/42,二进制转换成八进制:从右向左,每3位一组(不足3位左补0),转换成八进制八进制转换成二进制:用3位二进制数代替每一位八进制数,例 (1101001)2=(001,101,001)2=(151)8,例 (246)8=(010,100,110)2=(10100110)2,

23、000 0 001 1 010 2 011 3 100 4 101 5 110 6 111 7,二进制与八进制之间的转换,43/42,二进制转换成十六进制:从右向左,每4位一组(不足4位左补0),转换成十六进制十六进制转换成二进制:用4位二进制数代替每一位十六进制数,例 (11010101111101)2=(0011,0101,0111,1101)2=(357D)16,例 (4B9E)16=(0100,1011,1001,1110)2=(100101110011110)2,0000 0 0001 1 0010 2 0011 3 0100 4 0101 5 0110 6 0111 7 1000

24、8 1001 9 1010 A 1011 B 1100 C 1101 D 1110 E 1111 F,二进制与十六进制之间的转换,44/42,原码:最高位为符号位,其余各位为数值本身的绝对值 反码: 正数:反码与原码相同 负数:符号位为1,其余位对原码取反 补码: 正数:原码、反码、补码相同 负数:最高位为1,其余位为原码取反,再对整个数加1,9-5=4 9+7=16=(14)12,数值的表示方法原码、反码和补码,45/42,负数补码转换成十进制数:最高位不动,其余位取反加1,例 补码:11111001取反:10000110加1: 10000111=-7,(用一字节表示数),46/42,小 结,1、表达式与语句的区别,2、格式化输入/输出语句的使用,3、简单顺序程序的编写,作业:习题三 1,2,3,4,5,7,8,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报