版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、4.1 4.1 结构化程序设计方法结构化程序设计方法4.2 4.2 结构化程序的三种基本结结构化程序的三种基本结构构4.3 4.3 顺序结构的程序设计顺序结构的程序设计4.4 4.4 选择结构的程序设计选择结构的程序设计4.5 4.5 循环结构的程序设计循环结构的程序设计 用三种基本结构组成的程序必然是结构化的用三种基本结构组成的程序必然是结构化的程序,这种程序便于编写、便于阅读、便于程序,这种程序便于编写、便于阅读、便于修改和维护。修改和维护。 结构化程序设计方法就是将解决问题的算法结构化程序设计方法就是将解决问题的算法分解成仅由这三种控制结构组成的算法步骤分解成仅由这三种控制结构组成的算法
2、步骤,同时,所选用的计算机语言应提供这三种,同时,所选用的计算机语言应提供这三种控制结构的对应语句。控制结构的对应语句。 一个良好的程序由以下三种基本结构组成:一个良好的程序由以下三种基本结构组成: (1) (1) :各操作步骤顺序执行,是一:各操作步骤顺序执行,是一种最简单的基本结构。种最简单的基本结构。 (2) (2) :根据是否满足给定的条件而:根据是否满足给定的条件而从两组或多组操作中选择一种操作。又称分从两组或多组操作中选择一种操作。又称分支结构。支结构。 (3) (3) :在一定条件下反复执行某一:在一定条件下反复执行某一组操作。组操作。 例:输入三角形的三边例:输入三角形的三边长
3、,求三角形面积。长,求三角形面积。假设:三个边长假设:三个边长a a,b b,c c能构能构成三角形。成三角形。已知面积公式:已知面积公式:area=area=s=(a+b+c)s=(a+b+c)* *0.50.5c)b)(sa)(ss(s开始输入三边长计算s计算面积结束#includestdio.h#include #include#includevoid main()void main() float a,b,c,s,area; float a,b,c,s,area; scanf( scanf(%f,%f,%f%f,%f,%f,&a,&b,&c,&a,&am
4、p;b,&c);); s=1.0/2 s=1.0/2* *(a+b+c);(a+b+c); area= area=sqrtsqrt(s(s* *(s-a)(s-a)* *(s-b)(s-b)* *(s-c);(s-c); printf( printf(a a=%7.2f, b=%7.2f, c=%7.2f, =%7.2f, b=%7.2f, c=%7.2f, s=%7.2fn s=%7.2fn,a,b,c,s);,a,b,c,s); printf( printf(areaarea=%7.2fn=%7.2fn,area);,area); 运行情况:运行情况:3 3,4 4,6 6a= 3
5、.00, b= 4.00, c= 6.00, s= 6.50a= 3.00, b= 4.00, c= 6.00, s= 6.50area= 5.33area= 5.33表达式表达式语句语句真(非真(非0)假假(0) 条件条件 语句语句1 语句语句2YN 顺序结构的程序就是顺序执行的语句序顺序结构的程序就是顺序执行的语句序列。列。 每个程序的基本结构都是由三个操作组每个程序的基本结构都是由三个操作组成的顺序结构:成的顺序结构: 输入原始数据输入原始数据 计算或加工获得中间结果和最终结果计算或加工获得中间结果和最终结果 输出最终结果输出最终结果 顺序结构的语句:顺序结构的语句: 赋值语句、函数调用
6、语句、表达式语句、复合语句赋值语句、函数调用语句、表达式语句、复合语句赋值语句是由赋值表达式加上一个分号构成赋值语句是由赋值表达式加上一个分号构成例:例:a=100 赋值表达式 a=100; 赋值语句 a+=100; 赋值语句条件中不能含有赋值语句,但是赋值表达式条件中不能含有赋值语句,但是赋值表达式可以包含于条件表达式中可以包含于条件表达式中例:例:if( a=b;) t=a; if(a=b)0) t=a; 错误错误函数调用语句函数调用语句: : 有一个函数调用加一个分号构成一个语句有一个函数调用加一个分号构成一个语句 printf(“This is a C statement.”); 函数
7、是事先编写好的一段程序,用来对输入的数据函数是事先编写好的一段程序,用来对输入的数据进行加工处理,加工后的结果可以通过函数值返回进行加工处理,加工后的结果可以通过函数值返回。 函数包含两类:系统函数函数包含两类:系统函数 和和 用户自定义函数用户自定义函数#include void main() sqrt(9.0); fabs(-10.0); sin(3.0);#include void main() float sqrt1, abs1, sin1; sqrt1=sqrt(9.0); abs1=fabs(-10.0); sin1=sin(3.0);表达式语句:表达式语句: 有一个表达式加一个分
8、号构成一个语句有一个表达式加一个分号构成一个语句 a = 3 ;分号分号赋值表达式赋值表达式表达式语句表达式语句复合语句:复合语句: 用一对用一对括起来的多条语句括起来的多条语句 void main() int x=10, y=20, z; z=x+y; t=z/100; printf(“%f”,t); 空语句空语句: : 只有一个分号的语句只有一个分号的语句 (什么也不做)(什么也不做) 用来作为循环语句中的循环体用来作为循环语句中的循环体( (一一) )所谓输入输出是以计算机主机为主体而言的所谓输入输出是以计算机主机为主体而言的输出输出: :从计算机向外部输出设备从计算机向外部输出设备(
9、(显示器显示器, ,打印机打印机) ) 输出数据。输出数据。输入输入: :从输入设备从输入设备( (键盘键盘, ,鼠标鼠标, ,扫描仪扫描仪) )向计算机向计算机 输入数据输入数据。( (二二)C)C语言本身不提供输入输出语句语言本身不提供输入输出语句, ,输入和输出操作输入和输出操作是由是由C C函数库中的函数来实现的。函数库中的函数来实现的。例如例如: :字符输入函数字符输入函数: : 字符输出函数字符输出函数: :格式输入函数格式输入函数: : 格式输出函数格式输出函数: :字符串输入函数字符串输入函数: : 字符串输出函数字符串输出函数: :( (三三) )在使用系统库函数时在使用系统
10、库函数时, ,要用预编译命令要用预编译命令“#include”#include”将有关的将有关的“头文件头文件”包括到用户包括到用户源文件中源文件中。例:例:在调用标准输入输出库函数时,文件开头应该有:在调用标准输入输出库函数时,文件开头应该有: #include #include “stdio.h“stdio.h” 或:或: #include stdio.h#include 头文件头文件(一)字符输出函数(一)字符输出函数 一般形式:一般形式:putcharputchar(c c) 函数作用:向显示器输出一个字符函数作用:向显示器输出一个字符 字符型常量、字符型常量、变量、整型变量、整型表达
11、式表达式例: 输出单个字符。#includevoid main() char a,b,c; a=B;b=O;c=Y; putchar(a);putchar(b); putchar(c);putchar(n);运行结果:BOYputchar(a);putchar(n);putchar(b);putchar(n);putchar(c);putchar(n);运行结果:B O Y(二)字符输入函数(二)字符输入函数 一般形式:一般形式:getchargetchar()() 函数作用:从键盘(或系统隐含指定的输入函数作用:从键盘(或系统隐含指定的输入设备)输入一个字符。设备)输入一个字符。 函数值:函
12、数值: 从输入设备得到的字符。从输入设备得到的字符。例:输入单个字符。#includevoid main() char c; c=getchar(); putchar(c); putchar(n);运行程序:运行程序:从键盘输入字符从键盘输入字符aa按按EnterEnter键键屏幕上将显示输出的字符屏幕上将显示输出的字符aaa aa a(三)格式输出函数(三)格式输出函数 函数作用:向显示器(或系统隐含指定的输出函数作用:向显示器(或系统隐含指定的输出设备)输出若干个任意类型的数据。设备)输出若干个任意类型的数据。printf(a=%d,b=%d, a, b);输出结果: a=3,b=4 一般
13、格式:一般格式:printf(格式控制,输出表列)(格式控制,输出表列)%d%d: :以带符号的十进制形式输出整数以带符号的十进制形式输出整数%o%o: :以八进制无符号形式输出整数以八进制无符号形式输出整数%x%x: :以十六进制无符号形式输出整数以十六进制无符号形式输出整数To be continuedTo be continued%u%u: :以无符号十进制形式输出整数以无符号十进制形式输出整数%c%c: :以字符形式输出,只输出一个字符以字符形式输出,只输出一个字符%s%s: :输出字符串输出字符串%f%f: :以小数形式输出单,双精度数,隐含输出六位小数以小数形式输出单,双精度数,隐
14、含输出六位小数%e%e: :以指数形式输出实数以指数形式输出实数%g%g: :选用选用%f%f或或%e%e格式中输出宽度较短的一种格式,不输格式中输出宽度较短的一种格式,不输 出无意义的出无意义的0 0几种常见的格式符的修饰符:几种常见的格式符的修饰符:l l:用于长整型整数,可加在格式符:用于长整型整数,可加在格式符d d,o o,x x,u u前面前面m m(代表一个正整数):数据最小宽度(代表一个正整数):数据最小宽度n n(代表一个正整数):对实数,表示输出(代表一个正整数):对实数,表示输出n n位小数;位小数; 对字符串,表示截取的字符个数对字符串,表示截取的字符个数- -:输出的
15、数字或字符在域内靠左对齐:输出的数字或字符在域内靠左对齐(1)格式符。用来输出十进制整数。格式符。用来输出十进制整数。几种用法:几种用法: : :按十进制整型数据的实际长度输出。按十进制整型数据的实际长度输出。 : :为指定的输出字段的宽度。如果数据的位数小于,为指定的输出字段的宽度。如果数据的位数小于, 则左端补以空格,若大于,则按实际位数输出。则左端补以空格,若大于,则按实际位数输出。 例例: : printf (,),); ; 若,则输出结果为若,则输出结果为 , : :输出长整型数据。输出长整型数据。 例例: : long long ;/ /* * 定义定义a a为长整型变量为长整型变
16、量* */ / printf (,);,);(2) (2) 。以八进制整数形式输出。以八进制整数形式输出。输出的数值不带符号,符号位也一起作为八进制数的一部分输出。输出的数值不带符号,符号位也一起作为八进制数的一部分输出。例:例:intint a=-1; a=-1; printf(%d printf(%d,%o%o,a a,a); a); 在内存单元中的存放形式(以补码形式存放)如下:在内存单元中的存放形式(以补码形式存放)如下: 11111111111111111111111111111111 输出为输出为: : ,不会输出带负号的八进制整数。不会输出带负号的八进制整数。可以用可以用“”格式
17、输出。格式输出。例例: printf (l,),); 输出为输出为: 37777777777(3)(3)格式符。以十六进制数形式输出整数。同样不会出格式符。以十六进制数形式输出整数。同样不会出现负的十六进制数。现负的十六进制数。例:例: intint ; printf (,);,); 输出结果为输出结果为: : ffff ffff,可以用可以用“”输出长整型数输出长整型数例例: : printf (lx,),); 输出为输出为: ffffffff(4)(4)格式符,用来输出格式符,用来输出 unsigned unsigned 型数据。型数据。一个有符号整数(型)也可以用格式输出;一个有符号整数
18、(型)也可以用格式输出;一个一个 unsigned 型数据也可以用格式输出;型数据也可以用格式输出;unsigned型数据也可用或格式输出。型数据也可用或格式输出。(5)(5)格式符,用来输出一个字符。格式符,用来输出一个字符。如:如:charchard d ; printf (,d d);); 输出字符输出字符 .一个整数,只要它的值在范围内,可以用一个整数,只要它的值在范围内,可以用“”使之按字符形式输出,在输出前,系统会将该整数使之按字符形式输出,在输出前,系统会将该整数作为作为ASCIIASCII码转换成相应的字符;一个字符数据也可以用码转换成相应的字符;一个字符数据也可以用整数形式输
19、出。整数形式输出。 例:例: 无符号数据的输出。无符号数据的输出。#includestdio.h#include void main()void main() unsigned int unsigned int a=65535; a=65535; printf(“a printf(“a=%d,%o,%x,%un”,a,a,a,a=%d,%o,%x,%un”,a,a,a,a);); 运行结果:运行结果:a=-1a=-1,177777177777,ffffffff,6553565535例:例: 字符数据的输出字符数据的输出#includestdio.h#include void main()voi
20、d main() char c=a; char c=a; int int i=97; i=97; printf(“%c,%dn”,c,c printf(“%c,%dn”,c,c);); printf(“%c,%dn”,i,i printf(“%c,%dn”,i,i);); 运行结果:运行结果:a,97a,97a,97a,97指定输出字数的宽度,指定输出字数的宽度,printf(“%3c”,c);printf(“%3c”,c);则输出:则输出: a a(6)s(6)s格式符格式符 输出字符串输出字符串. . 。例如:。例如: printfprintf(,) 输出字符串输出字符串“”(不包括双引号
21、)。(不包括双引号)。 %ms %ms,输出的字符串占,输出的字符串占m m列,若串长大于列,若串长大于m m,则全部输出,若串长,则全部输出,若串长 小于小于m m,则左补空格。,则左补空格。 %-ms %-ms,若串长小于,若串长小于m m,字符串向左靠,右补空格。,字符串向左靠,右补空格。 %m.ns %m.ns, ,输出占输出占m m列,只取字符串中左端列,只取字符串中左端n n个字符,输出在个字符,输出在m m列的列的 右侧,左补空格。右侧,左补空格。 %-m.ns %-m.ns,n n个字符输出在个字符输出在m m列的左侧,右补空格,若列的左侧,右补空格,若n nm m,m m自自
22、 动取动取n n值。值。例:字符串的输出。例:字符串的输出。#includevoid main() printf(“%3s,%7.2s,%.4s,%-5.3sn”, “CHINA”, “CHINA”, “CHINA”, “CHINA”); 运行结果:运行结果:CHINACHINA, CH ,CHIN,CHI CH ,CHIN,CHI (7)(7)格式符。用来以小数形式输出实数(包括单双精度)格式符。用来以小数形式输出实数(包括单双精度)有以下几种用法:有以下几种用法: 。不指定字段宽度,由系统自动指定字段宽度,使整数。不指定字段宽度,由系统自动指定字段宽度,使整数部分全部输出,并输出位小数。应
23、当注意,在输出的数字中部分全部输出,并输出位小数。应当注意,在输出的数字中并非全部数字都是有效数字。单精度实数的有效位数一般为位。并非全部数字都是有效数字。单精度实数的有效位数一般为位。. .。指定输出的数据共占列,其中有位小数。如果。指定输出的数据共占列,其中有位小数。如果数值长度小于,则左端补空格。数值长度小于,则左端补空格。. .与与. .基本相同,只是使输出的数值向左端基本相同,只是使输出的数值向左端靠,右端补空格。靠,右端补空格。 例:例:输出实数时指定小数位数输出实数时指定小数位数#include stdio.h#include void void ()() float f=123
24、.456; float f=123.456; printf(“f1=%f,f1=%7.2f,f1=-7.2f printf(“f1=%f,f1=%7.2f,f1=-7.2fn”n”,f f,f f,f);f);运行结果:运行结果:f1=f1=(8)(8)格式符,以指数形式输出实数。格式符,以指数形式输出实数。可用以下形式:可用以下形式: 。不指定输出数据所占的宽度和数字部分的小数位数。不指定输出数据所占的宽度和数字部分的小数位数. .例例: : printf printf(,);,);输出:输出: 0 0 所输出的实数共占所输出的实数共占2 2列宽度。列宽度。( (注:不同系统的规定略有不同注
25、:不同系统的规定略有不同) ) m.nem.ne和和-m.ne-m.ne。、和。、和“”字符的含义与前相同。字符的含义与前相同。 此处指拟输出的数据的小数部分(又称尾数)的小数位数。此处指拟输出的数据的小数部分(又称尾数)的小数位数。 (9)(9)格式符,用来输出实数格式符,用来输出实数. . 它根据数值的大小,自动选格式或格式(选择输出时占宽度它根据数值的大小,自动选格式或格式(选择输出时占宽度较小的一种),且不输出无意义的零。较小的一种),且不输出无意义的零。例例: :若,则若,则 printfprintf( ,);,);输出如下:输出如下:123.468000123.468000 1.2
26、34680e+021.234680e+02 123.468123.468000 10 10列列 1212列列 1010列列说明说明: :用格式输出占列,用格式输出占列,用用格式输出占列,用格式输出占列,用格式时,自动从上面两种格式中选择短者(今以格式为短)格式时,自动从上面两种格式中选择短者(今以格式为短)故占列,并按格式用小数形式输出,最后故占列,并按格式用小数形式输出,最后3 3个小数位为个小数位为无意义的,不输出,因此输出无意义的,不输出,因此输出123.468123.468,然后右补,然后右补3 3个空格。个空格。格式用得较少。格式用得较少。说明:说明: 除了除了X,E,G外,其他格式
27、字符必须用小写。外,其他格式字符必须用小写。 可以在可以在printf函数中的函数中的“格式控制格式控制”字符串中包含字符串中包含转义字符。转义字符。 一个格式说明必须以一个格式说明必须以“%”开头,以开头,以9个格式字符个格式字符之一为结束,中间可以插入附加格式字符。之一为结束,中间可以插入附加格式字符。 想想输出输出%,则应该在格式控制字符串中用连续两,则应该在格式控制字符串中用连续两个个%表示。表示。(四)格式输入函数(四)格式输入函数 函数作用:按照变量在内存的地址将变量值存函数作用:按照变量在内存的地址将变量值存 进去。进去。 一般格式:一般格式:scanfscanf(格式控制,地址
28、表列)(格式控制,地址表列)同同printf函数函数是由若干个地址组成的表列,可以是变量的是由若干个地址组成的表列,可以是变量的地址,或字符串的首地址地址,或字符串的首地址(四)格式输入函数(四)格式输入函数 scanfscanf(格式控制,地址表列)中的格式符:(格式控制,地址表列)中的格式符: %d, %ld, %u, %f, %lf, %e, %g, %c, %s, %o, %x%d, %ld, %u, %f, %lf, %e, %g, %c, %s, %o, %x例例: : 用用scanfscanf函数输入数据函数输入数据#includestdio.h#include void main()void main() int int a,b,c; a,b,c; scanf(“%d%d%d”,&a,&b,&c scanf(“%d%d%d”,&a,&b,&c);); printf(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业员工培训需求评估及方案制定工具
- 共享经济服务平台安全维护承诺函范文6篇
- 环境检测质量保障承诺函(5篇)
- 2026年贵州省铜仁地区松桃县市级名校初三第一次诊断性考试英语试题理试题含解析
- 黑龙江省明水县2026届初三下学期第一次诊断性考试英语试题试卷含解析
- 协调2026年新系统上线技术支持需求商洽函6篇
- 高等职业技术教育动物医学专业人才培养方案
- 2026年电商运营职业发展路线与述职报告
- 2026年工程机械:掘进机截割头截齿布置与载荷谱研究
- 2026年超市生鲜区周末限时折扣活动策划执行
- 2026山东出版集团有限公司山东出版传媒股份有限公司招聘193人备考题库及答案详解(基础+提升)
- 职业危害事故处置及报告全流程培训
- 2026年无锡工艺职业技术学院单招职业技能考试题库有答案详解
- 物业服务标准与质量管理手册(标准版)
- 中小医院医用布草洗涤服务方案投标文件(技术方案)
- 2025年监理工程师《案例分析(交通运输工程)》真题及答案
- 2026年全国高考体育单招考试模拟语文试题试题(含答案)
- 10 石蜂 课件 2026统编版三年级语文下册
- 2026年人力资源招聘成本降低方案
- 江西省国有资本运营控股集团有限公司2026年第一批批次公开招聘参考考试题库及答案解析
- 部队食堂管理与培训课件
评论
0/150
提交评论