2015年计算机软件水平初级程序员笔试考前训练(15)
发布时间:2011/6/23 21:06:53 来源:城市学习网 编辑:admin
一、把一个字符串插入到另一个字符串的某个位置(指元素个数)之后
char *insert(char *s,char *t,int position)
{ int i;
char *target;
if(position>strlen(t)) printf("error");
else
{ for (i=0;i< (1) ;i++)
{ if (i target=s;
else
{ if(i< (2) )
target=t;
else (3) ;
}
}
}
return garget;
}
二、辗转相除法求两个正整数的最大公约数
int f(int a,int b)
{ if (a==b) (4) ;
else
{ if (a>b) return f(a-b,b);
else (5) ;
}
}
答案:
(1)strlen(s)+strlen(t)
(2)position+strlen(t)
(3)target=s[i-strlen(t)]
(4)return a
(5)return f(a,b-a) [NextPage] 求一个链表的所有元素的平均值
typedef struct { int num;
float ave;
}Back;
typedef struct node{ float data;
struct node *next;
} Node;
Back *aveage(Node *head)
{ Back *p,*q;
p=(Back *)malloc(sizeof(Back));
if (head==NULL)
{ p->num=0;
p->ave=0; }
else
{ (1) ;
p->num=q->num+1;
(2) ; }
retuen p;
}
main()
{ Node *h; Back *p;
h=create(); /*建立以h为头指针的链表*/
if (h==NULL) printf("没有元素");
else { p=aveage(h);
printf("链表元素的均值为:o",p->ave);
}
}
答案:(1)q=aveage(head->next)
(2)p->ave=(head->data+q->ave*q->num)/p->num