C程序设计(第四版)谭浩强课后习题答案共11章(可编辑)_第1页
C程序设计(第四版)谭浩强课后习题答案共11章(可编辑)_第2页
C程序设计(第四版)谭浩强课后习题答案共11章(可编辑)_第3页
C程序设计(第四版)谭浩强课后习题答案共11章(可编辑)_第4页
C程序设计(第四版)谭浩强课后习题答案共11章(可编辑)_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

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

文档简介

1、c程序设计(第四版)谭浩强_课后习题答案_共11章 第1章程序设计和c语言111什么是计算机程序112什么是计算机语言113c语言的发展及其特点314最简单的c语言程序5141最简单的c语言程序举例6142c语言程序的结构1015运行c程序的步骤与方法1216程序设计的任务14include int main printf nn printf very goodnn printf n return 0 1-6include int main int abc printf please input abcn scanf dddabc a if b b if c c printf the larg

2、est number is dn return 0 第2章算法程序的灵魂1621什么是算法1622简单的算法举例1723算法的特性2124怎样表示一个算法22241用自然语言表示算法22242用流程图表示算法22243三种基本结构和改进的流程图26244用ns流程图表示算法28245用伪代码表示算法31246用计算机语言表示算法3225结构化程序设计方法34习题36第章最简单的c程序设计顺序程序设计3731顺序程序设计举例3732数据的表现形式及其运算39321常量和变量39322数据类型42323整型数据44324字符型数据47325浮点型数据49326怎样确定常量的类型51327运算符和表

3、达式5233c语句57331c语句的作用和分类57332最基本的语句赋值语句5934数据的输入输出65341输入输出举例65342有关数据输入输出的概念67343用printf函数输出数据68344用scanf函数输入数据75345字符数据的输入输出78习题82include include int main float prn r 01 n 10 p pow 1rn printf p fnp return 0 3-2-1include include int main float r5r3r2r1r0pp1p2p3p4p5 p 1000 r5 00585 r3 0054 r2 00468 r

4、1 00414 r0 00072 p1 p 1r5 5 一次存5年期 p2 p 12r2 13r3 先存2年期到期后将本息再存3年期 p3 p 13r3 12r2 先存3年期到期后将本息再存2年期 p4 ppow 1r15 存1年期到期后将本息存再存1年期连续存5次 p5 ppow 1r0445 存活期存款活期利息每一季度结算一次 printf p1 fnp1 输出按第1方案得到的本息和 printf p2 fnp2 输出按第2方案得到的本息和 printf p3 fnp3 输出按第3方案得到的本息和 printf p4 fnp4 输出按第4方案得到的本息和 printf p5 fnp5 输出

5、按第5方案得到的本息和 return 0 3-2-2include include int main double r5r3r2r1r0pp1p2p3p4p5 p 1000 r5 00585 r3 0054 r2 00468 r1 00414 r0 00072 p1 p 1r5 5 一次存5年期 p2 p 12r2 13r3 先存2年期到期后将本息再存3年期 p3 p 13r3 12r2 先存3年期到期后将本息再存2年期 p4 ppow 1r15 存1年期到期后将本息存再存1年期连续存5次 p5 ppow 1r0445 存活期存款活期利息每一季度结算一次 printf p1 fnp1 输出按第

6、1方案得到的本息和 printf p2 fnp2 输出按第2方案得到的本息和 printf p3 fnp3 输出按第3方案得到的本息和 printf p4 fnp4 输出按第4方案得到的本息和 printf p5 fnp5 输出按第5方案得到的本息和 return 0 3-2-3include include int main float r5r3r2r1r0pp1p2p3p4p5 p 1000 r5 00585 r3 0054 r2 00468 r1 00414 r0 00072 p1 p 1r5 5 一次存5年期 p2 p 12r2 13r3 先存2年期到期后将本息再存3年期 p3 p 1

