Kết quả của chương trình sau là gì?
#include
#include
float x[] = {
63.2,
-45.6,
70.1,
3.6,
14.5
};
int n = sizeof(x) / sizeof(float);
void main() {
clrscr();
int i, j;
floar c;
for (i = 0, j = n - 1; i < j; i++, j--); {
c = x[i]
x[i] = x[j]
x[j] = c;
};
printf(“\nDay ket qua la: \n”);
for (i = 0; i < n; i++)
printf(“ % 8.2 f”, x[i]);
getch();
return;
};
#include
#include
float x[] = {
63.2,
-45.6,
70.1,
3.6,
14.5
};
int n = sizeof(x) / sizeof(float);
void main() {
clrscr();
int i, j;
floar c;
for (i = 0, j = n - 1; i < j; i++, j--); {
c = x[i]
x[i] = x[j]
x[j] = c;
};
printf(“\nDay ket qua la: \n”);
for (i = 0; i < n; i++)
printf(“ % 8.2 f”, x[i]);
getch();
return;
};
Trả lời:
Đáp án đúng: A
Chương trình C này thực hiện đảo ngược một mảng các số thực.
1. **Khai báo và khởi tạo mảng:** Mảng `x` được khởi tạo với các giá trị {63.2, -45.6, 70.1, 3.6, 14.5}. Biến `n` lưu trữ số lượng phần tử của mảng. Do đó, `n = 5`.
2. **Vòng lặp đảo ngược:** Vòng lặp `for (i = 0, j = n - 1; i < j; i++, j--);` được sử dụng để đảo ngược mảng. Tuy nhiên, có một lỗi cú pháp quan trọng: dấu chấm phẩy (`;`) ngay sau vòng lặp `for`. Điều này khiến thân vòng lặp chỉ chứa một khối lệnh trống (null statement). Do đó, các câu lệnh gán `c = x[i]`, `x[i] = x[j]` và `x[j] = c` chỉ được thực hiện một lần sau khi vòng lặp kết thúc, với giá trị cuối cùng của `i` và `j`.
Vòng lặp dừng khi `i >= j`. Vì `i` bắt đầu từ 0 và tăng dần, `j` bắt đầu từ `n-1 = 4` và giảm dần, vòng lặp dừng khi `i = j = 2`.
3. **Hoán đổi duy nhất:** Sau vòng lặp, các lệnh sau được thực thi:
* `c = x[2]` (c = 70.1)
* `x[2] = x[2]` (x[2] = 70.1)
* `x[2] = c` (x[2] = 70.1)
Như vậy, chỉ có phần tử ở vị trí giữa mảng bị "hoán đổi" với chính nó, không làm thay đổi mảng.
4. **In mảng:** Sau đó, chương trình in ra mảng đã được (gần như) không thay đổi. Kết quả sẽ là dãy số ban đầu: 63.20, -45.60, 70.10, 3.60, 14.50.
Do đó, đáp án đúng là A.
Tổng hợp 600+ câu hỏi trắc nghiệm lập trình C có đáp án đầy đủ nhằm giúp các bạn dễ dàng ôn tập lại toàn bộ các kiến thức.
50 câu hỏi 60 phút
Câu hỏi liên quan

FORM.08: Bộ 130+ Biểu Mẫu Thống Kê Trong Doanh Nghiệp

FORM.07: Bộ 125+ Biểu Mẫu Báo Cáo Trong Doanh Nghiệp

FORM.06: Bộ 320+ Biểu Mẫu Hành Chính Thông Dụng

FORM.05: Bộ 330+ Biểu Mẫu Thuế - Kê Khai Thuế Mới Nhất

FORM.04: Bộ 240+ Biểu Mẫu Chứng Từ Kế Toán Thông Dụng
