题目详情

阅读以下说明和 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++"。

你可能感兴趣的试题

单选题

中级软件设计师,章节练习,中级软件设计师系统开发运行知识

  • A.0
  • B.1
  • C.2
  • D.3
查看答案
单选题

中级软件设计师,章节练习,中级软件设计师系统开发运行知识

  • A.1、1
  • B.1、2
  • C.2、2
  • D.2、3
查看答案
单选题

中级软件设计师,章节练习,中级软件设计师系统开发运行知识

  • A.3
  • B.4
  • C.5
  • D.6
查看答案
单选题

中级软件设计师,章节练习,中级软件设计师系统开发运行知识

中级软件设计师,章节练习,中级软件设计师系统开发运行知识

  • A.V(S3)和V(S5)V(S6)
  • B.P(S3)和V(S5)V(S6)
  • C.V(S3)和P(S5)P(S6)
  • D.P(S3)和P(S5)P(S6)
查看答案
单选题

中级软件设计师,章节练习,中级软件设计师系统开发运行知识

  • A.243ms
  • B.246ms
  • C.254ms
  • D.280ms
查看答案

相关题库更多 +