问答题

试题一
阅读下列说明和流程图,将应填入 (n) 处。
[流程图说明]
流程图1-1描述了一个算法,该算法将给定的原字符串中的所有前导空白和尾部空白都删除,但保留非空字符之间的空白。例如,原字符串“ File Name ”,处理后变成“File Name”。流程图1-2、流程图1-3、流程图1-4分别详细描述了流程图1-1中的框A,B,C。
假设原字符串中的各个字符依次存放在字符数组ch的各元素ch(1),ch(2),…,ch(n)中,字符常量KB表示空白字符。
流程图1-1的处理过程是:先从头开始找出该字符串中的第一个非空白字符ch(i),再从串尾开始向前找出位于最末位的非空白字符ch(j),然后将ch(i),…,ch(j)依次送入 ch(1),ch(2),…中。如果原字符串中没有字符或全是空白字符,则输出相应的说明。在流程图中,strlen是取字符串长度函数。




[问题]在流程图1-1中,判断框P中的条件可表示为:
i> (5)
 

【参考答案】

(1) i<=n, 或其等价形式
(2) ch(j)=KB
(3) k<=j, 或其等价形式

(↓↓↓ 点击下方‘点击查看答案’看完整答案、解析 ↓↓↓)
热门 试题

问答题
试题三 阅读以下说明和C程序,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某种传感器的输出值Ratio依赖于环境温度temp(-40oCtemp50oC)。对一组环境温度值(ITEMS个),人们已经测量得到了相应的Ratio值(见表1)。该表粗略地描述了曲线Ratio(temp)。 表1曲线Ratio(temp)的列表值表2曲线K(temp)的列表值 表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高于50°C或低于-40°C时,设定K=0。 【C程序】 #include typedef struct { int Temp; *环境温度* double Ratio; *传感器的输出值* }CURVE; #define ITEMS 7 double GetK(int, CURVE *, int); 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); } } 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) )); }