100 câu hỏi phỏng vấn lập trình C hàng đầu & Câu trả lời

Anonim

tải PDF

1) Làm thế nào để bạn xây dựng một câu lệnh tăng hoặc câu lệnh giảm trong C?

Thực tế có hai cách bạn có thể làm điều này. Một là sử dụng toán tử tăng ++ và toán tử giảm -. Ví dụ: câu lệnh "x ++" có nghĩa là tăng giá trị của x lên 1. Tương tự như vậy, câu lệnh "x -" có nghĩa là giảm giá trị của x đi 1. Một cách khác để viết câu lệnh tăng là sử dụng dấu cộng + thông thường dấu hoặc - dấu trừ. Trong trường hợp "x ++", một cách khác để viết nó là "x = x +1".

2) Sự khác biệt giữa Gọi theo Giá trị và Gọi theo Tham chiếu là gì?

Khi sử dụng Call by Value, bạn đang gửi giá trị của một biến dưới dạng tham số cho một hàm, trong khi Call by Reference gửi địa chỉ của biến. Ngoài ra, trong Call by Value, giá trị trong tham số không bị ảnh hưởng bởi bất kỳ hoạt động nào diễn ra, trong khi trong trường hợp Call by Reference, các giá trị có thể bị ảnh hưởng bởi quá trình bên trong hàm.

3) Một số lập trình viên gỡ lỗi chương trình của họ bằng cách đặt các biểu tượng chú thích trên một số mã thay vì xóa nó. Làm thế nào để điều này hỗ trợ trong việc gỡ lỗi?

Đặt ký hiệu nhận xét / * * / xung quanh mã, còn được gọi là "nhận xét ra", là một cách để cô lập một số mã mà bạn cho rằng có thể gây ra lỗi trong chương trình mà không xóa mã. Ý tưởng là nếu mã trên thực tế là chính xác, bạn chỉ cần xóa các ký hiệu nhận xét và tiếp tục. Nó cũng giúp bạn tiết kiệm thời gian và công sức khi phải nhập lại mã nếu bạn đã xóa nó ngay từ đầu.

4) Mã tương đương của câu lệnh sau ở định dạng WHILE LOOP là gì?

for (a=1; a<=100; a++)printf ("%d\n", a * a);

Câu trả lời:

a=1;while (a<=100) {printf ("%d\n", a * a);a++;}

5) Ngăn xếp là gì?

Ngăn xếp là một dạng của cấu trúc dữ liệu. Dữ liệu được lưu trữ trong ngăn xếp bằng cách sử dụng phương pháp FILO (Xuất trước vào Cuối). Tại bất kỳ trường hợp cụ thể nào, chỉ có phần trên cùng của ngăn xếp mới có thể truy cập được, có nghĩa là để truy xuất dữ liệu được lưu trữ bên trong ngăn xếp, những dữ liệu ở phần trên phải được trích xuất trước. Lưu trữ dữ liệu trong một ngăn xếp còn được gọi là PUSH, trong khi truy xuất dữ liệu được gọi là POP.

6) Tệp truy cập tuần tự là gì?

Khi viết các chương trình sẽ lưu trữ và truy xuất dữ liệu trong một tệp, có thể chỉ định tệp đó thành các dạng khác nhau. Tệp truy cập tuần tự sao cho dữ liệu được lưu theo thứ tự tuần tự: hết dữ liệu này đến dữ liệu khác. Để truy cập một dữ liệu cụ thể trong tệp truy cập tuần tự, dữ liệu phải được đọc một dữ liệu tại một thời điểm, cho đến khi đạt được đúng dữ liệu.

7) Khởi tạo biến là gì và tại sao nó lại quan trọng?

Điều này đề cập đến quá trình trong đó một biến được gán một giá trị ban đầu trước khi nó được sử dụng trong chương trình. Nếu không có khởi tạo, một biến sẽ có giá trị không xác định, có thể dẫn đến kết quả không thể đoán trước khi được sử dụng trong tính toán hoặc các hoạt động khác.

8 Lập trình mì Ý là gì?

Lập trình mì Ý đề cập đến các mã có xu hướng rối và chồng chéo trong suốt chương trình. Cách tiếp cận mã hóa phi cấu trúc này thường được cho là do lập trình viên thiếu kinh nghiệm. Lập trình Spaghetti làm cho một chương trình trở nên phức tạp và việc phân tích các mã trở nên khó khăn, do đó phải tránh càng nhiều càng tốt.

9) Phân biệt mã nguồn với mã đối tượng

Mã nguồn là mã được viết bởi lập trình viên. Nó được tạo thành từ các lệnh và các từ khóa giống tiếng Anh khác được cho là hướng dẫn máy tính phải làm gì. Tuy nhiên, máy tính sẽ không thể hiểu mã nguồn. Do đó, mã nguồn được biên dịch bằng trình biên dịch. Kết quả đầu ra là mã đối tượng, có định dạng mà bộ xử lý máy tính có thể hiểu được. Trong lập trình C, mã nguồn được lưu với phần mở rộng tệp .C, trong khi mã đối tượng được lưu với phần mở rộng tệp .OBJ

10) Trong lập trình C, làm thế nào để bạn chèn các ký tự trích dẫn ('và ") vào màn hình xuất?

Đây là một vấn đề phổ biến đối với người mới bắt đầu vì dấu ngoặc kép thường là một phần của câu lệnh printf. Để chèn ký tự trích dẫn như một phần của đầu ra, hãy sử dụng các mã định dạng \ '(đối với trích dẫn đơn) và \ "(đối với trích dẫn kép).

11) Việc sử dụng ký tự '\ 0' là gì?

Nó được gọi là một ký tự null kết thúc và được sử dụng chủ yếu để hiển thị giá trị cuối của một chuỗi.

