看到的三道测试题

简介: 在MSDN上看到了三道测试题,感觉挺好,帖过来看看: 本次测试共三道题目,要求如下: 1.  请用C#完成 2.  开卷独立完成,可以看书,上网等任何方式查找资料,但必须保证独立完成。一旦发现有不诚实行为,本公司将不予录取,后果自负。

在MSDN上看到了三道测试题,感觉挺好,帖过来看看:
本次测试共三道题目,要求如下:

1.  请用C#完成

2.  开卷独立完成,可以看书,上网等任何方式查找资料,但必须保证独立完成。一旦发现有不诚实行为,本公司将不予录取,后果自负。

 

题目一:

1.  编写冒泡排序程序

要求:

1)  请用C#编写一个冒泡排序的程序,

2)  要求排序的数据从文件C:\DATA.DAT中读取,数据间用逗号分隔。

解:

using System;

using System.IO;

class Test{

         static void BubbleSort(int[] ai) {

                   for (int j = ai.Length - 1; j > 0; j--){ // outer loop (backward)

                            for (int i = 0; i < j; i++) // inner loop (forward)

                                      if (ai[i] > ai[i+1])  Swap(ref ai[i], ref ai[i+1]);

                   }

         }

         static void Swap(ref int x,ref int y) {

                   x = x + y;

                   y = x - y;

                   x = x - y;

         }

         static void Main(string[] args) {

                   int[] ai = getData();

                   BubbleSort(ai);

                   foreach (int i in ai) Console.WriteLine(i);

                  Console.ReadLine();

         }

         public static int[] getData(){

                   try{

                      StreamReader sr = new StreamReader("data.dat");

                            string sLine;

                            sLine = sr.ReadLine();

                            string[] astr = sLine.Split(new Char[]{','});

                            int[] ai = new int[astr.Length];                     

                            for(int i = 0; i < astr.Length; i++)

                                     ai[i] = Convert.ToInt32(astr[i]);

                            return ai;

                   }

                   catch (Exception e)      {

                       // Let the user know what went wrong.

                       Console.WriteLine("The file could not be read:");

                       Console.WriteLine(e.Message);

                       return null;

                   }

         }

}

 

2.完成下面函数

         public static string Left(string sSource, int iLength)

         {

                   //完成类似于VB的Left函数的功能(返回字符串sSource的左iLength位的字符串)。

         }

解:

using System;

 

class Test{

    public static void Main(){

         //完成类似于VB的Left函数的功能(返回字符串sSource的左iLength位的字符串)。

         Console.WriteLine("Please enter a string to treaded:");

         string s = Console.ReadLine();

         int i = 0;

         bool bInputValid = false;

         while(!bInputValid){

                   try{

                            Console.WriteLine("Please enter the length from left most:");

                            i = Convert.ToInt32(Console.ReadLine());

                            if(i > s.Length) throw new Exception("");

                   }

                   catch(Exception e){

                            Console.WriteLine("It seen that your input data is not a integer or over flow, try again!");

                            Console.WriteLine(e.Message);

                            continue;

                   }

                   bInputValid = true;

         }

         Console.WriteLine("The left part string is {0} ", Left(s, i)); 

    }

         public static string Left(string sSource, int iLength){

                   char[] achar = new char[iLength];

                   for(int i = 0; i < iLength; i++)

                            achar[i] = sSource[i];//直接可字串中的单个字符,关键在这儿了

                   string sLeftPart = new string(achar);//直接构造回一个string

                   return sLeftPart;

         } 

}

 

2.   动物(animals)中的猫(cat)和狗(dog)都有咬(bit)的动作。请运用.net中对象的多态性技术展示猫咬和狗咬的动作。要求用C#代码实现。

 

 


 

解:

using System;

 

public class animals{

         //string sName;

         public virtual void bit(){

                   Console.Write("i am animals");

         }

}

 

public class dog : animals{

         public override void bit(){

                   Console.Write("bit by a dag!");

         }

}

 

public class cat : animals{

         public override void bit(){

                   Console.Write("bit by a cat!");

         }

}

 

public class Test{

         public static void Main(){

                   animals[] aa = new animals[2];

                   aa[0] = new dog();

                   aa[1] =  new cat();

                   foreach(animals a in aa) a.bit();

         } 

}

目录
相关文章
|
数据采集 机器学习/深度学习 弹性计算
阿里云服务器可以用来做什么?(老司机经验之谈)
2023阿里云服务器可以用来做什么?(老司机经验之谈)使用阿里云服务器可以做什么?阿里云百科分享使用阿里云服务器常用的十大使用场景,说是十大场景实际上用途有很多,阿里云百科分享常见的云服务器使用场景,如本地搭建ChatGPT、个人网站或博客、运维测试、学习Linux、跑Python、小程序服务器等等,云服务器吧分享使用阿里云服务器可以做的几件小事
184 0
|
消息中间件 安全 NoSQL
关于学生机的使用攻略和个人感想
学生机的使用攻略和个人感想
关于学生机的使用攻略和个人感想
|
弹性计算 云计算 Windows
阿里云服务器使用感想和心得体会
制作网页需要部署服务器,遇到问题。询问老师和同学得出解决问题的办法。在阿里云服务器中搭建环境来运行网站。感想阿里云提供高校学生资源。
|
消息中间件 网络协议 Linux
【C++面试】小厂S测试题
可以。 分析:如果析构函数没有设置为虚函数,当存在继承关系时,可能会存在内存泄漏的风险,如父类指针指向子类对象时,当我们在程序的最后delete掉父类指针
222 0
【C++面试】小厂S测试题
|
人工智能 算法 开发者
算法笔试模拟题精解之“寒假活动”
本题充分利用四个开门状态,就可以使用动态规划。
算法笔试模拟题精解之“寒假活动”
|
前端开发 JavaScript
下一篇
无影云桌面