Bài tập C# kinh điển
Để củng cố những kiến thức đã học về lập trình C#. Mời bạn đọc cùng thực hành qua một số bài tập C# cơ bản dưới đây.
1. 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 Csharp
{
class Program
{
static void Main(string[] args)
{
int i;
Console.Write("10 so dau tien cua day so Fibonacci: \n");
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
2. 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 Csharp
{
class Program
{
static void Main(string[] args)
{
int i;
Console.Write("Cac so nguyen to nho hon 100 la: \n");
for (i = 0; i < 100; i++)
{
if (isPrimeNumber(i))
{
Console.Write("{0} ", i);
}
}
Console.WriteLine();
Console.ReadKey();
}
/**
* check so nguyen to trong C
*
* @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;
}
}
}
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
3. 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 Csharp
{
class Program
{
static void Main(string[] args)
{
int a = 5;
int b = 0;
int c = 10;
Console.Write("Giai thua cua {0} la: {1} \n", a, tinhGiaithua(a));
Console.Write("Giai thua cua {0} la: {1} \n", b, tinhGiaithua(b));
Console.Write("Giai thua cua {0} la: {1} \n", c, tinhGiaithua(c));
Console.WriteLine();
Console.ReadKey();
}
/**
* tinh giai thua
*
* @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;
}
}
}
}
Giai thua cua 5 la: 120
Giai thua cua 0 la: 1
Giai thua cua 10 la: 3628800
4. 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 <= B <= 32) bất kỳ.
Code mẫu: Chuyển đối hệ cơ số 10 sang hệ cơ số B
using System;
using System.Collections;
namespace Csharp
{
class Program
{
public static int CHAR_55 = 55;
public static int CHAR_48 = 48;
static void Main(string[] args)
{
int n = 14;
Console.Write("So {0} trong he co so 2 = ", n);
convertNumber(n, 2);
Console.Write("\nSo {0} trong he co so 16 = ", n);
convertNumber(n, 16);
Console.WriteLine();
Console.ReadKey();
}
/**
* chuyen doi so nguyen n sang he co so b
*
* @param n: so nguyen
* @param b: he co so
*/
static int convertNumber(int n, int b)
{
if (n < 0 || b < 2 || b > 16)
{
Console.Write("He co so hoac gia tri chuyen doi khong hop le!");
return 0;
}
int i;
char[] arr = new char[20];
int count = 0;
int m;
int remainder = n;
while (remainder > 0)
{
if (b > 10)
{
m = remainder % b;
if (m >= 10)
{
arr[count] = (char)(m + CHAR_55);
count++;
}
else
{
arr[count] = (char)(m + CHAR_48);
count++;
}
}
else
{
arr[count] = (char)((remainder % b) + CHAR_48);
count++;
}
remainder = remainder / b;
}
// hien thi he co so
for (i = count - 1; i >= 0; i--)
{
Console.Write("{0}", arr[i]);
}
return 1;
}
}
}
So 14 trong he co so 2 = 1110
So 14 trong he co so 16 = E
Trên đây là một số bài tập kinh điển về eLib.VN tổng hợp được. Mỗi bài toán đều sẽ có nhiều cách giải, hướng giải quyết. Bạn đọc có thể dùng một hướng giải quyết khác. Chúc các bạn thành công!
Tham khảo thêm
- doc Bài tập C# cơ bản
- doc Bài tập kiểu dữ liệu trong C#
- doc Bài tập lệnh IF, ELSE, SWITCH trong C#
- doc Bài tập vòng lặp FOR, WHILE, DO...WHILE trong C#
- doc Bài tập mảng một chiều trong C#
- doc Bài tập String trong C#
- doc Bài tập hàm trong C#
- doc Bài tập struct trong C#
- doc Bài tập hướng đối tượng trong C#
- doc Bài tập đọc ghi file trong C#