1) Cho chương trình sau: var f:array[0..50] of word; i:byte; Begin f[0]:=0; f[1]:=1; for i:=2 to 10 do begin f[i]:=f[i-1]+f[i-2]; write(f[i]:4); end; End. Phần tử a[6] có giá trị là: A. 6 B. 7 C. 8 D. 9 2) Cho đoạn chương trình giải bài toán tìm phần tử có giá trị lớn nhất trong mảng và chỉ số của phần tử tìm được như sau: j:=1; For i:=2 to n do if a[i] > a[j] then j:=i; Write(‘gia trị lớn nhat la’,a[j], ‘chi so:’,j); Giải thích nào dưới đây cho đoạn chương trình trên là hợp lí A. Đưa ra tất cả các phần tử lớn nhất và chỉ số của nó B. Nếu có nhiều phần tử cùng có giá trị lớn nhất thì đưa ra phần tử có chỉ số nhỏ nhất C. Nếu có nhiều phần tử cùng có giá trị lớn nhất thì đưa ra phần tử có chỉ số lớn nhất D. Đưa ra 1 giá trị lớn nhất và tất cả các chỉ số
2 câu trả lời
1)
f[0] = 0 ; f[1] = 1
i chạy từ 2 đến 10
f[2] = f[2 - 1] + f[2 -2] = f1 + f0 = 1 + 0 = 1
f[3] = f[3 - 1] + f[3 - 2] = f2 + f1 = 1 + 1 = 2
f[4] = f[4 - 1] + f[4 - 2] = f3 + f2 = 2 + 1 = 3
f[5] = f[5 - 1] + f[5 - 2] = f4 + f3 = 3 + 2 = 5
f[6] = f[6 - 1] + f[6 -2] = f5 + f4 = 5 + 3 = 8
=> f[6] có giá trị là 8
2)
j = 1; i = 2
a[2] > a[1] thì j = 2 => phần tử lớn nhất là a[2] và j = 2
* * * * * * * ** * * ** * * ** * * ** * * ** * * ** * * *
j = 2; i = 3
a[3] > a[2] thì j = 3 => phần tử lớn nhất là a[3] và j = 3
lặp tới giá trị n....
=> Nếu có nhiều phần tử cùng có giá trị lớn nhất thì đưa ra phần tử có chỉ số lớn nhất
C1, C.8
C2,B. Nếu có nhiều phần tử cùng có giá trị lớn nhất thì đưa ra phần tử có chỉ số nhỏ nhất
Câu hỏi trong lớp
Xem thêm