版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1第2章C语言基本概念主要内容C语言中相关概念简单程序的一般形式注释变量和赋值定义常量的名字标识符程序设计的5个环节2主要内容C语言中相关概念简单程序的一般形式注释变量和赋值定义常量的名字标识符程序设计的5个环节3C语言中相关的概念源程序使用程序设计语言编写的程序;计算机不能够直接运行,需要转换成计算机能够识别的代码形式。4#include int main(void) printf(To C, or not to C: that is the question.n); return 0;如何让编写的程序在计算机中执行呢?5名词约定原文直译译稿润色预处理编译链接C语言中相关的概念预处理执行以#
2、开头的指令,对程序添加内容或进行修改;6#include int main(void) printf(To C, or not to C: that is the question.n); return 0;C语言中相关的概念编译把预处理后的程序翻译成机器指令;通过编译程序完成;形成目标代码;链接把目标代码和所需的其他附加代码整合在一起,产生完全可执行的程序;7C语言中相关的概念注意:通常情况下,预处理器、编译器和连接器通常情况下集成在一起,有时为方便也将从源程序转换为可执行程序的过程统称编译。使用不同的编译器和不同的操作系统,编译程序的方法和过程是不一样的;同一个源程序使用不同的编译器,可运
3、行于不同结构和不同操作系统下,即程序可移植。8C语言中相关的概念集成开发环境是一个软件包,可以完成编辑、编译、链接、执行和调试程序;Visiual Studio系列;Eclipse+minGW;9主要内容C语言中相关概念简单程序的一般形式注释变量和赋值定义常量的名字标识符程序设计的5个环节10简单程序的一般形式#include int main(void) printf(To C, or not to C: that is the question.n); return 0;11指令函数语句 3个关键的语言特性简单程序的一般形式指令在编译C程序之前,预处理器会首先对其进行编辑。预处理器执行的命
4、令称为指令。#include表示:编译前将中的信息包含到程序中;C语言有大量的类似文件,称为头文件(header),包含一些标准库的内容。如C语言没有内置的专门的输入输出命令,输入输出依赖于标准库中的函数进行。12简单程序的一般形式指令指令以# 符号开始;指令行上没有符号;13简单程序的一般形式Simple C programs have the form指令(directives) int main(void) 语句(statements)14简单程序的一般形式函数函数是一系列组合在一起并赋予了名字的语句.库函数是作为C语言实现的一部分提供的函数。如:sin(x)函数函数使用return语句
5、返回数值,如: return x + 1;15简单程序的一般形式main 函数main 是特殊函数:当程序开始运行时其会被系统自动调用。 函数返回状态值: 返回值为0表示程序正常终止;If theres no return statement at the end of the main function, many compilers will produce a warning message.16简单程序的一般形式语句语句是程序运行时执行的命令。函数是构成语句的重要元素;要求某个函数执行分派给它的任务称为调用该函数;每条语句要以;号结束(以;号向编译器标明语句结束)1718#includ
6、e int main(void) printf(To C, or not to C: that is the question.n); return 0;函数调用语句(function call)返回语句简单程序的一般形式函数VS语句函数是一系列组合在一起并赋予了名字的语句;函数调用可以构成语句;19简单程序的一般形式显示字符串使用printf函数显示字符串字面量 ( string literal)要显示的串需要用双引号包围起来.printf 函数不会自动跳到下一行输出.使用换行符n ( new-line character) 实现换行. 20换行符printf(To C, or not to
7、 C: that is the question.n);主要内容C语言中相关的概念简单程序的一般形式注释变量和赋值定义常量的名字标识符程序设计的5个环节21注释每一个程序都应当包含识别信息,包括程序名、编写日期、作者、程序的用途及其他相关的信息;便于程序的阅读和修改;即使是自己写的程序,在3个月后若没有注释的帮助要读懂程序也很难!在编写程序是要在关键部位做好注释,有时甚至注释比程序本身还长;22注释注释以/*开始,以 */结束,如:/* This is a comment */注释可以出现在任何位置,对编译没有任何影响;多行注释的写法/* Name: pun.c Purpose: Prints
8、 a bad pun. Author: K. N. King */23注释下列程序的输出是什么?:printf(My ); /* forgot to close this comment. printf(cat );printf(has ); /* so it ends here */printf(fleas);24写注释时一定要注意其完整性!Comments in C99In C99, comments can also be written in the following way:/ This is a comment这种注释自动在行末结束;Advantages of / comment
9、s:Safe: theres no chance that an unterminated comment will accidentally consume part of a program.Multiline comments stand out better.25主要内容C语言中相关的概念简单程序的一般形式注释变量和赋值定义常量的名字标识符程序设计的5个环节26变量和赋值大多数程序需要在程序执行过程中有需要临时存储的数据。如计算平均值,需要先保存和C语言中这类存储单元称为变量( variables )27变量和赋值变量类型(type)每个变量必须有类型C语言拥有广泛多样的数据类型;类型
10、会影响变量的存储方式及允许对变量的操作,故正确选择类型非常关键。28变量和赋值int类型存储诸如0, 1, 392, or 2553的数据.能够存储的最大整数跟计算机的结构密切相关对32位计算机,最大int型数是2,147,483,647 ;对16位机来说,最大int型数32,767.29变量和赋值float类型float型变量(floating-point)能存储比int型大得多的数值; 如379.125可用float存储.float 型变量缺点:运算慢大多数情况下所存储的值仅是实际数值的近似值;因此一般情况下不能判断两个float型变量是否相等;30变量和赋值声明变量在使用前必须声明;声明
11、格式:类型 变量名;一次声明一个变量int height;float profit;一次声明多个类型相同的变量int height, length, width, volume;float profit, loss;31变量和赋值声明声明必须放置在语句之前,如:int main(void) 声明(declarations) 语句(statements) 注意:C99标准中, 声明可以不再语句之前。32变量和赋值赋值变量通过赋值(assignment)的方式获得值,如:height = 8;其中8是常数。33赋值运算符变量必须先声明再赋值.变量和赋值赋值A constant assigned t
12、o a float variable usually contains a decimal point:profit = 2150.48;Its best to append the letter f to a floating-point constant if it is assigned to a float variable:profit = 2150.48f;34变量和赋值赋值混合赋值(像给一个float型变量赋int值或给int变量赋float值)是允许的,但不安全!如:int a;float b;a=2.5;b=335变量和赋值赋值一旦变量被赋值,就可以用于计算其他变量的值,如:
13、height = 8;length = 12;width = 10;volume = height * length * width; /* volume is now 960 */36表达式变量和赋值显示变量值printf 函数可用于显示变量当前值.显示如下信息: Height: h 使用如下的printf函数调用: printf(Height: %dn, height);占位符%d用于指明在显示过程中变量height的值的显示位置;显示float型变量时,用%f代替%d即可;37变量和赋值显示变量值用printf函数显示多个变量的值:printf(Height: %d Length: %d
14、n, height, length);38举例: 计算箱子的空间重量运输公司对大而轻的箱子按照体积收取额外的费用,通常采用空间重量的方法判断一个箱子究竟该如何收费。把体积除以166,若商大于实际重量,运费就按空间来计算。设计程序 dweight.c计算给定盒子的空间重量:Dimensions: 12x10 x8Volume (cubic inches): 960Dimensional weight (pounds): 639举例: 计算箱子的空间重量C语言中除法使用/,因此有:weight = volume / 166;但在C语言中,两个整数相除,结果会被“截短”,如:The volume o
15、f a 12” 10” 8” box will be 960 cubic inches.Dividing by 166 gives 5 instead of 5.783.40举例: 计算箱子的空间重量运输公司希望向上取整;一种处理方法是在做除法除以166前加上165:weight = (volume + 165) / 166;A volume of 166 would give a weight of 331/166, or 1, while a volume of 167 would yield 332/166, or 2.41dweight.c/* Computes the dimensi
16、onal weight of a 12 x 10 x 8 box */#include int main(void) /*定义盒子尺寸及体积、重量*/ int height, length, width, volume, weight;/*变量初始化*/ height = 8; length = 12; width = 10; volume = height * length * width; /*计算体积*/ weight = (volume + 165) / 166; /*计算重量*/*输出结果*/ printf(Dimensions: %dx%dx%dn, length, width,
17、height); printf(Volume (cubic inches): %dn, volume); printf(Dimensional weight (pounds): %dn, weight); return 0;42变量和赋值 初始化(Initialization)有一些变量在程序运行时置0,但大多数变量不会,若访问会得到不可预知的后果;没有默认值且未赋予值的变量是未初始化的(uninitialized)不要访问未初始化的变量!43变量和赋值 初始化(Initialization)包含在声明中的初始化:int height = 8;同一声明中对任意个变量初始化:int height
18、 = 8, length = 12, width = 10;每个变量必须独立初始化.int height, length, width = 10; /* initializes only width */44变量和赋值 显示表达式的值printf 可以显示任意数值表达式的值;如下语句: volume = height * length * width;printf(%dn, volume);可以用下列语句替代printf(%dn, height * length * width);45表达式dweight.c/* Computes the dimensional weight of a 12
19、x 10 x 8 box */#include int main(void) /*定义盒子尺寸及体积、重量*/ int height, length, width, volume, weight;/*变量初始化*/ height = 8; length = 12; width = 10; volume = height * length * width; /*计算体积*/ weight = (volume + 165) / 166; /*计算重量*/*输出结果*/ printf(Dimensions: %dx%dx%dn, length, width, height); printf(Volu
20、me (cubic inches): %dn, volume); printf(Dimensional weight (pounds): %dn, weight); return 0;46要计算另一个箱子尺寸必须要修改程序!变量和赋值-输入数据scanf函数scanf 需要使用格式串(format string)来指定输入数据,如:scanf(%d, &i);/* 读取一个整数存入i */The & symbol is usually (but not always) required when using scanf.47变量和赋值-输入数据scanf读入float型数据:scanf(%f,
21、 &x);%f tells scanf to look for an input value in float format (the number may contain a decimal point).48例:计算箱子的空间重量(Revisited)要求用户输入箱子的尺寸,计算空间质量每用scanf函数输入一个数据,用printf函数显示出来;49dweight2.c/* Computes the dimensional weight of a box from input provided by the user */#include int main(void) int height
22、, length, width, volume, weight; printf(Enter height of box: ); scanf(%d, &height); printf(Enter length of box: ); scanf(%d, &length); printf(Enter width of box: ); scanf(%d, &width); volume = height * length * width; weight = (volume + 165) / 166; printf(Volume (cubic inches): %dn, volume); printf(
23、Dimensional weight (pounds): %dn, weight); return 0;50计算箱子的空间重量(Revisited)Sample output of program:Enter height of box: 8Enter length of box: 12Enter width of box: 10Volume (cubic inches): 960Dimensional weight (pounds): 651主要内容C语言中相关的概念简单程序的一般形式注释变量和赋值定义常量的名字标识符程序设计的5个环节52定义常量的名字在计算箱子空间质量的时,采用了常数16
24、6,但有两个缺陷:后期程序阅读时,有些人可能不知道其含义;若以后标准修改了,得替换程序中所有的166,易漏掉采用宏定义(macro definition)的方法可以完美解决该问题#define INCHES_PER_POUND 16653定义常量的名字程序编译时,预处理程序会将所有的宏替换为其表示的值.如:weight = (volume + INCHES_PER_POUND - 1) / INCHES_PER_POUND;变成weight = (volume + 166 - 1) / 166;54定义常量的名字角度转换为弧度时会用到1/3.1415926;可以使用:#define RECIP
25、ROCAL_OF_PI (1.0f / 3.14159f)55注意:宏定义通常只使用大写字母,也算是不成文的约定,给程序员以明确的标示。举例:华氏温度转换为摄氏温度转换公式:C=(F-32)*(5/9);里面有两个常数32和5/9,可以采用宏定义的方法定义常数;56celsius.c/* Converts a Fahrenheit temperature to Celsius */#include #define FREEZING_PT 32.0f#define SCALE_FACTOR (5.0f / 9.0f)int main(void) float fahrenheit, celsius
26、; printf(Enter Fahrenheit temperature: ); scanf(%f, &fahrenheit); celsius = (fahrenheit - FREEZING_PT) * SCALE_FACTOR; printf(Celsius equivalent: %.1fn, celsius); return 0;57Program: Converting fromFahrenheit to CelsiusDefining SCALE_FACTOR to be (5.0f / 9.0f) instead of (5 / 9) is important.Note th
27、e use of %.1f to display celsius with just one digit after the decimal point.58主要内容C语言中相关的概念简单程序的一般形式注释变量和赋值定义常量的名字标识符程序设计的5个环节59标示符编程时需要变量、函数、宏及其他实体进行命名,这些名称统称标识符(identifier)C语言中标示符可以含有字母、数字和下划线,但必须以字母或下划线开头;如:times10 get_next_char _done下列是不合法的标识符:10times get-next-char60标示符C语言大小写敏感(case-sensitive),
28、下述变量在C语言中是不同变量:job joB jOb jOB Job JoB JOb JOB61标识符有些程序员习惯于只用小写字母写标识符(宏除外):symbol_table current_page name_and_address有些程序员习惯大写每个词的首字母:symbolTable currentPage nameAndAddress标示符尽量使用能够说明该标识符表示含义的词或词的组合表示,以正确程序的可读性;62C语言关键字( keywords )The following keywords cant be used as identifiers:auto enum restrict* unsignedbreak extern return voidcase float short volat
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 水利水电工程管理与实务一级建造师考试试题及答案指导(2024年)
- 2024年度家居油漆翻新工程承包协议
- 2024年员工保密义务协议精简
- 2024年家居装修垃圾处理协议
- 2024年土地抵押融资协议样本
- 2024年叉车操作工劳动协议
- 2024年繁华街区门面房销售协议
- 2024年卫生间改造工程协议
- 2024年商业保密协议规范格式
- 2024年个人间贷款协议示范文本
- 化验室安全操作
- MOOC 摄影艺术创作-中国传媒大学 中国大学慕课答案
- 劳务外包服务 投标方案(技术方案)
- 快消品品牌推广方案
- 安能代理合同
- 2024年公安机关接处警工作规范
- 皮带机维护与管理策略收藏
- 大型活动策划方案流程
- 2024届新结构“8+3+3”选填限时训练11~20(学生版)
- 人教版九年级上册 第五单元 化学方程式(复习)(教学设计)
- 2023.秋期版国开电大专科《人力资源管理》机考问答题库(珍藏版)
评论
0/150
提交评论