更多“以下函数的功能是删除字符串s中的所有数字字符,请填空。void dele(char *s){ int n=0,i; for(i=0; ”相关问题
  • 第1题:

    以下程序的功能是输出a数组中所有字符串,请填空。

    #include <stdio.h>

    main( )

    { char *a[ ]={”ABC”,”DEFGH”,”IJ”,”KLMNOP”};

    int i=0;

    for(;i<4; i++) printf(”%s\n【 13 】 );

    }


    正确答案:
    【答案】a[i]
    【知识点】指针数组的使用
    【解析】在指针数组中,a[i]即为二维数组的行指针,即每个字符串的首地址。

  • 第2题:

    下列给定程序中,函数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);

    }


    正确答案:(1)错误;s[j]=s[i]; 正确:s[j++]=s[i]; (2) 错误:s[j]="\0"; 正确:s[j]='\0';
    (1)错误;s[j]=s[i]; 正确:s[j++]=s[i]; (2) 错误:s[j]="\0"; 正确:s[j]='\0'; 解析:有循环条件if(s[i]>='0'&&s[i]='9')以及题目要求“依次取出字符串中所有的数字字符”可知,s[j]=s[i];表述错误。s[j]="\0";中是一个常识性语法错误,学习者只要在平时训练的时候注意一下就可以了。

  • 第3题:

    下面程序段的功能是将字符串s中所有的字符c删除,请填空()。 char s[80]; int i,j; gets(s); for(i=j=0;s[i]!='0';i++) if(s[i]!='c') (); s[j]='0'; puts(s);


    C

  • 第4题:

    以下程序用以删除字符串中所有的空格,请填空。

    inculde <stdio.h>

    main()

    { char s[100]=(“our teacher teach c language!”);int I,j;

    For(i=j=0;s[i]!=’’)

    iF(s[i];s[i]!=’\0’) {s[j]=s[i];j ++}

    s[j]=【 】

    printF(“index=%d\n”,s-a);

    }


    正确答案:‘\0’
    ‘\0’ 解析:程序使用变量i遍历字符数组s中的所有字符,使用变量j存放非空格字符。当将所有的非空格字符重新存放到字符数组s中后,应添加字符串结束标志'\0'。

  • 第5题:

    下列给定程序中,函数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:字符串的结束标志符为字符,而不是字符串。