30/09/2018, 16:02
Poll: Kiểm tra kiến thức C - 1.10
Các bạn thảo luận đáp án nhé, bài test lấy từ http://www.indiabix.com/online-test/c-programming-test/112
10.If char=1, int=4, and float=4 bytes size, What will be the output of the program ?
#include<stdio.h>
int main()
{
char ch = 'A';
printf("%d, %d, %d", sizeof(ch), sizeof('A'), sizeof(3.14f));
return 0;
}
- A. 1, 2, 4
- B. 1, 4, 4
- C. 2, 2, 4
- D. 2, 4, 8
Bài liên quan
Câu này dễ òm hehe
Sẵn quảng cáo
1,4,4 sai à nha. 1,1,4 hehehe
Cái này C nó không coi là char đâu, nó chỉ coi đó là một con số thôi. Sau đó nó tự động ép kiểu về kiểu int => 4 bytes
Sao thế nhỉ. Em dùng devC và nó không hề ép kiểu về int. Nó trả về giá trị 1b kiểu char luôn :-s. Hay trình biên dịch này nó vậy nhỉ :-w
Em thử với http://ideone.com/ xem sao? Đáng lẽ ra phải ép kiểu về int. Có thể compiler của DevC không chuẩn
1-4-4 thật. Trường em dùng cái này để dạy C vs C++ mà. Tại sao nó lại nghĩ là kiểu int nhỉ. Hay nó tính theo bảng mã asii. Ký tự A = 65 tương đương với 4 bytes?
‘A’ = 65, 65 là một con số thôi. Trình biên dịch không biết nó là kiểu gì, char thì ít quá. Thôi thì mặc định là int.
Lại còn có cả thôi thì mặc định nữa hả a ~.~. Em lại nghĩ 65 nó là số kiểu int thì đáp án = 4 =)
à, thực ra có một khái niệm về món ép kiểu này. Khi nó là số nguyên, nhỏ hơn
MAX_INT
thì sẽ được ép kiểu vềint
, lớn hơn thì nó ép về long hoặclong long
.mình cũng như bạn ra 1,1, 4
mình tính ra 1,4,4 . và kq của codeblock cũng là 1,4,4 .
Em dùng Dev-C kết quả bình thường 1 4 4 mà.