zoukankan      html  css  js  c++  java
  • 做选择题的时候发现的一种有趣的冒泡排序写法,可以多看一下。

    #include  <stdio.h>
        void fun(int a[ ], int n, int flag)
        {  int i=0,j, t;
           for (i=0; i<n-1; i++)
               for (j=i+1; j<n; j++)
                  if (flag)
                  {   if (a[i] < a[j])
                      { t = a[i]; a[i] = a[j]; a[j] = t;}
                  }
                  else
                  {   if (a[i] > a[j])
                      { t = a[i]; a[i] = a[j]; a[j] = t;}
                  }
        }  
        main( )
        {  int c[10]={7,9,10,8,3,5,1,6,2,4},i;
           fun(c, 10, 0);
           fun(c, 5, 1);
           for (i=0;i<10; i++)
               printf("%d,", c[i]);
        }

    答案:B

    A)1,2,3,4,5,6,7,8,9,10,

    B)5,4,3,2,1,6,7,8,9,10,

    C)6,7,8,9,10, 5,4,3,2,1,

    D)6,7,8,9,10, 1,2,3,4,5,

    题目解析:fun()函数的作用是定义了冒泡排序法,flag控制升序(0)或降序(1),n为参与排序的元素个数,c为数组的起始地址。因此fun(c,10,0)函数即将数组的10个数据升序排序,fun(c,5,1)函数即将数组的前5个数据降序排序,

    132.
     有以下程序
    #include <stdio.h>
    main()
    {   int a[3][3]={0,1,2,3,4,5,6,7,8},(*p)[3],i;
        p=a;
        for(i=0;i<3;i++)
        {  printf("%d ",(*p)[i]); p++; }
    }   
    程序的运行结果是

    答案:B

    A)1 4 7

    B)0 4 8

    C)0 3 6

    D)0 1 2

    题目解析:分析可知,a数组为一3*3的矩阵,输出的(*p)[i])为其对角线上的数值,即0,4,8。

    有点不能了解为啥输出的是对角线。。///////脑子一下蠢了,我去,简直就像打通任督二脉了,因为p++了,我好蠢呀,哭泣

    129.
     有如下程序 
    #include <stdio.h>
    void fun(int *a,int *b)
    {  for( ; (*a<*b) || (getchar()!='@') ; )
       {  (*a)++; (*b)--;  } 

    main()
    {  int i=0,j=5;
       fun(&i,&j);
       printf("%d,%d ",i,j); 

    程序运行时在第一列开始输入:
    ab@<回车>
    则运行结果是

    答案:B

    A)3,2

    B)5,0

    C)4,1

    D)0,5

    //最重要的是考察的短路问题,前面进行了3次*a<*b的比较,然后再进行2次输入ab@,最后getchar=@时跳出。

    219.
     有以下程序
     #include <stdio.h>
     main()
     {  int  a[3]={0},  i, j,  k=2;
        for( i=0; i<k; i++ )
          for( j=0; j<k; j++ )  a[j] = a[i]+1;
        printf("%d ", a[1] );
     }
    程序运行后的输出结果是

    答案:A

    A)3

    B)1

    C)0

    D)2

    注意循环套路

    当i=0、j=0时,a[0]=a[0]+1=1;

    当i=0、j=1时,a[1]=a[0]+1=2;

    当i=1、j=0时,a[0]=a[1]+1=3;

    当i=1、j=1时,a[1]=a[1]+1=3

  • 相关阅读:
    ORM开发之解析lambda实现完整查询(附测试例子)
    ORM开发之解析lambda实现group查询(附测试例子)
    ORM之殇,我们需要什么样的ORM框架?
    公开封尘已久的即时通讯源码
    javascript中的this与函数讲解
    javascript中的操作符详解1
    javascript中的继承与深度拷贝
    javascript之Object.defineProperty的奥妙
    javascript之活灵活现的Array
    jquery.Callbacks的实现
  • 原文地址:https://www.cnblogs.com/wven/p/13367811.html
Copyright © 2011-2022 走看看