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

admin2021-02-25  25

问题 甲乙丙丁四人同时开始放鞭炮,甲每隔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,n)  ((_____1_____%t==0)
&&(i/tint fun(int t1,  int t2,  int t3,  int
t4,int n)
{  int count,t,maxt=t1;
    if  (maxt    if  (maxt    if  (maxt    count=1;    /* 给count:赋初值 */
/**********found**********/
    for(t=1;t    {
    if(OK(t,t1,n)  || OK(t,t2,
n)||  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%t1==0、t%t2==0、t%t3==0、t%t4==0这四个当中至少一个成立,四者是或的关系。第一个标识下是宏OK的定义,由前面的分析可知,OK宏的作用就是判断t%ti(i等于1、2、3和4)是否等于0且i/t    第二空:时间t从第一秒开始,到最大时刻结束,时间是一秒一秒增加,在每个时刻判断是否能够听到声音,故第二空是“t++”。
    第三空:变量count记录了听到的声音次数,因此count是函数的返回值,故第三空应为“count”。
转载请注明原文地址:https://kaotiyun.com/show/7Itp777K
0

最新回复(0)