第3章 简单的C程序设计

上传人:仙*** 文档编号:72585430 上传时间:2022-04-09 格式:PPT 页数:78 大小:1.57MB
收藏 版权申诉 举报 下载
第3章 简单的C程序设计_第1页
第1页 / 共78页
第3章 简单的C程序设计_第2页
第2页 / 共78页
第3章 简单的C程序设计_第3页
第3页 / 共78页
资源描述:

《第3章 简单的C程序设计》由会员分享,可在线阅读,更多相关《第3章 简单的C程序设计(78页珍藏版)》请在装配图网上搜索。

1、指令指令 一个程序包含一系列的指令,每个指令使计算机完成一个程序包含一系列的指令,每个指令使计算机完成一种操作。而程序中的指令不是任意书写的。一种操作。而程序中的指令不是任意书写的。1966年,年,Bohra和和Jacopini提出了提出了3种基本结构。种基本结构。 顺序结构顺序结构各操作是按先后顺序执行的。是最简单的一种基本结构。各操作是按先后顺序执行的。是最简单的一种基本结构。其中其中A和和B两个框是顺序执两个框是顺序执行的。即在完成行的。即在完成A框所指定框所指定的操作后,必然接着执行的操作后,必然接着执行B框所指定的操作。框所指定的操作。 选择结构选择结构又称分支结构。根据是否满足给定

2、条件而从两组操作中选择又称分支结构。根据是否满足给定条件而从两组操作中选择执行一种操作。虚线框内是一个选择结构。执行一种操作。虚线框内是一个选择结构。无论无论P条件是否成立,只能执行条件是否成立,只能执行A操作或操作或B操作中的一个操作中的一个;无论执行完哪一个分支后,就结无论执行完哪一个分支后,就结束了。束了。两个操作可以有一个是空操作,两个操作可以有一个是空操作,即不执行任何操作,形如下图即不执行任何操作,形如下图:入口入口出口出口 循环结构循环结构又称重复结构,即在一定条件下,反复执行某一部分的操作。又称重复结构,即在一定条件下,反复执行某一部分的操作。有两种类型:有两种类型:执行过程:

3、执行过程: 当给定条件当给定条件P成立时,执行成立时,执行S操作,操作,然后再判断然后再判断P条件是否成立,如果仍成条件是否成立,如果仍成立,再执行立,再执行S操作,然后再判断操作,然后再判断,如,如此反复,直到某一次此反复,直到某一次P条件不成立为止,条件不成立为止,此时不再执行此时不再执行S,结束循环。,结束循环。特点:特点: 先判断,后执行,先判断,后执行,S有可能一次也有可能一次也不执行。不执行。入口入口出口出口 循环结构循环结构执行过程:执行过程: 执行执行S操作,然后判断条件操作,然后判断条件P是否成是否成立,如果成立,再执行立,如果成立,再执行S操作,然后再操作,然后再判断,判断

4、,.,如此反复,直到某一次,如此反复,直到某一次P条件不成立不再执行条件不成立不再执行S,结束循环。,结束循环。特点:特点: 先执行,后判断,先执行,后判断,S最少要执行一最少要执行一次。次。入口入口出口出口C程序结构程序结构C程序程序函数首部函数首部函数体函数体数据声明数据声明执行语句执行语句源程序文件源程序文件1源程序文件源程序文件2.源程序文件源程序文件n预处理命令预处理命令数据声明数据声明函数函数1函数函数2C语句的分类语句的分类 控制语句控制语句 用于完成一定的控制功能用于完成一定的控制功能 if ( ) else for ( ) while ( ) do while ( ) con

5、tinue break switch ( ) return goto 标号标号 说明:说明:“( ) ”中是一个判断条件,中是一个判断条件, “”表示内嵌的语句。表示内嵌的语句。C语句的分类语句的分类 函数调用语句函数调用语句 由一个函数调用加一个分号构成,例如:由一个函数调用加一个分号构成,例如: printf(“This is a C statement.”); 表达式语句表达式语句 由一个表达式加一个分号构成,最典型的是由一个表达式加一个分号构成,最典型的是赋值语句,例如:赋值语句,例如: a=3 是一个表达式是一个表达式 a=3 ; 是一个表达式语句是一个表达式语句C语句的分类语句的分

