使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。在此程序中,函数fun的功能是:逐个比较p、q所指两个字符串对应位置上的字符,并把ASCII值大或相等的字符依次存放到c所指的数组中,形成一个新

admin2020-10-26  45

问题 使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。在此程序中,函数fun的功能是:逐个比较p、q所指两个字符串对应位置上的字符,并把ASCII值大或相等的字符依次存放到c所指的数组中,形成一个新的字符串。
    例如,若主函数中a字符串为“aBCDeFgH”,b字符串为“ABcd”,则c中的字符串应为“aBcdeFgH”。
    请改正程序中的错误,使它能得出正确的结果。
    注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构!
    #include<stdio.h>
    #include<string.h>
    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]=’’ABed’’,e[80]={’\0’};
    fun(a,b,e);
    printf(’’The string a:’’);puts(a);
    printf(’’The string b:’’);puts(b);
    printf(’’The result:’’);puts(c);
    }

选项

答案(1)int k=0; (2)while(*p||*q)

解析 (1)变量k存放数组c的下标,因此应初始化为0。
(2)while循环语句的循环条件是判断两个字符串是否到达结尾。
转载请注明原文地址:https://kaotiyun.com/show/7k3p777K
0

最新回复(0)