单选题有如下程序:#include int sum(int *array,int len){ if(len == 0)  return array[0]; else  return array[0]+sum(array+1,len-1);}main(){ int array[5] = {1,2,3,4,5}; int res = sum(array,4); printf(%d,res);}程序运行后的输出结果是(  )。A15B10C8D1

单选题
有如下程序:#include int sum(int *array,int len){ if(len == 0)  return array[0]; else  return array[0]+sum(array+1,len-1);}main(){ int array[5] = {1,2,3,4,5}; int res = sum(array,4); printf(%d,res);}程序运行后的输出结果是(  )。
A

15

B

10

C

8

D

1


参考解析

解析:
程序执行过程为:调用函数sum(array,4),len=4;len>0递归调用sum(array+1,3),传入地址为array+1,即数组第二个元素地址;len=3>0,递归调用sum(array+1,2),传入地址为数组第三个元素地址;len=2>0,递归调用sum(array+1,1),传入地址为数组第四个元素地址;len=1>0递归调用sum(array+1,0),传入地址为数组第五个元素地址,此时len=0,返回5;返回上一层调用执行array[0]+sum(array+1,1),即4+5,返回9;再返回上一层调用执行array[0]+sum(array+1,2),即3+9,返回12;同理,最后返回15,并输出。本题中需要注意的是每一层调用时array[0]是不一样的,并不是指1。答案选择A选项。

相关考题:

