Bài tập C# có lời giải

Học lập trình C#

Bài này cung cấp cho bạn danh sách các bài tập Csharp có lời giải ở các cấp độ khác nhau để bạn thực hành khi học ngôn ngữ lập trình Csharp:

Nội dung chính

  • Bài tập C# kinh điển
  • Bài tập C# cơ bản
  • Bài tập quản lý sinh viên trong C/C++

Bài tập C# kinh điển

  1. Dãy số Fibonacci
  2. Check Số nguyên tố
  3. Tính giai thừa
  4. Chuyển đổi hệ cơ số

Bài 01: Viết một chương trình C# in ra dãy số Fibonacci

Gợi ý:

  • Sử dụng đệ quy
  • Không sử dụng đệ quy

Code mẫu: In dãy số Fibonacci trong C không sử dụng đệ quy.


using System;
using System.Collections;
namespace VietTutsCsharp
{
    class Program
    {
        static void Main(string[] args)
        {
            int i;
            Console.Write("10 so dau tien cua day so Fibonacci: 
");
            for (i = 0; i < 10; i++)
            {
                Console.Write("{0} ", fibonacci(i));
            }
        
            Console.WriteLine();
            Console.ReadKey();
        }


        /**
         * Tinh so Fibonacci thu n
         * 
         * @param n: chi so cua so Fibonacci tinh tu 0 
         *           vd: F0 = 0, F1 = 1, F2 = 1, F3 = 2
         * @return So Fibonacci thu n
         */
        static int fibonacci(int n)
        {
            int f0 = 0;
            int f1 = 1;
            int fn = 1;
            int i;

            if (n < 0)
            {
                return -1;
            }
            else if (n == 0 || n == 1)
            {
                return n;
            }
            else
            {
                for (i = 2; i < n; i++)
                {
                    f0 = f1;
                    f1 = fn;
                    fn = f0 + f1;
                }
            }
            return fn;
        }
    }
}

Kết quả:

10 so dau tien cua day so Fibonacci: 
0 1 1 2 3 5 8 13 21 34 

Bài 02: Viết một chương tình C kiểm tra số nguyên tố.

Code mẫu:


using System;
using System.Collections;
namespace VietTutsCsharp
{
    class Program
    {
        static void Main(string[] args)
        {
            int i;
            Console.Write("Cac so nguyen to nho hon 100 la: 
");
            for (i = 0; i < 100; i++)
            {
                if (isPrimeNumber(i))
                {
                    Console.Write("{0} ", i);
                }
            }

            Console.WriteLine();
            Console.ReadKey();
        }


        /**
     * check so nguyen to trong C
     * 
     * @author viettuts.vn
     * @param n: so nguyen duong
     * @return 1 la so nguyen so, 
     *         0 khong la so nguyen to
     */
        static Boolean isPrimeNumber(int n)
        {
            // so nguyen n < 2 khong phai la so nguyen to
            if (n < 2)
            {
                return false;
            }
            // check so nguyen to khi n >= 2
            int squareRoot = (int)Math.Sqrt(n);
            int i;
            for (i = 2; i <= squareRoot; i++)
            {
                if (n % i == 0)
                {
                    return false;
                }
            }
            return true;
        }
    }
}

Kết quả:

Cac so nguyen to nho hon 100 la: 
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 

Bài 03: Viết một chương trình C# tính giai thừa của một số bằng cách không sử dụng đệ quy và có sử dụng đệ quy.

Gợi ý:

  • Sử dụng đệ quy
  • Không sử dụng đệ quy

Code mẫu: Tính giai thừa trong C không sử dụng đệ quy.


using System;
using System.Collections;
namespace VietTutsCsharp
{
    class Program
    {
        static void Main(string[] args)
        {
            int a = 5;
            int b = 0;
            int c = 10;
            Console.Write("Giai thua cua {0}  la: {1} 
", a, tinhGiaithua(a));
            Console.Write("Giai thua cua {0}  la: {1} 
", b, tinhGiaithua(b));
            Console.Write("Giai thua cua {0}  la: {1} 
", c, tinhGiaithua(c));

            Console.WriteLine();
            Console.ReadKey();
        }


        /**
        * tinh giai thua
        * 
        * @author viettuts.vn
        * @param n: so nguyen duong
        * @return giai thua cua so n
        */
        static long tinhGiaithua(int n)
        {
            int i;
            long giai_thua = 1;
            if (n == 0 || n == 1)
            {
                return giai_thua;
            }
            else
            {
                for (i = 2; i <= n; i++)
                {
                    giai_thua *= i;
                }
                return giai_thua;
            }
        }
    }
}

Kết quả:

Giai thua cua 5  la: 120
Giai thua cua 0  la: 1
Giai thua cua 10  la: 3628800

Bài 04: Viết một chương trình C# để chuyển đổi số nguyên N sang hệ cơ số B (2