12) Sự khác biệt giữa ký hiệu = và ký hiệu == là gì?

Ký hiệu = thường được sử dụng trong các phép toán. Nó được sử dụng để gán một giá trị cho một biến nhất định. Mặt khác, ký hiệu ==, còn được gọi là "bằng với" hoặc "tương đương với", là một toán tử quan hệ được sử dụng để so sánh hai giá trị.

13) Toán tử mô đun là gì?

Toán tử mô đun xuất ra phần còn lại của một phép chia. Nó sử dụng ký hiệu phần trăm (%). Ví dụ: 10% 3 = 1, nghĩa là khi bạn chia 10 cho 3 thì phần dư là 1.

14) Vòng lặp lồng nhau là gì?

Vòng lặp lồng nhau là một vòng lặp chạy trong một vòng lặp khác. Nói một cách khác, bạn có một vòng lặp bên trong nằm trong một vòng lặp bên ngoài. Trong trường hợp này, vòng lặp bên trong được thực hiện một số lần như được chỉ định bởi vòng lặp bên ngoài. Đối với mỗi lượt trên vòng ngoài, vòng trong được thực hiện đầu tiên.

15) Toán tử nào sau đây sai và tại sao? (> =, <=, <>, ==)

<> không chính xác. Mặc dù toán tử này được hiểu một cách chính xác là "không bằng" khi viết câu lệnh điều kiện, nhưng nó không phải là toán tử thích hợp được sử dụng trong lập trình C. Thay vào đó, toán tử! = Phải được sử dụng để chỉ ra điều kiện "không bằng".

16) So sánh và đối chiếu trình biên dịch từ thông dịch viên.

Các trình biên dịch và thông dịch viên thường giải quyết cách mã chương trình được thực thi. Trình thông dịch thực thi mã chương trình từng dòng một, trong khi trình biên dịch lấy toàn bộ chương trình và chuyển đổi nó thành mã đối tượng, trước khi thực thi nó. Sự khác biệt chính ở đây là trong trường hợp trình thông dịch, một chương trình có thể gặp lỗi cú pháp khi đang thực thi và sẽ dừng lại từ đó. Mặt khác, các trình biên dịch kiểm tra cú pháp của toàn bộ chương trình và sẽ chỉ tiến hành thực thi khi không tìm thấy lỗi cú pháp nào.

17) Làm thế nào để bạn khai báo một biến sẽ chứa các giá trị chuỗi?

Từ khóa char chỉ có thể chứa 1 giá trị ký tự tại một thời điểm. Bằng cách tạo một mảng ký tự, bạn có thể lưu trữ các giá trị chuỗi trong đó. Ví dụ: "char MyName [50];" khai báo một biến chuỗi có tên MyName có thể chứa tối đa 50 ký tự.

18) Có thể sử dụng dấu ngoặc nhọn {} để bao quanh một dòng mã không?

Trong khi dấu ngoặc nhọn chủ yếu được sử dụng để nhóm một số dòng mã, nó sẽ vẫn hoạt động mà không có lỗi nếu bạn sử dụng nó cho một dòng. Một số lập trình viên thích phương pháp này như một cách tổ chức mã để làm cho nó trông rõ ràng hơn, đặc biệt là trong các câu lệnh có điều kiện.

19) Tệp tiêu đề là gì và công dụng của nó trong lập trình C là gì?

Tệp tiêu đề còn được gọi là tệp thư viện. Chúng chứa hai thứ thiết yếu: định nghĩa và nguyên mẫu của các hàm được sử dụng trong một chương trình. Nói một cách đơn giản, các lệnh mà bạn sử dụng trong lập trình C thực sự là các hàm được định nghĩa từ bên trong mỗi tệp tiêu đề. Mỗi tệp tiêu đề chứa một tập hợp các chức năng. Ví dụ: stdio.h là một tệp tiêu đề chứa định nghĩa và nguyên mẫu của các lệnh như printf và scanf.

20) Lỗi cú pháp là gì?

Lỗi cú pháp có liên quan đến những sai lầm trong việc sử dụng ngôn ngữ lập trình. Nó có thể là một lệnh bị sai chính tả hoặc một lệnh phải được nhập ở chế độ chữ thường nhưng thay vào đó được nhập bằng ký tự chữ hoa. Một ký hiệu đặt sai vị trí, hoặc thiếu ký hiệu, ở đâu đó trong một dòng mã cũng có thể dẫn đến lỗi cú pháp.

21) Biến là gì và nó khác với hằng số như thế nào?

Các biến và hằng thoạt nhìn có thể giống nhau theo nghĩa cả hai đều là số nhận dạng được tạo thành từ một ký tự hoặc nhiều ký tự (chữ cái, số và một vài ký hiệu được phép). Cả hai cũng sẽ giữ một giá trị cụ thể. Các giá trị được giữ bởi một biến có thể được thay đổi trong suốt chương trình và có thể được sử dụng trong hầu hết các hoạt động và tính toán. Hằng số chỉ được cung cấp các giá trị tại một thời điểm, được đặt ở đầu chương trình. Giá trị này không bị thay đổi trong chương trình. Ví dụ: bạn có thể gán một hằng số có tên là PI và đặt cho nó một giá trị 3,1415. Sau đó, bạn có thể sử dụng nó làm PI trong chương trình, thay vì phải viết 3,1415 mỗi khi bạn cần.

22) Làm cách nào để bạn truy cập các giá trị trong một mảng?

Mảng chứa một số phần tử, tùy thuộc vào kích thước bạn đã cung cấp cho nó trong quá trình khai báo biến. Mỗi phần tử được gán một số từ 0 đến số phần tử-1. Để gán hoặc truy xuất giá trị của một phần tử cụ thể, hãy tham khảo số phần tử. Ví dụ: nếu bạn có khai báo "intscores [5];", thì bạn có 5 yếu tố có thể truy cập, đó là: điểm số [0], điểm số [1], điểm số [2], điểm số [3] và điểm số [4 ].

