20 BÀI TẬP JAVA CƠ BẢN CHO NGƯỜI MỚI HỌC (CÓ ĐÁP ÁN)

20 BÀI TẬP JAVA CƠ BẢN CHO NGƯỜI MỚI HỌC ( CÓ ĐÁP ÁN )

Xin chào tất cả các bạn đã quay lại loạt bài hướng dẫn lập trình Java. Các bạn đã học tập thế nào? Java đã làm các bạn thấy thú vị chứ?

Mình nghĩ rằng đã đến lúc chúng ta đi đến việc quan trọng nhất, áp dụng lý thuyết đó vào thực hành để giải những bài tập Java.

Ban đầu có thể các bạn sẽ thấy những bài tập này nó khá là … đơn giản.

Nhưng thực sự mà nói thì nó rất là quan trọng trong việc học lập trình.

Khi làm thật nhiều những bài tập nhỏ, cơ bản thế này, bạn sẽ được tiếp cận yếu tố một cách cơ sở nhất, từ đó hiểu rõ thực chất yếu tố .

Luyện tập những bài tập đơn giản đến độ thuần thục cho phép bạn có khả năng đọc từng phần nhỏ của chương trình lớn và ghép nối chúng lại dễ dàng để hiểu được bức tranh lớn.

Nên nhớ là :

 

” CHƯƠNG TRÌNH LỚN CŨNG ĐƯỢC TẠO THÀNH TỪ CHƯƠNG TRÌNH NHỎ MÀ THÔI “

Vậy nên đừng thấy nó nhỏ mà bỏ lỡ nhé, tất cả chúng ta sẽ góp gió thành bão, tích tiểu thành đại .

Trước tiên, hãy tự thử sức mình với 20 bài tập Java cơ bản sau đây (đừng vội xem đáp án bên dưới nhé).

20 bài tập Java cơ bản

20 bài tập Java cơ bản

Lưu ý, nếu thực sự không thể tự mình làm được thì mới xem ấp án nhé.

> Nếu bạn tham gia KHÓA HỌC JAVASau đó, khi làm xong hãy thử tìm hiểu thêm thêm cách làm ( đáp án ) của mình. Lưu ý, nếu thực sự không hề tự mình làm được thì mới xem ấp án nhé .

Còn giờ đây, khởi đầu thử làm bài tập Java thôi nào .

Đề bài: 20 bài tập Java cơ bản

Phần 1: 5 Bài tập Java cơ bản với câu điều kiện

Bài tập 1:

  • Viết chương trình Java mà khi chạy, màn hình hiển thị console sẽ được cho phép ta nhập vào một số nguyên, in ra màn hình hiển thị “ Đây là số nguyên dương ”
  • Nếu số vừa nhập vào là một số ít lớn hơn hoặc bằng 0, ngược lại in ra “ Đây là số nguyên âm ” .

Bài tập 2:

  • Viết chương trình cho phép nhập vào 1 số ít nguyên dạng số, sau khi chạy thì chương trình sẽ ghi số đó ra dưới dạng chữ .
  • VD : 1 -> Một, 2 -> Hai, …

Bài tập 3:

  • Viết chương trình cho phép nhập vào 3 số thực
  • Chương trình này sẽ kiểm tra 3 số này có phải là 3 cạnh của một tam giác hay không .

Bài tập 4:

  • Viết chương trình cho phép nhập vào 3 số
  • Chương trình sẽ kiểm tra 3 số này có phải là 3 cạnh của một tam giác vuông hay không .

Bài tập 5 * :

  • Viết chương trình được cho phép người dùng nhập vào mã số sinh viên
  • Sau đó kiểm tra xem mã số này có đúng với định dạng đã cho hay không .
  • Định dạng mã số sinh viên là “ Bxxxxxxx ” với x là số nguyên từ 1-9. ( Sử dụng biểu thức chính quy để ràng buộc định dạng )

Hướng dẫn tự học Java> Nếu thấy những bài tập trên khó, đó là do kỹ năng và kiến thức Java ăn bản của bạn chưa vững. Ôn tập thêm tại

thuật toán> Và học thêm một chút ít vềbạn nhé .

Phần 2: 5 Bài tập Java cơ bản với vòng lặp

