第1讲 C语言基础.ppt
《第1讲 C语言基础.ppt》由会员分享,可在线阅读,更多相关《第1讲 C语言基础.ppt(68页珍藏版)》请在麦多课文档分享上搜索。
1、第1讲 C语言基础,要求: (1) C程序的组成 (2) C语言的标识符是如何定义的。 (3) C语言有哪些基本数据类型?各种基本数据类型的常量和变量是如何定义的? (4) C语言有几种类型的表达式?各种类型表达式是如何求值的? (5) 在C语言混合运算的表达式中,各种运算符的优先级和结合性。,一、C程序的组成,C程序,函数组成,由若干,函数说明部分,函数体,函数类型说明,函数名,函数形参,形参类型说明,变量定义部分,执行部分,int sum( x, y )int x, y; int z;z=x+y;retrun z;,int sum(int x, int y) int z;z=x+y;ret
2、run z;,例如:,等价,(函数首部),1 C程序中必有且仅有一个main( )函数,程序从main( )开始执行,并且在main( )中结束。2 每一个说明,每一个语句都必须以分号“;”结尾。但预处理命令,函数头和花括号“”之后不能加分号。3 C 语言的注释符是以“/*”开头并以“*/”结尾的串。在“/*”和“*/”之间的即为注释。在TC+中,注释符以“/” 开始,到本行结束。 例如:int a ,b; / 定义2个整型变量,C 的数据类型,C语言的基本符号,1. 基本符号: 26个英文字母包括大写和小写,C 中大小写字母被认为是两个不同的字符。 数字 09。 特殊符号:如 初等量表达式操
3、作符:( ), ,. ,; 一元操作符:*, 逗号操作符:,;,2. 标识符用来表示变量名、符号常量名、函数名、数组名、类型名、文件名等的有效字符序列 。 标识符的组成:由字母、数字、下划线(-)组成,且第一个字符必须是字母或下划线。注意:C语言中 大、小写字母被认为是两个不同的字符: sum 和SUM。例 sum, _total, lotus_1, A1, B123 为合法的标识符。而 M. John, 1A, $3.33 不合法。 标识符字符序列长度 ANSI C 无规定。 一般取前8位,例:student_number, student_name 不能区分stu_number, stu_
4、name 能区分, 标识符分类:(分3类)关键字:32个,一般用小写字母。 数据类型关键字(12个):char, double, enum, float, int, long, short, signed, struct, union, unsigned, void 控制语句关键字(12个):break, case, continue, default, do, else, for, goto, if, return, switch, while 存储类型关键字(4个):auto, extern, register, static其它关键字(4个):const, sizeof, typedef
5、, volatile预定义标识符:如 printf( ), scanf( ), define, include.用户定义的标识符一般应选用有一定含义的字符串,以便于程序阅读。, 选择题:以下选项中,均是不合法的用户标识符是 ( )。A) A B) float C) b-a D) _123P_0 1a0 go# temp do _A int INT,3.2 常量与变量,常量,常量在程序运行过程中其值不能被改变的量。常量有不同的类型, 如 0,-3,4.6,-1.23,a, d, A 分别为不同类型。常量一般从其字面形式即可判别类型,这种常量称为字面常量或直接常量。,1. 直接常量如 12、0、-
6、3 整型, 45l 长整型 4.6、-1.23 实型a、101、D 字符型 “abc”、“1024” 字符串 (字符数组 ),2. 符号常量 格式 #define 标识符 常数如 #define PRICE 30,习惯上符号常量名用大写,变量名用小写,以示区别。 使用符号常量的好处是: 含义清楚。 在需要改变一个常量时能做到“一改全改”。 注意: 符号常量不能再被赋值. 要避免产生岐义(宏定义),变量,变量 其值可以改变的量称为变量。 一个变量应该有一个名字 变量名,用合法的标识符表示在内存占据一定的存储单元,在该内存单元中存放变量的值。应注意区分变量名和变量值这两个不同的概念:变量名实际上是
7、一个符号地址,在对程序编译连接时由系统给每一个变量名分配一个内存地址。在程序中从变量中取值,实际上是通过变量名找到相应的内存地址,从其存储单元中读取数据。,C语言中,要求对所有用到的变量作强制定义,即先定义后使用, 这样可以: 确保程序中变量名的正确。 一个变量一经定义,在编译时就可以为其分配相应的存储单元。 由于每个变量都有一个类型,因此在编译时可以检查该变量所进行的运算是否合法。,注意 1. 变量名和变量值是不同的。如: x=3.14 变量名 x 变量值 3.14 2. 变量名由字母、数字、下划线组成,由字母、下划线开头 3. 大写字母和小写字母是不同的,一般用小写字母如:sum 和 SU
8、M 是两个变量名 4. 变量名应“见名知意” 如:sum、count、total 5. 变量应“先定义,后使用”,未定义的不得使用6. 每一变量有一确定类型 如:int, float,char 7. 尽量避免用容易混淆的字符 如: o和0, l和1, z和2,整型数据,整型常量的表示法即整常数,C语言中有以下三种表示形式:1. 十进制: 如 123 0 -4562. 八进制: 以0开头的数即认为是八进制数。如 0123 即八进制的123, 相当于十进制的833. 十六进制: 以0x或0X开头的数即认为是十六进制数。如 0x123 即十六进制的123, 相当于十进制的291 。, 选择题:以下选
9、项中,均是合法的整型常量的选项是 ( )。A) 160 B) -0xcdf C) -01 D) -0x48a-0xffff 01a 986,012 2e5 011 0xe 0668 0x,补充 数制转换,1. 十进制 八进制(二、十六进制)整数转换:除8取余,例如 (175)10=(257)8,175,21,2,8,8,余数 7 5,读数:,2.八进制(二、十六进制)十进制 整数转换:,(11001)- 1*24 +1*23 +0*22 +0*21 +1*20 = 16 + 8 + 0 + 0 + 1= (25)10,1. 整型数椐在内存中存放形式数椐在内存中是以二进制形式存放的,每一个整型变
10、量在内存中占两个字节。 如 定义一个整型变量 i : int i=10;10 的二进制表示为1010, 内存中的存储形式为: 00000000 00001010,实际上,在计算机中数值是以补码表示的。一个正数的补码和其原码相同,负数的补码为其绝对值的二进制形式按位取反再加1。例如,若 i=-10; 二进制表示为: 00000000 00001010 10的原码 11111111 11110101 10的反码 11111111 11110110 -10的补码,补充 原码、反码、补码的概念 原码 存储单元的最高位为符号位,其0为正,1为负,值为二进制,补码 补码=反码+1,反码 代码的0变为1,
11、1变为0,注意 正数的原码、反码、补码是一样的,例 (-10)10 1000 0000 0000 1010 - 原码 求反 1111 1111 1111 0101 - 反码 +1 1- 1111 1111 1111 0110 - 补码,2. 整型变量的分类可以根据数值的范围将整型变量定义为基本整型、短整型或长整型。 基本型: 以 int 表示,变量的值范围为 -3276832767。 短整型: 以 short int 或 short 表示 长整型: 以 long int 或 long 表示为了充分利用变量的表数范围,可以不设符号位,而用全部二进位存放数据,只存放不带符号的整数,即定义无符号型。
12、可以有无符号整型( unsigned int )、无符号短整型( unsigned short )、无符号长整型 ( unsigned long )。归纳起来,可以使用以下6 类整型变量:int unsigned intshort int unsigned short intlong int unsigned long intC 标准并没有具体规定以上各类数据所占内存字节数,只要求long型数据长度不短于int 型,short 型不长于int 型。,例1 整型变量的定义和使用main( ) int a,b,c,d; /* 定义整型变量 */unsigned int u; /* 定义无符号整型变
13、量 */a=12;b=-24;u=10;c=a+u;d=b+u;printf(“a+u=%d , b+u=%dn“,c,d );,运行结果: a+u=22, b+u=-14,可以看到:不同种类的整型数据可以进行算术运算.,3. 整型变量的定义(强制类型定义):int a, b; - a,b定义为整型unsigned short c, d; - c,d定义为无符号短整型long e, f; - e,f定义为长整型变量定义一般放在函数的开头部分的声明部分。,4. 整型数据的溢出例 2 整型数据的溢出main( ) int a,b;a=32767;b=a+1;printf(“%d , %d “, a
14、,b );,a: 0111111111111111 32767 b: 1000000000000000 -32768,运行结果:32767 , -32768,一个 整型变量只能容纳 -3276832767(-215 215-1 ) 范围内的数,无法表示大于32767 的数,遇此情况就发生“溢出”。 (教材P43表),实型数据,实型常量的表示法C语言中的实数又称浮点数,有两种表示形式: 1. 十进制数形式:由数字和小数点组成(必须有小数点)。如 0.123 .123 123. 0.0 2. 指数形式:由数字、字母E (或 e ) 和小数点组成,且E 后面必须是整数,E 前面必须要有数字 。如 1
15、23e3 1.23e6 123.4E2规范化的指数形式:在字母e 或E 之前的小数部分中,小数点左边有且只有一位非零数字。 如 1.23e, 选择题:以下选项中,均是不合法的实型常量的选项是 ( )。A) 160. B) 123 C) -.18 D) -e30.12 2e4.2 123e4 .234 e3 . e5 0.0 1e3,实型变量 1. 实型数据在内存中的存放形式一个实型数据一般在内存中占用四个字节(32位),按照指数形式存储。 例如,3.14159 按照 “ +0.314159e1” 形式存储。在4个字节中,究竟用多少位来表示小数部分、多少位来表示指数部分,标准C 并无具体规定,完
16、全由各编译系统自定。小数部分占的位数越多,数的有效数字越多,精度越高。指数部分占的位数越多,则能表示的数值范围越大。单精度float型(32 bit,67位有效数字)2. 实型变量的分类 双精度double型(64 bit,1516位有效数字)3. 实型变量的定义: 每个实型变量也必须在使用之前定义例如 float x,y; -定义 x 和 y 为单精度型变量double z; -定义 z 为双精度型变量单精度与双精度只是数据的有效位数不同.。,4. 实型数据的舍入误差由于实型变量是由有限的存储单元组成的,因此能提供的有效数字总是有限的,在有效位以外的数字将被舍去,由此可能会产生误差(四舍五入
17、)。例3main( ) float a,b;a=123456.789e5;b=a+20;printf(“ %f “,b);,运行结果:12345678848. 000000这是因为一个实型变量只能保证7位数字有效。 注意:应避免将一个很大的数和一个很小的数相加或相减。,a:12345678900 b:12345678920 ?,一、 字符常量C的字符常量是指用单引号括起来的一个字符, 如 a, A, $ 等, 除上述字符常量之外,C中还允许一种特殊字符常量,即以 “ 开头的字符序列, 称为“转义字符“,意思是将 “ ” 后面的字符转变成另外的意义。n 换行t 水平制表(跳到下一个tab位) (
18、一个tab位占8列)v 竖向跳格(相当于换行)b 退格,将当前位置移到前一列r 回车(到行首,不换行)f 走纸换页,将当前位置移到下页开头 字符 “ ” 字符 “ ”ddd 13位八进制数所代表的字符 如 074xhh 12位十六进制数所代表的字符 如 x74,字符型数据,单引号,例 A (65)10 = (101)8 101=A P374换行符 (10)10 = (12)8 012=n, 选择题:以下选项中,均是不合法的转义字符的选项是 ( )。A) B) 1011 C) 011 D) abc f 101xf a x1f, 选择题:以下选项中,正确的字符常量是 ( )。A) “c“ B) C
19、) 085 D) W,三、 字符数据在内存中的存储形式及其使用方法将一个字符常量存到一个字符变量中去,并不是把该字符本身放入内存单元之中,而是将该字符的相应的ASCII码American national Standard Code for Information Interchange(美国国家信息交换标准代码)。存放到存储单元之中。例如: char c1, c2;c1=a; c2=b;,二、 字符变量字符变量用来存放字符常量(只能放一个字符,而不是字符串)。字符变量的定义: char c1, c2; 定义c1,c2为字符变量,内存中存放的不是a 和 b,而是 a 和 b 的ASCII码 9
20、7 和 98,由于字符数据以ASCII码存储,因此与整数有相同的形式,因此C 语言中的字符型数据和整型数据之间可以通用。,例. char c1, c2;c1=a; 与 c2=b; 对c1、c2分别赋值,结果相同。,至于是输出字符还是整数取决于“格式控制符“。 %d:十进制整型 %c:字符型,char c1, c2; c1=97; c2=98;,大小写字母转换。main( )char c1 , c2 ;c1=a ;c2=b ;c1=c1-32 ;c2=c2-32 ;printf(“%c %c“ , c1 , c2) ;,从ASCII码表中可以看到,每一个小写字母比它相应的大写字母的ASCII大3
21、2。因此有: 小写字母32 大写字母,运行结果: A B,四、 字符串常量 字符串常量:是一对双引号 “ “ 括起来的字符序列。如: “How do you do.“$123.45“ 字符串常量与字符常量:字符常量是一个字符,字符串常量是一对双引号 括起来的字符序列。C 规定:在每一个字符串的结尾加一个“字符串结束标志”,以便系统椐此判断字符串是否结束。C 规定以字符 0 作为字符串结束标志。 0 是系统自动加上的,在写字符串时不必加 0 。“a“ 与 a 的区别:字符串“a“实际上包含2个字符:a 和 0,占2个字节;a占1个字节。注意:不要混淆字符常量与字符串常量!字符串常量不能赋给一个字
22、符变量。如: c=“a“; 是非法的,而应该是 c=a;C语言中的字符串用字符型数组来存放。, 选择题:以下选项中,均是正确的数值常量或字符常量的是 ( )。A) 0.0 B) “a“ C) 3 D) +0010f 3.9E-205 011 0xabcd8.9e 1e1 0xFF00 2e2& 0a 50., 选择题:下面不正确的字符串常量是 ( )。A) abc B) “1212 C) “0“ D) “ “,练习题,变量赋初值,程序中常常需要对一些变量预先设定初始值,C语言中规定,可以在定义变量的同时使变量初始化。如 int i=3;float x=2.5;变量赋初值相当于变量定义与变量赋值
23、两部分。如: int i=3; 相当于 int i; i=3; 也可以使被定义的变量的一部分赋初值。如: int a, b, c=5; (只对c 赋初值5),如果对几个变量赋以同一个值,不能写成int a=b=c=3 ; 而应写成 int a=3,b=3,c=3 ;,变量初始化一般是在程序运行、执行本函数时赋予初值的。 而定义是在编译时执行的,各数据类型之间的混合运算,注注意: 这里只是指出数据类别级别的高低,而不是说必须一级一级转换。例如: int 与 double 运算,则int 直接转换成double,然后运算,而不必经过 unsigned 和 long 这两级。,整型、实型(单精度、双
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 基础 PPT
