C语言复习小结

举报
资源描述
C语 言 复 习 小 结第 三 章 数 据 类 型、运算符和表达式常量包括直接 常 量(或称字面常量)和符号常量。直接常量有整型常量,实型常量,字符常量与字符串常量。整型常量有以下三种数制形式表示:十进制:如123;-60;0 八进制:以0开始,如0 123表 示(123)8,十六进制:以Ox开始,如0 x123表 示(123)16实型常量有以下两种形式表示:小数形式:由数字、数符和小数点组成。注意必须有小数点。如 123.0 .123 0.0 12.5指数形式:数字部分e指数部分。字母E/e前必须有数字,字母E/e后必须为整数(1-3位)。如 123e2 123E2字符常量是用单撇号括起来的一个字符。例如:a,x,d,字符常量的值实际上是一个数字值。存储的实际 值 为ASCII值。所以字符常量可以象整数一样参与运算。(注意:转义字符)字符串常量是用一对双引号括起来的字符序列。如:“CHINA”,“a”,“X+Y”。字符串常量在内存中的存放:每一个字符均以其ASCII码存放,且最后添加一个“0”作为字符串的结束标志。(注:在表达一个字符串时要时刻记着尾 部 有 个,0,字符结束整个字符串。)变量是指在程序运行过程中其值可以改变的量。系统为程序中的每一个变量开辟一个存储单元。变量有两个要素:1)变量名:每个变量都必须有一个名字,即变量名。变量名由字母、数字和下划线组成,且第一个字符必须是字母或下划线。如果是字母通常使用小写字母,不使用大写字母。如:name,no,x,_k,i,j,stu_name 等。变量名中不能含有运算符、括 号 等C中关键字。命名遵循顾名思义原则,且不宜过长。C区分大小写字母。2)变量值:每个变量都有特定的值,且可以改变。在程序中,通过变量名来引用变量的值。变量的定义所有的变量必须在赋值使用之前定义。定义变量的一般形式是:type variable-list;(变量定义语句)注:type为C语言中有效类型;variable-list为变量列表,多个变量之间用,隔开。如:i n t i,j,k;f l o a t a;整型变量数据类型 所占位数取值范围i n t 1 6-3 2 7 6 8-3 2 7 6 7s h o r t 1 6-3 2 7 6 8-3 2 7 6 7l o n g 3 2-2 1 亿 2 1 亿u n s i g n e d i n t 1 60-6 5 5 3 5u n s i g n e d s h o r t 1 60-6 5 5 3 5u n s i g n e d l o n g 3 20 42 亿实型变量分类 所占位数取值范围f l o a t 单精度 3 2-3.4*1 07 8 3,4*1 03 8d o u b l e 双精度 6 4一 1.7*1 0-3 08 1.7*1()3 08l o n g d o u b l e 长双精度 1 2 8一 1.2*1 0-49 3 2 1.2*1()49 3 2字符变量1、变量的定义c h a r c l,c 2;/*指 定 c l,c 2 为字符型变量*/2、字符型数据的存储一个字符变量在内存中占一个字节,并 以 A S C I I 码存储,存储形式与整型一样,可以和整数进行运算。3、字符数据与整型数据可互相赋值C 语言中的关键字:(3 2 个)类型说明符:char double float int long shortsigned unsigned struct(结构体)union(共同体)结构化语句中用:if else switch case breakdefault do while for continue goto存储类别用:auto static extern register函数定义用:void return其他:const sizeof typedef enum volatileC运算符C语言中有以下几类运算符:1)算术运算:+,%(模运算)2)关系运算:,=,=,=,!=3)逻辑运算:!,&)|4)位运算:,一,I,八,&基本算术运算符+(加法运算或正号运算符)-(减法运算或负号运算符)*(乘法运算符)/(除法运算符)%(求余运算符,或称模运算符)运算符的优先级和结合性一(负号)T */%T +-注:(1)两个整数相除结果为整数,多数机器采用“向零取整”方法。如:5/3=1;-5/3=-1(2)参与+,*,/运算的两个数中有一个为实数,则结果 为do u ble型。如:6/2.0的结果为3.0(3)模%运算符(或称求余运算符)两侧的运算量均为整型量。如:55%12(4)三角函数的自变量使用弧度。如 s i n 50。应写成 s i n(50*3.14 1592 6/18 0)例:3 x2+4 x y s i n 56 -1 x-y I e2-3 的表达式为:3*x*x+4*x*y*s i n(56*3.14/18 0)-fabs (x-y)*ex p (2.3)在求表达式的值时,要按照优先级的高低依次计算如果运算符两侧优先级相同,则按规定的结合方向(从左到右)进行。自增、自减运算符+i ,i 在 使 用i前,使i的 值 加(减)1i+,i 在 使用i后,使i的 值 加(减)1注意:1)+,一运算符只适用于对整型变量操作,而不能作用于常量或表达式,如5+或(a+b)一 是错误的。2)+,的结合方向是自右到左。如j=3;p r i n t f(w%d”,-j+);则输出-3,后 使j值增为4O思考:1、(i+)+(i+)+(i+)结果?2、(+i)+(+i)+(+i)结果?3、1+:是 0+)+上还是1+(+拉?4、p r i n t f(“%d,%d”,i,i+)结果赋值运算符简单的赋值就是把一个表达式的值赋给一个变量。复合的赋值运算符在 赋 值 符 之 前 加 上 其 它 运 算 符,可以构成复合的运算符 运算符表达式等价于 变量 =运算符 表达式如:m+=n*3 等价于 m=m+(n*3)赋值表达式对赋值表达式求解的过程是:将赋值运算符右侧的表达式的值赋给左侧的变量。赋值表达式的值就是被赋值的变量的值。设 a 的值为6,计 算 a+=a-=a*a先进行a*a的计算,结果为3 6再进行a-=3 6的计算,相当于a=a-3 6=-3 0最后进行a+=-3 0 的计算,相当于a=a-3 0=-6 0问:)=卜+=3 2*卜合法吗?什么结果p r i n t f(“d”,i=2 0);又是如何呢?赋值时进行的类型转换将实型数据(包括单、双精度)赋给整型变量时,舍弃实数的小数部分。将整型数据赋给单、双精度变量时,数值不变,但以浮点数形式存储到变量中。将一个double型数据赋给flo a t变量时,截取其前面7位有效数字,存放到flo a t变量的存储单元(32位)中。将一个f lo a t型数据赋给double变量时,数值不变,有效位数扩展到16位,在内存中以64位存储。字符型数据赋给整型变量时:若系统将字符处理为无符号的量,则将字符的8位放到整型变量的低8位,高8位 补0。若系统将字符处理为带符号的量,如果字符最高位为0,则整型变量高8位 补0;如果字符最高位为1,则整型变量高8位 补L将 一 个in t、short,long型数据赋给一个char型变量时,只将其低8位原封不动地送到char型 变 量(即截断)。将带符号的整型数据赋给long型变量时,要进行符号扩展,将整型数的16位 送 到long型变量的低16位中,如 果in t型数据为正值,则long型变量的高16位 补0;如 果in t型数据为负值,则long型变量的高16位 补L以保持数值不变。若将一个long型数据赋给一个in t型变量,只 将long型数据中的低16位原封不动地送到整型变量中(即截断)。将unsigned in t型数据赋给long in t型变量时,不存在符号扩展问题,只需将高位补0。将unsigned类型数据赋给一个占字节数相同的整型变量时,是将unsigned型变量的内容照原样送到非unsigned型变量中,但如果数据范围超过相应的整型范围,则会出现数据错误。将非unsigned in t型数据赋给长度相同的unsigned型变量时,也是原样照赋(连原有的符号位也作为数值一起传送)。逗号是一种运算符形式如下:表达式1,表达式2由逗号隔开的一对表达式从左向右进行计算,其求解过程为:先求解表达式1,再求表达式2,整个逗号表达式的值是表达式2的值。逗号运算符是所有运算符中级别最低的。注:一个逗号表达式又可以与另一个表达式组成一个新的逗号表达式,例如:(a=4*6,a+5),a+6 整个表达式的值为30。在进行运算时,不同类型的数据要先转换成同一类型,然后进行运算。(转换规则见书)C语言提供一种“强制类型转换”运算符,将一个类型的变量强制转换为另一种类型。一般形式为:(类型标识符)(表达式)若x原为实型变量且值为2.6,在执行i=(int)x后得到一个整数2,并把它赋给整型变量i,但x仍为实型,值 为2.6。C运算符的优先顺序:(从上到下依次为由高到低,同一级的按各自的结合方向)1.()、T(从左到右)2.!、+、一、-、*、&、sizeof、(类型)3.*、/、%4.+、-5.、=、=6.=、!=7.&8.II9.?:(条件运算符)10.=、+=、一=、*=、/(单目、从右到左)(从左到右)(从左到右)(从左到右)(从左到右)(从左到右)(从左到右)(从右到左)%=(从右到左)1 1.,(逗号运算符)(从左到右)复习作业题:1.请编写程序,输入两个整数n和m,计算以下表达式的值:sum=n+mdiff=n-mprod=n*mquot=n/m并上机时调试完成。main()int m,n,sum,diff,prod;float quot;scanf(H%d,%dH,&n,&m);sum=n+m;diff=n-m;prod=n*m;if(m=O)printf(ndata error);else quot=1.0*n/m;printf(H%5d,%5d,%5d,%5fn,1,sum,diff,prod,quot);2.请编写程序,输入x,计算以下表达式的结果。funl(x)=+-x+1.21 x-1.54main()float x,y;printf(nx=u);scanf(f”,&x);y=2*x/(x+1.21)+2/(x-1.54);printf(,funl(x)=%fn,y);)3.请编写程序,输 入x,计算以下表达式的结果。x2+2xsin(x)e2+1main()float x;double y;printf(Hx=n);scanf(H%fH,&x);y=x*x/sin(x)+2*x/(exp(2)+l);printf(,y=%10 fnH,y);)4.请编写程序,输入两个自然数,求它们的商和余数。main()int x,y,a,b;scanf(H%d,%dH,&x,&y);a=x/y;b=x%y;printf(H%5d,%5dn H,a,b);)5.请编写程序,输入一个自然数,判断该数是否能够被3和7同时整除。main()int x;scanf(H%dH,&x);if(x%3=0)&(x%7=0)printf(n%5d can be devide by 3 and 7nn,x);else printf(n%5d can not be devide by 3 and 7nH,x);第 四 章 顺 序 程 序 设 计字符输出函数-格式:putchar(c)-功能:将c值所对应的字符输出到标准输出设备上(一般为显示器)。C可以是整型或字符型。一次只能输出一 君,也可以输出控制符,如putchar(,E)输出一个换行符,即光标移到下一行。putchar()函数也可以输出转义字符,如:putchar()即输出 字 符A,。字符输入函数-格式:getchar()、getchO或 getcheO-功能:从标准设备(一般是键盘
展开阅读全文
温馨提示:
金锄头文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
相关资源
正为您匹配相似的精品文档
相关搜索

当前位置:首页 > 商业/管理/HR > 营销创新


电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号