阅读以下C代码,回答问题1至问题3,将解答填入答题纸的对应栏内。 【C代码1】 float adjustSalary(int service year,int age,float salary){ if(service_year<=5){

admin2020-04-30  31

问题 阅读以下C代码,回答问题1至问题3,将解答填入答题纸的对应栏内。
【C代码1】
    float adjustSalary(int service year,int age,float salary){
    if(service_year<=5){
    if(age>30)
    salary*=1.2;
    }
    else
    salary*=2.0;
    return salary;
    }
【问题1】
对于【C代码1】,写出下面的函数调用后x1、x2和x3的值。
    x1=adjustSalary(1,25,9000.0);
    x2=adjUStSalary(8,32,7000.0);
    x3=adjustSalary(5,41,5000.0);

选项

答案[*]

解析 本题考查C程序流程控制及其应用。
【问题1】
    本问题考查描述两分支流程控制的if语句的应用。代码1中的if语句中嵌套了不含else分支的if语句,其含义如下面的流程图所示,表示服务年限不足5年而年龄大于30岁的职员,其工资增长20%;服务年限大于5年者,其工资翻倍。

    函数首部为float adjustSalary(int service_year,int age,float salary),第一个参数service year表示服务年限,第二个参数age表示年龄,第二个参数salary表示当前工资。
    对于函数调用“x1=adjustSalary(1,25,9000.0)”,第一个实参的值为1,即服务年限为1,“service year<=5”成立,第二个实参的值为25,“age>30”不成立,因此salary不变,x1得到的值为9000.0。
    对于函数调用“x2=adjustSalary(8,32,7000.0)”,第一个实参的值为8,即服务年限为8,“service year<=5”不成立,因此salary增加1倍,x2得到的值为14000.0。
    对于函数调用“x3=adjustSalary(5,41,5000.0)”,第一个实参的值为5,即服务年限为5,“service year<=5”成立,第二个实参的值为41,“age>30”成立,因此salary增加20%,x3得到的值为6000.0。
转载请注明原文地址:https://jikaoti.com/ti/N8W7FFFM
0

最新回复(0)