4.jidaochap3程序设计语言初步aj

上传人:痛*** 文档编号:171782112 上传时间:2022-11-28 格式:PPT 页数:116 大小:1.21MB
收藏 版权申诉 举报 下载
4.jidaochap3程序设计语言初步aj_第1页
第1页 / 共116页
4.jidaochap3程序设计语言初步aj_第2页
第2页 / 共116页
4.jidaochap3程序设计语言初步aj_第3页
第3页 / 共116页
资源描述:

《4.jidaochap3程序设计语言初步aj》由会员分享,可在线阅读,更多相关《4.jidaochap3程序设计语言初步aj(116页珍藏版)》请在装配图网上搜索。

1、 1第三章第三章 程序设计语言初步程序设计语言初步 2程序设计语言程序设计语言:用于书写计算机程序的语言,用:用于书写计算机程序的语言,用于表达和描述要加工的数据以及求解问题的步于表达和描述要加工的数据以及求解问题的步骤和过程。是根据预先定义的规则(语法)、骤和过程。是根据预先定义的规则(语法)、由一个有限字母表上的字符构成的字符串的总由一个有限字母表上的字符构成的字符串的总体。体。程序设计语言的基本成分程序设计语言的基本成分:数据成分。用以描述程数据成分。用以描述程 序中所涉及的数据。序中所涉及的数据。运算成分。用以描述程序中所包含的运算。运算成分。用以描述程序中所包含的运算。控制成分。用以

2、表达程序中的控制构造。控制成分。用以表达程序中的控制构造。传输成分。用以表达程序中数据的传输。传输成分。用以表达程序中数据的传输。3提纲提纲标识符标识符 数据类型数据类型变量变量常量常量输入和输出输入和输出表达式表达式语句语句函数函数本章结合本章结合C语言语言向大家介绍结构向大家介绍结构化程序设计语言化程序设计语言的基本概念的基本概念 数据成分数据成分传输成分传输成分运算成分运算成分控制成分控制成分 4先聊点先聊点C语言语言 5 6数据总线 控制总线 输入设备输入设备输出设备输出设备存储器存储器中央处理器(中央处理器(CPU)运算部件运算部件控制部件控制部件地址总线 实例:编一个程序,从键盘读

3、入两个整数,实例:编一个程序,从键盘读入两个整数,要求在屏幕上输出相乘运算结果。要求在屏幕上输出相乘运算结果。处理步骤:处理步骤:1.控制部件发命令从键盘读控制部件发命令从键盘读取数据并存储到内存储器中取数据并存储到内存储器中(输入输入)。)。2.控制部件发命令从内存储控制部件发命令从内存储器中取出这两个数置入运算器中取出这两个数置入运算部件的寄存器中,让运算器部件的寄存器中,让运算器执行乘法运算,运算结果写执行乘法运算,运算结果写回存储器中(回存储器中(处理处理)。)。3.控制部件发命令将存储在控制部件发命令将存储在内存储器中的结果输出到显内存储器中的结果输出到显示器上(示器上(输出输出)。

4、)。需要考虑的问题:需要考虑的问题:1.输入输入:如何从键盘读取这两个数并将其存放:如何从键盘读取这两个数并将其存放到内存中?程序如何约束输入的必须是整数?到内存中?程序如何约束输入的必须是整数?2.处理处理:计算时如何读取内存中的这两个数?:计算时如何读取内存中的这两个数?如何实现计算?计算结果如何写回内存?如何实现计算?计算结果如何写回内存?3.输出输出:如何将内存中的计算结果输出到显示:如何将内存中的计算结果输出到显示器?器?7数据总线 控制总线 输入设备输入设备输出设备输出设备存储器存储器中央处理器(中央处理器(CPU)运算部件运算部件控制部件控制部件内存中数据内存中数据的存取的存取:

5、变量、变量、常量、常量、数据类型数据类型输入输入:输入输入语句语句输出输出:输出输出语句语句地址总线 计算的实现计算的实现:运算符运算符表达式表达式语句语句函数函数 8标识符标识符是由程序员定义的单词,用来给程序是由程序员定义的单词,用来给程序中的数据、函数和其他用户自定义对象命名中的数据、函数和其他用户自定义对象命名。程序设计语言本身会定义一些专用名称,称程序设计语言本身会定义一些专用名称,称之为之为保留字保留字或或关键字关键字,它们,它们具有特定含义,具有特定含义,程序员不能另做他用。如:程序员不能另做他用。如:C C语言规定了语言规定了3232个关键字。个关键字。3.1 标识符标识符 9

6、C语言规定的语言规定的32个关键字:个关键字:auto double int struct break else long switch case enum register typedefchar extern return union const float short unsigned continue for signed void default goto sizeof volatiledo if static while 10#include main()int number1;/*变量声明变量声明*/int number2;int result;printf(“please in

7、put the two numbers:n”);/*显示提示信息显示提示信息*/scanf(“%d%d”,&number1,&number2);/*从键盘读取从键盘读取2个整数个整数*/result=number1*number2;/*赋值运算赋值运算*/printf(“the result is:%dn”,result);/*输出结果输出结果*/return 0;用户自定义用户自定义标识符标识符C语言语言关键字关键字3.1 标识符标识符 11u 不同的程序设计语言标识符格式可能不同。不同的程序设计语言标识符格式可能不同。u C C语言规定:语言规定:标识符由大写字母标识符由大写字母A A到到

