C语言程序设计第3章--顺序结构程序设计

上传人:M****1 文档编号:569293533 上传时间:2024-07-28 格式:PPT 页数:49 大小:1.07MB
返回 下载 相关 举报
C语言程序设计第3章--顺序结构程序设计_第1页
第1页 / 共49页
C语言程序设计第3章--顺序结构程序设计_第2页
第2页 / 共49页
C语言程序设计第3章--顺序结构程序设计_第3页
第3页 / 共49页
C语言程序设计第3章--顺序结构程序设计_第4页
第4页 / 共49页
C语言程序设计第3章--顺序结构程序设计_第5页
第5页 / 共49页
点击查看更多>>
资源描述

《C语言程序设计第3章--顺序结构程序设计》由会员分享,可在线阅读,更多相关《C语言程序设计第3章--顺序结构程序设计(49页珍藏版)》请在金锄头文库上搜索。

1、 第3章顺序结构程序设计2024/7/2823.1 C语句概述语句概述3.3 数据的输入与输出数据的输入与输出3.4 顺序结构程序设计举例顺序结构程序设计举例3.2 最基本的语句最基本的语句-赋值语句赋值语句3.1C语句概述在C语言程序设计中,算法是程序的灵魂,函数是C程序的基本单位,而其中的执行部分是由语句组成的,即程序的功能是由执行语句实现的。因此,语句是程序的基本元素。2024/7/2833.1.1程序的执行顺序从程序流程角度来看:顺序结构程序的执行顺序是从前到后逐句执行;分支结构程序的执行顺序是依据判断条件选择执行;循环结构程序的执行顺序是按照规定的循环次数循环执行。2024/7/28

2、4从总体上看,都是一个顺序结构的程序。【例3-1】计算矩形面积。#includeintmain()inta,b,area;scanf(%d,%d,&a,&b);area=a*b;printf(area=%dn,area);return0;2024/7/2853.1.2C语言的语句分类1表达式语句表达式语句是由表达式加一个分号“;”组成的,其一般形式为:表达式;表达式可以是算术运算表达式、关系运算表达式、逻辑运算表达式、赋值表达式等。2024/7/286area=a*b;2复合语句用“”把一些声明和语句括起来即可形成复合语句。2024/7/287char c;scanf(%c,&c);print

3、f(%cn,c);一条复合语句3.空语句空语句是仅由一个分号所构成的语句,它不去执行任何操作。2024/7/288;4.程序控制语句在C语言中,程序控制语句是为了完成某种特定控制功能而采取的结构。2024/7/289控制语句名称if()else条件语句for()循环语句while()循环语句dowhile()循环语句continue结束本次循环语句break中止执行switch或循环语句switch多分支选择语句return从函数返回语句goto转向语句,在结构化程序中不提倡用goto语句5.函数调用语句函数调用语句由函数调用加分号“;”构成。其一般形式为:函数名(实际参数列表);2024/7

4、/2810printf(Hello, world!);3.2最基本的语句-赋值语句在C语言中,由赋值表达式加分号“;”构成的表达式语句为赋值语句。其一般形式为:变量=表达式;2024/7/2811x=y+6;【例3-2】求三个数的平均数。#includeintmain()floata,b,c,average;a=55;b=60;c=65;average=(a+b+c)/3;printf(%fn,average);return0;2024/7/2812在C语言程序设计中,使用赋值语句的注意事项:在赋值语句中,“a=b=c=d=6;”是合法的。而在变量说明中,却不允许连续给多个变量赋初值。如下述说

5、明是错误的:inta=b=c=d=6;,必须写为“inta=6,b=6,c=6,d=6;”。在C语言中,赋值表达式可以出现在任何允许表达式使用的位置中,但赋值语句则不能。if(a=b+6)0) c=a;/*语句合法*/if(a=b+6;)0) c=a; /*语句不合法*/3.3数据的输入与输出在C语言程序设计过程中数据的输入输出是程序的基本操作之一,存在数据的输入,自然在数据处理后也会要求结果的输出。如果一个程序没有结果的输出,程序是没有意义的。C语言本身不提供输入输出语句,输入与输出操作是由C标准函数库中的相应函数来实现的。在使用这些函数时,需使用预编译命令“#include”将输入/输出头

