试题查看

【分析解答题】

试题三(共15 分)阅读以下说明和C、程序,将应填入 (n) 处的字句写在答题纸的对应栏内。[说明]某种传感器的输出值Ratio 依赖于环境温度temp(-40oC≤ temp≤50oC、。对一组环境温度值(ITEMS 个),人们已经测量得到了相应的Ratio 值(见表1)。该表粗略地描述了曲线Ratio(temp)。

校正系数K 是Ratio 的倒数,因此也依赖于环境温度temp。在数据处理中,人们需要用更多的列表值细致地描述曲线K(temp),如表2 所示。在表2 中,各温度值所对应的K 值是对表1 进行线性插值再求倒数得到的,具体的计算方法如下:1. 根据temp 值,在表1 中用二分法查找;2. 若找到相应的温度值,则按相应的Ratio 值求倒数得到K 值;3. 若没找到相应的温度值,则可确定temp 所在的温度区间[Tp1,Tp2],同时获得了相应的Ratio1 和Ratio2,再按如下公式计算K 值:Step = (Ratio1 - Ratio2) / (Tp1-Tp2)K = 1.0 / (Ratio1 + Step*(temp – Tp1))在程序中,当temp 高于50oC、或低于-40oC、时,设定K=0。[程序]#include typedef struct {int Temp; /*环境温度*/double Ratio; /*传感器的输出值*/}CURVE;#define ITEMS 7double GetK(int,CURVE、*, int);void main(){intDegree;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 = GetKDegree,Curve, ITEMS);printf(" %3d %4.2f \n",Degree,k);}}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) ));}
查看答案解析

参考答案:

正在加载...

答案解析

正在加载...

根据网考网移动考试中心的统计,该试题:

0%的考友选择了A选项

0%的考友选择了B选项

0%的考友选择了C选项

0%的考友选择了D选项

你可能感兴趣的试题

试题四(共15分)阅读以下应用说明以及用VisualBasic开发过程中进行的属试题五(共15分)阅读以下说明和C语言函数,将应填入(n)处的字句写在答题纸的对虚拟网络以软件方式来实坝逻辑工作组的划分与管理。如果同—逻辑工作组的成员之间希望试题二(共15分)阅读以下说明和C语言函数,将应填入(n)处的字句写在答题纸的对试题八(共15分)阅读以下说明和Java代码,将解答写入答题纸的对应栏内。[说明试题六(共15分)阅读以下说明和C++代码,将解答写入答题纸的对应栏内。[说明]