更多“The annual change in______is -0.2 degree east in this water area.A.mean high waterB.marine ”相关问题
  • 第1题:

    阅读以下技术说明和C代码,将C程序中(1)~(5)空缺处的内容填写完整。

    [说明]

    某种传感器的输出值Ratio依赖于环境温度temp(-40℃≤temp≤50℃)。对一组环境温度值(ITEMS个),已经测量得到了相应的Ratio值(如表4-10表格所示)。表4-10粗略地描述了曲线Ratio(temp)。

    校正系数K是Ratio的倒数,因此也依赖于环境温度temp。在数据处理中,需要用更多的列表值细致地描述曲线K(temp),如表4-11所示。

    在表4-11中,各温度值所对应的K值是对表4-10进行线性插值再求倒数得到的,具体的计算方法如下。

    1) 根据temp值,在表4-10中用二分法查找;

    2) 若找到相应的温度值,则按相应的Ratio值求倒数得到K值;

    3) 若没找到相应的温度值,则可确定temp所在的温度区间[Tp1,Tp2],同时获得了相应的Ratio1和 Ratio2,再按如下公式计算K值:

    在程序中,当temp高于50℃或低于-40℃C时,设定K=0。

    [C程序]

    include

    typedef struct {

    int Temp; /* 环境温度 */

    double Ratio; /* 传感器的输出值 */

    }CURVE;

    define ITEMS 7

    double GetK(int Temp,CURVE *p,int n)

    { /* 用二分法在n个元素的有序表p中查找与Temp对应的传感器输出值 */

    int low, high, m;

    double Step;

    low = 0;

    high = n-1;

    if ((Temp<p->Temp) || (Temp>(p+high)->Temp))

    return 0.0; /* 超出温度范围时返回 0.0 */

    while (low<=high)

    { m=(1);

    if (Temp==(p+m)->Temp)

    return (2);

    if (Temp<(p+m) >Temp)

    high=m-1;

    else

    low=(3);

    }

    p+=high;

    Step=( (4) )/((p+1)->Temp-p->Temp);

    return 1.0/ (p->Ratio + Step*( (5) ) ;

    }

    void main()

    { int Degree;

    double k;

    CURVE Curve [ITEMS]={{-40,0.2},{-20,0.60.},{-10,0.8},{0,1.0},{10,1.17},{30,1.50},{50,1.8}};

    printf ("环境温度 校正系数\n");

    for (Degree=-40;Degree<=50;Degree++)

    { k=GetK ( Degree, Curve, ITEMS);

    printf("%3d %4.2f\n",Degree,k);

    }

    }


    正确答案:这是一道要求读者掌握线性插值计算及二分查找算法的C语言程序设计题。本题的解答思路如下。 1) 试题中已给出函数GetK(intTempCURVE *pint n)用二分法在n个元素的有序表p中查找与Temp对应的传感器输出值表中的元素已经按照温度有序排列。 2) 结合本题的应用背景二分查找算法是指先计算表的中间位置即[(low+high)/2]若待查元素等于中间位置上的元素则查找成功并结束查找过程;若待查元素大则在后半区间([m+1high])继续进行二分查找:否则在前半区间(lowm-1])进行二分查找如图4-17所示。本试题中low=0m=3high=6。 图4-17 二分查找算法示意图1 3) 以查找温度值20℃C为例由于20℃>0℃因此设置下一个查找区间为([m+1high))即[46]如图4—18所示。 图4-18 二分查找算法示意图2 4) 由于20℃30℃因此取high等于m-1即下一个查找区间为([lowm-1])即[45]。再进一步分析由于20℃>10℃因此取low等于m+1即再下一个查找区间为[55]。而查找区间[55]上的数据30≠20至此可确定此次查找失败即如图4-19所示。 图4-19 二分查找算法示意图3 5) 由以上分析可知(1)空缺处应填入“(low+high)/2”。 6) 程序中“if(Temp==(p+m)->Temp)”语句用于判断是否找到相应的温度值若找到则执行“return (2)”语句以返回相应温度的校正系数K。由试题关键信息“若找到相应的温度值则按相应的Ratio值求倒数得到K值”可推理出(2)空缺处应填入“1.0/(p+m)->Ratio”。 7) 当“if(Temp==(p+m)->Temp)”语句的判断条件不满足时将执行“if(Temp(p+m)->Temp)”判断语句。若待查元素小将执行“high=m-1;”语句即在前半区间([lowm-11)进行二分查找。若待查元素大则在后半区间([m+1high]继续进行二分查找因此else语句中则需将“low”指针向上移动即执行“low=m+1”语句。 8) 根据题干中给出的计算式子“Step=”以及题目中要求线性插值再求倒数得到K值可推理出(4)空缺处应填入“(p+1)->Ratio-p->Ratio”。 9) 同理根据题干中给出的计算式子“”可推理出(5)空缺处应入“Temp-p->Temp”。
    这是一道要求读者掌握线性插值计算及二分查找算法的C语言程序设计题。本题的解答思路如下。 1) 试题中已给出函数GetK(intTemp,CURVE *p,int n)用二分法在n个元素的有序表p中查找与Temp对应的传感器输出值,表中的元素已经按照温度有序排列。 2) 结合本题的应用背景,二分查找算法是指先计算表的中间位置,即[(low+high)/2],若待查元素等于中间位置上的元素,则查找成功并结束查找过程;若待查元素大,则在后半区间([m+1,high])继续进行二分查找:否则,在前半区间(low,m-1])进行二分查找,如图4-17所示。本试题中low=0,m=3,high=6。 图4-17 二分查找算法示意图1 3) 以查找温度值20℃C为例,由于20℃>0℃,因此设置下一个查找区间为([m+1,high)),即[4,6],如图4—18所示。 图4-18 二分查找算法示意图2 4) 由于20℃30℃,因此取high等于m-1,即下一个查找区间为([low,m-1]),即[4,5]。再进一步分析,由于20℃>10℃,因此取low等于m+1,即再下一个查找区间为[5,5]。而查找区间[5,5]上的数据30≠20,至此可确定此次查找失败,即如图4-19所示。 图4-19 二分查找算法示意图3 5) 由以上分析可知,(1)空缺处应填入“(low+high)/2”。 6) 程序中“if(Temp==(p+m)->Temp)”语句用于判断是否找到相应的温度值,若找到,则执行“return (2)”语句以返回相应温度的校正系数K。由试题关键信息“若找到相应的温度值,则按相应的Ratio值求倒数得到K值”可推理出,(2)空缺处应填入“1.0/(p+m)->Ratio”。 7) 当“if(Temp==(p+m)->Temp)”语句的判断条件不满足时,将执行“if(Temp(p+m)->Temp)”判断语句。若待查元素小,将执行“high=m-1;”语句,即在前半区间([low,m-11)进行二分查找。若待查元素大,则在后半区间([m+1,high],继续进行二分查找,因此else语句中则需将“low”指针向上移动,即执行“low=m+1”语句。 8) 根据题干中给出的计算式子“Step=”,以及题目中要求线性插值再求倒数得到K值可推理出(4)空缺处应填入“(p+1)->Ratio-p->Ratio”。 9) 同理,根据题干中给出的计算式子“”可推理出,(5)空缺处应入“Temp-p->Temp”。

  • 第2题:

    MOTO参数中已知:max_number_of_sdcch=24、number_sdcch_preferred=16sdcch_need_high_water_mark=4、sdcch_need_low_water_mark=16,当sdcch被占用几个时,TCH会向sdcch转换()

    A.24

    B.21

    C.12

    D.13


    参考答案:D

  • 第3题:

    A large oil fire on the deck of a ship can be fought most effectively with ______.

    A.dry chemical

    B.foam

    C.high-velocity fog

    D.water (cartridge-operated)、


    正确答案:B
    甲板上大量由油水引起的火灾最有效的扑救方法是泡沫。

  • 第4题:

    下列程序段的执行结果为 a=95 If a > 60 Then degree=1 If a > 70 Then degree=2 If a > 80 Then degree=3 If a > 90 Then degree=4 Print"degree=";degree

    A.degree=1

    B.degree=2

    C.degree=3

    D.degree=4


    正确答案:D
    解析:如果a>60,则degree=1;如果a>70,则degree=1;如果a>80,则degree=3:如果a>90,则degree=4。注意:If…Then…Else条件语句嵌套结构

  • 第5题:

    The annual change in ______ is 0.2 degree.

    A.Magnetic Variation

    B.Marine Insurance

    C.Maritime Accident

    D.Mean High Water Spring


    正确答案:A

  • 第6题:

    Most of the companies have a policy stating that each employee must _______ a formal, annual, and written performance appraisal by their manager.

    A.give
    B.be given
    C.be giving
    D.have given

    答案:B
    解析: