阅读以下说明和 C 函数,填补函数代码中的空缺,将解答填入答题纸的对应栏内。

考试题库2022-08-02  34

问题 阅读以下说明和 C   函数,填补函数代码中的空缺,将解答填入答题纸的对应栏内。【说明 1】函数 f(double eps) 的功能是:利用公式计算并返回 π 的近似值。【C 函数 1】double f(double eps){     double   n  =  1.0,s  =  1.0,term  =  1.0  ,pi  =  0.0  ;     while   (  fabs(term)  >=  eps  ) {            pi  =  pi  +  term;            n =  (1)   ;   s =   (2)    ;            term = s /  n ;     }     return    pi*4;}【说明 2】函数fun(char *str)的功能是:自左至右顺序取出非空字符串 str中的数字字符,形成一个十进制整数(最多 8 位)。例如,若 str中的字符串为 "iyt?67kp f3g8d5.j4ia2e3p12", 则函数返回值为 67385423。【C 函数 2】long fun(char  *str){     int  i =  0;     long num  =  0;     char  *p  =  str;      while   (   i<8  &&      (3)        )   {          if  (   *p  >=  '0' &&   *p  <=  '9' )    {               num =       (4)      +*p-‘0';               ++i;          }               (5)    ;     }     return  num;}

选项

答案

解析 (1)n+2
(2)-s 或-1*s
(3) *p!= ' \ 0'或等价形式
(4) num*10 或等价形式
(5) p++或等价形式

本题考查 C 语言程序设计基本技能。考生需认真阅读题目中的说明,从而确定代码的运算逻辑,在阅读代码时,还需注意各变量的作用。
函数f(double eps)  的功能是计算 π 的近似值。观察题中给出的计算公式,可知在循环中n每次递增2,因此空(1)处应填入"n+2"。由于公式中的各项是正负交替的,因此结合表达式 "term = s / n"可知变量 s 就是起此作用的。空 (2) 处应填入" -s"或"-1*s"。
对于函数 fun(char *str),从字符序列中取出数字并组合为一个整数时,对于每个数字,只需将之前获取的部分乘以10再加上该数字的值即可。
以 67385423 为例。
67385423 = (((((((0+6)*10+7)*10+3)* 10+8)*10+5)*10+4)*10+2)*10+3
函数中的变量 i是用来计算位数的, num 用来计算所获得的整数值。显然,最多读取字符序列中的前 8 个数字,或者到达字符序列的末尾(*p!= ' \ 0')时,计算也需结束。因此,空(3)处应填入“ (*p!= ' \ 0')”。
根据 num 的作用,空 (4) 处应填入 "num*10"。
根据指针 p 的作用,空 (5) 处的代码应使得 p 指向下一个字符,因此应填入 "p++"。
转载请注明原文地址:https://www.tihaiku.com/congyezige/2427176.html

最新回复(0)