给定程序中,函数fun的功能是:在形参s所指字符串中寻找与参数c相同的字符,并在其后插入一个与之相同的字符,若找不到相同的字符则函数不做任何处理。 例如,s所指字符串为:baacda,c中的字符为:a,执行后s所指字符串为:baaaacdaa。

admin2013-04-02  15

问题 给定程序中,函数fun的功能是:在形参s所指字符串中寻找与参数c相同的字符,并在其后插入一个与之相同的字符,若找不到相同的字符则函数不做任何处理。
    例如,s所指字符串为:baacda,c中的字符为:a,执行后s所指字符串为:baaaacdaa。
    请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
    注意:源程序存放在考生文件夹下的BLANKI.C中。
    不得增行或删行,也不得更改程序的结构!
#include
void fun(char *s, char c)
{int i, j, n;
/**********found**********/
  for(i=0; s!=【1】; i++)
     if(s==c)
     {
/**********found**********/
        n=【2】;
        while(s[i+1+n]!=’\0’) n++;
        for(j=i+n+1; j>i; j--) s[j+1]=s[j];
/**********found**********/
        s[j+1]=【3】;
        i=i+1;
     }
}
main()
{char s[80]="baacda", c;
   printf("\nThe string: %s\n",s);
   printf("\nInput a character: "); scanf("%c",&c);
   fun(s,c);
   printf("\nThe result is: %s\n",s);
}

选项

答案0 0 c

解析 第一空:“for(i=0; s!=___1___; i++)”循环从第一个字符到最后一个字符逐个搜索,字符串以“\0”结束,因此循环的结束条件是s!=’\0’,故第一空处应为“0”或’\0’。
第二空:显然“while(s[i+1+n]!=’\0’)n++;”n是记录s[i+1]后面的字符数量,在n计数之前,需要对n赋初值,即第二空处应为“0”。
第三空:在“for(j=i+n+1; j>i; j--)s[j+1]=s[j];”循环结束时j=i,即s[j+1]是s之后的字符,在此位置插入字符c,所以第三空是“c”。
转载请注明原文地址:https://kaotiyun.com/show/bDJp777K
0

最新回复(0)