一起答
主观

请写出下面程序的运行结果。

long fun (int k )

{

long fac;

if(k= =0)

return 1;

else

{

fac=k* fun(k-1);

printf("fac=%ld\n",fac);

}

return fac;

}

void main(void)

{

int n=3;

printf("result=%ld\n",fun(n+1)/n);

}

试题出自试卷《计算机基础与程序设计2007年4月真题试题与答案解析(02275)》
参考答案
查看试卷详情
相关试题
  1. 在c盘根目录下有一个ASCII码文件month.dat,文件中有12个字符串分别为英文1~12月的名字,现从键盘上输入一个表示月份的整数,输出该月份的名字。若输入的整数不在1~12之间,则打印“Illegal month”。

  2. 从键盘输入10个整数并依次赋给整型数组中的元素,然后求该数组中值为正数的元素的累加和并输出该累加和。

  3. 阅读下面程序段,说明其功能:

    int x, y=0,k; FILE* fp;

    fp=fopen("data.txt","rb");

    for(k=0;k﹤5;k++)

    fread(&x,sizeof(int),1,fp),y+=x;

    printf("%d,"y);

    fclose(fp);

  4. 阅读下面程序,写出运行结果。

    #include﹤stdio.h﹥

    #include﹤string.h﹥

    void f(char *s)

    {

    char *t, c, *p=s;

    for(t=s+strlen(s)-1;s﹤t;s++,t――)

    {

      c=*s,*s=*t,*t=c;

    printf("%s\n",p);

    }

    }

    void main (void)

    {

     char a [20]="abcdefg";

    f(a);

    }

  5. 请写出下面程序的运行结果。

    long fun (int k )

    {

    long fac;

    if(k= =0)

    return 1;

    else

    {

    fac=k* fun(k-1);

    printf("fac=%ld\n",fac);

    }

    return fac;

    }

    void main(void)

    {

    int n=3;

    printf("result=%ld\n",fun(n+1)/n);

    }

  6. 从键盘输入字符A时,写出下面程序的运行结果。(注:字符A的ASCII码是65)

     #include"stdio.h"

    main( )

    {

    char ch;

    ch=putchar(getchar( ) );

    printf(",%d,%o,%c",ch+1,ch+1,ch+32);

    }

  7. 阅读下面程序,写出程序的运行结果。

    char a [ ]={'9','8','7','6','5','4','3','2,'1','0','\0'};

    void main (void)

    {

    int i =8,j;

    for(j=0;j﹤4;j++)

    printf("%s\n",&a[i -j ]);

    }

  8. 阅读下面程序:

    void main(void)

    {

     int s=0,n=0,x;

     label: scanf("%d",&x);

      if(x﹥0){

     s+=x;

     n++;

      printf("s=%d,n=%d,even=%f\n",s,n,1.0,*s/n);

       }

    if(x!=0)

      goto label;

    else

       printf("good bye!");

    }

    当依次输入12 -3 -6 5 13 0↙时,写出程序的运行结果。

  9. 试定义一个三行的二维字符数组s,并用"I am a boy", "you are a girl", "he is a teacher"对其进行初始化。

  10. 设有说明:int a[2][3];

    请用四种方式来表示数组元素a[1][2]。