给定程序MODII.C中函数fun的功能是:逐个比较P、q所指两个字符串对应位置中的字符,把ASCII值大或相等的字符依次存放到c所指数组中,形成一个新的字符串。 例如,若主函数中a字符串为:aBCDeFgH,主函数中b字符串为:ABcd,则c中的

admin2013-04-02  36

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

选项

答案int k=0; aBCDeFgH

解析 (1)第一个标识下面的“int k=1;”在题目中要求将字符放在数组c,如果数组中有n个元素,应该从c[0]到c[n-1]。所以,应将k的初始化定义改为从0开始,即“int k=0;”。
(2)第二个标识下面的判断条件,是根据题目要求逐个比较两个数组对应字符的ASCII值的大小,所以判断条件应该是直到两个字符数组所有元素比较完毕,而不是数组对应元素不相等。
其中,该题主要考查变量的初始化,逻辑关系。
转载请注明原文地址:https://kaotiyun.com/show/ZDJp777K
0

最新回复(0)