第六章 函数:本章主要介绍了三部分内容,一函数的定义、调用、声明的格式及调用过程,并给出了嵌套调用和递归调用两种特殊调用方式的应用举例。二不同类型变量的生存期。三C语言中常用的预处理命令及应用。6.1引例:不同半径的圆形面积:本次课主要通过圆形面积计算例子讲解程序中使用函数的目的和使用中的注意事项。[单选题]
6.2函数的定义:本次课主要介绍定义函数时每个组成部分的格式及含义,并通过实例讲解具体的实现。
6.3函数的调用和声明:本次课主要介绍函数调用时的格式、各组成部分含义及注意事项,通过实例讲解具体的实现。介绍函数声明的格式、含义及作用。
6.4函数的调用过程:本次课主要通过四个实例介绍带参函数、无参函数的调用执行过程及具体实现,尤其强调形实参数之间的传递方式。
6.5函数的两种特殊调用方式:本次课主要通过四个实例介绍函数的嵌套调用和递归调用两种特殊调用方式的执行过程及具体实现。
6.6变量的生存期:本次课主要介绍不同作用域变量—局部和全局变量的含义、生存期及功能,并通过两个实例讲解它们的区别;以局部变量为主介绍不同存储类型变量—静态局部和动态局部变量的含义、生存期,并通过一个实例讲解它们之间的区别。
6.7预处理(一):本次课主要介绍预处理中的不带参宏定义命令和带参宏定义命令的定义、作用及应用。
6.8预处理(二):本次课主要介绍预处理中的文件包含和条件编译命令的定义和作用,并以实例说明它们的具体应用。
以下正确的函数形式是 。
{ int z; return z; }
, double fun(int x,int y)
{ double z; z=x+y; return z; }, double fun(x,y)
{ int x,y; double z; z=x+y; return z; }, double fun(int x,int y)
{ z=x+y; return z; }]
[单选题]
若调用一个函数,且此函数中没有return语句,则正确的说法是 。
选项:[该函数没有返回值, 该函数能返回一个用户所希望的函数值, 该函数返回一个不确定的值, 该函数返回若干个系统默认值][单选题]
以下正确的说法是 。
选项:[形参是虚拟的,不占用存储单元, 实参和与其对应的形参各占用独立的存储单元, 实参和与其对应的形参共占用一个存储单元, 只有当实参和与其对应的形参同名时才共占用存储单元][单选题]
下面函数调用语句含有实参的个数为 。
func((exp1,exp2),(exp3,exp4,exp5));
[单选题]
若使用一维数组名作函数实参,则以下正确的说法是 。
选项:[实参数组类型与形参数组类型可以不匹配, 在被调函数中,不需要考虑形参数组的大小, 实参数组名与形参数组名必须一致, 必须在主调函数中说明此数组的大小][单选题]
凡是函数中未指定存储类型的局部变量,其隐含的存储类别为 。
选项:[静态(static), 寄存器(register), 外部(extern), 自动(auto)][单选题]
执行下列程序:
#define M(x,y) (x*y)
i=3;
i=M(i,i+1)-8;
变量i的值应为 。
[单选题]
执行下列程序,正确的输出是 。
int x=3,y=5;
void swap()
{ int a;
a=x; x=y; y=a;
}
int main()
{ int x=5,y=7;
swap();
printf(“%d,%dn”,x,y);
return 0;
}
[单选题]
以下程序是选出能被3整除且至少有一位是5的两位数,打印出所有这样的数及其个数。请选择填空。
sub(int k,int n)
{
int a1,a2;
a2= ;
a1=k-a2*10;
if((k%3==0&&a2==5)||(k%3==0&&a1==5))
{
printf(“%d”,k);
n++;
return n;
}
else return -1;
}
int main()
{
int n=0,k,m;
for(k=10;k<=99;k++)
{
m=sub(k,n);
if(m!=-1) n=m;
}
printf(“nn=%d”,n);
return 0;
}
[单选题]
有以下程序:
#include <stdio.h>
int fun(int x)
{ int p;
if(x==0 || x==1) return 3;
p=x-fun(x-2);
return p;
}
int main()
{ printf(“%dn”,fun(9));
return 0;
}
正确的输出是 。