zoukankan      html  css  js  c++  java
  • C# 面试题(三)

    1、下面代码的输出结果是什么

    using System;
    class A
    {
    public A()
    {
    PrintFields();
    }
    public virtual void PrintFields(){}
    }
    class B:A
    {
    int x=1;
    int y;
    public B()
    {
    y=-1;
    }
    public override void PrintFields()
    {
    Console.WriteLine("x={0},y={1}",x,y);
    }

    答:X=1,Y=0;x=1 y = -1

    2、有一个字符串 "I am a good man",设计一个函数,返回 "man good a am I"。

    static string Reverse()    
          {    
                 string s = "I am a good man";    
                 string[] arr = s.Split(' ');    
                 string res = "";    
                 for (int i = arr.Length - 1; i >= 0; i--)    
                 {    
                     res += arr[i];    
                     if (i > 0)    
                         res += " ";    
                 }    
                 return res;    
             } 

    3、C# 九九乘法表算法实现

    static void Mu()    
              {    
                  string t = string.Empty;    
                  for (int i = 1; i < 10; i++)    
                  {    
                      for (int j = 1; j <= i; j++)    
                      {    
                          t = string.Format("{0}*{1}={2} ", j, i, (j * i));    
                          Console.Write(t);    
                          //if (j * i < 82)    
                          //    Console.Write(" ");    
                          if (i == j)    
                              Console.Write("
    ");    
                      }    
                  }    
              } 

    4、代码实现猫大叫一声,所有的老鼠都开始逃跑,主人被惊醒。

    namespace DelegateEvent  
        {  
            public delegate void SubEventHandler();  
            public abstract class Subject  
            {  
                public event SubEventHandler SubEvent;  
                protected void FireAway()   //开火, 抽象类可以有具体方法。  
                {  
                    if (this.SubEvent != null)  
                        this.SubEvent();  
                }  
            }  
              
            public class Cat:Subject  
            {  
                public void Cry()  
                {  
                    Console.WriteLine("cat cryed.")  
                    this.FireAway();  
                }  
            }  
          
            public abstract class Observer  //定义一个观察者的抽象类,这样的类有一点就是观察谁,这个谁肯定是一个类,这里指猫  
            {  
                public Observer(Subject sub)  //抽象类也可以定义构造函数  
                {   
                    sub.SubEvent +=new SubEventHandler(Respose);   //注册猫叫事件(表达有点含糊),当此事件触发的时候,老鼠会做出回应  
                }  
                public abstract void Respose();   
            }  
              
            //定义一个观察者,老鼠  
            public class Mouse : Observer  
            {  
                private string name;  
                public Mouse(string name, Subject sub)  //定义构造函数,并初始化父类  
                    : base(sub)  
                {  
                    this.name = name;  
                }  
          
                public override void Respose()  
                {  
                    Console.WriteLine(name+" attempt to escape!");  
                }  
            }  
            //定义一个观察者,主人  
            public class Master : Observer  
            {  
                public Master(Subject sub) : base(sub) { }  
                public override void Respose()  
                {  
                    Console.WriteLine("host waken");  
                }  
            }  
          
            class Program  
            {  
                static void Main(string[] args)  
                {  
                    Cat cat = new Cat();  
                    Mouse mouse1 = new Mouse("mouse1", cat); //在对象初始化的时候,已经注册了对猫叫的响应事件  
                    Mouse mouse2 = new Mouse("mouse2",cat);  
                    Master master = new Master(cat);  
                    cat.Cry();  
                    Console.Read();  
                }  
            }  
        }  
  • 相关阅读:
    word2013下,公式居中,编号右对齐
    Linux系统下,anaconda3与系统python共存
    LeetCode: 496 Next Greater Element I(easy)
    LeetCode: 463 Island Perimeter(easy)
    LeetCode: 620 Not Boring Movies(easy)
    C++: 其他类型转string
    LeetCode: 412 Fizz Buzz(easy)
    LeetCode: 344 Reverse String
    LeetCode: 566 Reshape the Matrix
    LeetCode: 575 Distribute Candies(easy)
  • 原文地址:https://www.cnblogs.com/zhengwei-cq/p/9011534.html
Copyright © 2011-2022 走看看