C语言 补考 复习题.ppt_第1页
C语言 补考 复习题.ppt_第2页
C语言 补考 复习题.ppt_第3页
C语言 补考 复习题.ppt_第4页
C语言 补考 复习题.ppt_第5页
已阅读5页,还剩91页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 1 考试参考编程题目 2 期中考试试卷 3 课件中的例题 一 已有一个从大到小排好序的数组 现输入一个数 要求按原来的排序规律将它插入到数组中 二 冒泡法排序 子函数调用 数组名或者指针作为参数 三 选择法排序 子函数调用 数组名或者指针作为参数 四 编写程序 判断输入的字符串是否是回文 所谓 回文 即顺读和倒读都一样的字符串 2 1 考试参考编程题目 五 字符串反序存放 六 递归 求n的阶乘和fibo数列 七 伪随机数 八 大小写字母转换 九 用指针做参数 求字符串的长度 3 1 考试参考编程题目 4 3 课件中的例题 5 分析 输入三角形的三边 用下述公式计算三角形的面积 其中s a b c 2 功能 输入三角形三边 计算面积 include includevoidmain floata b c s area printf Pleaseenter3sidesofatriangle n scanf f f f 6 以下不能正确表示算式的是 a a b c d b a b c d c a c b d d a b c d 解答 a c语言中表达式的计算是按算符的优先级来进行的 7 以下的变量定义中合法的是 a float3 four 3 4 b int abc 22 c doublea 1 4e2 0 d shortdo 15 8 C语言中运算对象必须是整型的运算符是 a b c d 8 必须是整型 确切地说应该是不能是float型 9 若有intk 11 则表达式 k 1 3 的值是 a 0 b 3 c 11 d 12 执行过表达式后k的值是 12 10 一个C程序必须有一个 函数一个C程序必定从 函数开始执行 主 主 11 C语言中的标识符可分为 和预定义标识符三类 关键字 用户标识符 预定义标识符 系统定义的 用于贬义预处理命令中的标识符 如 include define等 12 练习 1 下列运算符的操作数不能是float型的运算符是 A B C D 2 执行以下程序段 c的值是 inta 1 b 2 c c a b A 0B 1 2C 0 5D 1 答案 B C 答案 A 13 练习 已知i 7j i j i j i j i 7 8 8 8 14 若k和j为int型变量 运算表达式j 3 k j j 执行后 变量k的值为 变量j的值为 练习 4 5 15 练习 已知 doublea floatb intc chard 执行语句c d b c a 后 变量c的数据类型是 A doubleB floatC intD char 正确答案 C 16 练习 若有定义 floata 3 9 b 6 9 intc 执行语句c a int a b 3 2 后 c的值为 A 3B 3 9C 4D 4 4 正确答案 A 17 inta 1 b 25 c 125 longx 356142 printf d 5d n a b printf 5d 2d n c c printf ld d n x x 输出结果为 例 18 写出下面算术表达式的值 设x 2 5 a 10 y 4 7求表达式的值x a 3 int x y 2 4x 2 5 a 10 y 4 7 a 3 10 3 1 int x y int 7 2 7 a 3 int x y 1 7 7 a 3 int x y 2 7 2 1 a 3 int x y 2 4 1 4 0 x a 3 int x y 2 4 2 5 0 最后结果 2 5 19 19 例1 1 关系表达式 8 4 的值为 假 表达式的值为0 2 关系表达式 5 0 的值为 真 表达式的值为1 20 结合性 例2 a b c等价于c a b等价于a b c等价于例3 inta 0 b 1 c 2 a c值为 a c b值为 从左向右 1 1 21 例6 includevoidmain intx a 0 b 1 c 2 x a 22 例 6 2 includevoidmain intx a 0 b 1 c 2 x a 23 例7 1 xc等效于 a b c 4 5 3 4 83 4 8 4 24 分析 a b的值为0 m a b 值为0 表达式 m a b n c d 的值为0运算就此结束 不再进行 n c d 的运算结果 m为0 n为1 24 例8 假设a 1 b 2 c 3 d 4 m 1 n 1 执行表达式 m a b n c d 后m和n的值各为多少 非 算术运算符关系运算符 赋值运算符 25 例9 假设a 5 b 10 c 15 d 20 求逻辑表达式的结果 a a b 1 cb 1 cb 1 c10 1 c d 0 0 1 c d 0 1 c d 0 1 15 20 0 1 1 0 1 1 25 非 算术运算符关系运算符 赋值运算符 26 例13 将1至7中的任意一个数字转化成对应的英文星期几的前三个字母 如1转化为Mon 7转化为Sun等 26 27 includevoidmain inta 1 printf inputintegernumber endby0 scanf d 28 includevoidmain inta 1 printf inputintegernumber endby0 scanf d 30 31 例1 编程计算1 2 3 10000 方案一 includevoidmain inti 1 sum 0 while i 10000 循环结构 sum i i printf sum d n sum sum sum i i i 1 32 include definen10000voidmain inti 1 sum 0 while i n sum i i printf sum d n sum 方案二 33 includevoidmain inti 1 sum 0 n printf 请输入n的值 n scanf d printf sum d n sum 方案三 34 例3 求满足1 2 3 n 500中最大的N 并求其和 编写程序实现 分析 本题还是一个累加求和的问题 当累加和sum 500时反复执行循环 否则结束循环 步骤 定义变量 sum n sum和n分别赋初值 n 0 sum 0 当sum 500时反复执行循环 否则结束循环 语句为 While sum 500 n sum n 35 includevoidmain intn 0 sum 0 while sum 500 n sum n printf n d sum d n n 1 sum n 为什么不是n sum 结果 n 31 sum 496 程序 1 2 3 n 500 36 例6 用for语句计算1 2 10 includevoidmain inti sum 0 for i 1 i 10 i sum i printf d sum 37 例6与用while do while实现差异 includevoidmain inti sum 0 for i 1 i 10 i sum i printf d sum inti 1 sum 0 while i 10 sum i i inti 0 sum 0 do i sum i while i 10 38 例7 打印乘法 九九表 39 分析 定义变量i j m i表示行 从1变化到9 j表示列 从1变化到9 m i j 表示表中的值 i取初值1 j从1变化到i 计算出每一个m i j 输出m 但不换行 输出换行 i做一次变化 如果i 9 则 转回步骤6 否则循环结束 includevoidmain inti 0 j 0 for i 1 i 9 i for j 1 j i j printf 4d i j printf n 40 41 例7 一球从100米高度自由落下 每次落地后反弹回原高度的一半 再落下 求它在第10次落地时共经过多少米 第10次反弹多高 floath 100 0 sum 0 0 intn for n 1 n sum h h h 2 落地后反弹跳回原高度的一半if n 10 break 终止执行本循环sum h printf 共经过 f米 第10次反弹 f米 n sum h 42 例8 打印出100 200之间所有能被7整除的整数 includevoidmain intn for n 100 n 200 n if n 7 0 continue 结束本次循环printf 5d n printf n 43 例9 break和continue includevoidmain intn while 1 printf inputanevennumber n scanf d n if n 2 1 printf Isaid continue break printf Thanks Ineedthat n 44 intmax inta intb 函数定义 if a b returna elsereturnb voidmain intmax inta intb 函数声明 intx y z printf inputtwonumbers n scanf d d 例4 函数调用 45 例5 voidexch intx inty intt t x x y y t 此函数的功能 46 输入2 5 显示 a 2 b 5 调用子函数后显示 a 2 b 5 voidmain inta b printf inputa b n scanf d d a b printf a d b d n a b exch a b printf a d b d n a b Why 47 voidmain inta b scanf d d a b exch a b exch intx inty intt t x x y y t a b x y t 2 5 2 5 2 5 2 printf a 4d b 4d n a b a 2 b 5 结果为 48 voidmain inti 1 test i i i 1 test i i voidtest intx inty printf x d ty d n x y 执行结果 x 1y 1 x 2y 1 例7 49 练习 由数字1 2 3能组成多少个互不相同且无重复数字的两位数 都是多少 50 由数字1 2 3能组成多少个互不相同且无重复数字的两位数 都是多少 includevoidmain 主函数 voidf 函数声明 f 函数调用 voidf 子函数 inti 1 j 1 ab 0 num 0 for i 1 i 4 i for j 1 j 4 j if i j Continue ab i 10 j num printf d n ab printf d n num 例 把如下程序的子函数补充完整 includevoidmain intmax int int inta b c scanf d d 以下为子函数 比较2个整型数的大小 并返回较大的数 includevoidmain intmax int int inta b c scanf d d 53 引例 局部变量的作用域举例 交换两个变量的值 includevoidmain inta 4 b 9 voidfun int int printf a d b d n a b fun a b printf a d b d n a b voidfun inta intb intc c a a b b c printf a d b d n a b 54 引例 全局变量的作用域举例 分析下面程序运行结果voidfun inta b voidmain a 4 b 9 printf 交换前的a和b是 d d n a b fun printf 交换后的a和b是 d d n a b voidfun intt t a a b b t 使用的变量名a和b 全局变量a和b 55 例1 func inta charch intb 1 c 2 floatf a 5 a 3 inta b 3 a b c printf a d n a a b c printf a d n a Why 56 例2 inta b voidexch intt t a a b b t voidmain scanf d d a b printf a d b d n a b exch printf a d b d n a b a 2 b 5 a 5 b 2 输入2 5 结论 全局变量在任何程序内可见 57 inta b exch intt a 2 b 5 t a a b b t voidmain scanf d d a b printf a d b d n a b exch printf a d b d n a b a 2 b 5 a b 输入2 5 a 2 b 5 Why 如果输入3 7呢 函数exch 改成如下的形式 结果如何 a 3 b 7 如果函数中的局部变量和全局变量同名 在函数范围内 局部变量可见 58 例3 test2 test1 2 test1 inti intx staticy if i 1 x 10 y 20 printf auto x d n x printf static y d n y includevoidmain test1 1 test2 test1 3 59 该程序在计算机的屏幕上显示 auto x 10static y 20auto x 随机值static y 20auto x 随机值static y 20 60 1 求N 一般解法 includemain longs 1 intn i 0 printf 请输入阶乘数 n scanf d 61 1 求N 用递归函数 n 1 2 3 n 1 n n f n 1 函数头部 unsignedlongfact intn 函数体 unsignedlongfact intn unsignedlongm if n 1 m 1 elsem fact n 1 n returnm 62 63 2 求fibonacci数列的第n项的值 确定函数头部 longfibo intn 递推关系 fibo n fibo n 2 fibo n 1 初始状态 当n 1时 fibo 1 1 当n 2时 fibo 2 1 n 3时 fibo n fibo n 2 fibo n 1 64 longfibo intn longm if n 1 m 1 elseif n 2 m 1 elsem fibo n 2 fibo n 1 returnm 2 求fibonacci数列的第n项的值 65 includevoidmain intf2 f1 f n f2 1 f1 1 printf 8d 8d f2 f1 for n 3 n 12 n f f1 f2 printf 8d f f2 f1 f1 f 66 例 编写程序 用来生成一个随机小写字符串 include include includevoidmain srand time NULL for inti 1 i 20 i printf c 97 rand 26 1 有一个一维数组 有10个整数存放其中 找出其中最大的一个数 67 67 数组a max a 0 for i 1 imax max a i 定义 main inti max x 10 printf enterdata n for i 0 i 10 i scanf d max x 0 for i 1 imax max x i 输入 处理 输出 printf max d n max 2 用冒泡法对10个整数按从小到大的顺序排列 什么是 冒泡法排序 排序的过程核心程序段完整程序 69 69 怎么做 冒泡法排序的思想 假设有n个数 将相邻的两个数依次进行比较 使小的在前 大的在后 那么第一轮比较n 1次就把最大的数排到了最后 第二轮比较n 2次 就把次大的数排到了倒数第二 依此类推 直到第n 1轮比较1次 将最小的数排到了第一 算法结束 算法的整体思路是让大的数不断地往下沉 小的数不断地往上冒 所以叫 冒泡排序法 70 70 71 3 选择法排序 要求 将n个数按照从大到小的顺序排列 前提 n个数放入一个一维数组中 选择法排序的思想 第一次 从n个数中 找出一个最大的 放到第一个数组元素的位置处 第二次 从剩下的n 1个数中 找出一个最大的 放到第二个数组元素的位置处 以此类推 第n 1次 从剩下的两个数中 找出一个最大的放到第n 1个数组元素的位置处 72 72 程序 for i 0 ia p p j if p i med a i a i a p a p med for i 0 i n i printf 6d a i printf n include definen5voidmain inta n i j p med printf pleaseinput printf dintegers n for i 0 i n i scanf d 73 73 74 思考题 写一选择法排序算法 小 大 写一冒泡法排序算法 大 小 75 75 例2 写一个程序将一个字符串中的所有大写字母转换成小写字母 76 77 分析 定义一个字符数组 printf 请输入一行字符 n 输入一行字符 对字符数组中的字符进行处理 charstr 80 gets str for i 0 str i 0 i if str i A 78 include include definen80voidmain inti charstr n printf 请输入一行字符 n gets str printf 输出未转换的串 n puts str printf 现在开始转换 n for i 0 str i 0 i if str i A 79 strlwr str 80 80 81 81 引例 全局变量的作用域举例 分析下面程序运行结果 例 用函数来实现两个数的交换 includevoidmain inta 3 b 5 int pa pb voidswap int int pa 82 voidswap int p1 int p2 inttemp temp p1 p1 p2 p2 temp 82 83 83 84 例1 将字符串a复制到字符串b main ch

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论