第2章-C语言简介.ppt

上传人:本田雅阁 文档编号:2252051 上传时间:2019-03-11 格式:PPT 页数:31 大小:1.58MB
返回 下载 相关 举报
第2章-C语言简介.ppt_第1页
第1页 / 共31页
第2章-C语言简介.ppt_第2页
第2页 / 共31页
第2章-C语言简介.ppt_第3页
第3页 / 共31页
亲,该文档总共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

2、 基本变量类型 int i1,i2; /*定义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.

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

4、命名实体 长度因系统而异,7,1.6 C语言简介:算术运算,5个双元运算 +, -, *, /, % 自反算术运算 a = a+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语言简介:关系运算和逻辑运算,关系运算是指对两个运算量之间的大小比较 (大于), = (大于等于), (小于), = (小于等于),!= (不等于) 关系运算的返

5、回值只有两个:“真”或“假” 3种逻辑运算 &(逻辑与) | (逻辑或) !(逻辑非),9,1.6 C语言简介:C语言的语句,表达式语句 赋值语句; 如:i=1;i=a+b;x=sin(y) 函数调用语句 Printf(“hello worldn”); 空语句 流程控制语句 ifelse语句 switch语句 for语句 while语句 dowhile语句 Continue,break语句,10,1.6 C语言简介:C语言的语句,选择结构 (1)if(条件表达式) 语句块 /*如果只有一个语句 花括号可以去掉;*/ ,11,1.6 C语言简介:C语言的语句,选择结构 (2)if(条件表达式)

6、语句块 /*如果只有一个语句花括号可 以去掉;*/ else 语句块 /*如果只有一个语句花括号可 以去掉;*/ ,12,1.6 C语言简介:C语言的语句,选择结构 (3)if(条件表达式) 语句块 /*如果只有一个语句花括号可 以去掉;*/ else if(条件表达式) 语句块 /*如果只有一个语句花括号可 以去掉;*/ else 语句块 /*如果只有一个语句花括号可 以去掉;*/ ,13,1.6 C语言简介:C语言的语句,选择结构 (4)swith (表达式) case 常值表达式1:语句块1 case常值表达式 2:语句块2 . . defaut :语句块n 注意:每个语句块的最后一条语

7、句通常是break语句(跳到多路选择或循环结构之后),14,1.6 C语言简介:C语言的语句,循环结构 (1)while(条件表达式) 循环体 /*如果只有一个语句 花括号可以去掉;*/ ,15,1.6 C语言简介:C语言的语句,循环结构 (2) do 循环体 /*如果只有一个语句 花括号可以去掉;*/ while(条件表达式) 至少要执行一次循环体,与fortran语言的do while语句不一样,16,1.6 C语言简介:C语言的语句,循环结构 (3)for(初始化表达式;条件表达式;修正表达式) 循环体 /*如果只有一个语句 花括号可以去掉;*/ 相当于: 初始化表达式; while(条

8、件表达式) 循环体 修正表达式; /for 中每个分句多个表达式是否可以?,17,1.6 C语言简介:指针(1),凡是在程序中定义的变量,在编译时都分配相应的存储单元。 例如,一般微机的C系统给整型变量分配2个字节,实型分配4个字节。每个变量所占的存储单元都有确定的地址。例如 int a=3,b=4; float c=4.5,b=8.6; char e=x, f=y; 其在内存情况如下图所示,18,1.6 C语言简介:指针(2),编译时每个变量名对应一个地址,在内存中不再出现变量名而只有地址。 通过变量名或地址访问一个变量的方式称为“直接”访问,19,1.6 C语言简介:指针(2),变量的“间

9、接访问”方式,就是把一个变量的地址放在另一个变量中。 所谓指针就是地址,20,1.6 C语言简介:指针变量的定义与访问,类型说明符 *变量名; 例如 int *p; p是一个指针变量,它指向一个整型变量。换句话说p中存放一个整型变量的地址。 float *p1; double *p2; char *p3; 指针也可以指向自定义的数据类型,int i, *i_pointer i_pointer = 第4个语句的含义是将3赋给指针变量i_pointer所指向的变量。 所以第3句和第4句的作用一样,21,1.6 C语言简介:数组,一维数组 定义 类型标识 数组名常量表达式; 例如:int a5; /

10、*定义一个数组a,它包含5个元素,每个元素都是整型的*/ 数组元素的访问 数组名下标; 数组元素的下标是从0开始的 对数组a,其包含的5个元素是a0,a1,a2,a3,a4,22,1.6 C语言简介:数组,二维及多维数组 定义 类型标识 数组名常量表达式常量表达式; 例如:int a22; /*定义一个数组a,它是一个两行两列的数组,每个元素都是整型的*/ 二维及多维数组的定义 数组名下标下标; 同样,每一维也是从0开始,23,1.6 C语言简介:数组计算机内存储示例,24,1.6 C语言简介:指针与数组,一个数组的名是代表它的起始地址 如果指针变量p已指向数组中的一个元素,则p+1指向同一数

11、组中的下一个元素。 引入指针变量后,就可以用两种方法来访问数组元素了。 如果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)*n); n是数组长度,可以在程序运行时确定n的值,而不像数组定义那样需要常值表达式。,25,1.6 C语言简介:指针与数组,用指针动态建立二维数组 例如,m

12、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 person char name10; int age; char sex; struct person *next; /*有些编译环境此处struct可以不 写*/ 定义这种类型变量 struct person s1, *s2; 结构体变量的访问 s1.

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

14、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) main() int a

15、 =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=3 a=3,b=5,例如 swap(int *x, int *y) main() int a =3, b=5; swap( cout(*x, *y) 执行结果: x=5, y=3 a=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备18001539号-1