8、Z Z、小写字母、小写字母a a到到z z、数字、数字0 0到到9 9和下划线组成,且第一个字符必和下划线组成,且第一个字符必须是字母或下划线,随后的字符必须是字母、数须是字母或下划线,随后的字符必须是字母、数字或下划线。且大小写敏感字或下划线。且大小写敏感,如,如ageage和和AgeAge是两个是两个不同的标识符。不同的标识符。u PASCAL语言规定:和语言规定:和C语言类似,只是要求第语言类似,只是要求第一个字符只能是字母(比一个字符只能是字母(比C语言约束更强)。语言约束更强)。3.1 标识符标识符思考:以下哪些是合法的思考:以下哪些是合法的C语言标识符语言标识符age,_class

9、_no,name1,name1,2name,#age 12数据数据是计算机处理的对象。是计算机处理的对象。数据依据其本身的特点可以归为不同的类:数据依据其本身的特点可以归为不同的类:整数整数、小数、字符、字符串、小数、字符、字符串等。等。(高级程序语言特点:按照人对于数据的表达方式)(高级程序语言特点:按照人对于数据的表达方式)程序设计语言应该具备区分各种类型数据的能力程序设计语言应该具备区分各种类型数据的能力,于是引入了数据类型的概念。,于是引入了数据类型的概念。数据类型包括两层含义:定义了一系列的值数据类型包括两层含义:定义了一系列的值(属于属于该类型的数据能够取值的范围该类型的数据能够取

10、值的范围)以及能应用于这)以及能应用于这些值上的一系列操作(些值上的一系列操作(数据操作数据操作)。)。3.2 数据类型数据类型 13u整数是由符号和一个或多个数字组成的正数、整数是由符号和一个或多个数字组成的正数、0 0或负数,又称为带符号的自然数或负数,又称为带符号的自然数,如,如+12,-38+12,-38。u注意:在数学中,整数是一个无限集合,但对注意:在数学中,整数是一个无限集合,但对于计算机来说,只能表示它的一个有限子集于计算机来说,只能表示它的一个有限子集(取决于存储空间的大小)(取决于存储空间的大小)。整型整型3.2 数据类型数据类型程序设计语言一般包含四种程序设计语言一般包含

11、四种标准数据类型标准数据类型:整型、字符型、浮点型和布尔型整型、字符型、浮点型和布尔型(补充)(补充)。143.2 数据类型整型数据类型整型整型数据占用的内存单元数:整型数据占用的内存单元数:uC语言中整型数据细分为四类:语言中整型数据细分为四类:short int、int、long int和和long long int。(和教材不同)(和教材不同)uC语言标准没有规定每一种整数类型占用的内语言标准没有规定每一种整数类型占用的内存空间大小(存空间大小(即数的范围即数的范围),只是约束到:),只是约束到:short int和和int至少要占据至少要占据16位(位(2字节),而字节),而long数

12、据至少要有数据至少要有32位(位(4字节);且数据长字节);且数据长度上,度上,short int=int=long int=long long int。u每一种整数类型占用的内存字节数由编译器根每一种整数类型占用的内存字节数由编译器根据所用机器的硬件情况来决定。据所用机器的硬件情况来决定。15整型数据所允许的运算包括:整型数据所允许的运算包括:二目算术运算二目算术运算 :+、-、*、/、(取余、(取余);注意:两个整数进行二目运算后结果还是整数注意:两个整数进行二目运算后结果还是整数 如:如:125/10=12125/10=12(余数余数5 5被舍弃被舍弃),125%10=5 125%10=

13、5 单目算术运算单目算术运算 :取负值等;:取负值等;关系运算关系运算:,=,=,=(=(相等),相等),!=!=(不相等)(不相等)C C语言中关系运算结果为语言中关系运算结果为1 1(真)或(真)或0 0(假)(假)3.2 数据类型整型数据类型整型 16字符型字符型u字符数据包括字符数据包括26*2个字母(大小写)个字母(大小写)+10个数个数字字+其它显示符号,总共其它显示符号,总共95种;还有种;还有33种控制种控制符号,总共符号,总共128种符号;种符号;u字符型数据在内存中的存储:实际存放的是一字符型数据在内存中的存储:实际存放的是一个整数值。多数计算机系统采用个整数值。多数计算机

14、系统采用ASCII(American Standard Code for Information Interchange)标准编码模式来对字符进行编码)标准编码模式来对字符进行编码。每个字符占用每个字符占用8位内存(位内存(1个字节);个字节);3.2 数据类型数据类型 17ASCII表表L H 000000010010001101000101011001110000NULDLE SP0Pp 0001SOHDC1!1AQaq 0010STXDC2“2BRbr 0011ETXDC3#3CScs 0100EOTDC4$4DTdt 0101ENQNAK%5EUeu 0110ACKSYN&6FVfv

