计算机二级第2章语法基础.ppt_第1页
计算机二级第2章语法基础.ppt_第2页
计算机二级第2章语法基础.ppt_第3页
计算机二级第2章语法基础.ppt_第4页
计算机二级第2章语法基础.ppt_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1,第2章 C语言的语法基础,2.1 基本数据类型,2,2.1 基本数据类型,标识符 数据类型 常量 变量 数据存储,3,1. 标识符,对常量、变量、类型、语句、标号和函数进行命名,长度不限制。 标识符的种类: 关键字 预定义标识符 用户定义标识符,4,关键字,C语言关键字(保留字),根据关键字的作用,可分其为数据类型关键字、控制语句关键字、存储类型关键字和其它关键字四类,这些关键字都要采用小写字母。 数据类型关键字(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, volatile,5,预定义标识符,C语言系统提供的库函数名和编译预处理命令等构成了预定义标识符。使用库函数包含,就把相应的预定义标识符定义在程序中; 如库文件“stdio.h”中的一部分: void _Cdecl clearerr (FILE *stream); int _Cdecl fclose (FILE *stream); int _Cdecl fflush (FILE *stream); int _Cdecl fgetc (FILE *stream); int _Cdecl fgetpos (FILE *stream, fpos_t *pos); char *_Cdecl fgets (char *s, int n, FILE *stream); 如果程序中没有相应的库文件包含,用户可以定义与系统预定义标识符名称一样的标示符,但应该避免这样做。,6,用户定义标识符,用户标识符:在Turbo C 2.0中,用户标示符必须满足的规则: 由大小写英文字母、下划线、数字组成; 由英文字母或下划线开头; 长度不能超过32个字符,在TC中,只取前8个字符作为有效字符; 大小写字母有区别; 不能使用Turbo C 2.0的关键字。 注意事项: 不能出现全角字符、空格,不要把下划线“_”写成减号“-”; 标识符必须定义后才能使用; 最好做到见名知义,以增加程序的可读性并且方便维护;,7,数据类型,在tc中数据类型可分为基本数据类型、构造型数据类型、指针型数据类型 基本数据类型分为: 字符型char,整型int,单精度实型float,双精度实型double,空类型void,前四种可以加修饰符如sign(有符号),unsign;long,short等 修饰符sign,unsign,short仅适用于修饰字符和整型,long还可修饰实型(double) 缺省时都字符和整型是带有符号的 空类型void通常在调用函数时,就向调用者返回一个有特定类型的函数值。,8,9,常量,常量的概念 在程序运行过程中,其值不能被改变的量称为常量。 常量的分类 整型常量 实型常量 字符型常量 字符串常量 符号常量,10,补充:整数在机内的表示形式,计算机中数采用二进制表示,符号也用二进制表示,最高位为符号位。 在补码表示法中,正数采用符号-绝对值表示法0表示符号位(正)其余用数的绝对值表示。 +1补=0000000000000001 +32767补=0111111111111111 0补=0000000000000000 负数用2n-|x|来表示,其中n为机器的字长,当n=16时 -1补=216-1=1111111111111111(16个1) -32767补=216-32767=1000000000000001(14个0) -0补=0000000000000000(规定) 对于1000000000000000定义为-32768,11,整型常量整数,十进制整数:由数字19开头,09数字组成,前面可加正负号。 八进制整数:由数字0开头,07数字组成,前面可加正负号。 十六进制整数:由数字0和字母x(大小写均可)开头,由数字09,字母af(大小写均可)组成,前面可加正负号。 【注意事项】: 在一个整型常量的尾部加上字母l(或L)时,则为长整型常量; 一个整型常量的值可以确定它的类型,值在 范围内则为整型(int)常量;值超过上述范围而在 范围内,则为长整型;,12,实型常量实数,C语言中实型常量有两种表示方法: 小数形式:包括数字和小数点,如1.2352、-0.216、+536.1; 指数记数法形式:包括整数部分、小数点、小数部分和指数部分,指数部分前加字母e(或E),如1.235e3、1.235e03、0.123e+5、2.26e-5;用指数形式表示实数时,指数部分必须为整数,字母e前面必须有数字; 整数部分和小数部分可省略其中任一个,如.23和200都是正确的 使用E或e时,上述两边都要有数,如E2,2.4E都是错误的 实型常量默认都是double,可加f(F)成为float,如12.3F;后加字母l(或L),则构成长双精度实型常量long double,13,字符常量,C语言字符常量有三种表示方法: 把单个字符用一对单引号括起来表示字符常量,如 a、6、+;其值是该字符的ASCII码 用该字符的ASCII码值表示的字符常量,见附录D,page406; 反斜杠“开头后跟规定的单个字符或数字,并用一对单引号括起来表示字符常量,如r表示回车,n表示换行。这种表示法中反斜杠后面的字符变成了另外的意思,称之为转义字符。,14,程序举例,main( ) char ch1,ch2; ch1=a; ch2=b; printf(“ch1=%c,ch2=%cn”,ch1,ch2); printf(“ch1=%d,ch2=%dn”,ch1,ch2); ,程序运行结果: ch1=a,ch2=b ch1=97,ch2=98,main( ) char ch1,ch2; ch1=a; ch2=B; /*字母的大小写转换*/ printf(“ch1=%c,ch2=%cn”,ch1-32,ch2+32); /*用字符形式输出一个大于256的数值*/ printf(“ch1+200=%dn“, ch1+200); printf(“ch1+200=%cn“, ch1+200); printf(“ch1+256=%dn“, ch1+256); printf(“ch1+256=%cn“, ch1+256);,程序运行结果: ch1=A,ch2=b ch1+200=297 ch1+200=) ch1+256=353 ch1+256=a,15,字符串常量,若干个字符用双引号括起来就构成了字符串常量,如“hello!”,“a”,“123” C语言中在存储字符串常量时,除了存储双引号中的所有字符外,在字符串的最后还要存放一个字符”0”,表示该字符串常量到此结束,字符”0”也称为字符串的结束标志。它也占用一个字节。 字符串中字符的个数称为字符串长度。长度为0的字符串(即一个字符都没有的字符串)称为空串,表示为“ ” (一对紧连的双引号),16,举例说明,“How do you do.”长度分别为14(空格也是一个字符) 如果反斜杠和双引号作为字符串中的有效字符,则必须使用转义字符: C:msdosv6.22 “C:msdosv6.22” I say:“Goodbye!“ “I say:”Goodbye!” 如果有一个字符串为“CHINA”,则它在内存中的实际存储如下所示: 最后一个字符0是系统自动加上的,它占用字节而非字节内存空间。,17,字符串常量和字符常量的区别,字符常量A与字符串常量“A“是两回事: 定界符不同:字符常量使用单引号,而字符串常量使用双引号; 长度不同:字符常量的长度固定为1,而字符串常量的长度,可以是0,也可以是某个整数; 存储要求不同:字符常量存储的是字符的ASCII码值,而字符串常量,除了要存储有效的字符外,还要存储一个结束标志0。,18,符号常量,C语言中可以用一个标识符来代表一个常量,称为符号常量,有两种定义方式: 利用宏定义 #define 来定义符号常量: 如 #define PI 3.14159;#define AB 34;(则PI和AB是符号常量) 利用 const 来定义符号常量,此方法在定义符号常量的同时也定义了该常量的数据类型 格式为:const 数据类型 符号常量1常量1,符号常量2常量2, 如 const int MAX=5000;,19,以下是等级考试中的填空题,下面叙述正确的是() 2/3与2.0/3.0等价 (int) 2.0/3与2/3等价 +5与6是等价 A与”A”是等价 C语言用户标识符的描述,正确的是()。 不区分大小写 用户标识符不能描述常量 类型名也是用户标识符 用户标识符可以作为变量名,以下()是正确的常量。 E-5 1E5.1 a12 32766L 在c语言中,合法的字符常量是()。 字 “A“ “ABC“ x41,20,变量,概念 在程序执行过程中,值可以改变的量称为变量。 变量的两个要素 变量名:每个变量都必须有一个名字变量名,变量命名遵循标识符命名规则。 变量的值:在程序运行过程中,一个变量在内存中占有一定的存储空间,里面存放的数据就是变量的值。通过变量名可以引用变量的值。,21,变量的定义与初始化 在语言中,要求对所有用到的变量,必须先定义、后使用;在定义变量的同时进行赋初值的操作为变量初始化。 变量定义的一般格式 数据类型 变量名, 变量名2; 例如,float radius, length, area; 变量初始化的一般格式 数据类型 变量名=初值, 变量名2=初值2; 例如,float radius=2.5, length, area;,22,整型数据的取值范围和占内存字节数,23,实型数据的取值范围和占内存字节数,实型常量不分float型和double型,变量则分为float和double两种,24,字符型数据的取值范围和占内存字节数,25,字符类型变量,char a,b=b; 每个字符类型变量被分配一个字节(即8位),上述式子表示变量a的值未被定义,变量b的值是98(ASCII)注意char的值是一个带符号的值。,#include main() char chA,chB,cha=a,chb=98; chA=cha-32; chB=chb-32; printf(“cha=%c,cha=%d“;cha,cha); printf(“chb=%c,chb=%d“;chb,chb); printf(“chA=%c,chA=%d“;chA,chA); printf(“chB=%c,chB=%d“;chB,chB); ,26,用const修饰变量,用const修饰后,变量的值一旦被确定,就不能被更改 int const ivar const int ivar Ivar被定义为其值不可更改的量(相当于常量) 同时赋值 int const ivar=10 或在函数中定义,27,枚举类型变量,系统允许用户自定义的类型取名,如枚举类型 因为有些变量的取值在一定的范围内,通过枚举所有可能的值来定义一个有序的值集 定义格式: enum枚举类型名 标识符=整型常量; 标识符=整型常量; 枚举变量 ; 例:enum colorRED,BLUE,GREEN; 例:enum colorRED,BLUE,GREEN;mycol1,mycol2; 引用格式: 上例可以引用这两个枚举变量如对其赋值 mycol1=RED,mycol2=BLUE;,28,说明: 1)枚举类型变量是以整型的方式存储的,如果枚举定义初始化时省略”=整型常数”则从第一个标识符起值为0,1,2 2)可以为某些指定一些数值,其后标识为依次加1 enum colorRED,BLUE=200,GREEN,BLOCK=400; GREEN被自动赋值为201 3)下列是错误的 enum color“RED”,”BLUE”,”GREEN”;/*因是字符串*/ enum color1,2,3;/*因是数字*/ enum colorfor,do,mod;/*因是保留字*/,枚举类型变量,29,以下是等级考试中的试题,C语言用户标识符的描述,正确的是()。 不区分大小写 用户标识符不能描述常量 类型名也是用户标识符 用户标识符可以作为变量名 关于C语言数据类型的叙述,正确的是()。 枚举类型不是基本类型 数组不是构造类型 变量必

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论