C语言基础知识复习资料C语言的历史背景及特点一、C语言的历史背景1、什么是C语言C语言是国际上广泛流行的,很有发展的前途的计算机高级语言,它适合于作为系统描述语言,既可用来写系统软件,也可用来写应用软件的一种高级语言之一。2、C语言的产生的历史背景C语言是在1973年间,贝尔实验室的D.M.Ritchie在B语言的基础上发展起来的,它保持了BCPL和B语言的优点:精练、接近硬件,又克服了它们的缺点:过于简单,数据无类型等。二、C语言的特点1、语言简洁、紧凑、使用方便、灵活。2、运算符丰富。3、数据结构丰富,具有现代化语言的各种数据结构。4、具有结构化的控制语句。5、语法限制不太严格,程序设计自由度大。6、C语言允许直接访问物理地址。7、生成目标代码质量高,程序执行效率高。8、用C语言写的程序可移植性好。简单的C程序介绍及C程序的上机步骤一、简单C程序介绍(学会读懂一个简单的C程序)#includestdio.h函数头main()主函数{inta,b,sum;定义变量a=123;b=456;以下3行为C语句sum=a+b;printf(“sumis%d\n”,sum);}简单的C程序介绍及C程序的上机步骤一、C程序的上机步骤补充概念:1、程序:就是一组计算机能识别和执行的指令。2、源程序:用高级语言编写的程序称为“源程序”。3、目标程序:用“编译程序”将源程序编译成二进制形式,形成可执行的程序叫做目标程序。C程序的上机步骤(实操讲述)1、打开TurboC程序,输入源程序2、按Ctrl+F9进行调试,查看结果3、保存源程序打开源程序的方法:1、打开TurboC程序,单击File菜单,选择Open命令2、在弹出的对话框中输入要打开的源程序路径,单击OK按钮即可。保存源程序的方法:1、单击File菜单,选择Save命令,2、在弹出的对话框中输入要保存的源程序路径,单击OK按钮即可。C语言的数据类型(一)一、一个C语言程序应包括的内容1、对数据的描述:在程序中要指定数据的类型和数据的组成形式。2、对操作的描述:即操作步骤,也就是算法。故:数据结构+算法=程序若采用结构化的程序设计方法进行程序设计时,关且用某一种计算机语言来表示时:程序=算法+数据结构+程序设计方法+语言工具和环境C语言的常量和变量一、常量和符号常量:1、什么是常量:在程序运行过程中,其始终保持不变的量称为常量(整型、实型、字符常量)2、什么是和符号常量:用一个标识符代表一个常量的,称为和符号常量。即采用标识符形式的常量。3、宏定义:用一个指定的标识符(即名字)来代表一个字符。格式:#define标识符字符串例如:#definePI3.1415926二、变量和标识符1、什么是变量在程序运行过程中,其值是可以改变的量称为变量.2、什么是标识符:用来标识变量名、符号常量名、函数名。数组名等的有效字符序列称为标识符。简单地说,标识符就是一个名字。3、标识符的命令方法:C语言规定:标识符只能由字母、数字和下划线三种字符组成.且第一个字符必须为字母或下划线。关键字不能作为标识符。整形数据一、整形数据在内存中的存放形式整形数据在内存中的存放形式:以二进制形式存放。例如:inti;i=10;整型常量的表式方法:1、十进制:0、-111;2、八进制:-0111、021;3、十六进制:0x21、+015二、整型数据的类型数据类型数据类型符占用字节数数值范围整型int2(或4)同短整(或长整型)短整型short2-32768~+32767长整型long4-2147483648~+2147483647无符号整型unsigned[int]2(或4)同无符号短整型(长整型)无符号短整型unsignedshort20~65535无符号长整型unsignedlong40~4294967295三、整型数据的定义方法数据类型符变量名1,变量名2,…;例如:inta,b,c;实型数据一、实型常量表示方法:实数又称为浮点数。实数的表示主要有两种形式(1):十进制小数形式。由数字和小数点组成(注意必须有小数点)。例如:123.0;0.0(2):指数形式。例如:123e3或123E3都代表123×103注意:e(或E)前后必须有数字,且e(或E)之后的数必须为整数。二、实型数据在内存中存放形式:一个实型数据在内存中占4个字节(32位)三:实型变量的分类类型比特数有效数字数值范围单精度型(flost)326~710-37~1038双精度型(double)6415~1610-307~10308长双精度型(longdouble)8018~1910-491~104932三、实型变量的定义;格式:数据类型符变量名1,变量名2,…;例如:floatx,y,z;注意:float默认情况下保留6位有效数据字符型数据一、字符常量:1、什么是字符常量:C的字符常量是用单引号括起来的一个字符。例如:’a’2、常用转义字符及含义:\n换行,将当前位置移到下一行开头;\t水平制表(跳到下一个tab位置)\b退格,将当前位置移到前一列;\r回车,将当前位置移到本行开头\f换页,将当前位置移到下页开头;\ddd1到3位8进制数所代表的字符\xhh1到2位16进制数所代表的字符二、字符变量1、字符变量的作用:用来存放字符常量字符变量的定义形式:例如:charc1,c2;c1=’a’,c2=’b’;注意:字符变量在内存中占一个字节三、字符常量:注意:1、字符串常量是一对双引号括起来的字符序列。2、不能把一个字符串赋给一个字符变量‘a’和”a”的区别:1、每一个字符串的结尾加一个“字符串结束标志”,以便于系统判断字符串是否结束。2、以字符’\0’(空操作字符)作为字符串结束标志。变量的定义与赋值一、变量的定义:变量的定义是由变量定义语句实现的。1、变量定义语句的一般格式:类型标识符变量名1,变量名2,变量名3……;例如:intI,j,k;floatx1,y1;charw_1,w_2;2、定义变量应注意以下几点:(1)变量名应遵守标识符的命名规则。(2)变量必须“先定义、后使用”。(3)在同一种程序中变量名不允许被重复定义。(4)凡未被定义的标识符,不得作为变量名全使用。(5)每一个变量只能定义为一种类型,编译时编译时将据此为其分配相应长度的存储单元。(6)变量的数据类型必须也将要进行的操作匹配。二、变量赋值变量使用“=”赋值。变量在定义时可以赋初值,定义后可以连续赋值1、给变量赋值时应注意以下几点(1)赋值时“=”右边的常量(或表达式结果)与左边的变量类型应当匹配。(2)定义时不能连续赋值。(3)字符串常量不能赋值给字符变量、整型变量或实型常量。C语言运算符与表达式的分类一、运算符:运算符是表明运算操作的符号。1、C语言中常见的运算符。(1)按运算类型和目的分:①算术运算符:+-*/%_++--②关系运算符:====!=③逻辑运算符:!&&Ⅱ④位运算符:&Ⅰ~^⑤赋值运算符:=+=-=*=/=%===&=Ⅰ=^=⑥条件运算符:?:⑦逗号运算符指:,⑧指针与地址运算符:*&⑨求字节数运算符:(2)按要求运算对象的个数分:①单目运算符:!~-++--(类型标识)*&sizeof②双目运算符:*/%+-====!=&^Ⅰ&&Ⅱ=+=_=*=/=%===&=Ⅰ=^=③三运算符:?:④其他:()[]_,二、表达式:表达式是由操作数(操作对象)和运算符组成的序列例如:赋值表达式、算术表达式、逻辑表达式、关系表达式、条件表达式等。C语言运算符优先等级口诀一、运算符优先级等级口诀圆方括号、箭头一句号,自增自减非反负、针强地址长度,乘除,加减,再移位,小等大等、等等不等,八位与,七位异,六位或,五与,四或,三疑,二赋,一真逗。其中“,”号为一个等级分段。二、运算符优先级等级注释“圆方括号、箭头一句号”指的是第15级的运算符。其中圆方括号很明显“()、[]”,箭头指的是指向结构体成员运算符“-”,句号指的是结构体成员运算符“.”;“自增自减非反负、针强地址长度”指的是第14级的运算符。其中非指的是逻辑运算符“!”,反指的是按位取反运算符“~”,负指的是负号运算符“-”,针指的是指针运算符“*”,强指的是强制类型转换运算符,地址指的是地址运算符“&”,长度指的是长度运算符“sizeof”;“乘除,加减,再移位”移位指的是左移运算符“”和右移运算符“”,其中除法还包括了取余运算符“%”;“小等大等、等等不等”指的是第10级到第9级的运算符:、=、和=,等等指的是等于运算符==,不等指的是不等于运算符!=“八位与,七位异,六位或”其中八位与指的是第8级的按位与运算符“&”,七位异指的是第7级的按位异或运算符“^”,六位或指的是第6级的按位或运算符“|”;“五与,四或”指的是第5级、第4级的逻辑与运算符“&&”和逻辑或运算符“||”;“三疑,二赋,一真逗”指的是第3级到第1级的运算符。其中,三疑指的是条件运算符“?:”(三有双重含义:即指优先级别是三,它的运算符类型也是三目,疑也取“?”之意),二赋指的是赋值运算符=、+=、-=、*=、/=、%=、=、=、&=、^=和|=,一真逗指的是第1级的“,”运算符,真字只是为了语句需要罢了。由于C语言的运算符优先级与C++的不完全一样(主要是增加了几个运算符),所以这个口诀不能完全实用于C++.但是应该能够兼容,大家可以比较一下他们的区别应该就能够很快掌握C++的优先级的!运算符一、什么是运算符:用来表示各种运算的符号二、单目运算符:只有一个运算对象的,称为单目运算符例如:++a,--4三、双目运算符:只有二个运算对象的,称为双目运算符.例如:5+62+3四、三目运算符:只有三个运算对象的,称为三目运算符例如:?表示式x?45:12五、什么表达式:用运算符把运算对象连接起来所组成的运算式称为表达式。六、C语言中的运算符:基本运算符和专用运算符1.基本运算符:算术运算:+-*/%(取模运算)5%4=1关系运算符:====!=(不等于)逻辑运算符:!&&||赋值运算符:基本赋值运算符(=),算术自反赋值运算符(+=,-=,*=,/=,%=)例如:a+=b等同于a=a+b;逗号运算符:(,)条件运算符:(?:)数值长度运算符:sizeof()位运算符:位逻辑运算符(~—|),位移位运算符(),位自反赋值运算符(&=||=^===)2.专用运算符:强制运算符:(),下标运算符[],成员运算符:-.指针运算符(&*+-)算术运算符一、算术运算符名称运算符运算规则结合性加+加法自左向右减-减法乘*乘法除/除法(取整)模%整除取余自增、减运算符一、单目前缀:先计算(本身进行自增、自减),再使用对象例如:nta=5;++a+6=二、单目后缀:先使用对象,本身再进行自增、自减。例如:a--b++三、例题讲解inta=6a--+3=9设变量定义如下:intn=10,m=3;floatf=5.0,g=10.0;doubled=5.0,e=10.0;则:1、n+m、n-m、n*m、n%m的结果分别是:2、f+g、f-g、f*g、f/g的结果分别是:3、d+e、d-e、d*e、d/e的结果分别是:4、n+m-f*g/d的结果分别是:5、n%m*f*d的结果分别是设变量定义如下:inta=3,b=3;charc1=’b’=98,c2=’B’=66;则:1、表达式:++a-1的值是,运算结束后变量a的值是2、表达式:b--+1的值是,运算结束后变量b的值是3、表达式:++c1-1的值是,运算结束后变量c1的值是4、表达式:c2--+1的值是,运算结束后变量c2的值是5、表达式:(a++)+(a++)的值是,运算结束后变量a的值是6、表达式:(b--)-(b--)的值是,运算结束后变量b的值是7、表达式:(a++)+b的值是,运算结束后变量a的值是b的值是8、表达式:(a--)-b的值是,运算结束后变量a的值是b的值是9、