云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > C程序设计第三版习题参考解答(全)[1]

C程序设计第三版习题参考解答(全)[1]

  • 62 次阅读
  • 3 次下载
  • 2025/5/1 23:25:46

printf(\成绩是%5.1f,相应的等级是%c。\\n\}

5.7给定一个不多于5位的正整数,要求:①求它是几位数;②分别打印出每一位数字;③按逆序打印出各位数字。例如原数为321,应输出123。 解: main ( ) {

long int num;

int indiv,ten,hundred,thousand,ten_thousand,place;

/*分别代表个位,十位,百位,千位,万位和位数*/

printf(“请输入一个整数(0~99999):”); scanf(“%ld”,&num); 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(“place=%d\\n”,place); printf(“每位数字为:”);

ten_thousand=num/10000;

thousand=(int)(num-ten_thousand*10000)/1000;

hundred=(int)(num-ten_thousand*10000-thousand*1000)/100;

ten=(int)(num-ten_thousand*10000-thousand*1000-hundred*100)/10; indiv=(int)(num-ten_thousand*10000-thousand*1000-hundred*100-ten*10); switch(place)

{case 5:printf(“%d,%d,%d,%d,%d”,ten_thousand,thousand,hundred,ten,indiv);

printf(“\\n反序数字为:”);

printf(“%d%d%d%d%d\\n”,indiv,ten,hundred,thousand,ten_thousand); break;

case 4:printf(“%d,%d,%d,%d”,thousand,hundred,ten,indiv); printf(“\\n反序数字为:”);

printf(“%d%d%d%d \\n”,indiv,ten,hundred,thousand); break;

case 3:printf(“%d,%d,%d”,hundred,ten,indiv); printf(“\\n反序数字为:”);

printf(“%d%d%d \\n”,indiv,ten,hundred); break;

case 2:printf(“%d,%d”, ten,indiv); printf(“\\n反序数字为:”); printf(“%d%d \\n”,indiv,ten); break;

case 1:printf(“%d”, indiv); printf(“\\n反序数字为:”);

printf(“%d\\n”,indiv); break;

} }

运行结果:

请输入一个整数(0~99999):98765↙ 位数=5

每位数字为:9,8,7,6,5 反序数字为:56789

5.8企业发放的奖金根据利润提成。利润I低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元(1000001000000时,超过100万的部分按1%提成。从键盘输入当月利润I,求应发放奖金总数。

要求:(1)用if语句编程序;(2)用switch语句编程序。

解:计算利润时,要特别注意不同利润的不同提成比例。例如,利润为15万元,其中由10万元按10%的比例提成,另外5万元则按7.5%提成。 (1) 用if语句编程序, main ( ) { long i;

float bonus,bon1,bon2,bon4,bon6,bon10;

bon1=100000*0.1; /*利润为10万元时的奖金*/ bon2=bon1+100000*0.075 /*利润为20万元时的奖金*/ bon4=bon2+100000*0.05 /*利润为40万元时的奖金*/ bon6=bon4+100000*0.03 /*利润为60万元时的奖金*/ bon10=bon6+400000*0.015; /*利润为100万元时的奖金*/ printf(“请输入利润i:”);

scanf(“%ld”,&i); if (i<=100000)

bonus=i*0.1; /*利润在10万元以内按0.1提成奖金*/

else if (i<=200000)

bonus=bon1+(i-100000)*0.075 /*利润在10万至20万元时的奖金*/ else if (i<=400000)

bonus=bon2+(i-200000)*0.05 /*利润在20万至40万元时的奖金*/ else if (i<=600000)

bonus=bon4+(i-400000)*0.03 /*利润在40万元至60万元时的奖金*/ else if (i<=1000000)

bonus=bon6+(i-600000)*0.015 /*利润在60万元至100万元时的奖金*/ else bonus=bon10+(i-1000000)*0.01 /*利润在100万元以上时的奖金*/ printf(“奖金是 .2f”,bonus); }

运行结果:

请输入利润i:234000↙

奖金是:19200.00

(2) 用switch语句编程序, main ( ) { long i;

float bonus,bon1,bon2,bon4,bon6,bon10; int c;

bon1=100000*0.1

bon2=bon1+100000*0.075 bon4=bon2+200000*0.05 bon6=bon4+200000*0.03 bon10=bon6+400000*0.015

printf(“请输入利润i:”); scanf(“%d”,&i);

c=i/100000;

if (c>10) then c=10; switch (c)

{ case 0: bonus=i*0.1; break;

case 1: bonus=bon1+(i-100000)*0.075; break; case 2:

case 3: bonus=bon2+(i-200000)*0.05; break; case 4:

case 5: bonus=bon4+(i-400000)*0.03; break; case 6:

case 7: case 8:

case 9: bonus=bon6+(i-600000)*0.015; break; case 10: bonus=bon10+(i-1000000)*0.01; }

printf(“奖金是.2f”,bonus); }

运行结果:

请输入利润i:234000↙ 奖金是:19200.00

5.9输入4个整数,要求按由小到大的顺序输出。 解:程序如下 #include \void main() {

int t,a,b,c,d;

printf(\请输入4个整数:\ scanf(\ printf(\ if(a>b)

{t=a;a=b;b=t;} if(a>c)

{t=a;a=c;c=t;} if(a>d)

{t=a;a=d;d=t;} if(b>c)

{t=b;b=c;c=t;} if(b>d)

{t=b;b=d;d=t;} if(c>d)

{t=c;c=d;d=t;}

printf(\排序结果如下:\\n\

printf(\ %d %d %d\\n\}

5.10有4个圆塔,圆心分别为(2,2),(-2,2),(2,-2),(-2,-2),圆半径为1。见图4.4。这4个塔的高度分别为10m。塔以外无建筑物。今输入任一点的坐标,求该点的建筑高度(塔外的高度为0)。 解:程序如下 main ( ) { int h=10;

float x1=2,y1=2,x2=-2,y2=2,x3=-2,y3=-2,x4=2,y4=-2,x,y,d1,d2,d3,d4; printf(“请输入一个点(x,y):”);

scanf(“%f,%f”,&x,&y); /*求该点到各中心点的距离*/

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

printf(\成绩是%5.1f,相应的等级是%c。\\n\} 5.7给定一个不多于5位的正整数,要求:①求它是几位数;②分别打印出每一位数字;③按逆序打印出各位数字。例如原数为321,应输出123。 解: main ( ) { long int num; int indiv,ten,hundred,thousand,ten_thousand,place; /*分别代表个位,十位,百位,千位,万位和位数*/ printf(“请输入一个整数(0~99999):”); scanf(“%ld”,&num); if (num>9999) place=5; else if (num>999) place=4; else if (num>99) place=

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com