1 / 46

基本内容总结

基本内容总结. 第一 ~ 第十章. 目录总览. 第一章 C 语言的基本知识 第二章 算法 第三章 数据类型、运算符与表达式 第四章 C 语言中的顺序结构程序设计 第五章 C 语言中的选择结构程序设计 第六章 C 语言中的循环结构程序设计 第七章 C 语言中的数组 第八章 C 语言中的函数 第九章 编译预处理 第十章 指针. 前三章 C 语言的基本知识. 一、 C 程序的基本形式及构成 二、 C 程序的执行过程 三、 C 语言中标识符的概念 四、 C 程序中的数据 五、运算符与表达式 六、语句

lela
Télécharger la présentation

基本内容总结

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 基本内容总结 第一 ~ 第十章

  2. 目录总览 • 第一章 C语言的基本知识 • 第二章 算法 • 第三章 数据类型、运算符与表达式 • 第四章 C语言中的顺序结构程序设计 • 第五章 C语言中的选择结构程序设计 • 第六章 C语言中的循环结构程序设计 • 第七章 C语言中的数组 • 第八章 C语言中的函数 • 第九章 编译预处理 • 第十章 指针

  3. 前三章 C语言的基本知识 • 一、C程序的基本形式及构成 • 二、C程序的执行过程 • 三、C语言中标识符的概念 • 四、C程序中的数据 • 五、运算符与表达式 • 六、语句 • 要求: • 1、掌握理解一 ~ 三。 • 2、熟练掌握C语言中的基本数据类型的定义、使用、运算和存储。 • 3、能正确地求表达式的值。 • 4、能正确地书写C语句。 第一章 C语言的基本知识

  4. 一、C程序的基本形式及构成 预处理 全局变量 函数声明 函数定义 …………函数的首部 main() { …… } 函数体 第一章 C语言的基本知识

  5. 二、C程序的执行过程 编辑 输入C语句 形成源文件(.C) 若有语法错误 编译 翻译成二进制代码, 形成目标文件(.OBJ) 连接 连接形成可执行文件(.EXE) 运行 若结果有误 第一章 C语言的基本知识

  6. 三、C语言中标识符的概念 • 1、什么是标识符 • 2、标识符的命名规则 第一章 C语言的基本知识

  7. 四、C程序中的数据 • 1、数据的表示形式(常量、变量) • 2、数据的类型(基本数据类型) • 整型: • 实型: • 字符型: • 定义、特点、赋值 第一章 C语言的基本知识

  8. 五、运算符与表达式 • 1、算术运算符和算术表达式 • 2、赋值运算符和赋值表达式 • 3、自反运算和自加、自减运算符及表达式 • 4、强制类型转换运算符和强制类型转换表达式(int)(4.5) • 5、关系运算符和关系表达式 • 6、逻辑运算符与逻辑表达式 • 7、逗号运算符和逗号表达式 • 8、条件运算符和条件表达式(问号运算符与问号表达式) • (运算规则、优先级、结合性、类型转换等) 第一章 C语言的基本知识

  9. 第四章 C语言顺序结构程序设计 • 一、数据的输出 • 二、数据的输入 • 数值数据:printf()和scanf() • 字符数据:printf()和scanf() putchar()和getchar() • 字符串: printf()和scanf() gets()和puts() • 要求:1、掌握库函数的使用 • 2、熟练掌握以上函数的使用格式 • 三、顺序结构程序设计(由上到下顺序执行) a=1;b=2; a=a+2; b=a+b; • (一个变量如果得到一个新的值,则原来的值丢失) 第二章 C语言顺序结构程序设计

  10. 第五章 C语言中的选择结构程序设计 • 一、 if语句 • 二、条件表达式 • 三、switch语句 • 使用格式、功能、适用条件、执行过程 • 选择结构主要用来实现: • 根据情况选择不同的操作 第二章 C语言顺序结构程序设计

  11. 条件 满足 不满足 图1 语句1 语句2 一、if语句 ①、 if(条件) 语句1; else 语句2; 第二章 C语言顺序结构程序设计

  12. 满足 条件 不满足 语句1 图2 一、if语句 ② 如果不满足时什么也不做,则可用如下格式: if(条件) 语句1; 第二章 C语言顺序结构程序设计

  13. 一、if语句 第二章 C语言顺序结构程序设计 ③ 嵌套格式(如果语句1或语句2是一条if语句,即if语句里面还有一条if语句的情况,称为if语句的嵌套格式)。 if(条件) if(条件) 语句1; else 语句2; else 语句3; if(条件) 语句1; else if(条件) 语句2; else 语句3; if(条件) if(条件) 语句1; else 语句2 else if(条件) 语句3; if(条件) if(条件); 语句1 else 语句2; 匹配规则: else总是与离它最近的那个还未匹配的if匹配。

  14. 二、条件表达式 max = a>b?a:b 等价于: if (a>b) max=a; else max=b; 第二章 C语言顺序结构程序设计

  15. 表达式的值 值1 值2 值3 …… 值n 语句1 语句2 语句3 …… 语句n 三、switch语句 • 1、使用格式 • switch(表达式) • {case 常量表达式1:语句1;break; • case 常量表达式2:语句2;break; • case 常量表达式3:语句3;break; • ………… • case 常量表达式n:语句n;break; • [default:语句n+1;] • } 第二章 C语言顺序结构程序设计

  16. 第六章 C语言中的循环结构程序设计 • 一、while语句 • 二、do-while语句 • 三、for语句 • 功能、使用格式、适用情况、执行过程 • 循环结构主要用来实现: • 如果一些操作重复执行多次的情况

  17. 一、while语句 • 1、使用格式 • while (循环条件)循环体语句 初始条件 表达式 0 非0 循环体语句 图4.1

  18. 二、do-while语句 • 使用格式: • do • 循环体语句 • while(循环条件); • 执行流程如图4.2所示。 初始条件 循环体语句 非0 表达式 0 图4.2

  19. 三、for语句 • 使用格式: • for(表达式1;表达式2;表达式3) • 循环体语句 初始条件 修正表达式 循环体语句 条件表达式 非0 0 图4.3

  20. 第七章 C语言中的数组 • 数组是什么? • 为什么要引入数组? • 数组的概念(名字、下标、元素、行、列、维数等) • 数组的定义 • 数组的赋值 • 数组元素的引用 • 数组的基本操作(输入、输出、插入、删除、排序、转置、加、减) • 注:一般都要用循环实现。一维数组用一重循环,二维数组用二重循环。 • 用字符数组实现的字符串是一个特例,可以使用循环来实现,也可以直接使用字符串函数来实现。

  21. 数组的定义、引用和操作 • 基类型 数组名[数组大小] • 如:int a[10]; 5 1、下标从0开始; 2、数组的初始化; 3、数组元素的赋值;a[4]=5; 4、数组元素的引用;printf(“%d”,a[4]); 5、数组基本操作的实现。

  22. 第八章 C语言中的函数 • 为什么要引入函数? • 函数是什么? • 函数的定义、声明和调用 • 变量的分类 • 函数的分类

  23. 一、函数的定义 • 函数的定义格式: • 返回值类型 函数名(形参列表) • { • …… • }

  24. 二、函数的声明 • 可以简单地照写以定义函数地首部,再加一个分号,就成了对函数的声明。

  25. 三、函数的调用 • 函数调用的一般形式: • 函数名(实参列表); • 例如求圆柱体体积的程序。 • 函数调用的方式: • 1、函数语句 • 把函数调用作为一个语句。如程序P6_1 • 2、函数表达式 • 函数出现在一个表达式中。如程序P6_2 • 3、函数参数 • 函数调用作为函数的实参。如程序P6_3 • 4、嵌套调用和递归调用

  26. 形式参数与实在参数参数值的传递 • 在C语言中,实参与形参是按值单向传递的。也称为“传值调用”。

  27. 数组作为函数参数 • 数组名可以作为函数参数。 • 数组名作为参数时,实际需要的是数组的起始地址和数据的个数n。对从这个起始地址开始的n个位置的数据进行处理。 • 对函数进行调用时,形参与实参共用一组地址空间。

  28. 数组作为函数参数 printarr(int b[],int n) {int i; printf(“\n”); for(i=0;i<n;i++) printf(“%5d”,b[i]); } printarr函数数据区 i 9 n b 2000 a[8] a[7] a[6] main函数数据区 main() {int a[9]={1,2,3,4,5,6,7,8,9}; printarr(a,9); } a[5] a[4] a[3] a[2] a[1]2002 a[0]2000

  29. 变量的分类 • 从变量的作用域的角度来分,可分为局部变量与全局变量; • 从变量值存在的时间来分,可分为动态存储方式与静态存储方式:

  30. 局部变量与全局变量 • 在函数内定义的变量是“局部变量”,也称“内部变量”。 • 在函数外定义的变量是“全局变量”,也称“外部变量”。 • 局部变量只能在定义它的函数中使用。 • 全局变量可以被本文件中的所有函数共用。 • 它的有效范围为从定义变量的位置到本文件的结束。 • 如: • int p=1,q=5;—————————————————— • float f1(int a)——— • {…… • }—————————— • char c;—————————————— • char f2(int x,inty)… • {…… • } • main() • {…… • }——————————————————————— 局部变量a的有效范围 全局变量p,q的有效范围 局部变量x,y的有效范围 全局变量c的有效范围

  31. 变量的存储类别 • 主要分两大类:静态存储和动态存储。 • 具体包含四小类: • 自动的(auto),静态的(static), • 寄存器的(register),外部的(extern)。 • 主要掌握不同类型的特点(那些变量各属于什么类型?什么时候分配存储空间?什么时候释放存储空间?不同类型的变量如何赋值?不同类型的变量的有效区域多大?)

  32. 内部函数与外部函数 • 内部函数: • 如果一个函数只能被本文件中的其他函数调用,称为内部函数。也叫静态函数。 • 内部函数的定义方式为: • static 函数类型 函数名(形参列表) • 这样定义的函数只局限于所在文件,其他文件不能使用。如果在不同的文件中有同名的内部函数,它们互补干扰。 • 在定义函数时前边加关键字extern,则该函数为外部函数,这样定义的函数不仅可以被本文件使用,还可以被其他文件使用。外部函数在定义时可以省略关键字extern。 • 其他文件调用外部函数时,需用extern加以说明

  33. 第九章 编译预处理 • 一、宏定义 • 二、文件包含 • 三、条件编译* • 要求:能正确地进行宏替换

  34. 第十章 指针 • 一、指针与指针变量 • 二、指针变量的定义 • 三、一维数组与指针 • 四、字符串与指针 • 五、二维数组与指针 • 六、指向数组的指针和指针数组 • 七、指针作为函数参数 • 八、返回值为指针的函数和指向函数的指针 • 九、指向指针的指针 • 十、指针运算

  35. 一、指针与指针变量 • 指针:地址 • 指针变量:存放指针(地址)的变量 • 指向:指针变量指向所存地址对应的变量。

  36. 二、指针变量的定义 • 定义格式: • 基类型 *变量名; • 如:int *p;

  37. 三、一维数组与指针 • 如果有以下定义: int a[10],*p; p=a; • 说出下列表示的含义: • a,p,&a[0], • &a[5],a+5,p+5, • a[7],*(a+7),*(p+7),p[7]; 或者:int a[10],*p=a;

  38. 四、字符串与指针 • 因为字符串一般存放到一维字符数组中,故指向字符串的指针可以看成是指向一维字符数组的指针 • 用指针指向一个字符串以后,可以用指针对字符串进行操作。 • 判断下列写法哪些正确,哪些错误? • char s[]=“china”; • char s[10]; s=“china”; • char s[10]; s[10]=“china”; • char *p=“china”; • char *p; p=“china”; • char s[10],*p; *p=“china”; • char s[10],*p=s; p=“china”;

  39. a[0] a a[1] a+1 a[2] a+2 五、二维数组与指针 若有如下定义: int a[3][4], *p; p=&a[0][0]; p=a;

  40. 五、二维数组与指针 说出下列表示的含义:设&a[0][0]=2000 第0行首地址 2000 第0行第0列的地址 2000 第1行首地址 2008 第1行第0列的地址 2008 第1行第2列的地址 2012 第1行第2列的元素 思考:a与*a,a[1]与&a[1]的值相同,但他们有什么不同?

  41. 六、指向数组的指针和指针数组 • 如何令一个指针指向一行? • 定义 指向数组的指针变量: • 定义格式:类型 (*指针名)[个数] • 如:int (*p)[4]; • 若有定义int a[3][4],(*p)[4]; • 则可以p=a; • 如果一个数组的元素都是指针变量,则这个数组称为指针数组。 • 定义方式:类型 *p[数组大小]; • 例如:char *p[3]; • 定义了一个指针数组,包含三个指针元素。 • 注意与指向数组的指针变量的区别。 • 指针数组常用于处理多个字符串。

  42. 七、指针作为函数参数 1、当实参为数组名时,形参可以为数组,也可以为指针变量 2、当形参为数组时,实参可以为数组名,也可以为指针变量 3、实参与形参的数据类型必须一致。

  43. 八、返回值为指针的函数和指向函数的指针 • 当一个函数的返回值为地址时,称函数的返回值为指针,该函数成为指针型函数。 • 指针函数的定义如下: • 数据类型 *函数名(形参列表) • {…… • return(指针变量); • } • 函数名代表函数的首地址。 • 定义指向函数的指针: (*函数名)()

  44. 九、指向指针的指针 • 指向指针的指针 • 定义方式: • 类型 **指针变量名; • 例如:int **p, *q, I; • I=5; • q=&I; • p=&q; • printf(“%d”,**p); • }

  45. 不同类型的指针定义小结 • int I; 定义整型变量I • int *p; p为指向整型数据的指针变量 • int a[n]; 定义整型数组a,它有n个元素 • int *p[n]; 定义指针数组p,它由n个指向整型数据的指针数 • 据组成 • int (*p)[n]; p为指向含n个元素的一维数组的指针变量 • int f(); f为带回整型函数值的函数 • int *p(); p为带回一个指针的函数,该指针指向整型数据 • int (*p)(); p为指向函数的指针,该函数返回一个整型值 • int **p; p是一个指针变量,他指向一个指向整型数据的指 • 针变量

  46. 十、指针运算 • 关于*和& • *: • 1、定义时,表示后面的变量为指针变量; • 2、其他时,*只能与指针变量参加运算,表示后面的指针变量所指向的那个变量。 • &: • 取地址。 • 优先级: • *(&p)与&(*p) • *p++、*(p++)与(*p)++ (*与++级别同,自右向左结合)

More Related