GG学习C语言的笔记_第1页
GG学习C语言的笔记_第2页
GG学习C语言的笔记_第3页
GG学习C语言的笔记_第4页
GG学习C语言的笔记_第5页
已阅读5页,还剩9页未读, 继续免费阅读

下载本文档

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

文档简介

3.1C语言的基本元素一、符号集(字符集)I大、小与字母a宀讥、A〜Z II阿拉伯数字0〜9III下划线_标点符号和运算符逗号|竖线(左圆括号)右圆括号.圆点〜波折号[左方括号]右方括号分号#井号{左大括号}右大括号:冒号%百分号<左尖括号>右尖括号?问号&and(与)单引号双引号!感叹号Axor(异或)/斜杠\反斜杠*乘号-减号=AfrT.口等于号+加号以字母(大小写均可)或下划线开头。随后可跟若干个(包括以字母(大小写均可)或下划线开头。随后可跟若干个(包括0)字母、数字、下划线。标识符的长度各个系统不同,最好不超过8个字符。区分大、小写。(1)(2)(3)、,亠-^7-.注意:三、关键字(保留字):C语言中具有特定含义,专门用作语言特定成分的一类标识符。注意:(1)所有的关键字都有固定的意义,不能用作其他。(2)所有的关键字都必须用小写。3.2C的数据类型数据是操作的对象,数据类型是指数据的内在表现形式(代码、、存储、运算)数据类型(1)基本类型:整型(int)、实型(浮点型)、字符型(char)(2) 构造类型:数组类型、结构体类型、共用体类型、枚举类型(3) 指针类型(4) 空类型3.3常量和变量一、 常量和符号常量I常量:在程序运行过程中,其值不能被改变的量。II符号常量:用一个标识符代表的一个常量。#define标识符常量二、 变量(1) 变量:其值可以改变的量,它用标识符(变量名)来表示,在内存中占据一定的存储空间。变量的表示(变量名) 变量的值(存储单元)(2) 变量的定义:类型符标识符(3) 注意:见名知意、先定义后使用、必须使用合法的标识符作变量名、不能使用关键字作标识符(4) 习惯:符号常量名用大写,变量名用小写,以示区别。3.4整型数据一、整型常量(1) 十进制常量(2) 八进制常量由0〜7数字组成;最高位必须用0作引导符。如果前面有-号,表示对真值取反。(3)十六进制常量由0〜9、a〜f(A〜F)组成,最高位必须用Ox(OX)作引导符。二、整型变量(1) 整型数据在内存中的存放形式:数据在内存中以二进制的补码表示(符号位+二进制数值)正数:原码、反码、补码相同,符号位为0,数值为对应的二进制数。负数:原码符号位为1,数值为绝对值的二进制数。反码符号位为1,数值为绝对值的二进制数各位变反。补码符号位为1,数值为绝对值的二进制数各位变反加1。(2) 整型变量的分类根据其数值的范围:基本整型(int)2、短整型(shortint)2、长整型(longint)4根据变量的表数范围有符号数(signed)(可省略):最高位为符号位无符号(unsigned)(不可省):最高位为数据位(4) 有符号型:基本型:基本型的类型说明符为int,在内存中占2个字节,其取值的范围为-215〜215-1,即-32768〜32767。短整型:短整型的类型说明符为shortint或short,所占字节和取值范围均与基本型相同。长整型:长整型的类型说明符为longint或long,在内存中占4个字节,其取值范围是-231〜231-1,即-2147483648〜2147483647。(5) 无符号型:(1) 无符号基本型:类型说明符为unsignedint或unsigned,取值范围是0〜65535。(2) 无符号短整型:类型说明符为unsignedshort,与无符号基本型一样(3) 无符号长整型:类型说明符为unsignedlongint或unsignedlong,取值范围为0〜232-1,即0〜4294967295。(6) 整型变量的定义(7) 注意:(1)整数后有后缀u或U,认为是unsignedo(2)整数后有后缀l或L,认为是longint型。3.5实型数据一、 实型常量(实数又称浮点数)(1) 表示形式:(1)十进制数形式(2)指数形式(注意:e前后必须有数字,e后必须为整数)(2) 类型:缺省为double型(默认)后缀为f或F,为float型;后缀为l或L,为longdouble型。二、 实型变量(取值范围与值的精度与机器有关)(1) 单精度型(float型):占4个字节,7位有效数字(3.4e-38〜3.4e+38)(2) 双精度型(double型):占8个字节,15〜16位有效数字(1.7e-308〜1.7e+308)(3) longdouble型:占10个字节15~16位有效数字,3.4e-4932〜1.1e+4932)三、实型数据的舍入误差(1)在内存中,实型数据是以指数形式存放小数符号位 小数 指数符号位(阶符)指数( 有效数字 ) (范围 )若超过有效位,则被舍去,然后系统随机产生,故可能产生误差。3.6字符型数据一、 字符常量:用单引号括起来的一个字符。(包括字母、数字、各种符号等用ASCII码表示的字符)二、 转义字符:具有特殊意义的字符常量,它们都以'\'开头。(代表一个字符)(1)输出格式控制:\n 换行符\0空值\t 横向跳格\v 纵向跳格\b退格\a 报警\r 回车\f走纸换页(2)输出字符(1) \\ 输出\\ 输出(依此类推)(2)\ddd 1~3位八进制数表示的字符(ASCII码)例:'\101'代表字符'A'(3)\xhh 1~2位十六进制数表示的字符(ASCII码)例:'\x41'代表字符'A'三、 字符变量字符变量用来存放字符,且只能存放一个字符。定义方法:charc1,c2unsingnedcharc1,c2字符型变量的赋值方法:c1='a' c2=‘\101'c3=0xffc4='\377'四、 字符数据的存储(1) 将一个字符常量存放在一个字符变量中,是将该字符相应的ASCII码存放在存储单元中。(占用一个字节)(2) 字符数据可以与整型数据相互赋值。(3) 字符数据可以以字符型式输出,也可以以整型数形式输出。注意:TurboC把字符处理成带符号的整数。五、 字符串常量(1) 字符串常量:用一对双引号括起来的字符序列。(2) 字符串结束标记'\0'(一般由系统自动加上)例: 'a'为一个字符 a“a”为两个字符 a\0(3) 所储存的单元数:串长度+1(结束标记)3.7变量赋初值:在变量定义的同时设置初值,亦称初始化。注意: (1)intx=1,y=1,z=1不能写成x=y=z=1(2)没有赋初值,变量的值是随机。3.8不同类型数据间的混合运算3.9运算符和表达式一、C的运算符⑴算术运算符:+,-*,/,%⑵关系运算符:>,<,==,>=,<=,!=⑶逻辑有运算符:!,&&,II⑷位运算符:<< , >> ,〜,I,人,&⑸赋值运算符:=⑹条件运算符:?,:⑺逗号运算符:,⑻指针运算符:*, &⑼求字节运算符:sizof,⑽强制类型转换运算符: (类型)(11) 分量运算符:.,(12) 下标运算符:[](13) 其他二、算术运算符和算术表达式(1)基本的算术运算符+(加法运算符或正值运算符) -(减法运算符,或负值运算符)*(乘法运算符)2*X (*不能省略)/(除法运算符)注意:两个整数相除其值为整数,5/3=1除数、被除数有一为负值时,结果“向零取整”除数、被除数有一为实数时,结果为double型% 取余运算符或称模运算符(两侧均为整型数据)注意:7%4的值为3 -7%3、7%-3、-7%-3的值均为-3(符号由被除数决定)(2) 算术表达式和运算符的优先级别与结合型(1) 算术表达式:用算术运算符和括号运算符将运算对象(也叫操作数)连接起来的符合C语言规则的式子,称为算术表达式。(运算对象包括常量、变量、函数等)(2) 运算符的优先级别与结合型优先级:先*, / , % ,后+ ,-结合型:左结合性,即表达式从左到右进行计算。(3) 自增自减运算符++i ,--i在使用i之前,先使i的值加1或减1i++,i-- 在使用i之后,再使i的值加1或减1b=++a相当于a=a+1 ;b=ab=a++相当于b=a;a=a+1注意:(1)自增自减运算符只能用于变量,不能用于常量或表达式。(2)++和一的优先级别高于算术运算符,结合方向是“自右向左”例-i++相当于-(i++)3.10赋值运算符和赋值表达式(1) 赋值运算符:“=”形式:变量=表达式作用:将表达式的值赋给变量。(常量和变量是表达式的特例)注意:与数学里的等式不同。(2) 赋值结果和类型转换I 实型数据(包括单、双精度)赋給整型变量时,舍弃实数的小数部分。a+=a-=a*aa=2分析:a=a-(a*a)a=-2a=a+aa=-4注意:不能理解成a=a+(a-(a*a))例:IIIw整型数据赋給单、双精度变量时,数值不变,但以浮点数形式存储到变量中。(小数部分补0)长度相同的有符号和无符号的整型数间,原样赋值。(但数值有时会发生化)charIIIw整型数据赋給单、双精度变量时,数值不变,但以浮点数形式存储到变量中。(小数部分补0)长度相同的有符号和无符号的整型数间,原样赋值。(但数值有时会发生化)char、int、long等类型的转换①“短”数据赋給“长”变量符号扩展:若最高位为1(负数)则变量的高字节补1,反之补0。“长”数据赋給“短”变量只将低字节位原封不动送到变量中,舍去高字节。(数据可能会有差错)复合的赋值运算符在“=”之前加上其他运算符,构成复合的赋值运算符+=,-=,*=<<=,>>=,&=/=A=x=x*(y+8),%=,|=例如:x*=(y+8)等价于赋值表达式:由赋值运算符将一个变量和一个表达式连接起来的式子。形式:计算过程:(右结合)变量=表达式计算赋值运算符右侧“表达式”的值将计算结果赋給左边变量。赋值表达式的值就是被赋值的变量的值。数据类型的自动转换:自动将精度低、表示范围小的运算对象类型向精度高、表示范围大的运算对象类型转换强制类型转换:可以利用强制类型转换运算符,将一个表达式转换成所需类型。形式: (类型名)表达式表达式1,表达式表达式1,表达式2,表达式3, ,表达式i用于连接表达式。(1)(2)(3)(1)(2)(3)形式:求解表达式1求解表达式1再求表达式2,,表达式i整个逗号表达式的值是表达式i的值。一个逗号表达式又可与另一个表达式组成一个新的逗号表达式。逗号运算符是所有运算符中级别最低的。并不是任何地方出现的逗号都是逗号运算符。、,亠-^7-.

