填空题 请补充函数fun,该函数的功能是比较字符串str1和str2的大小,井返回比较的结果。 例如: 当str1=“cdef",str2=“cde”时,函数fun()返回“>”。 注意:部分源程序给出如下。 请勿改动主函数main 和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。 试题程序: # include< stdio, h> #include<conio. h> #define N 80 char *fun (char *str1,char *str2) { char *p1=str1, *p2=str2; while (*p1 & & *p2 ) { if ({{U}} 【1】 {{/U}}) return "<"; if({{U}} 【2】 {{/U}}) return ">"; p1++; p2++; } if (*p1=*p2) return "=="; if (*p1=={{U}} 【3】 {{/U}}) return "<"; else return ">"; } main() { char str1 [N], str2 [N]; clrscr (); printf ("Input str1: /n"); gets (str1); printf ("Input str2: /n"); gets (str2); printf ("/n*****the result*****/n"); printf ("/nstr1 %s str2", fun (str1, str2) ); }
  • 1、
【正确答案】 1、[1] *p1<*p2 [2] *p1>*p2 [3] ‘/0’    
【答案解析】[解析] 填空1:比较两个字符串的大小,是从第一个字符开始比较,如果两字符不相等,则由字符的大小决定字符串 P2指向字符串str2,如果p1所指的字符小于p2所指的字符,则字符串str1小于字符串str2。填空2:如果p1所指的字符大于p2所指的字符,则字符串str1 大于字符串str2。填空3:如果str1是str2 的前一部分,则str1 的所有字符都等于str2 中的对应字符,而字符串结束标记符‘/0’小于其他字符,所以,这里如果p1所指的字符等于‘/0’,则表示字符串str1小于字符串str2。