欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

.net机试题总结

程序员文章站 2022-04-02 23:22:47
1、下面是一个由*号组成的4行倒三角形图案。要求:1、输入倒三角形的行数,行数的取值3-21之间,对于非法的行数,要求抛出提示“非法行数!”;2、在屏幕上打...

1、下面是一个由*号组成的4行倒三角形图案。要求:1、输入倒三角形的行数,行数的取值3-21之间,对于非法的行数,要求抛出提示“非法行数!”;2、在屏幕上打印这个指定了行数的倒三角形。

*******

*****

***

*

  static void Main(string[] args)

        {

            while (true)

            {

                Console.Write("请输入行数:范围3-21,输入0退出程序。");

                int line = 0;

                if (!Int32.TryParse(Console.ReadLine(), out line))

                {

                    Console.WriteLine("请输入正确的行数!");

                    continue;

                }

                if (line == 0)

                {

                    Console.WriteLine("退出!");

                    break;

                }

                else if (!(line > 2 && line < 22))

                {

                    Console.WriteLine("非法行数!请输入正确的行数!");

                    continue;

                }

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

                {

                    int j = 0;

                    for (; j < i; j++)

                    {

                        Console.Write(" ");

                    }

                    for (int k = j; k < line; k++)

                    {

                        Console.Write("* ");

                    }

                    Console.WriteLine();

                }

            }

        }


2、现有1~100共一百个自然数,已随机放入一个有98个元素的数组a[98]。要求写出一个尽量简单的方案,找出没有被放入数组的那2个数,并在屏幕上打印这2个数。注意:程序不用实现自然数随机放入数组的过程。

  static void Main(string[] args)

        {

            while (true)

            {

                int[] arry = new int[98];

                Random rd = new Random();

                List<int> temp = new List<int>();

                //随机产生98个1-100自然数

                while (temp.Count < 98)

                {

                    int result = rd.Next(1, 101);//随机产生1~100随机数;

                    if (temp.Contains(result))

                    {

                        continue;

                    }

                    temp.Add(result);

                }

                //将98个数填充到数组中;

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

                {

                    arry[i] = temp[i];

                }


                ///*强烈推荐这种做法开始*/

                ////标识为1

                int[] arrytemp = new int[101];

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

                {

                    arrytemp[arry[i]] = 1;//给98个自然数标识;


                }

                for (int i = 1; i <= 100; i++)

                {

                    if (arrytemp[i] == 1)

                    {

                        continue;

                    }

                    Console.WriteLine(i);

                }

                /*强烈推荐这种做法结束*/

 

                /*以下一般的做法,我不推荐。。。。*/

                /*以下一般的做法,我不推荐。。。。*/

                /*以下一般的做法,我不推荐。。。。*/

                /*以下一般的做法,我不推荐。。。。*/

                /*以下一般的做法,我不推荐。。。。*/

                //定义一个泛型数组

                List<int> aa = new List<int>();


                //赋值1-100自然数

                for (int i = 1; i <= 100; i++)

                {

                    aa.Add(i);

                }


                //如果随机产生的98个自然数存在上面定义泛型数组中,将它移除;

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

                {

                    if (aa.Contains(arry[i]))

                    {

                        aa.Remove(arry[i]);

                    }

                }

                //打印这两个数

                foreach (var item in aa)

                {

                    Console.WriteLine(item);

                }

                Console.ReadKey();


    


               

            }

        }


3、一个文本文件含有如下内容:

4580616022644994|3000|赵涛

4580616022645017|6000|张屹

4580616022645090|3200|郑欣夏

上述文件每行为一个转账记录,第一列表示帐号,第二列表示金额,第三列表示开户人姓名。

创建一张数据库表(MS SQLServer数据库,表名和字段名自拟),请将上述文件逐条插入此表中。

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Data.SqlClient;

using System.Diagnostics;


namespace 从文本中提取数据到数据库中

{

    class Program

    {


        static void Main(string[] args)

        {

            //项目中的Programe.cs文件必须加上以下神奇的代码,对数据库的操作才能生效

            string dataDir = AppDomain.CurrentDomain.BaseDirectory;

            if (dataDir.EndsWith(@"\bin\Debug\")

                || dataDir.EndsWith(@"\bin\Release\"))

            {

                dataDir = System.IO.Directory.GetParent(dataDir).Parent.Parent.FullName;

                AppDomain.CurrentDomain.SetData("DataDirectory", dataDir);

            }


            //启用秒表来计时

            Stopwatch timer = new Stopwatch();

            timer.Start();

 

            string[] lines = System.IO.File.ReadAllLines(@"D:\转账记录.txt", Encoding.Default);

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

            {

                string[] str=lines[i].Split('|');


                using (SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;

AttachDBFilename=|DataDirectory|\ZhuanZhang.mdf;Integrated Security=True;User Instance=True"))

                {

                    conn.Open();

                    using (SqlCommand cmd = conn.CreateCommand())

                    {

                        cmd.CommandText = "Insert into T_ZhuanZhang (CardNum,Money,Name) values (@CardNum,@Money,@Name)";

                        cmd.Parameters.Add(new SqlParameter("CardNum", str[0]));

                        cmd.Parameters.Add(new SqlParameter("Money", str[1]));

                        cmd.Parameters.Add(new SqlParameter("Name", str[2]));

                        cmd.ExecuteNonQuery();

                    }

                }

            }


            Console.WriteLine("数据导入成功!");

            timer.Stop();

            Console.WriteLine(timer.Elapsed);

            Console.ReadKey();

 

        }

    }

}