JavaScript is required
Danh sách đề

700+ câu hỏi trắc nghiệm Ngôn ngữ lập trình C có lời giải chi tiết - Đề 5

50 câu hỏi 60 phút

Thẻ ghi nhớ
Luyện tập
Thi thử
Nhấn để lật thẻ
1 / 50

Static data members cannot be private

A.

TRUE

B.

FALSE

Đáp án
Đáp án đúng:

Câu trả lời là SAI. Các thành viên dữ liệu tĩnh (static data members) có thể được khai báo là private. Khi một thành viên dữ liệu tĩnh được khai báo là private, nó chỉ có thể được truy cập từ bên trong lớp. Điều này có nghĩa là các lớp khác hoặc các hàm bên ngoài lớp không thể truy cập trực tiếp vào thành viên dữ liệu tĩnh private đó. Tuy nhiên, các hàm thành viên công khai (public member functions) của lớp có thể được sử dụng để truy cập và thao tác với thành viên dữ liệu tĩnh private.

Danh sách câu hỏi:

Lời giải:
Đáp án đúng: a

Câu trả lời là SAI. Các thành viên dữ liệu tĩnh (static data members) có thể được khai báo là private. Khi một thành viên dữ liệu tĩnh được khai báo là private, nó chỉ có thể được truy cập từ bên trong lớp. Điều này có nghĩa là các lớp khác hoặc các hàm bên ngoài lớp không thể truy cập trực tiếp vào thành viên dữ liệu tĩnh private đó. Tuy nhiên, các hàm thành viên công khai (public member functions) của lớp có thể được sử dụng để truy cập và thao tác với thành viên dữ liệu tĩnh private.

Lời giải:
Đáp án đúng: D
Đoạn mã C++ này sử dụng tham chiếu (reference) và toán tử tăng (increment). Ta sẽ phân tích từng bước:

1. `int a = 20;`: Khai báo biến `a` kiểu `int` và gán giá trị 20.
2. `int &n = a;`: Khai báo tham chiếu `n` đến biến `a`. `n` và `a` cùng trỏ đến một vùng nhớ. Mọi thay đổi trên `n` sẽ ảnh hưởng đến `a`, và ngược lại.
3. `n = a++;`: Toán tử `a++` là toán tử tăng hậu tố (post-increment). Giá trị của `a` (20) được gán cho `n` trước. Sau đó, `a` tăng lên 21. Vì `n` là tham chiếu của `a`, nên `n` cũng có giá trị 20 ở thời điểm gán. Do `n` và `a` cùng vùng nhớ nên lúc này cả `a` và `n` đều có giá trị là 21.
4. `a = n++;`: Toán tử `n++` (tăng hậu tố) cũng tương tự. Giá trị hiện tại của `n` (21) được gán cho `a` trước. Sau đó, `n` tăng lên 22. Vì `a` và `n` cùng vùng nhớ ban đầu, nên `a` nhận giá trị 21 trước khi `n` tăng lên. Sau khi `n` tăng thì `n` có giá trị 22. Giá trị của `a` là 21 và giá trị của `n` là 22.
5. `cout << a << "," << n << endl;`: In ra giá trị của `a` và `n`. `a` có giá trị là 21, và `n` có giá trị là 22.

Vậy đáp án đúng là C. 21, 22
Lời giải:
Đáp án đúng: D
Đoạn mã C++ này có lỗi biên dịch vì sử dụng tham chiếu đến tham chiếu (`int &&n = a;`), điều này không được phép trong C++. Do đó, chương trình sẽ không thể biên dịch và chạy.

Nếu như dòng `int &&n = a;` được sửa thành `int &n = a;` thì chương trình có thể biên dịch và chạy. Trong trường hợp đó, `n = a++;` sẽ gán giá trị của `a` cho `n` (tức là 20), sau đó `a` tăng lên 21. Dòng `n = &b;` sẽ gây ra lỗi biên dịch vì `n` là một tham chiếu đến `int`, không phải là một con trỏ đến `int`. Nếu dòng này được bỏ qua, thì `cout << a << "," << n << endl;` sẽ in ra giá trị của `a` (21) và `n` (20).

Tuy nhiên, vì câu hỏi gốc chứa lỗi biên dịch, đáp án chính xác là "compile error".
Lời giải:
Đáp án đúng: A

Khi một hàm không phải là thành viên của một lớp nhưng cần truy cập vào các thành viên private của lớp đó, ta sử dụng từ khóa friend. Việc khai báo một hàm là friend cho phép hàm đó truy cập vào tất cả các thành viên của lớp, kể cả các thành viên private và protected.

Các lựa chọn khác không phù hợp vì:

  • inline: chỉ là một gợi ý cho trình biên dịch để chèn mã của hàm trực tiếp vào nơi gọi, nhằm tăng hiệu suất.
  • static: được sử dụng cho các biến hoặc hàm thuộc về lớp chứ không phải là một đối tượng cụ thể của lớp đó.
  • virtual: được sử dụng trong kế thừa để cho phép ghi đè các hàm trong các lớp con.

Câu 5:

Khai báo nào sau đây là ĐÚNG?

Lời giải:
Đáp án đúng: C

Trong C/C++, các kiểu dữ liệu số nguyên (int) có thể được điều chỉnh bằng các từ khóa signed hoặc unsigned để chỉ định xem chúng có thể chứa các giá trị âm hay chỉ các giá trị không âm. Ngoài ra, long có thể được sử dụng để tăng kích thước của kiểu int (long int hoặc long).

  • signed a;: Thiếu kiểu dữ liệu cơ bản (ví dụ: int, char).
  • sign double d;: sign không phải là một từ khóa hợp lệ. Phải là signed. Hơn nữa, signed không thể áp dụng cho double.
  • unsigned int i;: Đây là một khai báo hợp lệ. Nó khai báo một biến số nguyên không dấu (chỉ chứa các giá trị không âm).
  • longth t;: Sai chính tả. Phải là long và thiếu kiểu dữ liệu cơ bản (ví dụ: int).

Vậy đáp án đúng là C.

Câu 6:

Một biến được gọi là biến toàn cục nếu

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
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
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
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

Câu 25:

Trong các thứ tự sau đây, thứ tự nào là đúng khi gọi các hàm trong đoạn mã bên dưới? a = f1(11, 16) * f2(12/8) + f3();

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

Câu 26:

Kết quả của đoạn chương trình sau là gì:

Char c;

Int n;

Scanf ( "%c%d", &n, &C) ;

Nếu gõ vào: "R 45".

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

Câu 29:

Điều gì sẽ xảy ra nếu trong chương trình C, bạn gán giá trị cho một phần tử mảng có chỉ số vượt quá kích thước của mảng?

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

Câu 30:

Biến con trỏ có thể chứa

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

Câu 32:

Nếu strcmp(S1,S2) trả về số nguyên âm thì:

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

Câu 33:

Chọn một phát biểu sai:

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

Câu 34:

Mảng là:

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

Câu 37:

Phát biểu nào không đúng về onion:

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

Câu 39:

Đâu là phát biểu sai:

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

Câu 40:

Các file tối thiểu cần cho việc vẽ đồ họa:

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

Câu 41:

Hàm setcolor(int color) làm nhiệm vụ gì:

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

Câu 46:

Phát biểu nào sau đây không phài là lợi ích của việc dùng hàm:

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

Câu 47:

 Có các khai báo sau:

Char tb, mang[15] ;

Trong các câu lệnh sau, câu nào đúng:

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

Câu 48:

 Phép cộng 1 con trỏ với một số nguyên sẽ là:

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