7、3r3 12r2 先存3年期到期后将本息再存2年期 p4 ppow 1r15 存1年期到期后将本息存再存1年期连续存5次 p5 ppow 1r0445 存活期存款活期利息每一季度结算一次 printf p1 102fnp1 输出按第1方案得到的本息和 printf p2 102fnp2 输出按第2方案得到的本息和 printf p3 102fnp3 输出按第3方案得到的本息和 printf p4 102fnp4 输出按第4方案得到的本息和 printf p5 102fnp5 输出按第5方案得到的本息和 return 0 3-3include include int main float d 3

8、00000p 6000r 001m m log10 p p-dr log10 1r printf m 62fnm return 0 3-4include int main int c1c2 c1 197 c2 198 printf c1 cc2 cnc1c2 printf c1 dc2 dnc1c2 return 0 3-5include int main int ab float xy char c1c2 scanf a d b dab scanf f exy scanf ccc1c2 printf a db dx fy fc1 cc2 cnabxyc1c2 return 0 3-6incl

9、ude int main char c1 cc2 hc3 ic4 nc5 a c1 c14 c2 c24 c3 c34 c4 c44 c5 c54 printf passwor is cccccnc1c2c3c4c5 return 0 3-7include int main float hrlssqvqvz float pi 3141526 printf 请输入圆半径r圆柱高h scanf ffrh 要求输入圆半径r和圆柱高h l 2pir 计算圆周长l s rrpi 计算圆面积s sq 4pirr 计算圆球表面积sq vq 3040pirrr 计算圆球体积vq vz pirrh 计算圆柱体积

10、vz printf 圆周长为 l 62fnl printf 圆面积为 s 62fns printf 圆球表面积为 sq 62fnsq printf 圆球体积为 v 62fnvq printf 圆柱体积为 vz 62fnvz return 0 3-8-1include int main int c1c2 整型定义 printf 请输入两个整数c1c2 scanf ddc1c2 printf 按字符输出结果n printf ccnc1c2 printf 按ascii码输出结果为n printf ddnc1c2 return 0 3-8-2include int main char c1c2 定义字

11、符型变量 int i1i2 定义整型变量 printf 请输入两个字符c1c2 scanf ccc1c2 i1 c1 赋值给整型变量 i2 c2 printf 按字符输出结果n printf ccni1i2 printf 按整数输出结果n printf ddnc1c2 return 0 3-8-3include int main char c1c2 定义为字符型 int i1i2 定义为整型 printf 请输入两个整数i1i2 scanf ddi1i2 c1 i1 将整数赋值给字符变量 c2 i2 printf 按字符输出结果n printf ccnc1c2 printf 按整数输出结果n

12、printf ddnc1c2 return 0 3-8include int main char c1c2printf 请输入两个字符c1c2 c1 getchar c2 getchar printf 用putchar语句输出结果为 putchar c1 putchar c2 printf n printf 用printf语句输出结果为 printf c cnc1c2 return 0 第4章选择结构程序设计8541选择结构和条件判断8542用if语句实现选择结构87421用if语句处理选择结构举例87422if语句的一般形式 8943关系运算符和关系表达式91431关系运算符及其优先次序91

13、432关系表达式9244逻辑运算符和逻辑表达式92441逻辑运算符及其优先次序93442逻辑表达式94443逻辑型变量9645条件运算符和条件表达式9746选择结构的嵌套9947用switch语句实现多分支选择结构10248选择结构程序综合举例105习题111include int main int abc printf 请输入三个整数 scanf dddabc if a b if b c printf dnc else printf dnb else if a c printf dnc else printf dna return 0 4-4-2include int main int ab

14、ctemp printf 请输入三个整数 scanf dddabc temp a b ab 将a和b中的大者存入temp中 temp c tempc 将a和b中的大者与c比较取最大者 printf 三个整数的最大数是dn return 0 4-5-2include include define m 1000int main int ik printf 请输入一个小于d的整数im scanf di while i m printf 输入的数不符合要求请重新输入一个小于d的整数im scanf di k sqrt i printf d的平方根的整数部分是dnik return 0 4-5inclu

