,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,C语言程序设计,全国计算机等级考试 二级教程,新科,电脑培训中心 唐绍国 制作,C语言程序设计全国计算机等级考试 二级教程新科电脑培训中心,1,第二章:C程序设计的初步知识,C语言语法简洁、紧凑;使用方便、灵活;具有丰富的运算符和数据结构;并且能够通过函数实现程序的模块化。它既具有高级语言的一切功能,也具有低级语言的某些功能。因此它既可以用来编写系统软件,也可用来编写应用软件。,第二章:C程序设计的初步知识C语言语法简洁、紧凑;使用方便、,2,本章要点,C语言程序的构成和格式,常量、变量和标识符,整型数据,实型数据,算术表达式,赋值表达式,自加、自减运算符和逗号运算符,本章要点C语言程序的构成和格式,3,2.1 简单C语言程序的构成和格式,例:输入矩形的两条边长,求矩形的面积。,程序如下:,#include “stdio.h” /*标准输入头文件*/,main(),float a ,b,area;,a=1.2; /*给矩形的两条边赋值*/,b=3.6;,area=a*b; /*求出矩形的面积放入变量area*/,printf(“a=%f,b=%f,area=%fn”,a,b,area); /*输出矩形的两条边长和面积*/,程序运行结果如下:,a=1.200000,b=3.600000,area=4.320000,先来看一个c语言程序的例子,2.1 简单C语言程序的构成和格式例:输入矩形的两条边长,求,4,由以上程序可看出,C语言程序格式特点:,1、一个c程序可以包含任意多个不同名的函数,但每个程序必须有且只有一个名为main的函数。程序在main()函数(主函数)的开始处开始,在main函数的结束处结束。main后面的圆括号对()是必须的,圆括号对中()为参数表。main可以有参数表,也可以没有参数表,但圆括号必须有,且不能省略。,由以上程序可看出,C语言程序格式特点:1、一个c程序可以包含,5,2、C语言程序中使用大括号对“”和“”来表示程序的结构层次范围。一个完整的程序模块要用一对大括号括起来,以表示该程序模块的范围。应该注意的是,左大括号“”和右大括号“”必须成对使用。,3、C语言程序习惯上用英文小写字母书写,当然也可以使用大写字母书写,但是大写字母在C语言中通常作为特殊用途来使用。,且C语言对大小写是区分的,。,比如:count、Count、COUNT分别代表三个不同的变量。,2、C语言程序中使用大括号对“”和“”来表示程序的结构层,6,4、C语言程序使用分号 “ ;”作为语句的结束符,它是语句的一部分、不是语句之间的分隔符。另,只有分号的语句称为空语句。,5、如果需要在程序中指定命令行,命令行必须用“#”号开头,且最后不能加“;”号。,6、为了增加程序的可读性,程序中可以适当加入注释,注释部分必须用“/*” 和“*/” 括起来。“/”和“*”之间不能有空格。在程序运行时,注释部分的内容不会被执行。,4、C语言程序使用分号 “ ;”作为语句的结束符,它是语句的,7,2.2 常量、变量和标识符,在C语言中,标识符可用作变量名、符号名、函数名和数组名、文件名以及一些具有专门含义的名字。合法的标识符由字母、数字和下划线组成,并且第一个字符必须为字母或下划线。,在命名标识符时需注意两点:,1、标识符区分大小写:大写字母和小写字母被认为是两个不同的字符。,2、标识符的长度为8个字符:一般计算机取前8个字符,多余的字符将不被识别。,2.2 常量、变量和标识符在C语言中,标识符可用作变量名、符,8,C 语言的标识符可分为三类,一、关键字:C语言规定的、在程序中代表固定的含义、有特殊用途的标识符,不能另作它用。,C语言中的关键字可分为以下几类,类型说明符:,1)数据类型:char、double、float、int、long、short、 struct、union、enum、signed、unsigned、void;,2)存储方式:auto,extern,static,register;,3)数据类型定义:typedef。,C 语言的标识符可分为三类一、关键字:C语言规定的、在程序中,9,(2)语句定义符:,1)选择语句:if, else, switch, case, default;,2)循环语句:do, while, for;,3)转移语句:goto;,4)返回语句:return;,5)其他语句:continue, break;,(2)语句定义符:,10,二、预定义标识符,预定义标识符在C语言也有特定的含义,如C语言提供的库函数的名字(如printf)和编译预处理命令(如define)等,但是用户可以重新规定其用途。,常见预定义标识符:,(1)宏定义:#define #undef;,(2)文件包含:#include;,(3)条件编译:#if, #else, #endif。,二、预定义标识符,11,三、用户标识符:,由用户根据需要定义的标识符称为用户标识符。一般用来给变量、函数、数组或文件命名。(不能和关键字相冲突),建议:,在程序中使用用户标识符时,除要遵循起名规则外还应做到“见名知义”,既选择具有相关英文含义的单词或汉语拼音命名, 以增加程序的可读性。,三、用户标识符:,12,2.2.2 常量,概念:在程序运行的过程中,其值不会发生改变的量,称为常量。,C语言中主要有以下几种常量:,(1)整型常量,(2)浮点型常量,(3)字符型常量,(4)符号常量,2.2.2 常量概念:在程序运行的过程中,其值不会发生改变的,13,2.2.4 变量,概念:,在程序运行的过程中,其值可以改变的量,称为变量。,一个变量实际上代表了内存中的某个存储单元.,变量可以分为整型变量、实型变量(浮点变量)、字符变量等。,2.2.4 变量,14,一、整型常量,在语言中,整型常量可以用十进制、八进制和十六进制来表示。,十进制:用一串连续的数字来表示。,八进制:用数字开头(不是字母)。因此,在程序中不能在一个十进制整数的前面加前导。,十六进制:用数字和字母x(或大写字母)开头。,2.3 整型数据,一、整型常量2.3 整型数据,15,整型常量分为:,短整型(short int),基本整型(int),长整型(long int),无符号型(unsigned).,整型常量分为:,16,整型变量,整型变量可以分为基本型、短整型、长整型和无符号型四种。,基本型的整型变量用类型名关键字int进行定义,定义形式如下:,int k; /*定义变量k为整型*/,整型变量,17,.3.3 整型数据的分类,整型数据分为基本整型、短整型、长整型、无符号型。,整型数所占字节数和数值范围列表(见教材:p11),.3.3 整型数据的分类整型数据分为基本整型、短整型、长整,18,注意,若要表示一个长整型常量,则应在一个整型常量后面加一个字母后缀l(L的小写)或L,无论是短整型还是长整形,都被识别为有符号数,无符号数在数字的末尾应该加上字母后缀u或U,若是长整型无符号整数常量,则应该加后缀lu或LU。,注意,19,.3.4 整数在内存中的存储形式,相关知识,内存储器的最小存储单元称为“位(bit) ”,每一个位中存放一个二进制代码(0或者1),每8个二进制位组成一个“字节”(byte),每个字节分配得一个内存地址。若干个字节组成一个“字(word) ”,用来存放一条机器指令或一个数据。,一个字节有8个二进制位,通常我们将最右边的一位称为最低位,最左边的一个称为最高位。,.3.4 整数在内存中的存储形式 相关知识,20,存储形式,正整数:原码形式,负整数:补码(反码加),无符号整数:原码形式,最高位用来存放整数的符号:0为正,1为负,(最高位不再用来存放整数的符号,16个二进制位全部用来存放整数),存储形式最高位用来存放整数的符号:0为正,1为负,21,2.4 实型数据,实型常量(实数),小数形式:数学中常用的实数形式,由数字和小数点组成,指数形式:类似于数学中的指数形式。在C语言中,则以字母“e”或“E”后跟一个整数来表示以10为底的冥数。,格式:小数 E 指数,其值相当于:小数10,指数,2.4 实型数据实型常量(实数),22,实型变量(浮点变量),实型变量分为,单精度型,和,双精度型,单精度型用(float)表示,双精度型用(double)表示。在一般计算机系统中,为单精度型变量分配4个字节的存储单元,为双精度型变量分配8个字节的存储单元,并按实际的存储方式存放数据。实型的变量只能存放实型数;不能用整型变量存放一个实数,也不能用实型变量存放一个整数。,实型变量(浮点变量),23,2.5 算术表达式,基本的算术运算符,+、-、*、/、% :分别代表加、减、乘、除,求余运算符。,注意:%为求余运算符,运算结果是两数相除后所得的余数,在TURBOC中,运算符号与被除数相同。,2.5 算术表达式基本的算术运算符,24,2.5.2,运算符的优先级、结合性和算术表达式,一、算术运算符和圆括号的优先级高低次序如下:,()、+、-、*、/、%、+、-,单 目,双 目,同级,同级,同级,高,低,二、算术运算符和圆括号的结合性,以上所列的运算符中、只有单目运算符“+”、“-”的结合性是从右到左,其余运算符的结合性都是从左到右,2.5.2 运算符的优先级、结合性和算术表达式一、算术运算符,25,三、算术表达式,概念:在C语言中,类似于数学中的表达式,由运算量(常量、变量)、运算符、括号、函数等连结成的有一定意义的式子。,算术表达式的运算规则:,1、在算术表达式中,可使用多层圆括号,但左右圆括号必须配对。在运算时从内层圆括号开始,由内向外依次计算表达式的值。,2、在算术表达式中,若包含不同优先级的运算符,则按运算符的优先级别由高到低进行,若表达式中运算符的级别相同,则按运算符的结合方向进行。,三、算术表达式概念:在C语言中,类似于数学中的表达式,由运算,26,2.5.3 强制类型转换表达式,作用:将一个表达式的值转换成指定类型,强制类型转换表达式的形式如下:,(类型名)(表达式),例:(double) (10%3) 所得结果:1.0,特别提醒:,(1)类型名的括号一定不能缺少,(2)表达式如果是单个变量,可以省略括号.,2.5.3 强制类型转换表达式作用:将一个表达式的值转换成指,27,2.6 赋值表达式,2.6.1 赋值运算符和赋值表达式,在C语言中,“=”符号称为赋值运算符,由赋值运算符组成的表达式称为赋值表达式。它的形式如下:,变量名= 表达式,说明:,(1)赋值运算符的优先级别只高于逗号运算符,比其它任何运算符的优先级别都低,且具有自右向左的结合性。,(2)赋值运算符不等同于数学中的“等于号”,而是进行“赋予”的操作,(3)赋值表达式x=y的作用是,将变量y所代表的存储单元中的内容赋给变量x所代表的存储单元,x中原有的数据将被替换掉;赋值后,y变量中的内容保持不变。,2.6 赋值表达式2.6.1 赋值运算符和赋值表达式,28,(4) 在赋值表达式x=y中,虽然赋值运算符两边的运算符对象都是x,但出现在赋值号左边和右边具有不相同的含义。赋值号右边的x表示变量x所代表的存储单元中的值。赋值号左边的x代表以x为标识的存储单元。,(5) 赋值运算符的左侧只能是变量不能是常量或表达式。,(6) 赋值号右边的表达式也可以是一个赋值表达式。,(7) C语言规定最左边变量所得到的新值就是赋值表达式的值。,(4) 在赋值表达式x=y中,虽然赋值运算符两边的运算符对象,29,2.6.2 复合的赋值表达式,在赋值运算符之前加上其他运算符可以构成复合运算符。复合赋值运算符的优先级与赋值运算符的优先级相同。,与算术运算有关的复合运算符是:,+=、-=、*=、/=、%=,例:x+=y相当于x=x+y.其他依次类推。,2.6.2 复合的赋值表达式在赋值运算符之前加上其他运算符可,30,2.6.3 赋值运算中的类型转换,在赋值运算中,只有左右两边的类型完全一致,赋值操作才能 进行。如果赋值运算符两边的类型不一致,系统将自动先把右侧表达式求得的值按照赋值号左边的值进行转换。也可用强制转换方式进行,人为,转换。但这种转换仅限于数值数据之间,通常称为“赋值兼容”。,2.6.3 赋值运算中的类型转换在赋值运算中,只有左右两边的,31,特别提示:,混合运算时整型数据类型之间的转换规则:,在C语言的表达式中(不包括赋值表达式),如果运算符两边的整数类型不相同,将进行类型之间的转换。转换规则如下:,1、运算符两边一个是短整型,一个是长整型,则短整型转换成长整型,然后进行运算。,2、运算符两边一个是有符号整型,一个是无符号整型,则有符号整型转换成无符号整型,然后进行运算。,特别提示:混合运算时整型数据类型之间的转换规则: 在,32,在C语言的赋值表达式中,赋值号右边的值先转换成与赋值号左边变量相同的类型然后再进行运算。,在C语言的赋值表达式中,赋值号右边的值先转换成与赋值号左边变,33,本章完,祝大家学有所成!,Thanks,!,本章完,34,