niusouti.com

有下列程序:#include<stdi0.h>voidfun(char*a,char*b){while(*a==*)a++;while(*b=*a){b++;a++;}}voidmain( ){char*s="*****a*b****",t[80];fun(s,t);puts(t)}程序的运行结果是( )。A.*****a*bB.a*bC.a*b****D.ab

题目

有下列程序:

#include<stdi0.h>

voidfun(char*a,char*b)

{

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

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

}

voidmain( )

{

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

fun(s,t);puts(t)

}

程序的运行结果是( )。

A.*****a*b

B.a*b

C.a*b****

D.ab


相似考题
参考答案和解析
正确答案:C
C。【解析】在程序的主函数中main定义了一个指向字符串的指针和一个字符数组,然后调用fun(s,t),在fun中第一个while语句判断*a中的值为“*”时继续扫描,如果不是“*”终止,第二个while循环,将*a中从“a”开始的后续所有字符都赋予*b,也就是t[0]中的内容为“a*b****”,所以此时的运行结果为选项C。
更多“有下列程序: #include&lt;stdi0.h&gt;voidfun(char*a,char*b){while(*a==&#39;*&#39;)a++; while ”相关问题
  • 第1题:

    有以下程序 include void fun(char *t, char *s) { whil

    有以下程序 #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); printff"%s,%s\n", ss,aa); 程序的运行结果是

    A.accxyy, bbxxyy

    B.acc, bbxxyy

    C.accxxyy, bbxxyy

    D.accbbxxyy, bbxxyy


    正确答案:D
    解析:函数fun()中,前一个while循环的作用是:如果形参指针t所指内容不为0,则让t增1,直到它指向0。后一个 while循环的作用是:将s所指内容赋给t所指地址,然后两者同时增1,直到赋给t的内容为0。由此可见,函数fun()的作用就是将形参s所指字符串连接到形参t所指字符串末尾,相当于库函数中的strcat()。主函数中使用fun()将数组aa中的字符串连接到了数组ss中原有字符串之后,所以执行完后,ss中的字符串为"accbbxxyy"。故最终输出的结果是:accbbxxyy,bbxxyy,应该选择D。

  • 第2题:

    有下列程序:includevoid fun(char *a, char *B){while(*a=='*')a++;while(*b=*A){b++;

    有下列程序: #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
    解析:主函数main()定义了指向字符串的指针和一个字符数组,接着调用fun(s,t)函数,进行实参向形参传递,函数fun()第一个 while语句判断*a中的值为“*”时继续扫描,当遇到不是“*”时结束,接着第二个while循环语句,将*a中从“a”开始的后续所有字符都赋予*b,也就是t[80]中的内容为“a*b****”,所以此题的运行结果为选项C)。

  • 第3题:

    有下列程序: #include<stdi0.h> voidfun(char*a,char*b) { while(*a==*)a++; while(*b=*a){b++;a++;} } voidmain( ) { char*s="*****a*b****",t[80]; fun(s,t);puts(t) } 程序的运行结果是( )。

    A.*****a*b

    B.a*b

    C.a*b****

    D.ab


    正确答案:C
    C。【解析】在程序的主函数中main定义了一个指向字符串的指针和一个字符数组,然后调用fun(s,t),在fun中第一个while语句判断*a中的值为“*”时继续扫描,如果不是“*”终止,第二个while循环,将*a中从“a”开始的后续所有字符都赋予*b,也就是t[0]中的内容为“a*b****”,所以此时的运行结果为选项C。

  • 第4题:

    有以下程序:includevoid fun(char *a,char*B){while(*a=='*')a++;while(*b=*A){b++;a+

    有以下程序: #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

  • 第5题:

    有以下程序 include void fun(char *t,char *s) { while(*t!=0) t++; while((*t++=*s

    有以下程序

    #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的末尾处。