环球宝贝月子怎么样,环球宝贝新一代集团面试题有哪些

环球宝贝月子怎么样,环球宝贝新一代集团面试题有哪些,以下我整理一些我曾经去面试环球宝贝这家公司的一些C#面试题。

写一个方法,求int数组的和

参考答案

static long TotalAllEvenNumbers(int[] intArray)
{
  return intArray.Where(i => i % 2 == 0).Sum(i => (long)i);
}

static long TotalAllEvenNumbers(int[] intArray)
{
  return (from i in intArray where i % 2 == 0 select (long)i).Sum();
}

关键点

  • 候选人是否利用C#语言特点,简化代码使解决方案更简洁(而不是使用包含循环,条件语句和累加器的更长的解决方案)
  • 候选人是否考虑到了溢出。比如:使用return intArray.Where(i => i % 2 == 0).Sum() 虽然只有一行,也很简单,但是溢出的可能性很高。而在上诉答案中溢出的可能性小了很多,如果候选人询问数组的大小的话,那么说明他正在考虑溢出的问题,这是非常好的

以下程序输出的内容是什么,并解释原因

class Program
{
  static String location;
  static DateTime time;

  static void Main()
  {
    Console.WriteLine(location == null ? "location is null" : location);
    Console.WriteLine(time == null ? "time is null" : time.ToString());
  }
}

参考答案
location is null
1/1/0001 12:00:00 AM
解释如下:虽然两个变量都未初始化,但是String引用类型 ,而 DateTime值类型,其默认值为 1/1/1 而非 null

if语句中的time和null比较是否有效? 为什么?

static DateTime time;
/* ... */
if (time == null)
{
    /* do something */
}

参考答案
有人可能会认为,由于DateTime变量永远不能为空(它自动初始化为0001年1月1日),因此当DateTime变量与null进行比较时,编译器会报错。但是,由于类型转换,编译器确实允许它,这可能会导致一些让你头疼的问题。

具体来说,==运算符会将等号两边的对象都转换成相同的类型,然后可以进行比较。这就是为什么像这样的写法会给你你期望的结果(而不是因为操作数是不同的类型而导致失败或表现异常):

double x = 5.0;
int y = 5;
Console.WriteLine(x == y); // 输出true

但是,这有时会导致意外行为,比如DateTime变量和null的比较。在这种情况下,DateTime变量和null文字都可以强制转换为Nullable <DateTime>。因此,比较这两个值是合法的,即使结果总是false。

不修改 Circle 类的定义,计算圆的周长

Circle 类的定义如下:

public sealed class Circle
{
  // 半径
  private double radius;

  public double Calculate(Func<double, double> op)
  {
    return op(radius);
  }
}

给你一个 Circle 的实例 circle,计算它的周长
参考答案

circle.Calculate(r => 2 * Math.PI * r);

由于我们无法访问对象的私有半径字段,因此我们告诉对象本身计算周长,方法是将计算函数传递给它。

许多C#程序员回避(或不理解)函数值参数。 虽然在这种情况下这个例子有点人为,但目的是看看申请人是否理解如何制定一个与Method的定义匹配的Calculate调用。

或者,有效(虽然不太优雅)的解决方案是从对象中检索半径值本身,然后使用结果执行计算:

var radius = circle.Calculate(r => r);
var circumference = 2 * Math.PI * radius;

无论哪种方式都有效。 我们主要想看到候选人熟悉并理解如何调用Calculate方法。

兵哥注: 我感觉添加一个静态扩展方法会更好

 public static class CircleExtention
    {
        public static double GetCircumference(this Circle circle)
        {
            return circle.Calculate(r => Math.PI * r * 2);
        }
    }

【async/await】以下程序会输出什么?为什么。

    class Program
    {
        private static int result ;

        static void Main()
        {
            var task = SaySomething();
            Console.WriteLine(result);
        }

        static async Task<int> SaySomething()
        {
            Console.WriteLine(1);
            await Task.Delay(50);
            Console.WriteLine(2);
            result = 3;
            return 4;
        }
    }

参考答案
输出为
1
0
tip 由于主线程没有等待子线程结束,所以子线程在主线程结束后立即被释放 所以 Console.WriteLine(2); 未被执行
兵哥注
对于 async 方法SaySomething被主线程调用时,主线程会一直执行async的方法,直到遇到await , 主线程将会从线程池中获取一个空闲的子线程,并把await 的Task.Delay方法 以及SaySomething中位于 await 后的所有代码交给子线程处理

