Cho đoạn chương trình sau:
public class Test {
public static void main(String[] args) {
int n,k,dem;
for ( k = 10; k <= 12; k++ ) {
dem = 0;
for ( n = 2; n <= k; n++ ) {
if ( k%n==2) {
dem++;
}
if (dem > 1)
System.out.print(k);
}
}
}
}
Đoạn chương trình trên cho kết quả là bao nhiêu?
=>=>
Trả lời:
Đáp án đúng: D
Đoạn chương trình in ra giá trị của k nếu biến đếm dem lớn hơn 1.
- Với k = 10, vòng lặp bên trong chạy từ n = 2 đến 10. Điều kiện k%n == 2 chỉ đúng khi n = 4 và n = 8. Khi đó dem = 2 > 1, chương trình in ra 10.
- Với k = 11, vòng lặp bên trong chạy từ n = 2 đến 11. Điều kiện k%n == 2 đúng khi n = 3 và n = 9. Khi đó dem = 2 > 1, chương trình in ra 11.
- Với k = 12, vòng lặp bên trong chạy từ n = 2 đến 12. Điều kiện k%n == 2 đúng khi n = 5 và n = 10. Khi đó dem = 2 > 1, chương trình in ra 12.
Vậy, chương trình in ra 101112. Không có đáp án nào đúng trong các lựa chọn đã cho.
Câu hỏi liên quan
Lời giải:
Đáp án đúng: A
Đoạn chương trình in ra các hợp số từ 1 đến 10.
Giải thích:
Vòng lặp ngoài `for ( k = 1; k <= 10; k++ )` duyệt các số từ 1 đến 10.
Vòng lặp trong `for ( n = 3; n <= k; n++ )` kiểm tra xem `k` có chia hết cho một số `n` nào đó trong khoảng từ 3 đến `k` hay không.
Biến `dem` đếm số lượng ước của `k` trong khoảng từ 3 đến `k`. Nếu `dem > 1`, tức là `k` có ít nhất hai ước trong khoảng này, thì `k` được in ra. Các số có từ hai ước trở lên (ngoài 1 và chính nó) là hợp số. Số 1 không phải là hợp số cũng không phải là số nguyên tố.
Ví dụ: Khi k = 4, vòng lặp trong sẽ chạy với n = 3 và n = 4. Khi n = 4, 4%4 == 0, dem = 1. Vì dem không lớn hơn 1, nên 4 không được in ra ở vòng lặp này.
Khi k = 6, vòng lặp trong sẽ chạy với n = 3, 4, 5, 6. Khi n = 3, 6%3 == 0, dem = 1. Khi n = 6, 6%6 == 0, dem = 2. Vì dem > 1, nên 6 được in ra.
Vậy chương trình in ra các hợp số từ 1 đến 10.
Giải thích:
Vòng lặp ngoài `for ( k = 1; k <= 10; k++ )` duyệt các số từ 1 đến 10.
Vòng lặp trong `for ( n = 3; n <= k; n++ )` kiểm tra xem `k` có chia hết cho một số `n` nào đó trong khoảng từ 3 đến `k` hay không.
Biến `dem` đếm số lượng ước của `k` trong khoảng từ 3 đến `k`. Nếu `dem > 1`, tức là `k` có ít nhất hai ước trong khoảng này, thì `k` được in ra. Các số có từ hai ước trở lên (ngoài 1 và chính nó) là hợp số. Số 1 không phải là hợp số cũng không phải là số nguyên tố.
Ví dụ: Khi k = 4, vòng lặp trong sẽ chạy với n = 3 và n = 4. Khi n = 4, 4%4 == 0, dem = 1. Vì dem không lớn hơn 1, nên 4 không được in ra ở vòng lặp này.
Khi k = 6, vòng lặp trong sẽ chạy với n = 3, 4, 5, 6. Khi n = 3, 6%3 == 0, dem = 1. Khi n = 6, 6%6 == 0, dem = 2. Vì dem > 1, nên 6 được in ra.
Vậy chương trình in ra các hợp số từ 1 đến 10.
Lời giải:
Đáp án đúng: B
Đoạn chương trình trên thực hiện một vòng lặp `while` với điều kiện `j < 3`. Bên trong vòng lặp `while`, biến `k` tăng lên mỗi lần lặp. Một vòng lặp `for` được sử dụng để đếm số lượng ước của `k` (ngoại trừ 1 và chính nó). Nếu `k` có đúng một ước (tức là chỉ chia hết cho 1 và chính nó, hay nói cách khác, `k` là số nguyên tố), thì `k` được in ra và `j` tăng lên.
Bước 1: k = 1, dem = 0. Vòng for không chạy (n=2;n<=1). if(dem==1) là sai
Bước 2: k = 2, dem = 0. Vòng for chạy n=2, 2%2==0, dem = 1. if(dem==1) là đúng, in ra 2, j=1.
Bước 3: k = 3, dem = 0. Vòng for chạy n=2, 3%2!=0, n=3, 3%3==0, dem = 1. if(dem==1) là đúng, in ra 3, j=2.
Bước 4: k = 4, dem = 0. Vòng for chạy n=2, 4%2==0, dem = 1, n=3, 4%3!=0, n=4, 4%4==0, dem=2. if(dem==1) là sai
Bước 5: k = 5, dem = 0. Vòng for chạy n=2, 5%2!=0, n=3, 5%3!=0, n=4, 5%4!=0, n=5, 5%5==0, dem = 1. if(dem==1) là đúng, in ra 5, j=3. Vòng while kết thúc.
Vậy, kết quả in ra là 2 3 5.
Bước 1: k = 1, dem = 0. Vòng for không chạy (n=2;n<=1). if(dem==1) là sai
Bước 2: k = 2, dem = 0. Vòng for chạy n=2, 2%2==0, dem = 1. if(dem==1) là đúng, in ra 2, j=1.
Bước 3: k = 3, dem = 0. Vòng for chạy n=2, 3%2!=0, n=3, 3%3==0, dem = 1. if(dem==1) là đúng, in ra 3, j=2.
Bước 4: k = 4, dem = 0. Vòng for chạy n=2, 4%2==0, dem = 1, n=3, 4%3!=0, n=4, 4%4==0, dem=2. if(dem==1) là sai
Bước 5: k = 5, dem = 0. Vòng for chạy n=2, 5%2!=0, n=3, 5%3!=0, n=4, 5%4!=0, n=5, 5%5==0, dem = 1. if(dem==1) là đúng, in ra 5, j=3. Vòng while kết thúc.
Vậy, kết quả in ra là 2 3 5.
Lời giải:
Đáp án đúng: C
Đoạn chương trình trên in ra 3 số nguyên tố đầu tiên.
Giải thích:
- `int k=0, n, dem, j=0;`: Khai báo các biến k, n, dem, j kiểu số nguyên, khởi tạo k=0 và j=0.
- `while(j<3)`: Vòng lặp while chạy cho đến khi j = 3. Biến j được sử dụng để đếm số lượng số nguyên tố đã in.
- `k++;`: Tăng giá trị của k lên 1 trong mỗi lần lặp của vòng lặp while.
- `dem=0;`: Khởi tạo biến dem = 0. Biến dem được sử dụng để đếm số lượng ước của k (không kể 1 và chính nó).
- `for(n=2; n<=k; n++)`: Vòng lặp for chạy từ n=2 đến n=k.
- `if(k%n==0) dem++;`: Nếu k chia hết cho n, thì tăng biến dem lên 1.
- `if(dem==1)`: Nếu dem = 1, tức là k chỉ có một ước (ngoài 1 và chính nó), suy ra k là số nguyên tố.
- `System.out.print(k+" ");`: In giá trị của k ra màn hình, kèm theo một khoảng trắng.
- `j++;`: Tăng giá trị của j lên 1. Như vậy, chương trình sẽ in ra 3 số nguyên tố đầu tiên (2, 3, 5).
Khi k = 2, vòng lặp for chạy từ 2 đến 2. Khi đó, 2%2 == 0, nên dem=1. Vì dem=1, in ra 2. j=1
Khi k = 3, vòng lặp for chạy từ 2 đến 3. Khi đó, 3%2 != 0, 3%3 == 0, nên dem=1. Vì dem=1, in ra 3. j=2
Khi k = 4, vòng lặp for chạy từ 2 đến 4. Khi đó, 4%2 == 0, 4%3 != 0, 4%4 == 0, nên dem=2. Vì dem!=1, không in ra.
Khi k = 5, vòng lặp for chạy từ 2 đến 5. Khi đó, 5%2 != 0, 5%3 != 0, 5%4 != 0, 5%5 == 0, nên dem=1. Vì dem=1, in ra 5. j=3
Vòng lặp while kết thúc vì j=3.
Giải thích:
- `int k=0, n, dem, j=0;`: Khai báo các biến k, n, dem, j kiểu số nguyên, khởi tạo k=0 và j=0.
- `while(j<3)`: Vòng lặp while chạy cho đến khi j = 3. Biến j được sử dụng để đếm số lượng số nguyên tố đã in.
- `k++;`: Tăng giá trị của k lên 1 trong mỗi lần lặp của vòng lặp while.
- `dem=0;`: Khởi tạo biến dem = 0. Biến dem được sử dụng để đếm số lượng ước của k (không kể 1 và chính nó).
- `for(n=2; n<=k; n++)`: Vòng lặp for chạy từ n=2 đến n=k.
- `if(k%n==0) dem++;`: Nếu k chia hết cho n, thì tăng biến dem lên 1.
- `if(dem==1)`: Nếu dem = 1, tức là k chỉ có một ước (ngoài 1 và chính nó), suy ra k là số nguyên tố.
- `System.out.print(k+" ");`: In giá trị của k ra màn hình, kèm theo một khoảng trắng.
- `j++;`: Tăng giá trị của j lên 1. Như vậy, chương trình sẽ in ra 3 số nguyên tố đầu tiên (2, 3, 5).
Khi k = 2, vòng lặp for chạy từ 2 đến 2. Khi đó, 2%2 == 0, nên dem=1. Vì dem=1, in ra 2. j=1
Khi k = 3, vòng lặp for chạy từ 2 đến 3. Khi đó, 3%2 != 0, 3%3 == 0, nên dem=1. Vì dem=1, in ra 3. j=2
Khi k = 4, vòng lặp for chạy từ 2 đến 4. Khi đó, 4%2 == 0, 4%3 != 0, 4%4 == 0, nên dem=2. Vì dem!=1, không in ra.
Khi k = 5, vòng lặp for chạy từ 2 đến 5. Khi đó, 5%2 != 0, 5%3 != 0, 5%4 != 0, 5%5 == 0, nên dem=1. Vì dem=1, in ra 5. j=3
Vòng lặp while kết thúc vì j=3.
Lời giải:
Đáp án đúng: B
Đoạn chương trình duyệt qua chuỗi "Nguyen Van An".
- `s = s.trim();` loại bỏ khoảng trắng ở đầu và cuối chuỗi (trong trường hợp này không có).
- Vòng lặp `for` duyệt từng ký tự của chuỗi.
- `s1 = s.substring(i, i+1);` lấy ra ký tự tại vị trí `i`.
- `if (s1.equals(" "))` kiểm tra nếu ký tự đó là khoảng trắng:
- Nếu là khoảng trắng, đoạn code lấy ký tự tiếp theo `s1 = s.substring(i + 1, i + 2);` và kiểm tra `if (s.equals(" ")) continue;`. Ở đây có một lỗi logic, điều kiện `s.equals(" ")` luôn sai vì `s` là "Nguyen Van An". Do đó nhánh `else s2 = s2 + s.substring(i,i + 1);` sẽ được thực hiện, thêm khoảng trắng vào `s2`.
- `else s2 = s2 + s1;` nếu ký tự không phải là khoảng trắng, nó sẽ được thêm vào `s2`.
Vì vậy, chuỗi kết quả `s2` sẽ là chuỗi gốc "Nguyen Van An".
- `s = s.trim();` loại bỏ khoảng trắng ở đầu và cuối chuỗi (trong trường hợp này không có).
- Vòng lặp `for` duyệt từng ký tự của chuỗi.
- `s1 = s.substring(i, i+1);` lấy ra ký tự tại vị trí `i`.
- `if (s1.equals(" "))` kiểm tra nếu ký tự đó là khoảng trắng:
- Nếu là khoảng trắng, đoạn code lấy ký tự tiếp theo `s1 = s.substring(i + 1, i + 2);` và kiểm tra `if (s.equals(" ")) continue;`. Ở đây có một lỗi logic, điều kiện `s.equals(" ")` luôn sai vì `s` là "Nguyen Van An". Do đó nhánh `else s2 = s2 + s.substring(i,i + 1);` sẽ được thực hiện, thêm khoảng trắng vào `s2`.
- `else s2 = s2 + s1;` nếu ký tự không phải là khoảng trắng, nó sẽ được thêm vào `s2`.
Vì vậy, chuỗi kết quả `s2` sẽ là chuỗi gốc "Nguyen Van An".
Lời giải:
Đáp án đúng: D
Đề bài yêu cầu tìm các số nguyên tố trong khoảng từ 1000 đến 1020.
Đoạn chương trình duyệt qua các số từ 1000 đến 1020 (biến k).
Với mỗi số k, biến dem đếm số lượng ước của k (từ 2 đến k).
Nếu dem = 1, tức là k chỉ có một ước duy nhất trong khoảng từ 2 đến k, suy ra k là số nguyên tố (vì số nguyên tố chỉ chia hết cho 1 và chính nó). Lưu ý rằng vòng lặp `for (n=2; n<=k; n++)` nên điều kiện `k % n == 0` sẽ xảy ra khi n = k. Vì vậy, nếu k là số nguyên tố, `dem` sẽ bằng 1.
Vậy, chương trình sẽ in ra các số nguyên tố trong khoảng [1000, 1020]. Các số nguyên tố trong khoảng này là: 1009, 1013, 1019.
Như vậy, đáp án đúng là B. 1009 1013 1019
Đoạn chương trình duyệt qua các số từ 1000 đến 1020 (biến k).
Với mỗi số k, biến dem đếm số lượng ước của k (từ 2 đến k).
Nếu dem = 1, tức là k chỉ có một ước duy nhất trong khoảng từ 2 đến k, suy ra k là số nguyên tố (vì số nguyên tố chỉ chia hết cho 1 và chính nó). Lưu ý rằng vòng lặp `for (n=2; n<=k; n++)` nên điều kiện `k % n == 0` sẽ xảy ra khi n = k. Vì vậy, nếu k là số nguyên tố, `dem` sẽ bằng 1.
Vậy, chương trình sẽ in ra các số nguyên tố trong khoảng [1000, 1020]. Các số nguyên tố trong khoảng này là: 1009, 1013, 1019.
Như vậy, đáp án đúng là B. 1009 1013 1019
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP

Bộ Đồ Án Tốt Nghiệp Ngành Trí Tuệ Nhân Tạo Và Học Máy
89 tài liệu310 lượt tải

Bộ 120+ Đồ Án Tốt Nghiệp Ngành Hệ Thống Thông Tin
125 tài liệu441 lượt tải

Bộ Đồ Án Tốt Nghiệp Ngành Mạng Máy Tính Và Truyền Thông
104 tài liệu687 lượt tải

Bộ Luận Văn Tốt Nghiệp Ngành Kiểm Toán
103 tài liệu589 lượt tải

Bộ 370+ Luận Văn Tốt Nghiệp Ngành Kế Toán Doanh Nghiệp
377 tài liệu1030 lượt tải

Bộ Luận Văn Tốt Nghiệp Ngành Quản Trị Thương Hiệu
99 tài liệu1062 lượt tải
ĐĂNG KÝ GÓI THI VIP
- Truy cập hơn 100K đề thi thử và chính thức các năm
- 2M câu hỏi theo các mức độ: Nhận biết – Thông hiểu – Vận dụng
- Học nhanh với 10K Flashcard Tiếng Anh theo bộ sách và chủ đề
- Đầy đủ: Mầm non – Phổ thông (K12) – Đại học – Người đi làm
- Tải toàn bộ tài liệu trên TaiLieu.VN
- Loại bỏ quảng cáo để tăng khả năng tập trung ôn luyện
- Tặng 15 ngày khi đăng ký gói 3 tháng, 30 ngày với gói 6 tháng và 60 ngày với gói 12 tháng.
77.000 đ/ tháng