6、文件包含在源程序文件中。2024/7/2813#include C函数库中常用的输入/输出函数如下:(1)格式化输入/输出函数:scanf()、printf()。(2)字符输入/输出函数:getchar()、putchar()、getc()、putc()。(3)字符串输入/输出函数:gets()、puts()。2024/7/28143.3.1格式化输入与输出1格式化输出函数printf()printf()函数的功能是按格式控制字符串指定的格式输出指定的数据。2024/7/2815 函数名函数名可选输可选输出表列出表列普通普通字符字符格式格式说明说明printf(“格式控制字符串”,输出项表列)

7、;printf(a=%db=%f,a,b);格式:%c character以字符形式输出单个字符以字符形式输出单个字符%s string 输出一个字符串输出一个字符串%d decimal 以带符号十进制整数输出以带符号十进制整数输出%f float 以小数形式输出浮点数(以小数形式输出浮点数(6位小数)位小数)%e exponent 以标准指数形式输出(以标准指数形式输出(6位小数)位小数)%g 选用选用%f,%e中输出宽度较小的一种格式中输出宽度较小的一种格式%o octal 以八进制无符号整数输出(无前导以八进制无符号整数输出(无前导0)%x hex 以十六进制无符号整数输出(无前导以十六

8、进制无符号整数输出(无前导0x)%u unsigned 以十进制无符号整数输出以十进制无符号整数输出在输出时,对不同类型的数据需使用不同的格式说明字符,其一般形式为: %2024/7/28162024/7/2817【例3-3】printf()函数格式输出。#includeintmain()intx;floaty;charz;x=-7;y=56.66;z=A;printf(x=%d,y=%f,z=%cn,x,y,z);return0;程序运行的结果如下:x=-7,y=56.660000,z=Am 表示数据占用的最小宽度表示数据占用的最小宽度 数据宽度大于数据宽度大于m,按实际宽度输出,按实际宽度

9、输出 数据宽度小于数据宽度小于m时,补空格时,补空格n 对实数表示输出对实数表示输出n位小数位小数 对字符串表示最多输出的字符个数对字符串表示最多输出的字符个数l 长整型整数长整型整数,加在,加在d、o、x、u前前L long double型数,加在型数,加在f、e、g前前- 改变输出内容的对齐方式改变输出内容的对齐方式 默认为右对齐默认为右对齐 printf()的格式修饰符2024/7/2818printf()的格式修饰符% . . f f例如:printf(Value is:%10.4f, 32.6784728); Value is: 32.6785 10 characters4 digi

10、ts2024/7/28192.格式化输入函数scanf()scanf(“格式控制字符串”,地址表列);scanf(%d,%f,&a,&b);格式字符格式字符指定输入数指定输入数据格式据格式输入数据输入数据地址表列地址表列非格式字符非格式字符输入数据以输入数据以,分隔分隔没有时可以没有时可以空格空格、Tab或或回车回车分隔分隔格式:2024/7/2820c 以字符形式输入单个字符以字符形式输入单个字符s 输入字符串输入字符串,以非空字符开始以非空字符开始,遇第一个遇第一个 空白字符结束空白字符结束d 以带符号十进制形式输入整型数据以带符号十进制形式输入整型数据f 以小数形式输入浮点数以小数形式输

11、入浮点数e 以标准指数形式输入以标准指数形式输入o 以八进制无符号形式输入(无前导以八进制无符号形式输入(无前导0)x 以十六进制无符号形式输入(无前导以十六进制无符号形式输入(无前导0x) scanf()的格式字符2024/7/2821m 表示数据占用的宽度表示数据占用的宽度l 加在加在d、o、x、u前:输入长整型前:输入长整型 加在加在f、e 前:输入双精度型前:输入双精度型L 加在加在f、e 前:输入前:输入long double型型h 加在加在d、o、x 前前:输入短整型输入短整型* 本输入项在读入后不赋给相应的变量本输入项在读入后不赋给相应的变量 scanf()的格式修饰符2024/

12、7/2822# #includeincludemain()main() intinta,b;a,b;printf(Pleaseinputaandb:);printf(Pleaseinputaandb:);scanf(%2dscanf(%2d%*2d%*2d%2d,&a,&b);%2d,&a,&b);printf(a=%d,b=%d,a+b=%dn,a,b,a+b);printf(a=%d,b=%d,a+b=%dn,a,b,a+b); Please input a and b:a=12, b=56, a+b = 68123456 跳过一个输入项跳过一个输入项跳过一个输入项跳过一个输入项输入数据的

13、格式控制# #includeincludemain()main() intinta,b;a,b;scanf(%d%d,&a,&b);scanf(%d%d,&a,&b);printf(a=%d,b=%dn,a,b);printf(a=%d,b=%dn,a,b); 问题1:当要求程序输出结果为a=12,b=34时,用户应该如何输入数据?12 3412 34 2024/7/2824输入数据的格式控制# #includeincludemain()main() intinta,b;a,b;scanf(%d%d,&a,&b);scanf(%d%d,&a,&b);printf(a=%d,b=%dn,a,b)

14、;printf(a=%d,b=%dn,a,b); 问题2:当限定用户输入数据以逗号为分隔符,即输入数据格式为:12,34时,应修改程序中的哪条语句?怎样修改?, , 2024/7/2825输入数据的格式控制# #includeincludemain()main() intinta,b;a,b;scanf(%d%d,&a,&b);scanf(%d%d,&a,&b);printf(a=%d,b=%dn,a,b);printf(a=%d,b=%dn,a,b); 问题3:语句scanf(%d%d,&a,&b);修改为scanf(a=%d,b=%d,&a,&b);时,用户应该如何输入数据?a = 12,

15、 b = 34a = 12, b = 34 2024/7/2826输入数据的格式控制# #includeincludemain()main() intinta,b;a,b;scanf(%d%d,&a,&b);scanf(%d%d,&a,&b);printf(a=%d,b=%dn,a,b);printf(a=%d,b=%dn,a,b); 问题问题问题问题4 4:限定用户输入数据为以下格式:限定用户输入数据为以下格式:限定用户输入数据为以下格式:限定用户输入数据为以下格式 12341234 同时要求程序输出结果为同时要求程序输出结果为同时要求程序输出结果为同时要求程序输出结果为a = 12, b

16、= 34a = 12, b = 34%2d%2d%2d%2d 输入数据的格式控制2024/7/2827# #includeincludemain()main() intinta,b;a,b;scanf(%d%d,&a,&b);scanf(%d%d,&a,&b);printf(a=%d,b=%dn,a,b);printf(a=%d,b=%dn,a,b); 问题问题问题问题5 5:设计程序使得用户可以以任意字符(回车、空格、:设计程序使得用户可以以任意字符(回车、空格、:设计程序使得用户可以以任意字符(回车、空格、:设计程序使得用户可以以任意字符(回车、空格、制表符、逗号、其他)作为分隔符进行数据

17、的输入制表符、逗号、其他)作为分隔符进行数据的输入制表符、逗号、其他)作为分隔符进行数据的输入制表符、逗号、其他)作为分隔符进行数据的输入%*c输入数据的格式控制2024/7/2828【例3-5】printf()函数与scanf()函数综合应用。2024/7/2829#includeintmain()inta,b;floatc,d;charch;printf(请输入两个整数:);scanf(%d,%d,&a,&b);printf(a=%d,b=%dn,a,b);printf(a=%-6d,a=%6d,b=%-6d,b=%6dn,a,a,b,b);printf(a=%d,a=%o,a=%xn,a

18、,a,a);printf(请输入两个实数:);2024/7/2830scanf(%f,%f,&c,&d);printf(c=%f,d=%fn,c,d);printf(c=%-6.1f,c=%6.1f,d=%-6.1f,d=%6.1fn,c,c,d,d);printf(请输入两个整数:);scanf(%d,%2d,&a,&b);printf(a=%d,b=%dn,a,b);fflush(stdin);printf(请输入一个字符:);scanf(%c,&ch);printf(ch=%c,ch=%-5c,ch=%5cn,ch,ch,ch);return0;程序运行的结果如下: 请输入两个整数:60

