首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有以下程序: void f(int a[],int i,int j) { int t; if(i<j) { t=a[i];a[i]=a[j];a[j]=t; f(a,i+1,j-1); } } mai
有以下程序: void f(int a[],int i,int j) { int t; if(i<j) { t=a[i];a[i]=a[j];a[j]=t; f(a,i+1,j-1); } } mai
admin
2013-02-23
45
问题
有以下程序: void f(int a[],int i,int j) { int t; if(i<j) { t=a
;a
=a[j];a[j]=t; f(a,i+1,j-1); } } main() { int i,aa[5]={1,2,3,4,5}; f(aa,0,4); for(i=0;i<5;i++) printf("%d,",aa
); printf("\n"); } 执行后输出结果是( )。
选项
A、5,4,3,2,1,
B、5,2,3,4,1,
C、1,2,3,4,5,
D、1,5,4,3,2,
答案
1
解析
在C语言中所谓函数的递归是指在调用一个函数的过程中,又出现了直接或间接调用该函数本身,直接调用该函数本身的称为函数递归,而间接调用该函数称为函数的间接递归调用。由程序可以看出函数f(a,i,j)为一递归函数,其功能是当i<j时,将数组中的元素a
和a[j]交换,然后再调用函数f(a,i+1,j-1),将数组中a[i+1]和a[j--]交换,这样一直递归到数组下标i=j,可见该递归函数的作用是使数组中首尾元素依次互换。主函数中定义了一个长度为5的数组aa并初始化,然后调用f(a,0,4),将数组a中的元素依次互换,故最后for循环输出的数组aa中各元素的值为5、4、3、2、1,所以,4个选项中选项A符合题意。
转载请注明原文地址:https://kaotiyun.com/show/Y4Pp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
以下程序运行后的输出结果是【】。#include<stdio.h>intf(ihta[],intn){if(n>=1)returnf(a,n-1)+a[n-1];el
下列程序的运行结果是______。main(){intx,*p,**q;x=10;p=&x;q=&p;printf(
若有以下定义和语句;inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;
若有以下程序main(){intp,a=5;if(p=a!=0)printf("%d\n".p);elseprintf("%d\n",p+2);}执行后
以下正确的函数头定义形式是()。
以下语句或语句组中,能正确进行字符串赋值的是 ______。
以下叙述中错误的是 ______。
以下叙述中正确的是 _____。
以下选项中可作为C语言合法常量的是 _____。
在结构化方法中,软件功能分解属于软件开发中的______阶段。
随机试题
什么是SWOT分析法?如何应用其对组织环境进行分析?
肝功能失代偿期的肝硬化患者,其血清检查结果为()。
患者,男,38岁。脑外伤后3个月,定向力、记忆力、言语表达和思维等功能都有不同程度减退。在进行LOTCA认知功能评测时不包括
直接凝集反应是
我国急性胰腺炎最常见的病因是()。
患者,男,20岁。因大量蛋白尿1个月入院,病前无上呼吸道感染史。查体:血压120/80mmHg,双下肢有明显可凹性水肿。入院后诊断为肾病综合征。为明确病理类型,行肾穿刺活检。电镜下见有广泛的肾小球脏层上皮细胞足突消失。该患者最可能的病理类型是
下列叙述中正确的是()。
编制用以进行进度控制的计划必须掌握充分的信息,尽量使信息数据化,以便用数据说话。这些信息主要包括()。
关于税法概念和特点的陈述,下列正确的是( )。
下列关于随机变量特征数的描述有误的是()。
最新回复
(
0
)