【文档说明】C语言程序设计第2章--顺序结构流程及应用.ppt,共(55)页,169.000 KB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-2215.html
以下为本文档部分文字说明:
第2章顺序结构流程及应用本章内容中我们将学习1C语言中的数据类型2标识符、常量与变量3数据输入/输出处理4运算符与表达式5顺序结构程序设计2.1基本字符、标识符和关键字学一学⚫基本字符⚫标识符⚫关键字基本字符一个C程序也
可以看成是由C语言的基本字符按一定的规则组成的一个序列。C语言中使用的基本字符包括:数字字符:0~9;大小写英文字母:a~z,A~Z;其他可打印(可显示)字符:!#%^&*_(下划线)-+=~<>/\|.,:;?‘“()[]{}
空白字符:空格符、换行符、制表符等。和其它高级语言一样,用来标识函数名、变量名、符号常量、数组名、类型名、文件名的有效字符序列称为“标识符”(identifier),通俗地讲,标识符就是一个名字。在C语言中,标
识符的命名规则为:(1)有效字符:只能由字母、数字和下划线组成,且以字母或下划线开头;(2)有效长度:随系统而异,但至少前8个字符有效。如果超长,则超长部分被舍弃;(3)C语言的关键字(或称保留字)不能用作标识符。例如:su
m,Total,day,_f2048,file_name,a3b06都是合法的标识符,而99new,a-b,W.S.Piter,$88,cd#ab,@vbase,int都是不合法标识符。标识符关键字由系统预先定义的标识符称“关键字”,它们都有特殊的含意,不能用于其它目的。C语言关键字3
2个,如表2-1所示。2.2数据类型及常量、变量学一学⚫数据类型⚫常量⚫变量数据类型常量⚫常量是在程序的执行过程中其值不变的量。⚫在C语言中,常量不需要类型说明就可以直接使用,常量的类型是由常量本身隐含决定的。⚫在C语言中,从其表现形式常量分为普通常量和符号常量。普通常量
就是用数字直接表示的常量,符号常量是用一个标识符来代表的常量。无论是普通常量,还是符号常量,它们都有自己的类型。普通常量与符号常量1.普通常量普通常量有3类:数值常量、字符型常量和字符串常量。例如,1,200,3500,0x
12——整型数值常量835.6,77.2,0.618——实型数值常量‘a’,‘A’,‘$’——字符型常量“Hello”,“Welcome”——字符串常量2.符号常量在C语言程序中,可对常量进行命名,即用符号代替常量,叫做符号常
量,一般用大写字母表示,一经定义就可以代替常量使用。变量变量是指在程序执行过程中,其值可以改变的量。⚫一个变量用一个名字表示,在内存中占据一定的存储单元,用于存放变量的值。⚫变量必须先定义后使用,变量的值可以通过赋值的方法获得和改变。变量定义和初始化[存储类型]
数据类型变量名1[=初始数据],变量名2[=初始数据2],…,变量n[=初始数据n];试一试问题2.1新生入学需要保存学生数据,现在定义整型变量存放年龄、学号,定义字符变量存放性别,定义浮点型变量存放入学分数和班费。intiAge=20,iNum=201;charcSex=’
m’;/*f:female(女),m:male(男)*/floatfScore,fSum;fScore=580.5;fMoney=78.5想一想⚫生活、学习、工作中有哪些量是其值不变的常量?哪些信息是经常变化的?定义成什么类型的变量比较合适?2.3数据的输出和输入
⚫数据的格式化输出⚫数据的格式化输入⚫单个字符的输出和输入数据的格式化输出学一学⚫格式化输出函数printf的功能是按指定的格式向终端(或系统默认的输出设备)输出若干个任意类型的数据。printf函数的一般形式为:printf(格式控制,[输
出表列]);⚫其中,“格式控制”是用双引号括起来的字符串,也称“转换控制字符串”。它是由字符“%”、格式字符(如d、f、c等)和普通字符(原样输出的)组成。“输出表列”是一些与“格式控制”中的格式字符一一对应的需要输出的数据,可以是变量或表达式。。试一试问题2.2新生入学需要将自己的姓名、年龄、学
号、性别、入学成绩打印出来,请编程实现。⚫【解题步骤】⚫1.定义整型变量iAge,iNum存放年龄、学号;⚫2.定义字符变量chSex存放性别;⚫3.定义实型变量fScore用来存放入学成绩;⚫4.用printf函数上面的信
息打印出来;程序代码⚫#include“stdio.h”⚫voidmain()⚫{intiAge=20,iNum=201;⚫charchSex=’m’;/*f:female(女),m:male(男)*/⚫flo
atfScore=580.5;⚫printf(“Tony’spersonalinformation\n”);⚫printf(“Name:Tony\n”);⚫printf(“ID:%d\n”,iNum);⚫printf(“Age:%d\nSex:%c\nScore:%d\n”,iAge,ch
Sex,fScore);⚫}问题2.3转义字符输出演示请观察下面程序运行结果。⚫#include“stdio.h”⚫voidmain()⚫{charch1,ch2,ch3;⚫ch1=‘n’;⚫ch2=‘e’;⚫ch3=‘\167’;/*8进制数167代表的字符w*/⚫
printf(“%c%c%c\n”,ch1,ch2,ch3);/*以字符格式输出*/⚫printf(“%c\t%c\t%c\n”,ch1,ch2,ch3);/*每输出一个字符后跳到下一个输出区*/⚫printf(“%c\n%
c\n%c\n”,ch1,ch2,ch3);/*每输出一个字符后换行*/⚫}数据的格式化输入格式化输入函数scanf的功能是用来从外部设备(通常是键盘),向程序中的变量输入一个或若干个任意类型的数据。scanf函数的一般形式为:scanf(格式控制,地址表列);其中“格式控制”的含义
同printf函数;“地址表列”是由若干个地址组成的表列,可以是变量的地址,或字符串的首地址。试一试⚫问题2.4Tony因学习努力,成绩突出,上半学年获奖学金2500元,下半学年获奖学金3000元。用s
canf函数输入数据,计算Tony本学年所获得的奖学金并输出结果。⚫【解题步骤】1.定义变量iPrize1、iPrize2和iSum用来存放上半年、下半年和本年度的奖学金值;2.输出提示信息;3.从键盘输入上半年和下半年的奖学金;4.计算本年度奖学金存入iSum;5.输出本年度奖学金i
Sum中的值。程序代码⚫#include“stdio.h”⚫voidmain()⚫{intiPrize1,iPrize2,iSum;/*定义变量*/⚫printf("pleaseinputtwoprizes:");/*输出提示信息*/⚫scanf
("%d%d",&iPrize1,&iPrize2);/*从键盘输入数据*/⚫isum=iPriz1+iPrize2;/*求和计算*/⚫printf("Tom’sprizeis%d",iSum);/*输出计算结果*/⚫}?单个字符的输出和输入函数putchar()和getchar()专门
用来输入和输出字符型数据,使用时要包含头文件stdio.h。⚫putchar函数的功能是用于将一个字符输出到显示器上显示,其一般调用形式为:putchar(ch);其中,ch为一个字符型数据(普通字符或转义字符)或整型数据(0~2
55)。⚫getchar函数的功能是从标准输入设备(键盘)读入一个字符。它的一般调用形式为:ch=getchar();其中ch为一个字符型变量,把从键盘接收到字符放到变量ch中。试一试⚫问题2.5从键盘输入一个小写字母,将其转化为大写字母输
出。⚫【解题步骤】1.定义字符变量ch用来存放从键盘输入的数据。;2.输出提示信息;3.从键盘接收一个小写字母存入ch;4.将字符ch转换为大写字母,即ch-32后仍存入到ch;5.输出字符变量ch中的字符;程序代码⚫#include“stdi
o.h”⚫voidmain()⚫{charch;⚫printf(“从键盘输入一个小写字母”);⚫ch=getchar();/*从键盘接收一个小写字母*/⚫ch=ch-32;/*小写字母转化为大写字母*
/⚫putchar(ch);/*输出大写字母*/⚫}小结⚫格式化输出函数printf中双引号括起来的内容除了%d等格式说明符外,其它字符原样输出。同样格式化输入函数scanf中双引号括起来的内容除了%d等格式说明符外,其它字符照原样输入。
⚫printf函数中的格式说明符非常丰富,如表2-4所示。⚫使用scanf函数时要输入的变量名前要加取地址符号“&”,scanf函数的格式说明符如表2-5所示2.4运算符与表达式⚫算术运算符与算术表达式⚫赋值运算符和赋值表达式⚫逗号运算符和逗号表达式运算符分类C的运算符大致有如下的几类。1.基本算
术运算符:+-*/%2.关系运算符:<>>=<===!=3.逻辑运算符:!&&||4.强制类型转换运算符:()5.自增、自减运算符:++――6.赋值运算符:=7.条件运算符:?:8.逗号运算符:,9.指针运算符:*&10.求字节
数运算符:sizeof11.位运算符:<<>>~|^&12.分量运算符:.->13.下标运算符:[]算术运算符和算术表达式试一试⚫问题2.6从键盘输入一个3位数,求该数个位、十位、百位上的数的和。⚫【解题步
骤】⚫定义整型变量iNum接收从键盘输入的三位数;⚫定义整型变量i1,i2,i3,iSum用来存放个位、十位、百位上的数据及其和;⚫从键盘输入一个3位数存入变量iNum中;⚫用iNum%10求得个位上的数存入i1中,⚫用iNum/10%10求得十位上的数存入i2中;⚫用iNum/100求得百
位上的数存入i3中;⚫求和⚫输出和。程序代码#include“stdio.h”voidmain(){intiNum;inti1,i2,i3,iSum;printf(“pleaseinputainteger(100-999):”);scanf(“d%”,&iNum);i1=iNum%10;
/*求个位数*/i2=iNum/10%10;/*求十位数*/i3=iNum/100;/*求百位数*/iSum=i1+i2+i3;printf(“d%thesumis:”,iSum);}想一想⚫对于一个四位整数,其
千位、百位、十位、个位上的数如何求得?强制类型转换运算符学一学⚫在实际应用中,常常要把一些表达式的类型转换成所需的类型。C语言提供了强制类型转换运算符。其格式为:⚫(类型名)(表达式)试一试⚫问题2.7从键盘输入一个球的半径值,计算并输出这个球的体积。球体积计算公式
为:v=4/3*∏*r3。其中r是球的半径,∏是圆周率,v是球的体积。⚫【解题步骤】1.定义符号常量PAI=3.1415926作为圆周率;2.定义float型变量fRadius、fVolum用来存放球半径和球体积;3.从键盘输入球半径放变量fRadius;4.计算球的体积;5.输出球
体积。程序代码#include“stdio.h”#definePAI3.1415926voidmain(){floatfRadius,fVolume;printf(“pleasetheball’sradius:”);scanf(“%f”,&fRadius);fVolu
me=(float)4/3*PAI*fRadius*fRadius*fRadius;printf(“theball’svolume:%f”,fVolume);}自增、自减运算符学一学⚫自增、自减运算符是单目运算符,即对一个运算对象施加运算,运算结果仍赋予该对象。参加运算的对象必须是变量。
如表2-7所示。试一试⚫问题2.8运行下面的程序,观察并分析自增、自减运算符的用法。⚫#include“stdio.h”⚫voidmain()⚫{intiX,iY;⚫iX=2;⚫iY=iX++*4;⚫printf(“
iX=%d,iY=%d\n”,iX,iY);⚫iX=2;⚫iY=iX--*4;⚫printf(“iX=%d,iY=%d\n”,iX,iY);⚫iX=2;⚫iY=++iX*4;⚫printf(“iX=%d,iY=%d
\n”,iX,iY);⚫iX=2;⚫iY=--iX*4;⚫printf(“iX=%d,iY=%d\n”,iX,iY);⚫}算术表达式学一学⚫用算术运算符和括号将运算对象(也称操作数)连接起来的符合C语法规则的式子,称为C算术表达式。运算对象可以是常量、变量、函数等。⚫5.算
术运算符的优先级和结合方向⚫C语言规定了运算符的优先级和结合方向,在表达式求值时,先按运算符的优先级别高低次序执行,再按运算符的结合方向结合(相同优先级时)。例如先乘除后加减,如表2-8所算术运算符的优先级和结合方向C语言规定了运算符的优先级和结合方向,在表
达式求值时,先按运算符的优先级别高低次序执行,再按运算符的结合方向结合(相同优先级时)。例如先乘除后加减,如表2-8所示。试一试问题2.9函数f(x)=3x3+2x2+x+1,编一程序计算并输出f(3)值。【
解题步骤】1.定义整型变量iX、iY;2.从键盘输入一个自变量的值;3.计算函数值;4.输出函数值;程序代码#include“stdio.h”voidmain(){intiX,iY;printf(“请输入自变量
值:”);scanf(“%d”,&iX);iY=3*iX*iX*iX+2*iX*iX+iX+1;printf(“函数值是:%d”,iY);}赋值运算符和赋值表达式⚫学一学1.赋值运算符在C语言中,等号“=”被作为是一种运算符来处理,称为赋值运算符。其一般形式为:<变量名>=<表达式
>;它的作用就是将右边表达式的值赋给左边的变量2.复合赋值运算符在赋值运算符的前面加上一个其它运算符后就构成复合的赋值运算符。其一般形式为:<变量><双目运算符>=<表达式>;等价于:<变量>=<变量><双目运算符><表达式>;3.赋值表达式由赋值运算符将一个变量和
一个表达式连接起来的式子称为赋值表达式,它的一般形式为:<变量><赋值运算符><表达式>试一试⚫问题2.10赋值运算符和赋值表达式用法演示,运行程序并观察运行结果。⚫#include“stdio.h”⚫voidmain(){⚫intiA,iB,iC,iX,iY;⚫iA=2;⚫
iY=iX=2*iA+6;⚫printf("\niA=%d",iA);/*输出赋值表达式iA的值*/⚫printf("\niX=2*iA+6is%d",iX=2*iA+6);/*输出赋值表达式iX=2*iA+6的值*/⚫printf("\niY=%d",iY);/*输出变量iY的值*/⚫i
C=iB=iA=4;/*表达式iB=iA=4赋给iC*/⚫printf("\niB=iA=4is%d",iB=iA=4);/*输出表达式iB=iA=4的值*/⚫printf("\niA=%d,iB=%
d,iC=%d",iA,iB,iC);/*输出变量iA,iB,iC的值*/⚫}逗号运算符和逗号表达式学一学⚫逗号运算符“,”作为C语言的一种特殊的运算符,也称为顺序求值运算符,它的作用是把多个表达式连接起来,用逗号运算符连接起来的式子称为逗号表达式,其一般形
式为:表达式1,表达式2,...,表达式n⚫表达式的求解过程按照从左到右的顺序逐个求解表达式1,表达式2,...,表达式n,而整个逗号表达式的值是最后一个表达式(表达式n)的值。试一试⚫问题2.11逗号运算符和逗号表达式用法演示,运行程序并观察运行结果。⚫【程序代码】⚫#inc
lude“stdio.h”⚫voidmain()⚫{intiA=2,iB=3;⚫intiX,iY;⚫floatfC;⚫iX=(iA*2+1,iY=iB+2,iA*iY);⚫fC=(iA+5,2.0*iX);⚫printf("iX=%d,iY=%d
\n",iX,iY);⚫printf("fC=%f\n",fC);⚫}小结⚫不同数据类型的数据进行混合运算时,往往需要进行类型转换。在C语言中这种转换通常是自动进行的,当然也可以通过强制类型转换运算符进强制进行。⚫各种运算符具有优先级和结合方向,通常
情况下,可用圆括号限制优先级2.5顺序结构程序设计C是结构化程序设计语言,结构化程序设计的基本思想是,用顺序结构、选择结构和循环结构三种基本结构来构造程序。C语言提供了丰富的语句用来支持结构化的程序设计。
C语句的分类C语句可以分为以下五大类:1.函数调用语句。由一次函数调用加一个分号构成的语句。2.表达式语句。表达式的后面加一个分号就构成了一个表达式语句。3.空语句,光有一个分号“;”,作为语句结束符,它表示什么也不做。4.复合语句。由“{”和“}”把一些变量
说明和语句组合在一起,称之为复合语句(Block),又称语句块。5.控制语句,共九种。C的控制语句⚫⑴if语句(条件语句)⚫⑵switch语句(多分支选择语句)⚫⑶while语句(循环语句)⚫⑷do-while语句
(循环语句)⚫⑸for语句(循环语句)⚫⑹break语句(终止执行循环语句或switch语句)⚫⑺continue语句(结束本次循环语句)⚫⑻goto语句(转向语句)⚫⑼return语句(从函数返回语句)程序的三种基本结构1.顺序结构顺序执行每个操作,即先执行A操作,再执行B操作,两者
之间是顺序执行的关系。图2-3是顺序结构的流程图。2.选择结构设P代表一个判断条件,当P成立(或称“为真”)时,执行A操作,否则执行B操作。即A和B中只能选择其中之一。图2-4是选择结构的流程图。3.循环结构C语言提供了两种循环结构。(1)当型循环结构:如图2-5所
示,当条件P成立时,反复执行A操作,直到条件P不再成立时才跳出循环。(2)直到型循环结构:如图2-6所示,先执行A操作,再判断条件P是否成立,若P成立,则再执行A操作,如此反复,直到条件P不成立时跳出循环。三种基本
结构流程图试一试问题2.12编一程序将华氏温度转换为摄氏温度。公式为:摄氏温度=5/9(华氏温度-32),要求从键盘输入华氏温度的值。【解题步骤】1.定义fF变量存放华氏温度值;2.定义变量fC存放摄氏温度
值;3.从键盘输入华氏温度值存入变量fF;4.计算摄氏温度;5.输出摄氏温度。程序代码⚫#include“stdio.h”⚫voidmain()⚫{floatfF,fC;⚫printf("PleaseinputthedegreesFahrenheit:");⚫scanf("
%d",&fF);⚫fC=5.0/9*(fF-32);⚫printf("thedegreesCelsiusis%f\n",fC);⚫}⚫问题2.13交换两个变量的值。⚫解题步骤:1.定义整型变量iX,i
Y;2.定义临时变量iTemp;3.iX=1,iY=2;4.输出iX,iY;5.将变量iX的值存入iTemp;6.将变量iY的值存入iX;7.将变量iTemp的值存入iX;8.输出iX,iY;程序代码#include"stdio.h"voidmain(){int
iX,iY;intiTemp;iX=1;iY=2;printf("iX=%d,iY=%d\n",iX,iY);iTemp=iX;iX=iY;iY=iTemp;printf("iX=%d,iY=%d\n
",iX,iY);getch();}想一想⚫交换两个变量中的值类似于日常生活中的哪些问题?小结1.顺序结构、选择结构和循环结构是结构化程序设计的三种基本结构,其中顺序结构是最基本的程序结构。2.C语言提供了五大类语句可以实现结构化的程序设计。