C语言知识学习程序设计.ppt
《C语言知识学习程序设计.ppt》由会员分享,可在线阅读,更多相关《C语言知识学习程序设计.ppt(203页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、,C语言程序设计,主编:高立兵,1,职业教育“十二五”规划教材,东北师范大学出版社,目 录,项目1 C语言概述,1,项目2 数据类型、运算符与表达式,2,项目3 顺序结构程序设计,3,项目4 选择结构程序设计,4,项目5 循环结构程序设计,5,项目6 数组,5,项目导读 项目目标 项目任务,本项目主要对C语言的一些基础知识及其字符集和词汇进行介绍,使读者在学习C语言之前对其有个全面的认识。,项目导读, 安装、配置TC2.0和VC+6.0,成功启动TC2.0和VC+6.0。 能编写一个简单的C程序的源文件,并编译该源文件,链接目标文件得到可执行文件。,项目目标,任务1.1 C语言的发展与特点,C
2、语言是1972年由美国的Dennis Ritchie设计发明的,并首次在配备了UNIX操作系统的DEC PDP-11计算机上实现。它由早期的编程语言BCPL(Basic Combined Programming Language)发展演变而来。,C语言的特点 1、C语言是中级语言 2、C语言是结构化语言 3、C语言功能齐全 4、C语言适用范围广,任务1.2 认识C语言,本任务通过几个简单的C程序,介绍C语言的基本组成和格式。,案例1.1 main( ) printf(“This is a c program.n”); 本程序的功能是输入下列一行信息: This is a c program.,
3、任务1.2 认识C语言,程序说明: main函数是“主函数”,每一个C程序必须有一个main函数。 函数体由大括弧 括起来。本例中,主函数内只有一个输出语句,printf(“This is a c program.n”);是C语言的输出函数(具体详见项目3)。双引号内的字符串将照原样输出。 “n”是换行符,即在输出“This is a c program.”后换行。 分号是C语句的基本构成,每一个C语句后都应再加上分号,分号是语句的结束标志。,任务1.2 认识C语言,本任务通过几个简单的C程序,介绍C语言的基本组成和格式。,案例1.2 main() /*求两数之和*/ int a,b,sum;
4、 /*本行开始的以下4条为C语句*/ a=123;b=456; sum=a+b; printf(“sum is %dn”,sum); 本程序的功能是求两数之和。,任务1.2 认识C语言,程序说明: /*/是注释语句,此信息对编译和运行不起作用。 (2) 程序第二行的含义是定义a、b和sum为整体变量。 (3)“sum=a+b;”的含义是把变量a和b的和赋给变量sum。 (4)该程序的输出结果是:sum is 579。,任务1.2 认识C语言,案例1.3 main( ) /*求一个数的绝对值*/ int x,y; scanf(“%d”, 本程序的功能是求z的绝对值。,任务1.2 认识C语言,程序
5、说明: (1)本程序包括两个函数:主函数main和被调用函数abs。 (2)函数abs的作用是将z的绝对值返回给主调函数main(返回值是通过函数名abs带回到main函数的调用处的)。 (3)程序中的scanf函数的作用是从键盘上输入x的值。 无符号基本整型 unsigned int; 有符号短整型 signed short int; 无符号短整型 unsigned short int; 有符号长整型 signed long int; 无符号长整型 unsigned long int; 有符号双长整型 signed long long int; 无符号双长整型 unsigned long l
6、ong int; 以上方括号表示其中的内容是可选的,既可以有,也可以没有。如果既未指定为signed也未指定为unsigned的,默认为“有符号类型”。如signed int a和int a等价。,任务2.2 数据类型,2.2.2 字符型数据 1. 字符与字符代码 字符与字符代码并不是任意写一个字符,程序都能识别的。例如圆周率在程序中是不能识别的,只能使用系统的字符集中的字符,目前大多数系统采用ASCII字符集。各种字符集(包括ASCII字符集)的基本集都包括了127个字符。其中包括: 字母:大写英文字母AZ,小写英文字母az。 数字:09。 专门符号:29个: !”# ? 定义c为字符型变量
7、并使初值为字符?。?的ASCII代码是63,系统把整数63赋给变量c。c是字符变量,实质上是一个字节的整形变量,由于它常用来存放字符。所以称为字符变量。可以把0127之间的整数赋给一个字符变量。 在输出字符变量的值时,可以选择以十进制整数形式输出,或以字符形式输出。如: printf(“%d %cn”, c , c ); 输出结果是: 63 ? 用“%d”格式输出十进制整数63,用%c格式用字符形式输出字符?。,任务2.2 数据类型,2.2.3 浮点型数据 浮点型数据是用来表示具有小数点的实数的 。 浮点数类型包括float(单精度浮点型)、double(双精度浮点型)、long double
8、(长双精度浮点型)。 (1)float型(单精度浮点型)。编译系统为每一个float型变量分配4个字节,数值以规范化的二进制数值形式存放在存储单元中。在存储时,系统将实型数据分成小数部分和指数部分两个部分,分别存放。小数部分的小数点前面的数为0.如3.14159在内存中的存放形式可以用图2.9表示。,图2.9,任务2.2 数据类型, double型(双精度浮点型)。为了扩大能表示的数值范围,用8个字节存储一个double型数据,可以得到15位有效数字,数值范围为1.710-308 1.710308 。在C语言中进行浮点数的算术运算时,将float型数据都自动转换为double型,然后进行运算。
9、 long double型(长双精度)型,不同的编译系统对long double型的处理方法不同,Turbo C对long double型分配16个字节。而Visual C+6.0则对long double型和double型一样处理,分配8个字节。请读者在使用不同的编译系统时注意其差别。表2.4列出实型数据的有关情况,表2.4,任务2.3 运算符和表达式,2.3.1基本的算术运算符,表2.5 最常用的算术运算符,任务2.3 运算符和表达式,2.3.2 自增、自减运算符 作用是使变量的值加1或减1,例如: +i ,-i ( 在使用i之前,先使i的值加(减)1) i+, i-( 在使用i之后,使i
10、的值加(减)1) 粗略地看,+i和i+的作用相当于i=i+1。但+i和i+的不同之处在于+i是先执行i=i+1后,再使用i的值;而i+是先使用i的值后,再执行i=i+1。如果i的原值等于3,请分析下面的赋值语句: j=+i;(i的值先变成4,再赋给j, j的值为4) j=i+;(先将i的值3赋给j, j的值为3,然后i变为4) 又例如: i=3; printf(“%d”,i+); 输出4。若改为 Printf(“%dn”,i+); 则输出3。,任务2.3 运算符和表达式,2.3.3 算术表达式和运算符的优先级与结合性 用算术运算符和括号将运算对象(也称操作数)连接起来的、符合C语法规则的式子,
11、称为C算术表达式。运算对象包括常量、变量、函数等。例如,下面是一个合法的C算术表达式: a*bc1.5+a C语言除了规定了运算符的优先级外,还规定了运算符的结合性。在表达式求值时,先按运算符的优先级别顺序执行,例如先乘除后加减。如表达式ab*c , b的左侧为减号,右侧为乘号,而乘号优先级高于减号,因此,相当于a(b*c)。 如果在一个运算对象两侧的运算符的优先级别相同,如ab+c,则按规定的“结合方向”处理。C语言规定了各种运算符的结合方向(结合性),算术运算符的结合方向都是“自左至右”,及先左后右,因此b先与减号结合,执行ab的运算,然后再执行加c的运算。“自左至右的结合方向”又称“左结
12、合性”,即运算对象先于左面的运算符结合。以后可以看到有些运算符的结合方向为“自右至左”,即右结合性(例如,赋值运算符,若有a=b=c,按从右到左顺序,先把变量c的值赋给变量b,然后把变量b的值赋给变量a)。,任务2.3 运算符和表达式,2.3.4 不同类型数据间的混合运算 在程序中经常会遇到不同类型的数据进行运算,如5*3.5。如果一个运算符的两侧的数据类型不同,则先自动进行类型转换,使二者具有同一种类型,然后进行运算。因此整型、实型、字符型数据间可以进行混合运算。规律为: (1) +、*、运算的两个数中有一个数为float或double型,结果是double型,因为系统将所有float型数据
13、都先转换为double型,然后进行运算。 (2) 如果int型与float或double型数据进行运算,先把int型和float型数据转换为double型,然后再进行运算,结果是double型。 (3) 字符(char)型数据与整型数据进行运算,就是把字符的ASCII代码与整型数据进行运算。如:12+A,由于字符A的ASCII代码是65,相当于12+65,等于77。字符数据可以直接与整型数据进行运算。如果字符型数据与实型数据进行运算,则将字符的ASCII代码转换为double型数据,然后进行运算。,任务2.3 运算符和表达式,示例2.1 编程:给定一个大写字母,要求用小写字母输出。 编写程序:
14、 #includestdio.h int main ( ) char c1 ,c2; c1=A 将字符A的ASCII代码放到c1变量中 c2=c1+32; 得到字符a的ASCII代码,放在c2变量中 printf(“%cn”,c2); 输出c2的值,是一个字符 printf(“%dn”,c2); 输出c2的值,是字符a的ASCII代码 reurn 0 运行结果: a 97,任务2.3 运算符和表达式,2.3.6 C运算符 除了算术运算符外,C还提供其他运算符,共有以下几类: 关系运算符 (= ! =) 逻辑运算符 (! 定义各变量,均为double型 a=2.67; 对边长a赋值 b=4.43
15、; 对边长b赋值 c=5.21; 对边长c赋值 s=(a+b+c)/2; 计算s area=sqrt(s*()*()*(); 计算area printf(“a=%ftb=%ft%fn”,a ,b ,c ); 输出三边a ,b ,c 的值 printf(“area=%fn”,area); 输出面积area的值 return 0 ; 运行结果: a=2.670000 b=4.430000 5.210000 area=8.903431,任务2.4 赋值语句,2.4.1 赋值运算符 赋值符号=就是赋值运算符,它的作用是将一个数据赋给一个变量。如a=3的作用是执行一次赋值操作(或称赋值运算)。把常量3赋
16、给变量a。也可以将一个表达式的值赋给一个变量。 2.4.2 复合的赋值运算符 在赋值符=之前加上其它运算符,可以构成复合的运算符。如果在“=”前加一个“+”运算符就成了复合运算符“+=”。例如可以有以下的复合赋值运算: a+=3 等价于 a=a+3 x*=y+8 等价于 x=x*(y+8) x%=3 等价于 x=x%3 以“a+=3”为例来说明,它相当于使a进行一次自加3的操作。即:先使a加3,再赋给a。同样,“x*=y+8”的作用是使x乘以(y+8),再赋给x。,任务2.4 赋值语句,2.4.3 赋值表达式 由赋值运算符将一个变量和一个表达式连接起来的式子称为“赋值表达式”。它的一般形式为
17、变量 赋值运算符 表达式 赋值表达式的作用是将一个表达式的值赋给一个变量,因此赋值表达式具有计算和赋值的双重功能。如a=3*5是一个赋值表达式。对赋值表达式求解的过程是:先求赋值运算符右侧的“表达式”的值,然后赋给赋值运算符左侧的变量。既然是一个表达式,就应该有一个值。赋值表达式a=3*5的值为15,对表达式求解后,变量a的值和表达式的值都是15。 2.4.4 赋值过程中的类型转换 如果赋值运算符两侧的类型一致,则直接进行赋值。如: i=234; 设已定义i为整型变量 此时直接将整数234存入变量i的存储单元中。 如果赋值运算符两侧的类型不一致,但都是算术类型时,在赋值时要进行类型转换。类型转
18、换是由系统自动进行的 。,任务2.4 赋值语句,2.4.5 赋值表达式和赋值语句 在C程序中,赋值语句是用的最多的语句。在任务1的C语句分类中,并没有看到赋值语句,实际上,C语言的赋值语句属于表达式语句,由一个赋值表达式加一个分号组成。 注意:要区分赋值表达式和赋值语句。 赋值表达式的末尾没有分号,而赋值语句的末尾必须有分号。在一个表达式中可以包含一个或多个赋值表达式,但绝不能包含赋值语句。 2.4.6 变量赋初值 可以用赋值语句对变量赋值,也可以在定义变量时对变量赋以初值。这样可以使程序简练。如: int a=3; 定义a为整型变量,初值为3 float f=2.56; 定义f为浮点型变量初
19、值为2.56 char c=a 定义c为字符变量,初值为a,项目3 顺序结构程序设计,1,项目导读 项目目标 项目任务,在项目2中介绍了C程序中用到的一些基本要素,如常量、变量、运算符、表达式等。本项目将介绍编写简单的C程序所必需的一些内容。,项目导读,使用scanf函数从键盘为变量输入值。 使用printf函数输出数据。 能编写简单的C程序的源文件,并运行程序。,思考,项目目标,任务3.1 顺序程序设计举例,示例3.1 用温度计测量出用华氏法表示的温度(如69F),今要求把它转换为以摄氏法表示的温度(如20)。 解题思路:这个问题的算法很简单,关键在于找到二者之间的转换公式。根据物理学知识,
20、知道以下转换公式: c=59(f-32) 其中f代表华氏温度,c代表摄氏温度。据此可以用N-S图表示算法,见图3.1。,图3.1,算法由3个步骤组成,这是一个简单的顺序结构。 编写程序:有了N-S图,很容易用C语言表示,写出求此问题的C程序。,任务3.1 顺序程序设计举例,#includestdioh int main() float f,c; 定义f和c为单精度浮点型变量 f=63.0; 定义f的值 c=(59)*(f-32); 利用公式计算c的值 printf(“f=%nc=%n”,f,c);输出c的值 return 0; 运行结果: f=63.000000 c=16.777778,任务3
21、.1 顺序程序设计举例,示例3.2 计算存款利息。有1000元,想存一年。有三种方法可选:活期,年利率为r1;一年期定期,年利率为r2;存两次半年定期,年利率为r3。请分别计算出一年后按三种方法所得到的本息和。 解题思路:关键是确定计算本息和的公式。从数学知识可知,若存款额为p0,则: 活期存款一年后本息和为p1=p0(1+r1)。 一年期定期存款,一年后本息和为p2=p0(1+r2)。 两次半年定期存款,一年后本息和为p3=p0(1+r3/2)(1+r3/2)。 画出N-S流程图,见图3.2。,图3.2,任务3.1 顺序程序设计举例,#includestdio.h int main () f
22、loat p0=1000,r1=0.0036,r2=0.0225,r3=0.0198,p1,p2,p3; 定义变量 p1=p0*(1+r1); 计算活期本息和 p2=p0*(1+r2); 计算一年定期本息和 p3=p0*(1+r32)*(1+r32);计算存两次半年定期的本息和 printf(“p1=%fnp2=%fnp3=%fn”,p1,p2,p3);输出结果 return 0; 运行结果: P1=1002.599976 P2=1022.500000 P3=1018.898010,任务3.2 C语句概述,C程序的执行部分是由语句组成的。程序的功能也是由执行语句实现的,C程序主要包含表达式语句
23、、函数调用语句、控制语句、复合语句和空语句,其中控制语句包含多种情况,本任务将分别进行介绍。 C程序结构可以用图3.3表示。即一个C程序可以由若干个源程序文件(编译时以文件模块为单位)组成,一个源文件可以由若干个函数和预处理指令以及全局变量声明部分组成(关于“全局变量”见项目7)。一个函数由数据声明部分和执行语句组成。,图3.3,任务3.2 C语句概述,C语句分为以下5类 : (1) 控制语句。控制语句用于完成一定的控制功能。C语句只有9种控制语句,它们的形式是: if( )else (条件语句) for ( ) (循环语句) while( ) (循环语句) dowhile( ) (循环语句)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 知识 学习 程序设计
限制150内