更多“以下不能将a所指字符串正确复制到所指存储空间的是( )。A.AB.BC.CD.D ”相关问题
  • 第1题:

    以下不能将s所指字符串正确复制到t所指存储空间的是( )。

    A.do{*t++=*8++;}while(*s);

    B.for(i=0;t[i]=s[i];i++);

    C.while(*t=*s){t++;s++;}

    D.for(i=0,j=0;t[i++]=s[j++];);


    正确答案:A
    do{*t++=}S++;}while(*S);不能因为当*s=’、0。时,while(*s)跳出循环,这样字符串结束标志’、0’没有复制给}t,造成}t不完整。注意,*t++=*s++是先执行t=*s,然后才进行t=t+1,s=s+1。B、C、D都能将。\0’复制过去

  • 第2题:

    有以下函数:

    函数的功能是( )。

    A.将Y所指字符串赋给x所指存储空间

    B.查找x和y所指字符串中是否有

    C.统计x和y所指字符串中最前面连续相同的字符个数

    D.统计x和Y所指字符串中相同的字符个数


    正确答案:C
    本题中由循环条件可知遇到‘\0’或x与y所指的字符的值不等中的一个条件时就结束,所以功能是统计x和Y所指字符串中最前面连续相同的字符个数。

  • 第3题:

    有以下函数: fun(char *a, char *b) { while((*a!='\0')&&(*b!='\0')&&(*a==*b)) { a++; b++;} return(*a-*b); } 该函数的功能是( )。

    A.计算a和b所指字符串的长度之差

    B.将b所指字符串复制到a所指字符串中

    C.将b所指字符串连接到a所指字符串后面

    D.比较a和b所指字符串的大小


    正确答案:D
    解析:本题要求阅读的代码是一个函数,阅读之前先要看清函数的定义,该函数有两个参数,都是字符指针,这说明它接收的是两个字符串。该函数没有定义返回类型,C语言规定函数的返回类型为int时可以省略,所以切不可将其看成是无返回类型的void型函数,它是int型函数。函数体中除了返回语句外,只有一条while循环语句,该循环的循环条件为(*a!='\0')&&(*b!='\0')&&(*a==*B),即当a和b所指处都不是字符结束符'\0'并且a和b所指处的内容相等时执行循环。而循环体中只是简单地将指针a和b同时往后移动1位。循环结束后返回a所指内容减去b所指内容的差。换个角度去考虑,也就是说当字符串a或b中有一个结束了或者是它们的相同位置小有一个字符不同时,则返回该位置两个字符之差。若两者长度相同而且所有对应字符都相同的话,最后返回的是'\0-'\0'=0,否则的话就返回两个字符串第一对不相同的字符之差。这时应该可以看出来,这个函数实现的是对两个字符串的比较。所以,4个选项中D正确。

  • 第4题:

    有以下函数:

    该函数的功能是( )。

    A.tt-g s所指字符串的长度

    B.比较两个字符串的大小

    C.计算s所指字符串占用内存字节的个数

    D.将s所指字符串复制到字符串t中


    正确答案:A
    首先charss接受一个字符型数组的首地址并将这个首地址赋给另一个字符型指针char+t.while(}t++)不断循环直到}t为’、O’,再将t-1,这时字符指针t指向字符串的最后一个字符,又因为s指向字符数组的首地址即字符串的首地址所以retum(t—S)便是返回字符数组中字符串的长度。

  • 第5题:

    以下不能将s所指字符串正确复制到t所指存储空间的是( )。

    A.while(*t=*s){t++;s++;}

    B.for(i=0;t[i]=s[i];i++);

    C.do{*t++:*s++;}while(*s);

    D.for(i=0,j=0;t[i++]=s[j++];);


    正确答案:C
    解析:C项复制时没有复制结束串“\0”。