美文网首页
网易上级笔试题

网易上级笔试题

作者: subject_2619 | 来源:发表于2017-09-10 17:05 被阅读0次

    2018网易上级笔试题,总共分为三个部分,第一部分是选择题,难度可能可能根据不同的岗位难度不太一样,反正我做的是iOS客户端选择题,处于中等水平吧,不是很难。第二部分是编程题,总共是三大题,我只做了第一题和第三题,第二题感觉有点难度,反正是花了2分钟理解题目,直接放弃了。第三部分是问答题,有2个小题目。
    第一部分20道选择题,就不多说了。
    第二部分,第一道编程题是相反数题目。比如说给一个数字23,然后将这个数按照相反的顺序变成32,然后再将32和23相加,得到的数输出,确实挺简单的,代码如下:

           long Decimal(long number)
            {
                long tmp1, tmp2 = 0;
                long tmp = number;
                if (tmp < 1)
                    return -1;
                if (tmp < 10)
                    return tmp*2;
                tmp1 = tmp;
                while(tmp/10 !=0)
                {
                    tmp2 = tmp2 * 10 + tmp % 10;
                    tmp = tmp / 10;
                }
                tmp2 = tmp2 * 10 + tmp % 10;
                long returnNumber = tmp1 + tmp2;
                return returnNumber;
            }
    

    编程第二题,没搞懂,我就不献丑了
    编程第三题,要求比较多,首先是从界面输入一个数组,数组中经过任意的换位置,看这个数组能不能满足a[i]*a[i+1]能够被4除尽,可以的话就输出true,否则为false,但是这只是一半的要求,还要求我们从界面输入一个数字,该数字表示你要输入几个数组,然后一个输入数组的个数和数组的内容,格式如下:

    输入输出的要求
          public static void Main(string[] args)
            {
    
                Console.Write("输入一个 数组个数:");
                string numberStr = Console.ReadLine();
                int number = Convert.ToInt16(numberStr);
    
                for (int i = 0; i < number; i++)
                {
                    Console.Write("输入一个数组长度:");
                    int lenth = Convert.ToInt16(Console.ReadLine());
                    string str = Console.ReadLine();
                    string[] numStr = str.Split(new string[] {" "}, StringSplitOptions.None);
                    if (numStr.Length != lenth)
                        return;
                    bool result = IsNiuBoShi(lenth, numStr);
                    Console.Write("结果:");
                    Console.WriteLine(result);
                }
            }
    
            static bool IsNiuBoShi(int length, string[] arr)
            {
                if (arr.Length == 0 && length != arr.Length)
                    return false;
                int tmp1 = 0, tmp2 = 0;
                for (int i = 0; i < length; i++)
                {
                    int tmp = Convert.ToInt16(arr[i]);
                    if (tmp % 4 == 0)
                        tmp1++;
                    if (tmp % 4 != 0 && tmp % 2 == 0)
                        tmp2++;
                }
                if (tmp1 + tmp2/2 >= length / 2)
                    return true;
                else
                    return false;
            }
    

    第三部分为解答题:
    第一小题为:unrecognized selector sent to instance的原因,已经报错之前的整个过程,简单说一下,这个题目网上应该很多,原因是对象的提前释放,大家可以网上百度一下就出来了。
    第二小题,就是在分类/Category中添加一个属性,这里用到了Runtime机制,不懂得大家可以看一下我的上篇文章。

    哪里有不对的地方或者有更好的方法,大家一起来讨论一下吧!

    相关文章

      网友评论

          本文标题:网易上级笔试题

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