Bài tập 6:

  • Viết chương trình cho phép nhập vào 1 số ít nguyên dương n, tính tổng toàn bộ số chẵn trong khoảng chừng từ 0 – n .

Bài tập 7:

  • Viết chương trình để nhập nhập một số nguyên, tìm hiệu quả phép nhân của số đó với những số từ 1 – 20, sau đó in hiệu quả ra màn hình hiển thị .

Bài tập 8:

  • Viết chương trình cho phép nhập vào một số ít nguyên n ( n < 1000 )
  • In ra tổng thể số nguyên tố trong khoảng chừng từ 0 – n .

Bài tập 9:

  • Viết chương trình cho phép nhập vào số nguyên n ( n < = 20 ), in ra số Fibonacci ứng với nó .
  • Số Fibonacci là số mà nó bằng tổng của 2 số Fibonacci trước nó .
  • Với giả thuyết là Fi ( 0 ) = 1, Fi ( 1 ) = 1 .

  • Ta có ví dụ : Fi ( 2 ) = Fi ( 0 ) + Fi ( 1 ) = 1 + 1 = 2, Fi ( 3 ) = Fi ( 2 ) + Fi ( 1 ) = 2 + 1 = 3, Fi ( 4 ) = Fi ( 3 ) + Fi ( 2 ) = 3 + 2 = 5, … Giả sử n = 4, đầu ra sẽ là 5 .

Bài tập 10*:

  • Viết chương trình được cho phép người dùng nhập vào 5 mã số sinh viên .
  • Kiểm tra xem mã số sinh viên này có đúng với định dạng hay chưa .
  • Với định dạng mã số sinh viên là “ B170xxxx ” với x là số nguyên từ 1-9. ( Sử dụng biểu thức chính quy để ràng buộc định dạng )

> Phần này sẽ làm việc nhiều với vòng lặp nên nếu bạn chưa thực sự quen thì nên luyện tập thêm tại bài Vòng lặp trong Java

Phần 3: 5 Bài tập Java cơ bản với Mảng

Bài tập 11:

  • Viết chương trình cho phép nhập vào n, sau đó nhập vào n phần tử số nguyên .
  • Cuối cùng, chương trình sẽ xuất ra giá trị trung bình của mảng này .

Bài tập 12:

  • Viết chương trình cho phép nhập vào n, sau đó nhập vào n phần tử số nguyên dương .
  • Cuối cùng, chương trình sẽ xuất ra thành phần có giá trị lớn nhất .

Bài tập 13:

  • Viết chương trình cho phép nhập vào n, sau đó nhập vào n phần tử số nguyên ( hoàn toàn có thể dương hoặc âm ) .
  • Cuối cùng, chương trình sẽ xuất ra thành phần có giá trị nhỏ nhất .

Bài tập 14:

  • Viết chương trình cho phép nhập vào n, sau đó nhập vào n phần tử số nguyên .
  • Sắp xếp những thành phần trong mảng theo thứ tự ngược lại .

Bài tập 15(*):

  • Viết chương trình được cho phép người dùng nhập vào 5 mã số, lưu 5 mã số này vào một mảng .
  • Chương trình sẽ kiểm tra xem trong 5 mã số này có mã số nào sai định dạng hay không ( định dạng là “ 00 yLxxxx ” với y là số nguyên từ 2 – 5, x là số nguyên từ 0-9 ) .
  • Nếu có bất kể mã số nào sai định dạng thì chương trình in ra “ Sai rồi ” rồi kết thúc chương trình, ngược lại thì in ra “ Đúng rồi ”. ( Sử dụng biểu thức chính quy để ràng buộc định dạng )

Phần 4: 5 Bài tập Java cơ bản với chuỗi

Bài tập 16:

  • Viết chương trình được cho phép người dùng nhập vào một chuỗi, sau đó nhập vào một ký tự .
  • Kiểm tra xem ký tự đó có Open trong chuỗi hay không ? Nếu có in ra “ Có ”, ngược lại in ra “ Không ” .

Bài tập 17:

  • Viết chương trình được cho phép người dùng nhập vào một chuỗi, sau đó nhập vào một ký tự .
  • Kiểm tra xem ký tự nhập vào đó nằm ở vị trí thứ mấy trong chuỗi ( nếu có, số đếm khởi đầu từ 0 ) .
  • Nếu nó có Open trong chuỗi thì in ra vị trí của nó trong chuỗi, nếu không thì in ra “ Không sống sót trong chuỗi ” .

