What will the following program output?
4 phương ánCó giải thích
#include <stdio.h>
int main()
{
int a = -5;
switch ((a > 0) - (a < 0)) {
case 1:
printf("a is an positive number.");
break;
case -1:
printf("a is an negative number.");
break;
default:
printf("a is zero.");
}
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: "a is an negative number." a bằng -5 nên phép so sánh a > 0 cho 0 và a < 0 cho 1; biểu thức chọn nhánh là 0 trừ 1, tức -1, và switch so khớp với nhãn case -1 nên in ra câu nói a là số âm rồi break thoát. Mẹo (a > 0) - (a < 0) chính là hàm dấu, nó dựa vào bản chất của C là phép so sánh trả về số nguyên 1 hoặc 0 chứ không trả về kiểu luận lý riêng. "a is an positive number." đòi biểu thức bằng 1, chỉ xảy ra khi a dương. "a is zero." là nhánh default, chỉ chạy khi hiệu bằng 0, tức khi a bằng 0. "An error will be raised." sai vì switch chỉ cần một biểu thức nguyên, nhãn case mang giá trị âm hoàn toàn hợp lệ.
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ỏiWhat is the output when the sample code below is executed?
#include <stdio.h>
int main()
{
int i,j,result=0;
for(i=3;i<=5;i++){
for(j=5;j>i;j--)
result+=j;
}
printf("%d",result);
return 0;
}Có lời giảiCâu hỏiCả 40 câu của chủ đề40 câu
Xuất hiện trong 1 bộ đề
Đi tiếp từ đây