Choose the best comment about the output of the following C code:
4 phương ánCó giải thích
#include <stdio.h>
int main()
{
int a = 1;
switch (a)
case 1:
printf("%d", a);
case 2:
printf("%d", a);
case 3:
printf("%d", a);
return 0;
}Các phương án trả lời
Chọn một phương ánLời giảiChọn phương án để mở
Đáp án đúng: "Compile time error, case label outside switch statement". Phạm vi của một khối do ngoặc nhọn quyết định, không do thụt lề: sau switch (a) ở đây không có ngoặc nhọn nào, nên thân của switch chỉ ôm đúng một lệnh, và lệnh đó là lệnh mang nhãn case 1 kèm lời gọi in giá trị a. Hai nhãn case 2 và case 3 viết tiếp phía sau đã nằm ngoài thân switch dù được thụt vào, mà nhãn case chỉ hợp lệ bên trong một switch, nên trình biên dịch dừng với lỗi nhãn case nằm ngoài lệnh switch. Kết luận "No error, output is 1111" sai cả hai mặt: chương trình không dịch được, và trong mã cũng chỉ có ba lệnh in. Kết luận "No error, output is 1" cũng giả định dịch được, hơn nữa nếu các nhãn đều nằm trong thân switch thì do không có break nên các nhánh sau vẫn chạy tiếp. Kết luận "Compile time error, no break statements" đúng chuyện có lỗi nhưng sai nguyên nhân: thiếu break không phải lỗi, đó là hành vi rơi xuống nhánh dưới mà chuẩn cho phép.
Cùng phần 3
What will be the output of the following C code?
#include <stdio.h>
void main()
{
int x = 0;
if (x == 0)
printf("Hi");
else
printf("How are you");
printf("Hello");
}Có lời giảiCâu hỏiHow does a "for" loop differ from a "while" loop in C programming?Có lời giảiCâu hỏiIn a C program, what happens if none of the conditions in an if-else statement are true?Có lời giảiCâu hỏiCả 40 câu của chủ đề40 câu
Xuất hiện trong 2 bộ đề
Đi tiếp từ đây