#include <stdio.h> #include <string.h> int main() { int T; // 题目数量 scanf("%d", &T); getchar(); // 吃掉换行符 for (int i = 0; i < T; i++) { char A[610], B[610], C[610], D[610]; int lenA, lenB, lenC, lenD; // 读取四个选项 fgets(A, 610, stdin); A[strcspn(A, "\n")] = '\0'; lenA = strlen(A); fgets(B, 610, stdin); B[strcspn(B, "\n")] = '\0'; lenB = strlen(B); fgets(C, 610, stdin); C[strcspn(C, "\n")] = '\0'; lenC = strlen(C); fgets(D, 610, stdin); D[strcspn(D, "\n")] = '\0'; lenD = strlen(D); // 计算四个选项的长度 int lengths[4] = {lenA, lenB, lenC, lenD}; // 找最短和最长的选项 int min_len = lenA, max_len = lenA; int min_count = 0, max_count = 0; int min_index = 0, max_index = 0; // 找出最短的长度和个数 for (int j = 0; j < 4; j++) { if (lengths[j] < min_len) { min_len = lengths[j]; } } for (int j = 0; j < 4; j++) { if (lengths[j] == min_len) { min_count++; min_index = j; // 记录最后一个最短的索引 } } // 找出最长的长度和个数 for (int j = 0; j < 4; j++) { if (lengths[j] > max_len) { max_len = lengths[j]; } } for (int j = 0; j < 4; j++) { if (lengths[j] == max_len) { max_count++; max_index = j; // 记录最后一个最长的索引 } } // 判断规则 if (min_count == 1 && max_count != 1) { // 三长一短:只有一个最短的,且没有只有一个最长的 printf("%c\n", 'A' + min_index); } else if (max_count == 1 && min_count != 1) { // 三短一长:只有一个最长的,且没有只有一个最短的 printf("%c\n", 'A' + max_index); } else { // 参差不齐:其他情况都选C printf("C\n"); } } return 0; }