C语言入门经典(第四版)2-编程初步.ppt

上传人:牧羊曲112 文档编号:6503784 上传时间:2023-11-07 格式:PPT 页数:41 大小:341.49KB
返回 下载 相关 举报
C语言入门经典(第四版)2-编程初步.ppt_第1页
第1页 / 共41页
C语言入门经典(第四版)2-编程初步.ppt_第2页
第2页 / 共41页
C语言入门经典(第四版)2-编程初步.ppt_第3页
第3页 / 共41页
C语言入门经典(第四版)2-编程初步.ppt_第4页
第4页 / 共41页
C语言入门经典(第四版)2-编程初步.ppt_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《C语言入门经典(第四版)2-编程初步.ppt》由会员分享,可在线阅读,更多相关《C语言入门经典(第四版)2-编程初步.ppt(41页珍藏版)》请在三一办公上搜索。

1、第02章 编程初步,现在读者一定很渴望编写程序,让计算机与外界进行实际的交互。我们不希望程序只能做打字员的工作,显示包含在程序代码中的固定信息。的确,编程的内涵远不止此。理想情况下,我们应能从键盘上输入数据,让程序把它们存储在某个地方,这会让程序更具多样性。程序可以访问和处理这些数据,而且每次执行时,都可以处理不同的数据值。每次运行程序时输入不同的信息正是整个编程业的关键。在程序中存储数据项的地方是可以变化的,所以叫做变量(variable),而这正是本章的主题,2.1 计算机的内存,首先看看计算机如何存储程序要处理的数据。为此,就要了解计算机的内存,在开始编写第一个程序之前,先简要介绍计算机

2、的内存。计算机执行程序时,组成程序的指令和程序所操作的数据都必须存储到某个地方。这个地方就是机器的内存,也称为主内存(main memory),或随机访问存储器(Random Access Memory,RAM)。,2.2 什么是变量,变量是计算机里一块特定的内存,它是由一个或多个连续的字节所组成。每个变量都有一个名称,可以用该名称表示内存的这个位置,以提取它包含的数据或存储一个新数值。,2.3 计算机绘图系统的硬件组成,变量有几种不同的类型,每种变量都用于存储特定类型的数据。首先看看用于存储数值的变量。在程序里存放数字的方法很多,下面从最简单的方法开始。整数变量 变量的命名 变量的使用 变量

3、的初始化 算术语句,2.3.1 整数变量,首先是存储整数的变量。整数是没有小数点的数字。例如:110,999,000,000-1这些数值是整数,但这对程序而言并不完全正确。整数是不能包含逗号的,所以第二个值在程序里应该写成。,2.3.2 变量的命名,给变量指定的名称一般称为变量名。变量的命名是很有弹性的。它可以是一个或多个大写或小写字母、数字和下划线(_)(有时下划线也算做字母)。下面是一些正确的变量名:RadiusdiameterAuntie_MayKnotted_WoolD678,2.3.3 变量的使用,前面介绍了如何声明及命名变量,但这和在第一章学到的知识相比并没有太多用处。下面编写另一

4、个程序,在产生输出前使用变量的值。,2.3.4 变量的初始化,在上面的例子,用下面的语句声明每个变量:int Cats;/*The number of cats as pets*/用下面的语句设定变量Cats的值:Cats=2;将变量Cats的值设为2。,2.3.5 算术语句,上面的程序是第一个真正做了些事情的程序。它非常简单,仅仅相加了几个数字,但这是非常重要的一步。它是运用算术语句进行运算的一个基本例子。下面介绍一些更复杂的计算。,2.4 变量与内存,前面介绍了整数变量,但未考虑过它们占用多少内存空间。每次声明变量时,计算机都会给它分配一块足够大的内存空间,来保存该类型的变量。相同类型的不

5、同变量总是占据相同大小的内存(字节数)。但不同类型的变量需要分配的内存空间就不一样了。,2.5 整数变量类型,有5种基本的变量类型可以声明为存储带符号的整数值(无符号的整数值参见下一节)。每种类型都用不同的关键字或关键字组合来指定。无符号的整数类型 使用整数类型 指定整数常量,2.5.1 无符号的整数类型,对于每个存储带符号整数的类型,都有一个对应的类型来存储无符号的整数,它们占用的内存空间与无符号类型相同。每个无符号的类型名称都与带符号的类型名称相同,但要在前面加上关键字unsigned。,2.5.2 使用整数类型,在大多数情况下,int或long类型的变量就能满足我们的需求,偶尔需要uns

6、igned int或unsigned long。下面是声明这些类型的例子:unsigned int count=10;unsigned long inchesPerMile=63360UL;int balance=-500;,2.5.3 指定整数常量,整数变量有不同的类型,整数常量也有不同的类型。例如,如果将整数写成100,它的类型就是int。如果要确保它是long类型,就必须在这个数值的后面加上一个大写L或小写l。所以,long类型的整数100应写为100L。虽然写为100l也是合法的,但应尽量避免,因为小写字母l与数字1很难辨别。,2.6 浮点数,浮点变量用来存储浮点数。浮点数包含的值带小

