首页 > 试题广场 >

下述程序的运行结果为( )。...

[单选题]
下述程序的运行结果为()
#include<stdio.h>
void abc(char*str) {
    int a, b;
    for(a = b = 0; str[a] != '\0'; a++)
    if(str[a] != 'c')
    str[b++] = str[a];
    str[b] = '\0';
}
int main() {
    char str [] = "abcdef";
    abc(str);
    printf("str[]=%s", str);
}


  • str[]=abdef
  • str[]=abcdef
  • str[]=a
  • str[]=ab
这题代码是真的坑人……
实际上它是这个样子
#include<stdio.h>
void abc(char* str)
{
    int a, b;
    for(a=b=0; str[a]!='\0'; a++) 
    {
        if(str[a]!='c') 
        {
            str[b++]=str[a];
        }
    }
    str[b]='\0';
}
int main()
{
    char str[]="abcdef";
    abc(str);
    printf("str[]=%s", str);
}


发表于 2019-08-26 16:27:54 回复(13)
这题目!!括号呢?按这样输出的是str[] = a啊
#include<stdio.h>

void abc(char*str)
{
    int a,b;
    for(a=0,b=0;str[a]!='\0';a++)
    {
        if(str[a] != 'c')
        str[b++] = str[a];
        str[b] = '\0';
    }
}
int main ()
{
    char str[] = "abcdef";
    abc(str);
    printf("str[]=%s",str);
    return 0;
}


发表于 2019-09-15 16:54:27 回复(0)
本来选a的,看着是个不定项选择,又硬着头皮选了个c
发表于 2020-09-30 14:39:01 回复(0)
哈哈哈哈,没大括号,滏!
发表于 2019-08-28 20:28:53 回复(3)
谁这么写代码怕不是要被人打死哟😅😅😅
发表于 2022-03-12 22:25:51 回复(0)
这道题的for循环包含的代码是
for(a=0,b=0;str[a]!='\0';a++)
    {
        if(str[a] != 'c')
        str[b++] = str[a];
    }
  for循环无括号就是包含一条语句,而if(str[a]!='c')语句没有;  所以这不是一条语句,直到str[b++] = str[a];  有分号,就包含到这里
发表于 2023-10-21 16:37:29 回复(0)
这道题的陷阱就是for循环里面的if条件不符合不会跳出for循环🤣,细心一点
发表于 2021-09-21 16:02:58 回复(0)
哪个神经病写的,格式都不整
发表于 2024-03-22 14:37:12 回复(0)
呃呃,这代码真的是
发表于 2023-03-23 14:49:11 回复(0)
abc该函数功能:去除字符c其他字符留下
发表于 2023-03-22 20:25:46 回复(0)
我铐,大意😭
发表于 2022-09-04 14:30:32 回复(0)
{}太重要了
发表于 2022-06-12 14:12:22 回复(0)
if和后面一句括在一起,结果会不一样吗?我预期是不会呐
发表于 2019-09-16 17:00:26 回复(0)
真的 我哭了 题目太坑了
发表于 2019-09-10 14:26:07 回复(0)