• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Kiểm tra độ thành thạo C# của bạn trong 120 giây!

Nơi trao đổi về các vấn đề trong lập trình Windows Forms, Console dùng cú pháp ngôn ngữ Visual Basic .NET và C#

Điều hành viên: tungblt, vuathongtin

Bạn trả lời đúng bao nhiêu câu trong 120s?

1/7
2
10%
2/7
2
10%
3/7
4
19%
Từ 4 đến 6/7
4
19%
7/7
9
43%
 
Số lượt bình chọn: 21

HaiPT
VIP
VIP
Bài viết: 252
Ngày tham gia: T.Tư 07/09/2005 4:02 pm
Đến từ: Hải Phòng
Has thanked: 1 time
Been thanked: 12 time
Liên hệ:

Kiểm tra độ thành thạo C# của bạn trong 120 giây!

Gửi bàigửi bởi HaiPT » T.Bảy 18/02/2012 11:07 pm

Đề bài kiểm tra : Nhìn vào đoạn lệnh sau, trong 120 giây, hãy cho biết sau khi chương trình chạy đến dòng /// STOP HERE
thì giá trị của :
I, J , K = ?
P1.X = ?
P1.Y =?
P2.X =?
P2.Y =?

  1.     class  Program
  2.     {
  3.         static void Main()
  4.         {
  5.             int i, j, k;
  6.             var P1 = new Point();
  7.             var P2 = new Point();
  8.             P1.X = 0;
  9.             P1.Y = 0;
  10.             P2.X = 1;
  11.             P2.Y = 1;
  12.             P2=P1;
  13.             i = P2.X;
  14.             j = ++P1.X;
  15.             k = P1.Y++;
  16.             P2.X++;
  17.             P1.Y++;
  18.           /// STOP HERE          
  19.       }
  20.     }
  21.     class  Point
  22.     {
  23.         public int X { get; set; }
  24.         public int Y { get; set; }
  25.  
  26.     }
  27.  


Kết quả ;))
Sau khi ghi kết quả ra giấy, thử chạy chương trình trong IDE của VS 2008 để so sánh!
Nếu bạn làm đúng : <3/7 : Bạn là amater
Nếu bạn làm đúng : 3/7 : Bạn có trên 6 tháng kinh nghiệm C# và khá chăm chỉ
Nếu bạn làm đúng : 7/7 : Bạn thành thạo C# và có trên 1 năm kinh nghiệm sử dụng C# liên tục !

Nếu bạn ra đáp án chính xác dưới 60 sec , bạn có 2 năm kinh nghiệm sử dụng C# :)>-
:P Lưu ý là không có : 4/7, 5/7, 6/7 :) ( Bạn nên tìm hiểu tại sao nhỉ :) )
Sửa lần cuối bởi HaiPT vào ngày T.Năm 23/02/2012 7:56 pm với 1 lần sửa.


Phạm Hải
Quản trị dự án ,Chuyên gia đào tạo
Đại học FPT

Hình đại diện của người dùng
vo_minhdat2007
Quản trị
Quản trị
Bài viết: 2227
Ngày tham gia: CN 17/07/2005 1:40 am
Has thanked: 13 time
Been thanked: 87 time
Liên hệ:

Re: Kiểm tra độ thành thạo C# của bạn trong 120 giây!

Gửi bàigửi bởi vo_minhdat2007 » T.Bảy 18/02/2012 11:33 pm

Theo em cái này không nhất thiết có kinh nghiệm trong thời gian nhiều đâu anh Hải à, mà quan trọng là đã từng trải qua vấn đề này là được, như em đã tìm hiểu qua rồi nên nhìn từng dòng code là biết ngay kết quả thế nào.

Nó giống như bài viết này của em đúng không :) viewtopic.php?f=76&t=19691 (phần Một số sai sót...).

Hình đại diện của người dùng
dazzlingvit
Guru
Guru
Bài viết: 960
Ngày tham gia: T.Ba 18/01/2011 10:21 am
Đến từ: Sinh ra từ hư vô, sống trong thế giới ảo...
Has thanked: 7 time
Been thanked: 112 time
Liên hệ:

Re: Kiểm tra độ thành thạo C# của bạn trong 120 giây!

Gửi bàigửi bởi dazzlingvit » CN 19/02/2012 1:13 am

i = 0
j = 1
k = 0
P1.X = P2.X = 2
P1.Y = P2.Y = 2
Không biết đúng hay tạch rồi :))
Dazzling V.I.T
Hãy gọi tôi là vịt :)

