就业数据资源平台
当前位置:首页 > C语言程序设计
2011年计算机二级C语言十套上机题12

2011年计算机二级C语言十套上机题12


3. 编程题


  请编写一个函数fun(),它的功能是:比较两个字符串的长度,(不得调用C语言提供的求字符串长度的函数),函数返回较短的字符串。若两个字符串长度相等,则返回第1个字符串。


  例如,输入nanjing <CR> nanchang <CR>(<CR>为回车键),函数将返回nanjing。


  注意:部分源程序给出如下。


  请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。


  试题程序:


  #include<stdio.h>


  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]!= '\0';i++); /*求字符串的长度*/


   for(j=0;t[j]!= '\0';j++);


   if(i<=j) /*比较两个字符串的长度*/


   return s; /*函数返回较短的字符串,若两个字符串长度相等,则返回第1个字符串*/


   else


   return t;


  }


  【解析】本题中,第1个for循环的作用是求出s的字符个数i,第2个for循环的作用是求出t的字符个数j,因为任何循环都要控制一条语句,所以在每一个for循环条件后面必须要有一个分号。


  本题也可用如下技巧:


  #include<string.h> /*一定要注意在最前面加#include<string.h>*/


  char *fun(char *s,char *t)


  {


  if(strlen(s)>=strlen(t)


   return s;


  else return t;


  }

就业数据资源平台