6、类 复合语句复合语句 用用“”括起来的若干个语句,例如:括起来的若干个语句,例如: z=x+y; t=z/100; printf(“%f”,t); 空语句空语句 只有一个分号,什么都不做,例如:只有一个分号,什么都不做,例如: ;C语言允许一行写几个语句,也允许一个语句拆开写在几行上。语言允许一行写几个语句,也允许一个语句拆开写在几行上。C语句的分类语句的分类 复合语句复合语句 用用“”括起来的若干个语句,例如:括起来的若干个语句,例如: z=x+y; t=z/100; printf(“%f”,t); 空语句空语句 只有一个分号,什么都不做,例如:只有一个分号,什么都不做,例如: ;C语言允许

7、一行写几个语句,也允许一个语句拆开写在几行上。语言允许一行写几个语句,也允许一个语句拆开写在几行上。3.3.1 赋值表达式赋值表达式3.3.1 赋值表达式赋值表达式赋值表达式出赋值表达式出现在另一个表现在另一个表达式中。达式中。3.3.1 赋值表达式赋值表达式3.3.1 赋值表达式赋值表达式a=a-a*a,得到a=12-12*12=-132a=a+(-132),得到a=-132+(-132)=-264(7). a+=3等价于等价于a=a+3a-=ba=a-bx*=y+8x= x*( y+8)x/=yx=x/yx%=3-yx=x%(3-y)3.3.1 赋值表达式赋值表达式a=a-a*a,得到a=

8、12-12*12=-132a=a+(-132),得到a=-132+(-132)=-264c=28900000001 00100001c33=00100001unsigned a;int b=-1; a=b;b1111111111111111a1111111111111111s=2*3.14159*r;x*=y+8; 赋值号赋值号“=”是一个是一个运算符;运算符; 区别区别int a=3;float f=3.56;char c=a;int a,b,c;a=b=c=3;int a,b,c=5;int a=3,b=3,c=3;int a;float f;char c;a=3; c=a;f=3.56;

9、 int a,b,c; c=5; 库函数已编译成目标文件,在连接时与编译源程序得库函数已编译成目标文件,在连接时与编译源程序得到的目标文件到的目标文件(.obj)相连接,生成可执行程序相连接,生成可执行程序(.exe)。在使用系统库函数时,要用预编译命令在使用系统库函数时,要用预编译命令#include将有关将有关的头文件包含到用户源文件中(即在程序的开头)的头文件包含到用户源文件中(即在程序的开头) 。头文件中包含了调用函数时所需的有关信息。头文件中包含了调用函数时所需的有关信息。putchar(101); 作用:输出字符作用:输出字符A putchar(); 输出字符单引号输出字符单引号

10、putchar(015); 输出回车输出回车 putchar (n); 输出换行输出换行#include void main ( ) char a,b,c; a=B;b=O;c=Y; putchar(a);putchar(b);putchar(c); putchar (n); 输出单个字符。输出单个字符。BOY putchar(getchar();printf(%c,getchar();#include void main ( ) char c; c=getchar( ); putchar(c); putchar (n); 输入单个字符。输入单个字符。a /* /* putchar(getch