Bài tập 18:

  • Viết chương trình cho phép nhập vào một chuỗi, kiểm tra xem chuỗi này có Open số hay không .
  • Nếu có tin ra “ Có ”, ngược lại, in ra “ Không ” .

Bài tập 19:

  • Viết chương trình cho phép nhập vào một chuỗi
  • Kiểm tra xem chuỗi này ký tự “ a ” Open bao nhiêu lần
  • In ra số lần đó .

Bài tập 20*:

  • Viết chương trình được cho phép người dùng nhập vào 1 chuỗi, kiểm tra chuỗi này có tương thích với nhu yếu hay không .
  • Nếu có thì in ra “ Duyệt ! ”, ngược lại in ra “ Không duyệt ” .
  • Yêu cầu về chuỗi là : Có độ dài không quá 20 ký tự, không được chứa ký tự khoảng chừng trắng, mở màn bằng một ký tự chữ viết hoa ( A – Z ), kết thúc bằng một số ít ( 0 – 9 ). ( Sử dụng biểu thức chính quy để ràng buộc định dạng )

Đáp án: 20 bài tập Java cơ bản

Đáp án: 5 Bài tập Java cơ bản với câu điều kiện

Đáp án bài tập 1 :


import java.util.Scanner;

public class BaiTapJavaCoBan1 {

   public static void main(String[] args)

{

      int n;

      System.out.println(” Nhap vao mot so nguyen : “);

      Scanner sc = new Scanner(System.in);

      n = sc.nextInt();

      if (n >= 0){

         System.out.println(” Đây là một số ít nguyên dương “);

}

      else {

         System.out.println(” Đây là số nguyên âm “);

}
}

}
 

Đáp án bài tập 2 :


import java.util.Scanner;

public class BaiTapJavaCoBan2 {

   public static void main(String[] args)

{

      int n;

      System.out.println(” Nhap vao mot so nguyen : “);

      Scanner sc = new Scanner(System.in);

      n = sc.nextInt();

      switch (n)

{

         case 0: System.out.println(” Không “); break;

         case 1: System.out.println(” Một “); break;

         case 2: System.out.println(” Hai “); break;

         case 3: System.out.println(” Ba “); break;

         case 4: System.out.println(” Bốn “); break;

         case 5: System.out.println(” Năm “); break;

         case 6: System.out.println(” Sáu “); break;

         case 7: System.out.println(” Bảy “); break;

         case 8: System.out.println(” Tám “); break;

         case 9: System.out.println(” Chín “); break;

         default :

            System.out.println(” Chỉ có 0 – 9 thôi : D “);

            break;

}
}

}
 

Đáp án bài tập3 :


import java.util.Scanner;

public class BaiTapJavaCoBan3 {

   public static void main(String[] args)

{

      float a, b, c;

      System.out.println(” Nhập vào 3 số : “);

      Scanner sc = new Scanner(System.in);

      a = sc.nextFloat();

      b = sc.nextFloat();

      c = sc.nextFloat();

      if(a+b>c && b+c>a && c+a>b)

         System.out.println(” Ba số đúng là 3 cạnh của 1 tam giác “);

      else

         System.out.println(” Ba số không phải là 3 cạnh của 1 tam giác “);

}

}
 

Đáp án bài tập

 4:


import java.util.Scanner;

public class BaiTapJavaCoBan4 {

   public static void main(String[] args)

{

      float a, b, c;

      System.out.println(” Nhập vào 3 số : “);

      Scanner sc = new Scanner(System.in);

      a = sc.nextFloat();

      b = sc.nextFloat();

      c = sc.nextFloat();

      if(a*a+b*b==c*c || b*b+c*c==a*a || c*c+a*a==b*b)

         System.out.println(” Ba số đúng là 3 cạnh của 1 tam giác vuông “);

      else

         System.out.println(” Ba số không phải là cạnh của 1 tam giác vuông “);

}

}
 

Đáp án bài tập5 :


import java.util.Scanner;

public class BaiTapJavaCoBan5 {