HaiPT
VIP
VIP
Bài viết: 252
Ngày tham gia: T.Tư 07/09/2005 4:02 pm
Đến từ: Hải Phòng
Has thanked: 1 time
Been thanked: 12 time
Liên hệ:

Re: Kiểm tra độ thành thạo C# của bạn trong 120 giây!

Gửi bàigửi bởi HaiPT » CN 19/02/2012 11:43 am

vo_minhdat2007 đã viết:Theo em cái này không nhất thiết có kinh nghiệm trong thời gian nhiều đâu anh Hải à, mà quan trọng là đã từng trải qua vấn đề này là được, như em đã tìm hiểu qua rồi nên nhìn từng dòng code là biết ngay kết quả thế nào.

Nó giống như bài viết này của em đúng không :) viewtopic.php?f=76&t=19691 (phần Một số sai sót...).

:P Phải có kinh nghiệm đấy em và là kinh nghiệm thực sự ! nó khác hẳn bài viết của em !
Trước khi trả lời anh thì hãy test thử xem đã!
Từ trước đến nay số lượng sinh viên trả lời đúng 7/7 là 2 % ( một năm anh trực tiếp training cho FSOFT khoảng 1500 nhân viên, cho sinh viên thì vài ngàn )
Những bạn trả lời đúng 7/7 đều cực kỳ xuất sắc , thuộc diện tuyển thẳng hoặch là team lead!
Khoảng 30% trả lời đúng >= 3/7 : Những bạn này đều thuộc diện khá và rất chăm chỉ !, thường là back khoa !
60% chỉ đúng 2/7 : đa phần là aptech và các trường không chuyên!
Số còn lại đúng 1/7 thậm chí sai hết , có thể do áp lực thời gian !
Bài không khó nhưng đòi hỏi :
- Ứng viên phải chăm chỉ , và làm nhiều mới phân biệt được ++Variable và Variable++ khác nhau như thế nào ( bình thường rất ít bạn để ý )
- Ứng viên phải thành thạo C#, OOP mới hiểu được lệnh = với hai object có tác dụng thế nào
- Ứng viên phải cực quen tay mới có thể tính chính xác dưới 60s

Một biến thể khác là ta thay type của Point từ "Class" sang "struct" thì kết quả sẽ bằng bao nhiêu ? ;))
Sửa lần cuối bởi HaiPT vào ngày CN 19/02/2012 1:40 pm với 2 lần sửa.
Phạm Hải
Quản trị dự án ,Chuyên gia đào tạo
Đại học FPT

Hình đại diện của người dùng
dazzlingvit
Guru
Guru
Bài viết: 960
Ngày tham gia: T.Ba 18/01/2011 10:21 am
Đến từ: Sinh ra từ hư vô, sống trong thế giới ảo...
Has thanked: 7 time
Been thanked: 112 time
Liên hệ:

Re: Kiểm tra độ thành thạo C# của bạn trong 120 giây!

Gửi bàigửi bởi dazzlingvit » CN 19/02/2012 12:51 pm

Ôi hay quá, không ngờ đoạn code ngắn gọn thế này mà phân loại được như vậy.
(Đọc xong bài này mình phải mở ngay VS ra kiểm tra xem đúng hay tạch thật rồi) =))
Dazzling V.I.T
Hãy gọi tôi là vịt :)

Hình đại diện của người dùng
bangnhatquang68
Guru
Guru
Bài viết: 791
Ngày tham gia: T.Ba 26/01/2010 12:44 pm
Đến từ: Vĩ tuyến 17
Has thanked: 20 time
Been thanked: 38 time
Liên hệ:

Re: Kiểm tra độ thành thạo C# của bạn trong 120 giây!

Gửi bàigửi bởi bangnhatquang68 » CN 19/02/2012 1:40 pm

:-" :-"
cái này là kinh nghiệm viết code trải nhiều thì thế thôi :-" :-"
nhòm qua biết cần gì mở VS.
P1=0

P2=P1
dù p1, p2 có tăng gì thì vẫn là 0 ^:)^
cái gì liên quan đến phân tọa độ cũng : 0 nốt :-
Mời anh em lên facebook giao lưu nào!
http://www.facebook.com/groups/145823032176611/

HaiPT
VIP
VIP
Bài viết: 252
Ngày tham gia: T.Tư 07/09/2005 4:02 pm
Đến từ: Hải Phòng
Has thanked: 1 time
Been thanked: 12 time
Liên hệ:

