TOP

计算机二级考试C 语言试题10
2011-09-20 13:19:31 来源: 作者: 【 】 浏览:252次 评论:0
微信搜索关注"91考试网"公众号,领30元,获取公务员、事业编、教师等考试资料40G!

10输入4个整数,找出其中最大的数。用函数的嵌套调用来处理。

 

方法:在主函数中调用一个max_4函数来求4个整数中的最大数。然后在max_4函数中再调用一个max_2函数来求2个整数中的最大数。最后在主函数中输出结果。

 

#include <stdio.h>

 

void main()

 

{

 

    int max_4(int a,int b,int c,int d);  /* max_4函数的声明 */

 

    int a,b,c,d,max;

 

    printf("Please enter 4 interger numbers:");

 

    scanf("%d %d %d %d ",&a,&b,&c,&d);

 

    max=max_4(a,b,c,d);                    /* 调用max_4函数 */

 

    printf("max=%d \n",max);

 

} 

 

int max_4(int a,int b,int c,int d)  /* max_4函数的定义 */

 

{int max_2(int,int);  /* max_2函数的声明 */

 

 int m;

 

 m=max_2(a,b);    /* 调用max_2函数 */

 

 m=max_2(m,c);   /* 调用max_2函数 */

 

 m=max_2(m,d);   /* 调用max_2函数 */

 

 return(m);     /* 函数返回值是4个数中的最大者 */

 

}

 

int max_2(int a,int b)          

 

{if(a>b)

 

   return a;             

 

 else

 

 return b;      /* 函数返回值是ab中的大者 */

 

}               运行结果:Please enter 4 interger numbers:11 45 –54 0       max=45

 

11用递归方法求n!

 

求n!也可以用递归方法,即5!等于4!×5,而4!=3!×4…1!=1。

 

可用下面的递归公式表示:

 

 n!= (n=0,1)

 

       n·(n-1)!     (n>1)

 

程序如下:

 

 #include <stdio.h>

 

void  main()

 

 {long fac(int n);                /* fac函数的声明 */

 

  int n;

 

  long y;

 

  printf("input an integer number:");

 

  scanf("%d",&n);

 

  y=fac(n);

 

  printf("%d!=%ld\n",n,y);

 

}

 

long fac(int n)                       /* 定义fac函数 */  

 

 {

 

  long f;

 

  if(n<0)

 

        printf("n<0,data error!");

 

  else if(n==0||n==1)                      运行结果:Input an integer number10

 

        f=1;                                           10!=3628800

 

  else  f=fac(n-1)*n;

 

     return(f);

 

 }

 

12有两个数组a和b,各有10个元素,将它们对应地逐个相比(即a[0]与b[0]比,a[1]与b[1]比……)。如果a数组中的元素大于b数组中的相应元素的数目多于b数组中元素大于a数组中相应元素的数目(例如,ai>bi6次,bi>ai3次,其中i每次为不同的值),则认为a数组大于b数组,并分别统计出两个数组相应元素大于、等于、小于的次数。

 

void main()

 

   int large(int xint y)         /*  函数声明 */

 

       int [10],[10],i,n=0,m=0,k=0

 

       printf”enter array a:\n”);

 

       for(i=0;i<10;i+ +)

 

       scanf(”%d”,&a[i])

 

        printf”\n”);

 

        printf” enter array b:\n”);

 

       for(i=0;i<10;i+ +)

 

       scanf(”%d”,&b[i])

 

        printf”\n”);

 

      for(i=0;i<10;i+ +)

 

           {  if(large ([i],[i] )== 1)  n=n+1

 

              else if( large ([i],[i] )==0) m=m+1

 

                  else k=k+1}

 

    printf("a[i]>b[i] %d times\na[i]=b[i] %d 

 

             times\na[i]<b[i] %d times\n",n,m,k);

 

if(n>k) printf("array a is larger than array bn");

 

    else if (n<k) printf("array a is smaller than array b\n");

 

         else  printf("array is equal to array bn");

 

 

largeint  xint  y

 

{  int  flag

 

   ifx>yflag=1;

 

 else ifx<yflag=-1;

 

  else flag=0;

 

   returnflag);

 

 

运行情况如下:

 

     enter array a 1 3 5 7 9 8 6 4 2 0     

 

enter array b5 3 8 9 –1 –3 5 6 0 4

 

      a[i]>b[i] times

 

      a[i]=b[i] times

 

      a[i]<b[i] times

 

      array a is smaller thann array b

 

Tags: 责任编辑:91kaoshiwang
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇计算机二级考试C语言试题11 下一篇计算机二级考试C 语言试题9

相关栏目

最新文章

推荐文章

网站客服QQ: 960335752 - 14613519 - 48225117