30/09/2018, 16:02
Poll: Kiểm tra kiến thức C - 1.11
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/11
11.What will be the output of the program ?
#include<stdio.h>
int main()
{
char str[] = "Nagpur";
str[0]='K';
printf("%s, ", str);
str = "Kanpur";
printf("%s", str+1);
return 0;
}
- A. Kagpur, Kanpur
- B. Nagpur, Kanpur
- C. Kagpur, anpur
- D. Error
Bài liên quan
Đề này hay, vì mấy dạng này dễ trong lập trình C lắm.
Một khi mình đã khai báo
char str[] = "Nagpur";
thìstr
mang kiểuchar[7]
rồi. Khi đó mà gán tiếpstr = "Kanpur";
nữa là báo lỗi luôn. Vì “kanpur” là kiểuchar*
.Phải sửa lại như thế này thì sẽ chạy ổn.
Cái này thì em nhớ là thầy bảo trong C không cho gán như thế, Phải dùng lệnh strcpy để gán chuỗi 2 cho chuỗi 1. Chứ k nghĩ nó lại có lý do như thế này T_T.
Anh Đạt cho em hỏi,Dòng này không liên quan??? @ltd
Khi đã có cái dòng này
Thôi anh ơi, nó giống nhau quá. Em nhìn mãi mới ra khác chữ n vs g =))
Em không hiểu chỗ printf("%s", str+1); cái str+1 là sao vậy ạ?
str+1
là in ra vị trí thứ 2 trong chuỗi strVí dụ:
char * str = "abc";
thì
Em coi mấy cái bải mảng và con trỏ ở đây để hiểu