B040

01-程序填空题 田少松, 软件154 906浏览

所属年份:2011.9;2012.3

下列给定程序中,函数fun的功能是:在形参s所指字符串中寻找与参数c相同的字符,并在其后插入一个与之相同的字符,若找不到相同的字符则不做任何处理。
例如,若s所指字符串为”baacda”,c中的字符为a,执行后s所指字符串为”baaaacdaa”。
请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。

注意:部分源程序在文件BLANK1.C中。
不得增行或删行,也不得更改程序的结构中!

#include    <stdio.h>
void 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+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);
}

【参考答案】

(1) '\0'  
(2) 0  
(3) c

【考点分析】
本题考查:字符串结束标识’\0’;变量赋初值操作;数组元素赋值。
【解题思路】
填空1:for语句循环条件是判断是否到达字符串结尾,即当前字符是否为’\0’。
填空2:while语句用以确定字符串的长度,所以变量n赋初值为0。
填空3:题目要求如果找到与参数c相同的字符,就在后面插入一个相同的字符,所以找到后,应该给数组元素赋值,该题目给出参数为c。