《简单程序设计之一.ppt》由会员分享,可在线阅读,更多相关《简单程序设计之一.ppt(58页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、C 语言程序设计基础篇第第 2 2 章章 简单程序设计之一简单程序设计之一 2023/2/20C语言程序设计基础篇常量和变量常量和变量顺序结构程序设计顺序结构程序设计 C C语句概述语句概述 选择结构程序设计选择结构程序设计简单循环结构程序设计简单循环结构程序设计 内容概述2023/2/20C语言程序设计基础篇教学目标掌握常量与变量的定义和使用方法;掌握常量与变量的定义和使用方法;学会三种结构的简单程序设计;学会三种结构的简单程序设计;从整体上把握和了解从整体上把握和了解C C程序的基本结构,对程序的基本结构,对C C语言程序开发设计有初步的感性认识。语言程序开发设计有初步的感性认识。2023
2、/2/20C语言程序设计基础篇2.1 2.1 常量与变量常量与变量常量:常量:常量:常量:程序运行过程中不能被改变的量。程序运行过程中不能被改变的量。程序运行过程中不能被改变的量。程序运行过程中不能被改变的量。在程序中,数据显式写法均表示常量在程序中,数据显式写法均表示常量在程序中,数据显式写法均表示常量在程序中,数据显式写法均表示常量 如如如如s=2*3.14*rs=2*3.14*rs=2*3.14*rs=2*3.14*r中的中的中的中的2 2 2 2和和和和3.143.143.143.14都是常量;都是常量;都是常量;都是常量;符号常量:符号常量:符号常量:符号常量:#define PRI
3、CE 586 define PRICE 586 define PRICE 586 define PRICE 586;1.1.常量常量2023/2/20C语言程序设计基础篇2.2.变量变量变量:变量:变量:变量:程序执行过程中可以改变它的值。变量包括程序执行过程中可以改变它的值。变量包括程序执行过程中可以改变它的值。变量包括程序执行过程中可以改变它的值。变量包括变量名和变量值。变量名和变量值。变量名和变量值。变量名和变量值。变量名:变量名:变量名:变量名:用标识符命名,对应一定数量的内存存贮用标识符命名,对应一定数量的内存存贮用标识符命名,对应一定数量的内存存贮用标识符命名,对应一定数量的内存存
4、贮单元,其单元数视变量类型而定。单元,其单元数视变量类型而定。单元,其单元数视变量类型而定。单元,其单元数视变量类型而定。在【例在【例在【例在【例1.11.1】中中中中 :c=c=a+ba+b;/*/*/*/*计算和计算和计算和计算和*/*/*/*/a a、b b、c c是三个变量,而且是整型变量。是三个变量,而且是整型变量。是三个变量,而且是整型变量。是三个变量,而且是整型变量。2023/2/20C语言程序设计基础篇在在在在C C语言中语言中语言中语言中,变量须先定义变量须先定义变量须先定义变量须先定义,后使用后使用后使用后使用。如如如如:intintintint total;total;t
5、otal;total;/*/*/*/*变量定义变量定义变量定义变量定义*/total=30;total=30;total=30;total=30;是合法的。是合法的。是合法的。是合法的。若没有定义变量直接写成:若没有定义变量直接写成:若没有定义变量直接写成:若没有定义变量直接写成:total=30;total=30;total=30;total=30;则编译时会指出则编译时会指出则编译时会指出则编译时会指出未定义错误未定义错误未定义错误未定义错误。变量一旦被定义,其类型便确定即可在编译时为其变量一旦被定义,其类型便确定即可在编译时为其变量一旦被定义,其类型便确定即可在编译时为其变量一旦被定义,
6、其类型便确定即可在编译时为其分配相应数量的单元。分配相应数量的单元。分配相应数量的单元。分配相应数量的单元。2023/2/20C语言程序设计基础篇3 3 标识符标识符标识符:标识符:标识符:标识符:由字母、数字、下划线组成且由字母或下划由字母、数字、下划线组成且由字母或下划由字母、数字、下划线组成且由字母或下划由字母、数字、下划线组成且由字母或下划线开头的字符串。线开头的字符串。线开头的字符串。线开头的字符串。如如如如:_sum,sum,_sum,sum,stu_namestu_name,price,price等为合法的标识符。等为合法的标识符。等为合法的标识符。等为合法的标识符。7 7ax,
7、x&y,printf,va?rax,x&y,printf,va?r等为非法的标识符。等为非法的标识符。等为非法的标识符。等为非法的标识符。标识符的作用:标识符的作用:标识符的作用:标识符的作用:可用来作为变量名、常量名、函数名、可用来作为变量名、常量名、函数名、可用来作为变量名、常量名、函数名、可用来作为变量名、常量名、函数名、类型名、文件名等。类型名、文件名等。类型名、文件名等。类型名、文件名等。2023/2/20C语言程序设计基础篇建议:建议:建议:建议:采用具有一定意义的英文单词、拼音字母采用具有一定意义的英文单词、拼音字母采用具有一定意义的英文单词、拼音字母采用具有一定意义的英文单词、
8、拼音字母的缩写作为标识符的缩写作为标识符的缩写作为标识符的缩写作为标识符注意:注意:注意:注意:C C C C语言区分大小写语言区分大小写语言区分大小写语言区分大小写如:如:如:如:Price Price Price Price 和和和和 pricepricepriceprice,系统会认为是两个不,系统会认为是两个不,系统会认为是两个不,系统会认为是两个不同的标识符。同的标识符。同的标识符。同的标识符。标识符的长度一般不超过标识符的长度一般不超过标识符的长度一般不超过标识符的长度一般不超过31313131个字符个字符个字符个字符具体情况视不同系统而定。具体情况视不同系统而定。具体情况视不同系
9、统而定。具体情况视不同系统而定。2023/2/20C语言程序设计基础篇4 4 变量赋值变量赋值 变量的赋值有三种方法:变量的赋值有三种方法:变量的赋值有三种方法:变量的赋值有三种方法:在定义变量的同时为变量赋初值,格式为:在定义变量的同时为变量赋初值,格式为:在定义变量的同时为变量赋初值,格式为:在定义变量的同时为变量赋初值,格式为:=;例如,例如,例如,例如,int a=10;int a=10;利用赋值语句为变量赋初值利用赋值语句为变量赋初值利用赋值语句为变量赋初值利用赋值语句为变量赋初值 ,格式为:,格式为:,格式为:,格式为:=;例如,例如,例如,例如,a=10+3;a=10+3;利用格
10、式化输入函数为变量赋初值利用格式化输入函数为变量赋初值利用格式化输入函数为变量赋初值利用格式化输入函数为变量赋初值 ,格式为:,格式为:,格式为:,格式为:scanfscanfscanfscanf(“(“(“(“格式控制字符串格式控制字符串格式控制字符串格式控制字符串”,变量地址表列,变量地址表列,变量地址表列,变量地址表列););););例如,例如,例如,例如,scanf(%dscanf(%d,&a);,&a);定定义义后后的的变变量量其其值值是是随随机机的的、不不确确定定的的,只只有有通通过赋值操作,其值才是确定的,才能被使用。过赋值操作,其值才是确定的,才能被使用。2023/2/20C语
11、言程序设计基础篇2.2 2.2 顺序结构程序设计顺序结构程序设计 程序设计犹如程序设计犹如程序设计犹如程序设计犹如“搭积木搭积木搭积木搭积木”和和和和“写作写作写作写作”,将零件或,将零件或,将零件或,将零件或素材按一定的顺序和结构组织起来,就完成了素材按一定的顺序和结构组织起来,就完成了素材按一定的顺序和结构组织起来,就完成了素材按一定的顺序和结构组织起来,就完成了“搭积搭积搭积搭积木木木木”和和和和“写作写作写作写作”。顺序结构程序设计就是根据问题要求设计的程序,顺序结构程序设计就是根据问题要求设计的程序,顺序结构程序设计就是根据问题要求设计的程序,顺序结构程序设计就是根据问题要求设计的程
12、序,其执行过程是按程序书写的顺序,从上到下,逐条语其执行过程是按程序书写的顺序,从上到下,逐条语其执行过程是按程序书写的顺序,从上到下,逐条语其执行过程是按程序书写的顺序,从上到下,逐条语句顺序地执行,没有跳转,一直到最后一条语句,程句顺序地执行,没有跳转,一直到最后一条语句,程句顺序地执行,没有跳转,一直到最后一条语句,程句顺序地执行,没有跳转,一直到最后一条语句,程序才算执行完毕,退出程序。序才算执行完毕,退出程序。序才算执行完毕,退出程序。序才算执行完毕,退出程序。2023/2/20C语言程序设计基础篇问题分问题分问题分问题分4 4 4 4个步骤来处理:个步骤来处理:个步骤来处理:个步骤
13、来处理:(1 1 1 1)输入两个整数给变量)输入两个整数给变量)输入两个整数给变量)输入两个整数给变量a a a a和和和和b b b b;(2 2 2 2)输出输出输出输出a a a a和和和和b b b b的值;的值;的值;的值;(3 3 3 3)交换)交换)交换)交换a a a a和和和和b b b b的值;的值;的值;的值;(4 4 4 4)输出)输出)输出)输出a a a a和和和和b b b b的值。的值。的值。的值。【例例2.22.2】由由键键盘盘输输入入两两个个整整数数给给变变量量a a和和b b,然然后后输输出出a a和和b b。在在交交换换a a和和b b的的值值后后,再
14、再输输出出a a和和b b,验验证证两两个个变变量中的数值是否正确地进行了交换。量中的数值是否正确地进行了交换。2023/2/20C语言程序设计基础篇#include void main()int a,b,t;printf(Enter a and b:n);scanf(%d%d,&a,&b);/*/*输入两个整型变量输入两个整型变量a a和和b*/b*/printf(a=%d,b=%dn,a,b);/*/*输出输出a a和和b b的值的值*/*/t=a;/*/*交换交换a a和和b b的值的值*/*/a=b;b=t;printf(a=%d,b=%dn,a,b);/*/*输出输出a a和和b b
15、的值的值*/*/程序运行情况如下:程序运行情况如下:Enter a and b:123 456a=123,b=456a=456,b=123 2023/2/20C语言程序设计基础篇数据输入输出的概念及在数据输入输出的概念及在C C语言中的实现语言中的实现 所谓输入输出是以计算机为主体而言的。所谓输入输出是以计算机为主体而言的。所谓输入输出是以计算机为主体而言的。所谓输入输出是以计算机为主体而言的。数据输入是从标准输入设备输入,也就是键盘。数据输入是从标准输入设备输入,也就是键盘。数据输入是从标准输入设备输入,也就是键盘。数据输入是从标准输入设备输入,也就是键盘。数据输出到标准输出设备,也就是显示
16、器。数据输出到标准输出设备,也就是显示器。数据输出到标准输出设备,也就是显示器。数据输出到标准输出设备,也就是显示器。DOSDOS下下下下整个屏幕是标准输出设备,整个屏幕是标准输出设备,整个屏幕是标准输出设备,整个屏幕是标准输出设备,WindowsWindows下当前窗口下当前窗口下当前窗口下当前窗口是标准输出设备。是标准输出设备。是标准输出设备。是标准输出设备。在语言中,所有的数据输入输出都是由库函数在语言中,所有的数据输入输出都是由库函数在语言中,所有的数据输入输出都是由库函数在语言中,所有的数据输入输出都是由库函数完成的,因此都是函数语句。完成的,因此都是函数语句。完成的,因此都是函数语
17、句。完成的,因此都是函数语句。在使用语言库函数时,需要用预编译命令在使用语言库函数时,需要用预编译命令在使用语言库函数时,需要用预编译命令在使用语言库函数时,需要用预编译命令includeinclude包含标准输入输出头文件包含标准输入输出头文件包含标准输入输出头文件包含标准输入输出头文件stdio.hstdio.h,即:,即:,即:,即:#include#include 2023/2/20C语言程序设计基础篇格式输出函数格式输出函数格式输出函数格式输出函数printfprintfprintfprintf()()()()函数函数函数函数n n函数功能:函数功能:函数功能:函数功能:按用户指定的
18、格式,把指定的数据显示到显示器按用户指定的格式,把指定的数据显示到显示器按用户指定的格式,把指定的数据显示到显示器按用户指定的格式,把指定的数据显示到显示器屏幕上。屏幕上。屏幕上。屏幕上。n n一般形式一般形式一般形式一般形式:printfprintfprintfprintf(“(“(“(“格式控制字符串格式控制字符串格式控制字符串格式控制字符串”,输出表列输出表列输出表列输出表列););););格式字符串格式字符串格式字符串格式字符串是以是以是以是以%开头的字符串,在开头的字符串,在开头的字符串,在开头的字符串,在%后面跟有各后面跟有各后面跟有各后面跟有各种格式字符,以说明输出数据的类型、形
19、式、长种格式字符,以说明输出数据的类型、形式、长种格式字符,以说明输出数据的类型、形式、长种格式字符,以说明输出数据的类型、形式、长度、小数位数等。如:度、小数位数等。如:度、小数位数等。如:度、小数位数等。如:“%d%d%d%d”表示按十进制整型表示按十进制整型表示按十进制整型表示按十进制整型输出。输出。输出。输出。输出表列输出表列输出表列输出表列中给出了各个输出项,要求格式字符串中给出了各个输出项,要求格式字符串中给出了各个输出项,要求格式字符串中给出了各个输出项,要求格式字符串和各输出项在数量和类型上应该一一对应和各输出项在数量和类型上应该一一对应和各输出项在数量和类型上应该一一对应和各
20、输出项在数量和类型上应该一一对应2023/2/20C语言程序设计基础篇格式输入函数格式输入函数格式输入函数格式输入函数scanfscanfscanfscanf ()()()()函数函数函数函数n n函数功能:函数功能:函数功能:函数功能:按用户指定的格式从键盘上把数据输入到指定的变量之按用户指定的格式从键盘上把数据输入到指定的变量之按用户指定的格式从键盘上把数据输入到指定的变量之按用户指定的格式从键盘上把数据输入到指定的变量之中。中。中。中。n n一般形式一般形式一般形式一般形式scanfscanfscanfscanf(“(“(“(“格式控制字符串格式控制字符串格式控制字符串格式控制字符串”,
21、地址表列,地址表列,地址表列,地址表列););););其中,格式控制字符串的作用与其中,格式控制字符串的作用与其中,格式控制字符串的作用与其中,格式控制字符串的作用与printfprintfprintfprintf函数相同,但不函数相同,但不函数相同,但不函数相同,但不能显示非格式字符串。地址表列中给出各变量的地址。能显示非格式字符串。地址表列中给出各变量的地址。能显示非格式字符串。地址表列中给出各变量的地址。能显示非格式字符串。地址表列中给出各变量的地址。地址是由地址运算符地址是由地址运算符地址是由地址运算符地址是由地址运算符“&”&”&”&”后跟变量名组成的。后跟变量名组成的。后跟变量名组
22、成的。后跟变量名组成的。例如例如例如例如:&a,&b&a,&b&a,&b&a,&b 分别表示分别表示分别表示分别表示(取取取取)变量变量变量变量a a a a和变量和变量和变量和变量b b b b 的地址。的地址。的地址。的地址。2023/2/20C语言程序设计基础篇2.3 2.3 C C语句概述语句概述 程序的程序的执行部分执行部分是由是由执行语句执行语句组成的。程序的功能组成的。程序的功能也是由执行语句实现的。也是由执行语句实现的。语句可分为以下五类:语句可分为以下五类:表达式语句表达式语句函数调用语句函数调用语句控制语句控制语句复合语句复合语句空语句空语句2.3.1 2.3.1 C C语
23、句分类语句分类2023/2/20C语言程序设计基础篇1.1.表达式语句表达式语句表达式语句由表达式加上分号表达式语句由表达式加上分号表达式语句由表达式加上分号表达式语句由表达式加上分号 ;组成。其一般形式为:组成。其一般形式为:组成。其一般形式为:组成。其一般形式为:表达式;表达式;表达式;表达式;执行表达式语句就是计算表达式的值。例如:执行表达式语句就是计算表达式的值。例如:执行表达式语句就是计算表达式的值。例如:执行表达式语句就是计算表达式的值。例如:x=x=y+zy+z;赋值语句;赋值语句;赋值语句;赋值语句;y+zy+z;加法运算语句,但计算结果不能保留,加法运算语句,但计算结果不能保
24、留,加法运算语句,但计算结果不能保留,加法运算语句,但计算结果不能保留,无实际意义;无实际意义;无实际意义;无实际意义;2023/2/20C语言程序设计基础篇2.2.函数调用语句函数调用语句由函数名、实际参数加上分号由函数名、实际参数加上分号由函数名、实际参数加上分号由函数名、实际参数加上分号 ;组成。组成。组成。组成。其一般形式为:其一般形式为:其一般形式为:其一般形式为:函数名函数名函数名函数名(实际参数表实际参数表实际参数表实际参数表);执行函数语句就是调用函数体并把实际参数赋予函数定执行函数语句就是调用函数体并把实际参数赋予函数定执行函数语句就是调用函数体并把实际参数赋予函数定执行函数
25、语句就是调用函数体并把实际参数赋予函数定义中的形式参数,然后执行被调函数体中的语句,求取义中的形式参数,然后执行被调函数体中的语句,求取义中的形式参数,然后执行被调函数体中的语句,求取义中的形式参数,然后执行被调函数体中的语句,求取函数值函数值函数值函数值 (在后面函数中再详细介绍在后面函数中再详细介绍在后面函数中再详细介绍在后面函数中再详细介绍)。例如:例如:例如:例如:printf(printf(”C C Programn Programn”););调用库函数,输出字符串。调用库函数,输出字符串。调用库函数,输出字符串。调用库函数,输出字符串。2023/2/20C语言程序设计基础篇3.3.
26、控制语句控制语句 控制语句用于控制程序的流程,控制语句用于控制程序的流程,控制语句用于控制程序的流程,控制语句用于控制程序的流程,以实现程序的以实现程序的以实现程序的以实现程序的各种结构方式。它们由特定的语句定义符组成。语各种结构方式。它们由特定的语句定义符组成。语各种结构方式。它们由特定的语句定义符组成。语各种结构方式。它们由特定的语句定义符组成。语言有九种控制语句。可分成以下三类:言有九种控制语句。可分成以下三类:言有九种控制语句。可分成以下三类:言有九种控制语句。可分成以下三类:条件判断语句条件判断语句条件判断语句条件判断语句:ifififif语句、语句、语句、语句、switchswit
27、chswitchswitch语句;语句;语句;语句;循环执行语句循环执行语句循环执行语句循环执行语句:do whiledo whiledo whiledo while语句、语句、语句、语句、whilewhilewhilewhile语句、语句、语句、语句、forforforfor语句;语句;语句;语句;转向语句转向语句转向语句转向语句:breakbreakbreakbreak语句、语句、语句、语句、continuecontinuecontinuecontinue语句、语句、语句、语句、returnreturnreturnreturn语句。语句。语句。语句。2023/2/20C语言程序设计基础篇4
28、.4.复合语句复合语句把多个语句用括号把多个语句用括号把多个语句用括号把多个语句用括号 括起来组成的一个语句称括起来组成的一个语句称括起来组成的一个语句称括起来组成的一个语句称复合语句复合语句复合语句复合语句。在程序中应把复合语句看成是在程序中应把复合语句看成是在程序中应把复合语句看成是在程序中应把复合语句看成是单条语句单条语句单条语句单条语句,而不是,而不是,而不是,而不是多条语句多条语句多条语句多条语句。例如下面的一组语句例如下面的一组语句例如下面的一组语句例如下面的一组语句是一条复合语句。是一条复合语句。是一条复合语句。是一条复合语句。x=y+z;x=y+z;a=b+c;a=b+c;pr
29、intf(”%d%dn”printf(”%d%dn”,x x,a)a);注意注意注意注意:复合语句内的各条语句都必须以分号复合语句内的各条语句都必须以分号复合语句内的各条语句都必须以分号复合语句内的各条语句都必须以分号“;”;”;”;”结尾,在结尾,在结尾,在结尾,在括号括号括号括号“”外不能加分号。外不能加分号。外不能加分号。外不能加分号。2023/2/20C语言程序设计基础篇5.5.空语句空语句只有分号只有分号只有分号只有分号“;”;”;”;”组成的语句称为组成的语句称为组成的语句称为组成的语句称为空语句空语句空语句空语句。空语句是什么也。空语句是什么也。空语句是什么也。空语句是什么也不执
30、行的语句。在程序中空语句可用来作空循环体。不执行的语句。在程序中空语句可用来作空循环体。不执行的语句。在程序中空语句可用来作空循环体。不执行的语句。在程序中空语句可用来作空循环体。例如例如例如例如:while(getchar()!=n)while(getchar()!=n);本语句的功能是,只要从键盘输入的字符不是回车则本语句的功能是,只要从键盘输入的字符不是回车则本语句的功能是,只要从键盘输入的字符不是回车则本语句的功能是,只要从键盘输入的字符不是回车则重新输入。这里的重新输入。这里的重新输入。这里的重新输入。这里的循环体为空语句循环体为空语句循环体为空语句循环体为空语句。2023/2/20
31、C语言程序设计基础篇2.3.2 2.3.2 赋值语句赋值语句 赋值语句是由赋值表达式再加上分号构成的。赋值语句是由赋值表达式再加上分号构成的。赋值语句是由赋值表达式再加上分号构成的。赋值语句是由赋值表达式再加上分号构成的。一般形式为:一般形式为:一般形式为:一般形式为:变量变量变量变量=表达式表达式表达式表达式;变量变量变量变量1=1=1=1=变量变量变量变量2=2=2=2=表达式表达式表达式表达式;例如:例如:例如:例如:int a=5;int a=5;()int b,c;int b,c;()b=c=3;b=c=3;()但定义时连续赋值是错误的。但定义时连续赋值是错误的。但定义时连续赋值是错
32、误的。但定义时连续赋值是错误的。int a=b=c=5;(int a=b=c=5;(x x)2023/2/20C语言程序设计基础篇2.4 2.4 选择结构程序设计选择结构程序设计 用用用用ifififif语句语句语句语句可以构成分支结构。它根据给定的条件可以构成分支结构。它根据给定的条件可以构成分支结构。它根据给定的条件可以构成分支结构。它根据给定的条件进行判断,以决定执行某个分支程序段。进行判断,以决定执行某个分支程序段。进行判断,以决定执行某个分支程序段。进行判断,以决定执行某个分支程序段。if if语句有三种基本形式:语句有三种基本形式:语句有三种基本形式:语句有三种基本形式:if if
33、if-elseif-elseif-else-ifif-else-if2023/2/20C语言程序设计基础篇第一种形式为基本形式,形式为:第一种形式为基本形式,形式为:其语义是:其语义是:其语义是:其语义是:如果表达式的值为真,则如果表达式的值为真,则如果表达式的值为真,则如果表达式的值为真,则执行其后的语句,否则不执行其后的语句,否则不执行其后的语句,否则不执行其后的语句,否则不执行该语句。其过程可表执行该语句。其过程可表执行该语句。其过程可表执行该语句。其过程可表示为右图。示为右图。示为右图。示为右图。if(if(if(if(表达式表达式表达式表达式)语句语句语句语句2023/2/20C语言
34、程序设计基础篇【例例2.32.3】由键盘输入两个不同的整数给变量由键盘输入两个不同的整数给变量a a和和b b,然后输出然后输出a a和和b b中较大的数。中较大的数。#include#include int main()int main()int a,b,max;int a,b,max;printf(Input two numbers:);printf(Input two numbers:);scanf(%d%d,&a,&b);scanf(%d%d,&a,&b);max=a;max=a;if(maxb)max=b;if(maxb)max=b;printf(max=%dn,max);print
35、f(max=%dn,max);return(0);return(0);运行结果为运行结果为:Input two numbers:5 12max=122023/2/20C语言程序设计基础篇第二种形式为第二种形式为:if-else:if-elseif(if(if(if(表达式表达式表达式表达式)语句语句语句语句1 1 1 1;else else else else 语句语句语句语句2 2 2 2;其语义是:其语义是:如果表达式的值为真,则执行语句如果表达式的值为真,则执行语句1 1,否则执行语句,否则执行语句2 2。其执行过程可表示为下图。其执行过程可表示为下图。2023/2/20C语言程序设计基
36、础篇【例例】用用if-elseif-else语句改写例语句改写例2.32.3#include#include int main()int main()int a,b;int a,b;printf(Input two numbers:);printf(Input two numbers:);scanf(%d%d,&a,&b);scanf(%d%d,&a,&b);if(ab)if(ab)printf(max=%dn,a);printf(max=%dn,a);elseelseprintf(max=%dn,b);printf(max=%dn,b);return(0);return(0);运行结果为运行
37、结果为:Input two numbers:5 12max=122023/2/20C语言程序设计基础篇第三种形式为第三种形式为:if-else-if:if-else-if前两种形式的前两种形式的前两种形式的前两种形式的ifififif语句一般都用语句一般都用语句一般都用语句一般都用于两个分支的情况。当有于两个分支的情况。当有于两个分支的情况。当有于两个分支的情况。当有多个分支选择时,可采用多个分支选择时,可采用多个分支选择时,可采用多个分支选择时,可采用if-else-ifif-else-ifif-else-ifif-else-if语句。语句。语句。语句。其语义是:依次判断表达其语义是:依次判
38、断表达其语义是:依次判断表达其语义是:依次判断表达式的值,当出现某个值为式的值,当出现某个值为式的值,当出现某个值为式的值,当出现某个值为真时,则执行其对应的语真时,则执行其对应的语真时,则执行其对应的语真时,则执行其对应的语句。然后跳到整个句。然后跳到整个句。然后跳到整个句。然后跳到整个ifififif语句语句语句语句之外继续执行程序。之外继续执行程序。之外继续执行程序。之外继续执行程序。如果如果如果如果所有的表达式均为假,则所有的表达式均为假,则所有的表达式均为假,则所有的表达式均为假,则执行语句执行语句执行语句执行语句n n n n。然后继续执行。然后继续执行。然后继续执行。然后继续执行
39、后续程序。后续程序。后续程序。后续程序。if(if(表达式表达式1)1)语句语句1 1;else if(else if(表达式表达式2)2)语句语句2 2;else if(else if(表达式表达式3)3)语句语句3 3;else if(else if(表达式表达式m)m)语句语句m m;else else 语句语句n n;一般形式为:一般形式为:2023/2/20C语言程序设计基础篇2023/2/20C语言程序设计基础篇【例例2.42.4】个人年收入低于个人年收入低于1 1万元,可免个人所得税;万元,可免个人所得税;年收入在年收入在1 1万万2 2万元之间,超过万元之间,超过1 1万元的部
40、分交万元的部分交5%5%的个的个人所得税;年收入在人所得税;年收入在2 2万元以上则交总收入的万元以上则交总收入的7%7%的个人的个人所得税。请编写一个程序,根据个人年收入计算个人所得税。请编写一个程序,根据个人年收入计算个人所得税(精确到元)。所得税(精确到元)。个个人人年年收收入入和和个个人人所所得得税税分分别别用用整整型型变变量量x x、y y保保存存。根根据据题题意意,个个人人所所得得税税与与个个人人年年收收入入的的关关系系可可用用一一个个分分段段函数表示:函数表示:2023/2/20C语言程序设计基础篇#includestdio.hincludestdio.hvoid main()v
41、oid main()int x,y;int x,y;printf(printf(请输入个人年收入:请输入个人年收入:请输入个人年收入:请输入个人年收入:););scanf(%d,&x);scanf(%d,&x);/*/*输入个人年收入输入个人年收入输入个人年收入输入个人年收入*/*/if(x=10 000)if(x=10 000)/*/*个人年收入低于个人年收入低于个人年收入低于个人年收入低于1 1万元万元万元万元*/*/y=0;y=0;else if(x=20 000)else if(x89)if(score89)/*90/*90/*90/*90100100100100分,积点分,积点分,积
42、点分,积点5*/5*/5*/5*/grade=5;grade=5;else if(score79)else if(score79)/*80/*80/*80/*8089898989分,积点分,积点分,积点分,积点4*/4*/4*/4*/grade=4;grade=4;else if(score69)else if(score69)/*70/*70/*70/*7079797979分,积点分,积点分,积点分,积点3*/3*/3*/3*/grade=3;grade=3;else if(score59)else if(score59)/*60/*60/*60/*6069696969分,积点分,积点分,积
43、点分,积点2*/2*/2*/2*/grade=2;grade=2;else else /*59/*59/*59/*590 0 0 0分,积点分,积点分,积点分,积点0*/0*/0*/0*/grade=0;grade=0;printf(printf(成绩成绩成绩成绩%d d的对应积点是的对应积点是的对应积点是的对应积点是%dndn,score,grade);,score,grade);程序运行情况如下:程序运行情况如下:请输入成绩:请输入成绩:7676成绩成绩7676的对应积点是的对应积点是3 3【例【例2.52.5】计算学习成绩积点】计算学习成绩积点2023/2/20C语言程序设计基础篇在使用
44、在使用ifif语句中还应注意以下问题语句中还应注意以下问题在三种形式的在三种形式的在三种形式的在三种形式的ifififif语句中,在语句中,在语句中,在语句中,在ifififif关键字之后均为表达式。关键字之后均为表达式。关键字之后均为表达式。关键字之后均为表达式。该表达式通常是逻辑表达式或关系表达式,但也可以该表达式通常是逻辑表达式或关系表达式,但也可以该表达式通常是逻辑表达式或关系表达式,但也可以该表达式通常是逻辑表达式或关系表达式,但也可以是其它表达式,如赋值表达式等,甚至也可以是一个是其它表达式,如赋值表达式等,甚至也可以是一个是其它表达式,如赋值表达式等,甚至也可以是一个是其它表达式
45、,如赋值表达式等,甚至也可以是一个变量。变量。变量。变量。例如:例如:if(a=5)语句;语句;if(b)语句;语句;都是允许的。都是允许的。只要表达式的值为非只要表达式的值为非0,即为,即为“真真”。2023/2/20C语言程序设计基础篇在在在在ifififif语句的三种形式中,所有的语句应为单个语句,语句的三种形式中,所有的语句应为单个语句,语句的三种形式中,所有的语句应为单个语句,语句的三种形式中,所有的语句应为单个语句,如果要想在满足条件时执行一组如果要想在满足条件时执行一组如果要想在满足条件时执行一组如果要想在满足条件时执行一组(多个多个多个多个)语句,则必语句,则必语句,则必语句,
46、则必须把这一组语句用须把这一组语句用须把这一组语句用须把这一组语句用括起来组成一个复合语句。但括起来组成一个复合语句。但括起来组成一个复合语句。但括起来组成一个复合语句。但要注意的是在要注意的是在要注意的是在要注意的是在 之后不能再加分号。之后不能再加分号。之后不能再加分号。之后不能再加分号。if(xy)x=x+5;y=y+10;else x=10;y=5;例如:例如:在在if语语句句中中,条条件件判判断断表表达达式式必必须须用用括括号号括括起起来来,在语句之后必须加分号。在语句之后必须加分号。例如:例如:if if(b b)语句语句;2023/2/20C语言程序设计基础篇当当当当ififif
47、if语句中的执行语句又是语句中的执行语句又是语句中的执行语句又是语句中的执行语句又是ifififif语句时,则构成了语句时,则构成了语句时,则构成了语句时,则构成了if if if if 语句嵌套的情形。语句嵌套的情形。语句嵌套的情形。语句嵌套的情形。其一般形式可表示如下:其一般形式可表示如下:其一般形式可表示如下:其一般形式可表示如下:if(if(if(if(表达式表达式表达式表达式)if if if if语句;语句;语句;语句;或者为或者为或者为或者为 if(if(if(if(表达式表达式表达式表达式)if if if if语句;语句;语句;语句;else else else else i
48、f if if if语句;语句;语句;语句;在嵌套内的在嵌套内的在嵌套内的在嵌套内的ifififif语句可能又是语句可能又是语句可能又是语句可能又是if-elseif-elseif-elseif-else型的,这将会型的,这将会型的,这将会型的,这将会出现多个出现多个出现多个出现多个ifififif和多个和多个和多个和多个elseelseelseelse重叠的情况,这时要特别注重叠的情况,这时要特别注重叠的情况,这时要特别注重叠的情况,这时要特别注意意意意ifififif和和和和elseelseelseelse的配对问题。的配对问题。的配对问题。的配对问题。2023/2/20C语言程序设计基础
49、篇例如:例如:例如:例如:if(if(if(if(表达式表达式表达式表达式1)1)1)1)if(if(if(if(表达式表达式表达式表达式2)2)2)2)语句语句语句语句1 1 1 1;elseelseelseelse 语句语句语句语句2 2 2 2;其中的其中的其中的其中的elseelse究竟是与哪一个究竟是与哪一个究竟是与哪一个究竟是与哪一个if if配对呢配对呢配对呢配对呢?应该理解为:应该理解为:if(if(表达式表达式1)1)if(if(表达式表达式2)2)语句语句1 1;elseelse 语句语句2 2;还是应理解为:还是应理解为:if(if(表达式表达式1)1)if(if(表达式
50、表达式2)2)语句语句1 1;elseelse 语句语句2 2;为了避免这种二义性,语言规为了避免这种二义性,语言规定,定,else else 总是与它前面最近的总是与它前面最近的ifif配对,配对,因此对上述例子应按前因此对上述例子应按前一种情况理解。一种情况理解。2023/2/20C语言程序设计基础篇2.5 2.5 简单循环结构程序设计简单循环结构程序设计问题问题计算计算计算计算1+2+1001+2+1001+2+1001+2+100的值,即的值,即的值,即的值,即int i,sum;int i,sum;i=1;i=1;sum=0;sum=0;sum=sum+i;i=i+1;sum=sum