




已阅读5页,还剩49页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章 C语言程序设计基础,2.1 C语言程序的基本语法结构,2.1.1 主函数main() main()函数的常见结构如下所示。 void main() /*函数体*/ ,如果需要在程序执行时接受命令行参数,则main()函数的格式如下。 void main(int argc ,char * argv ) ,本书中,在多数情况下,都不需要向main()函数传递参数,因此,都采用没有参数(即只有空括号)的格式。当然,也可以使用更严谨一些的格式,如下所示: void main(void) ,2.1.2 单行语句与复合语句,1单行语句 C语言程序中单行语句的最后都是分号(;),这是C语言程序的语句结束符号,所有的C语言语句都必须以分号结束。 需要注意,C语言中的单行语句并不是说该语句只占一行,而是指以分号结束的语句。,2复合语句,在程序中,有时需要将相邻的数条语句作为一个整体来执行,就可以将这些语句用花括号括起来,成为一个复合语句,也称为语句块。,2.1.3 空语句与分隔符,1空语句 空语句仅起到占位的作用,以便以后对语句进行充实。 2分隔符 在C语言中采用的分隔符有逗号和空格两种。逗号主要用在类型说明和函数参数表中,分隔各个变量。,逗号也可用来分隔同行中的几个表达式,它主要用作将几行短语句合成一句,简化程序书写。 空格多用于语句各单词之间,做间隔符。 在关键字,标识符之间必须要有一个以上的空格符做间隔,否则将会出现语法错误。,3注释,C语言的注释符是以“/*”开头并以“*/”结尾的串。在“/*”和“*/”之间的即为注释。程序编译时,将忽略注释,不对注释作任何处理。 注释可出现在程序中的任何位置,用来向用户提示或解释程序的意义。,2.1.4 C语言程序的结构特点,一个C语言源程序可以由一个或多个程序源文件组成,每个源文件可包含一个或多个函数。 一个源程序不论由多少个文件组成,都有一个且只能有一个main函数,即主函数。,源程序中可以有预处理命令(include 命令仅为其中的一种),预处理命令通常应放在源文件或源程序的最前面。 每一个说明,每一个语句都必须以分号结尾。但预处理命令,函数头和花括号“”之后不能加分号。,标识符、关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符,也可不再加空格来间隔。,2.2 C语言的基础元素,2.2.1 标识符与关键字 1标识符 在C语言程序中,标识符由18个字符组成。构成标识符的字符只能是下划线“_”、数字(09)和英文字母,并且标识符的第一个字符只能是下划线或英文字母。,C语言是一种对字母大小写敏感的语言,定义标识符时必须注意字母的大小写。 在使用标识符时还必须注意以下几点。, 标准C语言不限制标识符的长度,但它受各种版本的C 语言编译系统限制,同时也受到具体机器的限制。例如在某版本C语言中规定标识符前八位有效,当两个标识符前八位相同时,则被认为是同一个标识符。, 在标识符中,大小写是有区别的。例如BOOK和book 是两个不同的标识符。 标识符虽然可由程序员随意定义,但标识符是用于标识某个量的符号。因此,命名应尽量有相应的意义,以便阅读理解,作到“顾名思义”。,2关键字,在C语言程序中,还有一类特殊的标识符,它们仅供系统专用,不能用来作为用户定义的标识符,这就是关键字。关键字是有特殊含义的系统保留标识符,因此又称为系统保留字。 关键字是由语言规定的具有特定意义的字符串,用户定义的标识符不应与关键字相同。C语言的关键字分为以下几类。,(1)类型说明符。 用于定义、说明变量、函数或其他数据结构的类型。如前面例题中用到的int,double等。,(2)语句定义符。 用于表示一个语句的功能。如例1.3中用到的if else就是条件语句的语句定义符。 (3)预处理命令字。 用于表示一个预处理命令。如前面各例中用到的include。,2.2.2 常量与变量,1变量 变量是指在程序运行过程中,值可以发生变化的量。 (1)变量的定义 变量定义的一般形式如下。 数据类型 变量名表;,(2)给变量赋初值 类型说明符 变量1= 值1,变量2= 值2,;,2常量,与变量的定义相反,常量是指在程序运行过程中不能发生改变的量。 常量的类型通常有5种:整型、实型、字符型、字符串型和符号常量。,(1)整型常量 整型常量就是整数,可以是十进制、八进制(以0开头)或十六进制数(以0x或0X开头)的整数。,(2)实型常量 实型常量也称为浮点常数,它是带小数位的数值。其表现形式可以是小数,也可以是指数。,(3)字符型常量 字符型常量是括在半角单引号内的一个字符。这些字符通常是ASCII码字符,它们的值即该字符的ASCII码值。,(4)字符串常量 字符串常量是由半角双引号括起来的字符序列。字符串常量与字符常量有严格的不同,编译程序在每个字符串的后面自动加上一个空字符0以示区别。,(5)符号常量 符号常量是指以标识符形式出现的常量,C语言中符号常量使用编译预处理命令#define来定义,符号常量定义形式如下: #define 常量名 值,(6)转义字符 在C语言中,还有一种特殊的字符常量,它是以反斜杠“”开头的字符序列,称之为转义字符。 与普通字符不同,转义字符序列表达的不再是字符表面的意义,而是一个特殊的ASCII码字符,因此也可以用该字符的ASCII码值来表示。,2.2.3 数据类型,C语言提供了丰富的数据类型,可以分为两个大类:基本类型和构造数据类型。 基本数据类型最主要的特点是不可以再分解为其他类型。也就是说,基本数据类型是自我说明的。,构造数据类型是根据已定义的一个或多个数据类型用构造的方法来定义的。也就是说,一个构造类型的值可以分解成若干个“成员”或“元素”。每个“成员”都是一个基本数据类型或又是一个构造类型。,在C语言中,构造类型有以下几种: 数组类型 结构类型 联合类型 本节主要学习基本数据类型。,1整型,整型用于存储整数,其值可以是十进制、八进制或十六进制的数。整型变量用关键字int来定义。 此外,整型还可以与short、long、signed、unsigned等修饰符合用,构成新的类型。例如:short int 表示短整型,long int 表示长整型,singned int表示有符号整型,unsigned int表示无符号整型。,2浮点型,浮点型也称为实型单精度类型或实型,常用来表示小数或超出整型范围的数值。 浮点型变量用关键字float来定义。,3双精度型,双精度型常用于很大的数值或要求精确度的科学计算。 双精度变量用关键字double来定义。,4字符型,字符型是用于表示ASCII字符的数据类型。 字符变量用关键字char来定义。,5无值型,无值型用关键字void来定义,无值型是一类特殊的类型,常用在函数定义中,表示函数无返回值。,6用户自定义类型,除系统提供的数据类型之外,C语言还允许用户自定义数据类型。定义形式如下: typedef 类型名 新类型名;,2.2.4 格式化输出函数printf(),1printf()函数及其应用 2指定输出宽度与小数位 3设置前导0 4输出长整型数与双精度浮点数 5对齐方式,2.2.5 格式化输入函数scanf(),1scanf()函数的基本用法 2格式化字符串中非格式字符的处理 3字符串输入与宽度控制 4指定输入数据的范围,2.2.6 非格式化输入/输出函数,1字符串输出函数puts() 2字符串输入函数gets() 3字符输出函数putchar() 4字符输入函数getch()和getche() 5getchar()函数,2.3 C语言的运算符与表达式,2.3.1 运算符与表达式 C语言的运算符又称为操作符,是数据间进行运算的符号。C语言的运算符按运算类型可分为赋值运算符、算术运算符、逻辑运算符、关系运算符、位运算符、指针运算符和取成员运算符等;按运算对象(又称为操作数)的个数又可分为单目运算符、双目运算符和三目运算符。,将数据或变量用运算符连接起来,就构成了C语言的表达式。表达式是按照一定规则,将运算对象用运算符连接起来的有意义的式子。表达式中的运算对象可以是常量、变量、函数,也可以是别的表达式。,2.3.2 算术运算、赋值运算与类型转换,1算术运算符与算术表达式 C语言中的算术运算符包括5个双目运算符:加“+”、减“”、乘“*”、除“/”、求余(取模)“%”及4个单目运算符:自增“+”、自减“”、单目加“+”和单目减(算术取反)“”,此外还有圆括号“()”运算符,它可以用来改变运算的顺序。,由算术运算符与数值、变量等构成的表达式称为算术表达式。,2赋值运算符与赋值表达式,赋值运算用于改变变量的值。C语言中提供了1个简单赋值运算符“=”和10个复合赋值运算符:+=、=、*=、/=、%=、=、&=、=和|=。,3类型转换运算符,在表达式中,当混合使用不同类型的数据时,C语言中将对其类型自动进行转换,这种转换一般是“向上”的,即由占存储空间小的数据类型向占存储空间大的数据类型转换。,2.3.3 关系运算、逻辑运算与条件运算,1关系运算符与关系表达式 在程序中经常需要比较两个量的大小关系,以决定程序下一步的工作。比较两个量的运算符称为关系运算符。,关系运算用于对操作数之间的关系进行运算,其实质是操作数间的比较,以判断两个操作数是否符合给定的关系,如符合给定的关系,运算的结果为“真”,否则,运算的结果为“假”。,2逻辑运算符与逻辑表达式,逻辑运算由逻辑运算符来完成,逻辑运算符共有3个: & 逻辑与 | 逻辑或 ! 逻辑非,逻辑运算的规则如下所示: a & b /* 只有当a与b的值均为真时,运算结果为真(1),否则为假(0)*/ a | b /* 只有当a与b的值均为假时,运算结果为假(0),否则为真(1)*/ !a /* 当a值为真时,结果为假(0);当a为假时,结果为真(1) */,在与前面学过的其他类型运算符进行比较时,具有如下关系:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年应急管理部所属单位第二批次招聘185人考前自测高频考点模拟试题及答案详解(新)
- 2025年福州左海置地有限公司副总经理职业经理人市场化选聘模拟试卷有答案详解
- 2025安徽工程大学硕士专职辅导员招聘8人考前自测高频考点模拟试题及完整答案详解
- 2025甘肃甘南玛曲县警务辅助人员招聘20人模拟试卷及答案详解(名校卷)
- 浙江国企招聘2025年台州市住房公积金管理中心临海分中心下属国有企业公开招聘工作人员笔试历年参考题库附带答案详解
- 2025湖南邵阳市中心医院住院医师规范化培训招录65人模拟试卷附答案详解(黄金题型)
- 2025重庆艺术大市场有限公司招聘1人笔试历年参考题库附带答案详解
- 2025贵州民族大学高层次人才引进考前自测高频考点模拟试题附答案详解(考试直接用)
- 2025贵州盐业(集团)遵义有限责任公司招聘15人笔试历年参考题库附带答案详解
- 2025福建福州福清市土投土地开发有限公司招聘劳务派遣1人笔试历年参考题库附带答案详解
- 2025年“学宪法、讲宪法”主题活动知识竞赛题库及答案
- 2024年毕节威宁自治县招聘城市社区工作者真题
- 医院感染管理办法
- 智慧校园XXX学院总体解决方案
- 2025年电子专用设备制造行业研究报告及未来行业发展趋势预测
- BIM 建模基础与应用教学教案
- 2025至2030年中国工艺美术品行业市场前景预测及投资战略研究报告
- 国庆中秋课件
- 滚筒干燥机设计毕业设计
- 真空包装机作业指导书
- 2023年上海16区高考一模英语听力合集附音频含答案含原文
评论
0/150
提交评论