资源预览内容
第1页 / 共31页
第2页 / 共31页
第3页 / 共31页
第4页 / 共31页
第5页 / 共31页
第6页 / 共31页
第7页 / 共31页
第8页 / 共31页
第9页 / 共31页
第10页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第二章第二章 C程序设计的初步知识程序设计的初步知识 目录目录n2.1 简单简单C语言程序的构成和格式语言程序的构成和格式n2.2 标识符、常量和变量标识符、常量和变量n2.3 整型数据整型数据n2.4 实型数据实型数据n2.5 算术表达式算术表达式n2.6 赋值表达式赋值表达式n2.7 自加、自减运算符和逗号运算符自加、自减运算符和逗号运算符2.1 简单简单C语言程序构成和格式语言程序构成和格式在讲解C语言的语法规则之前,先给出一个实例例例2.1一个只输出一行信息的程序1.#include是在程序运行过程中加载输入输出功能(printf)2.main()是程序的主函数;3./* */表示注释结构4大小写字母是有区别的大小写字母是有区别的5程序书写要规范 2.1 简单简单C语言程序构成和格式语言程序构成和格式n例例2.2求矩形面积(做习题2.16)2.2标识符、常量和变量标识符、常量和变量定义:用来标识变量、常量、函数等的字符序列组成:只能由字母、数字、下划线组成, 且第一个字符必须是字母或下划线长度:c语言规定了标识符的长度举例:在例2.2中,include、main、double、a、b、printf非法标识符:456P、cade y、w.w、a&b (为什么错)例例2.3判断下列标识符号合法性sum Sum M.D.John day Date 3days student_name #33 lotus_1_2_3 char ab _above $123(习题2.4,2.5)2.2.1标识符标识符标识符的分类n关键字:代表固定的含义,不能另作它用。在例2.2中蓝颜色字符如:include、double、int、float、if、return n预定义标识符:C语言库函数的名字等。在例2.2中如:printf,define等 n用户标识符:对变量的定义。在例2.2中的a、b、arean(习题2.7,2.17)2.2.2常量常量n定义:程序运行时其值不能改变的量(即常数)n分类n整型常量如1,2,50,12,-1,0n实型常量如例2.2中1.2、3.6、3.14159、 -2.71828、0.0n字符型常量如a、b、1、2(6章中介绍)n字符串常量如Beijing等(11章中介绍)2.2.3符号常量符号常量n定义:用一个符号名代表一个常量n定义格式:#define 符号常量 常量n例例2.4 计算圆面积 2.2.4变量变量n定义:值可以改变的量叫变量。变量用标识符表示,称为变量名。n本质:内存中的某个存储单元。n定义格式:数据类型 变量1,变量2;n例如例2.4:(什么是数据类型?)(习题2.20)2.3整型数据整型数据n2.3.1整型常量整型常量(即整数)n十进制整数:由数字十进制整数:由数字09和正负号表示和正负号表示. 如如 123,-456,0n八进制整数:由数字八进制整数:由数字0开头开头,后跟数字后跟数字07表表示示. 如如0123,011n十六进制整数:由十六进制整数:由0x开头开头,后跟后跟09, af, AF表示表示. 如如0x123,0xff2.3.1整型常量整型常量例例2.5 n合法的整数举例n5121:十进制正数 、 -32768:十进制负数0111:八进制数、0xFFF:十六进制数、n不合法的整数举例n09876、20fa、0x10fg、-0x13a、-0342(八进制与十六进制只为正整数)n(习题2.1,2.12,2.13)各种进制之间的转换各种进制之间的转换n二进制、八进制、十六进制转换成十进制n方法:按权相加n例例2.6各种进制之间的转换各种进制之间的转换n十进制转换成二进制、八进制、十六进制n方法:连续除以基,从低到高记录余数,直至商为0例2.7 把十进制59转换成二进制5922921427232120(59)10=(111011)21101111 1 1 0 1 1余余余余余余例 把十进制数159转换成八进制数1598198280(159)10=(237)82 3 7 余 7余 3余 2例2.7 把十进制数459转换成十六进制数4591628161160(459)10=(1CB)161 C B 余11余12余 1各种进制之间的转换各种进制之间的转换n整型常量的类型:基本整型 int 长整型 long int短整型 short int 无符号型 unsigned(在下一节集中讲)2.3.2整型变量整型变量可以通俗理解为把整型常量赋值给标识符例如:int i=1, j=2;long int k=32345324534253;其中i,j,k即为变量2.3.3整型数据的分类整型数据的分类(下一节集中讲)2.3.4整数在内存中的存储形式存储单位存储单位位:内存中最小的存储单位,每个位中存放一 个0或1.(说一下物理实现)字节:8个二进制位构成1个字节字 :若干个字节可组成一个“字”。最低位:一个字节中最右边一位最高位:一个字节中最左边一位符号位:对于有符号数,最高位存放符号,若为正数,最高位置0;若为负数,最高位置1.01234567数值的表示方法原码、反码和补码(对正整数和负整数而言的)n原码:最高位为符号位,其余各位为数值本身的绝对值n反码:n正数:反码与原码相同n负数:符号位为1,其余位对原码取反n补码:n正数:原码、反码、补码相同n负数:最高位为1,其余位为原码取反,再对整个数加1原码反码补码+5-5111+0-0数的范围01111111(-127+127)01111111(-127+127)01111111(-128+127)(用一字节(1B)表示数)数值的表示方法原码、反码和补码例例例例2.82.8 写出写出+5+5和和-5-5的的原码、反码和补码等原码、反码和补码等负数补码转换成十进制数:最高位不动,其余位取反加1例例2.9 补码: 取反: 加1: 10000101=-52.3.4整数在内存中的存储形式无符号整数对于1B而言,8位全部用来存整数,因此无符号整数不是负数。因此表示范围为02e8-12.4 实型数据实型数据n2.4.1 实型常量(实数/浮点数)n小数形式n由数字和小数点及正负号组成n必须有小数点 n如0.123, .123, 123.0, 0.0, 123.n指数形式n由数字、小数点、字母e或E及正负号组成ne或E之前必须有数字,指数必须为整数n如12.3e3 ,123E2, 1.23e4 , e-5 (), 1.2E-3.5()n(习题2.2,2.3)2.4 实型数据实型数据n2.4.2 实型变量n实型变量可分n单精度(float型) 例:float x , y ;(float是什么)n双精度(double型)如:double a , b , c ;n2.4.3字符常量(补充)n定义:用单引号括起来的单个普通字符或转义字符n如 a A ? n 07(最后两项为转义字符)n字符常量的值:该字符的ASCII码值(何为ASCII)n如 A65, a97, 048 , n10nASCII码:基本符号在计算机内对应的整数(0127)基本数据类型总结基本数据类型总结类型符号关键字数的表示范围所占位数整型字符型实型有无signed int16-3276832767signed short16-3276832767signed long32-2147483648214748364716unsigned int0655353204294967295unsigned longunsigned short16065535有float323.4e-383.4e38有double641.7e-3081.7e308有signed char8-128127无unsigned char80255n(习题2.11,2.18,2.19)2.5 算术表达式算术表达式2.5.12.5.1基本算术运算符基本算术运算符n基本算术运算符基本算术运算符: + - * / %n优先级:- -* / % - + -n例如:-1*2+8/4=0n两整数相除,结果为整数n例如:5/2 = 2 ; -5/2.0 = -2.5n%要求两侧均为整型数据n例如:5%2 = 1 ; -5%2 = -1; 1%10 = 1; 5%1 = 0; 5.5%2 ()n(习题2.6,2.21)2.5.2 2.5.2 运算符的优先级、结合性和算术表达式运算符的优先级、结合性和算术表达式n算术运算符的优先级n n指各种运算符号的运算优先顺序指各种运算符号的运算优先顺序指各种运算符号的运算优先顺序指各种运算符号的运算优先顺序n n例如先例如先例如先例如先 * * / / 后后后后 + -+ -n算术运算符和圆括号的结合性n例如 (5+1)/2=3; 5+1/2=5; 5*-2=5*(-2)=-10;n结合性指结合方向,本质是优先级n算术表达式n用算术运算符和括号将操作数连接起来,用算术运算符和括号将操作数连接起来,符符合语法规则合语法规则n例如例如 a+(b + a*(b/c) )+2.8 (习题2.22)2.5.3强制类型转换强制类型转换n转换方式 (类型名)(表达式)n n例如:例如: (int)3.14 =3;(int)3.14 =3;n n(float) 22/5=4; (float) (22/5) =?(float) 22/5=4; (float) (22/5) =?n n错误的转换:错误的转换:(int) b=a+5 ; b= int (3*a)(int) b=a+5 ; b= int (3*a)2.6 2.6 赋值表达式赋值表达式2.6.1赋值运算符和赋值表达式赋值运算符和赋值表达式n形式:变量名=表达式(习题2.23)n作用:将表达式的值赋给左边的变量,当变量重新赋值后,原值自动消失n例如: a=1;b=3;a=b;b=4。经过这4次赋值后a、b的值n优先级:只高于逗号运算符n例如 a=2+7/3 : 将算术表达式2+7/3 的值赋给an结合方向:从右向左n例如:a=3 b=c+dn左侧必须是变量,不能是常量或表达式n例如:a+b=2;()n赋值表达式的值可嵌套n例如:a = b = c = 5;结果为a、b、c均为52.6.1赋值运算符和赋值表达式赋值运算符和赋值表达式n例2.11 设有变量设有变量A=5,B=10,请将变量,请将变量交换数值交换数值n错误方法错误方法n正确方法正确方法A=BA=B;B=AB=A;5 510101010A BA BT=AT=A;A=BA=B;B=TB=T;? ?5 5101010105 55 5A BA BT T (加习题(加习题2.9)2.6.2复合赋值表达式复合赋值表达式n包括:包括:+= ,=,n n优先级、结合性:与=相同n n举例n nn += 1 n += 1 等价于等价于n = n + 1n = n + 1n nN *=m + 3 N *=m + 3 等价于等价于 n = n * (m+3)n = n * (m+3)n nX %= 3 X %= 3 等价于等价于 x = x%3x = x%3n n例例2.13 变量a=9,计算表达式a-=a+a的值(-9); 变量a=12,求a*=2+32.6.3赋值运算中的类型转换赋值运算中的类型转换n转换规则: 赋值号右边表达式值自动转换成其左边变量的类型n举例:nint i; i=2.56; /结果i=2;nfloat f; int i; i=10; f=i; /f=10.02.7 自加、自减运算符和逗号运算符自加、自减运算符和逗号运算符2.7.12.7.1自加运算符自加运算符+和自减运算符和自减运算符-n作用:使变量值加1或减1n例如 i=4;i+;则i的值变为5 i=4;i-;则i的值变为3n种类n前置 +i, -i (先执行i+1或i-1,再使用i值)n后置 i+, i- (先使用i值,再执行i+1或i-1)例例 j=3; k=+j; j=3; k=+j; /k=4,j=4 j=3; k=j+; j=3; k=j+; /k=3,j=4 j=3; printf(“%d”,+j); j=3; printf(“%d”,+j); /4,j=4 j=3; printf(“%d”,j+); j=3; printf(“%d”,j+); /3,j=4 a=3;b=5;c=(+a)*b; a=3;b=5;c=(+a)*b; /c=20,a=4 a=3;b=5;c=(a+)*b; a=3;b=5;c=(a+)*b; /c=15,a=4 (习题2.8,2.14,2.15)2.7.22.7.2逗号运算符和表达式逗号运算符和表达式n形式:形式:表达式表达式1,表达式表达式2,表达式表达式nn作用:作用:将两个表达式连接起来将两个表达式连接起来n结合性结合性:从左向右从左向右n优先级优先级: 最低最低n逗号表达式逗号表达式的值:等于表达式的值:等于表达式n的值的值例例 a=3*5,a*4 /a=15,表达式值表达式值60 a=3*5,a*4,a+5 /a=15,表达式值表达式值20例例 x=(a=3,6*3) /赋值表达式,表达式值赋值表达式,表达式值18,x=18 x=a=3,6*a /逗号表达式逗号表达式,表达式值表达式值18,x=3例例 a=1;b=2;c=3; printf(“%d,%d,%d”,a,b,c); /1,2,3 printf(“%d,%d,%d”,(a,b,c),b,c); /3,2,3
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号