   public static void main(String[] args)

{

      String MSSV;

      System.out.println(” Nhập vào MSSV : “);

      Scanner sc = new Scanner(System.in);

      MSSV = sc.nextLine(); / / Nhận vào 1 chuỗi từ bàn phím

      if (MSSV.matches(” B\ \d { 7 } “)) / / Kiểm tra bằng biểu thức chính quy

         System.out.println(” Phù hợp “);

      else

         System.out.println(” Không tương thích “);

      / / Bài này nâng cao là vì có sử dụng biểu thức chính quy

      / / những bạn hoàn toàn có thể tra Google để biết thêm về nó

}

}
 

Đáp án: 5 Bài tập Java cơ bản với vòng lặp

Đáp án bài tập6 :


import java.util.Scanner;

public class BaiTapJavaCoBan6 {

   public static void main(String[] args)

{

      int n;

      int sum = 0;

      System.out.println(” Nhập vào số nguyên : “);

      Scanner sc = new Scanner(System.in);

      n = sc.nextInt();

      for (int i = 0; i <= n; i++) / / duyệt toàn bộ thành phần từ 0 - n

      if (i % 2 == 0) / / nếu nó là số chẵn

         sum += i; / / Cộng vào tổng .

         System.out.println(sum);

}

}
 

Đáp án bài tập7 :


import java.util.Scanner;

public class BaiTapJavaCoBan7 {

   public static void main(String[] args)

{

      int n;

      int sum = 0;

      System.out.println(” Nhập vào số nguyên : “);

      Scanner sc = new Scanner(System.in);

      n = sc.nextInt();

      for (int i = 1; i <= 20; i++) / / duyệt tổng thể thành phần từ 1-20

{

         System.out.println(n + ” x ” + i + ” = ” + n*i);

}
}

}
 

Đáp án bài tập8 :


import java.util.Scanner;

public class BaiTapJavaCoBan8 {

   public static void main(String[] args)

{

      int n;

      boolean soNguyenTo = false;

      System.out.println(” Nhập vào số nguyên : “);

      Scanner sc = new Scanner(System.in);

      n = sc.nextInt();

      / / 1, 2 là 2 số nguyên tố mặc nhiên, không cần xét .

      System.out.print(” 1 2 “);

      for (int i = 3; i <= n; i++) / / duyệt tổng thể thành phần từ 1-20

{

         / * *

* Gán cho soNguyenTo đúng

* Nếu sau khi ra khỏi vòng lặp j

* mà nó vẫn còn là true thì số này là số nguyên tố

* /

         soNguyenTo = true; 

         for (int j = 2; j < i; j++)

{

            if (i % j == 0)

               / * *

* Gán cho soNguyenTo là false

* khi nó chia hết nó bất kể số nào nhỏ hơn

* nó trong khoảng chừng từ 3 – n

* /

               soNguyenTo = false;

}

         if (soNguyenTo == true)

            System.out.print(i + ” “);

}
}

}
 

Đáp án bài tập9 :


import java.util.Scanner;

public class Fibonacci

{

   public int CalculateFi(int n)

{

      if (n == 0 || n == 1){

         return 1;

}

      return CalculateFi(n-1) + CalculateFi(n-2);

}
}

public class HelloWorld

{

   public static void main(String[] args)

{

      int n;

      int Fi;

      System.out.println(” Nhập vào số nguyên : “);

      Scanner sc = new Scanner(System.in);

      n = sc.nextInt();

      Fibonacci fibonacci = new Fibonacci();

      Fi = fibonacci.CalculateFi(n);

      System.out.println(” Fi ( ” + n + ” ) = ” + Fi);

}

}
 

Đáp án bài tập10 :


import java.util.Scanner;
 

public class BaiTapJavaCoBan10

{

   public static void main(String[] args)

{

      String[] MSSV = new String[5];

      Scanner sc = new Scanner(System.in);

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

{

         System.out.println(” Nhập vào MSSV thứ ” + (i+1) + ” : “);

         MSSV[i] = sc.nextLine();

}

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

{

         if (!MSSV[i].matches(” B170 [ 1-9 ] { 4 } “))

            System.out.

println

(” MSSV thứ ” + (i+1) + ” sai định dạng ! “);

}
}

}
 

Đáp án: 5 Bài tập Java cơ bản với Mảng

