Lệnh nào trong các lệnh sau cho phép nhảy ra khỏi vòng lặp đến vị trí bất kì mong muốn:
Trả lời:
Đáp án đúng: C
Lệnh `break;` được sử dụng để thoát khỏi vòng lặp hiện tại, nhưng chỉ thoát ra khỏi vòng lặp gần nhất chứa nó. Lệnh `continue;` bỏ qua phần còn lại của vòng lặp hiện tại và tiếp tục với lần lặp tiếp theo. Lệnh `goto;` cho phép nhảy đến một nhãn (label) được định nghĩa trước trong chương trình. Vì vậy, `goto;` là lệnh cho phép nhảy ra khỏi vòng lặp đến một vị trí bất kì mong muốn.
Như vậy, đáp án đúng là C.
Câu hỏi liên quan
Lời giải:
Đáp án đúng: D
Đề bài yêu cầu xác định kết quả của đoạn chương trình C khi thực hiện nhập liệu với định dạng `scanf(" %c %d", &n, &c);`. Điểm mấu chốt ở đây là thứ tự các biến trong chuỗi định dạng của `scanf` và thứ tự các biến được truyền vào hàm. Theo đoạn code `scanf(" %c %d", &n, &c);`, chương trình mong muốn nhập một ký tự (`%c`) và gán nó vào biến `n` (kiểu `int`), sau đó nhập một số nguyên (`%d`) và gán nó vào biến `c` (kiểu `char`).
Khi nhập "r 45", `scanf` sẽ cố gắng gán ký tự 'r' vào biến `n` (kiểu int). Trong C, ký tự 'r' có giá trị số tương ứng (trong bảng mã ASCII), giá trị này sẽ được gán cho `n`. Tiếp theo, `scanf` sẽ cố gắng gán số 45 vào biến `c` (kiểu char). Như vậy, `n` sẽ có giá trị là giá trị ASCII của 'r' và `c` sẽ có giá trị 45 (tương ứng với ký tự có mã ASCII là 45).
Tuy nhiên, có một lỗi trong đoạn code này. Thứ tự của `%c` và `%d` trong chuỗi định dạng của `scanf` không khớp với thứ tự của `&n` và `&c` trong danh sách các đối số. Vì vậy chương trình sẽ không chạy theo kết quả mà các đáp án đưa ra.
Do đó không có đáp án nào đúng trong các đáp án trên.
Khi nhập "r 45", `scanf` sẽ cố gắng gán ký tự 'r' vào biến `n` (kiểu int). Trong C, ký tự 'r' có giá trị số tương ứng (trong bảng mã ASCII), giá trị này sẽ được gán cho `n`. Tiếp theo, `scanf` sẽ cố gắng gán số 45 vào biến `c` (kiểu char). Như vậy, `n` sẽ có giá trị là giá trị ASCII của 'r' và `c` sẽ có giá trị 45 (tương ứng với ký tự có mã ASCII là 45).
Tuy nhiên, có một lỗi trong đoạn code này. Thứ tự của `%c` và `%d` trong chuỗi định dạng của `scanf` không khớp với thứ tự của `&n` và `&c` trong danh sách các đối số. Vì vậy chương trình sẽ không chạy theo kết quả mà các đáp án đưa ra.
Do đó không có đáp án nào đúng trong các đáp án trên.
Lời giải:
Đáp án đúng: B
Câu hỏi yêu cầu khai báo một hàm kiểm tra mảng tăng.
* A. void CheckAsc(int a[], int n);: Khai báo này hợp lệ. Hàm này nhận một mảng số nguyên `a` và kích thước `n` của mảng. Kiểu trả về `void` cho thấy hàm này có thể in ra kết quả hoặc thay đổi mảng trực tiếp thay vì trả về một giá trị.
* B. int CheckAsc(int *a, int n);: Khai báo này cũng hợp lệ. Hàm này nhận một con trỏ `a` đến mảng số nguyên và kích thước `n` của mảng. Kiểu trả về `int` cho thấy hàm này có thể trả về một giá trị nguyên, ví dụ: 1 nếu mảng tăng và 0 nếu không.
* C. long CheckAsc(int *S);: Khai báo này không đầy đủ vì chỉ nhận con trỏ `S` đến mảng mà không có thông tin về kích thước của mảng. Điều này gây khó khăn trong việc duyệt qua tất cả các phần tử của mảng để kiểm tra tính tăng dần.
* D. double CheckAsc(int S[], int n);: Khai báo này hợp lệ, tương tự như A, nhưng kiểu trả về là `double`, có thể không phù hợp nếu chỉ cần trả về một giá trị boolean (ví dụ: 1 cho tăng, 0 cho không tăng).
Trong các lựa chọn trên, B là phù hợp nhất vì nó cho phép hàm trả về một giá trị (ví dụ, 1 hoặc 0) để chỉ ra mảng có tăng hay không, và nó cũng có đầy đủ thông tin (mảng và kích thước) để thực hiện kiểm tra. A cũng đúng nhưng không linh hoạt bằng B vì không trả về giá trị nào.
* A. void CheckAsc(int a[], int n);: Khai báo này hợp lệ. Hàm này nhận một mảng số nguyên `a` và kích thước `n` của mảng. Kiểu trả về `void` cho thấy hàm này có thể in ra kết quả hoặc thay đổi mảng trực tiếp thay vì trả về một giá trị.
* B. int CheckAsc(int *a, int n);: Khai báo này cũng hợp lệ. Hàm này nhận một con trỏ `a` đến mảng số nguyên và kích thước `n` của mảng. Kiểu trả về `int` cho thấy hàm này có thể trả về một giá trị nguyên, ví dụ: 1 nếu mảng tăng và 0 nếu không.
* C. long CheckAsc(int *S);: Khai báo này không đầy đủ vì chỉ nhận con trỏ `S` đến mảng mà không có thông tin về kích thước của mảng. Điều này gây khó khăn trong việc duyệt qua tất cả các phần tử của mảng để kiểm tra tính tăng dần.
* D. double CheckAsc(int S[], int n);: Khai báo này hợp lệ, tương tự như A, nhưng kiểu trả về là `double`, có thể không phù hợp nếu chỉ cần trả về một giá trị boolean (ví dụ: 1 cho tăng, 0 cho không tăng).
Trong các lựa chọn trên, B là phù hợp nhất vì nó cho phép hàm trả về một giá trị (ví dụ, 1 hoặc 0) để chỉ ra mảng có tăng hay không, và nó cũng có đầy đủ thông tin (mảng và kích thước) để thực hiện kiểm tra. A cũng đúng nhưng không linh hoạt bằng B vì không trả về giá trị nào.
Lời giải:
Đáp án đúng: B
Câu lệnh FILE * fopen(tep1, "ab");
có ý nghĩa là mở một tệp nhị phân (binary file) có tên là tep1
để ghi thêm dữ liệu vào cuối tệp. Chế độ "ab" (append binary) cho phép ghi dữ liệu vào cuối tệp mà không làm mất dữ liệu cũ. Nếu tệp chưa tồn tại, nó sẽ được tạo mới.
Lời giải:
Đáp án đúng: C
Đoạn code khai báo một cấu trúc `STUDENT` với ba trường số nguyên `d1`, `d2`, và `d3`. Sau đó, một biến `v` kiểu `STUDENT` được khởi tạo với các giá trị lần lượt là 2, 3, và 4. Cuối cùng, giá trị của trường `d1` được tăng lên 1.
Như vậy, sau khi thực hiện các lệnh trên, `v.d1` sẽ có giá trị là 3, `v.d2` có giá trị là 3, và `v.d3` có giá trị là 4.
Để tính giá trị trung bình, ta thực hiện phép tính (3 + 3 + 4) / 3 = 10 / 3 = 3.333...
Vì 3.333... khác với 3.0 và 4.0, đáp án đúng là "Giá trị khác".
Như vậy, sau khi thực hiện các lệnh trên, `v.d1` sẽ có giá trị là 3, `v.d2` có giá trị là 3, và `v.d3` có giá trị là 4.
Để tính giá trị trung bình, ta thực hiện phép tính (3 + 3 + 4) / 3 = 10 / 3 = 3.333...
Vì 3.333... khác với 3.0 và 4.0, đáp án đúng là "Giá trị khác".
Lời giải:
Đáp án đúng: C
Đoạn chương trình C này thực hiện các phép toán trên con trỏ. Ban đầu, `px` trỏ đến phần tử đầu tiên của mảng `a`, và `py` trỏ đến phần tử cuối cùng của mảng `a`.
`px = a;` gán địa chỉ của `a[0]` cho `px`.
`py = &a[5];` gán địa chỉ của `a[5]` cho `py`.
`++px;` tăng `px` lên 1, tức là `px` trỏ đến `a[1]`.
`printf("%d", ++px - py);` in ra hiệu giữa `px` và `py`. Vì `px` đã tăng lên một lần trước đó nên `px` đang trỏ tới `a[1]`. Phép trừ hai con trỏ sẽ cho ra số lượng phần tử giữa hai con trỏ đó. Trong trường hợp này, `px` trỏ đến `a[1]` và `py` trỏ đến `a[5]`. Vì vậy, `px - py` sẽ là 1 - 5 = -4. Tuy nhiên, do có phép `++px` nên `px` trỏ tới `a[1]` trước khi tính toán, do đó kết quả của `px - py` là `1 - 5 = -4`. Vậy `++px - py` sẽ là 1 - 5 = -4.
Vậy đáp án đúng là A: -4
`px = a;` gán địa chỉ của `a[0]` cho `px`.
`py = &a[5];` gán địa chỉ của `a[5]` cho `py`.
`++px;` tăng `px` lên 1, tức là `px` trỏ đến `a[1]`.
`printf("%d", ++px - py);` in ra hiệu giữa `px` và `py`. Vì `px` đã tăng lên một lần trước đó nên `px` đang trỏ tới `a[1]`. Phép trừ hai con trỏ sẽ cho ra số lượng phần tử giữa hai con trỏ đó. Trong trường hợp này, `px` trỏ đến `a[1]` và `py` trỏ đến `a[5]`. Vì vậy, `px - py` sẽ là 1 - 5 = -4. Tuy nhiên, do có phép `++px` nên `px` trỏ tới `a[1]` trước khi tính toán, do đó kết quả của `px - py` là `1 - 5 = -4`. Vậy `++px - py` sẽ là 1 - 5 = -4.
Vậy đáp án đúng là A: -4
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