C语言面试大全系列带面试题答案(16)

匿名网友 匿名网友 发布于: 2015-08-30 00:00:00
阅读 88 收藏 0 点赞 0 评论 0

二、 填空。
1. 下述函数在一维数组v上将x插入到下标为i的元素前, i≥0.如果i≥元素的个数,则x插到末尾。原有的元素个数存放在指针n所指向的变量中,插入后元素个数增加。
           void insline(double v[],int *n,double x,int i)
           {  int j;
if(__(1)______ )
for(j=*n-1;___(2)____;j–)
_____(3)______=v[j];
else
  i=*n;
v[i]=___(4)_____;
(*n++);
(1)  i<*n  (2)  j>=i  (3)  v[j+1]  (4)  x
2. 下述函数用二分法查找key值。数组中元素值已按递增次序排列,若找到key值则返回对应的下标,否则返回-1。
               int binary(double a[],int n,double key)
{int low,high,mid;
 low=0;
 high=n-1;
 while(__(1)______)
{mid=(low+high)/2;
 if(key<a[mid])
____(2)______;
                else
                  if(key>a[mid])
___(3)_________;
                  else
                    _____(4)__________;
                 }
                return –1;
}
         (1)low<=high  (2)high=mid-1  (3)low=mid+1  (4)return mid
3.本程序用改进的气泡排序法对数组a的元素从小到大排序。
void bubble(int a[],int n)
{ int j,k,jmax,temp;
  jmax=____(1)______;
  do
 {  k=__(2)________;
    for(j=0;j<jmax;j++)
    if(a[j]>a[j+1])
   {  temp=a[j];
      a[j]=a[j+1];
      a[j+1]=temp;
    k=__(3)_____________;
  }
  jmax=__(4)________;
}while(jmax>0);
           }
(1)n-1  (2)0  (3)j   (4)k

评论列表
文章目录