23) Tôi có thể sử dụng kiểu dữ liệu "int" để lưu trữ giá trị 32768 không? Tại sao?

Không. Kiểu dữ liệu "int" có khả năng lưu trữ các giá trị từ -32768 đến 32767. Để lưu trữ 32768, bạn có thể sử dụng "long int" để thay thế. Bạn cũng có thể sử dụng "unsigned int", giả sử bạn không có ý định lưu trữ các giá trị âm.

24) Có thể kết hợp hai hoặc nhiều toán tử như \ n và \ t trong một dòng mã chương trình không?

Có, việc kết hợp các toán tử là hoàn toàn hợp lệ, đặc biệt nếu có nhu cầu. Ví dụ: bạn có thể có mã như "printf (" Hello \ n \ n \ 'World \' ")" để xuất văn bản "Xin chào" ở dòng đầu tiên và "Thế giới" được đặt trong dấu ngoặc kép để xuất hiện ở dòng tiếp theo hai dòng.

25) Tại sao không phải tất cả các tệp tiêu đề đều được khai báo trong mọi chương trình C?

Việc lựa chọn khai báo tệp tiêu đề ở đầu mỗi chương trình C sẽ phụ thuộc vào những lệnh / chức năng bạn sẽ sử dụng trong chương trình đó. Vì mỗi tệp tiêu đề chứa các định nghĩa và nguyên mẫu hàm khác nhau, bạn sẽ chỉ sử dụng các tệp tiêu đề chứa các chức năng bạn cần. Khai báo tất cả các tệp tiêu đề trong mọi chương trình sẽ chỉ làm tăng kích thước tệp và tải tổng thể của chương trình và không được coi là một phong cách lập trình tốt.

26) Từ khóa "void" được sử dụng trong một hàm khi nào?

Khi khai báo các hàm, bạn sẽ quyết định xem hàm đó có trả về một giá trị hay không. Nếu hàm đó không trả về giá trị, chẳng hạn như khi mục đích của hàm là hiển thị một số kết quả đầu ra trên màn hình, thì "void" sẽ được đặt ở phần ngoài cùng bên trái của tiêu đề hàm. Khi một giá trị trả về được mong đợi sau khi thực hiện hàm, kiểu dữ liệu của giá trị trả về được đặt thay vì "void".

27) Câu lệnh ghép là gì?

Câu lệnh ghép được tạo thành từ hai hoặc nhiều câu lệnh chương trình được thực thi cùng nhau. Điều này thường xảy ra trong khi xử lý các điều kiện trong đó một loạt câu lệnh được thực thi khi đánh giá TRUE hoặc FALSE. Các câu lệnh ghép cũng có thể được thực hiện trong một vòng lặp. Dấu ngoặc nhọn {} được đặt trước và sau câu lệnh ghép.

28) Ý nghĩa của một thuật toán đối với lập trình C?

Trước khi một chương trình có thể được viết, một thuật toán phải được tạo ra trước tiên. Một thuật toán cung cấp một quy trình từng bước về cách một giải pháp có thể được rút ra. Nó cũng hoạt động như một bản thiết kế về cách một chương trình sẽ bắt đầu và kết thúc, bao gồm những gì quá trình và tính toán có liên quan.

29) Lợi thế của mảng so với các biến riêng lẻ là gì?

Khi lưu trữ nhiều dữ liệu liên quan, bạn nên sử dụng mảng. Điều này là do mảng được đặt tên chỉ bằng 1 từ theo sau là số phần tử. Ví dụ: để lưu kết quả 10 bài kiểm tra của 1 học sinh, người ta có thể sử dụng 10 tên biến khác nhau (lớp1, lớp2, lớp3… lớp10). Với mảng, chỉ có 1 tên được sử dụng, các tên còn lại có thể truy cập thông qua tên chỉ mục (lớp [0], lớp [1], lớp [2]… lớp [9]).

30) Viết một câu lệnh lặp sẽ hiển thị kết quả sau:

1

12

123

1234

12345

Câu trả lời:

for (a=1; a<=5; i++) {for (b=1; b<=a; b++)printf("%d",b);printf("\n");}

31) Điều gì sai trong phát biểu này? scanf ("% d", whatnumber);

Ký hiệu & & phải được đặt trước tên biến whatnumber. Việc đặt & có nghĩa là bất kỳ giá trị nguyên nào được nhập bởi người dùng đều được lưu trữ tại "địa chỉ" của tên biến. Đây là một lỗi phổ biến của các lập trình viên, thường dẫn đến các lỗi logic.

32) Làm thế nào để bạn tạo số ngẫu nhiên trong C?

Số ngẫu nhiên được tạo trong C bằng lệnh rand (). Ví dụ: anyNum = rand () sẽ tạo ra bất kỳ số nguyên nào bắt đầu từ 0, giả sử rằng anyNum là một biến kiểu số nguyên.

33) Điều gì có thể xảy ra nếu một tên hàm hợp lệ như tolower () được trình biên dịch C báo cáo là không xác định?

Lý do có thể xảy ra nhất đằng sau lỗi này là tệp tiêu đề cho chức năng đó không được chỉ ra ở đầu chương trình. Tệp tiêu đề chứa định nghĩa và nguyên mẫu cho các hàm và lệnh được sử dụng trong chương trình C. Trong trường hợp "tolower ()", mã "#include " phải có ở đầu chương trình.

34) Chú thích là gì và làm thế nào để bạn chèn nó vào một chương trình C?