、,亠-^7-.

注意:t=5,t+5,t++表达式的值为t=5,t+5,t++表达式的值为2且t=1顺序结构程序设计(赋值语句和输入/输出函数)第4章4.1C语句概述语句是用来对数据进行加工(完成操作任务)。是构成程序的基本单位。通常一个C程序由若干个函数(系统,用户)组成。每一个函数由若干条语句组成,每条语句都由“;”结束。C语句的分类I简单语句㈠表达式语句;赋值语句(赋值表达式加一个;号)2•函数调用语句(函数调用表达式加一个;号)㈡结构控制语句;(控制程序流程)选择语句:if...elseswitch循环语句:forwhiledowhile转向语句:continuebreakreturngoto复合语句:将一组语句括在一对{}中说明:1.复合语句的{}后不能有;号2•复合语句中可以是简单语句、复合语句、空语句空语句:;/*仅有一个;*/空语句什么也不做,有时用作转向点,或为循环语句提供空体。4.2赋值语句(赋值表达式后面加一个分号,构成赋值表达式语句)1赋值表达式可以作为运算对象参与其他表达式的运算,而赋值语句则不能。2赋值语句只能作为一条单独的语句,或放在复合语句中。3赋值语句用途广泛。4.3字符输出函数putchar程序开头: #include“stdio.h”或#include<stdio.h> (变量定义,宏定义)默认的输入设备(键盘) 默认的输出设备(显示器)形式: putchar(C)功能: 在标准输出设备(即显示器屏幕)上输出一个字符。(将C的值输出到显示器上,C可以是字符型和整型的变量、常量、表达式)4.4字符输入函数getchar格式 getchar()作用:从键盘缓冲区读入一个字符。注意:1•当输入多个字符时,多余字符作废。(按回车健才开始接受字符)2•用getchar()得到的字符可以赋给字符型变量、整型变量、或作为表达式的一部分。3,getchar需要交互式输入,接收到字符之后才继续执行程序。4.5格式输出函数printf作用:向终端输出若干个类型任意的数据。形式:printf(格式控制符,输出项列表)(双引号括起来的字符串,要输出的内容)格式控制符:用双引号括起的字符串,用于指定输出数据的类型、格式、个数,包括普通字符和格式说明符。格式控制符的完整的格式:% + -m.nl/h(长度修正符) 格式字符% 格式说明的引导符号0 指定空位填0+ 使输出的数值数据无论正负都带符号输出- 使数据在输出域内按左对齐方式输出m.nm 即对应的输出项在输出设备上所占的字符数(即域宽)I实际数据宽度〉m,按实际数据宽度输出1/hlIIIIIIh②格式字符:

