问题 单项选择题

以下C程序段的输出结果是 (30)
#include <stdio. h>
void abc(char *str)
int a, b;
for(a=b=0;str[a]!=’\O’;a++)
if(str[a]!=’c’)
str[b++]=str[a];
str[b]=’\O’;

void main()
char str[]="abcdef";
abc(str);
printf("str[]=%s",str);

A.str[]=a

B.str[]=ab

C.str[]=abdef

D.str[]=abcdef

答案

参考答案:C

解析:[要点解析] 本试题核心在于子函数的for循环。For循环将整个字符串中的字符处理一遍,每次处理时,函数的基本工作是将除字母c之外的字符重新赋值,然后a++,b++,继续处理下一个字符。对于字母c不赋值,且只有a++而b不变。可见for循环的目的只是将字母c剔除。

单项选择题
问答题 简答题