下面函数的功能应该是:删除字符串str中所有与变量ch相同的字符,并返回删除后的结果,例如:若str=”ABCDABCD”,ch=”B”,则函数的返回值为:”ACDACD”Function delchar(str As String,ch As String)As StringDim kAs Integer,temp As String,ret As Stringret=””For k=1 To Len(str)temp=Mid(str,k,1)If temp=ch Thenret=ret&tempEnd

题目

下面函数的功能应该是:删除字符串str中所有与变量ch相同的字符,并返回删除后的结果,例如:若str=”ABCDABCD”,ch=”B”,则函数的返回值为:”ACDACD”

Function delchar(str As String,ch As String)As String

Dim kAs Integer,temp As String,ret As String

ret=””

For k=1 To Len(str)

temp=Mid(str,k,1)

If temp=ch Then

ret=ret&temp

End If

Next k

delchar=ret

End Function

但实际上函数有错误,需要修改,下面的修改方案中正确的是( )。

A.把ret=ret&temp改为ret=temp

B.把If temp=ch Then改为Iftemp<>ch Then

C.把delchar=ret改为delchar=temp

D.把ret=””改为temp=””


相似考题
更多“下面函数的功能应该是:删除字符串str中所有与变量ch相同的字符,并返回删除后的结果,例如:若str=” ”相关问题
  • 第1题:

    假定输人的字符串中只包含字母和*号。请编写函数proc,它的功能是:将字符串中 的前导*号全部删除,中间和后面的*号不删除。 例如,若字符串中的内容为****a*bc*def*g****,删除后,字符串中的内容则 应当是a*bc*def*g****。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数proc的花括号中填入所编 写的若干语句。 试题程序: include<stdio.h> include<conio.h> void proc(char*str) { } void main { char str[81]; printf("Enter a string:kn"); gets(str); proc(str); printf("The string after deleted:kn"); puts(str);}


    正确答案:
    void proc(char * str)
    {
    char*p=str;
    while(* p= =*)p++;//通过p的移动来达到使p指向第一个不是*号的字符
    for(;* p!=\0;p++,str++)//把从第一个不是*号的字符放到a中
    * str=* P:
    * str=\0;//最后用\0作为字符串结束标志
    }
    【解析】题目中要求将字符串中的前导*号全部删除,首先将指针P移动到第一个不是*的字符,将指针P之后的字符放入原来的字符串中,并为新的字符串添加结束符。

  • 第2题:

    以下函数fun的功能是返回str所指字符串中以形参c中字符开头的后续字符串的首地址,例如,str所指字符串为Hello!,c中的字符为e,则函数返回字符串ello!的首地址。若str所指字符串为空或不包含c中的字符,则函数返回NULL,请填空。char *fun(char *str,char c){ int n=0; char *p=str; if(p!=NULL) while(p[n]!=c&&p[n]!=’\0’) n++; if(p[n]==’\0’) return NULL; return();}


    正确答案:p+n
    在本题中,函数fun的功能是返回str所指字符串中以形参c中字符开头的后续字符串的首地址。
    在本题的程序中,fun函数带有两个形参,其中一个是指针str,它指向字符串的首地址,另一个是字符变量c。程序首先定义了一个整型变量n,从程序中可知,它是字符串str中参数c相对于首地址的偏移量,然后定义了一个指针变量p,指向字符串str的首地址,然后执行条件语句,如果字符串不为空,则执行循环语句,循环结束的条件是要么字符串结束,要么找到形参c中对应的字符。根据循环结束的条件我们可以判断,其非死循环,循环结束后,从程序中可以看出,判断循环结束的原因是否因为字符串结束而结束的,如果是,说明没找到形参c中对应的字符,返回NULL。
    如果不是,则说明是因为找到了形参c中对应的字符而结束循环的。根据题目要求,需要返回以形参c中字符开头的后续字符串的首地址,而这时以形参c中字符开头的后续字符串的首地址为p+n。

  • 第3题:

    下面函数的功能应该是:删除字符串str中所有与变量ch相同的字符,并返回删除后的结果。例如:若str="ABCDABCD",ch="B",则函数的返回值为:"ACDACD"

    Function delchar(str As String,ch As String)As String

    Dim k As Inlegcr,temp As String,ret As String

    ret=""

    For k=1 To Len(str)

    temp=Mid(str,k,1)

    If temp=ch Then

    ret=ret&temp

    End If

    Next k

    delchar=ret

    En d Function

    但实际上函数有错误,需要修改,下面的修改方案中正确的是( )。

    A.把ret=ret&temp改为ret=temp

    B.把If temp=ch Then改为If temp<>ch Then

    C.把delchar=ret改为delchar=temp

    D.把ret=""改为temp=""


    正确答案:B
    B。【解析】Mid函数用于提取字符串中的指定位数。Len函数的作用是返回串的长度。本题中,Fork=1ToLen(str),语句的作用是每次循环提取str串中的一个字符,语句temp=Mid(str,k,1)的作用是将提取的字符存入字符变量temp中,然后将temp和用户欲删除的字符做比对,若不同,则将此字符插入的字符串ret的末尾。循环结束ret中保存的就是不包含用户欲删除字符的字符串,也就是题目要求的字符串了。所以选B。

  • 第4题:

    下面函数的功能应该是:删除字符串str中所有与变量ch相同的字符,并返回删除后的结果。例如:若str="ABCDABCD",ch="B",则函数的返回值为:"ACDACD" Function delchar(str As String,ch As String)As String Dim k As Inlegcr,temp As String,ret As String ret="" For k=1 To Len(str) temp=Mid(str,k,1) If temp=ch Then ret=ret&temp End If Next k delchar=ret En d Function 但实际上函数有错误,需要修改,下面的修改方案中正确的是( )。

    A.把ret=ret&temp改为ret=temp

    B.把If temp=ch Then改为If temp<>ch Then

    C.把delchar=ret改为delchar=temp

    D.把ret=""改为temp=""


    正确答案:B
    B。【解析】Mid函数用于提取字符串中的指定位数。Len函数的作用是返回串的长度。本题中,Fork=1ToLen(str),语句的作用是每次循环提取str串中的一个字符,语句temp=Mid(str,k,1)的作用是将提取的字符存入字符变量temp中,然后将temp和用户欲删除的字符做比对,若不同,则将此字符插入的字符串ret的末尾。循环结束ret中保存的就是不包含用户欲删除字符的字符串,也就是题目要求的字符串了。所以选B。

  • 第5题:

    请补充fun()函数,该函数的功能是:把字符的ASCII码中为奇数的字符从字符串str中删除,结果仍然保存在字符串str中,字符串str从键盘输人,其长度作为参数传人fun()函数。

    例如,输入“abcdef”,则输出“bdf”。

    注意:部分源程序给出如下。

    请勿改动main()函数和其他函数中的任何内容,仅在mare()函数的横线上填入所编写的若干表达式或语句。

    试题程序:


    正确答案:


    【解析】先判断ASCⅡ码的奇偶。
    第一空:根据主函数“fun(str,len);”调用语句,其中len为字符串str的长度,用来控制循环。根据主函数中对应的调用语句,补全fun()函数定义,第一空填“fun(chars[],intn)”。
    第二空:“s[j++]=s[i];”语句中j的变量在使用前要对其取值进行初始化,因为数组下标是由0开始的,初始化值为0,所以第二空填“j-0”。
    第三空:新生成的字符串要加尾符标志,所以第三空填“s[j]=ˊ\0ˊ”。