二级C语言典型题解析


日期:
2005-9-7 19:53:00
来源:
作者:
编辑
yuguangjun
            有以下程序 

       void f(int a[], int i, int j) 

       {  int  t; 

          if(i<j) 

          {  t=a[i];   a[i]=a[j];   a[j]=t; 

             f(a,i+1,j-1); 

          } 

       } 

       main() 

       {  int  i, aa[5]={1,2,3,4,5}; 

          f(aa,0,4); 

          for(i=0; i<5; i++) printf("%d,",aa[i]);printf("\n"); 

       } 

       执行后输出结果是 

A)5,4,3,2,1,   B)5,2,3,4,1,   C)1,2,3,4,5,   D)1,5,4,3,2, 
  
答案:A 
解析:f(aa,0,4)调用是地址双向传递.i=0,j=4,交换aa=[0]、aa[4]的值使aa[5]={5,4,3,2,1};接着递归调用f(a,i+1,j-1)即f(a,1,3),交换aa[1]、aa=[3]的值使aa[5]={5,4,3,2,1};接着递归调用f(a,i+1,j-1)即f(a,2,2),由于i=j=2,退出函数调用,依次输出aa[5]的数组元素为"5,4,3,2,1," 
  
  
(47)有以下程序 

       struct STU  

       {  char  name[10]; 

     &nb

此文共有4页 上一页 1 2 3 4 下一页

关闭窗口

   兆联特别申明
1)除本站特殊规定外,本站所有信息均不拥有版权,仅供学习参考!
2)站内大部分内容注明出处及详细信息,版权归作者所有!如果您觉得不妥请及时与我站联系,我们将立即删除。
3)本站提供的资料您只有阅读权,并不等于您得到文章的所有权,本站反对将我站提供的资料直接使用。