11、ar(); printf(%c,getchar();#include void main ( ) char c; putchar( getchar( ) ); putchar (n); P52printf(%d,%cn,i,c);1. printf函数的一般格式函数的一般格式按十进制整型数据的实际长度输出。按十进制整型数据的实际长度输出。与与%d格式相同,较少用。格式相同,较少用。printf(%sn, CHINA);输出的结果是字符串 CHINAscanf(%d,&a);P551. scanf函数的一般格式函数的一般格式用用scanf函数输入数据。函数输入数据。3 4 5 /*#includ

12、e void main ( ) int a,b,c; scanf(%d%d%d,&a,&b,&c); printf(a=%d,b=%d,c=%dn,a,b,c);bca 4 5 3 数据在内存中的存放数据在内存中的存放按十进制整数的形式输入数据。按十进制整数的形式输入数据。与与%d格式相同,较少用。格式相同,较少用。scanf函数与函数与printf函数中的格式说明相似。函数中的格式说明相似。 scanf函数中的函数中的“格式控制格式控制”后面应当是变量的地址,后面应当是变量的地址,由取地址运算符和变量名共同组成,不能仅是变量名:由取地址运算符和变量名共同组成,不能仅是变量名: scanf(%

13、f%e%g, a, b, c); 如果如果“格式控制格式控制”中除了格式说明以外还有其它字符,中除了格式说明以外还有其它字符,则在输入数据时必须在对应位置输入与之相同的字符:则在输入数据时必须在对应位置输入与之相同的字符: scanf(%d,%d, &a,&b); 从键盘输入时必须输逗号:从键盘输入时必须输逗号: 3,4 scanf函数中的函数中的“格式控制格式控制”后面应当是变量的地址,后面应当是变量的地址,由取地址运算符和变量名共同组成,不能仅是变量名:由取地址运算符和变量名共同组成,不能仅是变量名: scanf(%f%e%g, &a,&b,&c); 用用%c格式输入字符时,空格和转义字符

14、都作为有效字符格式输入字符时,空格和转义字符都作为有效字符输入,应注意:输入,应注意: scanf(%c%c%c, &a,&b,&c); 若输入:若输入:x y z 则则a得到得到x,b得到空格,得到空格,c得到得到y 用用%c格式输入字符时,空格和转义字符都作为有效字符格式输入字符时,空格和转义字符都作为有效字符输入,应注意:输入,应注意: scanf(%c%c%c, &a,&b,&c); 只有输入:只有输入:xyz 才能使才能使a得到得到x,b得到得到y,c得到得到z 对于对于unsigned型变量所需的数据,可以用型变量所需的数据,可以用%u或或%d格式输入。格式输入。 在输入数值型数据

15、时,遇到空格、回车、在输入数值型数据时,遇到空格、回车、Tab键或键或遇非法输入,则认为该数据结束:遇非法输入,则认为该数据结束: scanf(%d%c%f, &a,&b,&c); 若输入:若输入:1234a123o.26 a b c非法字符非法字符P58P62表表3-1表表3-2intlongunsignedunsigned longintlongintlong无符号数据的输出。无符号数据的输出。# include void main() unsigned a=65535; int b=-2; printf(a=%d,%o,%x,%un,a,a,a,a); printf(b=%d,%o,%x

16、,%un,b,b,b,b);a=65535,177777,ffff,65535 1111111111111111前两字节前两字节16个个00111111111111111前两字节前两字节16个个1字符串的输出。字符串的输出。# include void main ( ) printf(%3s,%7.2s ,%-5.3s,%.4sn,CHINA,CHINA, CHINA, CHINA);CHINA, CH, CHICHIN 输出实数时,指定小数位数。输出实数时,指定小数位数。# include void main ( ) float f=123.456; printf(%f%10f %10.2f

17、%.2f%-10.2fn,f,f,f,f,f);123.456001123.456001123.46123.46123.46 求求3个圆的周长,输出结果时上下按小数点对齐,个圆的周长,输出结果时上下按小数点对齐,取两位小数。取两位小数。# include #define PI 3.1415926void main ( )double r1=1.53,r2=21.83,r3=123.71,s1,s2,s3; s1=2.0*PI*r1; s2=2.0*PI*r2; s3=2.0*PI*r3; printf(r1=%10.2fnr2=%10.2fnr3=%10.2fn,r1,r2,r3);r1= r

18、2= r3= 求求3个圆的周长,输出结果时上下按小数点对齐,个圆的周长,输出结果时上下按小数点对齐,取两位小数。取两位小数。# include #define PI 3.1415926void main ( )double r1=1.53,r2=21.83,r3=123.71,s1,s2,s3; s1=2.0*PI*r1; printf(r1=%10.2fts1=%10.2fn,r1,s1); s2=2.0*PI*r2; printf(r2=%10.2fts2=%10.2fn,r2,s2); s3=2.0*PI*r3; printf(r3=%10.2fts3=%10.2fn,r3,s3);r1

