itgle.com
更多“若有定义语句:char s[100],d[100];int j=0,i=0;且s中已赋字符串,请填空以实现拷贝。(注:不使用逗 ”相关问题
  • 第1题:

    以下函数的功能是删除字符串s中的所有数字字符,请填空。void dele(char *s){ int n=0,i;for(i=0; s[i];i++)if()s[n++]=s[i];s[n]=;}


    正确答案:(s[i]<48)&&(s[i]>57),’\0’
    在本题中,dele函数的功能是删除字符串s中所有的数字字符。删除字符串中的数字字符,首先要求我们能判断出字符串中哪些是数字字符,哪些是非数字字符。在C语言中,一般通过字符的ASCII码来判断,由于C语言中数字字符只有0~9,它们对应的ASCII码值范围是48~57,那么字符串中ASCII码值在48~57范围内的字符就是数字字符,否则就是非数字字符。
    在本题程序中,dele函数带有一个指针类型的形参,该指针变量指向需要操作的字符串,在循环体中,根据前面的分析,if语言的条件判断语句应该是判定当前所取字符是否为数字字符,从后面的程序分析可以知道,条件结果若为真,即保存当前字符串,说明当前字符为非数字字符,那么用表达式表示应该为(s[i]<48)&&(s[i]>57),当然,这个结果不是唯一的。
    循环结束后,程序执行第14空所在的程序语句,这个时候获得的字符串是一个去除了数字字符的字符串,我们不难发现这个时候数组的下标n指向所有元素的后一个元素,按照字符串存储的规定,在结束后需要一个结束标识符‘\0’,而本题中正好缺少这样一个标识符,因此,第14空的作用是为新字符串添加结束标识符‘\0’,答案为‘\0’。

  • 第2题:

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

    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'。

  • 第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题:

    若有定义语句:char s[100],d[100];int j=0,i=0;且s中已赋字符串,请填空以实现复制。(注:不使用逗号表达式)while(s[i]){d[j]=;j++;}d[j]=0;


    正确答案:s[i++]
    为了能实现字符串的复制,需要使字符数组s从头到尾依次遍历其所有的元素,所以应使用i的自增后置来实现。

  • 第5题:

    下面程序的功能是将字符串s中的字符c删除,请选择填空() #include <stdio.h> int main() {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); return 0; }

    A.s[j++]=s[i]

    B.s[++j]=s[i]

    C.s[i]=s[j]

    D.s[j]=s[i]


    s[j++]=s[i]