实行数据:字符型数据:实型数据:(小数点占1/hlIIIIIIh②格式字符:

实行数据:字符型数据:实型数据:(小数点占1个字节,占1位)实际数据宽度vm,左边补空。对实型数据,指定输出n位小数;对字符串,指定左端截取n个字符输出与d、0、x、u结合输入长整型数与f结合输入double型数只用于整型的格式字符修正为short指定输出项的数据类型和输出的格式有符号的十进制d无符号的八进制x单个字符c小数形式单精度f无符号的十进制o无符号的十六进制u字符串s指数形式单精度e变量地址变量的地址通过对变量名“求地址”运算得到。地址参数形式: &变量名 (&求地址运算符)格式控制符%*m1/h 格式字符 (不提倡使用m)* 忽略读入的数据(即不将读入数据赋給相应变量)输入数据的分隔㈠采用隐含的分隔符:空格、回车、Tab健㈡根据格式所指定的域宽来分隔数据(不提倡)。㈢采用用户指定的分隔符(不提倡)。scanf不使用u说明符,对unsigned型数据采用d、o、x输入。对数据输入不规定精度。(不能用m.n形式附加说明)在“格式控制”字符串中,若有格式说明以外的其他字符,输入时,应照原样输入。%c一次只接收一个字符。无需单引号,空格字符是个有效字符。scanf函数格式控制中的格式说明符与输出参数的个数和类型必须一一对应。IIIII自动决定f和e中较短一种,不打印无效的0g输出% %、,亠-^7-.

注意:对于单精度数,使用%f,仅前7位为有效数字,小数6位

对于双精度数,使用%1f,仅前16位为有效数字,小数6位

对于长整型数,应用%1d、%1x、%1u输出。(否则会出现错误)

注意事项:①编译程序只是检查、,亠-^7-.

注意:格式字符要用小写字母。格式字符控制串中可包含转义字符。格式字符控制串中的普通字符原样输出。输出项的参数可以是常数、变量、表达式、函数调用。printf函数格式控制中的格式说明符与输出参数的个数和类型必须一一对应。格式说明符的%与后面的描述符间不能有空格。4.6格式输入函数scanf格式:scanf(格式控制符,变量地址列表);作用:按格式控制符的要求将数据从终端传送到变量地址所指定的内存空间I注意:①②③⑥格式字符中无普通字符时,输入的数值型数据用空白符分隔,字符型数据不必分隔。⑦为了减少不必要的输出量,除了逗号、分号、空格符以外,格式控制中尽量不要出现普通字符,也不要出现转义字符。例1: scanf("a=%d,b=%f",&a,&b)例2: #include"stdio.h"voidmain(){floata,b;charc='a'inti=97a=31.1111b=28.333printf(“%f,%7.4f,\n",a+b,a—b)printf(“%c,%d,\n",c,c)printf(“%c,%d,\n”,i,i)printf(“%s,%%,\n",“china”)输出59.444099(59.4441有误差),2.7781 a,97a,97 china,%例3:#include"stdio.h"voidmain(){charc1,c2;c1='b';c2='98';putchar(c1);putchar(c2);putchar('b');putchar(98);} 输出bbbb(putchar输出不换行)例4:#include"stdio.h" /*输出控制字符、转义字符;*/voidmain(){putchar('101');putchar('\n');putchar('\\'); 输出A}\例5: f=12.345输出f=%5.1f f=12.3(最前面空1格)例6: #include"stdio.h"voidmain(){unsignedinta=65535;b=—2;printf(“a=%d,%o,%x,%u\n",a,a,a,a)printf(“b=%d,%o,%x,%u\n",b,b,b,b)}a=—1,177777,ffff,65535 b=—2,177776,fffe,65534例7: c=getchar(c)+32putchar(c)输入A输出a例8: %*d%忽略输出的一个整型数第五章选择结构语句(关系表达式、逻辑表达式、if、switch)5.1关系表达式关系运算:是对两个量进行“比较运算”。关系运算符:〉,<,>=,<=,==,!= (要区分“=”和“==”)优先级别>,<,>=, <=高于==, !=关系表达式:用关系运算符将两个表达式(算术、字符表达式)连接起来的有意义的式子。

字符量比较(ASCII字符量比较(ASCII码的大小)假(0)II(或)关系表达式的值是逻辑值: 真(1)5.2逻辑运算符逻辑有运算符:!(非) ,&&(与)逻辑量:当一个量(可以是基本类型的常量或变量)用作判断时,C编译系统认为:非0(真)0(假)逻辑表达式:用逻辑运算符将关系表达式或逻辑量连接起来的有意义的式子。(单个逻辑量、关系表达式是逻辑表达式的特例)。逻辑表达式的值:真(1)假(0)结合性:!为右结合5.3if语句一、if语句的三种形式e为逻辑表达式1•条件执行if(e)A当e为真执行A分支选择if(e)AelseB当e为真值(非0)时执行A,否则执行B或后续语句A或B可以为单一条语句,也可以是复合语句else部分不能独立存在。即else前一定要有“;”它必定为if语句的一部分注意:在C语言中,表达式e的值为非0时,系统均按“真值”处理。例:比较大小判断一交换法t=a;a=b;b=t(引入中间变量)elseif语句形式(梯递式的if-else语句)if(P1)S1elseif(P2)S2elseif(Pn)Snelse Sn+1系统从上到下逐个判断条件P,—旦发现某条件Pi满足时,则执行与它相关的语句Si,并跳过其他剩余的阶梯。若所有条件均不满足,则执行最后一个else语句或后续语句。注意:一般else与最近的if配套例floatxif(x=0.)ptintf("ok.") 注意小数点二、if语句的嵌套(实现多路分支)注意:①通过加“{ }”,可以改变else的位层,从而改变程序的执行流程。提倡缩格书写,有利于阅读程序。基本结构:if(p1)对于简单的嵌套的if语句,要注意是否使用“{ }”else总是与离它最近的尚未配对的if配对if(P2)AelseBelseif(P3)CelseD三、条件运算符和条件表达式(1)条件运算符: ?和: /*唯一的三目运算符*/(2)条件表达式:el?e2:e3(3) 执行过程:(1)计算el(2)若el为真(非零),计算并返回e2的值,否则计算并返回e3。(4)优先级别:!算术运算符关系运算符 &&II条件运算符赋值运算符逗号运算符(5) 结合性:右结合a>b?a:c>d?c:d相当于a>b?a:(c>d?c:d)(6) 对于二分支、并对同一变量进行时用条件表达式较方便。5.4开关语句(即多分支选择语句)开关语句与嵌套的if语句实现多路分支问题相比,其程序结构清晰、易懂。(1)格式:switch(e){caseC1:语句1caseC2:语句2caseCn:语句n[default:语句n+1]}注意:表达式e可以是整型、字符型、枚举型。(不能是实型)常量表达式Ci必须与表达式类型一致。(整型可以与字符型通用)(2)执行过程:1、 计算表达式e的值2、 若与常量表达式Ci(等价于语句标号)值一致,则从语句i开始执行;直到遇到break语句或switch语句的“;”(只有switch与break语句的结合才能实现程序的分支)3、 若与任何常量表达式的值均不一致时,则执行default语句,或执行后续语句。注意:1、常量表达式Ci仅起语句标号作用,不做求值判断。2、 常量表达式的值必须是唯一的,没有先后顺序。3、 多个case语句可共用一组执行语句。4、 同一个switch语句中任意两个case的常量表达式的值不能相同。5、 default可以写在语句体的任何位置,也可以不写。6、 case和常量表达式间必须有空格。关键:如何表示表达式和常量常量的取值与表达式有关。(可采取放大或缩小的方法)7.1基本概念1、 基本类型存储特点:每个变量单独储存,亦称简单变量。2、 构造类型:由基本类型构造而成的。(数组、结构体、共用体、枚举)3、 构造类型的每一个分量是一个变量,它可以是一个简单类型或构造类型。4、 构造类型的分量使用方法与简单变量相同。5、 构造类型的分量占用相邻的储存空间。6、 对于构造类型来说,重点是访问其分量的方法。7、 数组:按序排列的的具有相同类型的变量的集会。用一符号名(数组名)来表示这一组数。用数组名后跟一个下标来唯一地确定数组中的元素。数组的首地址、数组元素的类型和个数(数组长度)。7.2一维数组一、 定义一维数组类型名数组名l[exp]注意:exp为常量表达式1、 数组名的命名规则和简单变量命名规则相同。2、 数组名后只能用方括号括起来的常量表达式(常量和符号常量)。3、 常量表达式的值确定数组元素的个数(数组尺寸)。二、 一维数组的储存:用连续的内存单元存放各个元素。保存数组所需内存量与数组元素的基本类型和数组大小有关。总字节数=sizeof(基本类型)*数组元素个数三、 一维数组的引用数组要先定义后使用C语言规定只能逐个引用数组元素,而不能一次引用整个数组。引用一维数组元素的一般形式:数组名[

温馨提示

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

评论

0/150

提交评论