《C语言复习提纲》PPT课件.ppt

上传人:tia****nde 文档编号:7699454 上传时间:2020-03-23 格式:PPT 页数:40 大小:414KB
返回 下载 相关 举报
《C语言复习提纲》PPT课件.ppt_第1页
第1页 / 共40页
《C语言复习提纲》PPT课件.ppt_第2页
第2页 / 共40页
《C语言复习提纲》PPT课件.ppt_第3页
第3页 / 共40页
点击查看更多>>
资源描述
C语言复习提纲 总体概况 1 程序结构是三种 顺序结构 循环结构 三个循环结构 选择结构 if和switch 2 读程序都要从main 入口 然后从最上面顺序往下读 碰到循环做循环 碰到选择做选择 3 计算机的数据在电脑中保存是以二进制的形式 数据存放的位置就是它的地址 4 bit是位是指为0或者1 byte是指字节 一个字节 八个位 5 一定要记住二进制如何划成十进制 概念常考 1 编译预处理不是C语言的一部分 不占运行时间 C语言编译的程序称为源程序 它以ASCII数值存放在文本文件中 2 每个C语言程序中main函数是有且只有一个 3 在函数中不可以再定义函数 4 break可用于循环结构和switch语句 5 逗号运算符的级别最低 6 函数是C程序的基本单位 第一部分1 合法的用户标识符考查 合法的要求是由字母 数字 下划线组成 并且第一个必须为字母或下划线 第一个为数字就错了 关键字不可以作为用户标识符号 maindefinescanfprintf都不是关键字 迷惑你的地方If是可以做为用户标识符 因为If中的第一个字母大写了 所以不是关键字 2 实型数据的合法形式 小数形式和指数形式 2 333e 1就是合法的 且数据是2 333 10 1 考试口诀 e前e后必有数 e后必为整数 3 字符数据的合法形式 1 是字符占一个字节 1 是字符串占两个字节 含有一个结束符号 0 的ASCII数值表示为48 a 的ASCII数值是97 A 的ASCII数值是65 32个关键字 由系统定义 不能重作其它定义 autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunsignedunionvoidvolatilewhile 4 转义字符的考查 inta 0 x6d 是把一个十六进制的数给变量a inta 06d 是一个八进制的形式 在转义字符中 x6d 才是合法的 141 是合法的 0是不能写的 108 是非法的 因为不可以出现8 5 强制类型转换 一定是 int a不是int a 注意类型上一定有括号的 注意 int a b 和 int a b的区别 前是把a b转型 后是把a转型再加b 6 表达式查 自加 自减表达式 假设a 5 a 是为6 a 为5 口诀 在前先加后用 在后先用后加 逗号表达式 优先级别最低 表达式的数值逗号最右边的那个表达式的数值 2 3 4 的表达式的数值就是4 第二部分1 printf函数的格式考查 d对应整型 c对应字符 f对应单精度等等 ld对应longint lf对应double 2 scanf函数的格式考察 注意该函数的第二个部分是要用中间变量t x x y y t 第三部分 特别要注意 c语言中是用非0表示逻辑真的 用0表示逻辑假的 1 关系表达式 表达式的数值只能为1 表示为真 或0 表示假 当关系的表达是为真的时候得到1 如9 8这个是真的 所以表达式的数值就是1 2 逻辑表达式 只能为1 表示为真 或0 表示假 a 共有 三种逻辑运算符号 b 优先的级别 c 注意短路现象 考试比较喜欢考到 d 要表示x是比0大 比10小的方法 0 x 10是不可以的 一定记住 所以一定要用 0 x x 10 表示比0大比10小 3 if语句else是与最接近的if且没有else的相组合的 4 条件表达式 表达式1 表达式2 表达式3注意是当非0时候是表达式2的数值 当为0是就是表达式2的数值 考试口诀 真前假后 5 switch语句 一定要注意有break和没有break的差别 没有break时候 只要有一个case匹配了 剩下的都要执行 有break则是直接跳出了switch语句 重点参看练习三习题 第四部分 1 三种循环结构 a for while do while 三种 b for循环当中必须是两个分号 千万不要忘记 c 写程序的时候一定要注意 循环一定要有结束的条件 否则成了死循环 d do while 循环的最后一个while 的分号一定不能够丢 2 break和continue的差别break 是打破的意思 破了整个循环 所以看见break就退出整个一层循环 continue 是继续的意思 继续循环运算 但是要结束本次循环 就是循环体内剩下的语句不再执行 跳到循环开始 然后判断循环条件 进行新一轮的循环 3 嵌套循环就是有循环里面还有循环 这种比较复杂 要一层一层一步一步耐心的计算 一般记住两层是处理二维数组的 第五部分 函数 是具有一定功能的一个程序块 1 函数的参数 返回数值main inta 5 b 6 c c add a b printf d c intadd intx inty intz z x y returnz 2 一定要注意参数之间的传递实参和形参之间传数值传地址的差别 考试的重点 传数值的话 形参的变化不会改变实参的变化 传地址的话 形参的变化就会有可能改变实参的变化 3 函数声明的考查 一定要有 函数名 函数的返回类型 函数的参数类型 不一定要有 形参的名称 第六部分指针变量的本质是用来放地址 而一般的变量是放数值的 int p中 p和p的差别 p可以当做变量来用 的作用是取后面地址p里面的数值p是当作地址来使用 三名主义 考试的重点 数组名 表示第一个元素的地址 数组名不可以自加 他是地址常量名 考了很多次 函数名 表示该函数的入口地址 字符串常量名 表示第一个字符的地址 第七部分一维数组的重要概念 对a 10 这个数组的讨论 1 a表示数组名 是第一个元素的地址 也就是元素a 0 的地址 2 a是地址常量 所以只要出现a 或者是a a 2赋值的都是错误的 3 a是一维数组名 所以它是列指针 也就是说a 1是跳一列 对a 3 3 的讨论 1 a是地址常量 所以只要出现a 或者是a a 2赋值的都是错误的 2 a是二维数组名 所以它是行指针 也就是说a 1是跳一行 3 a 0 a 1 a 2 也都是地址常量 不可以对它进行赋值操作 同时它们都是列指针 a 0 1 a 1 1 a 2 1都是跳一列 4 注意a和a 0 a 1 a 2 是不同的 它们的基类型是不同的 前者是一行元素 后三者是一列元素 二维数组做题目的技巧 如果有a 3 3 1 2 3 4 5 6 7 8 9 这样的题目 步骤一 把他们写成 第一列第二列第三列a 0 123 第一行a 1 456 第二行a 2 789 第三行 a 0 1 我们就知道是第0行的第0个元素往后面跳一列 那么这里就是a 0 1 元素 所以是1 a 1 2 我们就知道是第1行的第0个元素往后面跳二列 那么这里就是a 1 2 元素 所以是6 指针与指针变量指针 一个变量的地址指针变量 专门存放变量地址的变量叫 2000 指针 指针变量 变量的内容 变量的地址 与 运算符含义 含义 取变量的地址单目运算符优先级 2结合性 自右向左 含义 取指针所指向变量的内容单目运算符优先级 2结合性 自右向左 两者关系 互为逆运算理解 i pointer 指针变量 它的内容是地址量 i pointer 指针的目标变量 它的内容是数据 i pointer 指针变量占用内存的地址 i pointer i i pointer i i pointer i i pointer i i pointer i i pointer i 8 2怎样定义指针变量 定义指针变量的一般形式为 基类型 指针变量名 如 int pointer 1 pointer 2 下面都是合法的定义 float pointer 3 pointer 3是指向float型变量的指针变量 char pointer 4 pointer 是指向字符型变量的指针变量 定义指针变量时同时对它初始化 int pointer 1 a pointer 2 b 定义指针变量pointer 1 pointer 2 并分别指向a b 指针变量的值为地址 是个无符号的整数 8 2 3怎样引用指针变量 注意 指针变量中只能存放地址 指针 不要将一个整数 或任何其他非地址类型的数据 赋给一个指针变量 P a printf d p p 1 printf o p p1 1 的含义是什么 先进行 运算 得 的地址 再进行 运算 和 p 的作用是一样的 它们都等价于变量 即 与 等价 2 p 相当于 说明 8 4指针变量作为函数参数 函数的参数不仅可以是整型 浮点型 字符型等数据 还可以是指针类型 它的作用是将一个变量的地址传送到另一个函数中 8 3通过指针引用数组 一个变量有地址 一个数组包含若干元素 每个数组元素都在内存中占用存储单元 它们都有相应的地址 指针变量既然可以指向变量 当然也可以指向数组元素 把某一元素的地址放到一个指针变量中 所谓数组元素的指针就是数组元素的地址 指针与数组指向数组元素的指针变量 例intarray 10 int p p 数组名是表示数组首地址的地址常量 数组元素表示方法 a i a i 8 3 3数组名作函数参数数组名作函数参数 是地址传递数组名作函数参数 实参与形参的对应关系 8 4指针与字符串字符串表示形式用字符数组实现 例main charstring IloveChina printf s n string printf s n string 7 用字符指针实现 例main char string IloveChina printf s n string string 7 while string putchar string 0 string ch9 17 string 0 8 提高部分 8 5 1指向函数的指针 可以用指针变量指向整型变量 字符串 数组 也可以指向一个函数 一个函数在编译时被分配给一个入口地址 这个函数的入口地址就称为函数的指针 可以定义指针变量用来存放某一个函数的首地址 用函数指针变量调用函数 数据类型 指针变量名 函数参数表列 如 int p int int p max max是函数名 调用时 c p a b 二 指向数组的指针请看下面三个变量p1 p2 p3的定义 int p1 int p2 4 int p3 4 inta 3 4 1 3 5 7 9 11 13 15 17 19 21 23 int p4 4 p4 a p1是一个指针变量 指向的对象是整型数据类型 而p2和p3呢 在p2的定义中 指针运算符 最先与P2结合 所以p2是一个指针变量 在p3的定义中下标运算符 最先与P3结合 所以p3是一个数组 具体地说 p2是一个指向含有4个整型类型元素的一维数组的指针 p3是一个含有4个元素的数组 每个元素都是指向整型类型数据的指针 即p3是一个指针数组 指向指针的指针 2 继续 2 定义形式 char p p的前面有两个 号 运算符的结合性是从右到左 p相当于 p 显然 p是指针变量的定义形式 函数说明 1 所有函数都是平行的 即在定义函数时是分别进行的 是互相独立的 一个函数并不从属于另一函数 即函数不能嵌套定义 函数间可以互相调用 但不能调用main函数 main函数是系统调用的 2 从用户使用的角度看 函数有两种 标准函数 即库函数 这是由系统提供的 用户不必自己定义这些函数 可以直接使用它们 不同的C系统提供的库函数的数量和功能会有一些不同 但许多基本的函数是共同的 用户自己定义的函数 用以解决用户的专门需要 3 从函数的形式看 函数分两类 无参函数 无参函数一般用来执行指定的一组操作 在调用无参函数时 主调函数不向被调用函数传递数据 有参函数 主调函数在调用被调用函数时 通过参数向被调用函数传递数据 说明 实参必须有确定的值形参必须指定类型形参与实参类型一致 个数相同若形参与实参类型不一致 自动按形参类型转换 函数调用转换形参在函数被调用前不占内存 函数调用时为形参分配内存 调用结束 内存释放 函数参数及其传递方式形参与实参形式参数 定义函数时函数名后面括号中的变量名实际参数 调用函数时函数名后面括号中的表达式 7 3函数的嵌套调用和递归调用 嵌套调用就是在调用一个函数时 其函数体内又包含另一个函数 7 3 1函数的嵌套调用 7 3 2函数的递归调用 在调用一个函数的过程中又出现直接或间接地调用该函数本身 称为函数的递归调用 语言的特点之一就在于允许函数的递归调用 例如 intf intx inty z z f y return 2 z 7 4数组作为函数参数 7 4 1数组元素作函数实参 由于实参可以是表达式 而数组元素可以是表达式的组成部分 因此数组元素可以作为函数的实参 与用变量作实参一样 是单向传递 即 值传送 方式 7 4 2数组名作函数参数 可以用数组名作函数参数 此时并不是将该数组中全部元素传递给所对应的形参 由于数组名代表数组的首地址 只是将数组的首元素的地址传递给所对应的形参 因此对应的形参应当是数组名或指针变量 变量的存储类型auto 自动型 存储在动态存储区register 寄存器型static 静态型extern 外部型生存期 变量在某一时刻存在 静态变量与动态变量作用域 变量在某区域内有效 局部变量与全局变量 7 5变量的属性变量是对程序中数据的存储空间的抽象 如 intsum autointa b c registerinti staticfloatx y 变量定义格式 存储类型 数据类型变量表 变量作用域局部变量与全局变量局部变量 内部变量定义 在函数内定义 只在本函数内有效说明 main中定义的变量只在main中有效不同函数中同名变量 占不同内存单元形参属于局部变量可定义在复合语句中有效的变量局部变量可用存储类型 autoregisterstatic默认为auto 全局变量 外部变量定义 在函数外定义 可为本文件所有函数共用有效范围 从定义变量的位置开始到本源文件结束 及有extern说明的其它源文件 应尽量少使用全局变量 因为 全局变量在程序全部执行过程中占用存储单元降低了函数的通用性 可靠性 可移植性降低程序清晰性 容易出错 定义说明次数 只能1次可说明多次位置 所有函数之外函数内或函数外分配内存 分配内存 可初始化不分配内存 不可初始化 外部变量说明 extern数据类型变量表 外部变量定义与外部变量说明不同 若外部变量与局部变量同名 则外部变量被屏蔽 外部变量可用存储类型 缺省或static 变量存储方式静态存储 程序运行期间分配固定存储空间 在編译时分配空间动态存储 程序运行期间根据需要动态分配存储空间 生存期静态变量 从程序开始执行到程序结束动态变量 从包含该变量定义的函数开始执行至函数执行结束 变量存储类型 局部变量默认为auto型register型变量个数受限 且不能为long double float型局部static变量具有全局寿命和局部可见性局部static变量具有可继承性extern不是变量定义 可扩展外部变量作用域
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!