资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,*,页,C语言程序设计,信息与计算机学院,朱诚:,zhucheng,11/26/2024,1,第二章 数据类型、运算符与表达式,预备知识:什么程序?,程序,就是指令的有序集合,对应着,一系列的数据加工步骤,11/26/2024,2,第二章 数据类型、运算符与表达式,例,:求2个整数的和,并将结果显示出来,(1)先准备2个整数,a=123,b=234,;,(2)计算 sum=a+b;,(3)输出结果。,这是人脑的思维形式,计算机该怎么办?,(,1)将第一个操作数送入内存单元;,(2)将第二个操作数送入内存单元;,(3)CPU从内存中取数进行加法运算,(4)将运算结果送入内存单元存储,(5)将结果输出到输出设备(如显示器),冯.诺依曼结构,:,计算机,运算器,控制器,存储器,主机:,I/O,设备,:键盘、显示器等,中央处理器,CPU,11/26/2024,3,第二章 数据类型、运算符与表达式,#include “stdio.h”,main(),int a,b,c,sum;,a=123;,/*步骤1:将第一个操作数送入内存单元a中,*/,b=234;,/*步骤2:将第一个操作数送入内存单元b中,*/,sum=a+b;,/*,步骤3和4:求两数相加之和并送内存单元sum中*,/,printf(“Sum is%d n”,sum);,/*步骤5:将结果输出到显示器上*/,11/26/2024,4,第二章 数据类型、运算符与表达式,一个程序实际上包含两个主要部分:,组织数据,设计数据结构,对数据结构进行加工的过程,设计算法,程序,=,数据结构,+,算法,程序,=,数据结构,+,算法,+,程序设计方法,+,编程语言,11/26/2024,5,第二章 数据类型、运算符与表达式,C语言的数据类型,数据结构,指的是数据的组织形式,C语言的数据结构是以,数据类型,的形式出现的,数据类型决定:,1.数据占内存字节数(内存空间大小),2.数据取值范围,3.其上可进行的操作(运算),11/26/2024,6,第二章 数据类型、运算符与表达式,数,据,类,型,基本类型,构造类型,指针类型,空类型void,定义类型typedef,字符型,整 型,实 型,单精度型float,双精度型double,数组类型,结构体类型,共用体类型,短整型short,长整型long,整 型 int,11/26/2024,7,2.2.1,常量,1、,定义:,在程序执行期间,其值不可改变的量称为常量,2、,类型:,数值常量,例如:10,3,2.68,a ,hello 等,符号常量,即用一个符号代表一个常量,例如:,#define,PI,3.1415926,main,(),float,r,l,s;,r=2;l=2*PI*r;s=,PI,*r*r;,printf,(“l=%d,s=%d”,l,s);,第二章 数据类型、运算符与表达式,1、含义清楚,2、方便修改,11/26/2024,8,第二章 数据类型、运算符与表达式,使用符号常量必须注意:,符号常量必须,先定义,后才能用它表示一个数值。,符号常量的值在其作用域内不能改变,也,不能,再被赋值。,符号常量名习惯用,大写,字母表示。,11/26/2024,9,第二章 数据类型、运算符与表达式,2.2.2,变量,1.,定义:,程序执行期间值可以改变的量;它代表内存中特定的存储单元。,2.,命名规则:,变量名由,标识符,表示,只能由,字母,、,数字,和,下划线,三种字符组成,且,第一个字符必须为,字母,或,下划线,。,例如:,下列标识符中,不合法的变量名有:,M.D.John ,12%gf ,1add,_ce36 ,age&,5thclass,lotus-1-2-3,cd*ef,float,3.,变量要“先定义,后使用”,定义格式:,类型说明符 标识符1,标识符n,例如:int x,y,z;(TC中每个int变量分配,2,个 字节),float a,b,c,d;(每个变量分配 4个 字节),11/26/2024,10,第二章 数据类型、运算符与表达式,注意,*选变量名时,要尽量做到“,见名知意,”,例如:name st_age xm nl class sum,*大、小写字母是不同的字符,C变量名习惯用,小写,字母表示。,*建议变量名的长度不要超过8个字符。,*变量必须强制定义,即“,先定义、后使用,”,11/26/2024,11,第二章 数据类型、运算符与表达式,2.3 整型数据,整型常量即整常数,C语言中整常数可以是十进制、八进制(0开头)、十六进制(0 x开头),整型数据在内存中是以二进制形式存放的。,整型变量,整型变量的基本类型符号是:int,在 int 前还可以加上修饰符号:short long signed unsigned,11/26/2024,12,第二章 数据类型、运算符与表达式,一个,无符号整型,变量中可以存放的正数的范围比,一般整型变量,中正数的范围扩大一倍。,int a;/*变量a 的数值范围:-2147483 6482147483647*/,unsigned int b;,/*变量b的数值范围:-21474836482147483647*/,基本型:以,int,表示,短整型:以,short int,或,short,表示,1.类型 长整型:以,long int,或,long,表示,(123l、123L),无符号基本型(,unsigned int,),无符号型 无符号短整型(,unsigned short,),无符号长整型(,unsigned long,),11/26/2024,13,第二章 数据类型、运算符与表达式,整型变量的使用,定义:,例如:int a ,b ;,unsigned short x ,y ;,long e ,f;,整型数据的溢出:,例如:,int a ,b;,a=32767;,b=a+1;,那么 b=?,整型常量的类型,11/26/2024,14,第二章 数据类型、运算符与表达式,2.4 浮点型数据,浮点数就是实数,两种表示形式:,十进制小数形式:0.123、123.123、3.1415936,指数形式:123e3(12310,3,)、123E3,注意:E和e前必须有数字、e和E后面必须是,整数,规范化的指数形式,11/26/2024,15,第二章 数据类型、运算符与表达式,浮点型变量,浮点数在内存中的存放形式:,0 3 1 4 1 5 9 2 6 1,符号位,小数部分,指数部分,0.31415926 X 10,1,11/26/2024,16,第二章 数据类型、运算符与表达式,浮点型变量的分类:,double,:,占8字节,提供1516位有效数字,float,:,占4字节,提供7位有效数字,Long double,:占10字节,提供18,19位有效数字,浮点型数据的舍入误差,11/26/2024,17,第二章 数据类型、运算符与表达式,浮点型常量的类型:,f2.456784523.65,类型后缀,f、F,表示常量是一个单精度型浮点数,l、L,表示常量是一个长双精度型浮点数,无任何后缀的浮点型常量视作双精度型,11/26/2024,18,第二章 数据类型、运算符与表达式,字符常量,定义:用,单引号,括起来的单个,普通字符,或,转义字符,.,字符常量的,值,:该字符的,ASCII,码,值,转义字符,:,反斜线后面跟一个字符或一个代码值表示,如 a A?n 101,=!=),逻辑运算符:(!&|),位运算符 :(|&),赋值运算符:(=及其扩展),条件运算符:(?:)见P55页,11/26/2024,27,第二章 数据类型、运算符与表达式,2.4.1 算术运算符和表达式(1),逗号运算符:(,),指针运算符:(*和&),求字节数 :(sizeof),强制类型转换:(类型),分量运算符:(.和 -),下标运算符:(),其它 :(()),11/26/2024,28,第二章 数据类型、运算符与表达式,运算符简介:,模运算符(求余数运算符),1007?,运算中数据类型的隐式转换:,int a=5;int b=3;a/b=?,double a=5;int b=3;a/b=?,运算符的优先级和结合性:,“左结合性”,参见附录C,建议:尽量使用()来直观表示运算的优先次序:,区别 a*b/c*d 与 (a*b)/(b*c),11/26/2024,29,自增、自减运算符,+i,和,-i,(先改变 i 的值,然后用改变后的i值参与运算),i+,和,i-,(先使用 i 原来的值运算,运算完成后改变 i 的值),假设 i=5比较:j=i+和 j=+i 两个语句,注意:,+和 只能用于变量,不能用于常量和表达式。,-i+相当于-(i+),第二章 数据类型、运算符与表达式,11/26/2024,30,第二章 数据类型、运算符与表达式,例:,j=3;k=+j;,j=3;k=j+;,j=3;printf(“%d”,+j);,j=3;printf(“%d”,j+);,a=3;b=5;c=(+a)*b;,a=3;b=5;c=(a+)*b;,/k=4,j=4,/k=3,j=4,/4,/3,/c=20,a=4,/c=15,a=4,11/26/2024,31,第二章 数据类型、运算符与表达式,关系运算符和关系表达式,6,种关系运算符,=,=,!=,高,低,算术运算符,=,a+b c (a+b),a=b=c a=(b=c),a=b=c+d a=(b=(c+d),算术运算符,赋值运算符,关系运算符,高,低,11/26/2024,33,第二章 数据类型、运算符与表达式,用,关系运算符,将两个,表达式,连接起来,(a+b)(c+d),(a=3)x,注意区分等于(=)和赋值运算符(=),a=b a=b,关系表达式的值是,逻辑值,“,真,”或“,假,”,C语言用整型表示逻辑值,,“真”1、非零、“假”0,举例,,a=3,b=2,c=1;,d=ab;,/*d=1*/,f=abc;,/*f=(ab)c=0*/,11/26/2024,34,第二章 数据类型、运算符与表达式,逻辑运算符和逻辑表达式,3,种逻辑运算符及优先级,&逻辑与,|逻辑或,!逻辑非,11/26/2024,35,第二章 数据类型、运算符与表达式,!,a,若a为“真”,!a为“假”,若a为“假”,!a为“真”,a,&,b,若a、b都为“真”,则a&b为“真”,若a、b不全为“真”,则a&b为“假”,a,|,b,若a、b都为“假”,则a|b为“假”,若a、b不全为“假”,则a|b为“真”,11/26/2024,36,第二章 数据类型、运算符与表达式,运算符的优先级,高,低,算数运算符,关系运算符,赋值运算符,&,和,|,!,11/26/2024,37,第二章 数据类型、运算符与表达式,运算符,名称,举例,优先级,!,逻辑非,!,(ab),+-*/,(算术运算符),(关系运算符),&,逻辑与,(xy),&,(yz),|,逻辑或,(x3),|,(x-3),=,(赋值运算符),11/26/2024,38,第二章 数据类型、运算符与表达式,逻辑表达式的,值是逻辑值,用,整型,表示逻辑值,“真”,1 ,“假”0,把一个表达式的值作为逻辑值使用,非零,“真”,零“假”,这里的非零与零,包括整型、浮点型等,逻辑表达式中的运算符,只有会,影响,表达式求值时,,,才会执行,a&b&c,若,a,为“假”,则不再判断,b,和,c,a|b|c,若,a,为“真”,则不再判断,b,和,c,11/26/2024,39,赋值运算符和表达式,简单赋值运算符,符号:,=,格式:,变量标识符,=,表达式,作用:将一个数据(常量或表达式)赋给一个变量,第二章 数据类型、运算符与表达式,复合赋值运算符,种类,:,+=-=*=/=%=,=&=|=,含义:,exp1,op,=exp2,exp1=exp1 op exp2,a+=3,a=a+3,x
展开阅读全文