Lần đầu trượt phỏng vấn
Sau một đống thời gian trôi qua ở trường và ngập đầu trong mấy môn đại cương, tôi NTD quyết định tham gia phỏng một CLB mang tên là AMIC hay còn gọi là CLB toán ứng dụng và tin học. Sau khi nộp đơn và chờ đợi kết quả vòng đơn thì mình cũng nhận được lời gọi đi phỏng vấn.
Nói qua một chút về CLB, đây là CLB của SAMI chia ra làm 3 ban, mình thì quan tâm đến ban chuyên môn và trong ban chuyên môn có ba tiểu ban khác là lập trình, khoa học dữ liệu, toán cơ bản. Do mình học KHMT nên là định hướng rất rõ ràng là vào tiểu ban lập trình. Mình tham gia CLB với 100% sự nghiêm túc và cũng chuẩn bị rất kĩ lưỡng câu trả lời cho từng câu hỏi.
Cứ nghĩ những câu hỏi sẽ là mấy câu chung chung, ai dè toàn bị hỏi về kiến thức chuyên môn. Nhưng không sao cũng may là những câu hỏi không quá khó cho nên mình cũng hoàn thành khá tốt (80%).
Sau đây là những câu hỏi mình được hỏi về kiến thức nền tảng.
1) Phân biệt sự khác nhau của cout và printf
2) Sự khác nhau của do - while và while - do
3) Lấy ví dụ về do-while và while-do khi cho input giống nhau và yêu cầu output khác nhau
Và sau đây là câu trả lời của mình
1) Đầu tiên là tốc độ chạy, nếu như chạy bằng printf thì tốc độ sẽ nhanh hơn cout một chút. Nguyên nhân là khi sử dùng std::cout thì sẽ cần đồng bộ với stdout, nếu bài toán có nhiều I/O thì sẽ tốn nhiều thời gian. Sau đó mình được hỏi là nếu muốn in ra định dạng của một biến theo kiểu dữ liệu ASCII thì dùng cout và printf như nào ?. Cout thì được định dạng sẵn dưới dạng ASCII còn printf thì không, nếu muốn in ra bằng printf thì cần phải ép định dạng.
Đó là câu trả lời của mình trong phòng PV, còn đây là link mình đọc để hiểu thêm sự khác nhau đó:https://stackoverflow.com/questions/2872543/printf-vs-cout-in-c
2) Sự khác nhau căn bản là khi dùng vòng lặp do-while thì câu lệnh sẽ được thực hiện ít nhất một lần rồi mới kiểm tra điều kiện lặp, còn while-do thì kiểm tra điều kiện lặp trước rồi mới thực hiện.
3) Câu này trong lúc PV thì mình có bí nên đã xin được trả lời theo kiểu khác.
Mình lấy ví dụ về việc khi login vào một trang web, chúng ta sẽ được nhập tài khoản, mật khẩu rồi mới thực hiện việc đi kiểm tra là MK đúng hay sai, rồi anh zai lại hỏi là nếu dùng while-do thì sao, mình bảo là sẽ không có INPUT vào để so sánh, rồi anh đó nói là INPUT = NULL thì sao ???. Mình bó tay câu hỏi này
Còn trả lời cho câu 3 thì như sau:
do(cout << "Y")
while(1>3)
while(1>3)
do(cout << "Y")
Tiếp theo là đến kiến thức về thuật toán.
1) Hãy nêu một thuật toán mà em tự tin nhất ( ở đây thì mình trình bày về Merge Sort )
2) Cho một ma trận, yêu cầu in ra phần tử lớn nhất của mỗi hàng và vị trí của phần tử đó
3) In ra tất cả số có 5 chữ số sao cho tất cả các chữ số đều lẻ
Những câu về thuật toán này thì mình trả lời được tất, nhưng mà có lẽ còn non nên các anh có bày cho một số cách mà mình thấy rất ảo ma Canada.
OKAY và điều gì đến cũng đến, mình trượt PV vào CLB, CLB lấy đúng 3 ông 2k4. Theo thông tin nội gián thì lúc đầu định lấy 16 người thì có tên mình trong đó. Nhưng lúc sau thế quạc nào lại chỉ còn lấy 12 người, do đó mình failed.
Qua buổi PV đó thì mình cũng khá vui vì đã dám đk và thực hiện điều mình muốn, tuy KQ chưa như ý nhưng không có gì phải buồn, mình sẽ trau dồi thêm kiến thức và quay lại phục thù.
Nhận xét
Đăng nhận xét