1、第2章 C语言语法基础,主讲:张 娟,第2章 语言语法基础,2.1 标识符和关键字 2.2 数据类型 2.3 常量与变量 2.4 运算符和表达式 2.5 不同数据类型数据间的混合运算,本章内容,1、C语言的基本语法结构? 2、C语言有哪些语法特点呢? 3、想一想,下面程序有哪些错误?,课程回顾,C语言语法特点,1、C程序有且只有一个main()函数,而且程序总是从main函数开始执行,无论其位置在哪,习惯将main()函数写在程序开始。 2、C语言每条语句都以“;”结束 3、C程序书写自由,一行内可以写多个语句,一个语句也可以分写多行 4、C语言本身没有输入输出语句库函数输入scanf()和输
2、出printf() 5、C语言注释符号/*/, / 6、C语言区别大小写,习惯用小写,课程回顾,#include main( ) int x,y,sum; /定义3个整型变量x,y,sumx=100, /把100赋给xy=200; /把200赋给ySum=x+y; /把x+y的值赋给变量sumPrintf(“x+y的和sum=%dn“,sum);/输出sum值,课程回顾,#include void main() printf(“*n“);printf(“ *n“);printf(“ *n“);printf(“ *n“);getch(); ,作业点评,运行结果:,自然语言与语言组成要素对比,按照
3、“字-词-句-段-章”的自然语言的学习顺序学习C语言是一种非常有效的学习方法。,2.1 标识符和关键字,字符集,2.1 标识符和关键字,字符集是构成C语言的基本元素。用C语言编写程序时,所写的语句是由字符集中的字符构成。C语言的字符集由下列字符构成:,(1)英文字母:AZ,az。(2)数字字符:09。(3)特殊符号:空格 ! % * . ( ),2.1 标识符和关键字,所谓标识符就是用来标识在语言程序中出现的符号常量、变量、数据类型、函数和语句的字符序列,C语言中的标识符是由字符组成,满足一定的构成规则。,C语言规定,标识符由字母、数字、下划线组成,且第一个字符不能使用数字字符。 如: 合法的
4、标识符: a、_3x、BOOK1、sum5、student_1 不合法: -3x、bowy-1、3Student、$Map、SumMul,标识符,2.1 标识符和关键字,关键字,1、标识符的有效长度随系统而异,建议标识符不要超过8个 字符如:student_num student_name 2、标识符命名的良好习惯见名知意例如,name(姓名)、age(年龄) 3、C语言的关键字和特定标识符不能用作用户自定义的标识符。 4、C语言区分大小写。如:Name和name是不同的标识符 5、C语言有许多库函数,尽量不要与库函数同名,定义标识符需要注意以下几点:,2.1 标识符和关键字,关键字,关键字是
5、系统定义的、具有特定含义、专门用作特定用途的C语言标识符,也称为保留字。标准C语言中共有32个关键字。根据关键字的作用,可分其为数据类型关键字、控制语句关键字、存储类型关键字和其它关键字四类。,2.1 标识符和关键字,关键字,(1)数据类型关键字(12个):char, double, float, int, long, short, signed, unsigned, struct, union, enum, void (2)控制语句关键字(12个):break, continue, if, else, switch, case, default,while ,do, for, goto, r
6、eturn, (3)存储类型关键字(4个):auto, extern, register, static (4)其它关键字(4个):const, sizeof, typedef, volatile,特定字是具有特殊含义的标识符,虽然不是关键字,但习惯上把它们看成关键字define endif line include 等,13,特定字,2.1 标识符和关键字,2.1 标识符和关键字,思考,下列标识符是否合法,为什么?sum a1 b2 s_name123 #ss a.b.c float,合法,不合法,C语言的数据类型,2.2 数据类型,在程序中对用到的 所有数据都必须指 定其数据类型.,?,不
7、同类型的数据,所占 内存的字节数不同, 对 应的操作也不相同。,float,double,基本数据类型,2.2 数据类型,ANSI C标准规定,简单类型的前面还可以加上修饰符,使简单类型的语义 更加丰富,方便C编程人员选用恰当的数据类型。这样的修饰符共有4种:(1)signed:有符号; (2)unsigned:无符号;(3)long:长型; (4)short:短型。,2.3 常量与变量,学习目标,理解常量与变量的概念,熟练掌握整型、实型及字符型常量与变量的定义和使用,2.3.1 变量的概念,变量,由程序命名的一块计算机内存区域,用来存储可以变化的数值,(1)变量类型。表明变量用来存放什么类型
8、的数据 (2)变量名。每个变量都必须有一个名字变量名,变量命名遵循标识符命名规则。 (3)变量值。在变量的存储单元中存放的数据。在程序中,通过变量名来引用变量的值。,变量的要素:,2.3.1 常量与变量的概念,变量的定义,变量定义的一般形式为: 类型说明符 变量名标识符1,变量名标识符2,;,注意: 变量要先定义,后使用 习惯上,变量名用小写字母。 常量名用大写字母。 数据类型与变量名之间至少 有一个空格,例如: int i,j,k; /定义i,j,k为整型变量float x1,x2; /定义x1,x2为单精度实型变量double y1,y2; /定义y1,y2为双精度实型变量char c1,
9、c2; /定义c1,c2为字符型变量,2.3.1 常量与变量的概念,变量的赋值,方式1:定义变量的同时赋初值(也叫变量初始化)。格式:数据类型 变量名=初值, 变量名2=初值2;如:int a=2;char c=x;float x=1.2, y=2.4;方式2:通过一个赋值语句给变量赋初值。格式 : 变量名=初值;,出现在函数体 的执行部分,int a,b=3;,int a,b; b=3;,出现在函数体 的声明部分,2.3.1 常量与变量的概念,关于变量以及变量赋初值的几点说明,1、程序中用到的变量必须“先定义(declare),后使用”。 2、C语言的关键字不能用作变量名。 3、允许同时定义
10、同一数据类型的多个变量,变量间用“,”分隔 4、C语言对英文字母的大小写敏感,即同一字母的大小写,被认为是两个不同的字符。 5、定义变量时,给几个变量赋相同的初值,应写成 : int a=3,b=3,c=3;不能写成: int a=b=c=3; 6、给变量赋值时,正常情况下应给变量赋相同类型的数据。若给变量赋与其类型不同的数据时,需进行类型转换。,2.3.1 常量与变量的概念,变量的基本操作,一个变量可以看成是一个存储数据的容器。有两个对变量的基本操作: 一是向变量中存入数据,这个操作被称为“赋值”;二是取得变量当前的值,以便在程序运行时使用,这个操作被称为“取值”。,include void
11、 main() int student,age;int if=adrress=1;float score=90;stadent=2;Age=20.7;printf(“%d %d %d %f“,if,student,age,score); ,本程序中有几处错误?,undeclared identifier,2.3.1 常量与变量的概念,思考,表示可以省略,各类型整型变量占用的内存字节数,随系统而异。,2.3.2 整型变量,整型变量,整型变量的分类,25,整型变量的定义,整型数据类型的关键字 int格式:int 变量名1,变量名2例如:int a,b,sum;int a;int b;int sum
12、;,思考?求三角形的周长,整型变量,整型变量的定义,2.3.2 整型变量,2.3.3 实型变量,实型变量的分类,分类及取值范围,实型类型关键字:单精度 float 双精度 double 定义格式: 数据类型符 变量名1,变量名2 例如:float a,b;double x,y;,思考:假如小明到超市去买水果,苹果2.5/斤,葡萄5元/斤,香蕉2.88/斤,小明买了3斤苹果、2斤葡萄,4斤香蕉,请编写一C程序,求出小明应付多少钱?,2.3.3 实型变量,2.3.3 实型变量,实例分析,#include int main( ) float a,b; /定义a、b为单精度浮点型变量double d;
13、 /定义d为双精度浮点型变量a=3.56; b=12345.678;d=12345.6789;printf(“%f, %f, %fn“,a, b, d);return 0; ,程序运行结果如下: 3.560000, 12345.677734, 12345.678900,29,字符类型变量,存储方式,以ASCII码存储,占一个字节(参见教材P50),类型及范围,char 大小写英文字母,数字,运算符,标点符号等,注意:字符型数据与整型数据在存储方式上的相似性使得两者之间可以通用。但字符型数据的表示范围是:0255。,举例,字符变量ch中存放字符a,其ASCII码对应的十进制数为97,2.3.4
14、字符型变量,2.3.4 字符型变量,实例分析,#include int main( ) short int n=97; /字符a的ASCII码为97printf(“%d, %c, %d, %cn“, n, n, n+1, n+1);return 0; ,程序运行结果如下: 97, a, 98, b,2.3.4 字符型变量,实例分析,#include void main() char ch1,ch2; ch1=a; ch2=b; printf(“ch1=%c,ch1=%dn“,ch1,ch1); printf(“ch2=%c,ch2=%dn“,ch2,ch2);printf(“ch2-32=%c,ch2-32=%dn“,ch2-32,ch2-32); ,程序运行结果如下: Ch1=a,ch1=97 Ch2=b,ch2=98 Ch2-32=B,ch2-32=66,32,1、标示符的概念2、变量的定义及赋值方法3、整型变量的分类、定义、赋值4、实型变量的分类、定义、赋值5、字符变量的定义及赋值,课堂小结,