您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > C语言程序设计(第2版)--课后题答案
《C语言程序设计能力教程(第二版)》课后作业及实训题参考答案第1章进入C语言程序世界二、1.IloveChina!printf(wearestudents.\n)2.6项目实训题参考答案1.编写一个C程序,输出以下信息:********************Iamastudent!********************main(){printf(********************\n);printf(Iamastudent!\n);printf(********************\n);}2.已知立方体的长、宽、高分别是10cm、20cm、15cm,编写程序,求立方体体积。解:main(){inta,b,c,v;a=10;b=20;c=15;v=a*b*c;printf(v=%d,v);}本程序运行结果为:v=3000第2章编制C程序的基础知识一选择题CBABACC二操作题221.3,2,-8,23.000000,2.500000,-8.0000002.ABCDEFGHwhyis21+35equal523.314323124.aabbccabcAN项目实训题1.定义一个符号常量M为5和一个变量n值为2,把它们的乘积输出。#defineM5main(){intn,c;n=2;c=M*n;printf(%d\n,c);}2.编程求下面算术表达式的值。(1)x+a%3*(int)(x+y)%2/4,设x=2.5,a=7,y=4.7;(2)(float)(a+b)/2+(int)x%(int)y,设a=2,b=3,x=3.5,y=2.5。(1)main(){inta=7;floatx=2.5,y=4.7;printf(%f\n,x+a%3*(int)(x+y)%2/4);}(2)main(){inta=2,b=3;floatx=3.5,y=2.5;printf(%f\n,(float)(a+b)/2+(int)x%(int)y);}第三章顺序结构程序设计一选择题ACDCC二操作题1.x=3,a=2,b=32.z=12.700000333.121a212三.编程题编程题1.某工种按小时计算工资,每月劳动时间(小时)×每小时工资=总工资,总工资中扣除10%公积金,剩余的为应发工资。编写一个程序从键盘输入劳动时间和每小时工资,打印出应发工资。解:#includestdio.hmain(){floatsj,gz,yfgz;printf(time,salary:);scanf(%f,%f,&sj,&gz);yfgz=sj*gz*0.9;printf(totalsalary:%f\n,yfgz);}本程序运行结果为:time,salary:4,3CRtotalsalary:10.8000002.编写一个程序求出任意一个输入字符的ASCII码解:#includestdio.hmain(){charc;printf(Inputastring:);scanf(%c,&c);printf(%cASCIIis%d\n,c,c);}本程序运行结果为:Inputastring:aCRaASCIIis973、编写一个程序用于水果店售货员算帐:已知苹果每斤2.50元,鸭梨每斤1.80元,香蕉每斤2元,橘子每斤1.6元,要求输入各类水果的重量,打印出应付44钱数,再输入顾客付款数,打印出应找的钱数。解:main(){floatp,y,x,j,ys,g,fk;printf(apple,pear,banana,orange(weight)=);scanf(%f,%f,%f,%f,&p,&y,&x,&j);ys=2.5*p+1.8*y+2*x+1.6*j;printf(fukuan=);scanf(%f,&g);fk=g-ys;printf(result:\n);printf(fukuan=%6.2fyuan\nshoukuan=%6.2fyuan\nzhaohui=%6.2fyuan\n,g,ys,fk);}本程序运行结果为:apple,pear,banana,orange(weight)=1,2,3,4fukuan=100result:fukuan=100.00yuanshoukuan=18.50yuanzhaohui=81.50yuan项目实训1.假设银行定期存款的年利率rate为2.25%,并已知存款期为n年,存款本金为capital元,试编程计算n年后可得到本利之和deposit。#includemath.hmain(){intn;floatrate=0.0225,capital,deposit;scanf(%d,%f,&n,&capital);deposit=capital*pow(1+rate,n);printf(deposit=%f\n,deposit);}2.将一个三位数整数,正确分离出它的个位、十位和百位数字,并分别在屏幕上输出。main(){intn,a,b,c;scanf(%3d,&n);a=n/100;55b=n%100/10;c=n%100%10/1;printf(a=%d,b=%d,c=%d\n,a,b,c);}第四章选择结构程序设计一、略二、BBABCBA三、1.102.23223.102004.ch=’A’&&ch=’Z’||ch=’a’&&ch=’z’ch=’0’&&ch=’9’ch==’’5.-1四、上机操作1.从键盘输入一个英文字母,如果是大写字母,则将它变为小写字母输出;如果是小写字母,则将其变为大写字母输出。#includestdio.hmain(){charch;ch=getchar();if(ch='A'&&ch='Z')ch+=32;elseif(ch='a'&&ch='z')ch-=32;putchar(ch);putchar('\n');}2.根据输入的x值依据下列表达式,计算y的值。2x(x-1)y=3(x=-1)4+x(x-1)解:main(){floatx,y;scanf(%f,&x);66if(x-1)y=2*x;elseif(x==1)y=3;elsey=4+x;printf(y=%f,y);}本程序运行结果为:-2CRy=2.0000003.编写程序,输入一个整数,判断它是奇数还是偶数,若是奇数,输出“IsOdd“;若是偶数,输出“IsEven“。main(){intx;scanf(%d,&x);if(x%2==0)printf(IsEven\n);elseprintf(IsOdd\n);}4.设计应用程序,求二次方程ax2+bx+c=0的解。#includemath.hmain(){floata,b,c,disc,x1,x2,p,q;scanf(%f,%f,%f,&a,&b,&c);if(fabs(a)=1e-6)printf(Theequationisnotaquadratic\n);else{disc=b*b-4*a*c;if(fabs(disc)1e-6)printf(x1=x2=%8.4f\n,-b/(2*a));elseif(disc1e-6){x1=(-b+sqrt(disc)/(2*a));x2=(-b-sqrt(disc)/(2*a));printf(x1=%8.4f,x2=%8.4f\n,x1,x2);}else{p=-b/(2*a);q=sqrt(-disc/(2*a));printf(%8.4f+%x8.4fi\n,p,q);printf(%8.4f-%8.4fi\n,p,q);}}}5.按托运规则,行李不超过50公斤时,运费为0.15元/公斤,如超过50公斤,超过部分的运费为0.22元/公斤,现有行李w公斤,编写一个程序计算运费。77解:#includestdio.hmain(){floatw,f,x;printf(weight:);scanf(%f,&w);if(w=50)x=0.15*w;elsex=0.15*50+0.22*(w-50);printf(money:%6.2fyuan\n,x);}本程序运行结果为:weight:20CRmoney:3.00yuanweight:60CRmoney:9.70yuan6.某商场给与顾客购物的折扣率如下:购物金额200元不打折500元购物金额=200元9折1000元购物金额=500元8折购物金额=1000元7.5折输入一个购物金额,输出打折率、购物实际付款金额。#includestdio.hmain(){floatx,y,realx;scanf(%f,&x);if(x=0){printf(Error!Youinputaworrynumber!\n);y=0;}else{if(x200)y=1.0;elseif(x500)y=0.9;elseif(x1000)y=0.8;elsey=0.75;}if(y!=0){realx=x*y;printf(y=%f,therealx=%5.2f\n,y,realx);}}88项目实训某托儿所收2岁到6岁的孩子,2岁、3岁孩子进小班(Lowerclass);4岁孩子进中班(Middleclass);5岁、6岁孩子进大班(Higherclass)。编写程序(用if语句和switch语句),输入孩子年龄,输出年龄及进入的班号。如:输入:3,输出:age:3,enterLowerclass。#includestdio.hmain(){intage;printf(Pleaseinputyourbaby'sage:);scanf(%d,&age);if(age6||age2)printf(Sorry,yourbabycan'tenter!);elseswitch(age);{case2:case3:printf(age:%d,enterLowerclass\n,age);break;case4:printf(age:%d,enterMiddleclass\n,age);break;case5:case6:printf(age:%d,enterHigherclass,age);break;}}第五章循环结构程序设计一、选择题CCAADD三、操作题1.求s=1+3+5+7+…100的值。#includestdio.hmain(){inti,sum=0;for(i=1;i=100;i+=2)sum=sum+i;printf(sum=%d,sum);}2.输入班级学生考试成绩,求考试平均成绩。约定当输入负数时,表示输入结束。main(){floatsum=0,score,ave;intn=0;scanf(%f,&score);while(score0){n++;99sum=sum+score;scanf(%f,&score);}ave=sum/n;printf(\nTheaveragescoreis%.2f,ave);}3.输入一行字符以@作结束标志,分别统计其中英文字母、空格、数字和其它字符的个数。#includestdio.hmain(){charch;intcha=0,space=0,digit=0,other=0;while((ch=getchar())!='@'){if(ch='a'&&ch='z'||ch='A'&&ch='Z')cha++;elseif(ch=='')space++;elseif(ch='0'&&ch='9')digit++;elseother++;}printf(\ncha=%d,space=%d,digit=%d,other=%d,cha,space,digit,other);}4.一张纸的厚度为0.1毫米,珠穆琅玛峰的高度为8848.13米,假如纸张有足够大,将纸对折多少次后可以超过珠峰的高度?main(){floath=8848.13,h0=0.0001,h1;intm=0;h1=h0;while(h0=h){
本文标题:C语言程序设计(第2版)--课后题答案
链接地址:https://www.777doc.com/doc-2908105 .html