Giúp một số quiz ngắn về C

Có một số quiz mình gặp trong một bài giảng về C, mọi người giải đáp giúp ạ!

•1 int x=017;int y=12; /∗is x>y?∗/
•2 short int s=0xFFFF12; /∗correct?∗/
•3 char c=−1;unsigned char uc=−1; /∗correct?∗/
•4 puts(“hel”+“lo”); puts(“hel”“lo”);/∗which is correct?∗/
•5 enum sz{S=0,L=3,XL}; /∗what is the value of XL?∗/
•6 enum sz{S=0,L=−3,XL}; /∗what is the value of XL?∗/

  1. (x > y) == true
  2. Cái này thì chịu
  3. nope
  4. puts(“hel”+“lo”);
  5. XL = null
  6. XL = null

Thực sự mình không hiểu gì về C cho lắm đâu nha

1 Like

Sao bạn ko code thử và chạy để xem kết quả?

3 Likes

Do không biết code và compile. :penguin:

2 Likes

  1. Viết int x = 017; là viết dưới dạng octal (tương tự như hex bắt đầu bằng 0x). 017 octal bằng bao nhiêu trong decimal rồi so với 12 nhen.
  2. Đúng
  3. Compile được, nhưng in ra giá trị max (range overflow). Cái đầu thì vẫn in ra -1 vì char mặc định là signed char nếu không có modifier.
  4. puts("hel""lo"); đúng, khi compile code thì preprocessor sẽ nối các literal tokens lại, "a""b" = "ab". Cái đầu sai vì trong C không có class -> không có std::string -> không có operator+().
  5. XL = 4, giá trị của nó sẽ được +1 sau giá trị của enum gần nhất được đánh số.
  6. XL = -2

Lần sau bạn nên tự compile code để test nhen, không lại bị chọc khổ lắm :joy:

3 Likes

Bổ sung: “hel” + “lo” thực chất là cộng con trỏ với con trỏ -> ko có phép tính này :slight_smile:

4 Likes

Không phải đâu! Vì máy không đủ dung lượng để cài code::blocks và mingw đâu. Ngoài ra ngôn ngữ lập trình vỡ lòng của mình là c++ cơ.
P/s: Ít dùng C/C++ toàn dùng C# / Java / Python hoy

Thời đại này có IDE online cơ mà. ideone, wandbox

1 Like

Trời má!!! Thế mà không biết!!! Cảm ơn lời góp ý của TQ Boy nha

6 posts were merged into an existing topic: Topic chứa các reply được cho là off-topic - version 2

1 Like

Thời đại online compiler lâu rồi.

Thời đại bây giờ là IDE trên Cloud.

Cloud9 IDE

Eclipse CHE
https://www.eclipse.org/che/

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?