มี test เล็ก ๆ น้อย ๆ มาให้ทำกันเล่น ๆ ครับ บางข้อก็สำหรับคนที่หัดเขียนมาบ้าง บางข้อนี่สำหรับคนที่เขียนเป็น แล้วก็อาจจะตอบไม่ถูกได้ (ตอนคิดโจทย์บางข้อ ผมยังตอบผิดเลย)

โปรแกรมนี้ให้ค่าอะไร ถ้าอินพุทเป็น 30
float cel, fah;
cel = float.Parse(Console.ReadLine());
fah = 9 / 5 * cel + 32;
Console.WriteLine("{0} Celsius = {1} Fahrenheit", cel, fah);

code ด้านล่างข้อไหนที่สามารถคอมไพล์ผ่าน
string s;
s = "c:\windows\system32";
Console.WriteLine(s);
string s;
s = "c:\temp";
Console.WriteLine(s);
string s;
s = "10";
s = s + 5; Console.WriteLine(s);

โปรแกรมข้างล่างเหล่านี้จะคอมไพล์ผ่านหรือไม่
int x = 7++;
float f = 1.5f;
f++;
int x = 0, y = 0;
Console.WriteLine(x+++++y);

การประกาศ Main method ในข้อใดที่คอมไพล์ผ่านบ้าง
  1. class MainClass {
        private static void Main() {

        }
    }
  2. class MainClass {
        public static int Main() {
            return 0;
        }
    }
  3. class MainClass {
        public static void Main() {

        }

        public static void Main(string[] args) {

        }
    }
  4. class MainClass {
        public static void Main() {

        }

        public void Main() {

        }
    }
  5. class MainClass {
        public static void Main() {

        }

        public static void Main(int n) {

        }
    }
  6. class MainClass {
        public static void Main() {

        }
    }

    class SecondClass {
        public static void Main() {

        }
    }

  7. class MainClass {
        public static void Main() {
            ;return;
        }
    }

  8. class MainClass {
        public static void Main()
        { { } }
    }

ข้อใดต่อไปนี้เป็น valid identifier บ้าง(คือสามารถเอาไปตั้งชื่อตัวแปร, ชื่อ method, ชื่อ class, ชื่อ namespace ได้)
  1. $$$
  2. _
  3. @ten
  4. @at@
  5. @class
  6. @x-y
  7. Main
  8. args
โปรแกรมเมอร์ C++ คนหนึ่ง มาเขียน C# แล้วเค้าเผลอประกาศคลาสแบบนี้
class MainClass {
    ....
};
ถามว่าจะคอมไพล์ผ่านมั้ย

Comment

Comment:

Tweet

Dim telselect As String = "select tel from fermer"
Dt = Conn_DB2(telselect)
Dim i As Integer

For i = 0 To CInt(TextBox2.Text - 1)

Dim Tel As String = Dt.Rows .Item("Tel").ToString

เปลียนเป็น c# ให้หน่อยค่ะ

#13 By อัญ (202.29.9.42) on 2011-06-03 16:14

pJ8iy1 jgoqdqgo drvfxcmk bpmirjug

#12 By EPgeWaMywNFoqiFHouu (89.248.172.50) on 2009-07-28 15:06

9/5*30+32
จะได้
1.8*30+32
ได้
54+32 = 86

#11 By หมูน้อยขี้เซา (125.26.92.154) on 2009-05-02 23:55

int x = 0, y = 0;
Console.WriteLine(x+++++y);
ไม่ผ่านนะครับเพิ่งเรียนมาสดๆ - -
อาจารย์เขายกตัวอย่างให้ดูอะ
แต่ถ้า++-++ผ่านนะเออ -.-

#10 By gim (58.8.156.36) on 2007-06-30 16:18

int x = 0, y = 0;
Console.WriteLine(x+++++y);
ไม่ผ่านนะครับเพิ่งเรียนมาสดๆ - -
อาจารย์เขายกตัวอย่างให้ดูอะ
แต่ถ้า++-++ผ่านนะเออ -.-

#9 By (58.8.156.36) on 2007-06-30 16:18

1 ตอบ 86
เพราะมันต้องแบ่งแบบนี้
(9/5*30) + 32
ในวงเล็บทำจากซ้ายไปขวา
ข้ออื่น ๆตาม เพื่อนข้างบน

#8 By saharach (203.149.11.19) on 2007-06-14 15:42