Đáp án bài tập11 :


import java.util.Scanner;

public class BaiTapJavaCoBan11

{

   public static void main(String[] args)

{

      int n;

      int[] soNguyen;

      float ketQua = 0;

      Scanner sc = new Scanner(System.in);

      System.out.println(” Nhập vào n : “);

      n = sc.nextInt();

      soNguyen = new int[n];

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

{

         System.out.println(” Nhập vào số nguyên : “);

         soNguyen[i] = sc.nextInt();

}

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

ketQua + = soNguyen [ i ] ;
ketQua = ketQua / n ;

      System.out.println(” Trung bình cộng của những số nguyên là : ” + ketQua);

}

}
 

Đáp án bài tập12 :


import java.util.Scanner;

public class BaiTapJavaCoBan12

{

   public static void main(String[] args)

{

      int n;

      int[] soNguyen;

      int max = 0;

      Scanner sc = new Scanner(System.in);

      System.out.println(” Nhập vào n : “);

      n = sc.nextInt();

      soNguyen = new int[n];

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

{

         System.out.println(” Nhập vào số nguyên : “);

         soNguyen[i] = sc.nextInt();

}

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

{

         if(soNguyen[i] > max)

max = soNguyen [ i ] ;
}

      System.out.println(” Phần tử có giá trị lớn nhất là : ” + max);

}

}
 

Đáp án bài tập13 :


import java.util.Scanner;

public class BaiTapJavaCoBan13

{

   public static void main(String[] args)

{

      int n;

      int[] soNguyen;

      int min = 0;

      Scanner sc = new Scanner(System.in);

      System.out.println(” Nhập vào n : “);

      n = sc.nextInt();

      soNguyen = new int[n];

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

{

         System.out.println(” Nhập vào số nguyên : “);

         soNguyen[i] = sc.nextInt();

}

      min = soNguyen[0];

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

{

         if(soNguyen[i] < min)

min = soNguyen [ i ] ;
}

      System.out.println(” Phần tử có giá trị nhỏ nhất là : ” + min);

}

}
 

Đáp án bài tập14 :


import java.util.Scanner;

public class BaiTapJavaCoBan14

{

   public static void main(String[] args)

{

      / / Khai báo những biến thiết yếu

      int n;

      int[] soNguyen;

      Scanner sc = new Scanner(System.in);

      / / Nhập tài liệu

      System.out.println(” Nhập vào n : “);

      n = sc.nextInt();

      soNguyen = new int[n];

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

{

         System.out.println(” Nhập vào số nguyên : “);

         soNguyen[i] = sc.nextInt();

}

      / / In ra mảng khởi đầu

      System.out.println(” Mảng trước khi đảo ngược : “);

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

         System.out.print(soNguyen[i] + ” “);

      / / Đảo ngược mảng

      for (int i = 0; i < n/2; i++)

{

         int empty;

empty = soNguyen [ i ] ;

         soNguyen[i] = soNguyen[n-i-1];

         soNguyen[n-i-1] = empty;

}

      / / In ra mảng sau khi đảo ngược

      System.out.println(“\ nMảng sau khi đảo ngược : “);

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

      System.out.print(soNguyen[i] + ” “);

}

}
 

Đáp án bài tập15 :


import java.util.Scanner;

public class BaiTapJavaCoBan15

{

   public static void main(String[] args)

{

      String[] code = new String[5];

      Scanner sc = new Scanner(System.in);

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

{

         System.out.println(” Nhập vào mã thứ ” + (i+1));

         code[i] = sc.nextLine();

         if(!code[i].matches(” 00 [ 2-5 ] L\ \d { 4 } “))

{

            System.out.println(” Sai rồi ! “);

            return;

}
}

      System.out.println(” Đúng rồi ! “);

}

}
 

Đáp án: 5 Bài tập Java cơ bản với chuỗi

Đáp án bài tập16 :


import java.util.Scanner;

public class BaiTapJavaCoBan16

{

