当前位置:文档之家› 函数的嵌套调用和递归调用

函数的嵌套调用和递归调用

/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:求k!(k〈13),所求阶乘的值作为函数值返回。
(要求使用递归)
------------------------------------------------*/
【程序填空】
---------------------------------------------------------
题目:下面程序的功能是用递归法求n!。
-------------------------------------------------------*/
#include
void main()
{
/***********SPACE***********/
【?】;
int n;
long y;
printf("input an integer number:");
scanf("%d",&n);
/***********SPACE***********/
y=【?】;
printf("%d!=%ld\n",n,y);
B) C语言程序中,main函数是没有参数的
C)一个函数通过其他函数间接的调用了自身,这种情况也是一种递归调用
D)若要通过函数参数带回一个或多个返回值,则应使用按地址传送的参数结合方式
答案:B
有以下程序:
#include
fun(int n)
{ if(n==1|| n==2)return 2;
return n-fun(n-2);}
power(n)
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:将字符串中的小写字母转换为对应的大写字母,
其它字符不变。
要求:用for循环实现
A)既允许直接递归调用也允许间接递归调用
B)不允许直接递归调用也不允许间接递归调用
C)允许直接递归调用不允许间接递归调用
D)不允许直接递归调用允许间接递归调用
答案:A
若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是().
A)函数调用可以嵌套和递归
B)函数调用可以作为一个函数的实参
C)函数调用可以出现在表达式中
m=【?】;
printf(″%d″,m);
}
int fib(int n)
{
/***********SPACE***********/
if(n==1)【?】;
else if(n==2) return(1);
/***********SPACE***********/
else return (【?】);
}
题目:下面程序的功能是用函数递归方法计算菲波那契数列,
请填空完善之。
-------------------------------------------------------*/
main()
{ int n,m;
scanf(″%d″,&n);
/***********SPACE***********/
}
答案:----------------------
if (k>0)
return(k*fun(k-1));
else if(k==0)
return 1L;
----------------------
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:通过函数的递归调用计算阶乘。
-------------------------------------------------------*/
#include
long power(int n)
答案:
======(答案1)======
可以
若有以下函数:
int fun(int x)
{ return (1+x*x); }
则语句printf(" %d\n",fun(fun(fun(fun( 1 )))) );的输出结果是【1】.
答案:
======(答案1)======
677
C语言中不可以嵌套的是().
以下对C语言函数的有关描述中,正确的是().
A)在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参
B) C函数既可以嵌套定义又可以递归调用
C)函数必须有返回值,否则不能使用函数
D) C程序中有调用关系的所有函数必须放在同一个源程序文件中
答案:A
以下叙述中不正确的是().
A)一个C语言程序有且仅有一个main函数
D)函数调用可以作为一个函数的形参
答案:D
在函数调用过程中,如果函数funA调用了函数funB,函数funB又调用了函数funA,则().
A)称为函数的直接递归调用
B)称为函数的间接递归调用
C)称为函数的循环调用
D) C语言中不允许这样的递归调用
答案:B
有以下程序
#include
int fun(int n)
}
main()
{
void change();
char str[40];
gets(str);
change(str);
puts(str);
}
答案:----------------------
int i;
for(i=0;str[i]!='\0';i++)
if(str[i]>='a' && str[i]<='z')
main()
{printf("%d\n",fun(7));}
该程序运行后的输出结果是().
A) 1
B) 2
C) 3
D) 4
答案:C
{ if(n==1) return 1;
else
return(n+fun(n-1));
}
main()
{ int x;
scanf("%d",&x);
x=fun(x);
printf("%d\n",x);
}
执行程序时,给变量X输入10,程序的输出结果是().
A) 55
B) 54
C) 65
D) 45
答案:A
return【?】;
}
答案:
======(答案1)======
sum(n)
======(答案2)======
n==1
======(答案3)======
n+sum(n-1)
函数的【1】调用是一个函数直接或间接地调用它自身.
答案:
======(答案1)======
递归
函数的定义不可以嵌套,但函数的调用【1】嵌套.
A)函数调用
B)函数定义
C)循环语句
D)选择语句
答案:B
以下正确的描述是:在C语言程序中().
A)函数的定义可以嵌套,但函数的调用不可以嵌套
B)函数的定义不可以嵌套,但函数的调用可以嵌套
C)函数的定义和函数的调用均不可以嵌套
D)函数的定义和函数的调用均可以嵌套
答案:B
C语言规定,程序中各函数之间().
#include
#include"conio.h"
long fun(int k)
{
/**********Program**********/
/********** End **********/
}
main()
{
int m;
printf("Enter m: ");
scanf("%d", &m);
printf("\nThe result is %ld\n", fun(m));
{
long f;
if(n>1)
/***********SPACE***********/
f=【?】;
else
f=1;
return(f);
}
main()
{
int n;
long y;
printf("input a inteager number:\n");
/***********SPACE***********/
------------------------------------------------*/
#include "string.h"
#include
void change(char str[])
{
/**********Program**********/
/********** End **********/
}
long fac(int n)
{
long f;
if(n<0)
printf("n<0,data error!");
else if(n==0,n==1)
相关主题