企业根据利润提成发放奖金。利润低于或等于10万元时,奖金可提10%;利润高于10

admin2022-08-02  58

问题 企业根据利润提成发放奖金。利润低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成15%;利润在20万到40万之间时,高于20万元的部分,可提成20%;40万到60万之间时高于40万元的部分,可提成25%;60万到100万之间时,高于60万元的部分,可提成30%;高于100万元时,高于100万元的部分可提成35%o已知企业本年度12个月的月利润存储在数组profit中,程序要求根据月利润计算月奖金并存储到数组bonus中,然后计算并返回该企业的年度总利润total_profito该程序的实现如下:【程序】int calculate_bonus(const int profit[ ], int bonus[ ]){int n=12;int i=0;int sum_profit=0;int bonus1,bonus2,bonus4,bonus6,bonuslO;bonus1=100000*0.1;bonus2=bonus1+100000*0.15;bonus4=bonus2+200000*0.2;bonus6=bonus4+200000*0.25; bonusl0=bonus6+400000*0.3;for (i=0;iimage.pngn; i++){if (profitimage.png=100000)(1);else if(profitimage.png=200000)(2);else if(profitimage.png=400000)(3);else if(profitimage.png=600000)(4);else if(profitimage.png=1000000)(5) ;else(6) ;}/*以下代码计算年度总利润*/i=0;while(iimage.pngn)sum_profit += profit[++i];return sum_profit;}问题:1 在程序中,使用关键字const修饰输入参数profit,请将这样修饰的作用写到(1)处。如果程序中bonus数组也使用const修饰,是否正确,并给出解释,请将答案写到(2)处。问题:2 分析程序中的计算年度总利润的代码,指出错误的一行代码,将错误代码写到(1)处;然后用一条语句实现正确代码,将正确代码写到(2)处。问题:3 根据题意分析程序,完成程序中的(1)~(6),每个空行只能写一行代码,即用一条语句来描述。

选项

答案

解析 问题1:(1)限定变量,不允许被修改(2)不正确,因为该数组需要被修改。

问题2:(1)sum_profit += profit[++i];(2)sum_profit += profit[i++];

问题3:

(1)bonus=profit*0.1

(2)bonus=bonus1+(profit-100000)*0.15

(3)bonus=bonus2+(profit-200000)*0.20

(4)bonus=bonus4+(profit-400000)*0.25

(5)bonus=bonus6+(profit-600000)*0.30

(6)bonus=bonus10+(profit-1000000)*0.35


问题1:const修饰的数据类型是常类型,只能读不能写。

问题2:根据题意,1月到12月的利润分别保存在profit[0]到profit[11]之中,所以年度总利润应该是这12个元素相加,下标从0到11,题中的sum_profit += profit[++i]是从1加到12,因为是先i++再计算。

问题3:根据题意,企业员工在1月到12月创造的利润分别保存在profit[0]到profit[11]中,作为计算每个月奖金的输入,用const修饰,在函数执行期间不能改变。而根据利润计算出的每个月的奖金则作为输出数组保存在bonus[0]到bonus[11]中。根据题目计算方法,前半部分为计算1到12月的奖金,并且是分段计算,逻辑十分简单。
转载请注明原文地址:https://tihaiku.com/congyezige/2424488.html

最新回复(0)