19、,-70 a=60,b=-70 a=60 ,a= 60,b=-70 ,b= -70 a=60,a=74,a=3c 请输入两个实数:12.66,-56.73 c=12.660000,d=-56.730000 c=12.7 ,c= 12.7,d=-56.7 ,d= -56.7 请输入两个整数:567,567 a=567,b=56 请输入一个字符:A ch=A,ch=A ,ch= Aprintf()函数scanf()函数的使用注意事项:若需要输出字符“%”,需在“格式控制字符串”里连续输入两个字符“%”,如:2024/7/2831printf(x=%d%,x);在使用printf()函数时,输出项列

20、表里的每个输出项前面不可以加取地址运算符“&”,否则会出现错误,如:printf(“%f,%fn”,&a,&b);/*编译链接不会报错,但输出项的值会出现错误的结果*/而在使用scanf()函数时,必须在输入项列表里的每个输入项前面加取地址运算符“&”,否则会出现错误,如:scanf(“%d”,x);/*warningC4700:localvariablexusedwithouthavingbeeninitialized*/printf()函数可以指定输出数据的宽度和小数位数,如:printf(“%6.1f”,a);。而scanf()函数中没有精度控制,如scanf(%6.1f,&a);是非法

21、的。3.3.2字符数据的输入与输出1.字符输出函数putchar()putchar()函数是字符输出函数,其作用是向终端输出一个字符。其一般形式为:putchar(参数)putchar()函数的参数可以是一个字符型常量、一个字符变量和一个整型变量等,函数功能是输出该参数ASCII码所对应的字符。2024/7/2832【例3-6】应用putchar()函数实现字符输出。2024/7/2833#includeintmain()inta=65,b=66,c=67;charx=A,y=B,z=C;putchar(a);putchar(b);putchar(c);putchar(n);putchar(x

