C_primer_plus(第五版)课后编程练习答案.pdf
《C_primer_plus(第五版)课后编程练习答案.pdf》由会员分享,可在线阅读,更多相关《C_primer_plus(第五版)课后编程练习答案.pdf(195页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第 一 章 概 览 编 程 练 习 1.您 刚 刚 被 MacroMuscle有 限 公 司(Software for Hard Bodies)聘 用。该 公 司 要 进 入 欧 洲 市 场,需 要 一 个 将 英 寸 转 换 为 厘 米(1 英 寸=2.54 cm)的 程 序。他 们 希 望 建 立 的 该 程 序 可 提 示 用 户 输 入 英 寸 值。您 的 工 作 是 定 义 程 序 目 标 并 设 计 该 程 序(编 程 过 程 的 第 1步 和 第 2 步。1.将 英 寸 值 转 化 为 厘 米 值 2.显 示“输 入 英 寸 值”-得 到 该 值-转 换 为 厘 米 值-存 储-
2、告 知 用 户 一 结 束 第 二 章 C 语 言 概 述 编 程 练 习 1.编 写 个 程 序,调 用 printfO函 数 在 行 上 输 出 您 的 名 和 姓,再 调 用 次 printfO函 数 在 两 个 单 独 的 行 上 输 出 您 的 名 和 姓,然 后 调 用 一 对 printfO函 数 在 一 行 上 输 出 您 的 名 和 姓。输 出 应 如 下 所 示(当 然 里 面 要 换 成 您 的 姓 名):Anton BrucknerAntonBrucknerAnton Bruckner第 一 个 输 出 语 句 第 二 个 输 出 语 句 仍 然 是 第 二 个 输 出
3、 语 句 第 三 个 和 第 四 个 输 出 语 句#includeint main(void)printf(,?He Jinn);printf(Hen);printf(Jinn);printf(He Jinn);return(0);)2.编 写 一 个 程 序 输 出 您 的 姓 名 及 地 址。#includeint main(void)(printf(*Name:He Jinn);printf(Address:CAUCn);return(0);)3.编 写 个 程 序,把 您 的 年 龄 转 换 成 天 数 并 显 示 二 者 的 值。不 用 考 虑 平 年(fractional yea
4、r)和 闰 年(1 eapyear)的 问 题。#includeint main(void)(int age=22;printf(?,Age:%dnz,,age);printf(Day:%dn”,age*356);return(0);4.编 写 个 能 够 产 生 下 面 输 出 的 程 序:For hes a jolly good fellow!For he*s a jolly good fellow!For hes a jolly good fellow!Which nobody can deny!程 序 中 除 了 main。函 数 之 外,要 使 用 两 个 用 户 定 义 的 函 数
5、:一 个 用 于 把 上 面 的 夸 奖 消 息 输 出 一 次:另 一 个 用 于 把 最 后 一 行 输 出 一 次。#includevoid printfl(void);void printf2(void);int main(void)(printfl();printf 1();printfl();printf2();return(0);)void printfl(void)(printf(For hes a jol ly good fel low!n,z);)void printf2(void)(printf(Which nobody can deny!n);5.编 写 一 个 程 序
6、,创 建 一 个 名 为 toes的 整 数 变 量。让 程 序 把 toes设 置 为 10。再 让 程 序 计 算 两 个 toes的 和 以 及 toes的 平 方。程 序 应 该 输 出 所 有 的 3 个 值,并 分 别 标 识 它 们。#includeint main(void)(int toes=10;int toes add;int toes一 square;toes_add=toes+toes;toes_square=toes*toes;printf(/,toes=%dntoes_add=%dntoes_square=%dn/z,toes,toes_add,toes_squa
7、re);return(0);6.编 写 个 能 够 产 生 下 列 输 出 的 程 序:Smile!Smile!SmileSmile!Smile!Smile!在 程 序 中 定 义 个 能 显 示 字 符 串 smile卜 次 的 函 数,并 在 需 要 时 使 用 该 函 数。#includevoid display(void);int main(void)(display();display();display();printf(n);display();display();p r i n t f;display();printf;return(0);)void display(void)
8、(printf(Smile!”);)7.编 写 一 个 程 序,程 序 中 要 调 用 名 为 one_three()的 函 数。该 函 数 要 在 一 行 中 显 示 单 词。ne,再 调 用 two()函 数,然 后 再 在 另 一 行 中 显 示 单 词 three。函 数 lwo()应 该 能 在 一 行 中 显 示 单 词”two main()函 数 应 该 在 调 用 one three。函 数 之 前 显 示 短 语“starting now:,函 数 调 用 之 后 要 显 示“done!o这 样,最 后 的 输 出 结 果 应 如 下 所 示:starting nowonet
9、wothreedone!#includevoid one_three(void);void two(void);int main(void)(printf(starting now:nz,);one_three0;printf(done!n);return(0);)void one_three(void)Iprintf(0nen);two();printf(,zThreenz,);)void two(void)(printf(Twon);)第 三 章 数 据 和 C编 程 练 习 1.通 过 试 验 的 方 法(即 编 写 带 有 此 类 问 题 的 程 序)观 察 系 统 如 何 处 理 整
10、 数 上 溢.、浮 点 数 上 溢 和 浮 点 数 下 溢 的 情 况。#includeint main(void)(unsigned int a=4294967295;float b=3.4E38;float c=b*10;float d=0.1234E-2;printf(%u+l=%un”,a,a+1);printf(,%e*10=%en/,,b,c);printf d,d/10);return(0);2.编 写 个 程 序,要 求 输 入 个 A S C H 码 值(如 66),然 后 输 出 相 应 的 字 符。#includeint main(void)(char a;s c a n
11、 f&a);printf(%cn,a);return(0);3.编 写 个 程 序,发 出 警 报 声,并 打 印 下 列 文 字:Startled by the sudden sound,Sally shouted,“By the Great Pumpkin,what was that!#includeint main(void)printf CAaStartled by the sudden sound,Sally shouted,,zBy the Great pumpkin,what wasthat!n);return(0);4.编 写 一 个 程 序,读 入 一 个 浮 点 数,并 分
12、 别 以 小 数 形 式 和 指 数 形 式 打 印。输 出 应 如 同 下 面 格 式(实 际 显 示 的 指 数 位 数 也 许 因 系 统 而 不 同):The input is 21.290000 or 2.129000e+001.#includeint main(void)fIoat a;scanf(线 f,&a);printf(,zThe input is%f or%en,a,a);return(0);)5.年 约 有 3.156X107S。编 写 个 程 序,要 求 输 入 您 的 年 龄,然 后 显 示 该 年 龄 合 多 少 秒。#includeint main(void)f
13、loat a;printf(Please input your age:);s c a n f&a);printf(,zYour age is%e secondsXn,a*3.156E7);return(0);6.1 个 水 分 子 的 质 量 约 为 3.0X10723g,1 夸 脱 水 大 约 有 950g。编 写 一 个 程 序,要 求 输 入 水 的 夸 脱 数,然 后 显 示 这 么 多 水 中 包 含 多 少 个 水 分 子。ttincludeint main(void)(float a;printf(z,Please input how much quarts the water
14、 is:);scanf(f,&a);printf(,z%f quarts water has%e molecules.n/z,a,a*950/3E-23);return(0);7.1 英 寸 等 于 2.54cm。编 写 一 个 程 序,要 求 输 入 您 的 身 高(以 英 寸 为 单 位),然 后 显 示 该 身 高 值 等 于 多 少 厘 米。如 果 您 愿 意,也 可 以 要 求 以 厘 米 为 单 位 输 入 身 高,然 后 以 英 寸 为 单 位 进 行 显 示。ttincludeint main(void)(float a;printf(Please input your hei
15、ght by inches:);scanf(绘 f,&a);printf Your height is%fcm.n,z,a*2.54);return(0);)第 4 章 字 符 串 和 格 式 化 输 入/输 出 编 程 练 习 1.编 写 一 个 程 序,要 求 输 入 名 字 和 姓 氏,然 后 以“名 字,姓 氏”的 格 式 打 印。#includeint main(void)(char surname20,firstname20;printf(,zPlease input your firstname and surname:);scanf(%s”,firstname):scanf(s
16、,surname);printf(You are%s,%s.n”,firstname,surname);return(0);2.编 写 一 个 程 序,要 求 输 入 名 字,并 执 行 以 下 操 作:a.把 名 字 引 在 双 引 号 中 打 印 出 来。b.在 宽 度 为 20个 字 符 的 字 段 内 打 印 名 字,并 且 整 个 字 段 引 在 引 号 内。c.在 宽 度 为 20个 字 符 的 字 段 的 左 端 打 印 名 字,并 且 整 个 字 段 引 在 引 号 内。d.在 比 名 字 宽 3 个 字 符 的 字 段 内 打 印 它。#include#includeint
17、main(void)(char name20;int width;printf(*Please input your name:);s c a n f n a m e);printf(A:%s n,name);printf(B:%20s n,name);printf(C:%-20sn,name);width=strlen(name)+3;printf(D:%*sn,width,name);/*对 应 widthreturn(0);)3.编 写 一 个 程 序,读 取 一 个 浮 点 数,并 且 首 先 以 小 数 点 记 数 法,然 后 以 指 数 记 数 法 打 印 之。输 出 使 用 下
18、列 形 式(在 指 数 位 置 显 示 的 数 字 的 位 数 可 能 会 随 系 统 而 不 同):a.The input is 21.3 or 2.le+001.b.The input is+21.290 or 2.129E+001.#includeint main(void)(float a;printf(Please input a float:z/);scanf(绘 f,&a);printf(a.The input is%.If or%.len,a,a);printf(b.The input i s%+.3f or%.3En”,a,a);return(0);4.编 写 一 个 程 序
19、,要 求 输 入 身 高(以 英 寸 为 单 位)和 名 字,然 后 以 如 下 形 式 显 示:Dabney,you are 6.208 feet tai 1使 用 float类 型,使 用/作 为 除 号。如 果 您 愿 意,可 以 要 求 以 厘 米 为 单 位 输 入 身 高,并 以 米 为 单 位 进 行 显 示。#includeint main(void)(float height;char name20;printf(Please input your height by inches:);s c a n f&h e i g h t);printf(/zPlease input
20、your name/);s c a n f n a m e);printf(/z%s,you are%f feet tallXn,name,height/12);return(0);)5.编 写 一 个 程 序,首 先 要 求 用 户 输 入 名 字,然 后 要 求 用 户 输 入 姓 氏。在 一 行 打 印 输 入 的 姓 名,在 下行 打 印 每 个 名 字 中 字 母 的 个 数。把 字 母 个 数 与 相 应 名 字 的 结 尾 对 齐,如 下 所 示:Melissa Honeybee7 8然 后 打 印 相 同 的 信 息,但 是 字 母 个 数 与 相 应 单 词 的 开 始 对
21、齐。#include#includeint main(void)(char surname20,firstname20;printf(*Please input your firstname and surname:);s c a n f f i r s t n a m e);scanf(线 s,surname);printf(z,%s%s.n,f irstname,surname);printf(%*d%*dn,strlen(firstname),strlen(firstname),strlen(surname),strlen(surname);/*对 应 宽 度 变 量 printf(,z
22、%s%s.n,firstname,surname);p r i n t f%dn”,str 1en(firstname),strlen(firstname),strlen(surname),strlen(surname);/*对 应 宽 度 变 量 return(0);6.编 写 一 个 程 序,设 置 一 个 值 为 1.0/3.0 的 double类 型 变 量 和 一 个 值 为 1.0/3.0 的 float类 型 变 量。每 个 变 量 的 值 显 示 三 次:一 次 在 小 数 点 右 侧 显 示 4 个 数 字,次 在 小 数 点 右 侧 显 示 12个 数 字,另 次 在 小
23、数 点 右 侧 显 示 16个 数 字。同 时 要 让 程 序 包 括 float,h 文 件,并 显 示 FLTDIG和 DBL_DIG的 值。1.0/3.0的 显 示 值 与 这 些 值 致 吗?#include#includeint main(void)double a=l.0/3.0;float b=l.0/3.0;printf(*double a=1.0/3.0:n);printf(%.4en,a);printf(,z%.12en/z,a);printf 16enn*,a);printf(Afloat b=l.0/3.0:n);printf(z,%.4fn,b);printf(%.1
24、2fn,b);printf(%.16fnn,b);printf CFLT_DIG:%dn*,FLT_DIG);printf(DBL_D】G:%dn,DBL_DG);return(0);7.编 写 一 个 程 序,要 求 用 户 输 入 行 驶 的 英 里 数 和 消 耗 汽 油 的 加 仑 数。接 着 应 该 计 算 和 显 示 消 耗 每 加 仑 汽 油 行 驶 的 英 里 数,显 示 方 式 是 在 小 数 点 右 侧 显 示 个 数 字。然 后,根 据 1 加 仑 约 等 于 3.785升,1 英 里 约 等 于 1.609公 里 的 规 则,它 应 该 把 每 加 仑 英 里 数 转
25、换 成 每 100公 里 的 升 数(欧 洲 通 用 的 燃 料 消 耗 表 示 法),并 显 示 结 果,显 示 方 式 是 在 小 数 点 右 侧 显 示 个 数 字(请 注 意,美 国 方 案 测 量 每 单 位 距 离 消 耗 的 燃 料 数,而 欧 洲 方 案 测 量 每 单 位 燃 料 的 行 驶 距 离)。用 符 号 常 量 表 示 两 个 转 换 系 数(使 用 const或#(“加)。#includettdefine GALLON 3.785/I gallon=2.785 litrettdefine MILE 1.609/I mile=1.609 kilometerint m
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C_primer_plus 第五 课后 编程 练习 答案
限制150内