2011年计算机二级C语言十套上机题12
3. 编程题 请编写一个函数fun(),它的功能是:比较两个字符串的长度,(不得调用C语言提供的求字符串长度的函数),函数返回较短的字符串。若两个字符串长度相等,则返回第1个字符串。 例如,输入nanjing 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include char *fun(char *s, char *t) { } main() { char a[20],b[10],*p,*q; int i; printf("Input 1th string: "); gets(a); printf("Input 2th string: "); gets(b); printf("%s",fun(a,b)); }答案及评析: char *fun(char *s, char *t) {int i,j; for(i=0;s[i]!= ’ ’;i++); /*求字符串的长度*/ for(j=0;t[j]!= ’ ’;j++); if(i<=j) /*比较两个字符串的长度*/ return s; /*函数返回较短的字符串,若两个字符串长度相等,则返回第1个字符串*/ else return t; } 【解析】本题中,第1个for循环的作用是求出s的字符个数i,第2个for循环的作用是求出t的字符个数j,因为任何循环都要控制一条语句,所以在每一个for循环条件后面必须要有一个分号。 本题也可用如下技巧: #include char *fun(char *s,char *t) { if(strlen(s)>=strlen(t) return s; else return t; } 相关资料 |