实用c语言程序设计三种基本结构程序设计详解.pptx
《实用c语言程序设计三种基本结构程序设计详解.pptx》由会员分享,可在线阅读,更多相关《实用c语言程序设计三种基本结构程序设计详解.pptx(52页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实用实用c语言程序设计三种基本结构程序设语言程序设计三种基本结构程序设计详解计详解2023/3/212023/3/213.1 顺序结构程序设计顺序结构程序设计顺序结构程序:就是执行时依语句排列顺序一条接着一条地执行,不发生控制流的转移。特点:每个程序都是按照语句的书写顺序依次执行的,它是最简单的结构。不可或缺的若干语句,用把它们括起来,这样的语句体称为复合语句。复合语句在逻辑上等价于一条语句,复合语句内部还可嵌套复合语句。ABab第1页/共52页2023/3/212023/3/21 3.1.1 程序设计简例main()char ch=a;/*定义变量并赋值*/int a=98;unsigned
2、 b=1000;long c=123456789;float x=3.14;double y=1.2345678;printf(1)a=%d,a=%c,ch=%d,ch=%cn,a,a,ch,ch);/*输出*/printf(2)b=%u n,b);printf(3)c=%ld n,c);printf(4)x=%f,y=%fn,x,y);printf(5)x=%e,y=%e n,x,y);printf(6)y=%-10.2fn,y);【例 1】分析下列程序,观察运行结果 运行结果(1)a=98,a=b,ch=97,ch=a(2)b=1000(3)c=123456789(4)x=3.140000
3、,y=1.234567(5)x=3.14000e+00,y=1.23456e+00(6)y=1.23第2页/共52页2023/3/212023/3/21程序设计简例【例 2】输入一个三位的整数,分解它的符号、百位数字、十位数字和个位数字,然后依次输出。#include#include /*程序中使用了数学函数 abs*/main()char c1,c2,c3,c4;/*定义变量 */int x;printf(please input a numer:n);/*输入提示信息*/scanf(%d,&x);/*键盘输入 x 的值 */c4=x=0?+:-;/*将 x 的符号赋给 c4*/x=abs(
4、x);/*取 x 的绝对值 */c3=x%10+48;/*求得 x 的个位数字,加 48 转换为对应数字字符的 ASCII 码值*/x=x/10;/*去掉个位数,取出 x 的高位 */c2=x%10+48;/*求得 x 的十位数字,加 48 转换为对应的 ASCII 码值 */c3=x/10+48;/*求得 x 的百位数字,加 48 转换为对应的 ASCII 码值 */printf(%cn%cn%cn%cn,c4,c3,c2,c1);/*输出符号位,百位,十位,个位 */程序的执行结果:please input a numer:-321-,3,2,1第3页/共52页2023/3/212023/
5、3/21程序设计简例【例 3】在屏幕输出“please input your name:”,再从键盘上输入一个名字,然后显示“Hello!”,在下一行显示输入的名字。#include main()char name 10;/*存放名子的变量在后面章节再详细介绍*/printf(please input you rname:n);/*输出提示信息*/scanf(%s,name);/*读入名字*/printf(Hello!n);/*输出 Hello!*/printf(%s,name);/*输出读入的名字*/程序的执行结果:please input your name:Li gangHello!Li
6、 gang第4页/共52页2023/3/212023/3/21程序设计简例【例 4】读入一个小写字母,将其转换成大写字母后输出,同时输出其对应的 ASCII 编码。#include main()char ch1,ch2;printf(Enter a lower letter:);ch1=getchar();/*利用字符输入函数,实现键盘输入一个字符,赋给字符变量 ch1*/printf(letter:%c,ASCII:%dn,ch1,ch1);/*屏幕显示键盘输入的字符,并显示该字符的 ASCII 代码值*/ch2=ch1-32;/*将小写字母转换成对应的大写字母*/printf(letter
7、:%c,ASCII:%dn,ch2,ch2);/*屏幕显示转换后的字符,及该字符的 ASCII 代码值*/程序运行情况:Enter a lower letter:aletter:a,ASCII:97letter:A,ASCII:65第5页/共52页2023/3/212023/3/21程序设计简例【例 5】在100.0g 苯中加入13.76g 联苯(MB),所形成溶液的沸点为82.40(t2),计算联苯的相对分子量。已知纯苯的沸点为80.10(t1),Kb=2.57。#include main()float mA,mB,MB,Kb,t1,t2;/*定义变量*/printf(please inpu
8、t:mA,mB,Kb,t1,t2n);/*输出“输入数据”提示信息*/scanf(%f,%f,%f,%f,%f,&mA,&mB,&Kb,&t1,&t2);/*读入数据*/MB=(Kb*mB)/(t1t2)*mA);/*计算联苯的分子量*/printf(MB=%6.2f,MB);/*输出联苯的分子量*/printf(g/mol n);/*打出分子量的单位*/程序运行情况:please input:mA,mB,Kb,t1,t2100.0,13.76,2.57,80.10,82.40 MB=153.75 g/mol第6页/共52页2023/3/212023/3/213.1.2 格式输入输出的一般形式
9、格式1、格式输出函数printf()printf()函数调用的形式:printf(“格式控制字符串”,输出项表)或 printf(字符串)在该函数调用时,在其后面加上分号,就构成了格式输出语句。printf 中的输出项是和前面的格式控制字符串按顺序一一对应的。“项”可以是常量、变量、表达式、数组和函数调用,其值应和格式说明相容。1格式控制字符串该字符串放在一对双引号中,它可以包含以下三部分内容。(1)按原样输出的字符:(2)转义字符:(3)与输出项对应的“格式说明符”:要求以%开头,格式说明符在个数和类型上应该与输出项相对应。第7页/共52页2023/3/212023/3/21 输出格式字符表
10、 格式符输出形式输出项类型数据输出方式-md-mo-mx-mud十进制整数o八进制整数x十六进制整数u无符号整数int,shortunsigned intunsigned shortchar有-,左对齐;无-,右对齐无 m 或总宽度超过位时按实际宽度输出;不足m 位时,补空格-mld-mlo-mlx-mluld十进制整数lo八进制整数lx十六进制整数lu 无符号整数longunsigned long-m.nf-m.nef十进制小数e十进制指数自动选定格式floatdouble有-,左对齐;无-,右对齐 无 m.n 或总宽度超过时,则按实际宽度输出;有 m.n 输出 m 位,其中小数 n 位;不
11、足 m 位时,加空格g自动选定f或e格式floatdouble不输出尾数中无效的0,以尽可能少地占输出宽度。-mcc单个字符char有-,左对齐;无-,右对齐无 m 则输出单个字符;有 m 则输出m 位,不足 m 位时补空格-m.nss字符串字符串有-,左对齐;无-,右对齐无 m.n 则按实际输出全部字符串 有 m.n 则输出前n 个字符串注意:m、n 均是正整数,m 主要用于控制输出数据的总宽度,n 用于控制输出实数的小数位数或控制输出字符串时可以输出的实际字符数。第8页/共52页2023/3/212023/3/21格式输入输出的一般形式格式2输出项表 printf函数中的“输出项表”部分由
12、表达式组成,这些表达式应与“格式控制字符串”中的格式说明符的类型一一对应,若“输出项表”中有多个表达式,则每个表达式之间应由逗号隔开,各输出项可以是任意合法的表达式(包括常量、变量和函数调用)。因此 printf 函数也具有计算的功能。printf(%dn,100);/*输出显示100*/printf(%dn,1234000+5678);/*输出显示:1234+5678*/printf(%fn,(x=123.0)+(y=0.4567);/*输出显示:123.456700*/printf(%6.2fn,123.4567);/*输出显示:123.46*/printf(%.3fn,123.4567)
13、;/*输出显示:123.457*/第9页/共52页2023/3/212023/3/21格式输入输出的一般形式格式3 printf函数的控制字符的附加说明标 记作 用(加号)空格#0*输出的正数前面加“+”号,负数前面加“”号在输出的正数前加一个空格“#o”使输出的八进制数前加 0“#x”或“#X”使输出的十六进制数前加0 x或0X对没有小数部分的浮点数,#迫使 f、e、E、g、G 打印出小数点且“#g”不去掉尾部的无效0用0(零)去填充域宽指定浮点数的输出位数第10页/共52页2023/3/212023/3/21格式输入输出的一般形式格式二.格式输入函数 scanf()scanf()调用的格式
14、:scanf(格式控制字符串,输入地址项表列);该函数具有按格式字符串中规定的格式,在键盘上输入各输入项的数据,并依次赋给各输入项,且具有对从输入流中接收到的数据进行格式转换的功能。因为要求在内存中保存所接收到的数据,因此,需要提供接收数据的变量的地址。地址运算符&用于取得指定变量的地址。当以数值格式从输入流中读取数据时,scanf()可以跳过空格、换行及跳格符(在输入流中,数值型数据须以这些空白字符 分隔)。第11页/共52页2023/3/212023/3/21格式输入输出的一般形式格式1格式控制字符串格式符输入形式输入项类型数据输入方式mdmomxd十进制整数o八进制整数x十六进制整数in
15、t,shortunsigned intunsigned short无 m 按实际位数输入 有 m只能输入 m 位 不足 m 位,以 Enter 键或空格结束mldmlomlxld十进制整数lo八进制整数lx十六进制整数longunsigned longmfmef十进制小数e十进制指数floatdoublemlfmlelf十进制小数le十进制指数floatdouble mcc单个字符char无 m仅取单个字符,以 Enter 结束有 m 输入 m 个字符,仅取第一个 mss字符串字符串无 m 输入字符至回车或空格结束 有 m 仅取前 m 个字符 第12页/共52页2023/3/212023/3/
16、21格式输入输出的一般形式格式2输入地址表列 scanf函数中的“地址表列”部分是由变量的地址组成的,如果有多个变量,则各变量之间用逗号隔开。地址运算符为“&”,如变量 a的地址可以写为&a。输入项表中的各输入项,应该是存放输入数据存储单元的地址。使用时一定注意,各输入项之间用“,”号分隔开,各变量名前一定要加“&”求地址运算符。3说明(1)在 scanf函数“格式控制”部分中的每个格式说明符都必须在“地址表”中有一个变量与之对应,格式说明符必须要与相应变量的类型一致。而且,输入的数据必须是常量,不能是表达式,而且按输入项的前后次序顺序输入数据。(2)在输入数据时,各数据之间要使用“空格”、“
17、Tab”或“回车”键(Enter 键)作为分隔;如果格式说明符之间包含其他字符,则输入数据时,应输入与这些字符相同的字符做间隔。第13页/共52页2023/3/212023/3/21格式输入输出的一般形式格式(3)在输入字符型数据时,由于“空格”也作为有效字符输入,因此,不需要用“空格”做分隔,只要输入一个字符即可。故输入字符型数据时,数据之间不用分隔符。(4)在格式说明符的前面指定输入数据所占的列数时,系统将自动按此列数来截取所需的数据。(5)如果在格式控制字符串中,含有不属于格式说明的其他字符,在输入数据时,必须在对应位置上原样输入这些字符。(6)如果在%后有一个“*”附加说明符,表示跳过
18、它指定的列数。(7)在scanf函数中不使用u说明符,对unsigned 型数据,以d或o、x格式输入。(8)在用scanf函数输入数据时,不能规定精度。第14页/共52页2023/3/212023/3/213.1.3 字符输入、输出函数字符输入、输出函数1字符输入函数格式:getchar()或getch()调用函数时,当程序执行到 getchar 函数调用语句时,将等待输入,只有当用户输入字符,并按 Enter键后,才接收输入的第 1 个字符,并在屏幕上回显该字符,同时送到内存的缓冲区,准备赋给指定的变量。并且对空格符、制表符(Tab 键)和回车符(Enter 键)都被当作有效字符读入。ge
19、tch()函数是立即接收用户来自键盘上的输入,不把字符回显到屏幕上。2字符输出函数 putchar格式:putchar(ch)其作用是将参数代表的字符在标准输出设备(通常是显示器)上加以输出。参数 ch 可以是字符常量、字符变量或整型表达式,其功能等价于:printf(%c,ch)。第15页/共52页2023/3/212023/3/213.2 选择结构程序设计选择结构程序设计 分支语句有两类:一类是 if语句,另一类是 switch语句。条件语句的作用是使程序按某种条件有选择地执行一条或多条语句。其中,条件可以用表达式来描述,如关系表达式和逻辑表达式。选择结构程序中的语句(段)是否执行,取决于
20、某个“条件”是否成立。选择结构的程序又有三种形式:单分支结构、双分支结构和多分支结构。第16页/共52页2023/3/212023/3/213.2.1 程序设计简例程序设计简例【例 6】输入 2 个数,如果它们的值不相等,则交换并输出它们的值;否则,输出“equal”。#include void main()int a,b,t;printf(input a,b:n);scanf(d,d,&a,&b);if(a!=b)/*语句 1 是一条复合语句*/t=a;a=b;b=t;printf(a=d,b=dn,a,b);elseprintf(equaln);/*语句2*/程序的执行结果1:input
21、a,b:10,12a=12,b=10程序的执行结果2:input a,b:10,10equal 第17页/共52页2023/3/212023/3/21程序设计简例程序设计简例【例 7】输入 3 个整数,输出其中的最大值。#include void main()int a,b,c,max;/*max中放最大值*/printf(inputa,b,c:n);scanf(ddd,&a,&b,&c);max=a;/*先假设a是最大的数*/if(maxb)max=b;/*如果 b 比假设的最大值大,再假设 b是最大的数*/if(max0,方程有两个不等的实根;(2)若 b2-4ac=0,方程有两个相等的实
22、根;(3)若 b2-4ac0,方程有两个复根。yyn开始a=0这是一次方程x=c/bdelta=b*b4*a*c输入a,b,c方程有两个相等的实根x1,x2=b/(2*a)n方程有两个虚根n方程有两个不相等的实根x1=(-b+sqrt(delta)/(2*a)x2=(-b-sqrt(delta)/(2*a)结束图 3-1 解一元二次方程的流程示意图ydelta=0delta 0第19页/共52页2023/3/212023/3/21程序设计简例程序设计简例main()float a,b,c,delta,x1,x2,realpart,imagepart;printf(请输入 a,b,c:n);sc
23、anf(%f,%f,%f,&a,&b,&c);if(fabs(a)=1e-6)printf(这是一次方程 x=%fn,-c/b);else delta=b*b-4*a*c;if(fabs(delta)1e-6)第20页/共52页2023/3/212023/3/21程序设计简例程序设计简例 x1=(-b+sqrt(delta)/(2*a);x2=(-b-sqrt(delta)/(2*a);printf(有两个不等的实根:x1=%8.4f和 x2=%8.4fn,x1,x2);else realpart=-b/(2*a);imagepart=sqrt(-delta)/(2*a);printf(有两个
24、虚根:);printf(%8.4f+%8.4fin,realpart,imagepart);printf(%8.4f-%8.4fin,realpart,imagepart);程序运行:请输入 a,b,c:3.00,4.00,5.00有两个虚根:-0.6667+1.1055i-0.6667-1.1055i第21页/共52页2023/3/212023/3/21程序设计简例程序设计简例【例 9】从键盘输入一个月份(1 12),并显示该月份的英文名称。main()int month;printf(Enter a month);scanf(%d,&month);switch(month)/*根据 mon
25、th 的当前取值,做出多分支选择*/case 1:printf(Januaryn);break;case 2:printf(Februaryn);break;case 3:printf(Marchn);break;case 4:printf(Apriln);break;case 5:printf(Mayn);break;case 6:printf(Junen);break;case 7:printf(Julyn);break;case 8:printf(Augusn);break;case 9:printf(Septembern);break;case 10:printf(Octobern);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实用 语言程序设计 基本 结构 程序设计 详解
限制150内