有如下程序: include using namespace std; int main(){ int sum; 有如下程序: #include<iostream> using namespace std; int main(){ int sum; for(int i=0;i<6;i+=3){ sum=i; for(int j=i;j<6;j++)sum+=j; } cout<<sum<<end1; return 0; } 运行时的输出结果是( )。A.3B.10C.12D.15

有以下程序:includemain(intargc, char *argv[ ]){int i,len=0;for(i=1;i 有以下程序: #include <string.h> main(int argc, char *argv[ ]) { int i,len=0; for(i=1;i<argc;i+=2) len+=strlen(argv[i]); printf("%d\n",len); } 经编译链接后生成的可执行文件是ex.exe,若运行时输入以下带参数的命令行 ex abcd efg h3 k44 执行后输出的结果是( )。A.14B.12C.8D.6

现有如下程序段,则程序段的输出结果为 【16】 。#include "stdio.h"int fun(){static int k;return k;}main(){int m;m=fun();printf("%d\n",m);}

请编写一个函数sum(int array[],int len),该函数返回数组array的所有整数元素的和,其中len为数组array的长度。注意:部分源程序已存在文件test34_2.cpp中。请勿修改主函数main和其他函数中的任何内容,仅在函数sum的花括号中填写若干语句。程序输出结果如下:sum of array 15文件test34_2.cpp的内容如下:include <iostream.h>int sum(int array[],int len){}void main(){static int a[5]-{1,2,3,4,5};int result=sum(a,5);cout<<"sum of array "<<result<<end1;}

下列程序的执行结果是______。 include int a; int sum_a(void) { a=a+5; return a; 下列程序的执行结果是______。include<lostream.h>int a;int sum_a(void){a=a+5;return a;}void main(void){a=a+sum_a( );cout<<a<<endl;}

有以下程序: include include usingnamespacestd; intmain() {intarrays 有以下程序: #include <iostream> #include <cstdlib> using namespace std; int main() { int arraysize; int *array; cout<<"Please input the size of the array:"; cin>>arraySiZe; array=new int[arraysize]; if(array==NULL) { cout<<"allocate Error\n"; exit(1); } for(int i=0;i<arraysize;i++) array[i]=i*i; int j; cout<<"which element you want to check:"; cin>>j; cout<<array[j]<<end1; return 0; } 执行程序输入:10<空格>5,则输出结果为( )。A.allocate ErrorB.1C.0D.25

以下程序的输出结果是【】。 include using namespace std; int main(){ int sum,i; for( 以下程序的输出结果是【 】。include<iostream>using namespace std;int main(){int sum,i;for(sum=0,i=1;i<5;i++)sum+=i;cout<<sum<<endl;return 0;}

include “stdio.h” void main() { int sum=0,a=11; while(a #include “stdio.h” void main() { int sum=0,a=11; while(aA. sum=0B. sum=55C. sum=10D. sum=11

有如下程序:include using namespace std;int getSum(int num);int main (){ int i; 有如下程序: #include <iostream> using namespace std; int getSum(int num); int main () { int i; for (i=1; i<4; i++) cout<<getSum(i); return 0; } int getSum(int hum) { static int sum=O; sum+=num; return sum; } 上述程序执行后的输出结果是( )。A.136B.248C.123D.135

有以下程序:include void sum(int *a){a[0]=a[1];}main(){int aa[10]={1,2,3,4,5,6,7, 有以下程序: #include <stdio.h> void sum(int *a) { a[0]=a[1]; } main() { int aa[10]={1,2,3,4,5,6,7,8,9,10},i; for(i=2;i>=0;i--) sum(aa[i]); printf("%d\n",aa[0]); } 执行后的输出结果是( )。A.4B.3C.2D.1

下面程序执行的结果是【 】。 include using namespace std; void main(){ int sum=0; i 下面程序执行的结果是【 】。include <iostream>using namespace std;void main(){int sum=0;int array[6]={1,2,3,4,5,6};int *p;p=array[0];for(int i=0;i<6;i++){sum=sum+*p;p++;}cout<<sum;}

有以下程序includemain(int arge,char *argv[]){int i,len=0;for(i=1;i 有以下程序 #include<string.h> main(int arge,char *argv[]) { int i,len=0; for(i=1;i<arge;i++)len+=strlen(argv[i]); printf(“%d\n”,len); } 程序编译连接后生成的可执行文件是exl.exe,若运行时输入带参数的命令行是: exl abcd efg 10<回车> 则运行的结果是A.22B.17C.12D.9

有以下程序 include int fun(int a, int b) { if(b==0) return a; 有以下程序 #include <stdio.h> int fun(int a, int b) { if(b==0) return a; else return(fun(-a,-b)); } main() { printf("%d\n",fun(4,2)); } 程序的运行结果是______。A.1B.2C.3D.4

有以下程序 include include int fun(int n) {int * 有以下程序 #include <stdio.h> #include <stdlib.h> int fun(int n) {int *p; p=(int*)malloc(sizeof(int)); *p=n; return *p; } { int a; a=fun(10); printf("%d\n",a+fun(10)); } 程序的运行结果是______。A.0B.10C.20D.出错

有以下程序:includemain(int argc,char *argv[]){inti,len=0;for(i=1;i 有以下程序: #include <string.h> main(int argc,char *argv[]) { int i,len=0; for(i=1;i<argc;i++) len+=strlen(argv[i]); printf("%d\n",len); } 程序编译连接后生成的可执行文件是ex1.exe,若运行时输入带参数的命令行是: ex1 abcd efg 10<回车> 则运行的结果是( )。A.22B.17C.12D.9

有以下程序 include main(int argc ,char *argv[ ]) { int i,len=0; for(i=1;i 有以下程序 #include <string.h> main(int argc ,char *argv[ ]) { int i,len=0; for(i=1;i<argc;i+=2) len+=strlen(argv[i]); printf(“%d\n”,len); } 经编译链接后生成的可执行文件是ex.exe,若运行时输入以下带参数的命令行 ex abcd efg h3 k44 执行后输出结果是( )A.14B.12C.8D.6

请编写一个函数maxofarray(atype*p,int count),该函数从一个数组中找出其中的最大元素,并且数组中可以存放多种数据类型的元素。注意:部分源程序己存在文件test42_2.cpp中。请勿修改主函数main和其他函数中的任何内容,仅在函数maxofarray的花括号中填写若干语句。文件test42_2.cpp清单如下:include<iostream.h>include<string.h>include<conio.h>template<class atype>void maxofarray(atype* p,int count){}void main (){int len=5;char *p1;cout<<"the char type array and it's length is 5:\n";cout<<"the array element is a b c d e\n";p1=new char[len];for (int i=0;i<len;i++)p1[i]='a'+i;maxofarray(p1,len);}

有以下程序:include include main(int argc,char *argv[]){ int i,len=0;f 有以下程序: #include <stdio.h> #include <string.h> main(int argc,char *argv[]) { int i,len=0; for(i=1;i<argc;i+=2)len+=strlen(argv[i]); prinff("%d\n",len); } 此程序经编译链接后生成的可执行文件是ex.exe,若运行时输入以下带参数的命令行: ex abed efg h3 k44则执行后的输出结果时( )。A.14B.12C.8D.6

有以下程序: include using namespace std; int main() {int i=1,sum=0;Loop:if(i 有以下程序:include<iostream>using namespace std;int main(){int i=1,sum=0;Loop:if(i<=20){sum+=i;i++;goto Loop;}cout<<sum<<end1;return 0;}该程序运行后的输出结果是【 】。

下列程序的运行结果是()。 include define ADD(x)x+x main() {int m=1,n=2,k=3; int s 下列程序的运行结果是( )。#include<stdio.h>#define ADD(x)x+xmain(){ int m=1,n=2,k=3;int s=ADD(m+n)*k;printf("s=%d",s);}A.sum=18B.sum=10C.sum=9D.sum=25

有以下程序:include int fun(int x[], int n){ static int sum =0,i;for(i=0;i 有以下程序: #include <stdio.h> int fun(int x[], int n) { static int sum =0,i; for(i=0;i<n;i ++ )sum + =x[i]; return sum;{ int a[] ={1,2,3,4,5},b[]={6,7,8,9},s=0; s = fun(a,5) + fun(b,4) ;printf( "%d \n",s);程序执行后的输出结果是( )。A.45B.50C.60D.55

有以下程序: include main(int argc,char *argv[ ]) { int i,len=0; for(i=1;i 有以下程序: #include<string.h> main(int argc,char *argv[ ]) { int i,len=0; for(i=1;i<argc;i++) len+=strlen(argv[i]); printf("%d\n",len); } 程序编译连接后生成的可执行文件是exl.exe,若运行时输入带参数的命令行是: exl abcd efg 10<回车> 则运行的结果是A.22B.17C.12D.9

有以下程序includemain(int argc,char *argv[]){ int i,len=0;fot(i=1;i 有以下程序 #include <stringh> main(int argc,char *argv[]) { int i,len=0; fot(i=1;i<argc;i+=2)len+=strlen(argv[i]); printf("%d\n",len); } 经编译连接后生成的可执行文件是ex.exe,若运行时输入以下带参数的命令行 ex abcd efg h3 k44 执行后输出结果是A.14B.12C.8D.6

单选题有如下程序:#includevoid change(int * array,int len){ for(;len=0;len--)array[len]-=1;}main(){ int i, array[5]={2,2}; change(array,4); for(i=0;i5;i++)printf("%d,",array[i]); printf("");}程序运行后的输出结果是(  )。A1,1,-1,-1,-1,B1,0,-1,1,-1,C1,1,1,1,1,D1,-1,1,-1,1,

单选题有以下程序:#include int sum(int *array,int len){ if(len == 0)  return array[0]; else  return array[0]+sum(array+1,len-1);}main(){ int i=1,j=3; printf(%d,,i++); {  int i = 0;  i+=j*2;  printf(%d,%d,,i,j); } printf(%d,%d,i,j);}程序运行后的输出结果是(  )。A1,6,3,1,3B1,6,3,2,3C1,6,3,6,3D1,7,3,2,3

单选题有如下程序: #include voidchange(int*array,intlen) {  for(;len=0;len--)   array[len]+=2; } main() {  inti,array[5]={1,2};  change(array,4);  for(i=0;i4;i++)   printf("%d,",array[i]);  printf(""); } 程序运行后的输出结果是(  )。A2,3,4,5,B3,4,5,6,C3,4,2,2,D1,2,0,0,

单选题有如下程序:#include struct pair{ int first,second;};struct pair get_min_max(int*array, int len){ int i; struct pair res; res.first=array[0]; res.second=array[0]; for(i=1;ires.second)   res.second=array[i]; } return res;}main(){ int array[5]={9,1,3,4}; struct pair min_max = get_min_max(array,5); printf(min=%d,max=%d, min_max.first, min_max.second);}程序运行后的输出结果是(  )。Amin=1,max=9Bmin=0,max=9Cmin=1,max=4Dmin=0,max=4