Nhận xét là một cách tuyệt vời để đưa một số nhận xét hoặc mô tả vào một chương trình. Nó có thể phục vụ như một lời nhắc nhở về nội dung của chương trình hoặc một mô tả về lý do tại sao một mã hoặc chức năng nhất định được đặt ở đó ngay từ đầu. Nhận xét bắt đầu bằng / * và kết thúc bằng ký tự * /. Nhận xét có thể là một dòng, hoặc thậm chí có thể kéo dài nhiều dòng. Nó có thể được đặt ở bất cứ đâu trong chương trình.

35) Gỡ lỗi là gì?

Gỡ lỗi là quá trình xác định lỗi trong một chương trình. Trong quá trình biên dịch chương trình, các lỗi được tìm thấy sẽ khiến chương trình ngừng thực thi hoàn toàn. Ở trạng thái này, lập trình viên sẽ xem xét các phần có thể xảy ra lỗi. Gỡ lỗi đảm bảo loại bỏ lỗi và đóng một vai trò quan trọng trong việc đảm bảo đáp ứng đầu ra chương trình mong đợi.

36) Toán tử && làm gì trong mã chương trình?

&& còn được gọi là toán tử AND. Khi sử dụng toán tử này, tất cả các điều kiện được chỉ định phải là TRUE trước khi hành động tiếp theo có thể được thực hiện. Nếu bạn có 10 điều kiện và tất cả trừ 1 điều kiện không được đánh giá là TRUE, toàn bộ câu lệnh điều kiện đã được đánh giá là FALSE

37) Trong lập trình C, lệnh hoặc mã nào có thể được sử dụng để xác định xem một số là số lẻ hay số chẵn?

Không có lệnh hoặc hàm duy nhất nào trong C có thể kiểm tra xem một số là lẻ hay chẵn. Tuy nhiên, điều này có thể được thực hiện bằng cách chia số đó cho 2, sau đó kiểm tra phần còn lại. Nếu phần dư là 0 thì số đó là số chẵn, ngược lại là số lẻ. Bạn có thể viết nó trong mã dưới dạng:

if (num % 2 == 0)printf("EVEN");elseprintf("ODD");

38) Định dạng% 10.2 có ý nghĩa gì khi được đưa vào câu lệnh printf?

Định dạng này được sử dụng cho hai việc: để đặt số lượng khoảng trắng được phân bổ cho số đầu ra và đặt số vị trí thập phân. Số trước dấu thập phân dành cho không gian được phân bổ, trong trường hợp này, nó sẽ phân bổ 10 khoảng trắng cho số đầu ra. Nếu số lượng không gian bị chiếm bởi số đầu ra nhỏ hơn 10, các ký tự khoảng trắng bổ sung sẽ được chèn trước số đầu ra thực tế. Số sau dấu thập phân đặt số vị trí thập phân, trong trường hợp này, đó là 2 dấu cách thập phân.

39) Lỗi logic là gì và nó khác với lỗi cú pháp như thế nào?

Chương trình có lỗi logic có xu hướng vượt qua quá trình biên dịch, nhưng kết quả đầu ra có thể không phải là kết quả mong đợi. Điều này xảy ra khi một công thức sai được chèn vào mã hoặc một chuỗi lệnh sai được thực hiện. Mặt khác, lỗi cú pháp đối phó với các lệnh sai do trình biên dịch viết sai chính tả hoặc không nhận dạng được.

40) Các loại cấu trúc điều khiển trong lập trình là gì?

Có 3 cấu trúc điều khiển chính trong lập trình: Trình tự, Lựa chọn và Lặp lại. Điều khiển tuần tự tuân theo luồng từ trên xuống dưới khi thực hiện một chương trình, sao cho bước 1 được thực hiện đầu tiên, tiếp theo là bước 2, tất cả các cách cho đến khi bước cuối cùng được thực hiện. Lựa chọn xử lý các câu lệnh có điều kiện, có nghĩa là các mã được thực thi tùy thuộc vào việc đánh giá các điều kiện là ĐÚNG hay SAI. Điều này cũng có nghĩa là không phải tất cả các mã đều có thể được thực thi và có các luồng thay thế bên trong. Sự lặp lại còn được gọi là cấu trúc vòng lặp, và sẽ lặp lại một hoặc hai câu lệnh chương trình do bộ đếm thiết lập.

41) Cái gì || toán tử và nó hoạt động như thế nào trong một chương trình?

Cái || còn được gọi là toán tử OR trong lập trình C. Khi sử dụng || để đánh giá các điều kiện logic, bất kỳ điều kiện nào đánh giá là TRUE sẽ hiển thị toàn bộ câu lệnh điều kiện là TRUE.

42) Hàm "if" có thể được sử dụng để so sánh các chuỗi không?

Không. Lệnh "if" chỉ có thể được sử dụng để so sánh các giá trị số và giá trị ký tự đơn. Để so sánh các giá trị chuỗi, có một hàm khác được gọi là strcmp xử lý cụ thể với các chuỗi.

43) Chỉ thị tiền xử lý là gì?

Các chỉ thị tiền xử lý được đặt ở đầu mọi chương trình C. Đây là nơi các tệp thư viện được chỉ định, điều này sẽ phụ thuộc vào những chức năng nào sẽ được sử dụng trong chương trình. Một cách sử dụng khác của các chỉ thị tiền xử lý là khai báo các hằng. Các chỉ thị tiền xử lý bắt đầu bằng ký hiệu #.

44) Kết quả của câu lệnh điều kiện sau sẽ như thế nào nếu giá trị của biến s là 10?

s> = 10 && s <25 && s! = 12