Re: Kiểm tra độ thành thạo C# của bạn trong 120 giây!

Gửi bàigửi bởi HaiPT » CN 19/02/2012 1:43 pm

Chẹp, lại sai rồi ! :( , 1 chú "gà" ra đi !
Đã bẩu là cẩn thận kẻo chết !
Trên chỉ là một ví dụ nhỏ để phỏng vấn ứng viên , các ứng viên có kinh nghiệm thực sự sẽ không bị "cóng" về áp lực thời gian, bình tĩnh giải quyết dưới 60 sec !
Các ứng viên khá một tý nhưng chủ quan, nhanh nhẩu đoảng, ẩu... sẽ trượt và thường chỉ làm đc 2/7 ( bangnhatquang) là 1 ví dụ tốt ! =))
Sau đó khi nhìn lại kết quả thường rất bất ngờ vì mình làm sai!
Vì lập trình viên cần sự : chăm chỉ, cẩn thận, tỷ mỷ và ..chính xác ! >:D<
Phạm Hải
Quản trị dự án ,Chuyên gia đào tạo
Đại học FPT

Hình đại diện của người dùng
bangnhatquang68
Guru
Guru
Bài viết: 791
Ngày tham gia: T.Ba 26/01/2010 12:44 pm
Đến từ: Vĩ tuyến 17
Has thanked: 20 time
Been thanked: 38 time
Liên hệ:

Re: Kiểm tra độ thành thạo C# của bạn trong 120 giây!

Gửi bàigửi bởi bangnhatquang68 » CN 19/02/2012 1:49 pm

Oh,yeah. háu táu rồi, chạy ra sai zòi.
thêm một tên a ma tơ rồi
Mời anh em lên facebook giao lưu nào!
http://www.facebook.com/groups/145823032176611/

HaiPT
VIP
VIP
Bài viết: 252
Ngày tham gia: T.Tư 07/09/2005 4:02 pm
Đến từ: Hải Phòng
Has thanked: 1 time
Been thanked: 12 time
Liên hệ:

Re: Kiểm tra độ thành thạo C# của bạn trong 120 giây!

Gửi bàigửi bởi HaiPT » CN 19/02/2012 1:51 pm

Mod tạo hộ tớ cái thống kê để xem bao nhiêu bạn "thật sự" làm đúng trong 60 sec nhé!
Đại khái câu hỏi là ( bạn làm đúng đc bao nhiêu câu trong 60 séc ( thật thà nhé)
(1) 1/7
(2) 2/7
(3) 3/7
(4) >4/7
( 5) 7/7
Không gian lận ! :), dzui là chính mà ! ;))
Câu hỏi bên ASP.NET giờ vẫn chưa thấy ai trả lời :-j
Sửa lần cuối bởi HaiPT vào ngày CN 19/02/2012 1:54 pm với 1 lần sửa.
Phạm Hải
Quản trị dự án ,Chuyên gia đào tạo
Đại học FPT

Hình đại diện của người dùng
bangnhatquang68
Guru
Guru
Bài viết: 791
Ngày tham gia: T.Ba 26/01/2010 12:44 pm
Đến từ: Vĩ tuyến 17
Has thanked: 20 time
Been thanked: 38 time
Liên hệ:

Re: Kiểm tra độ thành thạo C# của bạn trong 120 giây!

Gửi bàigửi bởi bangnhatquang68 » CN 19/02/2012 1:54 pm

bỏ vô giao lưu đi, đây là mục giải đáp về C#,vb,net mà!
Mời anh em lên facebook giao lưu nào!
http://www.facebook.com/groups/145823032176611/

HaiPT
VIP
VIP
Bài viết: 252
Ngày tham gia: T.Tư 07/09/2005 4:02 pm
Đến từ: Hải Phòng
Has thanked: 1 time
Been thanked: 12 time
Liên hệ:

Re: Kiểm tra độ thành thạo C# của bạn trong 120 giây!

Gửi bàigửi bởi HaiPT » CN 19/02/2012 1:56 pm

Nhưng chủ đề của nó vẫn là "Thảo luận C#" thì nên đưa vào box thảo luận C#, C, C++,JAVA... hợp hơn
Phạm Hải
Quản trị dự án ,Chuyên gia đào tạo
Đại học FPT