15、de include define m 1000int main int ik printf 请输入一个小于d的整数im scanf di if i m printf 输入的数不符合要求请重新输入一个小于d的整数im scanf di k sqrt i printf d的平方根的整数部分是dnik return 0 4-6include int main int xy printf 输入x scanf dx if x 1 x 1 y x printf x 3d y x dn xy else if x 10 1 x 10 y 2x-1 printf x d y 2x-1 dnxy else x

16、10 y 3x-11 printf x d y 3x-11 dnxy return 0 4-7-1include int main int xy printf enter x scanf dx y -1 if x 0 if x 0 y 1 else y 0 printf x dy dnxy return 0 4-7-2include int main int xy printf please enter x scanf dx y 0 if x 0 if x 0 y 1 else y -1 printf x dy dnxy return 0 4-8include int main float s

17、core char grade printf 请输入学生成绩 scanf fscore while score 100score 0 printf n 输入有误请重输 scanf fscore switch int score10 case 10case 9 grade abreakcase 8 grade bbreakcase 7 grade cbreakcase 6 grade dbreakcase 5case 4case 3case 2case 1case 0 grade e printf 成绩是 51f相应的等级是cn scoregrade return 0 4-9include in

18、clude int main int numindivtenhundredthousandten_thousandplace 分别代表个位十位百位千位万位和位数 printf 请输入一个整数 0-99999 scanf dnum if num 9999 place 5 else if num 999 place 4 else if num 99 place 3 else if num 9 place 2 else place 1 printf 位数dnplace printf 每位数字为 ten_thousand num10000 thousand int num-ten_thousand10

19、000 1000 hundred int num-ten_thousand10000-thousand1000 100 ten int num-ten_thousand10000-thousand1000-hundred100 10 indiv int num-ten_thousand10000-thousand1000-hundred100-ten10 switch place case 5printf dddddten_thousandthousandhundredtenindiv printf n反序数字为 printf dddddnindivtenhundredthousandten_

20、thousand break case 4printf ddddthousandhundredtenindiv printf n反序数字为 printf ddddnindivtenhundredthousand break case 3printf dddhundredtenindiv printf n反序数字为 printf dddnindivtenhundred break case 2printf ddtenindiv printf n反序数字为 printf ddnindivten break case 1printf dindiv printf n反序数字为 printf dnind

21、iv break return 0 4-10-1include int main int i double bonusbon1bon2bon4bon6bon10 bon1 10000001 bon2 bon11000000075 bon4 bon2100000005 bon6 bon4100000003 bon10 bon64000000015 printf 请输入利润i scanf di if i 100000 bonus i01 else if i 200000 bonus bon1 i-100000 0075 else if i 400000 bonus bon2 i-200000 00

22、5 else if i 600000 bonus bon4 i-400000 003 else if i 1000000 bonus bon6 i-600000 0015 else bonus bon10 i-1000000 001 printf 奖金是 102fnbonus return 0 4-10-2include int main int i double bonusbon1bon2bon4bon6bon10 int branch bon1 10000001 bon2 bon11000000075 bon4 bon2200000005 bon6 bon4200000003 bon10

23、bon64000000015 printf 请输入利润i scanf di branch i100000 if branch 10 branch 10 switch branch case 0bonus i01break case 1bonus bon1 i-100000 0075break case 2 case 3 bonus bon2 i-200000 005break case 4 case 5 bonus bon4 i-400000 003break case 6 case 7 case 8 case 9 bonus bon6 i-600000 0015break case 10 b

24、onus bon10 i-1000000 001 printf 奖金是 102fnbonus return 0 4-11include int main int tabcd printf 请输入四个数 scanf ddddabcd printf a db dc dd dnabcd if a b t aa bb t if a c t aa cc t if a d t aa dd t if b c t bb cc t if b d t bb dd t if c d t cc dd t printf 排序结果如下 n printf d d d d n abcd return 0 4-12includ

