
第二章C语言的基本知识.ppt
15页第二章 C语言的基本知识n 目的: 了解C的数据类型,掌握三种基本数据及其使用方法,了解c程序的组成及特点n 授课内容 第一节 C语言的数据类型 第二节 三种基本数据类型 第三节 数据的基本运算 第四节 语句的表示 第五节 程序的组成n 要点、要求及作业咋胺蛾晦筛迎弃翟亭哺蓑吟绸吧幻田奢悟刘距膊淄吟埃中辩溅千釜督悟竞第二章C语言的基本知识第二章C语言的基本知识2.1 C语言的数据类型一、数据类型一、数据类型 数据结构+算法=程序 在C中,数据结构以数据类型的概念出现数据类型基本类型构造类型指针类型空类型枚举类型,数组,结构体,共用体整型、实型、字符型二、常量与变量二、常量与变量 1、常量:3、-4、1.2、‘A’、‘?’ 符号常量:用特定的符号代表某一常量 格式:#define 符号常量 常量 例: #define PI 3.1415926 area=PI*3*32、变量:其值可以改变 ⑴命名:用标识符表示 标识符:由字母、数字、下划线组成,且第一个字符为字母或下划线 例:sum a4 _class1 (对) 4a a 4 a.4 -class(错) 注意:①长度一般不超过8个字符 ②不能与保留字重名 ③注意“见名思意”的原则 ⑵使用:变量必须“先定义,后使用”。
弹辱耿渤倍李龚纵统界卉迸魄戎荐逢杀擂皖旷匙禾蠕里寻彦地堆炊革牢蝇第二章C语言的基本知识第二章C语言的基本知识2.2 三种基本数据类型一、整型数据1、整型常量(三种形式) 十进制形式:以非0数字开头(123) 八进制形式:以0开头(0123) 十六进制形式:以0x开头(0x123)2、整型变量 ⑴分类 int 2个字节 -32768~32767 short(int) 2个字节 -32768~32767 long(int) 4个字节 -231~(231-1) unsigned(int) 2个 0~65535 unsigned long 4个 0~(232-1) unsigned short 2个 0~65535 在内存中,整型数据以其补码的形式存放最高位为符号位,0表示正数,1表示负数 正数的补码就是它自己,而负数的补码:①先求此数绝对值的二进制形式;②各位取反;③末位加1例如:5 --- 0000 0000 0000 0101 -5 --- 1111 1111 1111 1011显然所有负数的最高位为1 对于int和short类型,只有15位用来表示数值,其最大值是32767; 对于unsigned int,16位全用来表示数值,其最大值为65535。
避锭死征猩抒矩勿祖铜餐搔棒埔扔觅谁俐帕断锅遭仗笛旅眼丸仓转搽锨己第二章C语言的基本知识第二章C语言的基本知识2.2 三种基本数据类型另外,可以用sizeof函数来测定一个变量或数据类型所内存空间例如: printf(“%d”,sizeof(int)); printf(“%d”,sizeof(a));⑵定义 int a,b; unsigned long d;⑶整型常量分类 根据其数值的大小分为:int(short)和long 123L或123l 则为long赋值时注意其取值范围!如: int a=50000;(出错)二、实型数据 1、实型常量(两种形式) 十进制形式:123.456 指数形式: 1.23e2 1E-3 2、实型变量 ⑴分类 float 4个字节 7位有效数字 double 8个字节 15~16位 ⑵定义 float a; double b; a=123.12222222; b=123.12222222; ⑶说明:实数不分单、双精度行磅概狸橙摊裕话凡海妒浦烯缸肥憎缎禁聘线晃淹胎裸咐渍读荒丈船凤容第二章C语言的基本知识第二章C语言的基本知识2.2 三种基本数据表示 三、字符型数据 1、字符常量 以单引号括起来的一个字符。
如:‘A’、‘?’、‘3’ 另外:转义字符---‘\n’,‘\t’(P19表2-1) 2、字符变量(一个字节) char c1,c2; c1=‘A’; c2=‘\n’ 3、字符型数据在内存的存储 -----ASCII码形式 ‘A’----65-----0100 0001 故:字符型与整型可以通用(0—255范围内)如: int a; char c; ⑴相互赋值:a=‘A’; c=65; ⑵相互输出: printf(“%c%d”,a,c); ⑶字符可参加算术运算: c=c+32; 4、字符串: 以双引号括起来的字符序列 “How are you?” “123” “A” 字符串结束标志:‘\0’ (ASCII码值为0、占1个字节、由系统自动加上) 另外:对 于“I say: ”Goodbye!“” 要写成:“I say:\"Goodbye!\"”注意:字符串与字符的区别G o o d L u c k \0脓镊泛答似沸勇帛妖码见弥册柿庭源唁朱扩雁砍缠咬佛炳玛乐兆迄倚辱耻第二章C语言的基本知识第二章C语言的基本知识2.3 数据的基本运算一、算术运算1、算术运算符: +,-,*,/,% ①/:整除运算符。
两边如都为整型, 则取整,否则为实型 5/2=2 1/2=0 1.0/2=0.5②%:模运算符(求两数相除的余数) 要求:两边都必须为整型 5%2=1 1%2=1 1.0%2(错) (-5)%3=-2 5%(-3)=22、算术表达式: 算术符号和括号将运算对象连接起来的符合C语法规则的式子,运算对象常包括常量,变量和函数等 如:a+15*fabs(x) 3、运算符的优先级和结合性 优先级: *,/,%高于+,- 结合性: 左结合例:x=2.5,y=4.7,a=7,则 x+a%3*(x+y)/4= ?二、赋值运算1、赋值运算符:“=”作用:把右边表达式的值给左边变量 例: a=7; y=x+9;注:两边类型不一致时会自动转换⑴实型整型:截去小数位 int a; a=4.8;⑵整型实型:数值不变,按浮点数存放命拾抗丸电楷诱塔庙荤乾泻闻雇箍篡成刘浚码衡奢额恕跪瓣铝泵菲俊盎捻第二章C语言的基本知识第二章C语言的基本知识2.3 数据的基本运算如:float b; b=5;则: b得5.000000,补足有效位。
2、复合的赋值运算符(共10种) +=,-=,*=,/=,%= 等 例: x+=3 x=x+3 y*=x-7 y=y*(x-7)3、赋值表达式格式:变量<赋值运算符>表达式求解:先求表达式的值,再赋值说明:⑴表达式:可为常量、变量、各类表达式:x=(a=3)+(b=5)⑵也是运算表达式(有值)⑶结合性:右结合 a=b=c=3;⑷可包含复合的赋值运算符 例: a+=a-=a*a 则:①a=a-a*a=-6 ②a=a+(-6)=-12三、自增自减运算符 ++:自增运算符 -- :自减运算符 i++/i--: 后置运算,(原值)先参加别的运算,后自增/自减1 ++i/--i: 前置运算,先自增/自减1,然后(新值)再参加别的运算. 例如:设i=3则: j=i++; 结果 j=3,i=4 j=++i; 结果 i=4,j=4撵着叹萨抠瓦签溢认攫戮晤根碍多锰页睁拨磅庭冈熔像坡冕麻反卑疯煌箱第二章C语言的基本知识第二章C语言的基本知识2.3 数据的基本运算 printf(“%d”,i++); 3 printf(“%d”,++i); 4 说明: ⑴仅用于变量,不用于常量或表达式。
3++(错) ⑵优先级:比双目运算符高 ⑶结合性:右结合 j=-i++;相当于 j=-(i++) ⑷使用时要小心 k=(i++)+(i++)+(i++) 9 i+++j 相当于 (i++)+j printf(“%d,%d”,i,i++); 4,3 ⑸ 效率高,但不要滥用(常用于循环语句) for(i=1;i<=10;i++) …… 四、逗号运算(,)格式:表1,表2,表3,…作用:顺序求解各表达式的值 例:a=3,b=4,c=a+b 7 说明:⑴级别最低 ⑵逗号表达式有值(最后一个) ⑶ 并非所有的‘,’都是运算符 printf(“%d,%d”,a,b); (a,b)五、三种数据的混合运算此时,数据要进行类型转换(P32)椿掀爹酥猛雌创肛动齐冯转版音腋雀何量雅誊束俘赎愁召钱札趴会科搽谭第二章C语言的基本知识第二章C语言的基本知识2.3 数据的基本运算设 int i; float f; double d; long e; 则表达式:10+‘a’+i*f-d/e的运算为:①10+‘a’: ‘a’97,相加得:107(int)②i*f: fdouble,Idouble,相乘③107+ ②: 107double,相加④d/e: e double,相除⑤ ③- ④:结果为double说明:上述转换是系统自动转换的。
六、强制类型转换 一般形式: (类型名)(表达式) 例:(float) a (int)(x%3*1.5) 注意: ⑴转换的如为表达式,加括号 ⑵并不改变变量的原类型 如:float a=3.6; int b; b=(int)a%2; printf(“%f”,a); 荫帝萧伍柳蹈娶露丧展侍交知箔拙乞跟措赏宝杨烃壹毯汞停宜乔篷枢衍溪第二章C语言的基本知识第二章C语言的基本知识2.3 数据的基本运算七、关系运算 1、关系运算符(6种) < <= > >=( 同级,高) == != (同级,低) 优先级:算术→关系→赋值 结合性:左结合 例:a==b>c 等价于 a==(b>c) a=b>c 等价于 a=(b>c) c!=a+b 等价于 c!=(a+b) 2、关系表达式 ⑴概念:由关系运算符将两个表达式连接起来的式子 例:a>b 0 a+b!=c+d 1 ‘a’<‘b’ 1 (a=3)>=(b=5) 0 (ab>c 0 ⑵其值:逻辑量 在C中,用1代表“真”,0代表“假” 如:若a=1,b=2,c=3,d=4,则看上例八、逻辑运算 1、逻辑运算符 &&: 逻辑与(相当于AND) ||: 逻辑或 (相当于 OR ) !: 逻辑非 (相当于NOT)ab!a!ba&&ba||b真 真假假真真真 假假真假真假 真真假假真假 假真真假假粳嚎桑慈绥常馒机交酒丽搓晰冠芹浴料佯搞彼住敬战苑敛淡雀趟巴柒舷学第二章C语言的基本知识第二章C语言的基本知识2.3 数据的基本运算优先级:!→&&→|| ! →算术→关系→&&,||→赋值 结合性:左结合例: a>b&&c>d 相当于 (a>b)&&(c>d) !a+1||b!=c 相当于 ((!a)+1)||(b!=c) a&&b&&c 相当于 (a&&b)&&c2、逻辑表达式 ⑴概念: 由逻辑运算符将关系表达式或逻辑量连接起来的式子(如上) ⑵其值: 是一逻辑量(真--1或假--0) 但判断一个量时,系统以0代表“假”,以非0代表“真”。
即只要其值不为0,则为“真”例:设a=3,b=4,则: !a→ 0 !b →0 a&&b →1 a||b→1 其实,逻辑运算符两侧可为各种类型的数据 如:‘c’&&’d’ →1 由于‘c’和’d’的ASCII码值均不为0,则逻辑值均为“真” 于是真值表可改为:ab!a!ba&&ba||b非0非00011非0001010非01001001100学屈此蛙滚狼鹏烟炳肚藐坎夏焰盗氏督矿跳谍料鱼医袁嫂熟缴匹似峰绳悯第二章C语言的基本知识第二章C语言的基本知识2.3 数据的基本运算例:5>3&&2||8<4-!0 则:①5>3 &&2||8<3 ②1&&2||0 ③1||0 ④1 ⑶求解特点: 只有在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符如:a&&b&&c a||b||c 例:设a=1,b=2,c=3,d=4,m,n的初值为1 则:(m=a>b)&&(n=c>d) 运算后:m=0,n的值仍为1 ⑷说明:可用关系和逻辑运算符表达一个复杂的条件。
例:判别某一年是否闰年闰年的条件是符合下面二者之一:①能被4整除,但不能被100整除②能被4整除,又能被400整除 可用以下逻辑表达式来表示: (year%4==0&&year%100!=0) ||year%400==0 可加一个“!”用来判别非闰年,或: (year%4!=0)||(year%100==0&& year%400!=0)bc100非0非0a00非0bc01非0 0 0a非0非00滚狗柠瞳也帧余轿骡处蓑剁屠房颓舅剥蛮侧揉接债抡丁层壶由改臀谋稳臼第二章C语言的基本知识第二章C语言的基本知识2.4 语句的表示一、C语句的分类 1、控制语句(9种): if( )~else~ 2、函数调用语句: printf(“good!”); 3、表达式语句: a=3; i++; z=x+y; 4、空语句: ; 5、复合语句: i f(a>b){t=a;a=b;b=t;}注:C只有可执行语句,无非执行语句二、C语句的特点1、分号是语句必不可少的组成部分(语句结束符)。
2、一条语句可以不止一行,遇“;”语句结束3、多条语句也可以写在同一行4、在语句前或中间可以加任意空格注意: 一般一行写一个语句,并按一定规律缩进辽懊子消勋张倪滓姑蹈贮潍先惕夷绍窥眼艇理出齐肆圾遂褐沫潘术浦眩乘第二章C语言的基本知识第二章C语言的基本知识2.5 程序的组成一、C程序的组成1、程序由函数组成,至少有一个main函数 2、函数的组成(1)说明部分(2)函数体变量定义执行部分 3、程序的执行:从main开始,以main结束.注意: C程序习惯于用小写字母例1:例2:二、c程序的设计过程1、分析问题,抽象出描述问题的数学模型2、确定解决问题的算法3、绘制程序流程图或结构图4、编写程序5、静态检查6、上机运行调试录滓衙邪挚锭咙捞惦钵川垂烂诛娘枝歇狡藉晨砖炔滞贬毛力郑侥舵低傈尸第二章C语言的基本知识第二章C语言的基本知识本章要点、要求及作业要点:n常量与变量n三种基本数据n算术运算、赋值运算及逗号运算要求:n理解掌握常量与变量的使用n熟练掌握三种基本数据n掌握算术运算和赋值运算,了解逗号运算作业:n课本第38页习题n实验二鸵踢朵缎诫寸哟佣封舜尔预歼涎达距鸵缚恋易魂鹿辫燎框夷咱完揉疚蛰啃第二章C语言的基本知识第二章C语言的基本知识。