Hình đại diện của người dùng
dazzlingvit
Guru
Guru
Bài viết: 960
Ngày tham gia: T.Ba 18/01/2011 10:21 am
Đến từ: Sinh ra từ hư vô, sống trong thế giới ảo...
Has thanked: 7 time
Been thanked: 112 time
Liên hệ:

Re: Kiểm tra độ thành thạo C# của bạn trong 120 giây!

Gửi bàigửi bởi dazzlingvit » CN 19/02/2012 2:16 pm

bangnhatquang68 đã viết:bỏ vô giao lưu đi, đây là mục giải đáp về C#,vb,net mà!

Mục này là để thảo luận mà, đâu phải chỉ để giải đáp. Mục giao lưu chỉ để anh em chém gió ngoài lề thôi :D
Dazzling V.I.T
Hãy gọi tôi là vịt :)

Hình đại diện của người dùng
vo_minhdat2007
Quản trị
Quản trị
Bài viết: 2227
Ngày tham gia: CN 17/07/2005 1:40 am
Has thanked: 13 time
Been thanked: 87 time
Liên hệ:

Re: Kiểm tra độ thành thạo C# của bạn trong 120 giây!

Gửi bàigửi bởi vo_minhdat2007 » CN 19/02/2012 6:10 pm

Đã tạo bình chọn :) Kết quả của em là 7/7, đọc code tới đâu ra kết quả tới đó :D

P/s: "Bắt bài" anh xíu, thực ra chương trình không bao giờ chạy dòng //STOP HERE (chính xác hơn là không hề có dòng đó khi chạy), vì nó là comment, compiler không quan tâm đến nó. :P

HaiPT
VIP
VIP
Bài viết: 252
Ngày tham gia: T.Tư 07/09/2005 4:02 pm
Đến từ: Hải Phòng
Has thanked: 1 time
Been thanked: 12 time
Liên hệ:

Re: Kiểm tra độ thành thạo C# của bạn trong 120 giây!

Gửi bàigửi bởi HaiPT » CN 19/02/2012 6:20 pm

Vậy Đạt thuộc hệ "hàng chất lượng cao rồi" he he! Với những người có trên 2000 bài viết về VB, C# thì chắc khó sai đc ha ha !
@all: Đề ra chủ yếu dzui là chính, mọi người cùng thử phát xem !
Đạt sửa lại dùm
"Bạn trả lời đúng bao nhiêu câu?" ==> " Bạn trả lời đúng bao nhiêu câu trong vòng 120 giây?"
Sửa lần cuối bởi HaiPT vào ngày CN 19/02/2012 6:40 pm với 2 lần sửa.
Phạm Hải
Quản trị dự án ,Chuyên gia đào tạo
Đại học FPT

Hình đại diện của người dùng
vo_minhdat2007
Quản trị
Quản trị
Bài viết: 2227
Ngày tham gia: CN 17/07/2005 1:40 am
Has thanked: 13 time
Been thanked: 87 time
Liên hệ:

Re: Kiểm tra độ thành thạo C# của bạn trong 120 giây!

Gửi bàigửi bởi vo_minhdat2007 » CN 19/02/2012 6:31 pm

Đã sửa bình chọn :D

À mà thú thật anh là lúc đầu test em hơi giật mình vì kết quả sai, lúc đầu em chỉ copy code đoạn trên của anh, rồi dùng Point có sẵn của C#. Tự nhiên đáp số ra khác hẳn, nhưng nghĩ lại thấy vô lý :P. Rồi em mới ngồi copy thêm class Point của anh vào thì em đúng.

Từ đó ngẫm ra: Point (của System.Drawing) chắc chắc không phải là một class vì không đúng nguyên tắc OOP (khi so sánh P1 == P2 sau khi đã gán vẫn ra false sau khi thay đổi giá trị P2). Trở lên MSDN xem thì đúng là Point là struct, đồng thời operator Equality đã bị override mất :D

P/s: Thực ra em ít làm C#, nhiều cái vẫn chưa biết lắm. Kiến thức OOP của em xách từ Java qua là nhiều :P

HaiPT
VIP
VIP
Bài viết: 252
Ngày tham gia: T.Tư 07/09/2005 4:02 pm
Đến từ: Hải Phòng
Has thanked: 1 time
Been thanked: 12 time
Liên hệ:

Re: Kiểm tra độ thành thạo C# của bạn trong 120 giây!

Gửi bàigửi bởi HaiPT » CN 19/02/2012 6:36 pm

