• 最近遇到问题


    最近笔试面试的一些问题和感触 ,都是c,c++ 基础题 , 主要是做的题太少。 基础真的是没有, 这几年的大学生活都被狗吃了 真的很想吐槽自己的大学生活。 感觉找工作的一个月 都比大学学的基础都多。 现在不讲这些 马上把一些基础问题 重新回顾一下把。(最近复习我的C++啊)

    class Bass {
    
    public:
    
        Bass(){x = 1;}
    
     
    
        int x;
    
    };
    
     
    
    class Derive :public Bass {
    
        
    
        
    
    public:
    
        Derive(){x = 2;}
    
     
    
        int x ;
    
    };
    
     
    
     
    
    int main(int argc, const char * argv[])
    
    {
    
     
    
        Derive d;
    
        Bass & b1 = d;
    
        printf(" %i ,%li,%li",b1.x ,sizeof(b1),sizeof(d));
    
        return 0;
    
    }
    
     输出 : 1 4 8 

    记得面试碰到最多的问题是 sizeof  操作符的问题  一开始我都不知道这些 后来。。。。

    看了 http://lemonmilk.blog.51cto.com/  找一段重要的贴一下

    4。结构类型
    
    在上面的程序中,
    
    struct str{
                              double d;
                             char ch;
                              int data;
     }str_wu;
     struct str1{
                               char ch;
                                double d;
                                 int data;
     }str_wu1;
    
    两个不同的结构,但是内部的元素是相同的,都是double,intchar,只是顺序不一样,就结果不一样。why?
    
    这时因为VC存储数据的时候要对其,具体的情况如下:
    
    类型
      对齐方式(变量存放的起始地址相对于结构的起始地址的偏移量)
    
      Char
      偏移量必须为sizeof(char)即1的倍数
    
      int 
      偏移量必须为sizeof(int)即4的倍数
    
      float
      偏移量必须为sizeof(float)即4的倍数
    
      double
      偏移量必须为sizeof(double)即8的倍数
    
      Short
      偏移量必须为sizeof(short)即2的倍数
    
    比如:str_wu,为上面的结构分配空间的时候,VC根据成员变量出现的顺序和对齐方式,先为第一个成员dda1分配空间,其起始地址跟结构的起始地址相同(刚好偏移量0刚好为sizeof(double)的倍数),该成员变量占用sizeof(double)=8个字节;接下来为第二个成员dda分配空间,这时下一个可以分配的地址对于结构的起始地址的偏移量为8,是sizeof(char)的倍数,所以把dda存放在偏移量为8的地方满足对齐方式,该成员变量占用sizeof(char)=1个字节;接下来为第三个成员type分配空间,这时下一个可以分配的地址对于结构的起始地址的偏移量为9,不是sizeof(int)=4的倍数,为了满足对齐方式对偏移量的约束问题,VC自动填充3个字节(这三个字节没有放什么东西),这时下一个可以分配的地址对于结构的起始地址的偏移量为12,刚好是sizeof(int)=4的倍数,所以把type存放在偏移量为12的地方,该成员变量占用sizeof(int)=4个字节;这时整个结构的成员变量已经都分配了空间,总的占用的空间大小为:8+1+3+4=16,刚好为结构的字节边界数(即结构中占用最大空间的类型所占用的字节数sizeof(double)=8)的倍数,所以没有空缺的字节需要填充。所以整个结构的大小为:sizeof(str_wu)=8+1+3+4=16,其中有3个字节是VC自动填充的,没有放任何有意义的东西。

    还有好多是基础的太基础的问题  我都忽略了。 

    来个简单的算法把

      参考:http://hi.baidu.com/aztfei/item/70042cdf3103fa866cce3fd0

     1 关于找出数组中第二大的数
     2 
     3 public int FindSecond(int[] arr)
     4 {
     5 int length=arr.length; //数组长度
     6 int max=arr[0];    // 当前第一项为最大项
     7 int second=arr[1]; //当前第二项为最大项
     8 if (max < second)     //比较第一二项的大小,根据大小设定max,second
     9 {
    10    int temp = max;
    11    max = second;
    12    second = temp;
    13 }
    14 for(int i=2;i<length;i++)     //让后续的每一项和max,second比较,
    15 {
    16    if (arr[i] > max)            //修改max的值
    17    {
    18     second = max;
    19     max = arr[i];
    20    }
    21    else if (arr[i] < second)   //比second小继续循环。
    22    {
    23     continue;
    24    }
    25    else                               // 此项即比max小,但比second数组大的项,把它重新复制给second
    26    {
    27     second = arr[i];
    28    }
    29 }
    30 return second;
    31 }

    将字符串反序输出 

    //反序一个字符串
    void reverse(char s[])
    {
     char c;
     int i,j;
     j = strlen(s) - 1;
     for(i = 0;i < j;i ++)
     {
      c = s[i];
      s[i] = s[j];
      s[j] = c;
      j --;
     }
    }
    
    void main(void)
    {
     char str[LENGTH + 1];
     cout<<"Input a string:";
     cin>>str;
     reverse(str);
     cout<<"The string is reversed:"<<str<<endl;
    }

    问的最多的就是 手游的屏幕适配问题  可以看看

      http://blog.csdn.net/xiaominghimi/article/details/8918235

      http://www.ityran.com/archives/4018

    最近逼自己做了一个完整的 demo 去应聘  , 那样即使你C++ 不是很好。 面试的大牛也会对你好点的 , 不会太为难你, 工资还可观点呵呵。

    demo 就不放出来了。 呵呵。 技术太次了。

      想做手游的还是得看C++啊。

    以上是我的最近面试碰到多一点的题, 有好多还没有整理 等有条件的把。

      最头疼的是 做那些操作系统 的题, 要看啊。 

    做游戏那么麻烦么。 

      注: c++ c  数据结构  算法  操作系统  等

      

  • 相关阅读:
    javascript实现优先队列
    javascript中的队列结构
    mysql及php命名规范
    javascript使用栈结构将中缀表达式转换为后缀表达式并计算值
    【转】感知哈希算法——找出相似的图片
    重新注册iis的.NET Framework版本
    Extjs GridPanel用法详解
    Extjs Window用法详解
    Extjs Form用法详解(适用于Extjs5)
    Extjs MVC开发模式详解
  • 原文地址:https://www.cnblogs.com/linux-ios/p/3395538.html
Copyright © 2020-2023  润新知