资源描述
单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,共 47页 第,*,页,第二章,2024/9/7,1,第二章2023/8/31,第一节,程序,设计的基本知识,第二节 数据与数据类型,第三节,C,语言的基本数据类型及其表示,第四节 算术运算与赋值运算,第五节 逗号运算,第六节 混合运算及数据类型转换,第二章 数据类型、运算符与表达式,2,第一节 程序设计的基本知识第二章 数据类型、运算符与表达式,2.1,程序,设计的基本知识,二、什么是数据结构,计算机的别名:,数据处理机;,数据元素:,数据的最小单位;,数据结构:,数据元素的组织形式.,把需要解决的问题用,计算机能完全理解的,方式描述给计算机。,一、什么是程序设计,程序设计,数据结构,算法,方法,工具,程序设计,编程,数据结构包括数据的逻辑结构和物理结构,它关系到软件或程序的复杂程度。,数据结构,数据类型,3,2.1 程序设计的基本知识二、什么是数据结构计算机的别名,算法:,解决问题的方法和有限的步骤,计算机语言的别名:,算法语言,2,R,L ,,R,2,S,三次乘法 一次乘方,R,A,,2A,L,AR,S,三次乘法,2,R,L,,RR,S,四次乘法,三、,什么是算法,例,求圆周长和圆面积,数学模型:,L2,R、 SR,2,三种算法:,可读性好,执行效率高,综合,的优点,2.1,程序,设计的基本知识(续),4,算法:解决问题的方法和有限的步骤 2R L , R2,算法的表示-流程图,开始,s=0,a=0,输入,n,s=s+a,a=a+1,an,Y,N,输出,s,结束,用规定的一系列图形、流程线和文字说明算法中的基本操作和控制流程,2.1,程序,设计的基本知识(续,),5,算法的表示-流程图开始输入ns=s+aanYN输出 s结,四、面向过程程序设计方法,三种基本结构:,顺序、选择、循环,模块组织:,按功能划分模块化,每个,模块易于理解且不可再分,设计过程:,自顶而下、逐步细化,目的:,改善环境,加快程序开发过程。,常用工具:,描述算法的图形工具、表,示结构的开发工具等。,五、程序设计工具,结构化程序设计,2.1,程序,设计的基本知识(续),6,四、面向过程程序设计方法三种基本结构:顺序、选择、循环目的:,六、程序设计步骤,分析问题,建立数学模型,确定数据结构,确定算法,描述算法,编制程序,调试程序,运行结果,程序设计:书写正确,结果正确,2.1,程序,设计的基本知识(续),7,六、程序设计步骤分析问题,建立数学模型程序设计:书写正确,结,数据的描述,数据的操作,程序,类型,运算符,算法,数据结构,程序的任务是对数据进行处理,,数据是程序处理的对象,,而运算符是施加给这些数据的操作。数据和运算符是表达式的基本元素。,2.2,数据与,数据类型,8,数据的描述程序类型运算符算法程序的任务是对数据进行处理,数据,数据类型,构造类型,指针类型,空类型,(,无值类型,),void,枚举类型,enum,数组类型,结构体类型,struct,共用体类型,union,基本类型,整型,int,字符型,char,实型(浮点型),单精度实型,float,双精度实型,double,C,语言,的数据类型有,2.2,数据与,数据类型(续),9,数据类型构造类型指针类型空类型(无值类型) void枚举类,关于类型的含义,1.不同类型数据在内存中占不同的,存储空,间,,且采取不同的,存储形式。,2.不同类型数据对应不同的,取值范围。,3.数据类型确定了允许对其进行的,操作。,2.2,数据与,数据类型,(完),10,关于类型的含义 2.2 数据与数据类型(完)10,2.3,C语言的基本数据类型,按照数据在程序中的取值:,值保持不变-常量,x=2 * y,值随程序运行变化-变量,基本类型,整型,int,字符型,char,实型(浮点型),11,2.3 C语言的基本数据类型 按照数据在程序中的取值:,一、常量,1. 在程序运行中,其值保持不变。,2. 表示方法:,整型 100,125,-100,实型 3.14 , 0.125,字符型 ,a, b,字符,串常量 “,string”,3.符号常量: #,define PI 3.14159,用指定的标识符表示某个常量,2.3.1 常量与变量,2.3,C语言的基本数据类型(续),12,一、常量1. 在程序运行中,其值保持不变。 整型 100,二、变量,3. 变量通过变量名标识,1. 在程序运行中,值发生变化,2. 必须先定义,再使用,int a,,b,;,类型 变量名表,变量,memory,a,8,256,3,变量名和内存中的存储单元相对应。编写程序时通过变量名来存、取存储单元。,2.3,C语言的基本数据类型(续),13,二、变量3. 变量通过变量名标识1. 在程序运行中,值发生变,(1)以字母或下划线开头,(2)不能用系统中的关键字作为变量名,规 定,int a,b A123,_b;,int a;,.,A=5;,4. 有关变量名的,规定,(3),变量名中的字母是,区分大小写,的。,sum,、stu_name、_age、Lts_1_2、a2,32,c、x.y、start+9、c2.0,NAME name,表示两个不同的标识符。,不提倡大小写混合使用,2.3,C语言的基本数据类型(续),14,(1)以字母或下划线开头(2)不能用系统中的关键字作为变量名,一、整型常量,有三种表,示形式,十进制,八进制,十六进制,1234,加前导,0,01234,0125,加前导,0,x 0x123,0xffff,整型数据包括,整型常量,和,整型变量,,整型数据以二进制补码形式存储,例,100、-8、0;010、024;0,x38、0X1F,2.3.2 整型数据,2.3,C语言的基本数据类型(续),15,一、整型常量有三种表十进制 1234加前导0 加前导0x,二、整型变量,掌握要点,1 有几种定义形式,2 每种形式占存储空间的大小,3 取值范围,4 输入输出格式,2.3,C语言的基本数据类型(续),16,二、整型变量 掌握要点 2.3 C语言的基本数据类型(续,1. 定义形式,共六种,基本整型,长整型,短整型,无符号整型,无符号短整型,无符号长整型,int,long int,short int,unsigned int,2. 占存储空间,一个变量,2,4,2,2,字节,unsigned short,unsigned long,2,4,2.3,C语言的基本数据类型(续),17,1. 定义形式共六种基本整型 int 2. 占存储空间一个变,3.整型变量的取值范围,类型说明符 长度 数的范围,基本型,int,2,字节,-3276832767,短整型,short,2,字节,-2,15,2,15,-1,长整型,long,4,字节,-2,31,2,31,-1,无符号整型,unsigned,2,字节,065535,无符号短整型,unsigned short,2,字节,065535,无符号长整型,unsigned long,4,字节,0(2,32,-1),2.3,C语言的基本数据类型(续),18,3.整型变量的取值范围 类型说明符,int,型数的表示范围:,存储长度16位二进制(2,Byte),0 0 0 0 0 0 0 0 0 0 0 0 0 0 0,1,=2,15,-1=32767,0 0 0 0 0 0 0 0 0 0 0 0 0 0,1 1,0,1 1 1 1 1 1 1 1 1 1 1 1 1 1 1,1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0,=1,=3,上面的数再加1是多少?,=-2,15,=-32768,例,补码表示,int,型表示数的范围,:,- 32768,32767,4. 输入输出形式 :,d,%ld,%x,%o,%u,2.3,C语言的基本数据类型(续),19,int型数的表示范围:0 0 0 0 0 0 0,包括实型常量和实型变量,一、实型常量,有两种表,示形式,小数,指数,0.123,3,e-3,实型常量只能用十进制形式表示,不能用八进制和十六进制,1,e3、1.8e-3、-123e-6、-.1e-3,e5、1e-3.2、e、.e-03,2.3.3 实型数据,用指数表示实型常量的规则,2.3,C语言的基本数据类型(续),20,包括实型常量和实型变量一、实型常量有两种表小数0.123实型,1. 定义形式,共三种,单精度,双精度,长双精度,float,double,long double,2. 占存储空间,一个变量,4,8,16,字节,二、实型变量,实型常量不区分单精度和双精度,2.3,C语言的基本数据类型(续),21,1. 定义形式共三种单精度 float2. 占存储空间一个变,3. 变量的取值范围,4.输入输出形式 %,f,类型 长度 数的范围 有效数字,单精度,float,4,10,-38,10,38,6-,7,位,双精度,double,8,10,-308,10,308,15-16,位,长双精度,long double,16,10,-4931,-10,4932,18-19,位,2.3,C语言的基本数据类型(续),22,3. 变量的取值范围4.输入输出形式 %f,实型数据在计算机中以,指数形式,存储,单精度实型变量用一个字节存放指数部分, 其余三个字节存数值部分 。,7位二进制,23位二进制,单精度实型,2,-23,= |,尾数,| b),?,a,:,b,目,关系,不同类型的变量,所,允许的操作不同,单目运算符,双目运算符,三目运算符,2.4 算术运算与赋值运算(续),31,三. 学习运算符应掌握的要点:* 运算符的种类与功能* 运算,*优先级:,运算符的执行顺序,*结合性:,优先级相同时的结合方向,*运算结果的类型,X=5+8,a100,X=a+,b*c,a+b-c,572,a=b=5,结果?,单目运算符的优先级高于双目运算符,单目运算符从右向左结合,双目运算符从左向右结合,2.4 算术运算与赋值运算(续),32,*优先级: 运算符的执行顺序 *结合性: 优先级相同时,2.4.2 算术运算符和算术表达式,1.,共有5个,:+,-,*,/,,%,2 “-”作为 负号时为单目,单目: -,双目:*, /, %,双目:+,-,4. 优先级:,5. 结合性,:,从左向右,3.,%,运算只适用于,整型数,取模(求余数),a=10%4,a,的值为,2,2.4 算术运算与赋值运算(续),33,2.4.2 算术运算符和算术表达式1. 共有5个:+,-,*,2.4.3 自增、自减运算符,1. 变量自身加(减)1,k =k+1,k +,先使用变量,k,的值,再加 1,+ k,先加1,再使用变量,k,的值,k = k-1,k - -,先使用变量,k,的值,再减 1,- -,k,先减1,再使用变量,k,的值,k=3; printf( “%d”, k +);,输出 3 后,k,的值为 4,i=3; printf( “%d”, + i);,输出4,2.4 算术运算与赋值运算(续),34,2.4.3 自增、自减运算符1. 变量自身加(减)1 k,2. 只能用于,变量,,不能用于,表达式,和,常量,3. 优先级:,高,于双目算术运算符,4. 结合性:,从右向左,(,i+k),+ , - -,3,i=3; k=i+ + i+ + i+;,i=?,i=3; k= +i + ( +i) + (+i);,2.4 算术运算与赋值运算(续),35,2. 只能用于变量,不能用于表达式和常量3. 优先级:高于双,例:,m,ain( ), int a , b , s ;,a = 5 ; b = 5 ;,s=,a+b,; printf(“%d,%d,%dn”,a,b,s);,s=,a+ +b;,printf(“%d,%d,%dn”,a,b,s);,s=,+a+,b,;,printf(“%d,%d,%dn”,a,b,s);,s=,- -a +b;,printf(“%d,%d,%dn”,a,b,s);,s=,a- - +b;,printf(“%d,%d,%dn”,a,b,s);,s=,a + b;,printf(“%d,%d,%dn”,a,b,s);,2.4 算术运算与赋值运算(续),36,例: main( ) 2.4 算术运算与赋值运算,s = a + b ;,s = a+ +b ;,s = +a +b ;,s = - -a +b ;,s = a- - +b ;,s = a + b ;,a=5, b=5,5+5=10,5+5=10,7,+5=12,6,+5=11,6,+5=11,5+5=10,a b s,5,5,10,6,5,10,7,5,12,6,5,11,5,5,11,5,5,10,题目分析,s,2.4 算术运算与赋值运算(续),37,s = a + b ; a=5, b=55+5=,2.4.4 赋值运算符赋值表达式,1. 将一个常量或一个表达式的值赋给一个变量称为赋值,x = 5 y = x + 10,2. 可以将一个实型赋给一个整型,或将一个整型赋给一个实型,int x, x=5.3; x,的值为 5,float y, y=5; y,的,值为 5.000000,3. 赋值运算的优先级,比算术运算低,4. 赋值运算的结合性,从右向左,X = y = 5,2.4 算术运算与赋值运算(续),38,2.4.4 赋值运算符赋值表达式1. 将一个常量或一个表达,2.4.6 复合赋值运算符和复合赋值表达式,赋值运算符两侧出现相同的变量,x=x+n,x=x-n,x=x*n,x=x/n,x=x%n,x + = n,x - = n,x * = n,x / = n,x% = n,算术运算与赋值运算相结合,X,与,n,均,为整数,x=x+n,n,为常数,2.4 算术运算与赋值运算(续),x+=n,39,2.4.6 复合赋值运算符和复合赋值表达式赋值运算符两侧出,例,main( ),int a, b, c, d, e;,a=2; b=5 ;c= 6;d=10;,a + =b; b- =c;,c * =d; d / =a;,a%=c;,printf(“%d,%d,%d,%dn”,a , b , c , d);,结果?,7,-1,60,1,2.4 算术运算与赋值运算(续),40,例main( ) 结果?7,-1,60,1 2.4 算术,一、逗号运算符,(表达式 1,表达式 2,表达式 3,表达式,n,),用于连接几个表达式,二、求解过程,顺序求解几个表达式,三、优先级,逗号运算符的优先级最低,四、结合性,从左向右,五、逗号表达式,逗号表达式的值为最后一个表达式的值(表达式,n,的值),X =,(,(,a=4*5 , a*2,), a+6,),a,为?,20,x,为?,26,2.5 逗号运算,2.5.1 逗号运算符,41,一、逗号运算符,(表达式 1,表达式 2,表达式 3,表,2.6 混合运算及数据类型转换,不同数据类型需先转换成同一类型,然后进行运算,方式,自动进行-隐式转换,强制进行-显式转换,一、隐式转换(算术转换),级别低的向级别高的转换,double float,long,unsigned,int char, short,int i; float f; double d; long e;,表达式:,10+,a+i*f-d/e,的结果为:,double,42,2.6 混合运算及数据类型转换 不同数据类型需先转换成同,二、显式转换(强制转换),(,int) (,10-+,a+i*f-d/e,),将该结果强制转换为整型,若有:,int i;float f;,则,(,int),f%i,取模运算要求运算分量是,整数,,所以先将,f,转换为整型,,,再做,%,运算。,三、赋值转换,赋值符号右边的类型向左边的转换,int x;,float y = 5.3;,x=y;,int x=5;,float y;,y=x;,2.6 混合运算及数据类型转换(续),43,二、显式转换(强制转换) (int) (10-+a+i*,一 、,C,中的基本数据类型,每一种类型的定义方式,(关键字),在存储空间中所占的字节数,存储形式,取值范围。,二、,C,中的运算符的几个要点(功能,与运算分量的关系,优,先级 ,结合性,运算结果的类型,)。,三 、算术运算符中的%只使用在,int,类型。,第二章 总结,四、 自增,自减运算的特点,灵活使用,k+,+k。,五 、复合的赋值运算规则。,七、 不同类型数据转换时的优先顺序,八、单目运算,双目运算的优先级和结合性特点,熟记基本概念和规则!,44,一 、C中的基本数据类型,每一种类型的定义方式(关键字),二 、 补充习题:,1、C,语言规定,在源文件中,,main(),的位置,: ( ),A、,必须在最开始,B、,必须在库函数后,C、,可以在任意位置,D、,必须在所有函数最后,2、一个,C,程序的执行是从: ( ),A、,从主函数开始,在主函数中结束;,B、,从第一个函数开始,到最后一个函数结束;,C、,从主函数开始,到最后一个函数结束;,D、,从第一个函数开始,到主函数中结束。,3、下面选项中,全为不合法的用户标识符的选项是: ( ),一、课后习题(,P41 3、6、7、9、10、12),第三章 习题,45,二 、 补充习题:一、课后习题(P41 3、6、7、9、1,A)、 A B)、 float C)、 b-a D)、-123,p_0 1a0 goto temp,do _a int INT,4、,以下叙述种不正确的是: ( ),A、,在,C,程序中,逗号运算符优先级最低;,B、,在,C,程序中,,AHP,和,ahp,代表两个不同的变量;,C、,若变量,a、b,类型相同,则表达式,a=b,是将,b,的值放入,a,中,而,b,不变;,D、,输入数据时,整型变量只能输入整数,实型变量则只能输入实数。,5、设有说明:,char w; int x; float y; double z;,则表达式:,w*x+z-y,的值的类型为 : ( ),A、 float B、char C、int D、double,第二章 习题,46,A)、 A B)、 flo,6、,在,C,语言中,,int,型数据在内存中占用2字节存储单元,则,int,型数据的取值范围为:_。,7、,若,a,为,int,型变量,则如下表达式的值为:_。,(a=4*5), a+=5, a+6,8、,若有如下定义:,int b=7; float a=2.5, c=4.7;,则表达式:,a+(int)(b/3*(a+c)/2)%4,的值为:_。,第二章 习题,47,6、在C语言中,int型数据在内存中占用2字节存储单元,则i,
展开阅读全文