您的位置: 首页 计算机类> 水平考试> 复习资料> 程序员资料
计算机软件水平考试程序员复习资料 全国计算机水平考试复习资料
公务员考试辅导课程

高级语言程序设计知识点六

发布时间:06-20

来 源:

页 数:6页

上一篇:高级语言程序设计知识点二

下一篇:高级语言程序设计知识点八



【例6.3】字符串拷贝函数strcpy()。
    该函数功能是将一个已知字符串的内容复制到另一字符数组中。拷贝函数设有两个形式参数from,to。from为已知字符串的首字符指针,to为存储复制字符串首字符指针。函数定义如下:
    void strcpy(char *to, char *from,) 
    {
    while( *to++=*from++);
    }

   3.调用环境与函数共用全局变量
       为了减少函数的形式参数,或因若干函数必须共同对一组变量进行处理。可让调用环境与被调用的函数共用一组变量。即在函数调用之前先给变量设置初值,函数对这些变量进行处理,并将处理结果留在全局变量中。由于这种使用方式函数之间相互影响太大,如程序有错,就会很难修正。   

    6.5  返回指针的函数

 函数也可以返回指向某种数据对象的指针值。定义(或说明)返回指针值函数的函数头有以下形式:
                 类型说明符     * 函数名(形式参数表)
例如,函数说明:
         int     *f(int,int);
说明函数f()返回指向int型数据的指针,该函数有两个整型形式参数。
        在函数名的两侧分别为* 运算符和()运算符,而()的优先级高于*,函数名先与()结合。函数名()是函数的说明形式。在函数名之前的* ,表示此函数返回指针类型的值。
【例6.4】 编制在给定的字符串中找特定字符的第一次出现。若找到,返回指向字符串中该字符的指针;否则,返回NULL值。
    设函数为search(),该函数有两个形式参数,指向字符串首字符的指针和待寻找的字符。以下是函数search()的定义:
   char *search(char *s,char c) 
   { while(*s && *s! = c) 
   s++;
   return *s?s:NULL;
   }

   6.6  函数递归调用

    一个函数为完成它的复杂工作,可以调用其它别的函数。例如,从主函数出发,主函数调用函数A() ,函数A()又调用函数B(),函数B()又调用函数C(),等等。这样从主函数出发,形成一个长长的调用链,就是通常所说的函数嵌套调用。函数嵌套调用时,有一个重要的特征:先被调用的函数后返回。如这里所举例子,待函数C()完成计算返回后,B()函数继续计算(可能还要调用其它函数) ,待计算完成,返回到函数A(),函数A()计算完成后,才返回到主函数。
       当函数调用链上的某两个函数为同一个函数时,称这种函数调用方式为递归调用。通过速归调用方式完成其功能的函数称为递归函数。许多问题的求解方法具有递归特征,用递归函数描述这种求解算法比较简洁。计算n的阶乘(n!)函数就是一个很好的例子。因
      n! = l*2*3* …*n

按其定义用循环语句可以方便地实现,写成函数见下例6.5。
【例6.5】用循环实现阶乘计算的函数。
    float fac(int n)
    {float s;
    int i;
    for(s=1.of,i=l;i<=n; i++)
    s*= l;
    return s;
    }
    然而,把n! 的定义改写成以下递归定义形式
 (l)n!=1, n<=l;
 (2)n!= n*(n-1)!, n>l。
根据这个定义形式可用递归函数描述如下例6.6。




Google
 

     

考试信息

热点

课程

更新

©2005-2006 100ksw.com 版权所有 皖ICP备06013378号