zoukankan      html  css  js  c++  java
  • U****S公司的几道面试题

    试题一

    Write the outputs:

    using System;
    using
     System.Collections.Generic;
    using
     System.Linq;
    using
     System.Text;

    namespace
     ConsoleApplication1
    {
        
    public abstract class
     A
        {
            
    public
     A()
            {
                Console.WriteLine(
    "A"
    );
            }

            
    public virtual void
     Fun()
            {
                Console.WriteLine(
    "A.Fun()"
    );
            }
        }

        
    public class
     B : A
        {
            
    public
     B()
            {
                Console.WriteLine(
    "B"
    );
            }

            
    public override void
      Fun()
            {
                Console.WriteLine(
    "B.Fun()"
    );
            }

            
    static void Main(string
    [] args)
            {
                A a 
    = new
     B();
                a.Fun();
                Console.Read();
            }
        }
    }

     

    A
    B
    B.Fun()

    试题二

    Write the outputs:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace ConsoleApplication1
    {
        
    public class A
        {
            
    public virtual void Fun1(int i)
            {
                Console.WriteLine(i);
            }

            
    public void Fun2(A a)
            {
                a.Fun1(
    1);
                Fun1(
    5);
            }
        }

        
    public class B : A
        {
            
    public override void Fun1(int i)
            {
                
    base.Fun1(i + 1);
            }

            
    public static void Main(string[] args)
            {
                B b 
    = new B();
                A a 
    = new A();
                a.Fun2(b);
                b.Fun2(a);
            }
        }
    }

     

    2
    5
    1
    6

    试题三

        /*
         *Write code to output a tree structure for objects in List<Employee>:
         *struct Employee
         *{
         *  public int Id;
         *  public string Name;
         *  public int MgrId;
         *}
         * Employee which mgrId is 0 must print as root
         * 
         * For example:
         * Assume we have 6 employee objects in list:
         * Employee1: {id=1, Name = "Mick", mgrId= 0}
         * Employee2: {id=2, Name = "John", mgrId= 1}
         * Employee3: {id=3, Name = "Steve", mgrId= 1}
         * Employee4: {id=4, Name = "Geogy", mgrId= 2}
         * Employee5: {id=5, Name = "Billy", mgrId= 2}
         * Employee6: {id=6, Name = "Cindy", mgrId= 3}
         * 
         * The outputs should be:
         * Mick
         * ----John
         *      ----Geogy
         *          -----Cindy
         *      ----Billy
         * ----Steve
         
    */

    (在你写出结果前请不要参看答案)

    答案
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace ConsoleApplication1
    {

        
    struct Employee
        {
            
    public int Id;
            
    public string Name;
            
    public int MgrId;
        }

        
    class Class2
        {
            
    static List<Employee> employees = GetList();

            
    public static void  Main(string[] agrs)
            {
                
    //output child mgr
                for (int i = 0; i < employees.Count; i++)
                {
                    
    if (employees[i].MgrId == 0//find the first one
                    {
                        Console.WriteLine(employees[i].Name);

                        WriteChild(employees[i].Id);

                        
    break;
                    }
                }

                Console.Read();
            }

            
    static void WriteChild(int mgrId)
            {
                
    for (int i = 0; i < employees.Count; i++)
                {
                    
    if (employees[i].MgrId==mgrId)
                    {
                        
    for (int j = 1; j < mgrId; j++)
                        {
                            Console.Write(
    "\t"); //Print Tab symbol
                        }

                        Console.WriteLine(
    "-----" + employees[i].Name);
                            
                        WriteChild(employees[i].Id);
                    }
                }

            }

            
    static List<Employee> GetList()
            {
                List
    <Employee> lst = new List<Employee>();

                Employee e1 
    = new Employee();

                e1 
    = new Employee();
                e1.Id 
    = 1;
                e1.Name 
    = "Mick";
                e1.MgrId 
    = 0;
                lst.Add(e1);

                e1 
    = new Employee();
                e1.Id 
    = 2;
                e1.Name 
    = "Jhon";
                e1.MgrId 
    = 1;
                lst.Add(e1);

                e1 
    = new Employee();
                e1.Id 
    = 3;
                e1.Name 
    = "Geogy";
                e1.MgrId 
    = 2;
                lst.Add(e1);

                e1 
    = new Employee();
                e1.Id 
    = 4;
                e1.Name 
    = "Steve";
                e1.MgrId 
    = 1;
                lst.Add(e1);

                e1 
    = new Employee();
                e1.Id 
    = 5;
                e1.Name 
    = "Billy";
                e1.MgrId 
    = 2;
                lst.Add(e1);

                e1 
    = new Employee();
                e1.Id 
    = 6;
                e1.Name 
    = "Cindy";
                e1.MgrId 
    = 3;
                lst.Add(e1);

                
    return lst;
            }
        }
    }
  • 相关阅读:
    代码review之 isInfoEnable()
    sdk、jdk、jre、jvm、jdt、cdt分别都是什么东西
    思考总结: 决胜21点 开篇 概率问题
    Java多线程开发系列之四:玩转多线程(线程的控制2)
    Java多线程开发系列之四:玩转多线程(线程的控制1)
    Java多线程开发系列之三:线程这一辈子(线程的生命周期)
    Java多线程开发系列之二:如何创建多线程
    [系列] Gin框架
    [系列] Gin框架
    [系列] Gin 框架
  • 原文地址:https://www.cnblogs.com/andy65007/p/1710433.html
Copyright © 2011-2022 走看看