您好,欢迎访问三七文档
第一章C语言概述§1.1程序与程序设计语言机器语言汇编语言高级语言低级语言是计算机能直接识别的语言(机器语言)或符号化的机器语言(汇编语言)。高级语言是一种通用的,与特定的机器相分离、语言格式接近于自然语言的语言。C语言是即具有高级语言特点又具有低级语言功能的语言。有人称其为中级语言。§1.2C语言的主要特点程序结构紧凑、简洁、灵活(32个关键字:autodoubleintstructbreakelselongswitchcaseenumregistertypedefcharexternreturnunionconstfloatshortunsignedcontinueforsignedvoiddefaultgotosizeofvolatiledoifwhilestatic)运算符和数据类型丰富(34种运算符)程序设计结构化、模块化—函数式语言语法限制不太严格,程序设计自由度大。C语言程序可移植性好。§1.3C程序的结构特点C程序由一个或多个函数组成,顺序可任意。必须且也只能有一个主函数main(),无论main()在程序中的任何位置,运行时首先被调用。每条语句或数据定义的最后必须有一个分号;一行内可以写几个语句,一个语句也可以分写在多行。可以用/*……*/对程序中的任何部分作注释。例C语言程序示例/*calculatethesumofaandb*/#includestdio.hvoidmain(){inta,b,sum;a=123;b=456;sum=add(a,b);printf(sum=%d\n,sum);}intadd(intx,inty){intz;z=x+y;return(z);}预处理命令注释TEST.C语句结束符函数§1.4运行C程序的步骤和方法C文件名的规定文件类型格式示例C源文件********.cfile.cC头文件********.hstdio.h编译与链接过程C源文件file.c扩展的C源文件头文件stdio.h目标文件file.obj目标文件*.obj目标文件*.obj编辑编译链接预处理语法分析、检查file.exe可执行文件DOS系统规定:文件名最多由8个有效字符组成文件名中不能含有:1.空格“”2.通配符“*”3.限定符“?”上机编程和调试步骤1).菜单命令选择:按F10,再按‘←’及‘→’‘↑’‘↓’键2).文件操作:打开或建立文件(File-New)3).编程并保存为文件:按F2键保存文件(文件名.c)4).编译和连接:编译Alt+F9键(Compile),无致命错误—.obj链接F9键(Make),无链接错误—.exe5).运行并察看结果:按Ctrl+F9(Run),按Alt+F5查看执行结果(有无逻辑错误)§4.5数据的格式输入与输出C的数据输入输出全部由函数进行。输入/输出分别指:来自键盘的数据/由显示器显示数据。格式输出函数printf()printf()格式输出函数:向显示器按规定格式输出任意类型数据。调用格式:printf(“格式控制”,[参数表]);例:printf(“%d,%c”,n,ch);调用格式:printf(“格式控制”,[参数表]);[参数表]缺省时,“格式控制”内是一个字符串(含转义字符)常量,表示输出一个字符串。“格式控制”包含两种信息:(1).格式说明:由%和格式字符组成。如%d,%f等,它的作用是将[参数表]的数据转换成指定的格式输出。例:printf(“ThisisaCprogram.\n);printf(“******************\n);运行结果:ThisisaCprogram.******************(2).普通字符:即需要原样输出的字符。例:inta=15,b=035;printf(“%d%d”,a,b);运行结果:1529例:inta=15;b=035;printf(“a=%d,b=%d”,a,b);运行结果:a=15,b=29格式输入函数scanf()scanf()----从键盘读取数据。调用格式:scanf(“格式控制”,参数地址表);“格式控制”的作用与printf()相似。参数地址表:由若干个地址组成的表列。可以是变量的地址,也可以是字符串的首地址。如:inta,b,c;scanf(“%d%d”,&a,&b);c=a+b;取地址运算符:将键盘输入的数据存放到指定的变量中。(3)如果在“格式控制”中有除格式说明以外的其它字符,则在输入数据时在对应位置应输入与这些字符相同的字符。(2)键盘输入时——相邻两个数据之间可用Space、Tab或Enter键作为每项数据的结束,最终以Enter键结束。使用sanf()函数时应注意的问题(1)参数地址表中应该是变量的地址,而不应是变量名。(4)在用%c格式输入字符时,空格和转义字符都作为有效字符输入。scanf(“%d,%d”,a,b);×scanf(“%d,%d”,&a,&b);√scanf(“%d%d%d”,&a,&b,&c);输入:15□25□35scanf(“%d,%d”,&a,&b);输入:5,8scanf(“%c%c%c”,&c1,&c2,&c3);输入:a□b□c×abc√autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunsignedunionvoidvolatilewhile32个关键字:(由系统定义,不能重作其它定义)7算术运算符:+-*/%++--关系运算符:====!=逻辑运算符:!&&||位运算符:~|^&赋值运算符:=及其扩展条件运算符:?:逗号运算符:,指针运算符:*&求字节数:sizeof强制类型转换:(类型)分量运算符:.-下标运算符:[]其它:()-34种运算符:8§3.1C语言的数据类型第三章数据类型、运算符与表达式前三种数据类型通常都有各自的常量和变量。整型字符型浮点(实)型*枚举类型单精度型双精度型数组类型结构体类型共用体类型1.基本类型2.构造类型3.指针类型4.空类型(void)数据类型符号常量:用于表示直接常量的合法标识符。常量是在程序运行中其值不可改变的量。常量分直接(字面)常量和符号常量两种:如:#definePRICE30如:4.6,15,‘g’,“abcd”说明:1.使用直接常量无需事先定义。2.符号常量通常使用大写字符。§3.2常量与变量§3.2.1常量和符号常量直接常量:从字面上即可确定其类型的数据。1)由英文字母、数字(0~9)或下划线‘_’组成的字符序列,且必须由英文字母或‘_’开头,区分大小写。2)不与关键字标识符相同,故又称合法标识符。3)最大长度最好不超过8个字符。课堂练习例:判断下列标识符的合法性sumSumM.D.JohnDate3daysstudent_name#33lotus_1_2_3charab_above$1231.变量的概念在程序执行过程中,其值可以改变的量。在内存中占有一个存储单元,并对应一个地址。10101a25§3.2.2变量2.变量的命名规则C语言中,变量、符号常量和函数名等统称为标识符,遵循标识符的如下使用规则:标识符的习惯用法:常量用大写变量用小写常用取简专用取繁顾名思义例:intx;chara,b,c;floatpi=3.1415;/*定义pi并初始化*/floatscore;3.变量的定义:C使用变量的原则:“先定义,再使用”。关键字不可作为变量名。决定变量的取值范围、存储空间大小(字节数)使用合法标识符,定义同时可以赋初值4.变量定义格式:类型变量名表;§3.3整型数据§3.3.1整型变量说明:实际应用中,为了充分利用变量的内存空间,可以定义与上述三类整型变量相应的“无符号”类型,详见教材41~43页。数据在内存中是以二进制形式存放的,根据变量的取值范围,整型变量分为下述三大类(VisualC++6.0系统):基本整型int4B-231~(231-1)短整型shortint2B-215~(215-1)长整型longint4B-231~(231-1)八进制整数:由0~7组成,最高位用0引导。十六进制整数:由0~9及a~f或A~F组成,最高位用0x或0X引导。十进制整数:由0~9组成,第一位数字为非零(除零外)如:123,-468,340,0如:0123,-011,0270如:0x123,-0x13,0x2F说明:1.整型常量默认为int型,占4个字节的内存空间。若要指定某个常量为longint,可在数字后加字符L或l。如:423L67l2.整型常量超过取值范围,会发生溢出,得到错误结果。§3.3.2整型常量整型常量即整常数,有三种表示形式:§3.4浮点型数据§3.4.1浮点型变量浮点型变量与整型变量的存储方式不同,浮点型变量在内存中是按照指数形式存储的,用于存放包含小数位的值。浮点型变量分单精度(float)和双精度(double)两种。float占用4个字节的存储空间,接收七位有效数字;double占用8个字节的存储空间,接收十六位有效数字。正确的结果是:a的值为:123456.7b的值为:123456.789例:floata;doubleb;a=123456.789;b=123456.789;说明:1.浮点型常量默认为double型,占8个字节的内存空间。若要指定某个常量为float型,可在数字后加字符F或f。如:2.39F33.45f2.与整型常量一样,浮点型常量也存在溢出问题。注意:e或E前必须有数字,e或E后的指数必须是整数。b.指数形式:[整数部分][.尾数部分][E|e[+|-]指数部分]a.十进制形式:由0~9数字及小数点组成。如:.123,123.,-123.0,0.0如:123e0,1.23E2,45e-1§3.4.2浮点型常量浮点型常量即实数,有两种表示形式:7§3.5字符型数据§3.5.1字符变量浮点型变量char用来存放字符常量,它只能存放一个字符。占用1个字节的存储空间,存放单个字符的ASCII码。(见364页附录A)§3.5.2字符常量字符:用单引号括起来的单个字符。如:‘a’,‘x’,‘&’,‘D’,‘?’注意:‘a’与‘A’是不同的字符常量。转义字符:在单引号中用反斜线引导的字符或数字。意思是将反斜线(\)后面的字符转换成另外的意义。(见48页表3-3)用双引号括起来的零个或多个字符(含转义字符)组成的字符序列。系统自动在字符串的结尾加上一个结束标志‘\0’。如:“Sky”,“$12345.3”,“**^**”,“s”注意:1.‘a’与“a”完全不同。2.不能将一个字符串赋给一个字符变量。课堂练习请判定下述表达的合法性:1.charch1;ch1=“abc”;4.charch4;ch4=‘0’;2.charch2;ch2=“m”;5.charch5;ch5=‘\0’;3.charch3;ch3=‘qwe’;6.charch6;ch6=‘h’§3.5.3字符串常量§3.7各类数值型数据间的混合运算整型、浮点型、字符型数据间可以混合运算。在进行运算之前,不同类型的数据要先转换成同一种数据的类型。类型转换的两种方式1.自动类型转换(隐式转换)—系统自动转换。2.强制类型转换(显式转换)—人为进行的转换。自动类型转换发生在下列三种情况:1.混合运算.2.赋值运算.3.数据输入输出.如:inti=2;floatf=3.6;doubled=3.2;longinte=45;10+‘a’+i*f-d/e;如:inta;floatb=2.4;a=b+5;如:charst=‘a’;printf(“%d”,st);自动类型转换转换原则:低高intunsignedlongdouble**char、shortfloat说明:1.带(*)无条件的转换
本文标题:经典C语言课件
链接地址:https://www.777doc.com/doc-3905135 .html