Trả lời:
Đáp án đúng: B
Đoạn code được cung cấp có lỗi cú pháp nên không thể biên dịch hoặc chạy. Cụ thể, biến `x` được sử dụng trong lệnh `print(x)` nhưng chưa được khởi tạo hoặc gán giá trị trước đó. Do đó, Python sẽ báo lỗi "name 'x' is not defined".
Câu hỏi liên quan
Lời giải:
Đáp án đúng: A
Chương trình C++ có lỗi cú pháp ở dòng `void v = sum(a, b);`. Hàm `sum` trả về một giá trị kiểu `int`, nhưng biến `v` lại được khai báo kiểu `void`. Kiểu `void` được sử dụng khi hàm không trả về giá trị nào, do đó không thể gán giá trị trả về của `sum` cho `v`. Để sửa lỗi này, cần khai báo `v` là kiểu `int`.
Lời giải:
Đáp án đúng: C
Câu hỏi kiểm tra về cách sử dụng đúng cú pháp của toán tử điều kiện (ternary operator) trong C. Toán tử này có cú pháp: `condition ? expression1 : expression2`. Nếu `condition` đúng, `expression1` được thực thi; nếu sai, `expression2` được thực thi.
* A. a>b? c = 20 : c = 21;: Đúng. Đây là cách sử dụng chính xác toán tử điều kiện. Nếu `a > b` đúng, `c` sẽ nhận giá trị 20; ngược lại, `c` sẽ nhận giá trị 21.
* B. a>b? c = 20;: Sai. Toán tử điều kiện yêu cầu cả hai nhánh (true và false). Thiếu nhánh `false` sau dấu hai chấm `:`.
* C. max = a>b? a>c?a:c:b>c?b:c;: Đúng về mặt cú pháp, đây là một cách sử dụng toán tử điều kiện lồng nhau. Nếu a > b thì so sánh a và c để tìm max, ngược lại so sánh b và c để tìm max. Tuy nhiên cách viết này có thể khó đọc.
* D. return (a>b)?(a:b);: Sai. Trong biểu thức `(a:b)` sau dấu `?`, toán tử `:` không được sử dụng để chỉ định giá trị trả về. Cần phải sửa thành `(a>b)? a : b` để trả về `a` nếu `a>b` đúng và `b` nếu sai.
* A. a>b? c = 20 : c = 21;: Đúng. Đây là cách sử dụng chính xác toán tử điều kiện. Nếu `a > b` đúng, `c` sẽ nhận giá trị 20; ngược lại, `c` sẽ nhận giá trị 21.
* B. a>b? c = 20;: Sai. Toán tử điều kiện yêu cầu cả hai nhánh (true và false). Thiếu nhánh `false` sau dấu hai chấm `:`.
* C. max = a>b? a>c?a:c:b>c?b:c;: Đúng về mặt cú pháp, đây là một cách sử dụng toán tử điều kiện lồng nhau. Nếu a > b thì so sánh a và c để tìm max, ngược lại so sánh b và c để tìm max. Tuy nhiên cách viết này có thể khó đọc.
* D. return (a>b)?(a:b);: Sai. Trong biểu thức `(a:b)` sau dấu `?`, toán tử `:` không được sử dụng để chỉ định giá trị trả về. Cần phải sửa thành `(a>b)? a : b` để trả về `a` nếu `a>b` đúng và `b` nếu sai.
Lời giải:
Đáp án đúng: A
Đoạn code C++ sử dụng con trỏ và vòng lặp để thay đổi giá trị của các biến. Ta cùng phân tích:
1. `int a[] = {1, 2, 3};`: Khai báo một mảng `a` gồm 3 phần tử có giá trị lần lượt là 1, 2, 3.
2. `int *p = a;`: Khai báo một con trỏ `p` kiểu `int` và gán địa chỉ của phần tử đầu tiên của mảng `a` cho `p`. Vậy `p` đang trỏ tới `a[0]` (giá trị 1).
3. `*(p++) = 2;`:
- `*(p)`: Truy cập giá trị mà con trỏ `p` đang trỏ tới (ban đầu là `a[0]`).
- `*(p++) = 2;`: Gán giá trị 2 cho `a[0]`. Sau đó, `p++` tăng con trỏ `p` lên một vị trí, bây giờ `p` trỏ tới `a[1]`.
4. `*(p++) = *a;`:
- `*a`: Lấy giá trị của phần tử đầu tiên trong mảng a (tức là `a[0]`, mà bây giờ `a[0]` có giá trị là 2).
- `*(p++) = *a;`: Gán giá trị 2 (giá trị của `a[0]`) cho `a[1]`. Sau đó, `p++` tăng con trỏ `p` lên một vị trí, bây giờ `p` trỏ tới `a[2]`.
5. `cout << a[1] << " " << *p;`:
- `a[1]`: In ra giá trị của phần tử thứ hai của mảng `a` (tức là `a[1]`, có giá trị là 2).
- `*p`: In ra giá trị mà con trỏ `p` đang trỏ tới (tức là `a[2]`, có giá trị ban đầu là 3, không bị thay đổi).
Vậy kết quả in ra là `2 3`.
1. `int a[] = {1, 2, 3};`: Khai báo một mảng `a` gồm 3 phần tử có giá trị lần lượt là 1, 2, 3.
2. `int *p = a;`: Khai báo một con trỏ `p` kiểu `int` và gán địa chỉ của phần tử đầu tiên của mảng `a` cho `p`. Vậy `p` đang trỏ tới `a[0]` (giá trị 1).
3. `*(p++) = 2;`:
- `*(p)`: Truy cập giá trị mà con trỏ `p` đang trỏ tới (ban đầu là `a[0]`).
- `*(p++) = 2;`: Gán giá trị 2 cho `a[0]`. Sau đó, `p++` tăng con trỏ `p` lên một vị trí, bây giờ `p` trỏ tới `a[1]`.
4. `*(p++) = *a;`:
- `*a`: Lấy giá trị của phần tử đầu tiên trong mảng a (tức là `a[0]`, mà bây giờ `a[0]` có giá trị là 2).
- `*(p++) = *a;`: Gán giá trị 2 (giá trị của `a[0]`) cho `a[1]`. Sau đó, `p++` tăng con trỏ `p` lên một vị trí, bây giờ `p` trỏ tới `a[2]`.
5. `cout << a[1] << " " << *p;`:
- `a[1]`: In ra giá trị của phần tử thứ hai của mảng `a` (tức là `a[1]`, có giá trị là 2).
- `*p`: In ra giá trị mà con trỏ `p` đang trỏ tới (tức là `a[2]`, có giá trị ban đầu là 3, không bị thay đổi).
Vậy kết quả in ra là `2 3`.
Lời giải:
Đáp án đúng: A
Đoạn code C trên thực hiện việc in ra các chuỗi ký tự sử dụng vòng lặp `for`. Cụ thể:
- Vòng lặp thứ nhất: `for(i=0;i<4;i++) printf("m");` in ra ký tự 'm' bốn lần, kết quả là "mmmm".
- Vòng lặp thứ hai: `for(i=0;i<3;i++) printf("a");` in ra ký tự 'a' ba lần, kết quả là "aaa".
- Vòng lặp thứ ba: `for(i=0;i<3;i++) printf("n");` in ra ký tự 'n' ba lần, kết quả là "nnn".
Vì vậy, kết quả cuối cùng khi thực thi đoạn code trên là "mmmm aaa nnn".
- Vòng lặp thứ nhất: `for(i=0;i<4;i++) printf("m");` in ra ký tự 'm' bốn lần, kết quả là "mmmm".
- Vòng lặp thứ hai: `for(i=0;i<3;i++) printf("a");` in ra ký tự 'a' ba lần, kết quả là "aaa".
- Vòng lặp thứ ba: `for(i=0;i<3;i++) printf("n");` in ra ký tự 'n' ba lần, kết quả là "nnn".
Vì vậy, kết quả cuối cùng khi thực thi đoạn code trên là "mmmm aaa nnn".
Lời giải:
Đáp án đúng: B
Đề bài yêu cầu xác định kết quả in ra màn hình của đoạn code C++.
Đoạn code khai báo một biến tĩnh `x` trong hàm `foo`. Biến tĩnh chỉ được khởi tạo một lần duy nhất trong suốt quá trình chạy chương trình. Do đó, trong lần gọi đầu tiên, `x` được khởi tạo là 5. Sau đó, `x` tăng lên 1 đơn vị thành 6 và giá trị này được trả về.
Trong hàm `main`, `foo()` được gọi hai lần. Lần gọi đầu tiên trả về 6, và `a` nhận giá trị 6. Lần gọi thứ hai, `x` không khởi tạo lại mà giữ giá trị 6 từ lần gọi trước, sau đó tăng lên 1 thành 7 và trả về. `b` nhận giá trị 7. Cuối cùng, `a` và `b` được in ra. Giá trị của `a` là 6 và `b` là 7. Tuy nhiên, không có đáp án nào trùng với kết quả này.
Nếu đề bài yêu cầu in ra `x` trong hàm `foo` thay vì trả về thì đáp án là A. 5, 5. Khi đó, `x` vẫn tăng lên thành 6 nhưng giá trị trả về và gán cho `a` và `b` là giá trị khởi tạo ban đầu.
Vì không có đáp án nào chính xác với phân tích ban đầu và giả sử in `x` sẽ cho ra đáp án A, nên ta chọn A, kèm theo giải thích về sự không chắc chắn này.
Đoạn code khai báo một biến tĩnh `x` trong hàm `foo`. Biến tĩnh chỉ được khởi tạo một lần duy nhất trong suốt quá trình chạy chương trình. Do đó, trong lần gọi đầu tiên, `x` được khởi tạo là 5. Sau đó, `x` tăng lên 1 đơn vị thành 6 và giá trị này được trả về.
Trong hàm `main`, `foo()` được gọi hai lần. Lần gọi đầu tiên trả về 6, và `a` nhận giá trị 6. Lần gọi thứ hai, `x` không khởi tạo lại mà giữ giá trị 6 từ lần gọi trước, sau đó tăng lên 1 thành 7 và trả về. `b` nhận giá trị 7. Cuối cùng, `a` và `b` được in ra. Giá trị của `a` là 6 và `b` là 7. Tuy nhiên, không có đáp án nào trùng với kết quả này.
Nếu đề bài yêu cầu in ra `x` trong hàm `foo` thay vì trả về thì đáp án là A. 5, 5. Khi đó, `x` vẫn tăng lên thành 6 nhưng giá trị trả về và gán cho `a` và `b` là giá trị khởi tạo ban đầu.
Vì không có đáp án nào chính xác với phân tích ban đầu và giả sử in `x` sẽ cho ra đáp án A, nên ta chọn A, kèm theo giải thích về sự không chắc chắn này.
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

FORM.08: Bộ 130+ Biểu Mẫu Thống Kê Trong Doanh Nghiệp
136 tài liệu563 lượt tải

FORM.07: Bộ 125+ Biểu Mẫu Báo Cáo Trong Doanh Nghiệp
125 tài liệu585 lượt tải

FORM.06: Bộ 320+ Biểu Mẫu Hành Chính Thông Dụng
325 tài liệu608 lượt tải

FORM.05: Bộ 330+ Biểu Mẫu Thuế - Kê Khai Thuế Mới Nhất
331 tài liệu1010 lượt tải

FORM.04: Bộ 240+ Biểu Mẫu Chứng Từ Kế Toán Thông Dụng
246 tài liệu802 lượt tải

CEO.22: Bộ Tài Liệu Quy Trình Kiểm Toán, Kiểm Soát Nội Bộ Doanh Nghiệp
138 tài liệu417 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