首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
设有如下函数定义: #include<stdio.h> int fun(int k) { if(k<1)return 0; else if(k==1)return 1; else return fun(k-1)
设有如下函数定义: #include<stdio.h> int fun(int k) { if(k<1)return 0; else if(k==1)return 1; else return fun(k-1)
admin
2019-05-17
40
问题
设有如下函数定义:
#include<stdio.h>
int fun(int k)
{ if(k<1)return 0;
else if(k==1)return 1;
else return fun(k-1)+1;
}
若执行调用语句n=fun(3);,则函数fun总共被调用的次数是( )。
选项
A、2
B、3
C、4
D、5
答案
B
解析
首先n=fun(3),3被当作参数传递进去,这就进行了一次调用,3被当作参数传进去后,程序会执行这句else return fun(k-1)+1;这就调用了第二次,而参数是3-1也就是2。2被当作参数传进去后,程序会执行这句else return fun(k-1)+1;这就调用了第三次,而参数是2-1也就是1。1被当作参数传进去后,程序会执行这句else if(k==1)return 1;不再递归调用,所以最终结果为3次。
转载请注明原文地址:https://kaotiyun.com/show/1PRp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
设变量均已正确定义,若要通过scanf("%d%c%d%c",&a1,&c1,&a2,&c2);语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。以下所示的输入形式中正确的是(注:□代表空格字符)
若变量已正确定义,则以下语句的输出结果是s=32;s^=32;printf("%d",s);
若有以下程序段structst{intn;structst*next;);structsta[3]={5,&a[1],7,&a[2],9,’\0’),*p;p=&a[0];则以下选项中值为6的表达式是
有以下程序#include#include"string.h"typedefstruct{charname[9];charsex;floatscore[2];}STU;voidf(STUa){
以下叙述中错误的是
若有以下程序#includemain(){inta=-11,b=10;a/=b/=-4:printf("%d%d\n",a,b);}则程序的输出结果是
若有定义语句charc=’\101’;则变量c在内存中占
若有定义语句:chars[10]="1234567\0\0";则strlen(s)的值是
给定程序中,函数fun的功能是:求SS所指字符串数组中长度最短的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指变量中。ss所指字符串数组中共有M个字符串,且串长
随机试题
测定型砂或芯砂的水分时,将称好的试样()放在盛砂盘中,按规定的时间进行烘干。
下列可以用于除去气流中尘粒的设备有()。
烧结普通砖的强度等级有()。
中国期货业协会、期货交易所依法对期货公司实行()。
下列()不属于支票的种类。
一个由5笔等级均为B的债券组成的600万元的债券组合,违约概率为1%,违约后回收率为40%,则预期损失为()万元。
基数效用论关于效用最大化的观点。
下列语句输出结果为()publicclasstest{publicstaticvoidmain(Stringargs[]){inta=-67,b=116,c=78;
某循环队列的存储空间为Q(1:m),初始状态为front=rear=m。现经过一系列的入队操作和退队操作后,front=m,rear=m-1,则该循环队列中的元素个数为()。
Wheredoesthisconversationmostprobablytakeplace?
最新回复
(
0
)