Yes, đề này apply cho cả JAVA lẫn C++ vì nguyên lý tương đương!
.. nên bất cứ ứng viên nào thành thạo một ngôn ngữ kể trên thì đều trả lời chính xác được !
Point (của System.Drawing) là Struct , struct là value type, chỉ cần đổi type của Point trong ví dụ trên sang struct là kết quả sẽ khác hoàn toàn !
Phạm Hải
Quản trị dự án ,Chuyên gia đào tạo
Đại học FPT

Hình đại diện của người dùng
son0nline
Thành viên trung thành
Thành viên trung thành
Bài viết: 241
Ngày tham gia: T.Năm 18/02/2010 9:55 pm
Has thanked: 6 time
Been thanked: 12 time
Liên hệ:

Re: Kiểm tra độ thành thạo C# của bạn trong 120 giây!

Gửi bàigửi bởi son0nline » T.Hai 20/02/2012 12:59 pm

chỉ cho em với
em không hiểu sao lại lên p1 và p2 lại lên 2 được vậy
amater :(

có phải tại cái dòng P2 = P1;
không
em thử p1.x ++; thì p2.x cũng tăng theo

Hình đại diện của người dùng
vo_minhdat2007
Quản trị
Quản trị
Bài viết: 2227
Ngày tham gia: CN 17/07/2005 1:40 am
Has thanked: 13 time
Been thanked: 87 time
Liên hệ:

Re: Kiểm tra độ thành thạo C# của bạn trong 120 giây!

Gửi bàigửi bởi vo_minhdat2007 » T.Hai 20/02/2012 2:30 pm

Bạn đọc bài viết này sẽ hiểu :) viewtopic.php?f=76&t=19691

dieucay555
Thành viên chính thức
Thành viên chính thức
Bài viết: 27
Ngày tham gia: T.Sáu 04/04/2008 2:23 am
Has thanked: 1 time
Been thanked: 2 time

Re: Kiểm tra độ thành thạo C# của bạn trong 120 giây!

Gửi bàigửi bởi dieucay555 » T.Tư 29/02/2012 1:59 pm

Hehe,nhân tiện có đề tài của bác Hải, em thử đưa ra 1 câu nữa các bác thử trả lời hộ em xem sao
  1. long count1, count2;
  2.             var sw = new Stopwatch(); sw.Start();
  3.             for (int i = 0; i < 1000000000; ++i) { }
  4.             count1 = sw.ElapsedMilliseconds;
  5.             sw.Reset();
  6.             sw.Start();
  7.             for (int j = 0; j < 1000000000; j++) { }
  8.             count2 = sw.ElapsedMilliseconds;
  9.             sw.Stop();
  10.  


Câu hỏi của em là thằng count1 và thằng count2 có bằng nhau ko? :D
Cái này là 1 trip nhỏ trong việc optimize code :)

Hình đại diện của người dùng
vo_minhdat2007
Quản trị
Quản trị
Bài viết: 2227
Ngày tham gia: CN 17/07/2005 1:40 am
Has thanked: 13 time
Been thanked: 87 time
Liên hệ:

Re: Kiểm tra độ thành thạo C# của bạn trong 120 giây!

Gửi bàigửi bởi vo_minhdat2007 » T.Tư 29/02/2012 8:17 pm

Thực sự mình không hiểu ý bạn dieucay555 ở đây là gì dù mình đã test nhiều lần.

Nếu bạn đang nói về chủ đề giống anh Hải thì không cần test cũng biết dĩ nhiên count1 và count2 không bao giờ bằng nhau được, cho dù cho nó thực hiện 2 đoạn code giống nhau, vì CPU không phải hiệu suất lúc nào cũng như nhau.

Còn nói về hiệu suất, mình test vài lần thấy kết quả 2 cái không có gì chênh lệch nhau nhiều (mà sao bạn lại dùng miliseconds làm đơn vị?). Đây là 1 trong các kết quả (lấy count1 - count2):

  1. Unit: Tick (10^-8s)
  2.  
  3. Test number 1: 48302
  4. Test number 2: -22556
  5. Test number 3: 24467
  6. Test number 4: -7636
  7. Test number 5: -29110
  8. Test number 6: 3863
  9. Test number 7: 17818
  10. Test number 8: -12513
  11. Test number 9: -55844
  12. Test number 10: 9883
  13.  
  14. Average: -23326


Như vậy có thể thấy, cả 2 cách có thể xem như là thời gian thực hiện tương đương nhau.


Quay về “Visual Basic .NET và C# (VB.NET & C#)”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.15 khách