Trên thực tế những người lựa chọn công việc lập trình viên, ngoài việc chuẩn bị cho mình những kiến thức cần thiết thì ngoài ra cũng cần quan tâm đến những câu hỏi phỏng vấn C phổ biến nhất. Để có thể tự tin, bình tĩnh và thành công trong buổi phỏng vấn của mình. Box.edu hôm nay sẽ chia sẻ cho các bạn những mẫu câu hỏi để các bạn tham khảo.
Xem thêm: Hướng dẫn cách đọc từ các tệp trong C bằng Fread
Xem thêm: Kiến thức cơ bản về lập trình C – Hướng dẫn sử dụng ngôn ngữ C
Xem thêm: Gợi ý cách tìm trình biên dịch C tốt nhất cho Windows 8
Mục lục bài viết
Những câu hỏi phỏng vấn C phổ biến nhất
Những câu hỏi phỏng vấn C phổ biến nhất
Trên thực tế khi tham gia vào các buổi phỏng vấn, bạn sẽ được hỏi những kiến thức chung về ngôn ngữ C, hoặc yêu cầu bạn lập trình cho họ. Đồng thời hoàn thiện các dự án lập trình C một cách tốt nhất để hoàn thành được nhiệm vụ được giao. Cụ thể một vài những câu hỏi phỏng vấn C phổ biến nhất mà các bạn có thể tham khảo trước đó là:
Tại sao bạn sử dụng ngôn ngữ lập trình C?
Trả lời câu hỏi này khá đơn giả. Vì nó có năm khía cạnh quan trọng của lập trình C đó là: tốc độ, tính di động, tính linh hoạt, tính mô-đun và khả năng mở rộng. Khi một nhà tuyển dụng phỏng vấn câu hỏi này, họ thường sẽ tìm kiếm sự kết hợp của những điều trên. Nhấn mạnh rằng ngôn ngữ lập trình C gần với mã máy, nó có hiệu quả cao và cho phép mức độ kiểm soát tốt hơn.
Điểm khác biệt chính giữa C và C ++ là gì?
Như các bạn đã biết thì C là ngôn ngữ mẹ là nền tảng cho các ngôn ngữ lập trình khác trong đó có C++. Cho nên C và C++ có những đặc điểm khác nhau. Trong đó sự khác biệt chính giữa 2 ngôn ngữ này chính là: C là một ngôn ngữ thủ tục còn trong khi đó C ++ lại là một ngôn ngữ hướng đối tượng.
Tại sao nên sử dụng C hơn so với Java?
Java cũng được biết đến là một ngôn ngữ trừu tượng và dễ sử dụng hơn, nhưng mức độ trừu tượng đó cũng sẽ đi kèm với một vài vấn đề khác. Ngôn ngữ lập trình C cho phép xây dựng hiệu quả hơn và kiểm soát trực tiếp hơn máy. Bởi vì Java là một ngôn ngữ lập trình phổ biến, do vậy đây là một trong những câu hỏi phỏng vấn C phổ biến nhất. Cụ thể họ có thể hỏi bạn sự khác biệt giữa chúng là gì? Và các trường hợp sử dụng đối với C như thế nào? Hãy luôn nhớ rằng ngôn ngữ C nhẹ hơn và cho phép việc truy cập chi tiết hơn vào nhiều thứ như phân bổ bộ nhớ.
Cách đặt tên cho 5 kiểu dữ liệu cơ bản được liên kết với C
Hiện nay có năm kiểu dữ liệu trong C cơ bản bao gồm là: int, float, double, char và void. Chúng sẽ được khai báo cụ thể như sau:
int intNum = 1;
int floatNum = 2.2;
double floatNum = 2.34;
char stringChar = “Hello”;
void function ();
Hàm printf () là gì và cách sử dụng của nó thế nào?
Hàm printf () được hiểu là hàm phổ biến nhất và được sử dụng để in dữ liệu ra bảng điều khiển của người dùng. Cụ thể bạn có thể sử dụng nó theo cú pháp dưới đây:
printf(“Hello World!”);
Và kết quả sẽ cho ra là:
Chào thế giới!
Làm thế nào để có thể tăng và giảm trong C?
Nếu muốn tăng trong C thì bạn có thể thực hiện theo những cách dưới đây:
i++;
Nó có nghĩa là bạn có thể tăng từng số một.
Còn đối với quá trình giảm dần được thực hiện đơn giản như sau:
i--;
Nó có nghĩa là giảm đi một số.
Ví dụ về i++ và i- là gì?
Ví dụ về i++ và i- là gì?
Ngoài những chức năng về: số học, tăng và giảm, thì i++ và i- chính là ví dụ về các phép toán một ngôi.
Void và return thể hiện điều gì trong ngôn ngữ C?
Void và return là những ví dụ về “từ dành riêng” trong lập trình ngôn ngữ C. Chúng sẽ không được sử dụng cho tên biến mà sẽ được sử dụng như sau:
void function();
return 0;
Có một vài từ dành riêng trong C. Do đó nếu bạn cố gắng sử dụng những từ này không theo một cú pháp truyền thống thì bạn sẽ gặp các lỗi về cú pháp.
Khái niệm con trỏ treo lơ lửng trong C
Một con trỏ treo thường sẽ xảy ra khi bạn xóa một biến nhưng một con trỏ đến địa chỉ bộ nhớ vẫn còn. Con trỏ nguy hiểm thì không nên được tham chiếu.
Cách để bạn có thể lấy được dữ liệu người dùng
Để lấy dữ liệu từ người dùng, bạn sẽ sử dụng hàm scanf (). Trong quá trình sử dụng nó, bạn cũng sẽ chỉ ra các loại dữ liệu mà bạn muốn có từ người dùng. Nếu bạn muốn có một chuỗi, bạn sẽ:
scanf(“%s”, stringUser);
Khi đó bạn sẽ có thể đọc bất kỳ thứ gì mà người dùng nhập vào trong một chuỗi.
Sự khác biệt giữa a ++ và ++ a là gì?
Vị trí của các toán tử kiểm soát xem biến được tăng lên trước hoặc sau quá trình hoạt động. Cả hai phép toán này đều sẽ nhanh hơn a = a + 1 bởi vì chúng là các phép toán một bậc vốn đã nhanh hơn.
Khác biệt giữa = và == là gì?
Một dấu = đơn đặt biến ở bên trái giá trị ở bên phải. Dấu == kép so sánh giá trị bên trái với giá trị bên phải.
intNum = 3;
Điều này sẽ đặt biến intNum thành 3.
if(intNum==3)
Điều này sẽ bắt đầu một khối mã if / else nếu intNum đã bằng 3.
Bạn sẽ nhận xét mã trong ngôn ngữ C như thế nào?
Có hai cách để nhận xét mã trong C. Đầu tiên là bạn có thể nhận xét các mã này dưới dạng một dòng như là:
//this is a single line comment
Đồng thời bạn cũng có thể nhận xét mã dưới dạng nhiều dòng cụ thể:
/* This is a multiple
line code comment */
Cả hai dạng này các bạn nên thực hiện một cách thường xuyên.
Có thể chuyển đổi một chuỗi thành một số không?
Trong ngôn ngữ C, bạn có thể chuyển đổi một chuỗi thành một số bằng cách sử dụng hàm atoi () như sau:
int atoi(myString);
Việc chuyển đổi một chuỗi thành một số cũng khá đơn giản. Và làm như vậy cũng sẽ loại bỏ được rất nhiều ký tự không phải là số.
Câu hỏi phỏng vấn C phổ biến nhất Global int là gì?
Một int toàn cục là một int có thể truy xuất được từ bất kỳ vị trí nào. C là một ngôn ngữ có phạm vi, có nghĩa là hầu hết các biến là “cục bộ” nắm trong phạm vi và chỉ có thể được tham chiếu từ một hàm nhất định. Một biến toàn cục này cũng có thể được tham chiếu từ bất kỳ đâu.
Tại sao bạn nên sử dụng n ++ thay vì dùng n + 1?
n ++ được biết đến là một phép toán đơn nguyên nên sẽ thực thi nhanh hơn. Đối với hầu hết các ứng dụng, điều này cũng không thành vấn đề. Tuy nhiên với một vài người nhận thấy rằng trên một số lượng lớn các ứng dụng, thì có một sự khác biệt đáng chú ý. Do vậy để có thể dễ dàng hơn trong việc đọc thì n + 1 sẽ tốt hơn.
Macro trong C là gì?
Macro trong C là gì?
Macro là một đoạn mã được đặt tên. Ví dụ: nếu bạn muốn xác định macro “PI”:
#define PI 3.1415
Bất kỳ tham chiếu nào đến PI sẽ là 3,1415. Macro có thể khá mạnh, nhưng chúng cũng có thể quá mạnh. Nên nếu bạn không cẩn thận, bạn có thể phá vỡ mã của mình. Điều này là do macro có thể chứa các phần tử mã lớn hơn và khó biết macro đang làm gì nếu đọc.
Bạn lập trình vòng lặp for như thế nào? Cú pháp là gì?
Để sử dụng vòng lặp for thì phải được lặp lại qua một số lần nhất định. Cú pháp là:
for(int i = 1; int < 11; i++) {
printf(“%d”,i);
}
Làm cách nào để bạn lập trình một trường hợp chuyển mạch?
Một trường hợp chuyển mạch chuyển đổi qua các “trường hợp” mã khác nhau và nó được sử dụng khi có nhiều đường dẫn mà mã có thể sử dụng.
switch(intCase) {
case 0: printf(“The number is 0.”); break;
case 1: printf(“The number is 1.”); break;
}
Câu hỏi phỏng vấn C phổ biến nhất rò rỉ bộ nhớ là gì?
Rò rỉ bộ nhớ sẽ xảy ra khi một ứng dụng sử dụng ngày càng nhiều bộ nhớ trong thời gian chạy vì nó không quản lý đúng việc sử dụng bộ nhớ của mình. Rò rỉ bộ nhớ thường xảy ra khi dữ liệu được lưu trữ không bị phá hủy sau khi sử dụng.
Cách để bạn hủy phân bổ bộ nhớ?
Trong C, bạn có thể hủy phân bổ bộ nhớ bằng cách dùng lệnh free (). Bạn chỉ có thể thực hiện việc này khi đã hoàn thành việc sử dụng biến này.
free(myString);
Sự khác biệt giữa #include “…” và #include <…>?
Khi bạn dùng lệnh bao gồm tiêu đề tệp thì:
#include<filename>;
Hoặc bạn có thể dùng:
#include “filename”;
<> hoạt động cho các tệp tiêu đề tiêu chuẩn, và tệp này sẽ nằm trong các thư viện được xác định trước. Còn “” dùng để tìm kiếm từ thư mục hiện tại và thường được sử dụng cho các thư viện.
Câu hỏi phỏng vấn C phổ biến nhất tìm lỗi đoạn mã
int main() {
printf(“Hello World!”)
}
Đây là loại lỗi lập trình phổ biến nhất. Chính là một dấu chấm phẩy bị thiếu.
C có thể chạy trên tất cả các hệ điều hành không?
C là một ngôn ngữ rất rộng có thể chạy trên hầu hết mọi hệ điều hành, đó là lý do tại sao nó được coi là một trong những ngôn ngữ di động và linh hoạt nhất. Nó không thể chạy trên tất cả các hệ điều hành, nhưng nó có thể chạy trên tất cả hệ điều hành chính.
Nên sử dụng tab hay dấu cách trong C?
Sau khi được biên dịch, không có sự khác biệt về tab hoặc khoảng trắng trong C. Các tab và khoảng trắng là do người lập trình quyết định, phụ thuộc vào những gì họ thấy là hiệu quả và dễ đọc nhất. Tuy nhiên, các lập trình viên không nên chuyển đổi giữa các tab và khoảng trắng, vì điều này có thể làm cho mã của họ trông không đồng đều, tùy thuộc vào hệ thống và trình soạn thảo.
Tổng kết
Mong rằng tổng hợp các câu hỏi phỏng vấn C phổ biến nhất ở trên sẽ giúp các bạn có thêm những sự chuẩn bị kỹ càng, quan trọng cho quá trình phỏng vấn của mình diễn ra tốt đẹp và suôn sẻ. Chúc các bạn thành công!