JavaScript is required

Anh (Chị) hãy cho biết kết quả của đoạn lệnh sau là gì?

struct hocsinh {

string hoten; int namsinh; } ;

int main() {

hocsinh hs[3]

hocsinh *p = hs;

for (int I = 0; i < 3; i++) {

p->namsinh = 1991 + i;

p++;

}

p = hs+1; p->namsinh -= 20; cout << hs[1].namsinh << endl; return 0;

}

A.

1972

B.

1971

C.

1970

D.

1973

Trả lời:

Đáp án đúng: A


Đoạn code C++ này sử dụng một struct `hocsinh` để lưu trữ thông tin học sinh (tên và năm sinh). Chương trình tạo một mảng `hs` gồm 3 học sinh, sau đó sử dụng con trỏ `p` để duyệt và gán giá trị cho `namsinh` của từng học sinh. Ban đầu, vòng lặp gán `namsinh` cho các học sinh trong mảng `hs` như sau: - hs[0].namsinh = 1991 + 0 = 1991 - hs[1].namsinh = 1991 + 1 = 1992 - hs[2].namsinh = 1991 + 2 = 1993 Sau vòng lặp, con trỏ `p` được gán lại bằng `hs + 1`, tức là `p` trỏ đến `hs[1]`. Sau đó, `hs[1].namsinh` được giảm đi 20 đơn vị: `hs[1].namsinh = 1992 - 20 = 1972`. Cuối cùng, chương trình in ra giá trị của `hs[1].namsinh`, là 1972. Vậy đáp án đúng là A. 1972

Câu hỏi liên quan