- _________是将变量的地址传递给函数的参数,在函数中参数经过改动,返回给调用函数的程序后,程序变量的数值会被改变。
- 若想将函数执行结果返回给调用的程序,可以使用________指令来完成这项工作。
- 在函数中传递的结构类型,必须在________范围内事先进行声明。
- 简述递归函数的意义与特性。
- 什么是“静态局部变量”?特性是什么?
- 多维数组动态分配要取得数组中的值,必须通过_________或是________的方式才能取得。
- 什么是尾归递归?
- 以下程序代码中的3个printf()函数,分别打印出什么?
01 auto int iVar=5;
02 printf(“进入程序块前的iVar=%d\n”,iVar);
03 {
04 auto int iVar=10;
05 iVar++;
06 printf(“程序块中的 iVar=%d\n”,iVar);
07 }
08 printf(“离开程序块的 iVar=%d\n”,iVar);
- 名词解释:
(a)形式参数(Formal Parameter)。
(b)实际参数(Actual Parameter)。
(c)全局变量(Global Variable)。
(d)局部变量(Local Variable)。
- 说明argc与argv这两个参数的作用。
- 分别说明以下两行程序代码的功能。
01 int(*ptr)(int);
02 int *ptr(int);
- 什么是“命令行参数”(Command-Line Argument)?
- 简述参数型函数指针的功能。
C语言函数测试题(1)
传址调用
Return
全局
函数不单只是能够被其他函数调用(或引用)的程序块,在C语言中也提供了自身引用的功能,就是所谓的递归函数。递归函数(Recursion)在程序设计上相当好用,而且也是非常重要的概念,使用递归可使得程序变得相当简洁,但设计时必须非常小心,因为很容易会造成无限循环或导致内存的浪费。通常一个递归函数式有两个必备的要件。
(1)一个可以反复执行的过程。
(2)一个跳出反复执行过程的缺口。
通常局部变量的生命周期,当函数或程序区段招待完时就会结束,然后系统会将内存上的地址清除掉。不过如果在函数或程序区段中声明staic变量,当函数执行完毕后,它的内存地址并不会被清除,会一直保留到程序全部结束时才清除,又称为“静态局部变量”。在声明静态局部变量时,如果各位没有设置初始值的话,系统自动将静态变量初始值设置为0,而一般的变量初始值,在未设置初始值的情况下,则是一个不确定值。
指针的指针 数组
所谓尾归递归就是程序的最后一个指令为递归调用。因为每次调用后,再回到前一次调用的第一行指令就是return,所以不需要再进行任何计算工作,因此也不必保存原来的环境信息。
02行打印出5;06行打印出11;08行打印出5。
(a)定义函数时在头文件中所声明的参数,或简称为参数。
(b)实际调用函数时所提供的参数,或简称为自变量。
(c)又称为外部变量,是声明在程序块与函数之外的,在声明指令以下的所有函数及程序块都可以使用到该变量。
(d)是声明在函数或程序块内的变量,该变量只可以在此区块内存取,而此块外的程序代码都无法存取该变量。
argc的数据类型为整数数据类型,表示命令行参数的个数,argc的值绝对会大于0。至于argv[]的数据类型为不确定长度的字符串指针数组,所传递的数据都为字符串格式,且此字符串数组个数是视用户输入的自变量数目而确定的。其中命令行参数字符串是以空白或定位(Tab)字符作为分隔的。
01行中ptr为函数指针,本身返回整数值,并接受整数自变量。
02行中为ptr为函数的原型声明,可返回整数指针,可接受整数自变量。
所谓“命令行参数”( Command-Line Argument)就是程序在MS-DOS操作系统中执行时所传递的自变量。例如,在MS -DOS操作系统下的type命令,可以用指定文件名的方式来打开纯文本文件并显示内容。
在C程序中也可以将函数指针用来作为另一个函数的参数。如果函数指针作为参数,同一个函数可以按照不同的情形,改变参数列表中函数指针所指向的函数地址,也就是该函数将可以按照函数指针来决定调用不同的函数。简单地说,就是函数也可以作为另一个函数中的参数。
自我评价 答对0--2题 答对3--4题 答对5--6题 答对7--8题 答对9--10题
下一篇
