2013-4习题选讲.pdf_第1页
2013-4习题选讲.pdf_第2页
2013-4习题选讲.pdf_第3页
2013-4习题选讲.pdf_第4页
2013-4习题选讲.pdf_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

2012 2013 第二学期第二学期第二学期第二学期 程序设计技术程序设计技术程序设计技术程序设计技术 习题选讲习题选讲习题选讲习题选讲 一一一一 计算机学院 陈策 1 将一张 100 元大钞换成等值的 10 元 5 元 2 元 1 元一张的小钞票 要求每次换成 40 张小钞票 每种小钞票至少一张 编程输出所有可能的换票方案 解 用穷举法 先列出 10 元 5 元 2 元可能最大张数 根据小钞总数 40 推出 1 元张数 最后判定总金额及张数是否满足条件 include void main int n10 n5 n2 n1 for n10 1 n10 9 n10 for n5 1 n5 17 n5 for n2 1 n2 1 2 一球从 100 米高度自由落下 每次落地后反弹回原高度的一半后再落下 编程求该球在 第 10 次落地时共经过了多少米 第 10 次反弹多高 解 用倒递推法 关键是初始化条件 include void main float sn 100 0 hn sn 2 int n for n 2 n N i i N 用模运算置回起始点 j 为数数器 控制在 m 范围 该 算法的基本思路是将已弹出数所在单元清零 数数时应正常跳过它们 该算法也可用链 表实现 其代码更复杂些 include define N 26 void main int a N i j p int s m scanf d d for i 0 i N i a i i 1 i s 1 p 0 while p N i i N if a i 0 p printf 6d a i a i 0 i 4 已知 R1 R2 R10 试编制一个形成 10 阶对称矩阵的程序 设 R1 到 R10 的值分别 是 1 至 10 对称矩阵的定义 R1 R2 R3 R10 R2 R1 R2 R9 R3 R2 R1 R8 R10 R9 R8 R1 解 可以发现对称矩阵是按对角线对折的数据分布 可以用下标运算实现 include void main int i j a 10 10 b 1 2 3 4 5 6 7 8 9 10 for i 0 i 10 i a 0 i b i for i 1 i 10 i for j 0 jj a i j a j i else a i j a i 1 j 1 for i 0 i 10 i for j 0 j 10 j printf d t a i j printf n 5 编写一个函数将任意一个正整数 n 的立方分解成 n 个连续的奇数之和 并编写主函数进 行测试 例如 输入 4 输出 13 15 17 19 即 4 3 13 15 17 19 解 这个函数没有返回值 参数是给定一个正整数 功能是输出一个算式 可以用穷举法列 出可能的多组 n 个连续奇数之和 判断是否是 n 的立方 该算法关键是利用连续奇数特 点 只需用 k0 记录第一个奇数即可 void dis int n int k0 1 k sum i do k k0 sum 0 for i 1 i n i sum sum k k k 2 if sum n n n break else k0 k0 2 while 1 for i 1 i n i printf 5d k0 k0 k0 2 6 编写函数计算 kkkkk kk 共 n 个 k n 和 k 都由键盘输入 并编写主函数由此计算 Sn k kk kkk kkkk kk 最后一个为 n 个 k 比如 当 n 4 k 3 的时候 则为计算 s 3 33 333 3333 解 首先构造函数原型 确定累加式 s s r 及叠代数 r r 10 k int splice int k int n int s 0 r 0 for n s s r r 10 k return s 7 编写一个判断素数的函数 并编写主函数用它进行验证歌德巴赫猜想 德国数学家哥德 巴赫 1742 年提出了一个猜想 任一充分大的偶数 大于等于 6 的偶数 都可以分解成两个素 数的和 解 判断某个数是否为素数的函数原型应包括返回 0 1 整数类型 参数是需要判断的一个整 数 如 int detect int x 算法思路是 用户输入的一个偶数 程序将其分成两个奇数 的和 检测第一个数是否素数 如果是 继续判断第二个数是否素数 是则结束 否则通过 循环找出下一个奇数继续检测 include include int detect int x 函数原型 void main int num middle1 middle2 printf Please input a positive even number 6 scanf d for middle1 3 middle1 num 2 middle1 2 if detect middle1 middle2 num middle1 if detect middle2 printf d d d n num middle1 middle2 break int detect int x int i for i 2 i0 采用递归方法编程求 a x n 并编写主函数进行测试 x n 在主函数中由键盘输入 解 其递归意义是当 n 0 时 结果为 1 其他情况 f x n x n f x n 1 include void main double f double x int n double x int n scanf lf d printf lf n f x n double f double x int n if n 0 return 1 else return x n f x n 1 9 编写判断一个正整数是否是完数的函数 完数是该数的各因子之和是它自身的整数 如 6 的因子是 1 2 3 而 6 1 2 3 故 6 是完数 求 2 1000 的所有完数 解 求出给定整数 n 的全部因子 即穷举 1 n 的所有数 不含 n 如果能够整除 n 则是因 子 将因子求和后判断等不等于 n include int wanshu int n void main int n for n 2 n 1000 n if wanshu n printf d is a wanshu n n int wanshu int n int i s 0 for i 1 i n i if n i 0 s s i if s n return 1 else return 0 10 模拟地雷游戏 基于二维数组应用 要求在 9 9 的方格内随机生成 10 个雷 然后在雷 的周围标注附近的可能的雷的数量 最后输出方格内雷的位置和标注的雷数 解 为了计算方便可以设置 11 11 的二维数组 产生 1 9 的随机数 2 个 作为坐标值 如果 该单元为 0 则赋值 9 表示地雷 因一个空位周围最多 8 个雷 然后在雷的四周单元增加一个 值 1 表示附近有一个雷 最后输出时 应判断大于 8 的单元为雷 用字符值 15 表示 include include include define N 11 define M 11 void main int a M N 0 sum i j m n srand unsigned time NULL for sum 0 sum 10 i rand 10 1 j rand 10 1 if i 10 a i j 9 for m

温馨提示

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

评论

0/150

提交评论