25、e int main int h 10 float x1 2y1 2x2 -2y2 2x3 -2y3 -2x4 2y4 -2xyd1d2d3d4 printf 请输入一个点 xy scanf ffxy d1 x-x4 x-x4 y-y4 y-y4 求该点到各中心点距离 d2 x-x1 x-x1 y-y1 y-y1 d3 x-x2 x-x2 y-y2 y-y2 d4 x-x3 x-x3 y-y3 y-y3 if d1 1 d2 1 d3 1 d4 1 h 0 判断该点是否在塔外 printf 该点高度为 dnh return 0 第5章循环结构程序设计11451为什么需要循环控制11452用wh

26、ile语句实现循环11553用dowhile语句实现循环11754用for 语句实现循环12055循环的嵌套12456几种循环的比较12557改变循环执行的状态125571用break语句提前终止循环126572用continue语句提前结束本次循环127573break语句和continue语句的区别12858循环程序举例131习题140include include 程序中用到数学函数fabs应包含头文件mathnint main int sign 1count 0 sign用来表示数值的符号count用来统计循环次数 double pi 00n 10term 10 pi开始代表多项式的值

27、最后代表的值 n代表分母term代表当前项的值 while fabs term 1e-8 检查当前项term的绝对值是否大于或等于10的 -6 次方 pi piterm 把当前项term累加到pi中 n n2 n2是下一项的分母 sign -sign sign代表符号下一项的符号与上一项符号相反 term signn 求出下一项的值term count count累加1 pi pi4 多项式的和pi乘以4才是的近似值 printf pi 108fnpi 输出的近似值 printf count dncount 输出循环次数 return 0 5-3include int main int prn

28、mtemp printf 请输入两个正整数nm scanf ddnm if n m temp n n m m temp p nm while m 0 r nm n m m r printf 它们的最大公约数为dnn printf 它们的最小公约数为dnpn return 0 5-4include int main char c int letters 0space 0digit 0other 0 printf 请输入一行字符n while c getchar n if c a c z c a c z letters else if c space else if c 0 c 9 digit e

29、lse other printf 字母数dn空格数dn数字数dn其它字符数dnlettersspacedigitother return 0 5-5include int main int ani 1sn 0tn 0 printf an scanf ddan while i n tn tna 赋值后的tn为i个 a组成数的值 sn sntn 赋值后的sn为多项式前i项之和 a a10 i printf aaaaaa dnsn return 0 5-6include int main double s 0t 1 int n for n 1n 20n t tn s st printf 1220 2

30、215ens return 0 5-7include int main int n1 100n2 50n3 10 double ks1 0s2 0s3 0 for k 1k n1k 计算1到100的和 s1 s1k for k 1k n2k 计算1到50各数的平方和 s2 s2kk for k 1k n3k 计算1到10的各倒数和 s3 s31k printf sum 156fns1s2s3 return 0 5-8include int main int ijkn printf parcissus numbers are for n 100n 1000n i n100 j n10-i10 k

31、 n10 if n iii jjj kkk printf d n printf n return 0 5-9-1define m 1000 定义寻找范围include int main int k1k2k3k4k5k6k7k8k9k10 int ians for a 2a ma a是2-1000之间的整数检查它是否完数 n 0 n用来累计a的因子的个数 s a s用来存放尚未求出的因子之和开始时等于a for i 1i ai 检查i是否a的因子 if ai 0 如果i是a的因子 n n加1表示新找到一个因子 s s-i s减去已找到的因子s的新值是尚未求出的因子之和 switch n 将找到的

32、因子赋给k1k9或k10 case 1 k1 i break 找出的笫1个因子赋给k1 case 2 k2 i break 找出的笫2个因子赋给k2 case 3 k3 i break 找出的笫3个因子赋给k3 case 4 k4 i break 找出的笫4个因子赋给k4 case 5 k5 i break 找出的笫5个因子赋给k5 case 6 k6 i break 找出的笫6个因子赋给k6 case 7 k7 i break 找出的笫7个因子赋给k7 case 8 k8 i break 找出的笫8个因子赋给k8 case 9 k9 i break 找出的笫9个因子赋给k9 case 10

