




已阅读5页,还剩34页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 C 语言 C 语言程序设计教程 第二版 习题答案 说 明 1 本文所指的 C 语言程序设计教程 第二版 是李凤霞主编 北 京理工大学出版社出版的 绿皮 2 第 1 章 程序设计基础知识 一 单项选择题 第 23 页 1 4 CBBC 5 8 DACA 二 填空题 第 24 页 1 判断条件 2 面向过程编程 3 结构化 4 程序 5 面向对象的程序设 计语言 7 有穷性 8 直到型循环 9 算法 10 可读性 11 模块化 12 对问题的分析和模块的划分 三 应用题 第 24 页 2 源程序 main int i j k i 公鸡数 j 母鸡数 k 小鸡数的 1 3 printf cock hen chick n for i 1 i 20 i for j 1 j 33 j for k 1 k 33 k if i j k 3 100 执行结果 cock hen chick 4 18 78 8 11 81 12 4 84 3 现计算斐波那契数列的前 20 项 递推法 源程序 main long a b int i a b 1 for i 1 i 10 i 要计算前 30 项 把 10 改为 15 printf 8ld 8ld a b a a b b b a 递归法 源程序 main int i for i 0 i 19 i printf 8d fib i fib int i return i1e 12 printf 10f n x 执行结果 1 5 源程序略 分子 分母均构成斐波那契数列 结果是 32 6 源程序 main int a b c m printf Please input a b and c scanf d d d if a b m a a b b m if a c m a a c c m if b c m b b c c m printf d d d n a b c 执行结果 Please input a b and c 123 456 789 789 456 123 7 源程序 main int a scanf d printf a 21 0 Yes No 执行结果 42 Yes 3 第 2 章 C 语言概述 一 单项选择题 第 34 页 1 4 BDCB 5 8 AABC 二 填空题 第 35 页 1 主 2 C 编译系统 3 函数 函数 4 输入输出 5 头 6 OBJ 7 库函数 8 文本 三 应用题 第 36 页 5 sizeof 是关键字 stru aoto file m i n hello ABC SIN90 x1234 until co s2x s 3 是标识符 8 源程序 main int a b c scanf d d c a a b b c printf d d a b 执行结果 12 34 34 12 4 第 3 章 数据类型与运算规则 一 单项选择题 第 75 页 1 5 DBACC 6 10 DBDBC 11 15 ADCCC 16 20 CBCCD 21 25 ADDBC 26 27 AB 二 填空题 第 77 页 1 补码 2 10 308 10 308 3 int 整数 4 单目 自右相左 5 函 数调用 6 a 或 b 7 1 8 65 89 三 应用题 第 78 页 1 10 9 2 执行结果 11 0 0 12 1 5 第 4 章 顺序结构程序设计 一 单项选择题 第 90 页 1 5 DCDAD 6 10 BACBB 二 填空题 第 91 页 1 一 2 5 3 1 2 I 200 j 2500 3 i 200 j 2500 4 a 98 b 765 c 4321 5 略 6 0 0 3 7 3 8 scanf lf lf lf 9 13 13 13 10 a a c c c a a a c 这种算法不破坏 b 的值 也不用定义中 间变量 三 编程题 第 92 页 1 仿照教材第 27 页例 2 1 2 源程序 main int h m scanf d d printf d n h 60 m 执行结果 9 23 563 3 源程序 main int a 10 0 15 34 i for i 0 ic printf SS 10lf n sqrt s s a s b s c else printf Data error 执行结果 4 5 6 SS 9 6 源程序 main int a 3 b 4 c 5 float d 1 2 e 2 23 f 43 56 printf a 3d b 4d c d nd g ne 6 2f nf 10 4f n a b c d e f 7 源程序 main int a b c m scanf d d d m a a b b c c m printf d d d n a b c 执行结果 5 6 7 6 7 5 8 源程序 main int a b c scanf d d d printf average of d d and d is 2f n a b c a b c 3 执行结果 6 7 9 average of 6 7 and 9 is 7 33 9 不能 修改后的源程序如下 main int a b c x y scanf d d d x a b y x c printf a d b d c d n a b c printf x d y d n x y 6 第 5 章 选择结构程序设计 一 单项选择题 第 113 页 1 4 DCBB 5 8 DABD 二 填空题 第 115 页 1 非 0 0 2 k 0 3 if abs x 4 printf d x else printf error 4 if x 1 2 源程序 main unsigned long a scanf ld for a printf d a 10 a 10 执行结果 12345 54321 3 1 源程序 main int x y scanf d if x 5 printf d n y 2 源程序 main int x y scanf d if x 5 if x 0 if x 5 y x 1 else y x 1 else y x printf d n y 3 源程序 main int x y scanf d if x 5 y x 1 else if x 0 y x 1 else if x 5 y x printf d n y 4 源程序 main int x y scanf d switch x 5 case 1 if x 5 y x break case 0 y x 1 break case 1 y x 1 printf d n y 4 本题为了避免考虑每月的天数及闰年等问题 故采用面向对象的 程序设计 现给出 Delphi 源程序和 C Builder 源程序 Delphi 源程序 procedure TForm1 Button1Click Sender TObject begin edit3 Text format 0f 天 strtodate edit2 text strtodate edit1 text end procedure TForm1 FormCreate Sender TObject begin Edit2 Text datetostr now button1click form1 end C Builder 源程序 void fastcall TForm1 Button1Click TObject Sender Edit3 Text IntToStr StrToDate Edit2 Text StrToDate Edit1 Text 天 void fastcall TForm1 FormCreate TObject Sender Edit2 Text DateToStr Now Button1Click Form1 执行结果 运行于 Windows 下 5 源程序 main unsigned a b c printf 请输入三个整数 scanf d d d if a else if a b c else printf 构成一般三角形 n else printf 不能构成三角形 n 执行结果 请输入三个整数 5 6 5 构成等腰三角形 6 源程序 main int x y scanf d if x 20 y 1 else switch x 60 case 0 y x 10 break default y 6 printf x d y d n x y 7 源程序 main unsigned m float n scanf d if m600 n 0 06 else n m 100 0 5 100 printf d 2f 2f n m m 1 n m n 执行结果 450 450 429 75 20 25 8 2171 天 起始日期和终止日期均算在内 本题可利用第 4 小题编好的程序进行计算 把起始日期和终止日期 分别打入 生日 和 今日 栏内 单击 实足年龄 按钮 将所得到的天 数再加上 1 天即可 9 源程序 include math h main unsigned long i scanf ld printf ld d n i 10 int log10 i 1 执行结果 99887 7 5 10 源程序 main unsigned long i unsigned j 10 m 0 scanf ld for i j m i 2 10 i 10 for m m i i 10 j m 1 printf ld n i 执行结果 6987 8109 注 要加密的数值不能是 0 或以 0 开头 如果要以 0 开头需用字符 串而不能是整数 7 第 6 章 循环结构程序设计 一 单项选择题 第 142 页 1 4 BCCB 5 8 CBCA 二 填空题 第 143 页 1 原题可能有误 如无误 是死循环 2 原题有误 如果把 b 1 后面 的逗号改为分号 则结果是 8 3 20 4 11 5 2 6 7 8 5 2 8 d 1 0 k k 0 x amin 三 编程题 第 145 页 1 源程序 main int i 1 sum i while i 101 sum i i 2 sum i i 2 printf d n sum 执行结果 51 2 源程序 main double p 0 n 0 f int i for i 1 i0 p f else n f printf lf lf lf n p n p n 3 源程序 main unsigned a scanf ld for a printf d a 10 a 10 printf b n 执行结果 23456 6 5 4 3 2 4 源程序 main unsigned long a b c i scanf ld ld c a 1000 for i 1 i b i c c a 1000 if c 100 printf 0 if c 10 printf 0 printf ld n c 执行结果 129 57 009 5 略 6 原题提供的计算 e 的公式有误 前面漏了一项 1 正确的公式是 e 1 1 1 2 1 3 1 n 1 源程序 main double e 1 f 1 int n for n 1 n1e 4 n f n e f printf e 4f n e 执行结果 e 2 7183 7 源程序 main unsigned long a 0 b 1 c 0 int i d scanf d for i 1 i d 2 3 i printf 10ld 10ld 10ld a b a b c b c a c a b 本题还可以用递归算法 效率很低 源程序如下 unsigned long fun int i return i 3 i fun i 1 fun i 2 fun i 3 main int i d scanf d for i 1 i d i printf 10ld fun i 执行结果 15 1 2 3 6 11 20 37 68 125 230 423 778 1431 2632 4841 8 源程序 main int i for i 1010 i 9876 i 2 if i 100 11 执行结果 1024 1026 1028 1032 1034 1036 9874 9876 9 源程序 main int i j k printf apple watermelon pear n for i 1 i 100 i for j 1 j 10 j if k 100 i j 2 400 i 4 j 40 printf 4d 7d 9d n i j k 执行结果 apple watermelon pear 5 5 90 24 4 72 43 3 54 62 2 36 81 1 18 10 源程序 include stdio h define N 4 N 为阶数 可以改为其他正整数 main int m N 2 i j for i 1 i m printf n i for j 1 j m putchar N abs i N abs j N 如果把 N 值改为 5 则执行结果如下 作者 宁西贯通 2006 5 7 23 41 回复此发言 8 说明 注意 上面最后一题的输出结果应该是由星号组成的一个菱形 9 第 7 章 数 组 一 单项选择题 第 192 页 1 4 BBCC 5 8 AABA 二 填空题 第 194 页 1 1 2 4 8 16 32 64 128 256 512 2 a age i 18 ib j i 3 j 5 5 b j a j 0 b j a j k 6 a k a j 三 编程题 第 196 页 1 源程序 main int a 4 4 i j s 0 for i 0 i 4 i for j 0 j 4 j scanf d for i 0 i 4 i for j 0 j 4 j if i j i j 3 s a i j printf d n s 注 5 5 矩阵不能照此计算 执行结果 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 68 2 源程序 main int i a 36 a 0 2 for i 1 i 29 i a i a i 1 2 for i 35 i a i a i 30 5 2 for i 0 i 35 i printf d t a i 执行结果 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 6 16 26 36 46 56 3 源程序 include stdlib h include time h main int a 30 i m 0 randomize for i 0 i 29 i a i rand if m a i m a i printf d t a i for i 0 i 29 i if a i m a i 1 printf n n for i 0 i 1 b n i for n printf d b n 执行结果 9876 100 本题也可以不用数组 源程序如下 include stdio h main int i n scanf d for n 16 n n asm ROL i 1 putchar i ROL 是循环左移的汇编指令 5 源程序 include stdlib h include time h define M 5 define N 6 main int a M N i j t M randomize 生成 M 行 N 列随机数 for i 0 i M printf n t i 0 for j 0 j N j printf 4d a i j random 50 找出每行的最小数 t M 是第 M 行的最小数所在的列数 for i 0 i M i for j 0 ja i j t i j 比较每个最小数在其所在的列上是否也是最小 for j 0 j M j for i 0 ia i t j t j 1 break printf n 输出在行和列上均为最小的数 for i 0 i M i if t i 1 printf a d d d n i t i a i t i 执行结果 13 19 13 20 0 1 20 41 6 16 35 30 3 5 37 8 23 15 6 36 24 29 18 1 1 5 28 21 46 34 a 0 4 0 a 1 2 6 a 3 5 1 a 4 0 1 6 源程序 include stdlib h include time h define M 5 define N 7 main int a M N i j t 0 randomize for i 0 i M i a i N 1 0 for j 0 j N 1 j printf 4d a i j random 91 10 a i N 1 a i j printf 4d n a i N 1 for i 1 ia t N 1 t i if t for j 0 j N j i a 0 j a 0 j a t j a t j i printf n for i 0 i M printf n i 10 第 7 章 数 组 for j 0 j N j printf 4d a i j 执行结果 89 17 32 95 35 20 288 39 48 22 27 73 22 231 51 87 39 71 84 46 378 84 94 97 77 27 26 405 69 50 56 89 37 46 347 84 94 97 77 27 26 405 39 48 22 27 73 22 231 51 87 39 71 84 46 378 89 17 32 95 35 20 288 69 50 56 89 37 46 347 7 源程序 include stdlib h include time h define M 5 define N 6 main int a M N i j struct data int value x y max min max value 0 min value 100 randomize for i 0 i M printf n i for j 0 j N j printf 4d a i j random 100 1 if max valuea i j min value a i j min x i min y j printf n i a 0 N 1 a 0 N 1 max value a max x max y i i a M 1 0 a M 1 0 min value a min x min y i for i 0 i M printf n i for j 0 j N j printf 4d a i j 执行结果 51 53 74 65 30 40 30 26 50 6 61 27 47 16 54 58 76 19 57 74 44 92 71 48 73 57 60 32 73 67 51 53 74 65 30 92 30 26 50 73 61 27 47 16 54 58 76 19 57 74 44 40 71 48 6 57 60 32 73 67 9 源程序 main char s 255 int i j b 1 printf Input a string scanf s s i strlen s for j 1 j4 gets s l strlen s for i 0 i l i if s max s i min i t s 1 s 1 s max s max t if min 1 min max t s l 2 s l 2 s min s min t printf s n s 执行结果 Input a string length 4 C Builder Cu Beild r 11 源程序 main char m 13 10 January February March April May June July August September October November December int i j k a s n printf Please input an integer 100 999 scanf d printf d d d d d d 13 d s n n i j k s s a m a s i n 100 j n 10 10 k n 10 13 执行结果 Please input an integer 100 999 539 539 5 3 9 17 17 13 4 April 11 第 8 章 函 数 一 单项选择题 第 241 页 1 5 BCCAA 6 10 CCDDD 11 15 ACACB 二 填空题 第 243 页 1 看不出原题的意图 因为要计算 1 n 的累加和 n 应是一个 1 的正整数 可是题目中却出现了 n 0 的情况 除非另加规定当 n 0 时 1 n 的累加和为 0 或者把原题中的计算式改为计算 0 n 的累加 和 据此猜测 原题应填为 return 0 return n sum n 1 根据题意 如下程序较为合理 int sum int n if n 0 return 1 1 是出错标志 else if n 1 return 1 else return n sum n 1 2 return
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025教师资格试题含答案详解(综合题)
- 法院司法辅助人员题库试题(各地真题)附答案详解
- 危重患者交接班制度
- 2026届淮安市重点中学九年级英语第一学期期末学业水平测试试题含解析
- 用餐接待礼仪培训
- 中国政治制度讲解
- 2026届云南省腾冲市十五所学校英语九年级第一学期期末预测试题含解析
- 江苏省句容市华阳片区2026届九年级化学第一学期期中考试试题含解析
- 机关科室工作总结
- 教育学新闻汇报
- 颞下颌关节功能紊乱综合征的诊治
- 七年级上册英语单词形象记忆法
- 小学生科普知识蜜蜂介绍PPT
- 李建涛员工从“老板”做起课件
- GB/T 24346-2009纺织品防霉性能的评价
- FZ/T 12045-2014喷气涡流纺粘胶纤维色纺纱
- 船舶电气知识培训课件
- 苏轼生平课件
- 矿山爆破安全技术课件
- 中国文化概论-第6章-中国语言文字分解课件
- 水文学考试复习题和答案
评论
0/150
提交评论