有以下函数 int fun(char *s) {  char *t=s;  while(*t++);  return(t

题目
单选题
有以下函数 int fun(char *s) {  char *t=s;  while(*t++);  return(t-s); } 该函数的功能是(  )。
A

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

B

比较两个字符串的大小

C

计算s所指字符串的长度

D

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

参考答案和解析
正确答案: A
解析:
本题中,首先让t指向形参s,然后通过一个循环体为空的while循环,将t逐次后移,直到其所指内容为'\0'(字符串结束标志)。此时t仍然会被增1,所以从循环出来,t指向的是s所指字符串的结束标志的后一个字节。因此,返回的t-s是s所指字符串占用内存字节的个数,A项正确。而C项所说的长度并不包括字符串结束标志位,错误。答案选择A选项。
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

有以下程序include <stdio.h>int fun(char s[]){ int n=0;while(*s<='9'&&am

有以下程序

#include <stdio.h>

int fun(char s[])

{ int n=0;

while(*s<='9'&&*s>='0') {n=10*n+*s-'0';s++;}

return(n);

}

main()

{ char s[10]={ '6', '1', '*', '4', '*', '9', '*', '0', '*'};

printf("%d\n",fun(s));

}

程序运行的结果是

A ) 9

B ) 61490

C ) 61

D ) 5


正确答案:C

第2题:

有以下程序

#include <stdio.h>

void fun(char *a,char *b)

{ while(*a=='*') a++;

while(*b=*a) {b++;a++;}

}

main( )

{ char *s="****a*b****",t[80];

fun(s,t); puts(t);

}

程序的运行结果是

A)*****a*b

B) a*b

C) a*b****

D) ab


正确答案:C

第3题:

有以下函数

int fun(char *s)

{ char *t=s;

while(*t++);

return(t-s);

}

该函数的功能是

A) 比较两个字符 串 的大小

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

C) 计算 s 所指字符串的长度

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


正确答案:B

第4题:

有以下函数 int fun(char *s) { char *t=s; while(*t++); return(t-s); } 该函数的功能是

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

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

C.计算s所指字符串的长度

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


正确答案:B
解析:循环语句while(*t++);执行完时,指针变量t就指向了字符中结束符‘\o’之后的位置,所以语句return(t-s);返回的就是字符串s所用内存的字节个数。

第5题:

有以下函数

int aaa(char *s)

{ char *t=s;

while(*t++);

t--;

return(t-s);

}

以下关于aaa函数的功能的叙述正确的是

A.求字符串s的长度

B.比较两个串的大小

C.将串s复制到串t

D.求字符串s所占字节数


正确答案:A
解析:循环开始前,指针t和s都指向字符串的起始位置,然后通过while循环判断t指向的位置是否为空,同时让t向右移动一位。while循环结束时,t自减1,此时t指向的位置是字符串的结束标志'\0'处,故t-s的值是字符串的长度,并不包括结束标志。

第6题:

38) 有以下程序:

#include <stdio.h>

void fun(char *t,char *s)

{ while(*t!=0) t++;

while((*t++=*s++)!=0);

}

main()

{ char ss[10]= " acc " ,aa[10]= " bbxxyy " ;

fun(ss,aa);

printf( " %s,%s\n " ,ss,aa);

}

程序运行结果是

A)accxyy,bbxxyy

B)acc, bbxxyy

C)accxxyy,bbxxyy

D) accbbxxyy,bbxxyy


正确答案:D

第7题:

以下与库函数strcmp(char *s, chat *t)的功能相等的程序段是()。

A.strcmp1(char *s, chat *t)

{ for ( ;*s++==*t++ ;)

if (*s=='\0') return 0

return (*s-*t)

}

B.strcmp2(char *s, char *t)

{ for( ;*s++==*t++ ;)

if (!*s) return0

return (*s-*t)

C.strcmp3(char *s, char *t)

{ for ( ;*t==*s ;)

{ if (!*t) return 0

t++

s++}

return (*s-*t)

}

D.strcmp4(char *s, char *t)

{ for( ;*s==*t;s++,t++)

if (!*s) return 0

return (*t-*s)

}


答案:C

第8题:

有以下函数

int aaa(char *s)

{ char *t=s;

while(*t++);

t--;

return(t-s);

}

以下关于 aaa 函数的功能叙述正确的是

A) 求字符串s 的长度

B) 比较两个串的大小

C) 将串s 复制到串t

D) 求字符串s 所占字节数


正确答案:A

第9题:

有以下程序includevoidfun(char*t,char*s){while(*t!=0)t++;while((*t++=*s++)!=0);}m

有以下程序 #include <stdio.h> voidfun(char*t,char*s) {while(*t!=0) t++; while((*t++=*s++)!=0); } main() {char ss[10]="acc",aa[10]="bbxxyy"; fun(ss,aa); printf("%s,%s\n",ss,aa); } 程序的运行结果是

A.accxyy,bbxxyy

B.acc,bbxxyy

C.accxxyy,bbxxyy

D.accbbxxyy,bbxxyy


正确答案:D
解析: 本题中fun函数实现丁字符串函数str-eat的功能,将字符串aa连接到字符串ss的末尾。调用fun函数时,形参t和s分别指向了字符串ss和aa,然后通过一个while循环使t指向字符串ss的结束符的位置,第二个while循环将字符串aa中的字符(包括结束符'\0')逐个复制到字符串ss的末尾处。

第10题:

有以下程序

#include <stdio.h>

void fun(char *t,char *s)

{ while(*t!=0) t++;

while((*t++=*s++)!=0);

}

main()

{ char ss[10]="acc",aa[10]="bbxxyy";

fun(ss,aa); printf("%s,%s\n",ss,aa);

}

程序的运行结果是

A.accxyy,bbxxyy

B.acc,bbxxyy

C.accxxyy,bbxxyy

D.accbbxxyy,bbxxyy


正确答案:D
解析:本题中fun函数实现了字符串函数strcat的功能,将字符串aa连接到字符串ss的末尾。调用fun函数时,形参t和s分别指向了字符串ss和aa,然后通过一个while循环使t指向字符串ss的结束符的位置,第二个while循环将字符串aa中的字符(包括结束符'\0')逐个复制到字符串ss的末尾处。

更多相关问题