题目详情

阅读以下C代码,回答问题1至问题3,将解答填入答题纸的对应栏内。

初级程序员,章节练习,基础复习,案例分析

初级程序员,章节练习,基础复习,案例分析

初级程序员,章节练习,基础复习,案例分析

1.【问题1】

对于【C代码1】,写出下面的函数调用后x1、x2和x3的值。

(1)x1=adjustSalary(1,25,9000.0);

(2)x2=adjustSalary(8,32,7000.0);

(3)x3=adjustSalary(5,41,5000.0)。

2.【问题2】

(1)写出函数调用为foo(1)的输出结果;

(2)写出函数调用为foo(5)的输出结果;

(3)写出函数调用为foo(10)的输出结果;

(4)写出函数调用为foo(25)的输出结果。

3.【问题3】

(1)简要说明【C代码3】中的函数getSum的功能;

(2)程序员小王将函数getSum改写后得到下面的函数getSum_v2(即用for语句来描述循环)。请问,getSum_v2的功能是否与【C代码3】的getSum完全相同,若不同,请说明原因。

正确答案及解析

正确答案
解析

【问题1】(1)x1=9000.000000

(2)x2=14000.000000

(3)x3=6000.000000

解析:(1)对于x1,service_year=1,age=25,salary=9000.0,首先判断service_year<=5,因此再判断age<30,不进行任何运算,salary仍为9000.0,由于salary为float类型数据,因此输出为9000.000000。

(2)对于x2,service_year=8,age=32,salary=7000.0,首先判断service_year>5,因此直接进行else中的运算,salary=7000.0×2.0=14000.0,由于salary为float类型数据,因此输出为14000.000000。

(3)对于x3,service_year=5,age=41,salary=5000.0,首先判断service_year<=5,因此再判断age>30,进行运算salary=5000.0×1.2=6000.0,由于salary为float类型数据,因此输出为6000.000000。

【问题2】(1)foo(1):输出为两行,第一行是Cent,第二行是Nickel。

(2)foo(5):Nickel。

(3)foo(10):输出为两行,第一行是Dime,第二行是Quarter。

(4)foo(25):Quarter。

解析:(1)foo(1):coin=1,执行printf("Cent\n"),输出Cent并回车,继续执行printf("Nickel\n"),输出Nickel并回车,再执行break,结束foo函数。

(2)foo(5):coin=5,执行printf("Nickel\n"),输出Nickel并回车,再执行break,结束foo函数。

(3)foo(10):coin=10,执行printf("Dime\n"),输出Dime并回车,继续执行printf("Quarter\n"),输出Quarter并回车,结束foo函数。

(4)foo(25):coin=25,执行printf("Quarter\n"),输出Quarter并回车,结束foo函数。

【问题3】(1)函数getSum是求n个不小于0的整数之和。

(2)函数getSum_v2的功能与函数getSum不同,getSum是求n个不小于0的整数之和,计算和的数目总数是n个,而getSum_v2是总共输入了n个数,这n个数中有大于等于0,也有小于0的数,最终只把大于等于0的数进行求和,因此最终计算的和的个数有可能是小于n的,即二者的计算结果可能不同。

解析:(1)函数getSum是求n个不小于0的整数之和。

(2)函数getSum_v2的功能与函数getSum不同,原因:在getSum中,当t<0时,继续运行scanf函数获得t,而不会运行i++运算,i的值不会改变,最终会获得n个不小于0的整数并求和;而在getSum_v2中,当t<0时,首先进行i++,再继续scanf函数,因此当输入的数出现负值时,会导致最终运算的值可能少于n个。

你可能感兴趣的试题

单选题

一台主机的IP地址为202.123.25.36,掩码为255.255.254.0。如果该主机需要在该网络进行直接广播,那么它应该使用的目的地址为( )

  • A.202.123.25.0
  • B.202.123.25.255
  • C.202.123.24.0
  • D.202.123.24.255
查看答案
单选题

在计算机系统的日常维护工作中,应当注意硬盘工作时不能__(2)__。另外,需要防范病毒,而__(3)__是不会被病毒感觉的。

  • A.电子邮件
  • B.硬盘
  • C.U盘
  • D.ROM
查看答案
单选题

有 4 个 IP 地址:201.117.15.254、201.117.17.01、201.117.24.5 和 201.117.29.3,如果子网掩码为 255.255.248.0,则这 4 个地址分别属于3个子网;其中属于同一个子网的是()

  • A.201.117.15.254 和 201.117.17.01
  • B.201.117.17.01 和 201.117.24.5
  • C.201.117.15.254 和 201.117.29.3
  • D.201.117.24.5 和 201.117.29.3
查看答案
单选题

在异步通信中,每个字符包含1位起始位、7位数据位、1位奇偶位和1位终止位,每秒钟传送200个字符,采用4相位调制,则码元速率为()。

  • A.50波特
  • B.500波特
  • C.550波特
  • D.1000波特
查看答案
单选题

在 Windows 中,运行( )命令得到下图所示结果。以下关于该结果的叙述中,错误的是( )。

Pinging 59.74.111.8 with 32 bytes of data:

Reply from 59.74.111.8: bytes=32 time=3ms TTL=60

Reply from 59.74.111.8: bytes=32 time=5ms TTL=60

Reply from 59.74.111.8: bytes=32 time=3ms TTL=60

Reply from 59.74.111.8: bytes=32 time=5ms TTL=60

Ping statistics for 59.74.111.8:

Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds:

Minimum = 3ms, Maximum = 5ms, Average = 4ms

  • A.该命令使得本地主机向目标主机发送了 4 个数据包
  • B.本地主机成功收到了目标主机返回的 4 个数据包
  • C.本地主机与目标主机连接正常
  • D.该命令用于查看目标主机的 IP 地址
查看答案

相关题库更多 +