7、数点,也可以表示分数和整数。下面是浮点数的例子:1.6 0.00008 7655.899 由于浮点数的表示方式,它的位数是固定的。然而它的取值范围要比整数大得多。浮点数通常表示为一个小数值乘以10的次方。,2.7 浮点数变量,浮点数变量的声明方式和整数变量类似。只需给浮点数类型使用对应的关键字即可:float Radius;double Biggest;如果需要存储至多有7位精确值的数(范围从10-38到10+38),就应需要使用float类型的变量。类型float的值称为单精度浮点数。从表2-6中得知,它占用4个字节。使用类型double的变量可以存储双精度浮点数。类型double的变量占用

8、8个字节,有15位精确值,范围从10-308到10+308。它足以满足大多数的需求。但某些特殊的应用程序需要更精确、更大的范围,此时可以使用long double。,2.8 使用浮点数完成除法运算,如前所见,除法运算使用的是整数操作数时,通常会得到整数结果。除非除法运算的左操作数刚好是右操作数的整数倍,否则其结果是不正确的。当然,在将饼干分给孩子们的例子中,整数除法运算的方式是没问题的,但将10尺长的厚板均分成4块时,就有问题了。这时就需要用到浮点数了。控制小数位数 控制输出字段宽度,2.8.1 控制小数位数,在上个例子的输出中有太多不必要的0。擅长使用量尺和锯子,并不说明能用长度为2.500

9、000量尺切割木板,更不用说用2.500001长度的量尺了。可以用格式指定符指定小数点后面的位数。例如,要使输出的小数点后有两位数,就可以使用格式指定符%.2f。如果小数点后需要有3位数,则可以使用%.3f。,2.8.2 控制输出字段宽度,输出的字段宽度是输出值所使用的总字符数(包括空格),它一般是默认的。printf()函数确定了输出值需要占用多少个字符位置,小数点后的位数由我们指定,并将它用作字段宽度。但我们可以自己确定字段宽度。如果要求输出一列排列整齐的数值,就应确定其字段宽度。如果让printf()函数指定字段宽度,输出的数字列就不整齐。,2.9 较复杂的表达式,算术要比两个数相除复杂

10、得多。事实上,如果要进行复杂的算术运算,也可以使用笔和纸。有了加减乘除的工具,就可以开始进行一些真正复杂的计算了。对于较复杂的的计算,需要更多地控制表达式的计算顺序。括号可以提供这方面的能力。当遇到错综复杂的情况时,括号还有助于使表达式更清晰。,2.10 定义常量,前面的例子将Pi定义为变量,但它是一个不会改变的常量,的值是一个不循环的无限小数,其值总是固定不变。唯一的问题是,在指定它时精确到几位数。最好确保它的值在程序里保持不变,使之不会因错误而改变。极限值 sizeof运算符,2.10.1 极限值,当然,一定要确定程序中给定的整数类型可以存储的极限值。头文件定义的符号表示每种类型的极限值。

11、,2.10.2 sizeof运算符,使用sizeof运算符可以确定给定的类型占据多少字节。当然,在C语言中sizeof是一个关键字。表达式sizeof(int)会得到int类型的变量所占的字节数,所得的值是一个size_t类型的整数。size_t类型在标准头文件(和其他头文件如)中定义,对应于一个基本整数类型。但是,与size_t类型对应的类型可能在不同的C库中有所不同,所以最好使用size_t变量存储sizeof运算符生成的值,即使知道它对应的基本类型,也应如此。,2.11 选择正确的类型,必须仔细选择在计算过程中使用的变量类型,使之能包含我们期望的值。如果使用了错误的类型,程序就可能出现很

12、难检测出来的错误。,2.12 定义常量,在程序2.14计算季度收入的表达式中,可以控制操作的执行,得到正确的结果:RevQuarter=QuarterSold/150*Revenue_Per_150;要使结果正确,必须修改这个语句,以浮点数的方式计算表达式。如果可以把QuarterSold的值转换为float类型,该表达式就会以浮点数的方式计算,问题就解决了。要把变量从一种类型转换为另一种类型,应把目标类型放在变量前面的括号中。自动转换类型 隐式类型转换的规则 赋值语句中的隐式类型转换,2.12.1 自动转换类型,该程序的第二个版本的输出如下:Sales revenue this quarte

