有如下程序:#include <stdio.h>int sum(int *array,int len){ if(len

题目
单选题
有如下程序:#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

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

现有如下程序段,则程序段的输出结果为 【16】 。

#include "stdio.h"

int fun()

{static int k;

return k;}

main()

{int m;

m=fun();

printf("%d\n",m);}


正确答案:
0

第2题:

下列程序的执行结果是______。 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;

}


正确答案:10
10 解析:本题考查全局变量的使用。全局变量被系统默认初始化为0,故在执行a=a+sum-a( );语句时,首先执行sum_a函数,将a的值改变为5,该函数的返回值也是5,故最后a的值被赋值为10。

第3题:

有如下程序: 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.3

B.10

C.12

D.15


正确答案:D
解析:此题考查的是for循环。首先进入外循环,根据循环条件,i的初始化值为0,赋值给sum,进入内循环.i的初值也被赋值为 i的初始值0,所以第一次内循环sum值为0,判断j=0,小于6,进行第二次内循环,sum的值为1,同理,仍然进行内循环直到j=6,跳出内循环,sum=15:外循环中i=3,i6,满足循环条件进入第二次外循环,i=3,sum=3,进入内循环,j=3,同理,计算内循环中sum的值,直到j=6跳出内循环,此时sum=15;外循环中i=6,跳出外循环,执行输出语句,即sum=15。

第4题:

有如下程序: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.136

B.248

C.123

D.135


正确答案:A
解析:在函数getSum()中,局部变量sum被声明为static,并且初始化为0。该程序使用getSum()函数计算并报告当前计算所得结果。由于sum是static变量,因此它在函数调用过程中始终保持其值,即使函数调用结束,其空间也不会被释放,下次再调用时,上次运行结果仍然保留。

第5题:

以下程序的输出结果是【】。 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;

}


正确答案:10
10 解析:本题程序实现的是计算1+2+3+4的和,因此最后输出为10。

第6题:

请编写一个函数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;

}


正确答案:int sum(int array[]int len) { int sum=0; for (int i=0;ilen;i++) sum=sum+array[i]; return sum; }
int sum(int array[],int len) { int sum=0; for (int i=0;ilen;i++) sum=sum+array[i]; return sum; } 解析:本题主要考查考生对于数组访问和for循环语句的掌握。应该注意的是,长度为len的数组array的下标范围为0到 len-1,而不是从1到len,所以循环控制变量的初始值为0。

第7题:

有以下程序: 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 Error

B.1

C.0

D.25


正确答案:D
解析:程序中利用new()申请动态分配数组。利用for循环给数组array赋值。最后输出想要检查元素的值。程序输10,即数组array元素个数为10。程序输入5,即检查元素array[5]的值。由for循环的赋值运算可知array[5]的值为25,所以程序最后输出25。

第8题:

有以下程序: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.14

B.12

C.8

D.6


正确答案:D
解析:主函数的第一个参数argc为整形参数,记下从命令行输入的参数的个数;第二个参数argv是一个字符型的指针数组,它的每一个元素指向命令行输入的参数字符数。在本例中argc的值为5,argv[0]指向字符串“ex”,argv[l]指向参数字符串“abcd”, argv[2]指向字符串“efg”,argv[3]指向参数字符串“h3”, argv[4]指向参数字符串“k44”。在main()函数中,for循环执行了两次,当i =1时,len=O+strlen(argv[1]),而其中argv[l]=“abcd”,故此时len的值为4;当i=3时,len=4+strlen(argv[3]),而其中argv[3]=“h3”,故此时len的值为6;当i=5时,退出循环,故最后输出的len值为6。所以,4个选项中选项D符合题意。

第9题:

include “stdio.h” void main() { int sum=0,a=11; while(a<=10) {sum=sum+a; a++; }

#include “stdio.h” void main() { int sum=0,a=11; while(a<=10) {sum=sum+a; a++; } printf(“sum=%d\n”,sum); } 上述程序段的运行结果是( )

A. sum=0

B. sum=55

C. sum=10

D. sum=11


正确答案:A

第10题:

有以下程序: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.4

B.3

C.2

D.1


正确答案:A
解析:该程序通过main函数循环凋用sum函数。当i=2时,将实参aa[2]的地址传递给形参,此时a[0]=a[1]=aa[3]=4,即aa[2]=4;当i=1时,将实参aa[1]的地址传递给形参,此时a[0]=a[1]=aa[2]=4,即aa[1]=4;当i=0时,将实参aa[0]的地址传递给形参,此时a[0]=a[1]=aa[1]=4,即aa[0]=4;当i=-1时,不满足条件i>=0,跳出循环,程序执行后数组aa中的值为4,4,4,4,5,6,7,8,9,10,所以aa[0]=4。

更多相关问题