课后题答案-C语言程序设计(第2版).doc
《课后题答案-C语言程序设计(第2版).doc》由会员分享,可在线阅读,更多相关《课后题答案-C语言程序设计(第2版).doc(31页珍藏版)》请在冰豆网上搜索。
31
《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
二操作题
1.3,2,-8,2
3.000000,2.500000,-8.000000
2.ABCDE
FGH
whyis21+35equal52
3.
3 1
4 3
2 3
1 2
4.aa bb cc abc
A N
项目实训题
1.定义一个符号常量M为5和一个变量n值为2,把它们的乘积输出。
#defineM5
main()
{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=3
2.z=12.700000
3.121
a
212
三.编程题
编程题
1.某工种按小时计算工资,每月劳动时间(小时)×每小时工资=总工资,总工资中扣除10%公积金,剩余的为应发工资。
编写一个程序从键盘输入劳动时间和每小时工资,打印出应发工资。
解:
#include
main()
{
floatsj,gz,yfgz;
printf("time,salary:
");
scanf("%f,%f",&sj,&gz);
yfgz=sj*gz*0.9;
printf("totalsalary:
%f\n",yfgz);
}
本程序运行结果为:
time,salary:
4,3
totalsalary:
10.800000
2.编写一个程序求出任意一个输入字符的ASCII码
解:
#include
main()
{
charc;
printf("Inputastring:
");
scanf("%c",&c);
printf("%cASCIIis%d\n",c,c);
}
本程序运行结果为:
Inputastring:
a
aASCIIis97
3、编写一个程序用于水果店售货员算帐:
已知苹果每斤2.50元,鸭梨每斤1.80元,香蕉每斤2元,橘子每斤1.6元,要求输入各类水果的重量,打印出应付钱数,再输入顾客付款数,打印出应找的钱数。
解:
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,4
fukuan=100
result:
fukuan=100.00yuan
shoukuan=18.50yuan
zhaohui=81.50yuan
项目实训
1.假设银行定期存款的年利率rate为2.25%,并已知存款期为n年,存款本金为capital元,试编程计算n年后可得到本利之和deposit。
#include
main()
{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;
b=n%100/10;
c=n%100%10/1;
printf("a=%d,b=%d,c=%d\n",a,b,c);}
第四章选择结构程序设计
一、略
二、BBABCBA
三、1.10
2.2322
3.10200
4.ch>=’A’&&ch<=’Z’||ch>=’a’&&ch<=’z’
ch>=’0’&&ch<=’9’
ch==’’
5.-1
四、上机操作
1.从键盘输入一个英文字母,如果是大写字母,则将它变为小写字母输出;如果是小写字母,则将其变为大写字母输出。
#include
main()
{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);
if(x>-1)
y=2*x;
elseif(x==1)
y=3;
elsey=4+x;
printf("y=%f",y);
}
本程序运行结果为:
-2
y=2.000000
3.编写程序,输入一个整数,判断它是奇数还是偶数,若是奇数,输出“IsOdd“;若是偶数,输出“IsEven“。
main()
{intx;
scanf("%d",&x);
if(x%2==0)printf("IsEven\n");
elseprintf("IsOdd\n");}
4.设计应用程序,求二次方程ax2+bx+c=0的解。
#include
main()
{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(disc>1e-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公斤,编写一个程序计算运费。
解:
#include
main()
{
floatw,f,x;
printf("weight:
");
scanf("%f",&w);
if(w<=50)
x=0.15*w;
else
x=0.15*50+0.22*(w-50);
printf("money:
%6.2fyuan\n",x);
}
本程序运行结果为:
weight:
20
money:
3.00yuan
weight:
60
money:
9.70yuan
6.某商场给与顾客购物的折扣率如下:
购物金额<200元不打折
500元>购物金额>=200元9折
1000元>购物金额>=500元8折
购物金额>=1000元7.5折
输入一个购物金额,输出打折率、购物实际付款金额。
#include
main()
{floatx,y,realx;
scanf("%f",&x);
if(x<=0){printf("Error!
Youinputaworrynumber!
\n");y=0;}
else
{if(x<200)y=1.0;
elseif(x<500)y=0.9;
elseif(x<1000)