Kết quả sẽ là SỰ THẬT. Vì giá trị của s là 10 nên s> = 10 đánh giá là TRUE vì s không lớn hơn 10 nhưng vẫn bằng 10. s <25 cũng là TRUE vì 10 nhỏ hơn 25. Cũng giống như vậy, s! = 12 , có nghĩa là s không bằng 12, được đánh giá là TRUE. && là toán tử AND và tuân theo quy tắc rằng nếu tất cả các điều kiện riêng lẻ là ĐÚNG, thì toàn bộ câu lệnh là ĐÚNG.

45) Mô tả thứ tự ưu tiên liên quan đến các toán tử trong C.

Thứ tự ưu tiên xác định hoạt động nào phải diễn ra đầu tiên trong một câu lệnh hoạt động hoặc câu lệnh điều kiện. Ở mức độ ưu tiên cao nhất là các toán tử đơn phân!, +, - và &. Theo sau nó là các toán tử toán học thông thường (*, / và modulus% đầu tiên, tiếp theo là + và -). Tiếp theo trong dòng là các toán tử quan hệ <, <=,> = và>. Sau đó, điều này được theo sau bởi hai toán tử bình đẳng == và! =. Các toán tử logic && và || được đánh giá tiếp theo. Ở mức cuối cùng là toán tử gán =.

46) Điều gì sai trong câu nói này? myName = "Robin";

Bạn không thể sử dụng dấu = để gán giá trị cho một biến chuỗi. Thay vào đó, hãy sử dụng hàm strcpy. Câu lệnh đúng sẽ là: strcpy (myName, "Robin");

47) Làm cách nào để xác định độ dài của giá trị chuỗi được lưu trữ trong một biến?

Để nhận độ dài của một giá trị chuỗi, hãy sử dụng hàm strlen (). Ví dụ: nếu bạn có một biến có tên FullName, bạn có thể lấy độ dài của giá trị chuỗi được lưu trữ bằng cách sử dụng câu lệnh này: I = strlen (FullName); biến tôi bây giờ sẽ có độ dài ký tự của giá trị chuỗi.

48) Có thể khởi tạo một biến tại thời điểm nó được khai báo không?

Có, bạn không phải viết một câu lệnh gán riêng sau khai báo biến, trừ khi bạn định thay đổi nó sau này. Ví dụ: char hành tinh [15] = "Trái đất"; thực hiện hai việc: nó khai báo một biến chuỗi có tên là hành tinh, sau đó khởi tạo nó với giá trị "Earth".

49) Tại sao ngôn ngữ C được coi là ngôn ngữ bậc trung?

Điều này là do ngôn ngữ C có nhiều tính năng làm cho nó hoạt động như một ngôn ngữ cấp cao trong khi đồng thời có thể tương tác với phần cứng bằng các phương pháp cấp thấp. Việc sử dụng một cách tiếp cận có cấu trúc tốt để lập trình, cùng với các từ giống tiếng Anh được sử dụng trong các hàm, làm cho nó hoạt động như một ngôn ngữ cấp cao. Mặt khác, C có thể truy cập trực tiếp các cấu trúc bộ nhớ tương tự như các thói quen của hợp ngữ.

50) Các phần mở rộng tệp khác nhau liên quan khi lập trình bằng C là gì?

Mã nguồn trong C được lưu với phần mở rộng tệp .C. Tệp tiêu đề hoặc tệp thư viện có phần mở rộng tệp .H. Mỗi khi mã nguồn chương trình được biên dịch thành công, nó sẽ tạo ra tệp đối tượng .OBJ và tệp .EXE thực thi.

51) Từ dành riêng là gì?

Các từ dành riêng là những từ nằm trong thư viện ngôn ngữ C chuẩn. Điều này có nghĩa là các từ dành riêng có ý nghĩa đặc biệt và do đó không thể được sử dụng cho các mục đích khác với mục đích ban đầu của nó. Ví dụ về các từ dành riêng là int, void và return.

52) Danh sách liên kết là gì?

Một danh sách được liên kết bao gồm các nút được kết nối với một danh sách khác. Trong lập trình C, danh sách liên kết được tạo bằng cách sử dụng con trỏ. Sử dụng danh sách được liên kết là một cách hiệu quả để sử dụng bộ nhớ để lưu trữ.

53) FIFO là gì?

Trong lập trình C, có một cấu trúc dữ liệu được gọi là hàng đợi. Trong cấu trúc này, dữ liệu được lưu trữ và truy cập bằng định dạng FIFO hoặc First-In-First-Out. Hàng đợi đại diện cho một dòng trong đó dữ liệu đầu tiên được lưu trữ cũng sẽ là dữ liệu đầu tiên có thể truy cập được.

54) Cây nhị phân là gì?

Cây nhị phân thực chất là một phần mở rộng của khái niệm danh sách liên kết. Cây nhị phân có hai con trỏ, một trái và một phải. Mỗi bên có thể phân nhánh thêm để tạo thành các nút bổ sung, mỗi nút cũng có hai con trỏ.

55) Không phải tất cả các từ dành riêng đều được viết bằng chữ thường. Đúng hay sai?

SAI. Tất cả các từ dành riêng phải được viết bằng chữ thường; nếu không trình biên dịch C sẽ giải thích điều này là không xác định và không hợp lệ.

56) Sự khác biệt giữa biểu thức "++ a" và "a ++" là gì?

Trong biểu thức đầu tiên, giá trị gia tăng sẽ xảy ra đầu tiên trên biến a và giá trị kết quả sẽ là giá trị được sử dụng. Đây còn được gọi là số tăng tiền tố. Trong biểu thức thứ hai, giá trị hiện tại của biến a sẽ là giá trị được sử dụng trong một phép toán, trước khi giá trị của chính nó được tăng lên. Điều này còn được gọi là tăng hậu tố.