(1) 62
(2)อันแรกไม่ผ่าน เพราะมี backslash โดยไม่เป็น string
อันที่สองผ่าน เพราะ backslash อยู่หน้า t จะกลายเป็นคำพิเศษ คือ ย่อหน้า
อันที่สามผ่าน แต่ให้ผลเป็น 105 เพราะตัวแปร s ประกาศเป็น string เครื่องหมาย + หมายถึงเชื่อม string
(3)อันแรกไม่ผ่านเพราะ บรรทัดแรกหน้าเครื่องหมาย ++ ต้องเป็นตัวแปร แต่ที่ใส่นี้เป็นตัวเลข ไม่ใช่ตัวแปร
อันที่สอง ผนจะแบ่งให้ดูนะครับในบรรทัดที่สอง x+++++y (บวก 5 ครั้ง)
แบ่งได้ดังนี้ "x++"/"++"/"+"/"y"
ส่วนที่1: เครื่องหมายบวกที่อยู่หลังสุด(ติดกับ y) คือการบวก(ทางคณิตศาสตร์ทั่วไป)
ส่วนที่สอง:ตัวที่สามและสี่ (++) คือตัวโอเปอเรเตอร์สำหรับบวก1ให้กับค่าของตัวแปรนั้น (x++; คือ x=x+1;)
ส่วนที่สาม:ส่วนหน้าคือ "x++" ในส่วนนี้ทำให้คอมไพล์ไม่ผ่าน เพราหน้าเครื่องหมายในส่วนที่2(++)ต้องเป็นตัวแปรแต่ "x++" ไม่ใช่ตัวแปรจึงไม่ผ่าน

#7 By (58.8.9.107) on 2007-03-30 21:30

#6 By (124.157.210.41) on 2007-03-13 15:35

Google is the best search engine

#5 By vZHOqilxZm (85.255.113.77) on 2007-03-02 19:49

ถ้าไม่อยากให้แสดงแปปเดียวก็ใส่
Console.ReadLine();
ลงไปข้างหลัง

#4 By (58.8.14.181) on 2007-01-14 16:48

ใช้ SharpDevelop v2.0.0
เวลารันแล้ว มันขึ้นแสดงผลแป็ปเดียวเอง
อยากให้มันขึ้นแล้วรอก่อน อ่ะ ต้อง set ตรงไหนอ่ะ
หาไม่เจอ

#3 By jo (124.121.187.224) on 2006-11-15 00:09

ข้อแรกได้ 30+32 นะครับ เพราะ 9/5 ใน C# ได้ 1 อะ

#2 By CPE20 (58.64.111.117) on 2006-10-11 02:36

น่าสงสารมาดูแล้วไม่มีใครตอบเลย เหอๆ
ข้อแรกนะงับ พฐ. คือ +- ทำก่อน */ดังนั้นจะได้ว่า
9 / 5 * (30 + 32)
1.8 * 62
111.6 (มั่ว ๆ 555)

ข้อ 2 นะงับ
การประกาศ string โดยมีเครื่องหมาย \ อยู่ใน string แบบเดี่ยวๆ ให้ใส่ @ ไว้หน้า string นะครับ ดังนั้น อันที่ 1 ไม่ผ่านจ้า แต่ในกรณีของ อันที่ 2 นะครับ "\t" แทน TAB character ดังนั้นจึง
ผ่านจ้า อันที่ 3 ระวังหน่อยเพราะ C# ไม่ auto casting ให้นะถ้า VB.Net ผ่านฉลุยจ้า

ข้อ 3 ต่อเลย อันแรกผ่านแน่นอนเพราะ operand ++ ไม่จำกัดว่าใช้ได้แต่ int ครับสามารถใช้งานกับ indexer หรือ storage location ได้ด้วย
แต่อันที่ 2 จนปัญญาตอบให้ครับ ถ้าเห็นน้องคนไหนเขียนผมคงสั่งให้แก้ไปแล้วหล่ะครับอ่านเข้าใจยาก 555

ข้อ 4 Main method ข้อจำกัดมีแค่
1. return type เป็น void หรือ int
2. parameter เป็น void หรือ string array
3. public static function เท่านั้นที่ถูกพิจารณา

ข้อที่ผ่านแน่นอนแบบไม่ต้องคิดมากคือ
2,3,4
ข้อ 6 สามารถทำได้นะครับแต่หมายถึงคุณจะมี entry point มากกว่า 1
ข้อ 7, 8 จะมี warning (แต่ข้อ 8 เหมือนไม่น่าจะผ่านนะ)
ข้อ 1 error เพราะหา entry point ไม่เจอ (ประกาศเป็น private) ดังนั้น error ครับ

ข้อ 5 งง งง
อันที่ 2 ถ้ามีอย่างอื่นต่อท้ายผ่านถ้ามาเดี่ยวๆ เดี้ยง
8 ผ่านแน่ๆ ช่างมัน
7 ไม่แน่ใจ ที่เหลือคิดว่าไม่ผ่าน

ข้อสุดท้ายน่าจะแค่ warning นะไม่แม่นแล้ว 555

หมดแล้ว...เฮ้อเหนื่อย ไว้ได้ลองเมื่อไหร่ (ถ้าไม่ลืม) จะมาตอบอีกที 555

#1 By Zeeeeed (58.8.51.179) on 2006-05-30 23:39