   public static void main(String[] args)

{

      String chuoi;

      char kiTu;

      boolean tonTai = false;

      Scanner sc = new Scanner(System.in);

      System.out.println(” Nhập vào một chuỗi : “);

      chuoi = sc.nextLine();

      System.out.println(” Nhập vào ký tự muốn kiểm tra : “);

      kiTu = sc.nextLine().charAt(0);

      char mangKiTu[] = chuoi.toCharArray();

      for (int i = 0; i < mangKiTu.length; i++)

{

         if (kiTu == mangKiTu[i])

{

            System.out.println(” Có “);

            tonTai = true;

}
}

      if(tonTai == false)

      System.out.println(” Không “);

}

}
 

Đáp án bài tập17 :


import java.util.Scanner;

public class BaiTapJavaCoBan17

{

   public static void main(String[] args)

{

      String chuoi;

      char kiTu;

      boolean tonTai = false;

      Scanner sc = new Scanner(System.in);

      System.out.println(” Nhập vào một chuỗi : “);

      chuoi = sc.nextLine();

      System.out.println(” Nhập vào ký tự muốn kiểm tra : “);

      kiTu = sc.nextLine().charAt(0);

      char mangKiTu[] = chuoi.toCharArray();

      for (int i = 0; i < mangKiTu.length; i++)

{

         if (kiTu == mangKiTu[i])

{

            System.out.println((i+1));

            tonTai = true;

}
}

      if(tonTai == false)

         System.out.println(” Không sống sót trong chuỗi “);

}

}
 

Đáp án bài tập18 :


import java.util.Scanner;

public class BaiTapJavaCoBan18

{

   public static void main(String[] args)

{

      String chuoi;

      Scanner sc = new Scanner(System.in);

      System.out.println(” Nhập vào một chuỗi : “);

      chuoi = sc.nextLine();

      if (chuoi.matches(“. *\ \d. * “))

         System.out.println(” Có “);

      else

         System.out.println(” Không “);

}

}
 

Đáp án bài tập19 :


import java.util.Scanner;

public class BaiTapJavaCoBan19

{

   public static void main(String[] args)

{

      String chuoi;

      int soLan = 0;

      Scanner sc = new Scanner(System.in);

      System.out.println(” Nhập vào một chuỗi : “);

      chuoi = sc.nextLine();

      char mangKiTu[] = chuoi.toCharArray();

      for (int i = 0; i < mangKiTu.length; i++)

{

         if (‘ a ‘ == mangKiTu[i])

{
soLan + + ;
}
}

      System.out.println(soLan);

}

}
 

Đáp án bài tập20 :


import java.util.Scanner;

public class BaiTapJavaCoBan20

{

   public static void main(String[] args)

{

      String chuoi;

      Scanner sc = new Scanner(System.in);

      System.out.println(” Nhập vào một chuỗi : “);

      chuoi = sc.nextLine();

      if(chuoi.matches(” ^ [ A-Z ] [ ^\ \s ] { 0,18 }\ \d USD “))

         System.out.println(” Duyệt “);

      else

         System.out.println(” Không duyệt “);

}

}
 

Tổng kết

Như vậy là chúng ta vừa cùng nhau hoàn thành 20 bài tập Java.

Trong đó mình đã có giới thiệu đến các bạn một khái niệm rất hay trong Java đó là biểu thức chính quy, thường thì biểu thức chính quy được áp dụng nhiều trong việc ràng buộc dữ liệu nhập vào của người dùng (định dạng của email, số điện thoại,…) và được sử dụng rất nhiều trong lập trình.

Cùng với một số bài tập Java cơ bản cho các bạn hiểu rõ hơn về rẽ nhánh, mảng, vòng lặp, chuỗi.

Hãy nhớ luyện tập thật nhiều đều đặn, phản xạ xử lý chương trình ngay trong suy nghĩ để có thể chinh phục ngôn ngữ Java tốt hơn bạn nhé.

HỌC VIỆN ĐÀO TẠO CNTT NIIT – ICT HÀ NỘI

Học Lập trình chất lượng cao ( Since 2002 ). Học trong thực tiễn + Tuyển dụng ngay !

Đc : Tầng 3, 25T2, N05, Nguyễn Thị Thập, CG cầu giấy, TP.HN

SĐT : 02435574074 – 0383.180086

E-Mail : [email protected]

Fanpage: https://facebook.com/NIIT.ICT/

# niit # icthanoi # niithanoi niiticthanoi # hoclaptrinh # khoahoclaptrinh # hoclaptrinhjava # hoclaptrinhphp # java # php # python