57) Điều gì sẽ xảy ra với X trong biểu thức này: X + = 15; (giả sử giá trị của X là 5)

X + = 15 là một cách viết ngắn gọn của X = X + 15, vì vậy nếu giá trị ban đầu của X là 5 thì 5 + 15 = 20.

58) Trong ngôn ngữ C, các biến NAME, name và Name đều giống nhau. Đúng hay sai?

SAI. Ngôn ngữ C là một ngôn ngữ phân biệt chữ hoa chữ thường. Do đó, TÊN, tên và Tên là ba biến duy nhất khác nhau.

59) Vòng lặp vô tận là gì?

Một vòng lặp vô tận có thể có hai ý nghĩa. Một là nó được thiết kế để lặp liên tục cho đến khi thỏa mãn điều kiện bên trong vòng lặp, sau đó hàm break sẽ khiến chương trình bước ra khỏi vòng lặp. Một ý tưởng khác về vòng lặp vô tận là khi điều kiện lặp không chính xác được viết, khiến vòng lặp chạy sai vĩnh viễn. Vòng lặp vô tận thường được gọi là vòng lặp vô hạn.

60) Lưu đồ chương trình là gì và nó giúp ích gì cho việc viết chương trình?

Một lưu đồ cung cấp một biểu diễn trực quan của quy trình từng bước hướng tới giải quyết một vấn đề nhất định. Lưu đồ được làm bằng các ký hiệu, với mỗi ký hiệu ở dạng các hình dạng khác nhau. Mỗi hình dạng có thể đại diện cho một thực thể cụ thể trong toàn bộ cấu trúc chương trình, chẳng hạn như một quá trình, một điều kiện hoặc thậm chí một giai đoạn đầu vào / đầu ra.

61) Điều gì sai với câu lệnh chương trình này? void = 10;

Từ void là một từ dành riêng trong ngôn ngữ C. Bạn không thể sử dụng các từ dành riêng làm biến do người dùng xác định.

62) Câu lệnh chương trình này có hợp lệ không? INT = 10,50;

Giả sử rằng INT là một biến kiểu float, câu lệnh này là hợp lệ. Người ta có thể nghĩ rằng INT là một từ dành riêng và không được sử dụng cho các mục đích khác. Tuy nhiên, hãy nhớ lại rằng các từ dành riêng được diễn đạt bằng chữ thường, vì vậy trình biên dịch C sẽ không giải thích đây là từ dành riêng.

63) Lập luận thực tế là gì?

Khi bạn tạo và sử dụng các hàm cần thực hiện một hành động trên một số giá trị đã cho, bạn cần chuyển các giá trị đã cho này cho hàm đó. Các giá trị đang được chuyển vào hàm được gọi được gọi là các đối số thực tế.

64) Trình tự thoát dòng mới là gì?

Chuỗi thoát dòng mới được biểu thị bằng ký tự \ n. Điều này được sử dụng để chèn một dòng mới khi hiển thị dữ liệu trong màn hình đầu ra. Có thể thêm khoảng trắng bằng cách chèn thêm \ n ký tự. Ví dụ: \ n \ n sẽ chèn hai khoảng trắng. Một trình tự thoát dòng mới có thể được đặt trước hoặc sau biểu thức đầu ra thực tế.

65) Chuyển hướng đầu ra là gì?

Đó là quá trình truyền dữ liệu đến một nguồn đầu ra thay thế khác với màn hình hiển thị. Chuyển hướng đầu ra cho phép một chương trình lưu đầu ra của nó vào một tệp. Ví dụ: nếu bạn có một chương trình có tên là COMPUTE, nhập chương trình này trên dòng lệnh là COMPUTE> DATA có thể chấp nhận đầu vào từ người dùng, thực hiện một số tính toán nhất định, sau đó chuyển hướng đầu ra đến tệp có tên DATA, thay vì hiển thị trên màn hình .

66) Lỗi thời gian chạy là gì?

Đây là những lỗi xảy ra trong khi chương trình đang được thực thi. Một trường hợp phổ biến trong đó lỗi thời gian chạy có thể xảy ra là khi bạn đang cố gắng chia một số cho không. Khi lỗi thời gian chạy xảy ra, việc thực thi chương trình sẽ tạm dừng, hiển thị dòng chương trình nào đã gây ra lỗi.

67) Sự khác biệt giữa các hàm abs () và fabs () là gì?

2 hàm này về cơ bản cùng thực hiện một thao tác, đó là lấy giá trị tuyệt đối của giá trị đã cho. Abs () được sử dụng cho các giá trị số nguyên, trong khi fabs () được sử dụng cho các số kiểu động. Ngoài ra, nguyên mẫu cho abs () nằm dưới , trong khi fabs () nằm dưới .

68) Tham số hình thức là gì?

Khi sử dụng các hàm trong chương trình C, các tham số chính thức chứa các giá trị được chuyển bởi hàm đang gọi. Các giá trị được thay thế trong các tham số chính thức này và được sử dụng trong bất kỳ hoạt động nào như được chỉ ra trong phần thân chính của hàm được gọi.

69) Cấu trúc điều khiển là gì?

Các cấu trúc điều khiển phụ trách các lệnh được thực hiện trong một chương trình. Điều này có nghĩa là luồng chương trình có thể không nhất thiết phải chuyển từ câu lệnh này sang câu lệnh tiếp theo, mà có thể cần phải chuyển một số phần thay thế vào hoặc bỏ qua, tùy thuộc vào kết quả của câu lệnh điều kiện.

70) Viết một đoạn mã đơn giản để kiểm tra xem một số là số dương hay số âm .

If (num>=0)printf("number is positive");elseprintf ("number is negative");

71) Khi nào thì câu lệnh "switch" thích hợp hơn câu lệnh "if"?

