资源预览内容
第1页 / 共50页
第2页 / 共50页
第3页 / 共50页
第4页 / 共50页
第5页 / 共50页
第6页 / 共50页
第7页 / 共50页
第8页 / 共50页
第9页 / 共50页
第10页 / 共50页
亲,该文档总共50页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
C语言程序基础,主讲教师:齐林海 控制与计算机工程学院,学习目标,掌握C语言程序的基本结构及C语言基本语法成分 理解C语言数据类型的概念,掌握整型、浮点型、字符型数据的存贮形式、取值范围、表示形式及基本运算 掌握格式输入输出函数的使用,理解输入输出格式字符串与输入输出数据间的匹配关系 通过模仿和改写简单例题,学习C语言程序的设计、编辑、调试。,C程序的基本结构,C程序基本结构三部分组成: 编译预处理命令; 主函数部分 子函数部分 函数部分主要是函数体; 说明部分 执行部分 执行部分包括三部分: 输入 计算处理; 输出,C语言程序的基本结构如下: 编译预处理命令 void main(void ) 声明部分 执行部分 类型 子函数名(形参表) 声明部分 执行部分 ,C语言基本语法成分,C语言的字符集 字母:小写字母az共26个,大写字母AZ共26个。在C语言中字母大小写是敏感的,即A和a是两个不同的变量,Name和name也是两个不同的变量; 数字:09共10个; 特殊符号:!、#、%、&、+、-、*、/、=、|、,、;、:、?、“、(、)、等。特别强调这些特殊符号一定是在英文输入状态下的输入符号; 空白符:空格符、制表符、换行符等统称为空白符。空白符出现在字符常量中,起到间隔作用,通常没有什么含义,对程序的编译不起作用,但是有利于阅读理解。,C语言基本语法成分,标识符 标识符用来标识变量名、符号常量名、函数名、数组名、类型名等; 注意:函数名中,C语言的库函数名是系统定义的,自定义函数由用户自行定义函数名; 标识符只能是字母(AZ,az)、数字(09)、下划线(_)组成的字符串,并且第一个字符必须是字母或下划线; 应用标识符注意 大小写敏感; 语法上,标识符长度没有限制; 标识符不能与关键字冲突(重名); 标识符命名要易于理解;,要注意字符与字母的区别!,C语言基本语法成分,关键字 C语言规定的具有特殊含义的字符串。关键字又称保留字; 用户定义的标识符不能与关键字相同; C语言的关键字共有32个: C语言的关键字都是小写; 运算符 运算符由一个或多个字符组成; + - * / &最常用的运算符; 运算符与变量、函数等一起组成表达式,完成某种运算;,C语言基本语法成分,分隔符 C语言中,分隔符有逗号、空格、Tab和回车等 逗号:主要用于在类型说明和函数参数表中分隔各个变量; 空格、Tab和和回车:多用于语句和各单词之间的间隔符; 在关键字或标识符之间必须要有一个或一个以上的分隔符作为间隔。,C语言数据类型概述,数据必须区分为不同的数据类型,这是因为数据处理时采用的方式和要求不同; 每一个数据都属于一个确定的、具体的数据类型; 不同的数据类型在数据表示形式、取值范围、占用内存空间大小、可参与的运算的种类等方面都有所不同;,C语言数据类型概述,数据类型,基本类型,构造类型,指针类型,空类型void,浮点型,字符型 char,枚举型 enum,整 型,short int int long int,float double,数组型,结构体型,共用体型,C语言的数据类型十分丰富,无论何种数据类型,都有常量变量之分; 常量:在程序执行过程中,常量的值不能由程序改变; 变量:在程序执行过程中,变量的值可以由程序改变; 无论是常量还是变量,在内存中都自己的存贮空间: 常量空间:在程序执行过程中,某个存贮空间中的内容保持不变,这个空间中的量成为常量; 变量空间:在程序执行过程中,某个存贮空间中的内容根据程序执行的情况发生改变,这个空间中的量成为变量; 无论是常量还是变量,它们的存贮空间都自己的命名: 常量名:存放常量的内存单元的名称; 变量名:存放变量的内存单元的名称;,C语言数据类型常量变量,注意: 变量名与变量值是两个股不同的概念!,C语言数据类型常量变量,常量或者变量根据所代表的数据类型,存贮空间大小不同; 常量或者变量的命名要能反映它们所表示的事务,即“见名知义”; 变量在使用前一定要先定义。定义要说明变量的名称和类型,这样系统会在内存中“开辟”相应的空间用于存放该变量,程序在执行过程中,只认准这个“房间”来取数即可。 常量通常在程序执行过程中,随时取用。但是有时在一个程序中反复用到某个常数,并且在程序调试时要不断调整这个常数,因此,也可以事先在内存中“开辟”一个空间单元,存放这个常数,每次调试时只修改这个单元的值即可,不用在源程序中逐个修改常数值。,注意: 变量、常量、函数、数组、类型等数据对象命名的有效字符序列统称为标识符!,C语言数据类型常量变量,#define PRICE 30 #include Void main( ) int num, total; num=10; total=num*PRICE; printf(“total=%dn“,total); ,PRICE是常量; num、total是变量;,“total=%dn“也是符号常量,其中, “total=”是真正的符号常量 “ %dn”是输出的符号格式描述;,“total=%dn“和PRICE是不同方式的常量 首先,一个是数值常量,另一个是字符常量; 其次,PRICE是事先定义, “total=”随用随取;,C语言数据类型常量变量,#define PI 3.14 #include main() int r1 , r2 ; float len1, len2, s1, s2; r1 = 10; r2 = 20; len1 = 2 * PI * r1; s1 = PI * r1* r1; printf(“len1=%f s1=%fn“,len1,s1); len2 = 2 * PI * r2; s2 = PI * r2 * r2; printf(“len2=%f s2=%fn“,len2,s2); ,PI是一个符号常量, 事先定义为3.14; 在程序中反复用到4次; 如果调试程序时,要调试 PI的取值精度,如PI取值 3.1415,则只修改预编译 中的符号常量定义语句即可,注意: 符号常量名用大写, 变量名用小写,C语言数据类型整型数据,整型常量即整型常数。整型常量有三种表现形式: 十进制整数,如123,-1234.5; 八进制整数,以0(零)开头的数是八进制数。注意不是以字母“O”开头;如0123,表示八进制123,对应十进制是83。-011,表示八进制-11,对应十进制为-9; 十六进制整数,以0x开头的数是十六进制数。注意比八进制多了一个x;如:0x123,表示十六进制数123,对应十进制数位291。-0x12,对应的十进制数为-18。,在C语言源程序中一定要注意整型常数的正确表达方式!,例题:以下选项中,能用作数据常量的是 A) o115 B) 0118 C) 1.5e1.5 D) 115L ; 答案为(D): A 答案错误是因为它要表达的意思是八进制 。但是八进制是以0开头。它是以o开头 ,所以错了。 B 答案错误是因为它是以0开头 所以是八进制 。但是八进制最大数为7 所以错了。 C 答案错误是因为这时C语言中的幂数表达法 但是e后面必须是整数 且e前后必须有数字 。 D 答案正确。它表示的是长整形数据。,C语言数据类型整型数据,整型变量在内存中的存放形式 数据在内存中是以二进制形式存放的; 不同C语言版本,存放整数的内容空间不同。 Turbo C 2.0和Turbo C+ 3.0为一个整型变量在内存中分配的空间为2个字节,即16个二进制位。 Visual C+6.0为一个整型变量在内存中分配的空间为4个字节,即32个二进制位。 Visual C+6.0用4个字节存放整数,所以它的取值范围为-21474836482147483647,即-231(231-1)。注意:在32为二进制中有1为符号位。另外整数是没有小数位的。,C语言数据类型整型数据,整型变量补码 计算机中的数值都是以补码形式表示的。 一个正整数的补码与它的原码是完全相同的; 一个负数的补码是原码的基础上变化而来的,变化的方法是: 取负整数的绝对值 对绝对值二进制数按位变反; 将变反后的二进制数加1;,C语言数据类型整型数据,例题:求-10的补码 取-10的绝对值为10 10是十进制,转换成二进制1010 C语言整型数占4个字节,二进制表示为 二进制数求反 加1得到补码结果,C语言数据类型整型数据,C语言数据类型整型数据,引入原码、反码和补码的目的就是为了解决减法问题; 计算机CPU的运算器中只有加法器,要把减法转化成加法来计算; 二进制数中,两数的补码之和等于两数和的补码; 补码反码+1 反码原码除符号位外其它数值取反(即该数的绝对值取反),即“0”变“1”,“1”变“0”; 任何正数的原码 反码 补码的形式完全相同(即都是自身,不变) 在计算机中,有符号的数都是采用补码来表示的; 计算的时候,符号位也参与运算。,C语言数据类型整型数据,整型变量分类 整型变量的基本类型符号为int; 可以根据数值范围将变量分为基本整型、短整型和长整型; 基本整型:int; 短整型:short int或short; 长整型:long int或long; 无符号类型整数(unsigned),可以节省1为符号位,增加整形数据的取数范围; 与无符号对应的就是有符号数(signed); 如果源程序中没有特别声明是否有符号,则缺省定义有符号。,C语言数据类型整型数据,整型变量的定义 对变量的定义一般是放在一个函数的开始部分的声明部分; #include void main( ) int a,b,c,d; unsigned u; a=12; b=24; u=10; c=a+u; d=b+u; printf(“a+u=%d,b+u=%dn”,c,d); ,C语言数据类型浮点型数据,浮点数就是实数; 浮点型常量两种表示方式: 十进制小数形式:由数字和小数点组成,必须有小数点。如:0.123、123.456、0.0; 指数形式:123e3(123*103)。注意e字母之前必须有数字,且e后面的指数必须为整数; 一个浮点数可以有多种指数表示方式:123.456可以有以下指数形式 123.456e0 12.3456e1 1.23456e2 0.123456e3 0.0123456e4 规范的指数形式:在字母e之前的小数部分中,小数点左边应有一位,且只能有有一位非零的数字;,C语言数据类型浮点型数据,浮点型变量在内存中的存在形式 一个浮点数在内存中行占4个字节(32位二进制); 浮点数是按照指数形式存贮。即按照小数部分和指数部分,分别存贮。指数部分采用规范化指数方式; 多少位二进制位表示小数部分?多少位二进制表示指数部分?不同版本的C语言有不同的规定; 大多数C语言规定:24为表示小数部分、8为表示指数部分; 小数部分占的位数越多,数据的有效数字越多,精度也越高; 指数部分占的位数越多,则能表示的数值范围越大; 浮点型变量分类 单精度:float(32位); 双精度:double(64位); 长双精度:long double(128位);,C语言数据类型字符型数据,字符常量 用单引号括起来的一个字符; a、A、?; 以“”符号开头的字符序列,表示一个字符常量; n 对应换行符; r 对应回车符; t 对应跳格符号。跳到下一个Tab位置; b 对应退格符; 对应反斜杠符; 对应单引号符号; ” 对应双引号符号; 65 对应字符A; 97 对应字母a;,C语言数据类型字符型数据,字符常量 #include void main(
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号