可使用一下代码验证

    class Program
    {
        private static int result;

        static void Main()
        {
            Console.WriteLine($"Main Thread:{Thread.CurrentThread.ManagedThreadId}");
            var task = SaySomething();
            Console.WriteLine(result);
            Console.WriteLine(task.Result);
        }

        static async Task<int> SaySomething()
        {
            Console.WriteLine($"SaySomething Thread before await:{Thread.CurrentThread.ManagedThreadId}");
            Console.WriteLine(1);
            await Task.Delay(50);
            Console.WriteLine($"SaySomething Thread after await:{Thread.CurrentThread.ManagedThreadId}");
            Console.WriteLine(2);
            result = 3;
            return 4;
        }
    }

【delegate】以下程序会输出什么?为什么。

    class Program
    {
        delegate void Printer();

        static void Main()
        {
            List<Printer> printers = new List<Printer>();
            int i = 0;
            for (; i < 10; i++)
            {
                printers.Add(delegate { Console.WriteLine(i); });
            }

            foreach (var printer in printers)
            {
                printer();
            }
        }
    }

参考答案
将会输出10个10
因为所有的委托中的变量i都是指向同一块内存地址
兵哥注
对比代码如下

    class Program
    {
        delegate void Printer();

        static void Main()
        {
            List<Printer> printers = new List<Printer>();
            int i = 0;
            for (; i < 10; i++)
            {
                var j = i;
                printers.Add(delegate { Console.WriteLine(j); });
            }

            foreach (var printer in printers)
            {
                printer();
            }
        }
    }

是否可以在一个数组中储存各种不同类型的对象?

参考答案 可以,因为C#中所有的对象都继承自Object,所以可以使用object[] array = new object[3]; 来存储

比较C#中的 class 和 struct,它们有什么异同?

参考答案

  • 相同点

    1. 都是混合数据类型
    2. 都可以包含方法和事件
    3. 都可以继承接口
  • 不同点
特点 class struct
是否支持继承 支持 不支持
引用类型/值类型 引用类型 值类型
值是否可为null
新的实例是否会消耗没存 否(除非被装箱)

【执行顺序】以下程序会输出什么

public class TestStatic
{
 public static int TestValue = InitTestValue();

 private static int InitTestValue()
 {
     if (TestValue == 0)
     {
         TestValue = 20;
     }

     return 30;
 }

 public TestStatic()
 {
     if (TestValue == 0)
     {
         TestValue = 5;
     }
 }
 static TestStatic()
 {
     if (TestValue == 0)
     {
         TestValue = 10;
     }
 }

 public void Print()
 {
     if (TestValue == 5)
     {
         TestValue = 6;
     }
     Console.WriteLine("TestValue : " + TestValue);

 }
}

public static void Main(string[] args)
{

 TestStatic t = new TestStatic();
 t.Print();
}

参考答案 TestValue:30
执行顺序:静态变量赋值表达式=>静态构造函数=》构造函数

【exception】以下程序会输出什么

static void Main(string[] args)
{
    try
    {
        Console.WriteLine("Hello");
        throw new ArgumentNullException();
    }
    catch (ArgumentNullException)
    {
        Console.WriteLine("A");
    }
    catch (Exception)
    {
        Console.WriteLine("B");
    }
    finally
    {
        Console.WriteLine("C");
    }
    Console.ReadKey();
}

参考答案
Hello
A
C

作者:高效工具库
链接:https://www.jianshu.com/p/cda351b8b770
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

原文地址:https://www.cnblogs.com/huanqiujtuan/p/10511216.html

时间: 2024-10-09 07:05:04

环球宝贝月子怎么样,环球宝贝新一代集团面试题有哪些的相关文章

奇安信集团笔试题:二叉树的最近公共祖先(leetcode236),杀死进程(leetcode582)