22、);putchar(y);putchar(z);putchar(n);putchar(A);putchar(B);putchar(C);putchar(n);return0;程序运行的结果如下: ABC ABC ABC2.字符输入函数getchar()getchar()函数是字符输入函数,其作用是从终端输入一个字符。其一般形式为:getchar()getchar()函数没有参数,而且只能接受一个字符。通常习惯把输入的字符赋给一个字符变量,构成赋值语句。如:2024/7/2834char ch;ch=getchar();【例3-7】应用getchar()函数实现字符输入。2024/7/2835#

23、includeintmain()charch;printf(请输入一个字符:n);ch=getchar();/*通过getchar()函数把字符赋给字符变量*/putchar(ch);/*通过字符输出函数putchar()把字符输出*/putchar(n);return0;程序运行的结果如下: A A3.字符输出函数putc()函数putc()用于输出一个字符到指定位置中,其一般形式为:intputc(intch,FILE*fp)其函数作用是输出一个字符到fp所指向的文件。2024/7/2836getc()和putc()函数与getchar()和putchar()函数类似,只是getc()和p

24、utc()函数需要知道使用哪一个文件【例3-8】应用putc()函数实现在屏幕上输出“*”。2024/7/2837#includeintmain()putc(*,stdout);/*putc()函数将字符“*”输出到显示器上*/printf(n);return0;4.字符输入函数getc()getc()函数用于从指定位置中读取字符,其一般形式为:intgetc(FILE*fp)其函数作用是从fp所指向的文件中读取一个字符。2024/7/2838【例3-9】应用getc()函数实现从键盘上读取一个字符。2024/7/2839#includeintmain()charch;printf(请输入一个

