《C程序设计巩固复习要点》由会员分享,可在线阅读,更多相关《C程序设计巩固复习要点(88页珍藏版)》请在金锄头文库上搜索。
1、C程序设计技术 复习要点 一 基本概念部分 C语语言的基本概念 数据类类型 常量 变变量 表达式的书书写方法等 当两个整数相除时 得到的结果仍然是整 数 既取整运算 例如 7 5结果为1 7 5 结果为 1 3 5结果为0 求模运算就是求余数 参加求模运算的两 个对象必须都是整型对象 运算结果的符 号与第一个运算对象相同 例如 7 5结果 为2 7 5结果为 2 7 5 2 优先级高 函数 优先级低 典型运算符的使用 复合赋值赋值 等 复合赋值 符 凡是双目运算符都可以与赋值 运算符一起组成复合赋值 符 其结合性 为右结合性 这些复合赋值 符共有10个 它们是 例如 5 5 结果为1 10 1
2、0 结果为1 5 5 结果为0 5 3 结果为1 3 5 结果为0 例2 1 关系运算示例 该程序运行执行语句c 5 1 a 2 a 2 和 结合 即先计算表达式5 1 a 2得到结果0 然后计算表达式0 b 21的结果也为0 最后将该0值赋值给变量c 所以 该程序运行的输出结果为 c 0 对逻辑表达式从左到右扫描求解 在逻辑表达式的求解过程中 任何时候只要逻辑 表达式的值已经可以确定 则求解过程不再进行 例如有定义 int a 1 b 2 c 0 则逻辑表达式a b ch getchar putchar ch 要特别注意各控制结构的流程 2 2 6 switch语句与程序的多分支结构 swi
3、tch expession case constand1 sentences1 break case constand2 sentences2 break case constandN sentencesN break default sentencesN 1 2 执行过程 首先 对作为条件的表达式 expression 求值 然后 在语句结构的花括号内从上至下查找所有的case分支 当找到与条件表 达式值相匹配的case时 将其作为控制流程执行的入口 并从此处开始执行相 应的语句段 直到遇到break语句或者是switch语句结构的右花括号 为止 switch number case 1 s
4、tatement1 case 2 statement2 case 3 statement3 default statement4 statement5 2 习题 P84页 一 6 For i 1 i 4 后 循环控制变量i的值是 要特别注意该题 分析该题 理解该题的考 点 特别注意 运算符进入条件表达式 数组组的定义义和数组组元素的访问访问 例3 3 用数组存放一组统计数据 然后用 表示的 条形图输出这组数据 程序输出效果如下所示 Element Value Striation 1 11 2 3 3 7 4 10 5 20 例3 4 打印如下所示的杨辉三角形的前10行 要求 使用一维数组处理
5、例3 5 在二维数组a 3 4 中依次选出各行最大 元素值存入一维数组b 3 对应 元素中 程序运行结果 array a 3 16 87 65 4 32 11 108 10 25 12 27 array b 87 108 27 3 3 2 常用排序方法 3 3 3 常用查找方法 例3 9 编程序实现冒泡排序算法 对随机生成的20个整数按 升序进行排序并输出 上面程序中用变量flag作为标 志 每一趟排序开始时将其设置为0 当本趟排序过程中有数据交换时 将flag设置为1 表示数据还没有排 序完成 当本趟排序过程中没有一次数据交换时 flag保持为0值 表示被排序的数据已经完全满足排序的要求 没
6、有必要再继续进 行 以后的排序过程 程序中用break语句退出排序循环 程序的一次执行结果为 Before sorting 293 31 365 849 867 166 487 826 487 775 331 630 294 5 242 136 953 123 849 65 After sorting 5 31 65 123 136 166 242 293 294 331 365 487 487 630 775 826 849 849 867 953 例3 10 编程序实现选择 排序算法 对随机生成的20 个整数按升序进行排序并输出 程序的一次运行结果为 Before sorting 341
7、74 545 498 809 626 913 433 567 560 130 479 505 95 96 143 851 634 830 665 After sorting 74 95 96 130 143 341 433 479 498 505 545 560 567 626 634 665 809 830 851 913 1 顺序查找 Linear search 顺序查找又称为线性查找 其基本过程是 从待查表中的 第一个记录开始 将给定的关键字值与表中每一个记录的 关键字值逐个进行比较 如果找到相符合的记录时 查找 成功 如果查找到标得末端都未找到相符合的记录时 查 找失败 顺序查找法适应
8、于被查找集合无序的场合 例3 11 编程序实现顺 序查找算法 在随机生成的20个整数 中查找指定值 要求程序能够显示出查找进行比较的次数 以及本次查找成功与否 程序的一次运行结果为 请输入被查找的整数值 43 被查找数据集合如下 15 5 70 43 64 17 10 4 58 96 39 51 5 51 67 0 49 56 12 12 查找 43 成功 共进行了4次比较 例3 12 编程序实现折半查找算法 在随机生成的20 个整数中查找指定值 要求程序能够显示出查找进 行比较的次数以及本次查找成功与否 程序中首先输出随机产生 未经排序的查找数据集 合 执行结果中用数组元素形式显示出来的是排
9、序 后与查找关键字key值相同的元素 程序的一次执行结果如下所示 下面是未排序的查找数据集合 41 28 91 83 86 62 96 93 41 57 79 47 12 94 36 34 56 36 2 97 请输入被查找的关键字值 91 查找a 15 成功 共进行了4次比较 函数的定义义 声明和调调用 C程序的一般结构 C程序 源文件1 源文件i源文件n 函数1预处理语句函数m 说明 定义部分执行语句部分 图4 1 C程序的一般结构 宏代换换 不带带参 带带参 宏定义分为代参数的宏定义和不代参数的宏定义两种 1 不代参数的宏定义 不代参数的宏定义编译预处 理语句的一般形式是 define
10、宏标识符 字符串 宏调用的格式为 宏标识符 宏调用的作用是 在宏定义的作用范围之内 将所 有的宏标识符用指定的字符串替换 式中 宏标识符也 称为宏名或常量标识符 习惯上使用大写字母书写 在C程序的设计 中 正确地理解宏定义的关 键在于理解宏调用仅仅 就是一个替换而不会 进行任何的合并 计算等等操作 在阅读 理 解包含宏调用问题 的C程序时一定要做到先 将宏替换完成 然后操作宏替换完成后的表 达式 例4 25 宏调用替换问题 的理解示 例 Name ex04 25 cpp include define N 2 define M N 2 define MN 2 M void main int x
11、MN printf x d n x 错误错误 的理解方式是 N 2 M 4 2 2 MN 8 2 4 从而认为认为 上 面程序的输输出结结果 是x 8 正确理解的方式应应 为为 MN 2 N 2 MN 2 2 2 因而 程序执执行的正确结结 果 x 6 带参数的宏定义 在C程序设计过 程中如果有需要 也可以使用 带参数的宏定义 定义代参数的宏定义的一般形式 如下 define 宏标识符 形参表 表达式样式字符串 宏调用的格式为 宏标识符 实参表 宏调用的作用是 在宏定义的作用范围之内 将所有的宏标识符用指定的表达式样式字符串替 换 然后用宏调用中的实际参数代替通过替换形成 的表达式中的形式参数
12、 在程序设计 中使用带参数宏定义时 为了 避免当实际 参数本身是表达式时引起的宏调用 错误 在定义代参数的宏定义时 最好将宏定义 中表达式的形式参数用括号括起来 下面的例 4 26展示了这方面的问题 例4 26 代参数宏定义使用示例 不能正确处理表达式 样式实际 参数 Name ex04 26 cpp include define PI 3 145926 define S r PI r r void main double a b area1 area2 a 3 3 b 3 2 area1 S a area2 S a b printf area1 f narea2 f n area1 area
13、2 例4 27 宏调用替换问题 的理解示例 Name ex04 27 cpp include define Min x y x 1 n 0 fp f1fp f2 使用 fp 调用函数 结束 输入n值 输出结果值 输出数据 错误信息 结合 关于指针的复习PPT 复习 求解高阶方程的根 在对高阶方程的讨论 中知道 高阶方程都是类似的 其形式可 以用f x 0来表示 也就是说被求根的函数用C语言都可表示 成为如下所示结构C函数 double f double x 因而指向被求根函数的指针变 量的一般形式为 double fp double x 对于使用牛顿迭代法的通用求根函数而言 在函数的参数表中
14、应该 包含三个形式参数 一个是求根时指定的根的初始值 另 外两个是用于接受外界传递进 来的函数实参以及导函数实参的指向函数 的 指针变 量 例5 2 二分法求高阶方程根的通用函数 例5 3 利用已有的通用函数按给定条件求下面高阶方程的根 指向函数的指针与函数型参数的实现 被积函数的形式均为有一个实型自变量且所积结 果是实型数据 所以在求定积分的通用函数的返 回值数据类型应为double 通用函数的参数有下 面四个 与被积函数对应的指向函数的指针 double p float x 积分区间的下限 float a 积分区间的上限 float b 按精度所需的积分区间等分数 int n 函数与指针
15、返回指针值 的函数 例5 6 求求 include long fac long nvoid main long n i sum 0 pi printf Input n for i 1 i n i sum fac i scanf ld for i 1 i n i pi fac i sum sum pi printf Sun ld n sum long fac long n 函数的 定义 static long p 1 p n return 用指针针引用数组组元素的方式 结合 关于指针复习 ppt 复习 二 重点知识识点 整型数据的拆分以及特定数码码的统计统计 注意模运算及如何提取一个 整型数据的
16、每一位 字符串的常见见操作 在字符串中删删除指定 字符 统计统计 字符串中的特定字符功能的实实 现现 在字符串中删删除指定的字符 在字符串中删删除指定字符操作的基本思想是 首先在字符串中查查找 指定字符的位置 若找到则则将字符串中自该该位置以后所有字符依次向 前移动动一个字符位置即可 例7 18 函数原型为 void deletechr char s char c 其功能是在字 符串中删除指定字符 若指定字符不存在则显示相应提示信息 请编 制该函数并用相应主函数进行测试 字符串中字符的查找 所谓字符串中字符的查找就是按照指定 的方向寻找指定字符第一次在字符串中出 现的位置 在字符串中查找指定的字符从 查找方向上可以分为正向查找 从串首部 至串尾 和反向查找 从串尾部至串首 从获取被查找字符位置信息上可以分为 返回下标序号方式和返回字符存放地址方 式 统计字符串中的特定字符的个数时 需要先查找到特定字符 然 后计数 字符串中正向查找指定字符 在字符串中正向查找指定字符第一次出现位置的基 本思想是 从被操作字符串的第一个字符开始循环依次取 出被操作字符串当前位置的字符与指定的字符相比较 若