下列程序的运行结果为()。includevoidabc(char*str){int a,b,i,j;for(i=j=0;str[i]!='\下列程序的运行结果为( )。#include<stdio.h>voidabc(char*str){int a,b,i,j;for(i=j=0;str[i]!='\0';i++)if(str[i]!='a')str[j++]=str[j];str[j]='\0';}void main(){char Str[]="abcdef';abc(str);printf("str[

题目
下列程序的运行结果为()。includevoidabc(char*str){int a,b,i,j;for(i=j=0;str[i]!='\

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

#include<stdio.h>

voidabc(char*str)

{int a,b,i,j;

for(i=j=0;str[i]!='\0';i++)

if(str[i]!='a')

str[j++]=str[j];

str[j]='\0';

}

void main()

{char Str[]="abcdef';

abc(str);

printf("str[]=%s",str);

}

A.str[]=bcdef

B.str[]=abcdef

C.str[]=a

D.str[]=ab


相似考题
更多“下列程序的运行结果为()。#include<stdio.h>voidabc(char*str){int a,b,i,j;for(i=j=0;str[i]!='\ ”相关问题
  • 第1题:

    下列程序的运行结果为()。 include voidabc(char*str) {int a,b,i,j; for(i=j=0;str[i]

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

    #include<stdio.h>

    voidabc(char*str)

    {int a,b,i,j;

    for(i=j=0;str[i]!='\0';i++)

    if(str[i]!='a')

    str[j++]=str[j];

    str[j]='\0';

    }

    void main()

    {char Str[]="abcdef';

    abc(str);

    printf("str[]=%s",str);

    }

    A.str[]=bcdef

    B.str[]=abcdef

    C.str[]=a

    D.str[]=ab


    正确答案:A
    解析:本题考查函数调用时的参数传递。通过函数abc的执行,将字符串中的字母a去掉,保留剩下的。由于是通过指针调用,所以改变字符串的结果。

  • 第2题:

    阅读下列程序,当运行函数时,输入asd af aa z67,则输出为includeincludeine

    阅读下列程序,当运行函数时,输入asd af aa z67,则输出为 #include <stdio.h> #include <ctype.h> #inelude <string.h> int fun(char *str) { int i,j=0; for(i=0;str[i]!='\0';i++) if(str[i]!='')str[j++]=str[i]; str[j]='\0'; } main() { char str[81]; int n; printf("Input a string:"); gets(str); puts(str); fun(str); printf("%s\n",str); }

    A.asdafaaz67

    B.asd af aa z67

    C.asd

    D.z67


    正确答案:A
    解析:本题题意要求删除所有空格,即除了空格以外的其他所有字符都要留下。由于C语言中没有直接删除字符的操作,所以我们对于删除字符的操作都是采用“留下”字符的算法,以前的题目亦是如此。用str[i]从串头到串尾逐一走动,每走到一个字符都判断其是否为空格,若不是空格(注意在if()的单引号之间有一个空格),则将其保存str[j]中。注意 j的下标变化、初值及最后加串结束符“\0”。

  • 第3题:

    阅读下列程序,当运行程序时,输入asd af aa z67,则输出为()。includeint fun (char *str

    阅读下列程序,当运行程序时,输入asd af aa z67,则输出为( )。 #include <sldio.h> int fun (char *str) { int i,j=0; for(i=0;str[i]! ='\0';i++) if(str[i]! =") str[j++]=str[i]; str[j]='\0'; } main() { char str[81]; int n; printf("Input a string:"); gets(str); fun(str); printf("%s\n",str); }

    A.asdafaaz67

    B.asd af aa z67

    C.asd

    D.z67


    正确答案:A
    解析:本题题意是删除字符串中所有空格。由于C语言中没有直接删除字符的操作,所以删除字符的操作都是采用“留下”字符的算法来实现。从串头str[0]到串尾逐一比较,判断其是否为空格,若不是空格,则将其保存在str[j]中,最后加串结束符“\0”。

  • 第4题:

    阅读下列程序,当运行函数时,输入asd af aa z67,则输出为includeincludeinc

    阅读下列程序,当运行函数时,输入asd af aa z67,则输出为 #include<stdio.h> #include<ctype.h> #include<string.h> int fun(char*str) { int i,j=0; for(i=0;str[i]!='\0';i++) if(str[i]!='')str[j++]=str[i]; str[j]='\0'; } main() { char str[81]; int n; clrscr(); printf("Input a string:"); gets(str); puts(str); fun(str); printf("%s\n",str); }

    A.asdafaaz67

    B.asdafaaz67

    C.asd

    D.z67


    正确答案:A
    解析:本题题意要求删除所有空格,即除了空格以外的其他所有字符都要留下。由于C语言中没有直接删除字符的操作,所以我们对于删除字符的操作都是采用“留下”字符的算法,以前的题目亦是如此。用str[i]从串头到串尾逐一走动,每走到一个字符都判断其是否为空格,若不是空格(注意在if()的单引号之间有一个空格),则将其保存str[j]中。注意j的下标变化、初值及最后加串结束符'\0'。

  • 第5题:

    下列程序的运行结果为()。includevoid abc(char*str){int a,b,i,j; for(i=j=0;str[i]!=

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

    A.str[]=bcdef

    B.str[]=abcdef

    C.str[]=a

    D.str[]=ab


    正确答案:A
    解析:本题考查函数调用时的参数传递。通过函数abc的执行,将字符串中的字母a去掉,保留剩下的。由于是通过指针调用,所以改变字符串的结果。