免费智能真题库 > 历年试卷 > 程序员 > 2018年上半年 程序员 下午试卷 案例
  第3题      

 
(共15分)
【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;
}

【C代码2】

void foo(int coin) {
     switch (coin) {
           case 1:   printf("Cent\n");
           case 5:   printf("Nicke1\n");break;
           case 10:  printf("Dime\n");
           case 25:  printf("Quarter\n");
     }
}

【C代码3】

int getSum(int n)
{
          int t, i = 0, sum = 0;
          while ( i < n ) {
                scanf("%d", &t);
                 if( t<0 )
                     continue;
                 sum += t;
                 i++;
          }
          return sum;
}
 
 
问题:3.1   对于【C代码1】,写出下面的函数调用后x1、x2和x3的值。
x1=adjustSalary(1,25,9000.0);
x2=adjustSalary(8,32,7000.0);
x3=adjustSalary(5,41,5000.0);
 
问题:3.2   (6分)
(1)写出函数调用为foo(1)的输出结果;
(2)写出函数调用为foo(5)的输出结果;
(3)写出函数调用为foo(10)的输出结果;
(4)写出函数调用为foo(25)的输出结果。
 
问题:3.3   (6分)
(1)简要说明【C代码3】中的函数getSum()的功能;
(2)程序员小王将函数getSum改写后得到下面的函数getSum_v2(即用for语句来描述循环)。请问,getSum_v2的功能是否与【C代码3】的getSum完全相同,若不同,请说明原因。
 
 
 

   题号导航      2018年上半年 程序员 下午试卷 案例   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
 
第3题    在手机中做本题