Đáp án đúng: C
Trong ngôn ngữ lập trình C, xâu định dạng "%f"
được sử dụng để in ra một số thực dấu chấm động (floating-point number) với độ chính xác đơn (single precision). Các lựa chọn khác không phù hợp:
"%u"
: Dùng để in ra một số nguyên không dấu (unsigned integer)."%e"
: Dùng để in ra một số thực ở dạng ký pháp khoa học (scientific notation)."%o"
: Dùng để in ra một số nguyên ở hệ cơ số bát phân (octal).
Câu hỏi liên quan
Đề bài yêu cầu xác định kết quả in ra màn hình của đoạn code C.
Bước 1: Khai báo một mảng ký tự str
được khởi tạo với chuỗi "pvpit".
Bước 2: Khai báo một con trỏ ký tự s1
và gán cho nó địa chỉ của phần tử đầu tiên của mảng str
.
Bước 3: Tăng giá trị của con trỏ s1
lên một đơn vị. Điều này có nghĩa là s1
bây giờ trỏ đến phần tử thứ hai của mảng str
(ký tự 'v').
Bước 4: In ra ký tự mà s1
đang trỏ tới, tức là ký tự 'v'.
Vậy đáp án đúng là C.
Biểu thức `xy + call(x, y)` sẽ là `20 + 510`, kết quả là `530`.
Để so sánh hai câu lệnh, chúng ta cần phân tích cách chúng hoạt động trong các trường hợp khác nhau.
Câu lệnh 1: a <= 20 ? (b = 30) : (c = 30);
- Nếu a <= 20
là true
, thì b
được gán giá trị 30.
- Nếu a <= 20
là false
, thì c
được gán giá trị 30.
Câu lệnh 2: (a <= 20) ? b : (c = 30);
- Nếu a <= 20
là true
, thì biến b
được trả về (không thay đổi giá trị của b
).
- Nếu a <= 20
là false
, thì c
được gán giá trị 30.
Nhận xét:
- Trong câu lệnh 1, nếu a <= 20
là true
, thì b
sẽ nhận giá trị 30. Trong câu lệnh 2, nếu a <= 20
là true
, giá trị của b
không thay đổi (và biểu thức chỉ trả về giá trị của b
).
- Trong c cả hai câu lệnh, nếu a <= 20
là false
, thì c
được gán giá trị 30.
Vì vậy, hai câu lệnh này không giống nhau.
`y = --x;` có nghĩa là `x` giảm đi 1 trước, sau đó giá trị mới của `x` được gán cho `y`. Vậy, `x` trở thành 3, và `y` cũng bằng 3.
`z = x--;` có nghĩa là giá trị hiện tại của `x` (là 3) được gán cho `z`, sau đó `x` giảm đi 1. Vậy, `z` bằng 3, và `x` trở thành 2.
Cuối cùng, `printf("%d %d %d", x, y, z);` in ra giá trị của `x`, `y`, và `z`, lần lượt là 2, 3, và 3.
1. Khởi tạo: `i = 2`, `j = 2`.
2. Vòng lặp `while`: Điều kiện `i+1? --i : j++` được đánh giá.
- `i + 1` (tức là `2 + 1 = 3`) khác 0, do đó biểu thức bên trái dấu `:` được thực thi, tức là `--i`.
- `--i` làm giảm `i` xuống 1 (vậy `i = 1`). Giá trị của biểu thức `--i` là 1.
- Vòng lặp in ra giá trị của `i` (tức là 1).
3. Lặp lại vòng lặp `while`:
- `i + 1` (tức là `1 + 1 = 2`) khác 0, do đó `--i` được thực thi.
- `--i` làm giảm `i` xuống 0 (vậy `i = 0`). Giá trị của biểu thức `--i` là 0.
- Vòng lặp in ra giá trị của `i` (tức là 0).
4. Lặp lại vòng lặp `while`:
- `i + 1` (tức là `0 + 1 = 1`) khác 0, do đó `--i` được thực thi.
- `--i` làm giảm `i` xuống -1 (vậy `i = -1`). Giá trị của biểu thức `--i` là -1.
- Vòng lặp in ra giá trị của `i` (tức là -1).
5. Lặp lại vòng lặp `while`:
- `i + 1` (tức là `-1 + 1 = 0`) bằng 0, do đó `j++` được thực thi.
- `j++` làm tăng `j` lên 1 (vậy `j = 3`). Giá trị của biểu thức `j++` là 2 (giá trị trước khi tăng).
- Vòng lặp in ra giá trị của `i` (tức là -1).
6. Lặp lại vòng lặp `while`:
- `i + 1` (tức là `-1 + 1 = 0`) bằng 0, do đó `j++` được thực thi.
- `j++` làm tăng `j` lên 1 (vậy `j = 4`). Giá trị của biểu thức `j++` là 3 (giá trị trước khi tăng).
- Vòng lặp in ra giá trị của `i` (tức là -1).
Vì vòng lặp `while` không có điều kiện dừng cụ thể (ngoài việc `i + 1` bằng 0, nhưng `i` luôn bị thay đổi và `j` luôn tăng), nên vòng lặp sẽ tiếp tục cho đến khi có lỗi tràn số hoặc một điều kiện dừng khác bên ngoài vòng lặp (ví dụ: do người dùng can thiệp).
Tuy nhiên, trong các lựa chọn đưa ra, không có lựa chọn nào phản ánh chính xác đầu ra của vòng lặp này. Các giá trị i sẽ tiếp tục giảm cho đến khi i+1 = 0, lúc đó j sẽ tăng và quá trình lặp lại, vì thế đáp án đúng nhất là không có đáp án nào đúng.

Bộ Đồ Án Tốt Nghiệp Ngành Trí Tuệ Nhân Tạo Và Học Máy

Bộ 120+ Đồ Án Tốt Nghiệp Ngành Hệ Thống Thông Tin

Bộ Đồ Án Tốt Nghiệp Ngành Mạng Máy Tính Và Truyền Thông

Bộ Luận Văn Tốt Nghiệp Ngành Kiểm Toán

Bộ 370+ Luận Văn Tốt Nghiệp Ngành Kế Toán Doanh Nghiệp

Bộ Luận Văn Tốt Nghiệp Ngành Quản Trị Thương Hiệu
ĐĂ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.