15、0111BELETB,7GWgw 1000BSCAN)8HXhx 1001HTEM(9IYiy 1010LFSUB*:JZjz 1011VTESC+;Kk 1100FFFSNn 1111SIUS/?O_oDEL2000H2002H2004H2003H2001H01000001存储空间存储空间该存储区该存储区存放字符存放字符A思考:若从键盘上输入字符存储到内存,字符思考:若从键盘上输入字符存储到内存,字符到二进制编码的转换是由什么部件来实现的?到二进制编码的转换是由什么部件来实现的?18ASCIIASCII(A A)=65 =65 A A的的ASCIIASCII值是值是6565ASCIIASCI

16、I(a a)=97=97 规律:大写字母的规律:大写字母的ASCIIASCII编码编码3232小写字母的小写字母的ASCIIASCII编码编码 3.2 数据类型字符型数据类型字符型 193.2 数据类型字符型数据类型字符型关系运算关系运算(按照(按照ASCII大小):大小):,=,=,!=例如:例如:A a 结果为真,因为结果为真,因为A的的ASCII是是65,a的的ASCII是是97,6597字符型所允许的运算包括(字符型所允许的运算包括(将字符型数据当作整型将字符型数据当作整型数据对待数据对待):):算术运算算术运算:ch2=ch1-32(ch2=ch1-32(若若ch1ch1值为值为b

17、b,则则ch2ch2为为B B)ch2=ch1-1(ch2=ch1-1(若若ch1ch1值为值为b b,则则ch2ch2为为a a)ch2=ch1 ch2=ch11(1(若若ch1ch1值为值为b b,则则ch2ch2为为c c)20浮点型浮点型u 浮点型是带小数部分的数字类型浮点型是带小数部分的数字类型,如,如3.14,1.575E5(科学计数法,即(科学计数法,即 1.575*)。u抽象地讲,浮点型数据的值域是全体实数,但是由抽象地讲,浮点型数据的值域是全体实数,但是由于计算机表示方面的原因,计算机只能表示它的一个于计算机表示方面的原因,计算机只能表示它的一个有限子集。有限子集。u 同样由

18、于计算机表示方面的原因,实数在计算机同样由于计算机表示方面的原因,实数在计算机内部的表示有时是不准确的。例如,存储圆周率时,内部的表示有时是不准确的。例如,存储圆周率时,只能表示成近似的值。只能表示成近似的值。3.2 数据类型数据类型510 213.2 数据类型数据类型uC语言支持三种不同长度的浮点数据类型:语言支持三种不同长度的浮点数据类型:float、double和和long double。其中其中float一般占一般占32位位(字节);字节);double一般占一般占64位(位(8字节),字节),long double占占96位(位(12字节)。字节)。u三者区别:越后面的类型运算精度越

19、高,值域三者区别:越后面的类型运算精度越高,值域越大,但占用的内存单元越多。越大,但占用的内存单元越多。22浮点型所允许的运算包括:浮点型所允许的运算包括:二目算术运算二目算术运算 :+、-、*、/;浮点型数据进行二目运算结果还是浮点型。浮点型数据进行二目运算结果还是浮点型。如:如:12.0/5.0=2.412.0/5.0=2.4 单目算术运算单目算术运算 :取负值:取负值 关系运算关系运算:,=,=,=,!=!=3.2 数据类型浮点型数据类型浮点型注意:要避免做两个实数相等或不相等的比较。由于计算注意:要避免做两个实数相等或不相等的比较。由于计算机表示方面的近似性,会使得本来应该相等的两个数

20、不等。机表示方面的近似性,会使得本来应该相等的两个数不等。建议在比较两个浮点数建议在比较两个浮点数X和和Y是否相等时使用是否相等时使用|X-Y|,其中其中是一个绝对值较小的正浮点数。是一个绝对值较小的正浮点数。233.2 数据类型布尔型(补充)数据类型布尔型(补充)布尔类型数据布尔类型数据:取值只有两种,真(取值只有两种,真(True)或)或者假(者假(False)。允许的运算包括:与、或、非。)。允许的运算包括:与、或、非。绝大多数程序设计语言中有绝大多数程序设计语言中有布尔类型布尔类型这种数据这种数据类型,如类型,如Pascal语言。但是语言。但是C语言没有定义这语言没有定义这种数据类型。

21、种数据类型。布尔型布尔型 24标准类型是原子的、不可再分的。程序员标准类型是原子的、不可再分的。程序员可以以标准类型为基本构件,构造出可以以标准类型为基本构件,构造出复杂复杂的数据类型。如的数据类型。如C C语言有:结构、数组、联语言有:结构、数组、联合、文件等复杂数据类型;合、文件等复杂数据类型;PASCALPASCAL语言有语言有:结构、数组、集合、文件等复杂数据类:结构、数组、集合、文件等复杂数据类型。型。3.2 数据类型复杂数据类型数据类型复杂数据类型 253.3 变量变量数据总线 控制总线 输入设备输入设备输出设备输出设备存储器存储器中央处理器(中央处理器(CPU)运算部件运算部件控

22、制部件控制部件输入数据、中间运输入数据、中间运算结果、最终结果算结果、最终结果程序需要将输入程序需要将输入数据、中间运算数据、中间运算结果以及最终结结果以及最终结果暂时保存在内果暂时保存在内存单元中。存单元中。地址总线 程序如何实现程序如何实现从内存单元存从内存单元存取数据?取数据?263.3 变量变量 程序运行时,通过内存地址对内存数据进行读程序运行时,通过内存地址对内存数据进行读写;写;程序员写源程序时,如果也是直接使用内存地程序员写源程序时,如果也是直接使用内存地址来读写内存数据,会很麻烦!址来读写内存数据,会很麻烦!如果用名字来代替地址,在程序中出现的是代如果用名字来代替地址,在程序中

23、出现的是代表内存空间的名字,让编译器来跟踪数据实际表内存空间的名字,让编译器来跟踪数据实际存放的物理内存地址,就可以简化编程存放的物理内存地址,就可以简化编程变变量;量;27变量用来代表内存存储空间,该存储空间用来存变量用来代表内存存储空间,该存储空间用来存放被加工的数据或处理的结果。源程序中对变量放被加工的数据或处理的结果。源程序中对变量的操作(读和赋值)实际上是对存储空间的读写的操作(读和赋值)实际上是对存储空间的读写操作。操作。变量具有三个重要属性:名称、值和数据类型。变量具有三个重要属性:名称、值和数据类型。2000H2002H2004H2005H2007H2006H2003H2001

24、Hgenderagescore内存内存用用gender代表地址为代表地址为2001H的内的内存单元,存单元,score代表地址为代表地址为2004H2007H的一片内存空间。的一片内存空间。用变量来实现对这些内存空间数用变量来实现对这些内存空间数据的存取。据的存取。3.3 变量变量 28一、变量定义一、变量定义 u 使用变量来对内存数据进行存取前,必须使用变量来对内存数据进行存取前,必须先定义先定义变量,变量,目的是目的是建立变量和存储空间的对应关系建立变量和存储空间的对应关系。u 变量定义指明变量定义指明变量的名称变量的名称和和数据类型(数据类型(变量代表变量代表的存储空间存放的数据的类型的

25、存储空间存放的数据的类型)。变量的名称变量的名称要要遵遵循标识符命名原则,虽然可以为任意长度,但循标识符命名原则,虽然可以为任意长度,但C编编译器只认为前译器只认为前31个字符有效。变量类型可以告诉编个字符有效。变量类型可以告诉编译器留出适量的用于保存数据的内存。译器留出适量的用于保存数据的内存。u 不同语言中变量定义的写法不一样,不同语言中变量定义的写法不一样,C语言格式:语言格式:数据类型数据类型 变量名变量名1,变量名变量名2,;3.3 变量变量思考:变量定义时要指明哪些内容?思考:变量定义时要指明哪些内容?char gender;int age1,age2;float score;数据

26、类型数据类型变量名变量名分号必须分号必须多个同类型变多个同类型变量用逗号分割量用逗号分割 29注意,变量定义仅引起内存存储注意,变量定义仅引起内存存储空间分配,但此时变量中存储的空间分配,但此时变量中存储的值一般是无意义的(特殊情况除值一般是无意义的(特殊情况除外)!外)!变量定义将引起内存空间的分配。定义后,变量就变量定义将引起内存空间的分配。定义后,变量就用来代表内存中的一片存储单元(存储单元个数取用来代表内存中的一片存储单元(存储单元个数取决于变量类型)。决于变量类型)。3.3 变量变量2000H2002H2004H2005H2007H2006H2003H2001Hgenderagesc

27、ore存储空间存储空间char gender;int age;float score;30二、变量赋值二、变量赋值3.3 变量变量C语言示例:语言示例:char gender;int age;float score;变量赋值:把一个值写入变量代表的存储空间。变量赋值:把一个值写入变量代表的存储空间。C语言变量赋值格式:语言变量赋值格式:变量名变量名=表达式表达式gender=F;age=18;score=89.5;2000H2002H2004H2005H2007H2006H2003H2001Hgenderagescore存储空间存储空间ASCII(F)=77)771889.5变量的值变量的值

28、313.3 变量变量 变量使用特点变量使用特点 先定义,后使用。先定义,后使用。int age;定义一个变定义一个变量为整数类型。如未定义,则在编译时被查量为整数类型。如未定义,则在编译时被查出,认为非法。出,认为非法。变量未被赋值前,值一般是无意义的。变量未被赋值前,值一般是无意义的。对变量赋值过程是对变量赋值过程是“覆盖覆盖”过程,用新值去过程,用新值去替换旧值。替换旧值。读取变量代表的存储空间数据(读取变量代表的存储空间数据(又称读取变又称读取变量的值量的值):):age=age+1;读取变量的值时,该变量保持不变。读取变量的值时,该变量保持不变。32C C语言允许变量在定义时进行初始化

29、。初始语言允许变量在定义时进行初始化。初始化语句用来给变量赋初始值。例如:化语句用来给变量赋初始值。例如:char gender;int age=16;float score;3.3 变量变量2000H2002H2004H2005H2007H2006H2003H2001H16存储空间存储空间genderagescore 333.3 变量变量试解释下列操作的含义试解释下列操作的含义 读取变量的值读取变量的值 写入变量写入变量 给变量赋值给变量赋值 修改变量的值修改变量的值 34#include#includemain()int number1;/*变量声明变量声明*/int number2;in

30、t result;printf(“please input the two numbers:n”);/*显示提示信息显示提示信息*/scanf(“%d%d”,&number1,&number2);/*从键盘读取从键盘读取2个整数个整数*/result=number1*number2;/*赋值运算赋值运算*/printf(“the result is:%dn”,result);/*输出结果输出结果*/system(“pause”);return 0;3.3 变量变量 353.3 变量变量u找出下述变量定义的错误:找出下述变量定义的错误:float f;char A,B;36char gender

31、;int age;float score;变量类型变量类型变量名变量名总结:总结:变量三要素:变量名(变量三要素:变量名(存储空间存储空间)、数据类型()、数据类型(存储存储空间存放的数据的类型空间存放的数据的类型)、变量值()、变量值(存储内容存储内容)3.3 变量变量2000H2002H2004H2005H2007H2006H2003H2001H701889.5存储空间存储空间变量的值变量的值genderagescore 37一、一、文字常量文字常量 文字常量是指在程序中未被命名的值。文字常量是指在程序中未被命名的值。例:例:circumference=2*(length+width);其

32、中其中2 2就是一个文字常量,就是一个文字常量,lengthlength和和widthwidth是变量是变量三类常量:三类常量:文字常量文字常量、命名常量命名常量、符号常量符号常量3.4 常量常量 38二、二、命名常量命名常量和变量类似,命名常量也是和变量类似,命名常量也是内存存储空间的名内存存储空间的名字字,代表一片内存存储空间,但一般,代表一片内存存储空间,但一般不允许程不允许程序去改变该存储空间中的数据序去改变该存储空间中的数据。C C语言中定义一个命名常量:语言中定义一个命名常量:mainmain()()const const float float pi=3.14;pi=3.14;3

33、.4 常量常量2000H2002H2004H2005H2007H2006H2003H2001H3.14存储空间存储空间pi说明说明pi是个命是个命名常量名常量;39#include#includemain()const float pi=3.14;/*常量定义常量定义*/float radius;/*变量定义变量定义*/float area;printf(“please input the radius:n”);/*显示提示信息显示提示信息*/scanf(“%f”,&radius);/*从键盘读取半径从键盘读取半径*/area=pi*radius*radius;/*赋值运算赋值运算*/prin

34、tf(“the area is:%fn”,area);/*输出结果输出结果*/system(“pause”);return 0;40 符号常量是仅含有符号名称的值。符号常量是仅含有符号名称的值。C C语言符号常量定义:语言符号常量定义:#define 标识符标识符 替换文本替换文本#define PI 3.14 area=PI*radius*radius;编译时,预处理程序能够将所有出现该符号名称编译时,预处理程序能够将所有出现该符号名称的地方用的地方用值值替换替换:area=3.14*radius*radius;使用符号常量的好处:使程序易读性好、容易维使用符号常量的好处:使程序易读性好、容

35、易维护。护。三、三、符号常量符号常量3.4 常量常量 413.4 常量常量#include#include#define PI 3.14 /常量定义,注意结束处无分号常量定义,注意结束处无分号main()float radius;/*变量定义变量定义*/float area;printf(“please input the radius:n”);/*显示提示信息显示提示信息*/scanf(“%f”,&radius);/*从键盘读取半径从键盘读取半径*/area=PI*radius*radius;/*赋值运算赋值运算*/printf(“the area is:%fn”,area);/*输出结果输

36、出结果*/system(“pause”);return 0;42四、常量的类型四、常量的类型和变量一样,常量也有类型。大多数程序设计语言使用整和变量一样,常量也有类型。大多数程序设计语言使用整型、浮点型、字符型和字符串型常量。型、浮点型、字符型和字符串型常量。C C语言中四种常量:语言中四种常量:1515整型常量整型常量15.415.4浮点型常量浮点型常量AA字符型常量字符型常量 (用单引号括起字符)(用单引号括起字符)“Hello”Hello”字符串型常量(用双引号括起字符序列)字符串型常量(用双引号括起字符序列)文字常量和符号常量的值体现了常量的类型文字常量和符号常量的值体现了常量的类型3

37、.4 常量常量 43 如果整型常量以如果整型常量以0开头,开头,C编译器会认为该常量编译器会认为该常量是八进制数。如是八进制数。如040即十进制的即十进制的32。如果整型常量以如果整型常量以0 x开头,开头,C编译器会认为该常编译器会认为该常量是十六进制数。如量是十六进制数。如0 xFF即十进制的即十进制的255。#include#include#define X 040#define Y 0XFFmain()printf(X=%d,Y=%d”,X,Y);system(pause);return 0;3.4 常量常量X=32,Y=255请按任意键继续请按任意键继续.44常量小测试常量小测试 下

38、述常量定义哪些是错误的?为什么?下述常量定义哪些是错误的?为什么?#define ratio=1/3#define ratio 1/3;#define 1st_character$#define if 71.不能有号;否则会用不能有号;否则会用=1/3替换替换ratio2.不能有语句结束符;号不能有语句结束符;号3.标识符只能以字符或者标识符只能以字符或者下划线开头下划线开头4.if是是C语言规定的关键语言规定的关键字,有特定含义,用户字,有特定含义,用户不能随便使用不能随便使用5.习惯上,常量名一般采习惯上,常量名一般采用大写字母。用大写字母。45数据总线 控制总线 输入设备输入设备输出设备

39、输出设备存储器存储器中央处理器(中央处理器(CPU)运算部件运算部件控制部件控制部件地址总线 3.5 输入和输出(输入和输出(I/O)一个真正有用的程一个真正有用的程序一般会从输入设序一般会从输入设备接收数据、并将备接收数据、并将运算结果输出到输运算结果输出到输出设备中。出设备中。为了实现和输入输出为了实现和输入输出设备的通信,程序必设备的通信,程序必须要有须要有输入和输出语输入和输出语句句。一个既无输入又。一个既无输入又无输出的程序是没有无输出的程序是没有用的。用的。46输入和输出语句最基本的功能在于从外界环境将输入和输出语句最基本的功能在于从外界环境将值读入一个变量,或者将一个值写出到外界

40、环值读入一个变量,或者将一个值写出到外界环境中。境中。3.5 输入和输出(输入和输出(I/O)47一、输入一、输入 通过输入语句或者预先定义的函数可以从外界接收值。通过输入语句或者预先定义的函数可以从外界接收值。C C语言输入函数举例:语言输入函数举例:scanf(格式控制串,输入项地址表格式控制串,输入项地址表);格式控制串格式控制串:含有各种以百分号开头的格式控制符。:含有各种以百分号开头的格式控制符。输入项地址表输入项地址表:有逗号分隔开的若干输入表项组成,每一个:有逗号分隔开的若干输入表项组成,每一个表项是一个变量的地址。表项是一个变量的地址。scanf函数的作用函数的作用:从标准输入

41、设备(键盘)上读取一系列数:从标准输入设备(键盘)上读取一系列数据,按格式控制串的要求进行转换并送到输入项地址表所列据,按格式控制串的要求进行转换并送到输入项地址表所列的逐个变量中。的逐个变量中。3.5 输入和输出(输入和输出(I/O)48 scanf(“%d”,&number1);u当程序执行该语句时,等待用户从键盘输入数据并当程序执行该语句时,等待用户从键盘输入数据并转换成一个整数,存储到变量转换成一个整数,存储到变量number1中。中。ud:转换说明符转换说明符(conversion specifier),用于),用于告告诉程序键入的数据要转换成一个整数;诉程序键入的数据要转换成一个整

42、数;u&:取变量地址的运算符,取变量地址的运算符,&number1表示变量表示变量number1的的首首地址地址。注意:书写程序时不要遗漏注意:书写程序时不要遗漏&.&.3.5 输入和输出(输入和输出(I/O)格式控制串格式控制串输入项地址表输入项地址表 493.5 输入和输出(输入和输出(I/O)设设age为为int型变量,型变量,gender、ch为为char型变量,型变量,height为为float型变量。型变量。输入数据为:输入数据为:20M1.65若希望若希望age得到值得到值20,gender得到值得到值M,height得到值得到值1.65,则函数调用为:,则函数调用为:scanf

43、(“%d%c%f”,&age,&gender,&height);若希望若希望ch得到字符值得到字符值2,age得到整型值得到整型值0,gender得到得到字符值字符值M,height得到浮点值得到浮点值1.65,则函数调用为:,则函数调用为:scanf(“%c%d%c%f”,&ch,&age,&gender,&height);50用用scanfscanf语句从键盘同时读入年龄和性别:语句从键盘同时读入年龄和性别:scanf(scanf(“%d%d%c%c”,&age,&age,&gender,&gender););scanf(scanf(“%d,%d,%c%c”,&age,&age,&gend

44、er,&gender););3.5 输入和输出(输入和输出(I/O)10 F10,F格式控制串中除了转换说明符,还可以包含其他字符。格式控制串中除了转换说明符,还可以包含其他字符。从键盘输入的内容要和格式控制串匹配。如果在格式从键盘输入的内容要和格式控制串匹配。如果在格式控制串中除了转换说明符以外还有其它字符,则在输控制串中除了转换说明符以外还有其它字符,则在输入数据时应输入与这些字符相同的字符。如:入数据时应输入与这些字符相同的字符。如:空格空格scanf(scanf(“age=%d,gender=age=%d,gender=%c%c”,&age,&age,&gender,&gender);

45、);age=10,gender=F 51二、输出二、输出 通过语句或者预先定义的函数可以将值输出到外界。通过语句或者预先定义的函数可以将值输出到外界。C C输出函数举例:输出函数举例:功能:功能:将字符串显示在标准输出设备(一般为显示将字符串显示在标准输出设备(一般为显示器)上。程序员可以将常量、变量、表达式、函数器)上。程序员可以将常量、变量、表达式、函数调用作为待输出字符串的一部分。调用作为待输出字符串的一部分。格式控制串:格式控制串:包含了某些要直接显示的字符,也包包含了某些要直接显示的字符,也包含一些转换说明符。含一些转换说明符。输出项表:输出项表:可以是常量、变量、表达式、函数调用。

46、可以是常量、变量、表达式、函数调用。3.5 输入和输出(输入和输出(I/O)52如:如:printfprintf(”Your age is:%dYour age is:%d”,age,age);注意,在输出时注意,在输出时转换说明符转换说明符%d%d不输出不输出,而是,而是被变量被变量ageage的的值代替值代替。假设变量。假设变量ageage的值是的值是1818,则显示器上,则显示器上将输出字符串将输出字符串“Your age is:18Your age is:18”注意:此处变量注意:此处变量ageage前面没有前面没有&!&!3.5 输入和输出(输入和输出(I/O)上机练习:如果上述语句

47、改写成上机练习:如果上述语句改写成printf(”Your age is:”,age);输出将是怎样?输出将是怎样?533.5 输入和输出(输入和输出(I/O)可以用可以用printf语句输出常量、变量、表达式、函语句输出常量、变量、表达式、函数调用的值:数调用的值:const float SCORE=98.5;int age;printf(“the average score is%d”,SCORE);/输出常量输出常量printf(“your age is%d”,age);/输出变量输出变量printf(“the value of(2+3)10 is:%dn”,(2+3)10);/输出输出

48、表达式的值表达式的值printf(“the size of int is:%d”,sizeof(int);/输出函数返输出函数返回值回值 54若想同时输出年龄和性别,则语句可写为:若想同时输出年龄和性别,则语句可写为:printfprintf(“Age:%dAge:%d,Gender:%cGender:%c”,age,gender,age,gender);显示器上将输出字符串显示器上将输出字符串“Age:18,Gender:FAge:18,Gender:F”3.5 输入和输出(输入和输出(I/O)输入输出后面会再详细讲解,有兴趣的同学可参见输入输出后面会再详细讲解,有兴趣的同学可参见C程程序设

49、计教程序设计教程的的9.3和和9.11。55找出以下程序的错误找出以下程序的错误1.include2.main()3.4.printf(“input i and jn”);5.scanf(“i=%d”,i);6.scanf(“%d”,j);7.printf(“i=%d,j=%d”,i);/输出输出2个变量的值个变量的值8.return 0;9.1.变量变量i和和j未定义就使用;未定义就使用;2.scanf(“i=%d”,&i)scanf(“%d”,&j);3.printf(“i=%d,j=%d”,i,j);56修正后的程序include#includemain()int i,j;/变量定义变量

50、定义 printf(“input i and jn”);/输入提示输入提示 scanf(“i=%d”,&i);/键盘输入变量键盘输入变量i的值的值 scanf(%d,&j);printf(“i=%d,j=%d”,i,j);/输出输出2个变量的值个变量的值 system(pause);return 0;运行结果:运行结果:input i and ji=1020i=10,j=20请按任意键继续请按任意键继续.57#include main()int number1;/*存放整数存放整数1*/int number2;/*存放整数存放整数2*/int result;/*存放结果存放结果*/printf

51、(“please input the two numbers:n”);/*显示提示信息显示提示信息*/scanf(“%d%d”,&number1,&number2);/*读取整数读取整数*/result=number1*number2;/*赋值运算赋值运算*/printf(“the result is:%dn”,result);/*输出结果输出结果*/return 0;2000H2004Hresult2002H2005H2007H2006H2003H2001H存储空间存储空间number1number210 2010 20please input the two numbers:please

52、input the two numbers:the result is:200the result is:2001020200 任务描述:输入两个整数,任务描述:输入两个整数,求两数之积并输出。求两数之积并输出。/*/:注释注释 main()函数()函数 变量定义部分变量定义部分 操作部分操作部分编译后,源程序中出编译后,源程序中出现现number1、number2和和result的地方将会用的地方将会用内存相对地址(非真内存相对地址(非真正物理地址)替换。正物理地址)替换。思考:何时、在哪里思考:何时、在哪里得到真正的物理地址?得到真正的物理地址?编译程序怎么处理变编译程序怎么处理变量?操作

53、系统怎么分量?操作系统怎么分配内存?如何得到物配内存?如何得到物理地址?深入学习:理地址?深入学习:编译原理编译原理操操作系统作系统计算机计算机组成原理组成原理假设操作系统已经分配如下内假设操作系统已经分配如下内存空间用于存放操作数和结果存空间用于存放操作数和结果程序运行过程演示程序运行过程演示 58输入输出练习:定义三个变量,分别是整型、输入输出练习:定义三个变量,分别是整型、浮点型、字符型。要求从键盘输入三个值(逗浮点型、字符型。要求从键盘输入三个值(逗号间隔)存放到这三个变量里,并且输出(格号间隔)存放到这三个变量里,并且输出(格式式:变量名变量名=变量值,变量值,)这三个变量。)这三个

54、变量。#include#includemain()int i;float f;char c;scanf(“%d,%f,%c”,&i,&f,&c );printf(“the result is:n”);printf(“i=%d,f=%f,c=%c”,i,f,c);system(“pause”);return 0;59#include#includemain()int i;float f;char c;printf(input i,fn);scanf(%d,%f,&i,&f);printf(input cn);scanf(%c,&c);printf(the result is:n);printf(

55、i=%d,f=%f,c=%c,i,f,c);system(pause);return 0;请同学们观察本程序的输出是什么?请同学们观察本程序的输出是什么?input i,f10,3.14input cthe result is:i=10,f=3.140000,c=请按任意键继续请按任意键继续.程序并没有给用户输入字程序并没有给用户输入字符数据的机会。为什么?符数据的机会。为什么?【链接链接】60解决方法:用解决方法:用getchar函数来读取回车符函数来读取回车符main()int i;float f;char c;printf(input i,fn);scanf(%d,%f,&i,&f);g

56、etchar();/*将存于缓冲区的回车符读入将存于缓冲区的回车符读入*/printf(input cn);scanf(%c,&c);printf(the result is:结果是结果是n);printf(i=%d,f=%f,c=%c,i,f,c);system(pause);input i,f10,3.14input cythe result is:i=10,f=3.140000,c=y请按任意键继续请按任意键继续.结果正确!结果正确!此外,还可以用此外,还可以用fflush函数函数来清空键盘缓冲区。见实来清空键盘缓冲区。见实验讲义附录验讲义附录1的第的第16个错误个错误(第(第130页)

57、,要求自学。页),要求自学。61u表达式是由表达式是由运算符、操作数和括号运算符、操作数和括号组成的、组成的、计算求值计算求值的基本单位。的基本单位。u操作数可以是:操作数可以是:常量、变量、函数调用和表达式;常量、变量、函数调用和表达式;u表达式举例:表达式举例:u2 2 表达式无运算符,操作数为常量表达式无运算符,操作数为常量ui i 表达式无运算符,操作数为变量表达式无运算符,操作数为变量usizeof(int)sizeof(int)表达式无运算符,操作数为函数调用表达式无运算符,操作数为函数调用u2+i 2+i 操作数为常量和变量操作数为常量和变量ui i*sizeof(int)siz

58、eof(int)操作数为变量和函数调用操作数为变量和函数调用u2+i 2+i*sizeof(int)sizeof(int)加法运算的第加法运算的第2 2个个操作数仍为操作数仍为表达式表达式3.6 表达式表达式 623.6 表达式表达式u典型的几类运算符和表达式典型的几类运算符和表达式:算术运算符和算术表达式;算术运算符和算术表达式;关系运算符和关系表达式;关系运算符和关系表达式;逻辑运算符和逻辑表达式逻辑运算符和逻辑表达式;赋值运算符和赋值表达式赋值运算符和赋值表达式;633.6 表达式表达式一、算术运算符和算术表达式一、算术运算符和算术表达式算术运算符:、算术运算符:、/、(取余取余)等;等

59、;算术表达式:由算术运算符、操作数和括号构成的算术表达式:由算术运算符、操作数和括号构成的表达式。如:(表达式。如:(2+8.2/32+8.2/3)*4 4,10 10 4 4(余数为(余数为2 2)+(加)加)-(减)(减)*(乘)(乘)/(除,取商)(除,取商)%(取模)(取模)+(自加,加自加,加1)-(自减,减(自减,减1)643.6 表达式表达式算术表达式算术表达式(b*b-4*a*c)/(2*a)2aac4b2要注意编程序式,程序中对算术表达式的书写和要注意编程序式,程序中对算术表达式的书写和平时的书写方式可能是不一样的:平时的书写方式可能是不一样的:在程序中要写成在程序中要写成

60、65 在在C语言中,算术运算的操作数可以是整数、字语言中,算术运算的操作数可以是整数、字符或者浮点数。如果表达式中的操作数全是字符符或者浮点数。如果表达式中的操作数全是字符或者整数,则表达式的值为整数;如果操作数至或者整数,则表达式的值为整数;如果操作数至少有一个是浮点数,则表达式的值为浮点数。少有一个是浮点数,则表达式的值为浮点数。3.6 表达式表达式算术表达式算术表达式求以下表达式的值:求以下表达式的值:1)102/202)102%203)1/24)1.0/25)x=A+32(x是是整型变量)整型变量)求以下表达式的值:求以下表达式的值:1)102/20=52)102%20=23)1/2=

61、0 值为整数值为整数4)1.0/2=0.5 值为浮点数值为浮点数5)x=A+32 x97提示:字符数据总是提示:字符数据总是先转换成整型数据,先转换成整型数据,再参与运算的。再参与运算的。663.6 表达式表达式算术表达式算术表达式 C语言中,整型、字符型、浮点型数据可以进语言中,整型、字符型、浮点型数据可以进行行混合运算混合运算.如:如:5+1.0+A=71.000000混合运算涉及到混合运算涉及到数据类型的转换数据类型的转换,具体将在以,具体将在以后介绍。后介绍。自加运算符自加运算符+和自减运算符和自减运算符-是是C语言特有的语言特有的运算符,将在以后介绍。运算符,将在以后介绍。673.6

62、 表达式表达式二、关系运算符和关系表达式二、关系运算符和关系表达式 关系运算符:用于比较两个数据的大小关系。关系运算符:用于比较两个数据的大小关系。关系表达式:用关系运算符将两个表达式连接起关系表达式:用关系运算符将两个表达式连接起来构成的表达式,如来构成的表达式,如(2(23)10 3)10;运算结果是;运算结果是逻逻辑辑“真真”或者或者“假假”。在在C C语言中,若运算结果是逻辑语言中,若运算结果是逻辑“真真”,则关系,则关系表达式的值为表达式的值为1 1;若为逻辑;若为逻辑“假假”,则值为,则值为0 0。(小于)小于)(大于)(大于)=(大于等于)(大于等于)(等于)(等于)!(不等于)

63、!(不等于)683.6 表达式表达式关系表达式关系表达式思考:以下语句的输出结果是什么?思考:以下语句的输出结果是什么?printf(the value of(2+3)10 is:%dn,(2+3)10);printf(the value of(2+3)=10 is:%dn,(2+3)=10);the value of (2+3)10 is:1the value of (2+3)=10 is:0 693.6 表达式表达式三、逻辑运算符和逻辑表达式三、逻辑运算符和逻辑表达式逻辑运算符:与、或、非逻辑运算符:与、或、非&(与)(与)a&b:当且仅当操作数:当且仅当操作数a和和b的值都为的值都为“真

64、真”时,运算结果为时,运算结果为“真真”,否则为,否则为“假假”(如何判断操作数是否为真?如何判断操作数是否为真?)|(或)(或)a|b:当且仅当操作数:当且仅当操作数a和和b值都为值都为“假假”时,运算结果为时,运算结果为“假假”,否则为,否则为“真真”。!(非)!(非)!a:当操作数当操作数a的值为的值为“真真”时,运算结果时,运算结果为为“假假”;当操作数;当操作数a的值为的值为“假假”时,时,运算结果为运算结果为“真真”C语言中,只要操作语言中,只要操作数值为非数值为非0,即为真。,即为真。值为值为0,即为假,即为假 703.6 表达式表达式逻辑表达式逻辑表达式 逻辑表达式:用逻辑运算

65、符将表达式(一般为逻辑表达式:用逻辑运算符将表达式(一般为关系表达式)连接起来构成的表达式关系表达式)连接起来构成的表达式 ;运算结;运算结果是逻辑果是逻辑“真真”或者或者“假假”;在在C C语言中,若运算结果是逻辑语言中,若运算结果是逻辑“真真”,则逻辑,则逻辑表达式的值为表达式的值为1 1;若为逻辑;若为逻辑“假假”,则值为,则值为0 0。逻辑表达式求值的两个要点:逻辑表达式求值的两个要点:判断操作数值是判断操作数值是“真真”还是还是“假假”;当逻辑表达式求值结束后,将运算结果的逻当逻辑表达式求值结束后,将运算结果的逻辑辑“真真”或或“假假”转换为整型值转换为整型值1 1或或0 0。713

66、.6 表达式表达式逻辑表达式逻辑表达式#include#includeint main()int a=1,b=2,c=4,f;printf(“a=%d,b=%d,c=%dn,a,b,c);f=(ab)&(bc);printf(“f=(ab)&(bb)|(bc);printf(f=(ab)|(bc),f为为%dn,f);printf(!(ab)is:%dn,!(ab);printf(!a is:%dn,!a);system(pause);return 0;输出结果?输出结果?a=1,b=2,c=4f=(ab)&(bb)|(bc),f为为0!(ab)is:1!a is:0 723.6 表达式表达式逻辑表达式逻辑表达式 注意连续的关系运算:注意连续的关系运算:数学上的数学上的abc,在,在C语言中虽然也允许这语言中虽然也允许这么写,但其含义数学中完全不同。数学中的么写,但其含义数学中完全不同。数学中的该类表达式在该类表达式在C语言中应该写成:语言中应该写成:(a b)&(b 20&a%5=0的值?的值?优先级:优先级:算术运算符算术运算符关系运算符关系运算符逻辑运算符逻辑运算符赋值运算符赋值

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!