25、字符:);ch=getc(stdin);/*从键盘上读取一个字符且存入字符变量ch中*/printf(您输入的字符是:%cn,ch);return0;程序运行的结果如下: 请输入一个字符:M 您输入的字符是:M5.字符串输出函数puts()puts()函数功能是将一个字符串(以“0”结束的字符序列)输出到屏幕上。其一般形式为:puts(字符数组名)2024/7/2840【例3-10】应用puts()函数实现向终端输出字符串。2024/7/2841程序运行的结果如下: The world is wonderful!#includeintmain()puts(Theworldiswonderful

26、!);/*puts()函数将字符串输出到显示器上*/return0;6.字符串输入函数gets()gets()函数功能是指从键盘输入一个字符串到字符数组,并且得到一个函数值,该函数值是字符数组的起始地址。其一般形式为:gets(字符数组名)2024/7/2842【例3-11】应用gets()函数实现字符串输入。2024/7/2843程序运行的结果如下: 请输入一个字符串: It is sunny! It is sunny!#includeintmain()charstring18;/*定义了一个字符数组,用于保存字符串*/printf(请输入一个字符串:n);gets(string);/*ge

27、ts()函数实现字符串的输入*/puts(string);return0;3.4顺序结构程序设计举例【例3-12】阶梯电费的计算:因夏季是用电高峰,因此某城市在第三季度(79月)实行阶梯电价,电价分别为:7月0.58元/度、8月0.62元/度、9月0.52元/度。请输入用户第三季度各月用电量,计算出第三季度用电缴费金额。2024/7/2844#includeintmain()floata,b,c,sum;printf(请输入7月用电量(度):n);scanf(%f,&a);printf(请输入8月用电量(度):n);scanf(%f,&b);printf(请输入9月用电量(度):n);scan

28、f(%f,&c);sum=0.58*a+0.62*b+0.52*c;printf(用户第三季度应缴电费(元)sum=%.2fn,sum);return0;程序运行的结果如下: 请输入7月用电量(度): 190 请输入8月用电量(度): 260 请输入9月用电量(度): 160 用户第三季度应缴电费(元)sum=354.60【例3-13】从键盘随机输入两个整数赋给变量x、y,且输出x、y,然后使x与y的值互换,再输出x、y。2024/7/2845程序运行的结果如下: 11,22 x=11,y=22 x=22,y=11#includeintmain()intx,y,t;scanf(%d,%d,&x

29、,&y);printf(x=%d,y=%dn,x,y);t=x;x=y;y=t;printf(x=%d,y=%dn,x,y);return0;【例3-15】从键盘上随机输入两个小写字母,输出其相应的大写字母及ASCII码值。2024/7/2846程序运行的结果如下: d,c ch1=D,ch2=C ch1=68,ch2=67#includeintmain()charch1,ch2;scanf(%c,%c,&ch1,&ch2);ch1=ch1-32;ch2=ch2-32;printf(ch1=%c,ch2=%cn,ch1,ch2);printf(ch1=%d,ch2=%dn,ch1,ch2);r

30、eturn0;printf(十位数为:%dn,b);c=m%10;printf(个位数为:%dn,c);n=100*c+10*b+1*a;printf(新的三位数为:%dn,n);return0;【例3-16】从键盘随机输入一个三位正整数,分别输出该数的百位数、十位数、个位数,之后将原个位数与百位数互换后输出新的三位数。2024/7/2847程序运行的结果如下: 请输入一个三位的正整数:567百位数为:5十位数为:6个位数为:7新的三位数为:765#includeintmain()inta,b,c,m,n;printf(请输入一个三位的正整数:n);scanf(%d,&m);a=m/100;printf(百位数为:%dn,a);b=(m%100)/10;2024/7/2848C语言语句分类顺序结构程序设计数据输入输出函数基本控制结构2024/7/2849顺序结构是最基本、最简单的程序结构,执行过程按照算法流程从前到后顺序执行各个操作,通过顺序结构程序设计举例来进一步掌握C语句的分类及C标准函数库中常用数据输入输出函数的使用,尤其注意格式输入输出函数printf()函数和scanf()函数中格式控制字符串的形式。本章小结注意本章节知识点!

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号