第2章C语言简介.ppt

上传人:sccc 文档编号:4965039 上传时间:2023-05-26 格式:PPT 页数:31 大小:1.58MB
返回 下载 相关 举报
第2章C语言简介.ppt_第1页
第1页 / 共31页
第2章C语言简介.ppt_第2页
第2页 / 共31页
第2章C语言简介.ppt_第3页
第3页 / 共31页
第2章C语言简介.ppt_第4页
第4页 / 共31页
第2章C语言简介.ppt_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《第2章C语言简介.ppt》由会员分享,可在线阅读,更多相关《第2章C语言简介.ppt(31页珍藏版)》请在三一办公上搜索。

1、1,1.6 C语言简介,一个简单的C程序数据类型算数和逻辑运算流程结构指针、数组的定义和访问函数的定义、声明、调用结构体与共用体,2,1.6 C语言简介:一个简单的C语言程序,main()printf(“Hello wold.n”);每个C程序都有一个主函数main;C程序是由函数构成的;“和”内的部分是函数体;每个语句以分号“;”结束;printf是C的库函数一个函数。,3,1.6 C语言简介:数据类型与变量定义,常量直接常量 circle_a=3.1416*r*r;符号常量#define PI 3.1416/*定义符号常数*/circle_a=PI*r*r基本变量类型int i1,i2;/

2、*定义i1,i2为整型变量*/short s1,s2;/*定义s1,s2为短整型变量*/long l1,l2/*定义l1,l2为长整型变量*/unsigned 放在int,short,long之前说明为无符号类型,4,1.6 C语言简介:数据类型与变量定义,char 字符型floatdouble 单精度实型双精度实型(浮点型)enum 枚举类型(在构造类型里介绍)构造类型结构体共用体指针空类型在C语言中,使用一个变量之前必须先定义变量的类型,编译时会根据指定类型分配存储空间,并决定数据的存储方式和允许操作的方式。,5,1.6 C语言简介:变量的赋值,变量=表达式说明:“=”是赋值符号;赋值运算

3、的方向由右向左。先计算表达式的值再给变量赋值;“变量=表达式”在C语言中称为赋值表达式,它等于被赋值变量的值b=a=3+5;/*赋值后a,b都是8*/课外学习:如果赋值符号“=”两边的类型不一致会是什么结果?,6,1.6 C语言简介:标识符命名,标识符是给程序中的实体变量、常量、函数、数组、结构体以及文件起名字。命名原则以字母或下划线开头,由字母、数字或下划线组成的字符序列。Number-of-move,piece flag,5_7_9 都是不合法的C语言定义的关键字有专门含义,不能在用来命名实体长度因系统而异,7,1.6 C语言简介:算术运算,5个双元运算+,-,*,/,%自反算术运算a=a

4、+b;可以简写成 a+=b;另外还有 a-=b;a*=b;a/=b;a%=b;自加和自减运算i=i+1;可以用 i+=1;用i+表示i=i-1;可以用 i-=1;用i-表示课后阅读:+i,和-i和上面有什么区别一元运算、优先级问题,8,1.6 C语言简介:关系运算和逻辑运算,关系运算是指对两个运算量之间的大小比较(大于),=(大于等于),(小于),=(小于等于),!=(不等于)关系运算的返回值只有两个:“真”或“假”3种逻辑运算&(逻辑与)|(逻辑或)!(逻辑非),9,1.6 C语言简介:C语言的语句,表达式语句赋值语句;如:i=1;i=a+b;x=sin(y)函数调用语句Printf(“he

5、llo worldn”);空语句流程控制语句ifelse语句switch语句for语句while语句dowhile语句Continue,break语句,10,1.6 C语言简介:C语言的语句,选择结构(1)if(条件表达式)语句块/*如果只有一个语句 花括号可以去掉;*/,11,1.6 C语言简介:C语言的语句,选择结构(2)if(条件表达式)语句块/*如果只有一个语句花括号可以去掉;*/else 语句块/*如果只有一个语句花括号可以去掉;*/,12,1.6 C语言简介:C语言的语句,选择结构(3)if(条件表达式)语句块/*如果只有一个语句花括号可以去掉;*/else if(条件表达式)语句

6、块/*如果只有一个语句花括号可以去掉;*/else 语句块/*如果只有一个语句花括号可以去掉;*/,13,1.6 C语言简介:C语言的语句,选择结构(4)swith(表达式)case 常值表达式1:语句块1case常值表达式 2:语句块2.defaut:语句块n 注意:每个语句块的最后一条语句通常是break语句(跳到多路选择或循环结构之后),14,1.6 C语言简介:C语言的语句,循环结构(1)while(条件表达式)循环体/*如果只有一个语句 花括号可以去掉;*/,15,1.6 C语言简介:C语言的语句,循环结构(2)do 循环体/*如果只有一个语句 花括号可以去掉;*/while(条件表

7、达式)至少要执行一次循环体,与fortran语言的do while语句不一样,16,1.6 C语言简介:C语言的语句,循环结构(3)for(初始化表达式;条件表达式;修正表达式)循环体/*如果只有一个语句 花括号可以去掉;*/相当于:初始化表达式;while(条件表达式)循环体 修正表达式;/for 中每个分句多个表达式是否可以?,17,1.6 C语言简介:指针(1),凡是在程序中定义的变量,在编译时都分配相应的存储单元。例如,一般微机的C系统给整型变量分配2个字节,实型分配4个字节。每个变量所占的存储单元都有确定的地址。例如int a=3,b=4;float c=4.5,b=8.6;char

