前些时候做过的一份面试试题

王朝c#·作者佚名  2006-12-17
宽屏版  字体: |||超大  

题目不算太简单,但因为开卷,所以稍为查了一下资料还是轻松完成。提交过去后,即得面试的机会,但当知道没有.Net实际开发经验时,三两下打发我了,没有音信!不过也是的,像我这样的程序员,只出道那么一年时间,有更多的不确定因素,凭什么给你机会呢。战战兢兢几个月了,都做了不少题,发觉有些企业会出一些手册性的题目,就是说太细,内容这么多太细谁记得住啊?真晕!今天想重ghost机器,差点把这删了,贴出来看看也好。

XX软件程序员测试题目

测试人姓名:_Kemin_____

测试日期:___2004-11-2_____ 完成测试时间:_____2004-11-2_________

本次测试共三道题目,要求如下:

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();

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有