问答题
下列给定程序中,函数fun的功能是:在形参s所指字符串中寻找与参数c相同的字符,并在其后插入一个与之相同的字符,若找不到相同的字符则不做任何处理。
例如,若s所指字符串为“baacda”,c中的字符为a,执行后s所指字符串为“baaaacdaa”。
请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include < stdio.h >
voicl fun(char*s,char c)
{ int i,j,n;
/*********found*********/
for(i=0;s[i]!=
【1】
;i++)
if(s[i]==c)
{
/*********found*********/
n=
【2】
;
while(s[i+1+n]!='/0')
n++;
for(j=i+n+l;j >i;
j一一)
s[j+1]=s[j];
/*********found*********/
s[j+1]一m;
i=i+l;
}
}
main()
{ char s[80]="baacda",c;
printf("inThe string:%s/n",s);
printf("/nInput a character:");
scani("%c",&c);
fun(s,c);
printf("/nThe result is:%s/n",s);
}
【正确答案】正确答案:(1)'/0' (2)0 (3)c
【答案解析】解析:填空1:for语句循环条件是判断是否到达字符串结尾,即当前字符是否为‘/0’。 填空2:while语句用以确定字符串的长度,所以变量n赋初值为0。 填空3:题目要求如果找到与参数c相同的字符,就在后面插入一个相同的字符,且找到后应该给数组元素赋值,本题目给出参数为c。