1. 二叉树最近公共祖先 奇安信集团 2020校招 服务端开发-应用开发方向在线考试 编程题|20分2/2 寻祖问宗 时间限制:C/C++语言 1000MS:其他语言 3000MS 内存限制:C/C++语言 65536KB:其他语言 589824KB 题目描述: 姓氏是人的符号标志,是家族血脉的传承:族谱是家族血脉传承的文字记载.同姓的两个中国人,根据族谱或许能够查出上面几代内是同一个祖先.查一下族谱,也许当代某位同姓名人就是你的远房亲戚,惊喜不惊喜,意外不意外!!! 输入 二元查找树(1.若左

太阳能飞机即将环球飞行

请看以下相片:       2015年1月17日至22日,太阳能驱动飞机(#Si2)在阿联酋酋长国的首府阿布扎比(Abu dhabi)亮相,然后开始它的环球航行.          这次环球航行,预计需要飞行35,000公里,花费500小时,每小时飞行66公里.环球航行分为十段,每段的长短不等,有时需要连续飞行5天5夜,7,000多公里(飞跃大洋).驾驶员2人,轮换驾驶,地勤人员共计60人.         太阳能飞机在飞行中,不使用任何其他能源,全部能源来自太阳能.夜晚航行使用蓄电池.预计太阳

环球捕手模式开发app系统详解

环球捕手,环球捕手软件开发(张丽 185-6541-3369  微/电)环球捕手模式,环球捕手APP,环球捕手定制,环球捕手平台,环球捕手商城,环球捕手开发,环球捕手定制,环球捕手分销,环球捕手制作. 网络分销商把自己的货品通过自己创建的网上分销平台展示,分销会员把相中的商品的图片和信息添加到自己开设的网店里,当有顾客需要时,分销会员负责介绍商品并促成交易成功,然后通知网络分销商代为发货.分销会员主要靠差价获得收入,对个人来说,是一种"零风险"的创业模式. 今天张丽为大家介绍一款名叫环

环球夫人形象大使龚华 受邀出席戛纳电影节闭幕式

戛纳电影节已经进程过半,世界名流云集于此,你来我往好不热闹.昨天,小编同大家一起欣赏了华人女星在戛纳红毯上的风姿.今天,小编还要与大家分享一条十分令人欣喜的消息:5月21号我们的环球夫人龚华成为首位受邀出席戛纳电影节闭幕式的环球夫人,作为环球夫人形象大使亮相戛纳电影节红毯. 环球夫人全球执行主席李昀轩(左)亲自为龚华颁奖 同时,龚华还受邀参加在戛纳电影节期间举办的The Ambitious名流晚宴,与世界名模一同参加Ambitious走秀表演.这并非是龚华的首次国外T台秀.早在今年3月,龚华作为

环球捕手系统软件开发模式

2017年,分享经济在中国翻开了历史上全新的一页.传统意义上的分享经济来源于对经济剩余的循环再利用,体现为公众将闲置资源通过社会化平台与他人分享,进而获得收入的现象.分享经济是通过共享的理念让更多的人来了解产品,从而产生利润,提高企业的盈利和销售额.小米就是利用共享的理念开发了环球捕手商城,实现了大众创业,万众创新的理念.环球捕手系统软件开发模式:151-1222-4001(微/电) 环球捕手app商城: 环球捕手100%正品: 环球捕手理念: 环球捕手奖金制度: 环球捕手6大优势: 环球捕手人

淘宝sdk - 宝贝对象

宝贝数据: 宝贝对象($item): 宝贝ID :id 宝贝后台类目 :itemCategoryId 宝贝标题 :title 宝贝价格 :price 折扣价格 :discountPrice 图片地址 :picUrl 宝贝销售量 :soldCount 宝贝收藏量 :collectedCount 所属卖家ID :ownerId 宝贝评论数 :commentCount (此属性只有商城店铺有,C店铺没有) $item属性:exp:$item->id 获取宝贝链接:$uriManager->detai

淘宝搜索不到自己的宝贝是怎么回事

影响商品排名的关键因素有很多,而最重要的两个因素是“宝贝下架剩余时间”和“是否橱窗推荐”. *宝贝名称定义要准确:忌名称过于复杂或过于简单,要做到全而不乱,简而不缺,当把宝贝名称写好后,自己先搜索下,看是否容易搜索的到,搜索的难易程度如何,然后及时修正宝贝名称. *合理安排宝贝上架时间:如果店铺宝贝数量不到3000个的话,建议采用7天一循环的办法,时段设定一要把握所谓黄金时间,一般来说,上午10点以后,下午2 点到5点,晚上8点到10点,在淘宝上的买家相对多些,而在周六.日人相对少些.我们要在浏

淘宝宝贝详情页的优化技巧

客户进入店铺,第一眼看到的一般都是宝贝详情页.我们知道很多客户看到产品后直接影响其购买的关键因素是宝贝详情页.宝贝的详情描述能否吸引买家是关键.所以,如果你想提高成交量,就必须优化好自己的宝贝详情页. 那么问题来了,如何优化宝贝详情页呢? 1.宝贝标题(宝贝标题的优化设置技巧) 大部分的客户是通过搜索关键字来找到宝贝的,宝贝标题的优化重要性不言而喻.宝贝标题中有效关键字的个数和密度,将直接影响到宝贝被搜索到的几率,曝光率和间接影响访问量,所以做好标题的的优化已刻不容缓!! 2.宝贝主图 客户进入

【贪心专题】HDU 1257 最少拦截系统&amp;&amp;HDU 2111 Saving HDU (选宝贝)

链接:click here~~ 题意: 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一发的高度.某天,雷达捕捉到敌国的导弹来袭.由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹. 怎么办呢?多搞几套系统呗!你说说倒蛮容易,成本呢?成本是个大问题啊.所以俺就到这里来求救了,请帮助计算一下最少需要多少套拦截系统. [解题思路]: 直接模拟一边就可以,不知道想简单了还是数据