《C语言程序基础》PPT课件.ppt_第1页
《C语言程序基础》PPT课件.ppt_第2页
《C语言程序基础》PPT课件.ppt_第3页
《C语言程序基础》PPT课件.ppt_第4页
《C语言程序基础》PPT课件.ppt_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1,C语言程序设计,第二章C语言程序基础,华北电力大学计算机科学系郑玲,2,学习目标,掌握C程序的基本结构及C语言基本语法成分;理解C语言数据类型的概念,掌握整形、浮点型、字符型数据的存储形式、取值范围、表示形式及基本运算;掌握格式输入输出函数的使用,理解输入输出格式字符串与输入输出数据间的匹配关系;通过模仿和改写例题,学习简单的程序设计方法。,3,2.1C程序的基本结构,C语言程序的基本结构如下:编译预处理命令voidmain(void)声明部分执行部分类型子函数名(形参表)声明部分执行部分,执行部分一般形式如下:数据输入数据处理数据输出,4,2.2C语言基本语法成分,2.2.1C语言的字符集字符是组成语言的最基本的元素。C语言字符集由字母、数字、空格、标点和特殊字符组成。1.字母:小写字母az共26个,大写字母AZ共26个2.数字:09共10个3.特殊符号:!#%:?()4.空白符,5,2.2.2标识符,标识符用来标识变量名、符号常量名、函数名、数组名、类型名等。C语言规定,标识符只能是字母(AZ,az)、数字(09)、下划线(_)组成的字符串,并且其第一个字符必须是字母或下划线。例如,a,i,sum,average,al,c_2,DAY,student,p26,_no是合法的标识符;5a,Mfor,$123,3D64,a-b是不合法的标识符。,6,2.2.2标识符,在使用标识符时必须注意以下几点:1、大小写敏感,即C语言认为大小写字母为不同的字符。例如A和a是两个不同的标识符。2、ANSIC没有限制标识符长度,但各个编译系统都有自己的规定和限制。3、标识符不能与“关键字”同名,也不能与系统预先定义的“标准标识符”同名,如main、printf等。4、标识符虽然可由用户定义,但标识符是用于标识某个量的符号。因此,命名应尽量有相应的意义,以便于阅读理解,作到“顾名思义”。如sum、avg、area、score、name等5、在容易出现混淆的地方应尽量避免使用容易认错的字符。例如,数字1与字母1和I,数字0与字母o,数字2与字母Z和z。,7,2.2.3关键字,关键字是由C语言规定的具有特定意义的字符串,通常也称为保留字。C语言包括32个个关键字:autobreakcasecharconstcontinuedefaultdodoubleelseenumextemfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunionunsignedvoidvolatilewhile注意:C语言的关键字都是小写。2.2.4运算符运算符表示各种运算功能。运算符由一个或多个字符组成,如:+、-、*、/、,8,2.2.5分隔符,C语言中,分隔符有逗号、空格、Tab和回车等。逗号:主要用于在类型说明和函数参数表中分隔各个变量;空格、Tab和和回车多用于语句和各单词之间的间隔符。注意:在关键字或标识符之间必须要有一个以上的分隔符作间隔,否则将会出现语法错误,例如把inta,b;写成inta,b;C编译器会把inta当成一个标识符处理,其结果必然出错。,9,2.3C语言数据类型,C数据类型,基本类型,构造类型,指针类型,空类型void,浮点型,字符型char,枚举型enum,整形,shortintintlongint,floatdouble,数组型,结构体型,共用体型,10,2.3C语言数据类型,常量:在程序执行过程中,常量的值不能由程序改变。变量:在程序执行过程中,变量的值可以由程序改变。变量对应着内存中的一个存储单元,在存储单元中存放着该变量的值,每个变量都有一个名字。例如:x、sum、area不同类型的数据所占的存储单元的大小也不同,例如,char型占1个字节、int型占4个字节、double型占8字节。注意:变量必须先声明后使用。,11,2.3.1整型(int)数据,整型数据占有4个字节的存储空间,以二进制定点补码的形式存储,它的取值范围为-21474836482147483647即-231(231-1),整型数据没有小数部分。【例2-1】整数型数据的运算。,#includevoidmain()intx,y;x=1/2;/*整型运算量的除法运算,其结果自动取整*/y=5%2;/*%为求余运算,其运算量只能是整数*/printf(x=%d,y=%dn,x,y);,x=0,y=1Pressanykeytocontinue,声明变量,变量的赋值,输出变量的值,12,2.3.2浮点型(flaot)数据,浮点型数据占有4个字节的存储空间,以浮点的形式存储,它的取值范围为(2.410-382.41038)。在C语言中,浮点型常量有两种表示形式:1、小数形式:由正负号、数字和小数点组成,小数点前后的0可以省略,但小数点不能省略。例如:0.、.25、32.78、-12.、2.0等。2、指数形式:用科学记数法来表示浮点数,一般用来表示很大或很小的数。例如:23500000=2.35107,在C程序中可以表示成:2.35e7、2.35E7、0.235e8、235e5。注意:指数部分必须为整数,一个浮点数不能只包含指数部分或底数部分。例如:2.5e-2.0、E+5.2.6e都是错误的。,13,2.3.3字符型(char)数据,1、字符常量在C语言中字符型常量是用单引号括起来的单个字符,例如:A、b、0、+等。字符常量的特点:符常量只能用单引号括起来,不能用双引号。字符常量只能是一个字符,不能是多个字符。字符可以是字符集中任意字符。但数字被定义为字符型之后与其本身数值是不相等的。例如:0和0是不同的。2、字符数据的存储在内存单元中存储的是字符的ASCII码,ASCII码为0127之间的整数。3、字符数据的运算“+”、“-”和比较运算。注意:+、-运算相当于为字符的ASCII码加上或减去一个整数值,但运算后的值仍然在ASCII码值的表示区间内运算才有意义。,14,2.3.3字符型(char)数据,【例2-2】字符变量赋值与输出。,#includevoidmain()charc;/*声明字符型变量c*/intx;/*声明整型变量x*/c=97;/*97是a的ASCII码*/x=b;printf(%c,%dn,c,c);printf(%d,%cn,x,x);,a,9798,bPressanykeytocontinue,声明字符变量,字符变量赋值,输出字符变量的值,15,2.3.3字符型(char)数据,【例2-3】在键盘上输入一个小写字符,将其转换成大写字符后输出。,#includevoidmain()charc;c=getchar();c=c-32;putchar(c);putchar(n);,aAPressanykeytocontinue,在键盘上输入一个字符赋给变量c,输出变量c中存储的字符,az的ASCII码为:97122AZ的ASCII码为:6590,16,2.4C语句,1、表达式语句:一般形式为:表达式;例如:x=y+z;i+;2.函数调用语句:一般形式为:函数名(实际参数表);例如:scanf(%d,”组成的语句称为空语句。空语句是什么也不执行的语句。,17,2.5C语言的格式输出printf函数,一般形式为:printf(格式控制字符串,输出表列)格式字符串为:%标志输出最小宽度.精度长度类型1.类型:,18,2.5C语言的格式输出printf函数,2.标志:标志字符为-.+.#.空格四种,19,2.5C语言的格式输出printf函数,3.输出最小宽度:若实际位数多于定义的宽度,则按实际位数输出,若实际位数少于定义的宽度则补以空格或0。4.精度:如果输出数字,则表示小数的位数;如果输出的是字符,则表示输出字符的个数;若实际位数大于所定义的精度数,则四舍五入截去超过的部分。5.长度:长度格式符为h和l两种,h表示按短整型量输出,l表示按长整型量输出。,20,2.5C语言的格式输出printf函数,【例2-4】格式符与输出项匹配实例。,#includevoidmain()inta=97;floatb=56.748;printf(a=%d,b=%fn,a,b);printf(%c,%d,%o,%x,%fn,a,a,a,a,a);printf(%f,%e,%d,%o,%xn,b,b,b,b);,a=97,b=56.748001a,97,141,61,0.00000056.748001,5.674800e+001,-2147483648,10023057676,80000000Pressanykeytocontinue,21,2.5C语言的格式输出printf函数,【例2-5】输出宽度与精度实例。,#includevoidmain()inta=66;floatb=122.1234567;doublec=1234567890.1234567;printf(a=%d,%-5d,%5d,%5cn,a,a,a,a);printf(b=%f,%lf,%5.4f,%.4e,%10.2fn,b,b,b,b,b);printf(c=%lf,%f,%8.4lfn,c,c,c);,a=66,66,66,Bb=122.123459,122.123459,122.1235,1.2312e+002,122.12c=1234567890.123457,1234567890.123457,1234567890.1235Pressanykeytocontinue,22,2.5C语言的格式输出printf函数,注意:1、C语言编译器不会检测格式符与输出项的数量是否相匹配,若输出项多余格式符,printf函数则正确的显示前面匹配的输出项,后面多余的不输出。例如printf(%d,i,j);2、若输出项少于格式符,printf函数则正确的显示匹配的输出项,后面多余的格式符因为没有匹配的输出项,将输出没有任何意义的随机数。例如printf(%d,%d,i);3、C语言编译器也不会检测格式符与输出项的数据类型是否匹配,若不匹配则输出无意义的数值。4、小数部分,精度按四舍五入截取。5、输出数值位数小于输出最小宽度,用空格补齐,“-”指定左对齐,默认为右对齐。6、输出数值位数大于输出最小宽度,按实际位数输出。7、flaot类型和double类型的输出项“%f”和“%lf”格式的输出相同。,23,2.6C语言的格式输入scanf函数,scanf函数的一般形式为:scanf(格式控制字符串,地址表列);地址是由地址运算符“printf(inputa,b,cn);scanf(%d%d%d,inputa,b,c258a=2,b=5,c=8Pressanykeytocontinue,inputa,b,c258a=2,b=5,c=8Pressanykeytocontinue,inputa,b,c258a=2,b=5,c=8Pressanykeytocontinue,inputa,b,c2,5,8a=2,b=-858993460,c=-858993460Pressanykeytocontinue,24,2.6C语言的格式输入scanf函数,2.格式字符串中的普通字符空格:当在格式控制字符串遇到一个或多个空格时,scanf函数从输入数据中重复读空白字符直到遇到一个非空字符为止。其它字符:当在格式控制字符串中遇到一个非空字符时,scanf函数将它与输入字符进行比较,若两个字符相等,继续下一个输入,否则终止scanf函数的执行。【例2-7】其它分隔符实例,#includevoidmain()inta,b,c;printf(inputa,b,cn);scanf(%d,%d,%d,inputa,b,c2,6,4a=2,b=6,c=4Pressanykeytocontinue,inputa,b,c264a=2,b=-858993460,c=-858993460Pressanykeytocontinue,25,2.6C语言的格式输入scanf函数,3.格式字符串格式字符串的一般形式为:%*输入数据宽度类型(1)类型,26,2.6C语言的格式输入scanf函数,(2)*“*”符:用以表示该输入项,读入后不赋予相应的变量,即跳过该输入值。例如:scanf(%d%*d%d,输入:12345678将把12赋予a,而把345赋予b,其余的字符无效,所以输入后a=12,b=345。,27,2.6C语言的格式输入scanf函数,4.字符变量的输入在输入字符数据时,若格式控制串中无非格式字符,则认为所有输入的字符均为有效字符。例如:scanf(%c%c%c,输入:def则把d赋予a,赋予b,e赋予c。输入为:def则把d赋于a,e赋予b,f赋予c。,28,2.6C语言的格式输入scanf函数,注意:1、scanf函数中没有精度控制。例如:scanf(“%5.2f”,。3、在输入多个数值数据时,若格式控制串中没有非格式字符作为输入数据之间的间隔,则可用空格、TAB或回车作为间隔。4、在输入字符数据时,若格式控制串中无非格式字符,则认为所有输入的字符均为有效字符。5、在使用double型数据输入时,一定要注意格式控制说明是%lf,如果写成%f,那么将导致输入错误。,29,2.7小结,C语言程序的基本结构:编译预处理命令voidmain(void)声明

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论