下列程序的运行结果是()。 include voidfun(int*s,int*p) {static int t=3; *p=s[t]; t下列程序的运行结果是( )。#include<stdio.h>voidfun(int*s,int*p){ static int t=3;*p=s[t];t--;}void main(){ int a[]={2,3,4,5},k;int x;for(k=0;k<4;k++){ fun(a,&x);printf("%d,",x);}}A.5,4,3,2B.2,3,4,5,

题目
下列程序的运行结果是()。 include voidfun(int*s,int*p) {static int t=3; *p=s[t]; t

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

#include<stdio.h>

voidfun(int*s,int*p)

{ static int t=3;

*p=s[t];

t--;

}

void main()

{ int a[]={2,3,4,5},k;

int x;

for(k=0;k<4;k++)

{ fun(a,&x);

printf("%d,",x);

}

}

A.5,4,3,2

B.2,3,4,5,

C.2,2,2,2,

D.5,5,5,5,


相似考题
更多“下列程序的运行结果是()。 #include<stdio.h> voidfun(int*s,int*p) {static int t=3; *p=s[t]; t ”相关问题
  • 第1题:

    有以下程序 include void fun(int n, int *p) { int f1,t2; if(n==1 |

    有以下程序 #include <stdio.h> void fun(int n, int *p) { int f1,t2; if(n==1 ||n==2) *p=1; else { fun(n-1,&f1); fun(n-2,&f2); *p=f1+f2; } } main() { int s; fun(3,&s); printf("%d\n", s ); }

    A.2

    B.3

    C.4

    D.5


    正确答案:A
    解析:在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的递归调用。本题中的fun()函数直接调用了自身,所以它是一个递归函数。fun()函数中,当形参n为1或2时,让形参p所指内容为1。从这里可以看出形参p的用途是输出一个整数,所以我们不妨记作fun(1)=1、 fun(2)=1。如果是其他情况,那么输出结果*p的内容为f(n)=f(n-1)+f(n-2)。由此可见, fun()函数的作用是求斐波纳契数列第n项的值(斐波纳契数列第1和2项的值为1,以后各项分别为前两项之和:1、1、2、3、5、8、13……)。主函数中通过fun()函数,求第3项值;所以输出结果为2,故应该选择A。

  • 第2题:

    下列程序运行后,输出结果是______。 include include fun(char *w ,int

    下列程序运行后,输出结果是______。 #include <stdio. h> #include <string. h> fun (char *w ,int n) { char t,*s1,*s2; s1=w; s2=w+n-1; while (s1<s2) { t=*s1++; *s1=*s2--; *s2=t; } } main () { char *p; p="1234567"; fun (p, strlen (p)); puts (p); }

    A.1234567

    B.7654321

    C.1711717

    D.7177171


    正确答案:C

  • 第3题:

    以下程序的输出结果是( )。 include void swap(int*a,int*B){int*t; t=a;a=b;b=c;} main

    以下程序的输出结果是( )。 include<stdio.h> void swap(int*a,int*B){int*t; t=a;a=b;b=c;} main() {int i=3,j=5,*p=&i,*q=&j; swap(p,q);printf("%d %d\n",*p,*q); }


    正确答案:3 5
    3 5 解析:本题考查函数中形参和实参的传递。在C语言函数中实参和形参传递具有不可逆性,参数只能由实参传向形参,而不能由形参传向实参,虽然swap函数的功能是实现两个数的交换,但由于没有返回值,故最终的输出结果为3 5。

  • 第4题:

    下列程序的运行结果是()。includevoid fun (int*s,int*p){ static int t=3; *p=s [t];

    下列程序的运行结果是( )。 #include<stdio.h> void fun (int*s,int*p) { static int t=3; *p=s [t]; t--; } void main() int a[]={2, 3, 4, 5},k; int x; for(k=0; k<4; k++) { fun (a, &x); printf("%d,", x); }

    A.5,4,3,2

    B.2,3,4,5,

    C.2,2,2,2,

    D.5,5,5,5,


    正确答案:A
    解析:分析fun函数程序段,可知fun函数要实现的功能是将s中第(t+1)个元素以前的元素逆置赋给数组P。由于fun中函数定义了静态变量t=3因此,在主函数中调用函数fun(a,&x)时,就是要将数组a中前4个元素逆置赋给数组x,最后输出x数组。

  • 第5题:

    若有如下程序: int s[3] [3]={'a','b','C','d','e','f','g','h','i'},*t; main() {t:(int*)malloc(sizeof(int)); sub(t,s); printf("%c\n",*t); } sub(int*p,int b[][3]) {*p=b[2][1]; } 则程序运行后的输出结果是( )。

    A.d

    B.e

    C.h

    D.b


    正确答案:C
    解析:让指针变量t指向一个整型动态存储空间。函数sub中的语句“*p=b[2][1]”是将数组元素b[2)(1]即h赋给p所指向的存储单元中。