33、k10 i break 找出的笫10个因子赋给k10 if s 0 printf d its factors are a if n 1 printf ddk1k2 n 1表示a至少有2个因子 if n 2 printf dk3 n 2表示至少有3个因子故应再输出一个因子 if n 3 printf dk4 n 3表示至少有4个因子故应再输出一个因子 if n 4 printf dk5 以下类似 if n 5 printf dk6 if n 6 printf dk7 if n 7 printf dk8 if n 8 printf dk9 if n 9 printf dk10 printf n r

34、eturn 0 5-9-2include int main int msi for m 2m 1000m s 0 for i 1i mi if mi 0 s si if s m printf dits factors are m for i 1i mi if mi 0 printf d i printf n return 0 5-10include int main int in 20 double a 2b 1s 0t for i 1i ni s sab t a a ab b t printf sum 1610fns return 0 5-11include int main double

35、sn 100hn sn2 int n for n 2n 10n sn sn2hn 第n次落地时共经过的米数 hn hn2 第n次反跳高度 printf 第10次落地时共经过f米nsn printf 第10次反弹f米nhn return 0 5-12include int main int dayx1x2 day 9 x2 1 while day 0 x1 x21 2 第1天的桃子数是第2天桃子数加1后的2倍 x2 x1 day- printf total dnx1 return 0 5-13include include int main float ax0x1 printf enter a

36、positive number scanf fa x0 a2 x1 x0ax0 2 do x0 x1 x1 x0ax0 2 while fabs x0-x1 1e-5 printf the square root of 52f is 85fnax1 return 0 5-14include include int main double x1x0ff1 x1 15 do x0 x1 f 2x0-4 x03 x0-6 f1 6x0-8 x03 x1 x0-ff1 while fabs x1-x0 1e-5 printf the root of equation is 52fnx1 return

37、0 5-15include include int main float x0x1x2fx0fx1fx2 do printf enter x1 x2 scanf ffx1x2 fx1 x1 2x1-4 x13 -6 fx2 x2 2x2-4 x23 -6 while fx1fx2 0 do x0 x1x2 2 fx0 x0 2x0-4 x03 -6 if fx0fx1 0 x2 x0 fx2 fx0 else x1 x0 fx1 fx0 while fabs fx0 1e-5 printf x 62fnx0 return 0 5-16include int main int ijk for i

38、 0i 3i for j 0j 2-ij printf for k 0k 2ik printf printf n for i 0i 2i for j 0j ij printf for k 0k 4-2ik printf printf n return 0 5-17include int main char ijk 是a的对手j是b的对手k是c的对手 for i xi zi for j xj zj if i j for k xk zk if i k j k if i x k x k z printf a-cnb-cnc-cnijk return 0 第6章利用数组处理批量数据14261怎样定义和

39、引用一维数组142611怎样定义一维数组143612怎样引用一维数组元素144613一维数组的初始化145614一维数组程序举例14662怎样定义和引用二维数组148621怎样定义二维数组149622怎样引用二维数组的元素150623二维数组的初始化151624二维数组程序举例15263字符数组154631怎样定义字符数组154632字符数组的初始化155633怎样引用字符数组中的元素155634字符串和字符串结束标志156635字符数组的输入输出159636使用字符串处理函数161637字符数组应用举例165习题168include include int main int ijna101 for i 1i 100i ai i a1 0 for i 2i sqrt 100 i for j i1j 100j if ai 0 aj 0 if ajai 0 aj 0 printf n for i 2n 0i 100i if ai 0 printf 5dai n if n 10 printf n n 0 printf n return 0 6-2include int main int ijmintempa11 printf enter datan for i 1i 10i printf ad i scanf dai printf n print

温馨提示

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

评论

0/150

提交评论