8、 e=x,f=y;其在内存情况如下图所示,18,1.6 C语言简介:指针(2),编译时每个变量名对应一个地址,在内存中不再出现变量名而只有地址。通过变量名或地址访问一个变量的方式称为“直接”访问,19,1.6 C语言简介:指针(2),变量的“间接访问”方式,就是把一个变量的地址放在另一个变量中。所谓指针就是地址,20,1.6 C语言简介:指针变量的定义与访问,类型说明符*变量名;例如int*p;p是一个指针变量,它指向一个整型变量。换句话说p中存放一个整型变量的地址。float*p1;double*p2;char*p3;指针也可以指向自定义的数据类型,int i,*i_pointer i_po

9、inter=第4个语句的含义是将3赋给指针变量i_pointer所指向的变量。所以第3句和第4句的作用一样,21,1.6 C语言简介:数组,一维数组定义类型标识 数组名常量表达式;例如:int a5;/*定义一个数组a,它包含5个元素,每个元素都是整型的*/数组元素的访问数组名下标;数组元素的下标是从0开始的对数组a,其包含的5个元素是a0,a1,a2,a3,a4,22,1.6 C语言简介:数组,二维及多维数组定义类型标识 数组名常量表达式常量表达式;例如:int a22;/*定义一个数组a,它是一个两行两列的数组,每个元素都是整型的*/二维及多维数组的定义数组名下标下标;同样,每一维也是从0

10、开始,23,1.6 C语言简介:数组计算机内存储示例,24,1.6 C语言简介:指针与数组,一个数组的名是代表它的起始地址如果指针变量p已指向数组中的一个元素,则p+1指向同一数组中的下一个元素。引入指针变量后,就可以用两种方法来访问数组元素了。如果p的初值为&a0,则:p+i和a+i就是ai的地址,或者说它们指向a数组的第i个元素。*(p+i)或*(a+i)就是p+i或a+i所指向的数组元素,即ai。例如,*(p+5)或*(a+5)就是a5。指向数组的指针变量也可以带下标,如pi与*(p+i)等价。,因此可以动态申请数组例如 int*a;a=(int*)malloc(sizeof(int)*

11、n);n是数组长度,可以在程序运行时确定n的值,而不像数组定义那样需要常值表达式。,25,1.6 C语言简介:指针与数组,用指针动态建立二维数组例如,m x n的矩阵,int m,n,*a,i,j;a=(int*)malloc(sizeof(int*)*m);for(j=0;j m;j+)aj=(int*)malloc(sizeof(int)*n);,26,1.6 C语言简介:结构体,某些量可能是由不同的类型量组成,C语言中引入了“结构体”类型。例如 struct personchar name10;int age;char sex;struct person*next;/*有些编译环境此处s

12、truct可以不 写*/定义这种类型变量struct person s1,*s2;结构体变量的访问s1.name;s1.sex;动态申请s2=(struct person*)malloc(sizeof(struct person);对s2指向的结构体的访问s2-name;s2-age;共用体的概念(自学),27,1.6 C语言简介:函数,函数式的程序结构。程序整体由一个或多个函数组成。每个函数都具有各自独立的功能和明显的界面。,28,1.6 C语言简介:函数,函数的定义包括函数类型(即函数值类型)函数名形式参数的数目、类型函数体内容函数定义形式如下 类型标识符 函数名(形式参数表列)声明部分

13、语句 例如double add(double a,double b)return(a+b);,29,1.6 C语言简介:函数,在函数调用之前往往进行声明例如int max(int a,int b)/*函数声明*/main()int max(int a,int b);int x,y,z;printf(input two numbers:n);scanf(%d%d,30,1.6 C语言简介:函数调用,函数的传值调用形参与实参各占一个独立的存储空间形参的存储空间在函数调用时才分配,然后将实参的值传递给形参,这时形参得到了实参的值。这种虚实结合方式称为“值结合”。,例如swap(int x,int y

14、)main()int a=3,b=5;swap(a,b);cout(a,b);swap(int x,int y)int temp;temp=x;x=y;y=temp;cout(x,y)执行结果:x=5,y=3a=3,b=5,例如swap(int*x,int*y)main()int a=3,b=5;swap(cout(*x,*y)执行结果:x=5,y=3a=5,b=3,31,1.6 C语言简介:函数,递归调用【例8.5】用递归法计算n!用递归法计算n!可用下述公式表示:n!=1(n=0,1)n(n-1)!(n1)按公式可编程如下:long ff(int n)long f;if(n0)printf(n0,input error);else if(n=0|n=1)f=1;else f=ff(n-1)*n;return(f);,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号