What is the output of the following program?

4 phương ánCó giải thích
Đề bài
#include <stdio.h>
#include <string.h>
int main() {
    char s1[] = "FPTU";
    char s2[] = "fpt";
    char s3[] = "FPTU";
    printf("%d %d %d", strcmp(s1,s2), strcmp(s1,s3), strcmp(s2,s3));
    return 0;
}

Các phương án trả lời

Chọn một phương án
Lời giảiChọn phương án để mở
Đáp án đúng: "-1 0 1". Hàm strcmp so hai chuỗi theo mã ký tự tại vị trí lệch đầu tiên và chỉ cam kết dấu của giá trị trả về. So chuỗi viết hoa với chuỗi viết thường thì cặp lệch đầu tiên nằm ngay ký tự đầu: mã chữ hoa nhỏ hơn mã chữ thường nên kết quả âm. So chuỗi viết hoa với chuỗi giống hệt nó cho 0. So chuỗi viết thường với chuỗi viết hoa cho giá trị dương vì đảo chiều của phép so đầu. Thư viện của Visual Studio chuẩn hoá về -1, 0 và 1 nên dãy in ra khớp lựa chọn này; cần biết thư viện khác có thể trả về đúng chênh lệch 32 đơn vị, chỉ dấu là bất biến. Lựa chọn "2 0 -2" sai dấu ở cả hai đầu. Lựa chọn "1 0 2" cho kết quả dương ở phép so đầu, trái với việc chữ hoa đứng trước chữ thường trong bảng mã. Lựa chọn "1 0 -1" đảo dấu cả hai phép so khác 0.

Cùng phần 8

Xuất hiện trong 1 bộ đề