Câu lệnh switch được sử dụng tốt nhất khi xử lý các lựa chọn dựa trên một biến hoặc biểu thức duy nhất. Tuy nhiên, các câu lệnh switch chỉ có thể đánh giá các kiểu dữ liệu số nguyên và ký tự.

72) Biến toàn cục là gì và bạn khai báo chúng như thế nào?

Biến toàn cục là những biến có thể được truy cập và thao tác ở bất kỳ đâu trong chương trình. Để tạo một biến toàn cục, hãy đặt khai báo biến ở phần trên của chương trình, ngay sau phần chỉ thị tiền xử lý.

73) Các kiểu liệt kê là gì?

Các kiểu liệt kê cho phép lập trình viên sử dụng các từ có nghĩa hơn làm giá trị cho một biến. Mỗi mục trong biến kiểu liệt kê thực sự được liên kết với một mã số. Ví dụ, người ta có thể tạo một biến kiểu liệt kê có tên DAYS có giá trị là Thứ Hai, Thứ Ba… Chủ Nhật.

74) Hàm toupper () làm gì?

Nó được sử dụng để chuyển đổi bất kỳ chữ cái nào sang chế độ viết hoa. Nguyên mẫu hàm Toupper () được khai báo trong . Lưu ý rằng hàm này sẽ chỉ chuyển đổi một ký tự duy nhất chứ không phải toàn bộ chuỗi.

75) Có thể có một hàm làm tham số trong một hàm khác không?

Có, điều đó được phép trong lập trình C. Bạn chỉ cần đưa toàn bộ nguyên mẫu hàm vào trường tham số của hàm khác nơi nó sẽ được sử dụng.

76) Mảng nhiều chiều là gì?

Mảng nhiều chiều có khả năng lưu trữ dữ liệu theo cấu trúc hai hoặc nhiều chiều. Ví dụ: bạn có thể sử dụng mảng 2 chiều để lưu trữ vị trí hiện tại của các quân cờ trong trò chơi cờ vua hoặc vị trí của người chơi trong chương trình tic-tac-toe.

77) Hàm nào trong C có thể được sử dụng để nối một chuỗi vào một chuỗi khác?

Hàm strcat. Cần có hai tham số, chuỗi nguồn và giá trị chuỗi được nối vào chuỗi nguồn.

78) Sự khác biệt giữa các hàm getch () và getche () là gì?

Cả hai hàm sẽ chấp nhận giá trị đầu vào ký tự từ người dùng. Khi sử dụng getch (), phím được nhấn sẽ không xuất hiện trên màn hình và sẽ tự động được chụp và gán cho một biến. Khi sử dụng getche (), phím được người dùng nhấn sẽ xuất hiện trên màn hình, đồng thời được gán cho một biến.

79) Dothese hai câu lệnh chương trình thực hiện cùng một đầu ra? 1) scanf ("% c", & letter); 2) letter = getchar ()

Đúng vậy, cả hai đều làm cùng một việc, đó là chấp nhận phím tiếp theo do người dùng nhấn và gán nó cho ký tự có tên biến.

80) Các kiểu cấu trúc trong C là gì?

Các kiểu cấu trúc chủ yếu được sử dụng để lưu trữ các bản ghi. Một bản ghi được tạo thành từ các trường liên quan. Điều này giúp việc tổ chức một nhóm dữ liệu liên quan trở nên dễ dàng hơn.

81) Các ký tự "r" và "w" có nghĩa là gì khi viết các chương trình sử dụng tệp?

"r" có nghĩa là "đọc" và sẽ mở một tệp làm đầu vào, trong đó dữ liệu sẽ được truy xuất. "w" có nghĩa là "ghi", và sẽ mở một tệp để xuất. Dữ liệu trước đó được lưu trữ trên tệp đó sẽ bị xóa.

82) Sự khác biệt giữa tệp văn bản và tệp nhị phân là gì?

Tệp văn bản chứa dữ liệu mà con người có thể dễ dàng hiểu được. Nó bao gồm các chữ cái, số và các ký tự khác. Mặt khác, các tệp nhị phân chứa các số 1 và 0 mà chỉ máy tính mới có thể diễn giải.

83) có thể tạo tệp tiêu đề của riêng bạn không?

Có, có thể tạo tệp tiêu đề tùy chỉnh. Chỉ cần đưa vào đó các nguyên mẫu hàm mà bạn muốn sử dụng trong chương trình của mình và sử dụng lệnh #include theo sau là tên tệp tiêu đề của bạn.

84) Cấu trúc dữ liệu động là gì?

Cấu trúc dữ liệu động cung cấp một phương tiện để lưu trữ dữ liệu vào bộ nhớ hiệu quả hơn. Sử dụng cấp phát bộ nhớ động, chương trình của bạn sẽ truy cập không gian bộ nhớ khi cần thiết. Điều này trái ngược với cấu trúc dữ liệu tĩnh, trong đó người lập trình phải chỉ ra một số không gian bộ nhớ cố định sẽ được sử dụng trong chương trình.

85) Các kiểu dữ liệu khác nhau trong C là gì?

Các kiểu dữ liệu cơ bản là int, char và float. Int được sử dụng để khai báo các biến sẽ lưu trữ các giá trị nguyên. Float được sử dụng để lưu trữ số thực. Char có thể lưu trữ các giá trị ký tự riêng lẻ.

86) Dạng tổng quát của chương trình C là gì?

Chương trình AC bắt đầu với các chỉ thị tiền xử lý, trong đó người lập trình sẽ chỉ định tệp tiêu đề nào và hằng số nào (nếu có) sẽ được sử dụng. Tiếp theo là tiêu đề chức năng chính. Trong hàm main có khai báo biến và câu lệnh chương trình.

