C语言的基本知识

上传人:阳*** 文档编号:52510965 上传时间:2022-02-08 格式:PPT 页数:67 大小:551.50KB
返回 下载 相关 举报
C语言的基本知识_第1页
第1页 / 共67页
C语言的基本知识_第2页
第2页 / 共67页
C语言的基本知识_第3页
第3页 / 共67页
点击查看更多>>
资源描述
C语言的基本知识本章学习的内容 程序的基本结构和书写格式 基本数据类型和变量 运算符和表达式 运算符的优先级 C语言的基本知识第一个C程序 /* The first C Program*/ #include main() printf(“Hello,World!”); 输出:Hello,World!注释编译预处理函数语句C语言的基本知识C C程序格式和结构特点/*求两个正整数的最大公约数求两个正整数的最大公约数*/#include main() int m, n, r; scanf(%d%d, &m, &n); r=mod(m, n); while (r!=0) m=n; n=r; r=mod(m, n); printf(最大公约数为:最大公约数为:%dn, n); int mod(int x, int y) return (x%y);C语言的基本知识本章学习的内容 程序的基本结构和书写格式 基本数据类型和变量 运算符和表达式 运算符的优先级 C语言的基本知识程序程序=数据结构数据结构+ +算法算法在程序中定义所要处理数据的类型和组织形式 对解题方法和解题步骤的描述 C语言的基本知识 C语言的数据类型语言的数据类型 数组数组共用体类型共用体类型结构体类型结构体类型构造类型构造类型基本类型基本类型指针类型:指针类型:枚举类型枚举类型 实型(浮点型)实型(浮点型) 字符型字符型(char)整型整型 (int) 双精度型双精度型(double)单精度型单精度型( (float) )空类型:空类型:其值用来表示某个量在内存储器中的地址其值用来表示某个量在内存储器中的地址 函数调用后,不需要向调用者返回任何值,函数调用后,不需要向调用者返回任何值,则可将该函数定为空类型。则可将该函数定为空类型。 数据类型决定:1. 数据占内存字节数2. 数据取值范围3. 其上可进行的操作C语言的基本知识基本数据类型TypeSize数值范围数值范围无值型无值型void0 byte无值域无值域布尔型布尔型bool 1 bytetrue false 有符号短整型有符号短整型short int /signed short int2 byte-3276832767无符号短整型无符号短整型unsigned short int2 byte065535有符号整型有符号整型int /signed int4 byte-21474836482147483647无符号整型无符号整型unsigned int4 byte04294967295有符号长整型有符号长整型long int/signed long int4 byte-21474836482147483647无符号长整型无符号长整型unsigned long int4 byte04294967295long long8 byte0184467440有符号字符型有符号字符型char/signed char1 byte-128127无符号字符型无符号字符型unsigned char1 byte0255宽字符型宽字符型wchar_t (unsigned short.)2 byte065535单精度浮点型单精度浮点型float4 byte-3.4E-383.4E+38双精度浮点型双精度浮点型double8 byte1.7E-3081.7E+308C语言的基本知识常量和变量:常量和变量:数据在程序中的书写方式数据在程序中的书写方式 在程序在程序运行运行过程中过程中值不变值不变的量的量-常量常量 在程序在程序运行运行过程中过程中值可发生改变值可发生改变的量的量-变量变量 (一)、常量(一)、常量按类型分为:整型常量、实型常量、字符常量、按类型分为:整型常量、实型常量、字符常量、字符串常量、符号常量和枚举常量字符串常量、符号常量和枚举常量C语言的基本知识变量使用注意事项变量使用注意事项 变量必须先定义,后使用变量必须先定义,后使用 所有变量必须在第一条可执行语句前定义所有变量必须在第一条可执行语句前定义 一条声明语句可声明若干个同类型的变量一条声明语句可声明若干个同类型的变量 int a, b; 声明变量时,最好初始化变量声明变量时,最好初始化变量 int a=10; 变量名由标识符表示,只能由字母、数字和下划线三变量名由标识符表示,只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线种字符组成,且第一个字符必须为字母或下划线 int T.Jay, cbc, 3c, b-c, _cd, b6b;C语言的基本知识 声明的顺序无关紧要声明的顺序无关紧要 变量定义后,即占用内存,可向其存入各变量定义后,即占用内存,可向其存入各种数据,并可通过变量名使用数据种数据,并可通过变量名使用数据 选变量名时,要做到选变量名时,要做到“见名知意见名知意”,对变,对变量名的描述就是最佳的变量名量名的描述就是最佳的变量名 例如:例如:seatCount, numTeamMembers 变量名平均长度在变量名平均长度在1016个字符时,调试个字符时,调试程序花费力气最小。程序花费力气最小。C语言的基本知识整型常量的几种表示形式:整型常量的几种表示形式: 十进制、八进制、十六进制十进制、八进制、十六进制整型常量的类型确定:整型常量的类型确定: 长整型常量:常量后跟长整型常量:常量后跟 L 或或 l 来表示来表示 无符号整型常量:常量后跟无符号整型常量:常量后跟 U 或或 u 来表示来表示 无符号长整型常量:常量后跟无符号长整型常量:常量后跟LU或或lu来表示来表示整型数据整型数据C语言的基本知识 十进制整数:以十进制整数:以非非0开头,由数字开头,由数字 09组成,可带正负号组成,可带正负号如:如:C语言的基本知识2. 八进制整数:八进制整数:,C语言的基本知识3. 十六进制整数:十六进制整数:,由由组成,组成,可带正负号可带正负号如:如:十六进制长整型数十六进制长整型数 :0 x12,0 x3,0 x4十六进制长整型数:十六进制长整型数: 0X12DFL C语言的基本知识类型说明符数的范围 分配字节数int -3276832767 short int -3276832767 signed int -3276832767 unsigned int 065535 long int -21474836482147483647 unsigned long 04294967295 C语言的基本知识0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0当当n=1时时当当n=-1时时16位:位: -327683276700000000000000010 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1-32768327671 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1C语言的基本知识实型数据实型数据一、实型常量一、实型常量实型常量也称为实数或者浮点数实型常量也称为实数或者浮点数 两种表现形式:两种表现形式:1、十进制数形式:、十进制数形式:由数字由数字09及及小数点小数点组成组成 如如 0.0,.25,5.789,0.13 2、指数形式、指数形式: 由十进制数,加阶码标志由十进制数,加阶码标志“e”或或“E”以以 及阶码(只能为整数,可以带符号)组成及阶码(只能为整数,可以带符号)组成 如:如:1.2E12 错误表示:错误表示:345 (无小数点无小数点),E7 (阶码标志阶码标志E之前无数之前无数 字字),-5 (无阶码标志无阶码标志),53.-E3 (负号位置不对负号位置不对),2.7E (无阶码无阶码)C语言的基本知识实型常量的类型确定:实型常量的类型确定: 实型常量隐含按双精度处理实型常量隐含按双精度处理 单精度实型常量:常量后跟单精度实型常量:常量后跟 F 或或 f 来表示来表示 长双精度实型常量:常量后跟长双精度实型常量:常量后跟L或或l来表示来表示C语言的基本知识实型变量 实型变量分为两类:单精度型和双精度型 类型说明类型说明 分配字节数分配字节数 float double C语言的基本知识 一般系统中,一般系统中,单精度(单精度(float) )类型提供类型提供7 7位位有效数字,有效数字,双精度双精度( (double) )类型提供类型提供1616位位有效数字有效数字, ,尾数部分尾数部分四舍五入四舍五入如:如:float a; double b; a=66666.6666 /* 实际机器中实际机器中a=66666.67*/ b=66666.6666666666 /* 实际机器中实际机器中b=66666.666666667*/C语言的基本知识浮点数据浮点数据的机内表示:jS阶码阶码阶符阶符阶码数值部分阶码数值部分尾数尾数数符数符尾数数值部分尾数数值部分 阶码是整数,阶符和阶码的位数合起来反映浮点数的表示范阶码是整数,阶符和阶码的位数合起来反映浮点数的表示范围及小数点的实际位置;尾数是小数,其位数反映了浮点数的围及小数点的实际位置;尾数是小数,其位数反映了浮点数的精度;尾数的符号代表浮点精度;尾数的符号代表浮点数的数的正负。正负。 C语言的基本知识浮点变量的说明符号位符号位阶码阶码尾数尾数总位数总位数有效位数有效位数单精度类单精度类型型1823327双精度类双精度类型型11152641516C语言的基本知识字符型量 字符常量:字符常量是用单引号括起来的一个字符,如 a,-,? 1.字符常量只能用单引号括起来,不能用双引号或其它括号2.字符常量只能是单个字符,不能是字符串3.字符可以是字符集中任意字符,但数字被定义为字符型之后就不能参与数值运算。如4和4 是不同的,4是字符常量,不能参与运算C语言的基本知识转义字符 一种特殊形式的字符常量,以反斜线一种特殊形式的字符常量,以反斜线“”开开头的字符序列,表示特定的控制功能头的字符序列,表示特定的控制功能C语言的基本知识字符变量 字符变量的类型说明符是char,一个字符变量存放一个字符,一个字符变量占有1个字节 char ABC; ABC=D; 字符值是以ASCII码的形式存放在变量的内存单元之中的,存储的不是字符,而是该字存储的不是字符,而是该字符对应的符对应的ASCII码值码值,取值范围(,取值范围(128 ,127 )C语言的基本知识 char a=x; /a的值为x对应ASCII值120 char b=y; / b的值为y对应ASCII值121 char c=a+b; /c的值为241-256=-15 预防溢出(Overflow)C语言的基本知识字符串常量 由一对双引号括起的字符序列 如”I am a string”, “湖南”C语言的基本知识字符常量字符常量 字符串常量字符串常量 单引号单引号 双引号双引号 1个字符个字符 多个字符多个字符字符变量字符变量 字符数组字符数组一个字节一个字节 字符串中字节数字符串中字节数+1 (0结束标志)结束标志) 引用形式:引用形式:存放内容:存放内容:赋值对象:赋值对象:占用空间:占用空间:C语言的基本知识符号常量符号常量 可以用一个标识符来表示一个常量,称之可以用一个标识符来表示一个常量,称之为符号常量为符号常量 C语言的基本知识 C语言的基本知识枚举(Enumeration)常量一个被遗忘的角色从程序来窥其一斑 enum weeks MON, TUE, WED, THU, FRI, SAT, SUN; enum weeks today; enum response no, yes, none; enum response answer; today = TUE; answer = yes; if (answer = yes) printf(Today is Tuesday.n); else printf(Today is NOT Tuesday.n);C语言的基本知识变量类型的转换 自动转换 发生在不同数据类型的变量混合运算时,由编译系统自动完成 强制转换 通过类型转换运算来实现 (类型说明符) (表达式) (int) (a+b)C语言的基本知识自动转换原则 1. 若参与运算量的类型不同,则先转换成同一类型,然后进行运算。2.转换按数据长度增加的方向进行,以保证精度不降低。3.所有的浮点运算都是以双精度进行的,即使仅含float单精度量运算的表达式,也要先转换成double型,再作运算。4.char型和short型参与运算时,必须先转换成int型5.在赋值运算中,赋值号两边量的数据类型不同时, 赋值号右边量的类型将转换为左边量的类型。 如果右边量的数据类型长度左边长时,将丢失一部分数据,这样会降低精度, 丢失的部分按四舍五入向前舍入 C语言的基本知识 无论是强制转换或是自动转换,都只是为了本次运算的需要而对变量的数据长度进行的临时性转换,而不改变数据说明时对该变量定义的类型 int b = 1 + x + 1.8;C语言的基本知识本章学习的内容 程序的基本结构和书写格式 基本数据类型和变量 运算符和表达式 运算符的优先级 C语言的基本知识 C C运算符及表达式运算符及表达式 算术运算符,自增、自减运算符算术运算符,自增、自减运算符 赋值运算符赋值运算符 ,逗号运算符,逗号运算符 位式运算符及特殊运算符、关系运算符位式运算符及特殊运算符、关系运算符 逻辑运算符,条件运算符等。逻辑运算符,条件运算符等。 使用时注意优先级别及结合性使用时注意优先级别及结合性C语言的基本知识结合性 在表达式中,在表达式中, 各运算量参与运算的先后顺各运算量参与运算的先后顺序不仅要遵守运算符优先级别的规定,还序不仅要遵守运算符优先级别的规定,还要受运算符结合性的制约,要受运算符结合性的制约, 以便确定是自以便确定是自左向右进行运算还是自右向左进行运算左向右进行运算还是自右向左进行运算 算术运算符的结合性是自左至右,即先左算术运算符的结合性是自左至右,即先左后右后右:x-y+z 赋值运算符是右结合性运算符:赋值运算符是右结合性运算符:x=y=z;C语言的基本知识一、算术运算符 基本的算术运算符: + - * / % 说明:(1)在“”运算中,若操作数均为整数,则执行整除运算,舍去小数部分。例如:5/3= 1(2)“”要求两侧均为整数,“”运算不能用于float 和 double型数据 例如: 2 (3) 的优先级高于C语言的基本知识二、自增、自减运算符(、- -) +i,- - i (先加/减1,然后取i的值) i+,i- - (先取i的值,然后加/减1) b=2 ,a=2b=2 ,a=3作用:使变量的值增或减,如:作用:使变量的值增或减,如:例如:例如:int a=1 , b; b=+a ; b=a+ ;先使用先使用i i的值,再执行的值,再执行i=i+1i=i+1先执行先执行i=i+1i=i+1,再使用,再使用i i的值的值+i+ii+i+C语言的基本知识例如:例如:1010,(,(x+y)+x+y)+,+a, b+ ,+a, b+ 中合法的为:中合法的为:例如:例如:a+b+b+(a+)C语言的基本知识如:如:I+J (I+)+J 如:如:I=3 K=K=(I+)+(I+)+(I+)结果:结果:k k=9 , I=6如:如:I=3 I = =(I+)+(+ I )+(I+)结果:结果:I=14C语言的基本知识如:如:printf(“%d,%dn”, I, I+);输出:输出: 4,3 C语言的基本知识三、赋值运算符和赋值表达式 1.赋值运算符为 “=” 形式:变量名=常量或表达式 作用:将一个数据赋给一个变量 右结合性 例如:a=3; b=c+d ;C规定:任何表达式在末尾加上分号就构成语句。如:A=B+C 表达式 A=B+C; 语句C语言的基本知识“=”号两端数据类型不同时进行转换号两端数据类型不同时进行转换 转换是系统自动进行的,右边转换为左边类转换是系统自动进行的,右边转换为左边类型。规则如下:型。规则如下: (1)整型)整型=实型实型 舍去小数部分舍去小数部分 (2)实型)实型=整型整型 值不变,以浮点形式存放值不变,以浮点形式存放 (3)整型)整型=字符型字符型 值放入低值放入低8位,高位,高8位为位为0 (4)字符型)字符型=整型整型 仅将整型低仅将整型低8位存入位存入C语言的基本知识 复合赋值运算符:在赋值符复合赋值运算符:在赋值符“=”=”之前加上其之前加上其它运算符它运算符 共有共有1010种复合赋值运算符种复合赋值运算符 += += ,= =, ,& &, = =, |=|= 复合的赋值运算的作用:复合的赋值运算的作用: 简化程序,提高编简化程序,提高编译效率。译效率。 例如:例如: a+=6 x*=y+3C语言的基本知识四、逗号运算符和逗号表达式1.逗号运算符(顺序求值运算符) :即“,”优先级:为所有运算符中级别最低的2.逗号表达式 形式:表达式1,表达式2表达式n 求解过程:顺次求解表达式1,表达式2最后求解表达式n逗号表达式的值为: 表达式n的值C语言的基本知识例如:例如:a=3a=3* *5,a5,a* *4 4 (a=3a=3* *5,a5,a* *4 4 ),),a+5a+5x=(a=4%3 , a+1, a*10)表达式的值为:表达式的值为:6060表达式的值为:表达式的值为:2020表达式的值为:表达式的值为:1010C语言的基本知识& 按位与按位与 (二元运算)(二元运算)| 按位或按位或 (二元运算)(二元运算) 按位异或按位异或 (二元运算)(二元运算) 右移右移 (二元运算)(二元运算) 按位取反按位取反 (一元运算)(一元运算)C语言的基本知识例:例:Main() int i; i=(31); /*左移左移1位位*/ printf(“%dn”,i);输出为:输出为:6C语言的基本知识 六、关系运算符和关系表达式语言中的关系运算符有种。(左结合性)语言中的关系运算符有种。(左结合性)2. 算术运算符算术运算符 (高高) 关系运算符关系运算符 赋值运算符赋值运算符 (低低)优先次序:优先次序:1.前种同级,高于后种(后种同级)前种同级,高于后种(后种同级)例如例如: x != y、 s - db+c 、a= = bcC语言的基本知识C语言的基本知识 int a;a = 0;a = 1; int a;a = 0;a = 1; int a=0;if (0 = a)printf(OK); int a=0;if (0 = a)printf(OK);C语言的基本知识n关系表达式用关系运算符连接起来的式子 值为逻辑型。(1,0) 如:(ab)(bc) 、ay 、s+fd 语言没有逻辑型数据,关系表达式的真、假是以 数值“”代表“真”,以“”代表“假”。例:设例:设A=3,B=2,C=1 则:则:AB 值为值为1 (AB)=C 值为值为1D=AB 值为值为1 F=ABC 值为值为0C语言的基本知识 七、逻辑运算符和逻辑表达式七、逻辑运算符和逻辑表达式C C语言提供三种逻辑运算符:语言提供三种逻辑运算符: & (逻辑与逻辑与) | (逻辑或逻辑或) ! (逻辑非逻辑非) C语言的基本知识 优先级: ! 高于 & 高于 | 混合运算中: ! 高 算术运算 关系运算 &、| 低 赋值运算注:注:如何判断一个逻辑表达式为如何判断一个逻辑表达式为“真、假真、假”? 用用“非非”代表代表 “真真”,用,用“”代表代表“假假”。 如:如: b& 0 值为:值为:“ 0 ”C语言的基本知识逻辑表达式:逻辑表达式: 运算结果为逻辑值运算结果为逻辑值 编译系统以非编译系统以非0、0判定逻辑值真、假判定逻辑值真、假 逻辑表达式中作为参加逻辑运算的运算对逻辑表达式中作为参加逻辑运算的运算对象可以是象可以是0或非或非0数值。但要区分运算对象。数值。但要区分运算对象。 例:例:53&2|8y;C语言的基本知识条件运算:条件运算:根据条件确定某个表达式结果根据条件确定某个表达式结果 的值。(的值。(C语言中唯一语言中唯一 的一个的一个 三目运算)三目运算) 运算符:运算符:?和和 :条件表达式形式:条件表达式形式: 表达式表达式1?表达式表达式2:表达式表达式3八、条件运算符和条件表达式八、条件运算符和条件表达式C语言的基本知识 执行过程执行过程:C语言的基本知识 (2)结合方向为)结合方向为“右到左右到左”(1)条件运算优于赋值运算)条件运算优于赋值运算 如:如:max=ab ? a:b 将条件表达式的值赋将条件表达式的值赋给变量给变量max说明:说明:例:设例:设a,b,c,d的值为的值为1、2、3、4求下述表达求下述表达式的值式的值 max=ab ? a: cd ? c:d 等价于等价于 max=ab ? a:(cd ? c:d) 结果为:结果为:4C语言的基本知识(3)条件表达式中,各表达式类型可不同)条件表达式中,各表达式类型可不同 例:例: xy ? 1:1.5 若若x=y则值为则值为1.5,否则值为,否则值为1.0 表达式值的类型为两者中较高类型(整变实)表达式值的类型为两者中较高类型(整变实) C语言的基本知识 一元变换:一元变换: & 取地址取地址 * 取内容取内容此外,还有:此外,还有: 特殊运算符:特殊运算符:()() . C语言的基本知识定义定义 用算术运算符将运算对象连接起来的式子。用算术运算符将运算对象连接起来的式子。 其中:运算对象包括常量、变量、函数等。其中:运算对象包括常量、变量、函数等。举例举例a+bc+da+b/c+d(a+b)/(c+d)a+b2c(a+b)/2c(a+b)/2*c(a+b)/(2.0*c)cos45+2ex cos(45)+2*exp(x)cos(3.14*45/180) +2.0*exp(x)C语言的基本知识本章学习的内容 程序的基本结构和书写格式 基本数据类型和变量 运算符和表达式 运算符的优先级 C语言的基本知识C语言的基本知识总结标识符的命名规则数据类型 char,short,int,long,float,double,long double signed,unsigned enum sizeof常数、转义字符算术运算、关系运算、逻辑运算、加一/减一运算、位运算、赋值运算类型转换 ? :优先级
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!