甲乙丙丁四人同时开始放鞭炮,甲每隔t1秒放一次,乙每隔t2秒放一次,丙每隔t3秒放一次,丁每隔t4秒放一次,每人各放n次。函数fun的功能是根据形参提供的值,求出总共听到多少次鞭炮声作为函数值返回。注意,当几个鞭炮同时炸响,只算一次响声,第一次响声是在第0

admin2015-08-23  40

问题 甲乙丙丁四人同时开始放鞭炮,甲每隔t1秒放一次,乙每隔t2秒放一次,丙每隔t3秒放一次,丁每隔t4秒放一次,每人各放n次。函数fun的功能是根据形参提供的值,求出总共听到多少次鞭炮声作为函数值返回。注意,当几个鞭炮同时炸响,只算一次响声,第一次响声是在第0秒。
  例如,若t1=7,t2=5,t3=6,t4=4,n=10,则总共可听到28次鞭炮声。
    请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
    注意:源程序存放在考生文件夹下的BLANKl.C中。
    不得增行或删行,也不得更改程序的结构!
#include
/**********found**********/
#define OK(i,t,r1)((    _____1_____    %t==0)
&&(i/tint fun(int t1,int t2,int t3,int
t4,int n)
{  int count,t,maxt=t1;
    if  (maxt    if  (rnaxt    if  (maxt    count=1;    /*给count赋初值*/
/**********found**********/
  for(t=1;t  {
    if(OK(t,t1,n)  ||OK(t,t2,
n)I I OK(t,t3,n)  || OK(t,t4,n))
    count++;
    }
/**********found**********/
  return    _____3_____    ;
}
main()
{  int t1=7,t2=5,t3=6,t4=4,n=10,r;
  r=fun(t1,t2,t3,t4,n);
  printf("The sound:%d\n",r);
}

选项

答案(1)I (2)t++ (3)count

解析 第一空:由“if(OK(t,t1,n)||OK(t,t2,n)|| OK(t,t3,n)||OK(t,t4,n))count++;”可知count计数听到的鞭炮声,在满足if条件时,计数加1。t时刻,至少有一个人放了一个鞭炮才能听得到声音,故t%tl==0、t%t2==0、t%t3==0、t%t4==0这四个当中至少一个成立,四者是或的关系。第一个标识下是宏OK的定义,由前面的分析可知,OK宏的作用就是判断t%i(i等于1、2、3和4)是否等于0且i/t第二空:时间t从第一秒开始,到最大时刻结束,时间是一秒一秒增加,在每个时刻判断是否能够听到声音,故第二空是“t++”。
第三空:变量count记录了听到的声音次数,因此count是函数的返回值,故第三空应为“count”。
转载请注明原文地址:https://jikaoti.com/ti/NSi0FFFM
0

最新回复(0)