【文档说明】C语言程序设计第3章--顺序结构程序设计.ppt,共(49)页,1.068 MB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-2217.html
以下为本文档部分文字说明:
第3章顺序结构程序设计2022/11/122§3.1C语句概述§3.3数据的输入与输出§3.4顺序结构程序设计举例§3.2最基本的语句--赋值语句3.1C语句概述在C语言程序设计中,算法是程序的灵魂,函数是C程序的基本单位,而其中的执行部分是由语句组成的,即程序
的功能是由执行语句实现的。因此,语句是程序的基本元素。2022/11/1233.1.1程序的执行顺序从程序流程角度来看:顺序结构程序的执行顺序是从前到后逐句执行;分支结构程序的执行顺序是依据判断条件选择执行;循环结构程序的执行顺序是按照规定的循环次
数循环执行。2022/11/124从总体上看,都是一个顺序结构的程序。【例3-1】计算矩形面积。#include<stdio.h>intmain(){inta,b,area;scanf("%d,%d",&a,&b);area=a*b;printf("area=%d\n",area);return0
;}2022/11/1253.1.2C语言的语句分类1.表达式语句表达式语句是由表达式加一个分号“;”组成的,其一般形式为:表达式;表达式可以是算术运算表达式、关系运算表达式、逻辑运算表达式、赋值表
达式等。2022/11/126area=a*b;2.复合语句用“{}”把一些声明和语句括起来即可形成复合语句。2022/11/127{charc;scanf("%c",&c);printf("%c\n",c);}一条复合语句3.空语句
空语句是仅由一个分号所构成的语句,它丌去执行仸何操作。2022/11/128;4.程序控制语句在C语言中,程序控制语句是为了完成某种特定控制功能而采取的结构。2022/11/129控制语句名称if()∙∙∙else∙∙∙条件语句for()∙∙∙循环语句whi
le()∙∙∙循环语句do∙∙∙while()循环语句continue结束本次循环语句break中止执行switch或循环语句switch多分支选择语句return从函数返回语句goto转向语句,在结构化程序中丌提倡用goto语句5.函数调用语句函数调用语句由函数调用加分号“
;”构成。其一般形式为:函数名(实际参数列表);2022/11/1210printf("Hello,world!");3.2最基本的语句--赋值语句在C语言中,由赋值表达式加分号“;”构成的表达式语句为赋值语句。其一般形式为:
变量=表达式;2022/11/1211x=y+6;【例3-2】求三个数的平均数。#include<stdio.h>intmain(){floata,b,c,average;a=55;b=60;c=65;average=(a+b+c)/3;printf("%f\n
",average);return0;}2022/11/1212在C语言程序设计中,使用赋值语句的注意事项:在赋值语句中,“a=b=c=d=6;”是合法的。而在变量说明中,却丌允许连续给多个变量赋初值。如下述说明是错误的: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标准函数库中的相应函数来实现的。在使用这些函数时,需使用预编译命令“#in
clude”将输入/输出头文件包含在源程序文件中。2022/11/1213#include<stdio.h>C函数库中常用的输入/输出函数如下:(1)格式化输入/输出函数:scanf()、printf
()。(2)字符输入/输出函数:getchar()、putchar()、getc()、putc()。(3)字符串输入/输出函数:gets()、puts()。2022/11/12143.3.1格式化输入不输出1.格式化输出函数printf()p
rintf()函数的功能是按格式控制字符串指定的格式输出指定的数据。2022/11/1215函数名可选输出表列普通字符格式说明printf(“格式控制字符串”,输出项表列);printf("a=%db=%f",a,b);格式:%cch
aracter以字符形式输出单个字符%sstring输出一个字符串%ddecimal以带符号十进制整数输出%ffloat以小数形式输出浮点数(6位小数)%eexponent以标准指数形式输出(6位小数)%g
选用%f,%e中输出宽度较小的一种格式%ooctal以八进制无符号整数输出(无前导0)%xhex以十六进制无符号整数输出(无前导0x)%uunsigned以十进制无符号整数输出在输出时,对不同类型的数据需使用不同的格式说明字符,其一般形式为:%
[<格式附加字符>]<格式字符>2022/11/12162022/11/1217【例3-3】printf()函数格式输出。#include<stdio.h>intmain(){intx;floaty;charz;x=-7;y=56.66;z='A’;printf("x
=%d,y=%f,z=%c\n",x,y,z);return0;}程序运行的结果如下:x=-7,y=56.660000,z=Am表示数据占用的最小宽度数据宽度大于m,按实际宽度输出数据宽度小于m时,补空格n对实数表示输出n位小数对字符串表示最多输出的字符个
数l长整型整数,加在d、o、x、u前Llongdouble型数,加在f、e、g前-改变输出内容的对齐方式默认为右对齐printf()的格式修饰符2022/11/1218printf()的格式修饰符%[<最小域宽
>.<小数位数>]f例如:printf("Valueis:%10.4f",32.6784728);Valueis:32.678510characters4digits2022/11/12192.格式化输入函数scanf()scanf(“格式控制字符串
”,地址表列);scanf("%d,%f",&a,&b);格式:2022/11/1220c以字符形式输入单个字符s输入字符串,以非空字符开始,遇第一个空白字符结束d以带符号十进制形式输入整型数据f以小数形式输入浮点数e以标准指数形式
输入o以八进制无符号形式输入(无前导0)x以十六进制无符号形式输入(无前导0x)scanf()的格式字符2022/11/1221m表示数据占用的宽度l加在d、o、x、u前:输入长整型加在f、e前:输入双精度型L加在f、e前:输入longdouble型h加在d、o、x前:输入短整型*本输入项
在读入后不赋给相应的变量scanf()的格式修饰符2022/11/1222#include<stdio.h>main(){inta,b;printf("Pleaseinputaandb:");scanf("%2d%*2d%2d",&a,&b);printf("a=%d,b=%d,a
+b=%d\n",a,b,a+b);}Pleaseinputaandb:a=12,b=56,a+b=68123456↙跳过一个输入项输入数据的格式控制#include<stdio.h>main(){int
a,b;scanf("%d%d",&a,&b);printf("a=%d,b=%d\n",a,b);}问题1:当要求程序输出结果为a=12,b=34时,用户应该如何输入数据?1234↙2022/11/
1224输入数据的格式控制#include<stdio.h>main(){inta,b;scanf("%d%d",&a,&b);printf("a=%d,b=%d\n",a,b);}问题2:当限定用户输入数
据以逗号为分隔符,即输入数据格式为:12,34↙时,应修改程序中的哪条语句?怎样修改?,2022/11/1225输入数据的格式控制#include<stdio.h>main(){inta,b;scanf("%d%d",&a,&b);printf("
a=%d,b=%d\n",a,b);}问题3:语句scanf("%d%d",&a,&b);修改为scanf("a=%d,b=%d",&a,&b);时,用户应该如何输入数据?a=12,b=34↙2022/11/1226输入数据的格式控制#inc
lude<stdio.h>main(){inta,b;scanf("%d%d",&a,&b);printf("a=%d,b=%d\n",a,b);}问题4:限定用户输入数据为以下格式1234↙同时要求程序输出结果为a=12,b=
34%2d%2d输入数据的格式控制2022/11/1227#include<stdio.h>main(){inta,b;scanf("%d%d",&a,&b);printf("a=%d,b=%d\n",a,b);}问题5:设计程序使得用户可以以任意字符(回车、空
格、制表符、逗号、其他)作为分隔符进行数据的输入%*c输入数据的格式控制2022/11/1228【例3-5】printf()函数不scanf()函数综合应用。2022/11/1229#include<stdio.h>intmain(){inta,b;floatc,d
;charch;printf("请输入两个整数:");scanf("%d,%d",&a,&b);printf("a=%d,b=%d\n",a,b);printf("a=%-6d,a=%6d,b=%-6d,b=%6d\n",a
,a,b,b);printf("a=%d,a=%o,a=%x\n",a,a,a);printf("请输入两个实数:");2022/11/1230scanf("%f,%f",&c,&d);printf("c=%f,d=%f\n",c,d);printf("c
=%-6.1f,c=%6.1f,d=%-6.1f,d=%6.1f\n",c,c,d,d);printf("请输入两个整数:");scanf("%d,%2d",&a,&b);printf("a=%d,b=%d
\n",a,b);fflush(stdin);printf("请输入一个字符:");scanf("%c",&ch);printf("ch=%c,ch=%-5c,ch=%5c\n",ch,ch,ch);return0;}程序运行的结果如下:请输入两个整数:60,-70a=60,b=-70a
=60,a=60,b=-70,b=-70a=60,a=74,a=3c请输入两个实数:12.66,-56.73c=12.660000,d=-56.730000c=12.7,c=12.7,d=-56.7,d=-56.7请输入两个整数:567,567a=567,
b=56请输入一个字符:Ach=A,ch=A,ch=Aprintf()函数scanf()函数的使用注意事项:若需要输出字符“%”,需在“格式控制字符串”里连续输入两个字符“%”,如:2022/11/1231printf("x=%d%%",x);在使用printf()函数时,输出
项列表里的每个输出项前面丌可以加取地址运算符“&”,否则会出现错误,如:printf(“%f,%f\n”,&a,&b);/*编译链接丌会报错,但输出项的值会出现错误的结果*/而在使用scanf()函数时,必须在输入项列表里的每个输入项前面加
取地址运算符“&”,否则会出现错误,如:scanf(“%d”,x);/*warningC4700:localvariable'x'usedwithouthavingbeeninitialized*/printf()函数可以指定输出数据的宽度和小数位数,如:printf(“%6.1f
”,a);。而scanf()函数中没有精度控制,如scanf("%6.1f",&a);是非法的。3.3.2字符数据的输入与输出1.字符输出函数putchar()putchar()函数是字符输出函数,其作用是向终端输出一个字符。其一般形式为:putchar(参数)putc
har()函数的参数可以是一个字符型常量、一个字符变量和一个整型变量等,函数功能是输出该参数ASCII码所对应的字符。2022/11/1232【例3-6】应用putchar()函数实现字符输出。2022/11/1233#include<stdio.h>intmain(){inta=65,b=
66,c=67;charx='A',y='B',z='C’;putchar(a);putchar(b);putchar(c);putchar('\n’);putchar(x);putchar(y);putchar(z);
putchar('\n’);putchar('A');putchar('B');putchar('C');putchar('\n');return0;}程序运行的结果如下:ABCABCABC2.字符输入函数getchar()getchar()函数是字符输入函数
,其作用是从终端输入一个字符。其一般形式为:getchar()getchar()函数没有参数,而且只能接受一个字符。通常习惯把输入的字符赋给一个字符变量,构成赋值语句。如:2022/11/1234charch;ch=get
char();【例3-7】应用getchar()函数实现字符输入。2022/11/1235#include<stdio.h>intmain(){charch;printf("请输入一个字符:\n");ch=getchar();/*通过getch
ar()函数把字符赋给字符变量*/putchar(ch);/*通过字符输出函数putchar()把字符输出*/putchar('\n’);return0;}程序运行的结果如下:AA3.字符输出函数putc()函数putc()
用于输出一个字符到指定位置中,其一般形式为:intputc(intch,FILE*fp)其函数作用是输出一个字符到fp所指向的文件。2022/11/1236getc()和putc()函数不getchar()和putchar()函数类似,只是getc()和putc()函数需要知
道使用哪一个文件【例3-8】应用putc()函数实现在屏幕上输出“*”。2022/11/1237#include<stdio.h>intmain(){putc('*',stdout);/*putc()函数将字符“*”输出到显示
器上*/printf("\n");return0;}4.字符输入函数getc()getc()函数用于从指定位置中读取字符,其一般形式为:intgetc(FILE*fp)其函数作用是从fp所指向的文件中读取一个字符。2022/11/1238【例3-9】应用
getc()函数实现从键盘上读取一个字符。2022/11/1239#include<stdio.h>intmain(){charch;printf("请输入一个字符:");ch=getc(stdin);/*从键盘上读取一个字符且存入字符变量ch中*/printf("您输入的字
符是:%c\n",ch);return0;}程序运行的结果如下:请输入一个字符:M您输入的字符是:M5.字符串输出函数puts()puts()函数功能是将一个字符串(以“\0”结束的字符序列)输出到屏幕上。其一般形式为:puts(字
符数组名)2022/11/1240【例3-10】应用puts()函数实现向终端输出字符串。2022/11/1241程序运行的结果如下:Theworldiswonderful!#include<stdio.h>intmain(){puts("Theworldiswonderful!")
;/*puts()函数将字符串输出到显示器上*/return0;}6.字符串输入函数gets()gets()函数功能是指从键盘输入一个字符串到字符数组,并且得到一个函数值,该函数值是字符数组的起始地址。其一般形式为:gets(字符数组名)2022/11/1242【例3-11】应用gets()函
数实现字符串输入。2022/11/1243程序运行的结果如下:请输入一个字符串:Itissunny!Itissunny!#include<stdio.h>intmain(){charstring[18];/*定义了一个字符数组,用于保存字符串*/printf("请输入一个字符串:\n");gets
(string);/*gets()函数实现字符串的输入*/puts(string);return0;}3.4顺序结构程序设计举例【例3-12】阶梯电费的计算:因夏季是用电高峰,因此某城市在第三季度(7~9月)实行阶梯电价,电价分别为:7月0.58元/度、8月0.62元/度、9月0.5
2元/度。请输入用户第三季度各月用电量,计算出第三季度用电缴费金额。2022/11/1244#include<stdio.h>intmain(){floata,b,c,sum;printf("请输入7月用电量(度):\n"
);scanf("%f",&a);printf("请输入8月用电量(度):\n");scanf("%f",&b);printf("请输入9月用电量(度):\n");scanf("%f",&c);sum=0.58*a+0.62*b+0.52*c;printf("用户第三季度应缴电费(元
)sum=%.2f\n",sum);return0;}程序运行的结果如下:请输入7月用电量(度):190请输入8月用电量(度):260请输入9月用电量(度):160用户第三季度应缴电费(元)sum=354.60【例3-13】从键
盘随机输入两个整数赋给变量x、y,且输出x、y,然后使x不y的值互换,再输出x、y。2022/11/1245程序运行的结果如下:11,22x=11,y=22x=22,y=11#include<stdio.h>intmain(){intx,y,t;scanf("%d,%d",
&x,&y);printf("x=%d,y=%d\n",x,y);{t=x;x=y;y=t;}printf("x=%d,y=%d\n",x,y);return0;}【例3-15】从键盘上随机输入两个小写字母,输出其相应的大写字母及ASCII码值。2022/11/124
6程序运行的结果如下:d,cch1=D,ch2=Cch1=68,ch2=67#include<stdio.h>intmain(){charch1,ch2;scanf("%c,%c",&ch1,&ch2);ch1=ch1-32;ch2=ch2-3
2;printf("ch1=%c,ch2=%c\n",ch1,ch2);printf("ch1=%d,ch2=%d\n",ch1,ch2);return0;}printf("十位数为:%d\n",b);c=m%10;printf("个位数为:%d\n",c);n=10
0*c+10*b+1*a;printf("新的三位数为:%d\n",n);return0;}【例3-16】从键盘随机输入一个三位正整数,分别输出该数的百位数、十位数、个位数,之后将原个位数不百位数互换后输出新的三位数。2022/11/1247程序
运行的结果如下:请输入一个三位的正整数:567百位数为:5十位数为:6个位数为:7新的三位数为:765#include<stdio.h>intmain(){inta,b,c,m,n;printf("请输入一个三位的正整数:\n
");scanf("%d",&m);a=m/100;printf("百位数为:%d\n",a);b=(m%100)/10;2022/11/124801要点C语言语句分类02要点03要点顺序结构程序设计数据输入输出函数04要点基本控制结构2022/11/1249顺序结构是最基本、最简单的程序
结构,执行过程按照算法流程从前到后顺序执行各个操作,通过顺序结构程序设计举例来进一步掌握C语句的分类及C标准函数库中常用数据输入输出函数的使用,尤其注意格式输入输出函数printf()函数和scanf()函数中格式控制字符串的形式。。本章小结注意本章节知识点!!