美文网首页
cocos2dx面试题

cocos2dx面试题

作者: AlanFu | 来源:发表于2018-07-17 16:44 被阅读0次
  1. a是二维数组,a[i][j]的指针访问方式为:( )
    A *(a+i+j)
    B ((a+i)+j)
    C *(a+i)+j
    D *a+i+j

2.输出以下结果

define add(a,b) a+b

int main()
{
printf("",3*add(4,7));
}

3.使用程序解答如何判断一个单向链表中是否有环。

struct  listtype
{
    int data;
    struct listtype * next;
}list;
 
int find_cicle(list *head)
{
     list *pFast=head;
     list *pSlow=head;
     if (pFast==NULL)
     {
          return -1;
      }
     while(pFast && pFast->next)
    {
        pFast=pFast->next->next;
        pSlow=pSlow->next;
        if (pFast==pSlow)
       {
           return 1;
        }
     }
     return 0
}

4.malloc/free 和new/delete的区别


区别.png

5.autorelease 和 release的区别

release 会立马对对象进行引用计数减一操作,如果当前对象的引用计数小于0,则会进行释放。
autorelease 则会将该对象放入到自动释放池中,当一帧结束的时候会执行release操作进行引用计数减一操作,如果当前对象的引用计数小于0,则会进行释放。

6.说说cocos2d的屏幕适配方案

7.分别写出BOOL,int ,float,指针类型的变量a与‘零’的比较语句

BOOL :  if ( !a ) or if(a)
int :   if ( a == 0)
float : const EXPRESSION EXP = 0.000001 if ( a < EXP&& a >-EXP)
pointer : if ( a != NULL) or if(a == NULL)

8.写一个函数找出一个整数数组中,第二大的数。

        int  max,second,i;
        max=0;
        second=0;
        for(i=0;i<length;i++){
            if(a[i]>max){
                second=max;
                max=a[i];
            } else if(a[i]>second){
                second=a[i];
            }
        }
        return second;
    }

    /***
     * 冒泡两次找到最大值
     * @param a
     * @param length
     * @return
     */
    public static int find2(int  a[],int length){
        int i=0;
        int j=0;
        for(i=0;i<2;i++){
            for(j=i;j<length;j++){
                if(a[i]<a[j]){
                    int temp=a[i];
                    a[i]=a[j];
                    a[j]=temp;
                }
                
            }
        }
        return a[1];
        
    }

相关文章

网友评论

      本文标题:cocos2dx面试题

      本文链接:https://www.haomeiwen.com/subject/miqgpftx.html