- 2022-08-11 发布 |
- 37.5 KB |
- 54页
申明敬告: 本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
文档介绍
c语言学习资料
欢迎学习“C语言程序设计A”(秦友用)联系电话:15983649195QQ:812624014\n参考教材谭浩强《C程序设计》清华大学出版社\n预备知识计算机的组成与工作原理高级语言上机过程\nC语言结构化程序设计结构化程序设计方法C语言的结构特点C数据类型及其运算C语言的基本语句函数定义及调用指针及其应用编译预处理集成化开发环境的使用程序调试\n预备知识\n本讲主要内容计算机组成与工作原理高级语言的上机过程\n计算机组成与工作原理指令系统计算机组成—硬件系统程序的自动执行\n指令系统是计算机软件和硬件的界面指令的功能操作类指令转移类指令指令的格式操作码OP地址码AD计算机组成与工作原理—指令系统\n计算机组成与工作原理—硬件系统控制器外存储器内存储器运算器输入设备输出设备CPU主机数据、程序输出数据地址指令数据输入数据、程序\n计算机组成与工作原理—程序的执行过程启动地址→PC取指PC→地址寄存器指令→IR指令译码?程序结束形成转移地址→PC完成本条指令操作PC+1→PC停机指令转移指令非转移指令\n高级语言上机过程编辑源程序编译:产生目标程序(.OBJ)连接:产生可执行程序(.EXE)运行调试\nC语言结构化程序设计C语言的程序格式及结构特点数据类型算术运算符与算术表达式赋值运算符和赋值表达式逗号运算和逗号表达式逻辑运算与逻辑表达式赋值语句数据输入、输出简单程序举例\nC语言的程序格式实例main(){intx,y,z;x=2;y=3;z=x+y;printf("x+y=%d\n",z);}程序格式关键字及编译预处理命令用小写字母书写。由语句组成。以分号(;)作为语句的结束符,(不是分隔符)。没有行的概念,可任意书写。用大括号对{}表示程序的层次范围,一个完整的程序模块要用一对{}包括。不能在变量名、函数名、关键字中插入空格和空行。\nC语言的结构特点结构特点只有一个名字为main的函数,称主函数。除main函数外,其它函数都是在执行main函数时被调用执行的。函数的一般形式函数名(参数)参数说明;{数据说明部分;执行语句部分;}\n数据类型常量与变量整型数据实型数据字符型数据给变量赋初值不同类型的混合运算Page15\n数据类型——常量与变量#definePRICE30main(){intnum,total;floatv,r,h;num=10;total=num*PRICE;printf(total=%d,tatal);r=2.5;h=3.2;v=3.14159*r*r*h;printf(v=%f\n,v);}常量变量名:以字母或下划线开头,由数字、字母、下划线构成。最多31个字符,多余不识别.一般小写。变量变量先定义后使用符号常量名字常用大写Page16\n#definePRICE30main(){intnum,total;floatv,r,h;num=10;total=num*PRICE;printf(total=%d,tatal);r=2.5;h=3.2;v=3.14159*r*r*h;printf(v=%f\n,v);}数据类型——整型数据整型常量根据值的大小自动确定类型。无unsigined型,但非负数可对unsigned变量赋值。十进制:123,-456八进制:0开头十六进制:0x开头int、unsignedint2字节shortunsignedshort2字节longunsignedlong4字节整型变量整型变量定义Page17\n数据类型——整型数据的定义及取值范围类型定义符位数数值范围I/O格式符基本int16位-32768~32767%d短整short16同上%hd长整long32-231~(231-1)%ld无符号unsigned[int]160~65535%uunsignedshort16同上%huunsignedlong320~(232-1)%lu①C/C++规定int字长和机器字长相同;②操作系统字长和机器字长未必一致;③编译器根据操作系统字长来定义int字长;\n数据类型——实型数据#definePRICE30main(){intnum,total;floatv,r,h;num=10;total=num*PRICE;printf(total=%d,tatal);r=2.5;h=3.2;v=3.14159*r*r*h;printf(v=%f\n,v);}十进制形式指数形式:123E3(123×103)不区分单、双精度,赋值时截取有效长度。如:floata;a=111111.111;实型常量7位有效数字float4字节3.4×10±387位有效数字double8字节1.7×10±30815位有效数字实型变量Page19\n数据类型——字符型数据(一)字符常量单引号括起来的一个字符,如:'a','D','?','$'字符变量用来存放字符常量例:charc1,c2;c1='a';c2='A';字符数据在内存中的存储形式以ASCII码存储,占1字节,用7个二进制位Page20\n字符数据的使用方法字符数据和整型数据之间可以通用,可以按字符形式输出,也可以按整型输出。CHINA\0a\0aPage21数据类型——字符型数据(二)例1例3例2字符数据与整型数据可以互相赋值。字符串常量例:"CHINA""a"'a'所以:charc;c="a";\n例1main(){charc1,c2;c1=97;c2=98;printf("%c%c\n",c1,c2);}运行结果:ab\n例2运行结果:9798main(){charc1,c2;c1=97;c2=98;printf("%d%d\n",c1,c2);}\n例3运行结果:a,97a,97main(){inti;charc;i='a';c=97;printf("%c,%d\n",c,c);printf("%c,%d\n",i,i);}\n数据类型——变量赋初值例:inta=3;floatf=3.56;charc='a';inta,b,c=5;Page25\n数据类型—不同类型数据混合运算时的类型转换数据参加运算前必须进行下列转换:char,short→int,float→double混合运算时,数据类型由低级→高级:intunsignedlongdouble低高例:inti;floatf;doubled;longe;运算次序:10+'a'+i*f-d/e①10+97②转换为double④转换为double再相乘再相除107→double③⑤结果为doublePage26\n算术运算符与算术表达式C运算符简介基本算术运算符+-*/%(取余)(若整数相除,结果取整)优先级与结合性先乘除,后加减,同级自左至右强制类型转换例:(double)a,(int)(x+y),(float)(5%3)变量本身未变化++,--注意:P58Page27例4例5\n例4运行结果:x=3.600000,i=3main(){floatx;inti;x=3.6;i=(int)x;printf("x=%f,i=%d\n",x,i);}\n例5main(){inti,j,k1,k2,k3,k4,k5;i=3;k1=(i++)+(i++)+(i++);printf("k1=%d,%d\n",k1,i);i=3;k2=(++i)+(++i)+(++i);printf("k2=%d,%d\n",k2,i);i=3;j=4;\n例5(续)k3=i+++j;printf("k3=%d\n",k3);i=3;j=4;k4=(i++)+j;printf("k4=%d\n",k4);i=3;j=4;k5=i+(++j);printf("k5=%d\n",k5);i=3;printf("%d,%d\n",i,i++);}运行结果:k1=12,6k2=15,6k3=7k4=7k5=84,3\n赋值运算符和赋值表达式简单的赋值运算符“=”“=”两侧类型不一致时,要进行类型转换:整←实:截掉小数部分实(单、双精度)←整:数值不变,存为浮点整←char:整型低8位←char整型高8位←0或符号位扩展(因机器而不同)longint←int:符号位扩展int←longint:int←longint低16位longint←unsignedint:高位补0整型←(字节数相同的)unsigned整型:原样送入。若超过整型表示范围,会出错。unsigned←(字节数相同的)非unsigned整型:原样送入,符号位也作为数值Page31例6\n例6include查看更多