C程序设计的初步知识.ppt_第1页
C程序设计的初步知识.ppt_第2页
C程序设计的初步知识.ppt_第3页
C程序设计的初步知识.ppt_第4页
C程序设计的初步知识.ppt_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

第二章C程序设计的初步知识(一),回顾1、程序是为执行一项任务而编写的有序指令集2、编译器将源程序转换成机器能理解的程序3、连接器用于连接相关的目标文件以生成可执行程序问:1、C的源程序是后缀是什么?2、目标文件的后缀是什么?3、程序的三大结构是什么?,目标,理解C程序的基本结构理解变量和常量的含义熟悉基本数据类型-int、char、float和double,C语言的基本结构,#includevoidmain()printf(HelloWorldn);,以#开始的语句称为预处理器指令,#include语句不是必需的,但是,如果程序有该语句,就必须将它放在程序的开始处,以.h为后缀的文件被称为头文件,可以是C程序中现成的标准库文件,也可以是自定义的库文件。,stdio.h文件中包含了有关输入输出语句的函数,main()函数是C程序处理的起点。,main()函数可以返回一个值,也可以不返回值。如果某个函数没有返回值,那么在它的前面有一个关键字void,在函数定义的后面有一个左大括号,即,它表示函数的开始,后面是函数的主体,大括号也可以用于将语句块括起来,在函数定义的结尾处有一个右大括号,即,在屏幕上产生一行输出“Helloworld”,并换行(n),函数主体中的每个语句都以分号结束。,C程序中的一个语句可以跨越多行,并且用分号通知编译器该语句已结束。,C程序中的注释,#includevoidmain()printf(HelloWorldn);,/此程序用来打印HelloWorld,单行注释,C程序可以包含注释,以便向读者作一般说明,编译器并不处理这些注释,/*此程序由编写*用来打印输出“HelloWorld”*/,多行注释,/*作者:创建日期:描述:*/#includevoidmain(),注释,在程序中添加注释是一个好的编程习惯,可以增强程序的可读性。,上机写一个错误的例子,给大家演示一下。说明:1.必须使用main作为主函数名,程序是从主函数开始执行,具有唯一性注意后面不能带“;”2.函数体用左花括号“”开始,用右花括号结束“”3.用分号“;”作为语句结束的标志注意是语句的结束标志4.注释部分:必须用/*和*/括起来必须成对出现,”/“和”*“之间不能有空格注释可以出现在程序的任何地方注释部分对程序运行不起作用在注释之间不可以再嵌套/*/(演示一下)5,预处理器指理必须以”#“开头,但不能加分号,什么是标识符,标识符:在C语言中,有许多符号的命名,如变量名、函数名、数组名等,都必须遵守一定的规则,按此规则命名的符号称为标识符。,在C语言中,标识符命名需要遵循一定的规则,有效名称,principal,cost_price,marks_3,lastname,city,无效名称,123rate,currency$,discount%,zipcode,标识符的命名规则:标识符名可以由字母、数字和_(下划线)组合而成标识符不能包含除_以外的任何特殊字符,如:%、#、逗号、空格等标识符必须以字母或_(下划线)开头标识符不能包含空白字符(换行符、空格和制表符称为空白字符)C语言中的某些词(例如int和float等)称为保留字,具有特殊意义,不能用作标识符名C语言区分大小写,因此标识符price与标识符PRICE是两个不同的标识符,一、标识符1.分类:,关键字:c语言规定了一批标识符,他们在c语言中代表着固定的含义,不能另做它用autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatorgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunionunsignedvoidvolatilewhile预定义标识符:c语言语法允许用户把这类标识符另做它用,但是这些标识符将失去系统规定的原意。比如:printfdefine用户标识符:由用户根据需要定义的标识符称为用户标识符,程序,指令,常量,标识符关键字常量运算符分隔符等,常量是在程序中保持不变的量,常量用于定义具有如下特点的数据:在程序中保持不变在程序内部频繁使用需要用比较简单的方式替代某些值,二、常量1.分类:整型常量、实型常量、字符常量、字符串常量三、用定义一个符号名的方法来代表一个常量例2.2计算圆的面积#include“stdio.h”#definePI3.14159/*定义符号名PI为3.14159*/main()floatr;doubles;r=5.0;s=PI*r*r;Printf(“s=%fn”,s);(演示一下),说明:1、在整型常量的后面加一个字母L(大小写均可)这个常量就成为长整型常量在内存中占四个字节。2、无符号整数在数的未尾应该加上字母后缀u(大小写均可),若是长整型无符号整型常量,则可以加后缀lu或LU。3、常量的名子一定要大写。4、定义常量的语句后面不能加“;”。,2.3整型数据一、整型常量整数的表示,(1)十进制表示:用一串连续的数字表示十进制数。例:345316840-23456只有十进制可以是负数。(2)八进制表示:以数字0开头的一个连续数字序列,序列中只能有0-7这八个数字。例而019、423是非法的八进制数。(3)十六进制表示:以0X或0 x开头的连续数字和字母序列,序列中只能有0-9、A-F和a-f这些数字和字母,字母a、b、c、d、e、f分别对应数字10、11、12、13、14、15,大小写均可。,二、整型变量可以分为基本型、短整型、长整型和无符号型四种,声明和使用变量,声明变量:Datatypevariablename;定义时初始化变量:Datatypevariablename=value;定义后初始化变量:variablename=value;,给变量赋值,除了给一个直接的值以外,还可以通过计算获得。演示,二、变量1.定义:在程序的运行过程中,值可以改变的量2.说明:(1)每个变量有一个名字作为标识,它是属于用户标识符(2)变量必须先定义后使用(定义后还得赋值才能用),习题:1.以下选项中不合法的用户标识符是()A._123B.printfC.A$D.Dim2.可在c程序中用作用户标识符的一组标识符是()A.voidB.as_b3C.ForD.2cdefine_123_abcDOWORDIf(大写)caseSIG,2.4实型数据,一、实型常量1.小数形式:由数字和小数点组成,必须有小数点。例:4.23、0.15、.56、78.、0.02.指数形式:以幂的形式表示,以字母e或E后跟一个以10为底的幂数。字母e或E之前必须要有数字,且字母e或E后面的指数必须为整数,字母e或E的前后及数字之间不得有空格(实型变量也遵守这个规则)。例:2.3e5、500e-2、.5E3、4.5e0,而e4、.5e3.6、.e5、e都不合法二、实型变量1.单精度:关键字为float2.双精度:关键字为double定义的一般形式floata,b,c;定义的一般形式doublea,b,c;floata=4.5,b=5.6;doublea=5.9,b=45.36注:(1)占四个字节32位注:(1)占八个字节64位(2)7位有效数字-10381038(2)1516位有效数字-1030810308,说明:1.在内存中,实数一律以指数形式存放2.在内存中,整数可以精确存放,实型数据存在误差3.实型常量不分float和double一个实型常量可以赋给一个float型或者double型变量4.定义变量的同时可以赋初值,三、课堂练习1.下面四个选项中,那一组全是不合法浮点数的选项是A.160.B.123C.-.18D.-e30.122e4.2123e4.234e3.e50.01e32.下面四个选项中,均是合法浮点数的选项是A.+1e+1B.-.60C.123eD.-e35e-9.412e-41.2e-.4.8e-43e2-8e5+2e-15.e-0,总结:1、c语言是区分大小写的2、常量的分类:整型常量、实型常量、字符常量、字符串常量3、变量的分类:1、整型变量:基本型、短整型、长整型和无符号型四种2、实型变量分类:单精度、双精度4、指数形式:字母e或E之前必须要有数字,且字母e或E后面的指数必须为整数,字母e或E的前后及数字之间不得有空格(实型变量也遵守这个规则),第二章数值转换、算术运算符(二),回顾1、c语言是区分大小写的2、常量在程序中不能被更改,而变量在程序中可以被更改(定义常量的关健字是什么?)3、标识符只能由字母、数字和下划线组成,且第一个字符不能为数字4、整型分为短整型、整型、长整型,每种整型又可分为有符号型和无符号型5、实数分为单精度浮点型和双精度浮点型(表现方式为两种,1、小数2、指数)6、八进制表示为076十六进制表示为0X或0 x,目标,理解二进制、八进制、十进制、十六进制之间的转换理解原码、补码及如何计算熟练使用算术运算符理解类型转换,改错:#includestdioh#definePI3.14;Maininta,b,c;a=1.2;b=3.4;c=a*b;printf(“c的值是:%f”,c),选择题:1、以下选项中正确的变量名是a*123b)_yyAcdd)yyfloatqu;intre,in,de;/*使用算术运算符*/qu=a/b;/除法re=a%b;/求模in=+c;de=-d;printf(商为%fn,qu);printf(余数为%dn,re);printf(“加1后为%dn,in);printf(减1后为%dn,de);,算术运算符示例,输出:商为1.000000余数为2加1后为26减1后为11,类型转换,自动类型转换(双目运算符两边运算数的类型必须一致,当不一致时自动转换)原则:把表示范围小的类型的值转换到表示范围大的类型的值(举例a+1)shortintlongfloatdouble,说明:%取模或求余运算符1.运算对象必须为整型2.符号与被除数相同,例如:-5%3值为-2/两端为整数时,它取整,有一端为实数时,他就变成了除,二、强制类型转换1.一般形式:(类型名)(表达式)2.作用:将一个表达式转换所需类型,说明:1.(类型名)(表达式),括号不能省略,(int)(x+y)(int)x+y,对x、y整体,只对x,2.强制类型转换运算得到一个中间变量,不改变原来变量的类型。,四、课堂练习1.已知a=7,b=3,x=3.5,y=2.5(1).x+a%3*(int)(x+y)%2/4(2).(float)(a+b)/2+(int)x%(int)y,三、运算符的优先级、结合性和算术表达式1.算术运算符的优先级()、+、-、*、/、%、+、-,高底,同级,同级,同级,单目,双目,2.算术运算符和圆括号的结合性正负运算符:右,左,其它算术运算符:左,右,Sum,=,num1,+,num2,表达式,Z=(X*2)+(5Y),赋值表达式,一、赋值运算符和赋值表达式1.赋值运算符和赋值表达式赋值运算符:=赋值表达式:由赋值运算符组成的表达式形式:变量名=表达式说明:1.优先级倒数第二,结合方向右,左,2.是一种赋予的关系而不是等价的关系x=5y=8怎么样交换x、y中的数值?3.赋值运算符的左侧只能是变量不能是表达式4.赋值号右边的表达式也可以是一个赋值表达式,a=b=c=5都为5a=5+(c=6)a=11a=(b=4)+(c=6)10a=(b=10)/(c=2)5,课堂练习:,二、复合赋值表达式,1.复合赋值运算符:+=、-=、*=、/=、%=、=、b=3;a=b+;a的值是多少,b的值是多少a=+b;a的值是多少,b的值是多少,习题:inti=10,j=5,b;b=+i-j;printf(b=%dn,b);inti=10,j=5,b;b=i+-j;printf(b=%dn,b);,二、逗号运算符和逗号表达式1.定义:用逗号将表达式连接起来的式子一般形式:表达式1,表达式2,表达式3,,表达式n2.求解过程:从左到右一个一个求解,最后一个表达式的值就是整个逗号表达式的值3.说明:(1)结合方向左右,(2)优先级最底例如:已知a=3a=3,a+3结果:表达式的值为6b=a+3,a-3结果:表达式的值为0,总结:,1、正整数以原码形式存储2、负整数以补码形式存储3、%取模或求余运算符:1.运算对象必须为整型2.符号与被除数相同4、双目运算符自动转换原则:把表示范围小的类型的值转换到表示范围大的类型的值5、反是有赋值运算符参加的运算都是从右往左算6、i+表达式的值:先用后加7、+i表达式的值:先加后用,习题:1、表达式13%5的值是多少()a.2b.3c.5d.12、要存储一个双精度浮点型的值,需要()字节的内存空间a.6b.2c.4d.83、表达式a+=a-=a+a的值是多少?已知a=9a.12b.18c.-18d.04、计算机里最小的存储单元是

温馨提示

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

评论

0/150

提交评论