f=1/______(20)_____ ; n=1; g=term=1;
while(fabs(term)>1e-10) {term=term* ___(21)___) ; g=g+term; ___(22)___ ; }
if(fabs(f-g)/(fabs(f)+fabs(g))<1e-6) printf(“\\ntrue x=%f,f=%f,g=%f”,x,f,g); else
printf(“\\nfalse x=%f,f=%f,g=%f”,x,f,g); }
15. 以下程序的功能是:将输入的十进制整数转换为指定进制的字符串形式,itob函数的形参s指向的数组用于保存将形参n的值转换为base进制数后的字符串形式。请完善程序使其达到要求的功能。 #include
for(j=0;s[j]!=’\\0’;j++); for(i=O,j--;i void itob(int n,char s[],int base) { int i=0,sign,t; if((sign=n) while(n>0) { t= ___(24)___ if(t>=1O) s[i++]=t-10+’A’; else s[i++]=___(25)___ n=n/base; } if(sign<0) s[i++]=’-‘; ___(26)___ ; reverse(s); } void main() { char str[100]; int n,base; printf(”请输入被转换的十进制整数和进位制的基数:\\n”); scanf(“%d%d\ itob(n,str,base); printtf(”转换结果为:\\n”); printf(“(10进制数)%d->%s(%d进制数)\\n”,n,str,base); } 16.存储一组整数的某单向链表结点定义为: typedef struct n { int x; struct n *next; }NODE; 函数NODE *sort(NODE *head)采用插入法对head指向的单向链表中存储的数据按成员x的值从小到大排序。 算法提示:对链表中从第2个结点开始直到最后结点范围内的每个结点做以下操作:若第i个结点(i从2开始)的成员x值大于或等于第i-1个结点的成员x值,则保持第i个结点在链表中的位置不变:否则,先将第i个结点从链表中删除(使第i-1个结点的指针域指向第i+1个结点),再将已脱离链表的原第i个结点插入到链表的前i-1个结点中,并保持插入结点后链表的前i个结点按成员x值从小到大有序。请完善sort函数使其达到要求的功能。 NODE *sort(NODE *head) { ___(27)___ *p1,*p2,*q1,*q2; p1=head; p2=p1->next; while(p2) { if(p1->x<=p2->x) { p1=p2; ___(28)___=p2->next; } else {p1->next=___(29)___ ; /*从链表中删除p2指向的结点*/ /*以下程序段实现将p2指向的结点插入链表中*/ q1=head; q2=q1->next; if(p2->x p2->next=q2; q1->next=p2; } p2=p1->next; } } return head; } (21)C(22)B(23)A(24)C(25)B(26)A(27)A(28)C(29)B(30)C 二:填空 (1)continue(2)5(3)5 4(4)x=108(5)obj (6)110(7)3(8)-31(9)0102(10)2010/10 (11)-2(12)2(13)2 3(14)3 2(15)106 Y (16)107 N(17)5(18)18(19)%lf(20)pow(1+x,1/3.0) (21)n/(n+2)*x(22)n=n+3(23)i++(24)nose (25)t+'0'(26)s[i]='\\0'(27)NODE(28)p2(29)p2->next(30)head

