C#笔试题目

1.产生20个不同的两位整数的随机数,并且对它们进行由小到大的排序。特别提醒:程序要自动生成20个不同的整数,而且这些整数必须是两位的,如:3不是两位整数,58是两位整数。

2.一个6位数乘以一个3位数,得到一个结果。但不清楚6位数中的两个数字是什么,而且结果中有一位数字也不清楚,请您编程,找出问号代表的数字,答案可能有多个。
                12?56?
    X               123
--------------
    =     154?4987

3.在1到1,000,000的整数中,找出同时符合以下条件的数:
a.必须是质数
b.该数字各位数字之和为偶数,如:数字12345,各位数字之和为1+2+3+4+5=15,不是偶数。

4.Windows文件系统中,文件夹包含文件夹和文件,请你编写一段程序,找出C盘根目录下面的所有文件及文件夹,包括所有的子文件夹以及子文件夹的所有子孙。

using System.Collections.Generic;
using System;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        //RandomSort();
        //SearchNumber();
        //SearchNumber2();
        //SearchPrimeNum();
        PrintFolder("D://test");
    }

    ///   <summary>
    ///   产生随机数,排序
    ///   </summary>
    static void RandomSort()
    {
        List<int> list = new List<int>();

        Random random = new Random();
        int seed;
        for (int i = 0; i < 20; i++)
        {
            seed = random.Next(10, 100);
            while (list.Contains(seed))
            {
                seed = random.Next(10, 100);
            }
            list.Add(seed);
        }

        list.Sort();

        foreach (int l in list)
        {
            Console.WriteLine(l.ToString());
        }

        Console.Read();
    }

    ///   <summary>
    ///   本质是120560*123+x*1000*123+y*123=15404987+z*10000
    ///   </summary>
    static void SearchNumber()
    {

        for (int x = 0; x < 10; x++)
        {
            for (int y = 0; y < 10; y++)
            {
                //for (int z = 0; z < 10; z++)
                //{
                //    if ((120560 + x * 1000 + y) * 123 == 15404987 + z * 10000)
                //    {
                //        Console.WriteLine(string.Format("x   =   {0},   y   =   {1},   z   =   {2}", x, y, z));

                //    }
                //}
                if ((120560 * 123 + x * 1000 * 123 + y * 123 - 15404987) % 10000 == 0)
                {
                    Console.WriteLine(string.Format("x   =   {0},   y   =   {1},   z   =   {2}", x, y, (120560 * 123 + x * 1000 * 123 + y * 123 - 15404987) / 10000));
                    break;
                }
            }
        }
        Console.Read();
    }
    ///   <summary>
    ///   本质是把结果154?4987中的?用0-9来做个for循环,在循环里将这个结果除以123,如果得到的结果与被乘数进行比较得出?中代表的数字
    ///   </summary>    
    static void SearchNumber2()
    {
        for (int i = 0; i < 10; i++)
        {
            if (((15404987 + i * 10000) % 123) == 0)
            {  //求余,确保能被123整除
                string sMultiplicand = Convert.ToString((15404987 + i * 10000) / 123);  //得出被乘数
                if (sMultiplicand.Length == 6 && sMultiplicand.Substring(0, 2) == "12" && sMultiplicand.Substring(3, 2) == "56")
                {
                    Console.WriteLine(sMultiplicand.Substring(2, 1));
                    Console.WriteLine(sMultiplicand.Substring(5, 1));
                    Console.WriteLine(i.ToString());
                }
            }
        }
    }

 

    ///   <summary>
    ///   首先查找一个质数,
    ///   </summary>
    static void SearchPrimeNum()
    {
        for (int i = 1; i <= 100; i++)
        {
            if (PrimeNum(i))
            {
                if (AddNumberIsEven(i))
                {
                    Console.WriteLine(i.ToString());
                 }
            }
        }

        Console.Read();
    }

    static bool PrimeNum(int maxNum)
    {
        int i = maxNum;
        bool IsPrime = true;
        //for (int j = 2; j < i; j++)
        for (int j = 2; j <=Math.Sqrt(i); j++)
        {
            if (i % j == 0)
            {
                IsPrime = false;
                break;//有因子证明是合数,马上退出循环。
            }
        }

        return IsPrime;


    }


    ///   <summary>
    ///   判断奇偶数
    ///   </summary>
    ///   <param   name="input"> </param>
    ///   <returns> </returns>
    static bool AddNumberIsEven(int input)
    {
        int num = 0;
        string numStr = input.ToString();
        for (int i = 0; i < numStr.Length; i++)
        {
            num += int.Parse(numStr[i].ToString());
        }
        if (num % 2 == 0)
        {
            return true;
        }
        return false;
    }
    static bool IsDigitSumEven(int n)
    {
        int sum = 0;
        while (n > 0)
        {
            sum += n % 10;
            n /= 10;
        }
        return sum % 2 == 0;
    }
    public static void PrintFolder(string dir)
    {
        if (Directory.Exists(dir))
        {
            foreach (string d in Directory.GetFileSystemEntries(dir))
            {
                Console.WriteLine(d);
                PrintFolder(d);               //递归打印    
            }
        }
    }

    public static void FindAllFile(string strPath)
    {
        Console.WriteLine(strPath);
        string[] arrayFileNames = System.IO.Directory.GetFiles(strPath);

        foreach (string strFileName in arrayFileNames)
        {
            Console.WriteLine(strFileName);
        }
        string[] arrayFileDirs = System.IO.Directory.GetDirectories(strPath);
        foreach (string strSubPath in arrayFileDirs)C#笔试题目
        {
            FindAllFile(strSubPath);
        }
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值