niusouti.com

下列给定程序中,函数fun()的功能是:依次取出字符串中所有的数字字符,形成新的字符串,并取代原字符串。请改正函数fun()中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:include <stdio.h>include <conio.h>void fun(char *s){int i,j;for(i=0,j=0; s[i]!= '\0'; i++)if(s[i]>= '0'&&s[i]<= '9')/*************found****

题目

下列给定程序中,函数fun()的功能是:依次取出字符串中所有的数字字符,形成新的字符串,并取代原字符串。

请改正函数fun()中的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

include <stdio.h>

include <conio.h>

void fun(char *s)

{int i,j;

for(i=0,j=0; s[i]!= '\0'; i++)

if(s[i]>= '0'&&s[i]<= '9')

/*************found**************/

s[j]=s[i];

/*************found**************/

s[j]="\0";

}

main()

{char item[80];

clrscr();

printf("\nEnter a string: ");gets(item);

printf("\n\nThe string is:\%s\n", item);

fun(item);

printf("\n\nThe string of changing is :

\%s\n",item);

}


相似考题
更多“下列给定程序中,函数fun()的功能是:依次取出字符串中所有的数字字符,形成新的字符串,并取代原字 ”相关问题
  • 第1题:

    下列给定程序中,函数fun()的功能是:依次取出字符串中所有的字母,形成新的字符串,并取代原字符串。

    请改正程序中的错误,使它能得到正确结果。

    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

    试题程序:

    include<stdio.h>

    include<conio.h>

    void fun(char*S)

    {

    int i,j;

    for(i=0,j=0;s[i]! ='\0';i++)

    /*************found************/

    if((s[i]>='A'&&s[i]<='Z')&&(s[i]>= 'a'&&S[i]<='z',))

    s[j++]=s[i];

    /*************found*************/

    s[j]=“\0”;

    }

    main()

    {

    char item[80];

    clrscr();

    printf(“\nEnter a string:”);

    gets(item);

    printf(“\n\nThe string is:\%S\n",item);

    fun (item);

    printf("\n\nThe string of changing

    is:\%S\n",item);

    }


    正确答案:(1)错误:if(s[i]>='A'&&s[i]='Z')&&(s[i]>='a'&&s[i]='z')) 正确:if((s[i]>='A'&&s[i]='Z')||s[i]>='a'&&s[i]='z')) (2) 错误:s[j]="\0" 正确:s[j]='\0'
    (1)错误:if(s[i]>='A'&&s[i]='Z')&&(s[i]>='a'&&s[i]='z')) 正确:if((s[i]>='A'&&s[i]='Z')||s[i]>='a'&&s[i]='z')) (2) 错误:s[j]="\0" 正确:s[j]='\0' 解析:错误1:字母包括小写字母和大写字母,这里是“或”的关系,所以用“||”运算符。错误2:字符串的结束标志符为字符,而不是字符串。

  • 第2题:

    给定程序MODll.C中函数fun的功能是:将s所指字符串的正序和反序进行连接,形成一个新串放在t所指的数组中。

    例如,当s所指字符串为:“ABCD”时,则t所指字符串中的内容应为:“ABCDDCBA”。

    请改正程序中的错误,使它能得出正确的结果。

    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!


    正确答案:(1)void fun(char*s char*t) (2)t[2*d]=‘\0’;
    (1)void fun(char*s, char*t) (2)t[2*d]=‘\0’; 解析:本题中函数的功能是将字符串的正序和反序进行连接。题目中首先由字符串的起始位置正序取字符,然后再由串尾逆序取字符,实现正序和逆序的连接。

  • 第3题:

    下列给定程序中,函数proc()的功能是:依次取出字符串中所有的数字字符,形成新的字符串,并取代原字符串。 例如原始字符串是“ab45c6djfd789”,则输出后的字符是“456789”。 请修改函数proc()中的错误,使它能得出正确的结果。 注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。 试题程序:


    正确答案:

  • 第4题:

    给定程序MODll.C中函数fun的功能是:在字符串的最前端加入n个*号,形成新串,并且覆盖原串。

    注意:字符串的长度最长允许为79。

    请改正函数fun中指定部位的错误,使它能得出正确的结果。

    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!


    正确答案:(1)p=s; (2)while(*p++);
    (1)p=s; (2)while(*p++); 解析:在字符串的最前端加入n个“*”号,形成新串,并且覆盖原串。然后通过“printf("\nThe string atler insert:\"%s\"、n",s);”函数直接输出结果。

  • 第5题:

    规定输入的字符串中只包含字母和*号。编写函数fun,其功能是:删除字符串中所有的*号。编写函 数时,不得使用c语言提供的字符串函数。 例如,字符串中的内容为:****A*BC*DEF * G*******删除*后字符串中的内容应当 是:ABCDEFG。 注意:部分源程序在文件PROGl.C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。


    正确答案:


    【考点分析】
    要删除字符串中所有*号需要用循环语句遍历字符串,用
    判断语句判断字符是否为*号,由此可以决定该程序应使用循
    环判断结构。
    【解题思路】