ASCII对照表ASCII(AmericanStandardCodeforInformationInterchange,美国信息互换标准代码)是基于拉丁字母的一套电脑编码系统。它主要用于显示现代英语和其他西欧语言。在计算机中,所有的数据在存储和运算时都要使用二进制数表示(因为计算机用高电平和低电平分别表示1和0),例如,象a、b、c、d这样的52个字母(包括大写)、以及0、1等数字还有一些常用的符号(例如*、#、@等)在计算机中存储时也要使用二进制数来表示,而具体用哪些二进制数字表示哪个符号,当然每个人都可以约定自己的一套(这就叫编码),而大家如果要想互相通信而不造成混乱,那么大家就必须使用相同的编码规则,于是美国有关的标准化组织就出台了所谓的ASCII编码,统一规定了上述常用符号用哪些二进制数来表示。ASCII值控制字符ASCII值控制字符ASCII值控制字符ASCII值控制字符0NUT32(space)64@96、1SOH33!65A97a2STX34”66B98b3ETX35#67C99c4EOT36$68D100d5ENQ37%69E101e6ACK38&70F102f7BEL39,71G103g8BS40(72H104h9HT41)73I105i10LF42*74J106j11VT43+75K107k12FF44,76L108l13CR45-77M109m14SO46.78N110n15SI47/79O111o16DLE48080P112p17DCI49181Q113q18DC250282R114r19DC351383X115s20DC452484T116t21NAK53585U117u22SYN54686V118v23TB55787W119w24CAN56888X120x25EM57989Y121y26SUB58:90Z122z27ESC59;91[123{28FS6092\124|29GS61=93]125}30RS6294^126~31US63?95—127DEL2C语言中的运算符表1级优先级()圆括号[]下标运算符-指向结构体成员运算符.结构体成员运算符2级优先级单目自右至左!逻辑非运算符~按位取反运算符++前缀增量运算符--前缀增量运算符+正号运算符-负号运算符(类型)类型转换运算符*指针运算符&地址与运算符sizeof长度运算符3级优先级*乘法运算符/除法运算符%取余运算符4级优先级+加法运算符-减法运算符5级优先级左移运算符右移运算符6级优先级==关系运算符7级优先级==等于运算符!=不等于运算符8级优先级&按位与运算符9级优先级^按位异或运算符10级优先级|按位或运算符11级优先级&&逻辑与运算符12级优先级||逻辑或运算符(双目运算自左至右13级优先级?:条件运算符(三目运算)(自右至左)14级优先级=+=-=*=/=%=&=^=|===赋值运算符(双目运算)(自右至左)15级优先级,逗号运算符自左至右3if语句(续)条件运算符•格式:表达式1?表达式2∶表达式3•功能:判断表达式1的值,如果成立就执行表达式2,否则就执行表达式3•使用场合:若在if语句中,当被判别的表达式的值为“真”或“假”时,都执行一个赋值语句且向同一个变量赋值时,可以用一个条件运算符来处理。switch语句的格式:switch(表达式){case常量表达式1:语句1case常量表达式2:语句2…case常量表达式n:语句ndefault:语句n+1}说明:(1)switch后面括弧内的“表达式”,ANSI标准允许它为任何类型。(2)当表达式的值与某一个case后面的常量表达式的值相等时,就执行此case后面的语句,若所有的case中的常量表达式的值都没有与表达式的值匹配的,就执行default后面的语句。(3)每一个case的常量表达式的值必须互不相同,否则就会出现互相矛盾的现象(对表达式的同一个值,有两种或多种执行方案)。(4)各个case和default的出现次序不影响执行结果。例如,可以先出现“default:…”,再出现“case′D′:…”,然后是“case′A′:…”。(5)执行完一个case后面的语句后,流程控制转移到下一个case继续执行。“case常量表达式”只是起语句标号作用,并不是在该处进行条件判断。在执行switch语句时,根据switch后面表达式的值找到匹配的入口标号,就从此标号开始执行下去,不再进行判断。应该在执行一个case分支后,可以用一个break语句来终止switch语句的执行。(6)多个case可以共用一组执行语句。•goto语句为无条件转向语句,它的一般形式为goto语句标号;4•语句标号用标识符表示,它的定名规则与变量名相同,即由字母、数字和下划线组成,其第一个字符必须为字母或下划线。结构化程序设计方法主张限制使用goto语句,因为滥用goto语句将使程序流程无规律、可读性差.一般来说,可以有两种用途:(1)与if语句一起构成循环结构;(2)从循环体中跳转到循环体外。While语句:while语句用来实现“当型”循环结构。一般形式:while(表达式)语句当表达式为非0值时,执行while语句中的内嵌语句。其特点是:先判断表达式,后执行语句。注意:(1)循环体如果包含一个以上的语句,应该用花括弧括起来,以复合语句形式出现。(2)在循环体中应有使循环趋向于结束的语句。如果无此语句,则i的值始终不改变,循环永不结束。do-while语句的特点:先执行循环体,然后判断循环条件是否成立。一般形式:do循环体语句while(表达式);执行过程:先执行一次指定的循环体语句,然后判别表达式,当表达式的值为非零(“真”)时,返回重新执行循环体语句,如此反复,直到表达式的值等于0为止,此时循环结束。while语句和用do-while语句的比较:在一般情况下,用while语句和用do-while语句处理同一问题时,若二者的循环体部分是一样的,它们的结果也一样。但是如果while后面的表达式一开始就为假(0值)时,两种循环的结果是不同的For语句:for(表达式1;表达式2;表达式3)语句for语句的执行过程:(1)先求解表达式1。(2)求解表达式2,若其值为真(值为非0),则执行for语句中指定的内嵌语句,然后执行下面第(3)步。若为假(值为0),则结束循环,转到第(5)步。(3)求解表达式3。(4)转回上面第(2)步骤继续执行。5(5)循环结束,执行for语句下面的一个语句for(循环变量赋初值;循环条件;循环变量增值)•下面几种都是合法的形式:(1)while()(2)do(3)for(;;){…{…{while()dofor(;;){…}{…}{…}}while();}}while();(4)while()(5)for(;;)(6)do{…{…{…do{…}while()for(;;){}while(){}…{…}…}}}while()凡用while循环能完成的,用for循环都能实现。表达式2?执行语句成立不成立执行for循环之后的语句执行表达式3执行表达式16(4)while循环、do-while循环和for循环,可以用break语句跳出循环,用continue语句结束本次循环(break语句和continue语句见下节)。而对用goto语句和if语句构成的循环,不能用break语句和continue语句进行控制.1、一维数组的定义格式为:类型说明符数组名[常量表达式];例如:inta[10];它表示定义了一个整形数组,数组名为a,此数组有10个元素。2、说明:(1)数组名定名规则和变量名相同,遵循标识符定名规则。(2)在定义数组时,需要指定数组中元素的个数,方括弧中的常量表达式用来表示元素的个数,即数组长度。例如,指定a[10],表示a数组有10个元素,注意下标是从0开始的,这10个元素是,a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9]。请持别注意,按上面的定义,不存在数组元素a[10]。(3)常量表达式中可以包括常量和符号常量,但不能包含变量。也就是说,C语言不允许对数组的大小作动态定义,即数组的大小不依赖于程序运行过程中变量的值。例如,下面这样定义数组是不行的:举例:intn;scanf(“%d″,&n);/*在程序中临时输入数组的大小*/inta[n];数组说明中其他常见的错误①floata[0];/*数组大小为0没有意义*/②intb(2)(3);/*不能使用圆括号*/③intk,a[k];/*不能用变量说明数组大小*/1、数组元素的引用方式:数组名[下标]下标可以是整型常量或整型表达式。例如:a[0]=a[5]+a[7]-a[2*3]一维数组的初始化1、对数组元素初始化的实现方法:(1)在定义数组时对数组元素赋以初值。例如:inta[10]={0,1,2,3,4,5,6,7,8,9};将数组元素的初值依次放在一对花括弧内。2)可以只给一部分元素赋值。例如:inta[10]={0,1,2,3,4};定义a数组有10个元素,但花括弧内只提供5个初值,这表示只给前面5个元素赋初值,后5个元素值为0(3)如果想使一个数组中全部元素值为0,可以写成inta[10]={0,0,0,0,0,0,0,0,0,0};或inta[10]={0};74)在对全部数组元素赋初值时,由于数据的个数已经确定,因此可以不指定数组长度。例如:inta[5]={1,2,3,4,5};也可以写成inta[]={1,2,3,4,5};但若数组长度与提供初值的个数不相同,则数组长度不能省略。二维数组的定义二维数组定义的一般形式为类型说明符数组名[常量表达式][常量表达式];例如:定义a为3×4(3行4列)的数组,b为5×10(5行10列)的数组。如下:floata[3][4],b[5][10];我们可以把二维数组看作是一种特殊的一维数组:它的元素又是一个一维数组。定义三维数组:floata[2][3][4];多维数组元素在内存中的排列顺序:第一维的下标变化最慢,最右边的下标变化最快。二维数组元素的表示形式为:数组名[下标][下标]例如:a[2][3]下标可以是整型表达式,如a[2-1][2*2-1]注意:不要写成a[2,3],a[2-1,2*2-1]形式在使用数组元素时,应该注意下标值应在已定义的数组大小的范围内。二维数组的引用数据类型数组名[常量表达式1][常量表达式2]={初始化数据};(1)分行给二维数组赋初值。如:inta[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};(2)可以将所有数据写在一个花括弧内,按数组排列的顺序对各元素赋初值。如:inta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};3)可以对部分元素赋初值。如inta[3][4]={{1},{5},{9}};(4)如果对全部元素都赋初值,则定义数组时对第一维的长度可以不指定,但第二维的长度不能省。在定义时也可以只对部分元素赋初值而省略第一维的长度,但应分行赋初值。字符数组的定义:用来存放字符数据的数组是字符数组。字符数组中的一个元素存放一个字符。字符数组的初始化:对字符数组初始化,最容易理解的方式是逐个字符赋给数组中各元素。如果在定义字符数组时不进行初始化,则数组中各元素的值是不可预料的。如果花括弧中提供的初值个数(即字符个数)大于数组长度,则按语法错误处理。如果初值个数小于数组长度,则只将这些字符赋给数组中前面那些元素,其余的元素自动定为空字符(即′\0′)。例如:charc[10]={′c′,′′,′p′,′r′,′o′,′g′,′r′,′a′,′m′};8字符串处理函数1.puts函数其一般形式为:puts(字符数组)•其作用是将一个字符串(以′\0′结束的字符序列)输出到终端。2.gets函数其一般形式为:gets(字符数组)其作用是从终端输入一个字符串到字符数组,并且得到一个函数值。