13、r is:$1930.50 即使表达式中没有显式转换类型,结果也是浮点数形式,但它仍是错误的。这是因为编译器在处理涉及不同类型的值操作时,会自动把其中一个操作数的类型转换为另一个操作数的类型,2.12.2 隐式类型转换的规则,确定二元运算中的哪个操作数要转换为另一个操作数的类型时,其机制相当简单。其基本规则是,将值域较小的操作数类型转换为另一个操作数类型,但在一些情况下,两个操作数都要转换类型。,2.13 再谈数值数据类型,为了完整论述数值数据类型,下面讨论一些前面未提及的内容。第一个未涉及的类型是char。char类型的变量可以存储单个字符的代码。它只能存储一个字符代码(即一个整数),所以被

14、看作整数类型。可以像其他整数类型那样处理char类型存储的值,因此可以在算术运算中使用它。字符类型 字符的输入输出 宽字符类型 枚举 存储布尔值的变量 复数类型,2.13.1 字符类型,在所有数据的类型中,char类型占用的内存空间最少。它一般只需一个字节。存储在char类型变量的整数可以表示为带符号或无符号的值,这取决于编译器。,2.13.2 字符的输入输出,使用scanf()函数和格式指定符%c,可以从键盘上读取单个字符,将它存储在char类型的变量中。,2.13.3 宽字符类型,wchar_t类型的变量存储多字节字符码,一般占用两个字节。在处理Unicode字符时,就需要使用wchar_

15、t类型。wchar_t类型在标准头文件中定义,所以需要在使用该类型的源文件中包含该头文件。在char类型的字符常量前面加上修饰符L,就可以定义一个宽字符常量。,2.13.4 枚举,在编程时,常常希望变量存储一组可能值中的一个。例如一个变量存储表示当前月份的值。这个变量应只存储12个可能值中的一个,分别对应于112月。C语言中的枚举(enumeration)就用于这种情形。,2.13.5 存储布尔值的变量,_Bool类型存储布尔值。布尔值一般是比较的结果true或false;第3章将学习比较操作,并使用其结果做出判断。_Bool类型的变量值可以是0或1,对应于布尔值false和true。由于值0

16、和1是整数,所以_Bool类型也被看作整数类型。,2.13.6 复数类型,本节假定读者学过复数。如果读者未学过这个内容,可以跳过本节。如果对复数的概念比较模糊,这里将介绍它的基本特性。复数的形式是a+bi(在电子学中是a+bj),其中i是1的平方根,a和b是实数。A是实数部分,bi是复数的虚数部分。复数可以看作实数(a,b)的有序对,2.14 赋值操作的op=形式,C语言是一种非常简洁的语言,提供了一些操作的缩写形式。考虑下面的代码:number=number+10;这类赋值操作是给一个变量递增或递减一个数字,它非常常见,所以有一个缩写形式:number+=10;,2.15 数学函数,math

17、.h头文件包含各种数学函数的声明。为了了解这些数学函数,下面介绍最常用的函数。所有的函数都返回一个double类型的值。,2.16 设计一个程序,下面设计本章末的一个真实例子。在一个新程序中试用一些数值类型是一个很不错的想法。这里将从头开始编写一个程序,涉及编程的所有基本要素,包括问题的初始描述、问题的分析、解决方案的准备、编写程序、运行程序,以及测试它,确保它正常工作。该过程的每一步都会引入新问题,而不仅仅是纸上谈兵。问题 分析 解决方案,2.16.1 问题,许多人都对树的高度很感兴趣。如果将树砍倒,量出它的高度,就可以确定离树多远才是安全的。这对于患有神经衰弱的人来说非常重要。问题是如何不

18、使用非常长的梯子,就可以确定树的高度,因为长梯也会对人和树枝带来危险。为了确定树的高度,可以向朋友求助,最好找一个个子比较矮的朋友。假定要测量的树比自己和朋友都高。比自己还矮的树很容易测量出其高度,除非这棵树长满了刺。,2.16.2 分析,现实问题很少能用适合于编程的方式来表达。在编写代码之前,需要确保完全理解了问题及其解决方式。只有这样,才能估计出创建解决方案所需的时间和精力。分析阶段应增强对问题的理解,确定解决它的逻辑过程。一般这需要大量的工作,这包括找出问题阐述中模糊或遗漏的细节。只有全面理解了问题,才能开始以适合编程的形式表达解决方案。,2.16.3 解决方案,第一步获取计算树高需要的值。这意味着必须包含stdio.h头文件,因为需要使用printf()和scanf()函数。接着确定存储这些值的变量。之后,就可以使用printf()提示输入数字,使用scanf()从键盘上读取值。,2.17 小结,本章介绍了许多基础知识,讨论了C程序的构建方式、各种算术运算、如何选择合适的变量类型等。除了算术运算之外,还学习了输入输出功能,通过scanf()将值输入变量,通过Printf()函数把文本、字符值和数值变量输出到屏幕上。读者可能不能第一次就掌握所有这些内容,但可以在需要时复习本章。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号