87) Ưu điểm của tệp truy cập ngẫu nhiên là gì?

Nếu lượng dữ liệu được lưu trữ trong một tệp là khá lớn, việc sử dụng quyền truy cập ngẫu nhiên sẽ cho phép bạn tìm kiếm thông qua tệp đó nhanh hơn. Nếu đó là một tệp truy cập tuần tự, bạn sẽ phải xem qua từng bản ghi cho đến khi bạn đạt được dữ liệu đích. Tệp truy cập ngẫu nhiên cho phép bạn chuyển trực tiếp đến địa chỉ đích nơi chứa dữ liệu.

88) Trong câu lệnh switch, điều gì sẽ xảy ra nếu bỏ qua câu lệnh break?

Nếu một câu lệnh break không được đặt ở cuối phần trường hợp cụ thể? Nó sẽ chuyển sang phần trường hợp tiếp theo, có thể gây ra kết quả không chính xác.

89) Mô tả cách mảng có thể được truyền cho một hàm do người dùng xác định

Một điều cần lưu ý là bạn không thể chuyển toàn bộ mảng cho một hàm. Thay vào đó, bạn chuyển cho nó một con trỏ sẽ trỏ đến phần tử đầu tiên của mảng trong bộ nhớ. Để làm điều này, bạn chỉ ra tên của mảng mà không có dấu ngoặc.

90) Con trỏ là gì?

Con trỏ trỏ đến các khu vực cụ thể trong bộ nhớ. Con trỏ chứa địa chỉ của một biến, đến lượt nó có thể chứa một giá trị hoặc thậm chí là một địa chỉ cho một vùng nhớ khác.

91) Bạn có thể chuyển toàn bộ cấu trúc cho các hàm không?

Có, có thể truyền toàn bộ cấu trúc cho một hàm trong kiểu gọi theo phương thức. Tuy nhiên, một số lập trình viên thích khai báo cấu trúc trên toàn cục, sau đó chuyển một biến của kiểu cấu trúc đó cho một hàm. Phương pháp này giúp duy trì tính nhất quán và đồng nhất về kiểu đối số.

92) Hàm get () là gì?

Hàm get () cho phép nhập dữ liệu dòng đầy đủ từ người dùng. Khi người dùng nhấn phím enter để kết thúc quá trình nhập, toàn bộ dòng ký tự được lưu vào một biến chuỗi. Lưu ý rằng phím enter không được bao gồm trong biến, nhưng thay vào đó, một dấu chấm dứt rỗng \ 0 được đặt sau ký tự cuối cùng.

93) Biểu tượng% có một công dụng đặc biệt trong câu lệnh printf. Làm thế nào bạn sẽ đặt ký tự này như một phần của đầu ra trên màn hình?

Bạn có thể thực hiện việc này bằng cách sử dụng %% trong câu lệnh printf. Ví dụ: bạn có thể viết printf ("10 %%") để đầu ra xuất hiện dưới dạng 10% trên màn hình.

94) Làm cách nào để bạn tìm kiếm dữ liệu trong một tệp dữ liệu bằng phương pháp truy cập ngẫu nhiên?

Sử dụng hàm fseek () để thực hiện nhập / xuất truy cập ngẫu nhiên trên một tệp. Sau khi tệp được mở bởi hàm fopen (), fseek sẽ yêu cầu ba tham số để hoạt động: một con trỏ tệp đến tệp, số byte cần tìm kiếm và điểm gốc trong tệp.

95) Các nhận xét có được đưa vào trong giai đoạn biên dịch và cũng được đưa vào tệp EXE không?

Không, các nhận xét mà trình biên dịch gặp phải sẽ bị bỏ qua. Nhận xét hầu hết chỉ dành cho hướng dẫn của người lập trình và không có bất kỳ công dụng đáng kể nào khác trong chức năng của chương trình.

96) Có một hàm tích hợp sẵn trong C có thể được sử dụng để sắp xếp dữ liệu không?

Có, sử dụng hàm qsort (). Cũng có thể tạo các hàm do người dùng xác định để sắp xếp, chẳng hạn như các hàm dựa trên thuật toán sắp xếp bong bóng và sắp xếp bong bóng.

97) Ưu điểm và nhược điểm của heap là gì?

Lưu trữ dữ liệu trên heap chậm hơn so với khi sử dụng ngăn xếp. Tuy nhiên, ưu điểm chính của việc sử dụng heap là tính linh hoạt của nó. Đó là bởi vì bộ nhớ trong cấu trúc này có thể được cấp phát và loại bỏ theo bất kỳ thứ tự cụ thể nào. Sự chậm chạp trong đống có thể được bù đắp nếu một thuật toán được thiết kế và triển khai tốt.

98) Làm thế nào để bạn chuyển đổi chuỗi thành số trong C?

Bạn có thể viết các hàm của riêng mình để thực hiện chuyển đổi chuỗi thành số hoặc thay vào đó sử dụng các hàm tích hợp sẵn của C. Bạn có thể sử dụng atof để chuyển đổi thành giá trị dấu phẩy động, atoi để chuyển đổi thành giá trị số nguyên và atol để chuyển đổi thành giá trị số nguyên dài.

99) Tạo một đoạn mã đơn giản sẽ hoán đổi giá trị của hai biến num1 và num2.

int temp;temp = num1;num1 = num2;num2 = temp;

100) Việc sử dụng dấu chấm phẩy (;) ở cuối mỗi câu lệnh chương trình là gì?

Nó liên quan đến quá trình phân tích cú pháp và biên dịch mã. Dấu chấm phẩy hoạt động như một dấu phân cách, để trình biên dịch biết nơi mỗi câu lệnh kết thúc và có thể tiến hành chia câu lệnh thành các phần tử nhỏ hơn để kiểm tra cú pháp.