下面程序的运行结果是: 【 17 】 。#include <stdio.h>int f(int a[],int n){ if(n>1)return a[0] + f(a+1, n-1);elsereturn a[0];}main(){ int aa[10]={1,2,3,4,5,6,7,8,9,10}, s;s = f(aa+2,4); printf("%d\n", s);}

题目

下面程序的运行结果是: 【 17 】 。

#include <stdio.h>

int f(int a[],int n)

{ if(n>1)

return a[0] + f(a+1, n-1);

else

return a[0];

}

main()

{ int aa[10]={1,2,3,4,5,6,7,8,9,10}, s;

s = f(aa+2,4); printf("%d\n", s);

}


相似考题
更多“下面程序的运行结果是: 【 17 】 。#include &lt;stdio.h&gt;int f(int a[],int n){ if(n&gt;1 ”相关问题
  • 第1题:

    有以下程序include<stdio.h>int*f(int*p,int*q);main( ){int m=1,n=2,*r=&m;r=f(r,&am

    有以下程序

    include<stdio.h>

    int*f(int*p,int*q);

    main( )

    {int m=1,n=2,*r=&m;

    r=f(r,&n);printf(”%d\n”,*r);

    }

    int-f(int*P,int*q)

    (return(*p>*q)?p:q;)

    程序运行后的输出结果是______。


    正确答案:2
    2 解析:函数f的返回值的类型是int*,作用是返回两个int*型指针所指变量中值大的那个指针的。本题中定义了一个int*型指针r并置初值&m,即指针r指向m。r=f(r,&n),由于m的值小于n值,所以f函数返回值为&n,所以输出为2,即n值。

  • 第2题:

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

    B.10

    C.20

    D.出错


    正确答案:C
    解析:malloc(sizeof(int))的作用是开辟一个长度为sizeof(int)存储空间,并通过强制类型转换(int*)将此存储空间的地址赋给了—个整型的指针变量p。然后执行语句“*p=n”,使得*p的值为10,并通过返回此值,在主函数中输出a+10的值,即输出20。

  • 第3题:

    有下列程序: #include<stdi0.h> voidf(int*P,int*q); voidmain( ) (intm=1,n=2,*r=&m; f(r,&n);printf("%d,%d",m,n); } voidf(int*P,int*q)

    {p=p+1;*q=*q+1;} 程序运行后的输出结果是( )。

    A.1,3

    B.2,3

    C.1,4

    D.1,2


    正确答案:A
    A。【解析】本题中子函数f(int*p,*q)的功能是对指针p的值加1,*q的值加1。主函数中调用子函数f(r,&n)时,子函数的执行结果是r值加1,n的值加1。而m的值并没有发生变化,最后程序输出的结果为1,3。所以正确答案为选项A。

  • 第4题:

    下面程序的运行结果是( )。include main(){int a=25; fun(&A); }fun(int *x){ print

    下面程序的运行结果是( )。

    include<stdio.h>

    main()

    {int a=25;

    fun(&A);

    }

    fun(int *x)

    { printf("%d\n",++*x);

    }


    正确答案:26
    26 解析:在主函数中只调用了fun函数,调用时把变量a的地址传递给形参。fun函数的形参x是一个指针,其基类型与主函数中a的类型一致,因此在调用时得到的是a的地址,输出项是++*x,*x代表的就是主函数中变量a的存储单元,++*x就是使主函数中a的值加1,输出26。

  • 第5题:

    下列程序的运行结果是 inClude roid fun(int *a,int * b) { int * k; k=a;a=b

    下列程序的运行结果是 #inClude<iostream.h> roid fun(int *a,int * b) { int * k; k=a;a=b;b=k;} void main( ) { int a=2004,b=9,* x=&a,* y=&b; fun(x,y); cout < < a < <" " < < b < < end1;}

    A.2004 9

    B.9 2004

    C.0 0

    D.编译时出错


    正确答案:A
    解析:本题函数fun中形参是两个指针变量,函数fun只是将这两个指针的指向的地址交换了一下而并没有交换它们所指向的地址中的数据。虽然,主函数中声明的变量a,b是整型变量而函数fun中的形参是两个指针变量,这两个变量仅仅是两个参数,与主函数中的那两个变量含义是不同的。注意:采用指针或引用可将值交换。

  • 第6题:

    下面程序的运行结果是includevoid fun(int*a,int*b){int X= *a;* a= *b;*b=X;cout<

    下面程序的运行结果是 #include<iostream,h> void fun(int*a,int*b) { int X= *a; * a= *b; *b=X; cout<< *a<< *b<<" "; void main() int x=1, y=2; fun(&x,&y); cout<<X<<y<<end1; }

    A.12 12

    B.12 21

    C.21 12

    D.21 11


    正确答案:D
    解析:本题考查的是指针和引用,函数fun完成把x和y互换的操作。