Giả sử a, b là hai số thực. Biểu thức nào dưới đây viết không đúng theo cú pháp của ngôn ngữ lập trình C
Trả lời:
Đáp án đúng: D
Trong ngôn ngữ lập trình C, các toán tử `+=`, `*=`, và `=` được sử dụng để gán giá trị. Toán tử `&=` là toán tử AND bitwise và gán. Tuy nhiên, nếu `a` và `b` là các số thực (ví dụ: `float` hoặc `double`), thì toán tử `&=` không được định nghĩa để hoạt động trực tiếp trên kiểu số thực. Do đó, biểu thức `(a&=b)` là không đúng cú pháp trong trường hợp `a` và `b` là số thực.
Câu hỏi liên quan
Lời giải:
Đáp án đúng: A
Đoạn code C này sử dụng chuỗi ký tự có escape sequence. \123 là biểu diễn bát phân của ký tự có mã ASCII là 123 (tương ứng với ký tự '{'). Số 4 và 5 tiếp theo được hiểu là các ký tự riêng lẻ. Ký tự 's' và '\n' (xuống dòng) cũng được thêm vào. Do đó, chuỗi s sẽ chứa các ký tự: '{', '4', '5', 's', '\n'.
Hàm strlen(s) sẽ trả về độ dài của chuỗi s, không bao gồm ký tự null kết thúc chuỗi. Trong trường hợp này, độ dài chuỗi là 5.
printf("%d", strlen(s)); in ra độ dài chuỗi là 5.
printf("\n%s", s); in ra một dòng mới, sau đó in ra chuỗi s: {45s (xuống dòng)}.
Vì vậy, đáp án đúng là 5.
Hàm strlen(s) sẽ trả về độ dài của chuỗi s, không bao gồm ký tự null kết thúc chuỗi. Trong trường hợp này, độ dài chuỗi là 5.
printf("%d", strlen(s)); in ra độ dài chuỗi là 5.
printf("\n%s", s); in ra một dòng mới, sau đó in ra chuỗi s: {45s (xuống dòng)}.
Vì vậy, đáp án đúng là 5.
Lời giải:
Đáp án đúng: A
Chương trình này liên quan đến con trỏ và con trỏ cấp 2 trong C.
- `i` là một biến kiểu `int` có giá trị là 3.
- `j` là một con trỏ kiểu `int *`, trỏ đến địa chỉ của `i`.
- `k` là một con trỏ cấp 2 kiểu `int **`, trỏ đến địa chỉ của `j`.
Khi in ra:
- `k` sẽ in ra địa chỉ của `j`.
- `*k` sẽ in ra giá trị mà `k` trỏ tới, tức là địa chỉ của `i`.
- `**k` sẽ in ra giá trị mà `*k` trỏ tới, tức là giá trị của `i`, là 3.
Do đó, output sẽ là "Địa chỉ của j , Địa chỉ của i , 3".
- `i` là một biến kiểu `int` có giá trị là 3.
- `j` là một con trỏ kiểu `int *`, trỏ đến địa chỉ của `i`.
- `k` là một con trỏ cấp 2 kiểu `int **`, trỏ đến địa chỉ của `j`.
Khi in ra:
- `k` sẽ in ra địa chỉ của `j`.
- `*k` sẽ in ra giá trị mà `k` trỏ tới, tức là địa chỉ của `i`.
- `**k` sẽ in ra giá trị mà `*k` trỏ tới, tức là giá trị của `i`, là 3.
Do đó, output sẽ là "Địa chỉ của j , Địa chỉ của i , 3".
Lời giải:
Đáp án đúng: A
Câu hỏi này kiểm tra kiến thức về mảng trong lập trình C.
Phát biểu 1 đúng: `int num[26]` khai báo một mảng có 26 phần tử kiểu `int`. Chỉ số của mảng chạy từ 0 đến 25.
Phát biểu 2 sai: Trong C, mảng bắt đầu từ chỉ số 0. Do đó, `num[1]` trỏ đến phần tử thứ hai của mảng, không phải phần tử đầu tiên.
Phát biểu 3 sai: Việc khởi tạo mảng không bắt buộc phải thực hiện ngay khi khai báo. Bạn có thể khai báo mảng và sau đó gán giá trị cho các phần tử của nó sau.
Phát biểu 4 đúng: Nếu `SIZE` là một macro (ví dụ: `#define SIZE 26`), thì `num[SIZE]` là hợp lệ. Preprocessor sẽ thay thế `SIZE` bằng giá trị của nó trước khi biên dịch.
Vậy, các phát biểu đúng là 1 và 4.
Phát biểu 1 đúng: `int num[26]` khai báo một mảng có 26 phần tử kiểu `int`. Chỉ số của mảng chạy từ 0 đến 25.
Phát biểu 2 sai: Trong C, mảng bắt đầu từ chỉ số 0. Do đó, `num[1]` trỏ đến phần tử thứ hai của mảng, không phải phần tử đầu tiên.
Phát biểu 3 sai: Việc khởi tạo mảng không bắt buộc phải thực hiện ngay khi khai báo. Bạn có thể khai báo mảng và sau đó gán giá trị cho các phần tử của nó sau.
Phát biểu 4 đúng: Nếu `SIZE` là một macro (ví dụ: `#define SIZE 26`), thì `num[SIZE]` là hợp lệ. Preprocessor sẽ thay thế `SIZE` bằng giá trị của nó trước khi biên dịch.
Vậy, các phát biểu đúng là 1 và 4.
Lời giải:
Đáp án đúng: A
Trong C, kích thước của một cấu trúc có thể không đơn giản là tổng kích thước của các thành phần của nó do padding (phần đệm) để đảm bảo việc căn chỉnh bộ nhớ cho các thành viên. Điều này đặc biệt quan trọng trên các kiến trúc 32-bit hoặc 64-bit, nơi việc truy cập dữ liệu không được căn chỉnh có thể chậm hơn hoặc thậm chí gây ra lỗi.
Trong cấu trúc `A`:
- `int a[2]`: Mảng 2 số nguyên. Giả sử `int` là 4 byte, thì kích thước của `a` là 2 * 4 = 8 byte.
- `char b[5]`: Mảng 5 ký tự. Kích thước là 5 byte.
- `char c[5]`: Mảng 5 ký tự. Kích thước là 5 byte.
Tổng kích thước "thô" là 8 + 5 + 5 = 18 byte.
Tuy nhiên, trình biên dịch có thể thêm padding sau `b` để đảm bảo `c` được căn chỉnh đúng cách. Trong nhiều trường hợp, cấu trúc được căn chỉnh theo kích thước của phần tử lớn nhất (ở đây là `int` với 4 bytes hoặc 8 bytes tùy thuộc vào hệ thống). Do đó, có khả năng padding được thêm vào sau `b` để kích thước của `b` trở thành bội số của 4 hoặc 8. Tương tự, có thể có padding ở cuối struct để đảm bảo rằng các mảng của struct này trong một mảng các struct được căn chỉnh đúng cách.
Trong trường hợp này, không có padding, kích thước sẽ là 18. Nếu có padding 2 bytes sau b, kích thước là 20 bytes. Nếu padding là để đảm bảo căn chỉnh 4 byte, thì tổng kích thước có thể là 8 + 8 + 8 = 24 bytes.
Tuy nhiên, kết quả thực tế phụ thuộc vào trình biên dịch, các tùy chọn biên dịch và kiến trúc hệ thống. Trong nhiều trường hợp, padding được thêm vào để đảm bảo rằng mọi thành phần trong struct được căn chỉnh theo địa chỉ bộ nhớ thích hợp.
Trong trường hợp này, đáp án D. 24 là đáp án hợp lý nhất, giả sử có padding để đảm bảo các thành viên được căn chỉnh đúng.
Lưu ý: Output thực tế có thể khác nhau tùy thuộc vào trình biên dịch và nền tảng.
Trong cấu trúc `A`:
- `int a[2]`: Mảng 2 số nguyên. Giả sử `int` là 4 byte, thì kích thước của `a` là 2 * 4 = 8 byte.
- `char b[5]`: Mảng 5 ký tự. Kích thước là 5 byte.
- `char c[5]`: Mảng 5 ký tự. Kích thước là 5 byte.
Tổng kích thước "thô" là 8 + 5 + 5 = 18 byte.
Tuy nhiên, trình biên dịch có thể thêm padding sau `b` để đảm bảo `c` được căn chỉnh đúng cách. Trong nhiều trường hợp, cấu trúc được căn chỉnh theo kích thước của phần tử lớn nhất (ở đây là `int` với 4 bytes hoặc 8 bytes tùy thuộc vào hệ thống). Do đó, có khả năng padding được thêm vào sau `b` để kích thước của `b` trở thành bội số của 4 hoặc 8. Tương tự, có thể có padding ở cuối struct để đảm bảo rằng các mảng của struct này trong một mảng các struct được căn chỉnh đúng cách.
Trong trường hợp này, không có padding, kích thước sẽ là 18. Nếu có padding 2 bytes sau b, kích thước là 20 bytes. Nếu padding là để đảm bảo căn chỉnh 4 byte, thì tổng kích thước có thể là 8 + 8 + 8 = 24 bytes.
Tuy nhiên, kết quả thực tế phụ thuộc vào trình biên dịch, các tùy chọn biên dịch và kiến trúc hệ thống. Trong nhiều trường hợp, padding được thêm vào để đảm bảo rằng mọi thành phần trong struct được căn chỉnh theo địa chỉ bộ nhớ thích hợp.
Trong trường hợp này, đáp án D. 24 là đáp án hợp lý nhất, giả sử có padding để đảm bảo các thành viên được căn chỉnh đúng.
Lưu ý: Output thực tế có thể khác nhau tùy thuộc vào trình biên dịch và nền tảng.
Lời giải:
Đáp án đúng: A
Trong C++, nếu không chỉ định rõ quyền truy cập (public
, private
, protected
) cho các thành viên (biến và hàm) của một lớp, thì mặc định quyền truy cập sẽ là private
. Điều này có nghĩa là các thành viên này chỉ có thể được truy cập từ bên trong lớp đó, và không thể truy cập trực tiếp từ bên ngoài lớp hoặc từ các lớp con (nếu có).
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