下列给定程序中,函数fun()的功能是逐个比较a,b两个字符串对应位置中的字符,把ASCII值小或相等的字符依次存放到c数组中,形成一个新的字符串。 例如:a中的字符串为fshADfg,b中的字符串为sdAEdi,则c中的字符串应为fdAADf。

admin2009-02-15  96

问题 下列给定程序中,函数fun()的功能是逐个比较a,b两个字符串对应位置中的字符,把ASCII值小或相等的字符依次存放到c数组中,形成一个新的字符串。
   例如:a中的字符串为fshADfg,b中的字符串为sdAEdi,则c中的字符串应为fdAADf。
   请改正程序中的错误,使它能得到正确结果。
   注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
   试题程序:
   #include  <stdio.h>
   #include  <strinq.h>
   void fun(char *p,char *q,char *c)
   {int k=0;
   while(*p || *q)
   /**********found**************/
        {  if  (*p<=*q)
               c[k]=*q;
           else c[k]:*p;
           if(*p)  p++;
           if(*q)q++;
   /**+**********found**************/
          k++
        }
   }
   main()
   {char a[10]="fshADfg",b[10]="sdAEdi",
              c[80]={’\0’);
      fun(a,b,c);
      printf("The string a:");puts(a);
      printf("The string b:");puts(b);
      printf("The result:");puts(c);
    }

选项

答案(1)错误:{if(*P<=*q) 正确:{if(*p>=*q) (2)错误:k++ 正确:k++;

解析 错误1:依题意,把ASCII值小或相等的字符存放到c数组中,故if语句的关系运算符应为“>=”。错误2:C语言规定,每个语句要用分号结束。
转载请注明原文地址:https://kaotiyun.com/show/FTID777K
0

最新回复(0)