19、=1= r2=s2= r3=s3= P63表表3-3表表3-4P64输入三角形的三边长,求三角形的面积。输入三角形的三边长,求三角形的面积。分析:分析: 设输入的三边能构成三角形;设输入的三边能构成三角形; 求三角形面积的公式为求三角形面积的公式为 c)b)(sa)(ss(sarea2.0c)b(as据此编写程序如下:据此编写程序如下:P64#include #include void main() float a,b,c,s,area; scanf(%f,%f,%f,&a,&b,&c); s=(a+b+c)/2.0; area=sqrt(s*(s-a)*(s-b)*(s-c); printf

20、(a=%fnb=%fnc=%fnarea=%fn,a,b,c,area); 当输入:当输入:3.4,4.5,5.6 运行结果为:运行结果为:a=3.400000b=4.500000c=5.600000area=7.649173printf(a=%7.2fnb=%7.2fnc=%7.2fnarea=%7.2fn,a,b,c,area);若将输出语句改为:若将输出语句改为:运行结果为:运行结果为:a=3.40b=4.50c=5.60area=7.65P64输入一个大写字母,要求用小写输出。输入一个大写字母,要求用小写输出。分析:分析: 大写字母与小写字母的大写字母与小写字母的ASCII码值相差码值

21、相差32。 对从键盘输入的大写字母加对从键盘输入的大写字母加32即变为相应的小写字母。即变为相应的小写字母。据此编写程序如下:据此编写程序如下:#include void main() char c1,c2; c1=getchar(); printf(%c,%dn,c1,c1); c2=c1+32; printf(%c,%dn,c2,c2);当输入:当输入:A 运行结果为:运行结果为:A,65a,97P64。 要求:系数要求:系数a、b、c从键盘输入;从键盘输入; 假设:假设:0cbxax204acb2分析:分析:2a4acbbx21,2qp x, qpx212a4acbq , 2abp2据此

22、编写程序如下:据此编写程序如下:P64#include #include void main ( ) float a,b,c,disc,x1,x2,p,q; scanf(a=%f,b=%f,c=%f,&a,&b,&c); disc=b*b-4*a*c; p=-b/(2*a); q=sqrt(disc)/(2*a); x1=p+q;x2=p-q; printf(x1=%5.2fnx2=%5.2fn,x1,x2);当输入:当输入:a=1,b=3,c=2 运行结果为:运行结果为:x1=-1.00 x2=-2.00有符号整数赋给无符号整型变量,数据会有符号整数赋给无符号整型变量,数据会。#includ

23、e void main ( ) unsigned a; /*定义a为无符号整型变量*/ int b; /*定义b为有符号整型变量*/ b=-1; a=b; printf(%un,a);4294967295 (vc中,232-1) |-1|0000000000000001取反1111111111111110加11111111111111111#include void main ( ) unsigned a; /*定义a为无符号整型变量*/ int b; /*定义b为有符号整型变量*/ b=-1; a=b; printf(a=%un,a); printf(b=%dn,b);运行结果:运行结果:a

24、=4294967295 (vc中,232-1)b=-1无符号整数赋给有符号整型变量,注意数值范围。无符号整数赋给有符号整型变量,注意数值范围。#include void main ( ) unsigned a; /*定义a为无符号整型变量*/ int b; /*定义b为有符号整型变量*/ a=4294967295; b=a; printf(%dn,b);-1 (vc中,232-1)减11111111111111111取反1111111111111110 -10000000000000001#include void main() float x,y; x=111111.111;y=222222

25、.222; printf(%fn, x+y);整数部分全部输出,并输出整数部分全部输出,并输出6位小位小数。数。有效位数一般为有效位数一般为7位位。#include void main()double x,y; x=11111111.11111111;y=22222222.22222222; printf(%fn, x+y);整数部分全部输出,有效位数可为整数部分全部输出,有效位数可为16位,因用位,因用f格式仅输出格式仅输出6位小数。位小数。#include void main()double x,y; x=11111111.11111111;y=22222222.22222222; pri

26、ntf(%en, x+y);以指数形式输出实数,小数为以指数形式输出实数,小数为6位。位。数值部分按规范化指数形式输出。数值部分按规范化指数形式输出。P64输入三角形的三边长,求三角形的面积。输入三角形的三边长,求三角形的面积。分析:分析: 假设输入的三边能构成三角形;假设输入的三边能构成三角形; 求三角形面积的公式为求三角形面积的公式为 半边长计算公式为半边长计算公式为c)b)(sa)(ss(sarea2.0c)b(as据此编写程序如下:据此编写程序如下:#include #include void main() float a,b,c,s,area; scanf(%f,%f,%f,&a,&

27、b,&c); s=(a+b+c)/2.0; area=sqrt(s*(s-a)*(s-b)*(s-c); printf(a=%fnb=%fnc=%fnarea=%fn,a,b,c,area); 当输入:当输入:3.4,4.5,5.6 运行结果为:运行结果为:a=3.400000b=4.500000c=5.600000area=7.649173printf(a=%7.2fnb=%7.2fnc=%7.2fnarea=%7.2fn,a,b,c,area);若将输出语句改为:若将输出语句改为:运行结果为:运行结果为:a=3.40b=4.50c=5.60area=7.65输入一个大写字母,要求用小写输出

28、。输入一个大写字母,要求用小写输出。分析:分析: 大写字母与小写字母的大写字母与小写字母的ASCII码值相差码值相差32。 对从键盘输入的大写字母加对从键盘输入的大写字母加32即变为相应的小写字母。即变为相应的小写字母。据此编写程序如下:据此编写程序如下:#include void main() char c1,c2; c1=getchar(); printf(%c,%dn,c1,c1); c2=c1+32; printf(%c,%dn,c2,c2);当输入:当输入:A 运行结果为:运行结果为:A,65a,97。 要求:系数要求:系数a、b、c从键盘输入;从键盘输入; 假设:假设:0cbxax

29、204acb2分析:分析:2a4acbbx21,2qp x, qpx212a4acbq , 2abp2据此编写程序如下:据此编写程序如下:#include #include void main ( ) float a,b,c,disc,x1,x2,p,q; printf(a,b,c=); scanf(%f%f%f,&a,&b,&c); disc=b*b-4*a*c; p=-b/(2*a); q=sqrt(disc)/(2*a); x1=p+q;x2=p-q; printf(x1=%5.2fnx2=%5.2fn,x1,x2);当输入:当输入:a,b,c=1 3 2 运行结果为:运行结果为:x1=

30、-1.00 x2=-2.00#include #include void main ( ) float a,b,c,disc,x1,x2,p,q; scanf(a=%f,b=%f,c=%f,&a,&b,&c); q=sqrt(fabs()/(2*a); /根的判别式根的判别式 p=-b/(2*a); printf(x1=%5.2fnx2=%5.2fn,x1,x2);if (disc=0) x1=p+q;x2=p-q; printf(x1=%5.2fnx2=%5.2fn,x1,x2);else printf(x1=%5.2f+i5.2fn ,p,q); printf(x2=%5.2f-i5.2f

31、nx2=%5.2fn,p,q);#include #include void main ( ) float a,b,c,d,x1,x2,p,q; scanf(a=%f,b=%f,c=%f,&a,&b,&c); q=sqrt(fabs( )/(2*a); /根的判别式根的判别式 p=-b/(2*a); if (d=0) x1=p+q;x2=p-q; printf(x1=%5.2fnx2=%5.2fn,x1,x2); else printf(x1=%5.2f+i5.2fn ,p,q); printf(x2=%5.2f-i5.2fnx2=%5.2fn,p,q);由这三种结构组成的程序:由这三种结构组成的程序: 结构合理、思路清晰、容易理解、便于维护结构合理、思路清晰、容易理解、便于维护结构化程序结构化程序

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!