Giả sử trong ngôn ngữ C sử dụng khai báo “double a[12]”, phần tử a[7] là phần tử thứ bao nhiêu trong mảng a:
Trả lời:
Đáp án đúng: C
Trong ngôn ngữ C, mảng được đánh số từ 0. Vì vậy, phần tử đầu tiên của mảng `a` là `a[0]`, phần tử thứ hai là `a[1]`, và cứ tiếp tục như vậy. Do đó, phần tử `a[7]` sẽ là phần tử thứ 8 trong mảng `a`.
Tổng hợp 600+ câu hỏi trắc nghiệm lập trình C có đáp án đầy đủ nhằm giúp các bạn dễ dàng ôn tập lại toàn bộ các kiến thức.
50 câu hỏi 60 phút
Câu hỏi liên quan
Lời giải:
Đáp án đúng: B
Chương trình C này minh họa cách truyền tham trị trong hàm. Hàm `hoanvi` được thiết kế để hoán đổi giá trị của hai biến nguyên. Tuy nhiên, trong C, khi bạn truyền biến vào một hàm theo kiểu thông thường (truyền tham trị), hàm sẽ nhận bản sao của các biến đó. Do đó, mọi thay đổi được thực hiện bên trong hàm `hoanvi` sẽ chỉ ảnh hưởng đến bản sao của `a` và `b`, chứ không ảnh hưởng đến `a` và `b` trong hàm `main`. Vì vậy, sau khi gọi `hoanvi(a, b)`, các giá trị của `a` và `b` trong hàm `main` vẫn giữ nguyên là 15 và 21.
Vì vậy, khi dòng lệnh `printf(“ % d % d”, a, b);` được thực thi, nó sẽ in ra giá trị ban đầu của `a` và `b`, tức là 15 và 21.
Lời giải:
Đáp án đúng: B
Trong C/C++, để một con trỏ trỏ tới một biến, ta cần sử dụng toán tử `&` để lấy địa chỉ của biến đó.
* **A. p=x;**: Lệnh này gán giá trị của `x` (là 15) cho `p`. Vì `p` là một con trỏ (chứa địa chỉ), việc gán một giá trị số nguyên cho nó là không hợp lệ và có thể gây ra lỗi.
* **B. p=&x;**: Lệnh này gán địa chỉ của biến `x` cho con trỏ `p`. Đây là cách chính xác để con trỏ `p` trỏ tới biến `x`.
* **C. p=*x;**: Lệnh này cố gắng lấy giá trị tại địa chỉ được chỉ bởi `x`. Tuy nhiên, `x` là một biến kiểu `int` chứ không phải là con trỏ, do đó việc sử dụng `*x` là không hợp lệ và gây ra lỗi.
* **D. Tất cả các lệnh đều đúng**: Sai, vì các phân tích trên cho thấy chỉ có B đúng.
Vậy, đáp án đúng là B.
Lời giải:
Đáp án đúng: B
Câu hỏi này kiểm tra kiến thức về cách sử dụng biến kiểu `char` và mảng ký tự (chuỗi) trong C/C++.
* **`char tb`**: Khai báo một biến `tb` kiểu ký tự, chỉ có thể lưu trữ một ký tự duy nhất.
* **`char mang[15]`**: Khai báo một mảng ký tự `mang` có 15 phần tử, có thể lưu trữ một chuỗi tối đa 14 ký tự (phần tử cuối cùng dành cho ký tự null '\0').
**Phân tích các phương án:**
* **A. `tb = ”chào bạn”;`**: Sai. `tb` là một biến kiểu `char`, chỉ có thể chứa một ký tự. Việc gán một chuỗi (mảng các ký tự) cho một biến `char` là không hợp lệ và sẽ gây ra lỗi biên dịch.
* **B. `gets(mang);`**: Đúng. `gets()` là một hàm trong C/C++ được sử dụng để đọc một chuỗi từ đầu vào chuẩn (thường là bàn phím) và lưu trữ nó vào mảng ký tự `mang`. Tuy nhiên, cần lưu ý rằng `gets()` không an toàn vì nó không kiểm tra kích thước của bộ đệm, có thể dẫn đến tràn bộ đệm (buffer overflow). Trong thực tế, `fgets()` thường được ưu tiên sử dụng hơn vì nó cho phép chỉ định kích thước tối đa của chuỗi được đọc.
* **C. `mang = ”chao ban”;`**: Sai. Trong C/C++, bạn không thể gán trực tiếp một chuỗi ký tự (string literal) cho một mảng ký tự sau khi nó đã được khai báo. `mang` là một con trỏ hằng đến vùng nhớ đã được cấp phát cho mảng, và bạn không thể thay đổi địa chỉ này. Để sao chép một chuỗi vào mảng `mang`, bạn cần sử dụng các hàm như `strcpy()` hoặc `strncpy()`.
* **D. `gets(tb);`**: Sai. `gets()` được thiết kế để đọc một chuỗi và lưu trữ nó vào một mảng ký tự. `tb` là một biến kiểu `char`, không phải là một mảng, do đó không thể sử dụng `gets()` để đọc dữ liệu vào `tb`.
Lời giải:
Đáp án đúng: B
Trong C/C++, mảng được đánh số từ 0. Khi khai báo mảng `int x[3] = {4, 2, 6};`, điều này có nghĩa là phần tử đầu tiên của mảng (x[0]) sẽ có giá trị 4, phần tử thứ hai (x[1]) sẽ có giá trị 2, và phần tử thứ ba (x[2]) sẽ có giá trị 6. Vì vậy, đáp án đúng là B.
Lời giải:
Đáp án đúng: C
Khi một con trỏ không chứa bất kỳ địa chỉ nào, nó thường được gán giá trị `NULL` hoặc `0`. Trong C/C++, `NULL` thường được định nghĩa là `0` hoặc `(void*)0`. Do đó, cả hai giá trị này đều có thể được sử dụng để biểu thị một con trỏ rỗng (null pointer), tức là một con trỏ không trỏ đến bất kỳ vùng nhớ hợp lệ nào.
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

FORM.08: Bộ 130+ Biểu Mẫu Thống Kê Trong Doanh Nghiệp
136 tài liệu563 lượt tải

FORM.07: Bộ 125+ Biểu Mẫu Báo Cáo Trong Doanh Nghiệp
125 tài liệu585 lượt tải

FORM.06: Bộ 320+ Biểu Mẫu Hành Chính Thông Dụng
325 tài liệu608 lượt tải

FORM.05: Bộ 330+ Biểu Mẫu Thuế - Kê Khai Thuế Mới Nhất
331 tài liệu1010 lượt tải

FORM.04: Bộ 240+ Biểu Mẫu Chứng Từ Kế Toán Thông Dụng
246 tài liệu802 lượt tải

CEO.22: Bộ Tài Liệu Quy Trình Kiểm Toán, Kiểm Soát Nội Bộ Doanh Nghiệp
138 tài liệu417 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