有以下程序includesub1(char a,char B) {char c;c=a;a=b;b=c;}sub2(char *a,char B) {有以下程序 #include<stdio.h> sub1(char a,char B) {char c;c=a;a=b;b=c;} sub2(char *a,char B) {char c;c=*a;*a=b;b=c;} sub3(char *a,char *B) {char c;c=*a;*a=*b;*b=c;} main() { cha,a,b; a='

题目
有以下程序includesub1(char a,char B) {char c;c=a;a=b;b=c;}sub2(char *a,char B) {

有以下程序 #include<stdio.h> sub1(char a,char B) {char c;c=a;a=b;b=c;} sub2(char *a,char B) {char c;c=*a;*a=b;b=c;} sub3(char *a,char *B) {char c;c=*a;*a=*b;*b=c;} main() { cha,a,b; a='A';b='B';sub3(&a,&b) putchar(a);putchar(b); a='A';b='B';sub2(&a,b) ;putchar(a);putchar(b); a='A';b='B';sub1(a,b) ;putchar(a);putchar(b); } 程序运行后的输出结果是( )

A.BABBAB

B.ABBBBA

C.BABABA

D.BAABBA


相似考题
更多“有以下程序#include<stdio.h>sub1(char a,char B) {char c;c=a;a=b;b=c;}sub2(char *a,char B) { ”相关问题
  • 第1题:

    阅读下面程序: include void funl(char a,char b) { char c; c=a;a=b;b=C; } void f

    阅读下面程序:

    include<iostream.h>

    void funl(char a,char b)

    {

    char c;

    c=a;a=b;b=C;

    }

    void fun2(char &a,char b)

    {

    char c;

    c=a;a=b;b=c;

    }

    void fun3(char &a,char &b)

    {

    char c;

    c=a;a=b;b=C;

    }

    void main()

    {

    char a,b;

    a='A';b='B';

    funl(a,b);cout<<a<<b;

    a='A';b='B';

    fun2(a,b);cout<<a<<b;

    a='A';b='B';

    fun3(a,b);cout<<a<<b;

    }

    则该程序的输出为【 】。


    正确答案:ABBBBA
    ABBBBA

  • 第2题:

    下面程序的输出结果是( )。 include main() {static char a[]="china"; char*ptr=a; whi

    下面程序的输出结果是( )。 include<stdio.h> main() {static char a[]="china"; char*ptr=a; while(*ptr) {printf("%c",*ptr-32); ptr++; } }


    正确答案:CHINA
    CHINA

  • 第3题:

    有以下程序: include void funl (char * p){char * q; q=p; while( *q! ='\0') } (*q)

    有以下程序: #include <stdio.h>void funl (char * p){ char * q; q=p; while( *q! ='\0') } (*q) ++;q++;}mains( ){ char a[ ] = { "Program" } , * p; p = &a[3]; fun1 (p); printf("% s \n" ,a);}程序执行后的输出结果是( )。

    A.Prohsbn

    B.Prphsbn

    C.Progsbn

    D.Program


    正确答案:A
    解析:在main函数中,p=&a[3]说明指针p指向a数组的第4个字符(即字符'g');fun1中的q=p意味着指针q也指向了a数组的第4个字符。执行while语句,表达式(*q)++使'g'+1,使'g'变成了'h';表达式q++使q指向a[4]的起始地址。继续执行while语句,直到遇到'\0'结束循环,返回形参。最终得到的结果是从字符串"Program'的第4个字符开始,每个字符加1。

  • 第4题:

    有以下程序 include void fun(char **p) { ++p; printf("%s\n",*p);

    有以下程序 #include <stdio.h> void fun(char **p) { ++p; printf("%s\n",*p); } main() { char *a[]={"Moming","Afternoon","Evening","Night"}; fun(a); } 程序的运行结果是

    A.Afternoon

    B.fternoon

    C.Morning

    D.orning


    正确答案:A
    解析:本题主函数中定义了一个指针数组a,可以将它看成一个以字符指针为元素的一维数组。和—般的一维数组名能赋给同类型指针变量一样,该字符指针数组也可以赋给指向字符指针的指针(即字符型二级指针),所以数组名a可以用作函数fun()的实参。

  • 第5题:

    下列程序段的输出结果为( )。 include main() { static char a[]="language"; char *p;

    下列程序段的输出结果为( )。 #include<stdio.h> main() { static char a[]="language"; char *p; p=a; for(p=a;p<a+8;p+=2) putchar(*p); }

    A.language

    B.lnug

    C.有语法错误

    D.lang


    正确答案:B
    解析:本程序首先定义了静态字符数组a,然后将指针P指向数组a的首地址。第1次for循环,p=a,p指向数组的第1个元素,*p是取指针P所指地址的内容,输出1;第2次for循环,p=p+2,则p指向数组的第3个元素,*p是取指针p所指地址的内容,输出n;第3次for循环,p=p+2,则p指向数组的第5个元素,*p是取指针p所指地址的内容,输出u;第4次for循环,p=p+2,则p指向数组的第7个元素,*p是取指针p所指地址的内容,输出g,结束循环。

  • 第6题:

    以下程序的输出结果是【 】。includeincludechar*fun(char*0{ char *p--t;retur

    以下程序的输出结果是【 】。

    include <stdio.h>

    include <string.h>

    char *fun(char *0

    { char *p--t;

    return (p+strlen(t)/2);

    }

    main()

    { char *str="abcdefgh";

    str=ftm(str);

    puts(str);

    }


    正确答案:efgh
    efgh 解析:本题考查的知识点是:字符指针。题目中的fun()函数,通过strlen()库函数得到形参t所指字符串的长度。然后返回t所指字符串首地址值加上该长度值的一半。所以fun()函数的作用就是返回所给字符串的中间位置。故最后通过puts()输出的字符串为"efgh"。

  • 第7题:

    有下列程序: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)。

  • 第8题:

    下列程序输出的结果是()。includesub1(char a,char b){char c;c=a;a=b;b=c:}sub2(char*

    下列程序输出的结果是( )。 #include<stdio.h> sub1(char a,char b) {char c;c=a;a=b;b=c:} sub2(char*a,charb) {charc;c=*a;”a=b:b=c;} sub3(char*a,char*b) {char c;c=*a;”a=*b;*b=c:} void main() { char a,b; a='A';b='B';sub1(a,b);putchar(a);p

    A.ABABAB

    B.ABBBBA

    C.ABBABA

    D.ABABBA


    正确答案:B

  • 第9题:

    有以下程序: include include void f(char * s,char*t){char k; k=*s;*s=*

    有以下程序: #include <stdio.h>#include <string.h>void f(char * s,char*t){ char k; k=*s; *s=*t; *t=k; s++; t--; if( * s) f(s,t);}main( ){ char str[10] :"abedefg", * p; p = str + strlen(str)/2+1; f(p,p -2); printf( "% s \n" ,str);程序运行后的输出结果是( )。

    A.abcdefg

    B.gfedcba

    C.gbcdefa

    D.abedcfg


    正确答案:B
    解析:本程序的作用是将字符串str倒序。语句p=str+strlen(str)/2+1;将指针变量p指向字符'e'所在的存储单元,P-2指向字符,'c'所在的存储单元,在函数f中将这两个存储单元的内容交换,然后将f函数中指向字符'e'的指针变量s加1,指向字符'c'的指针变量t减1,继续将s和t指向的存储单元的内容进行交换,直到s指向的存储单元的内容为空为止。所以本题程序输出的结果是字符串"abcdefe”的倒序形式"gfedcba"。

  • 第10题:

    有以下程序:include char fun(char x,char y){if(x

    有以下程序: #include <stdio.h> char fun(char x,char y) { if(x<y) return x; return y; } main() { int a='9',b='8',c='7'; printf("%c\n",fun(fun(a,b),fun(b,c))); } 程序的执行结果是( )。

    A.函数调用出错

    B.8

    C.9

    D.7


    正确答案:D
    解析:函数fun的作用是返回较小的字符。在main函数中,fun(a,b)及fun(b,c)的值作为fun函数新的参数,返回a,b,c的较小值,结果为7。

  • 第11题:

    有以下程序:includevoid fun(char *a, char *b){ a=b;(*a)++;}main(){char c1='A',c2=

    有以下程序: #include <stdio.h> void fun(char *a, char *b) { a=b; (*a)++;} main() { char c1='A',c2='a',*p1,*p2; p1=&c1; P2=&c2; fun(p1,p2); printf("%c%c\n",c1,c2); } 程序运行后的输出结果是( )。

    A.Ab

    B.aa

    C.Aa

    D.Bb


    正确答案:A
    解析:本题中fun函数的形参是两个指向字符型数据的指针,其功能是把b赋给a,然后将a所指存储单元里的变量值加1。在main函数中,p1里存放的是c1的地址,p2里存放的是c2的地址,经函数调用fun(p1,P2)后,p2的值赋给了p1,使p1和p2都指向了c2,而(*a)++又使'a'的值加1变成了'b',所以此时c2的值为'b',而c1的值没变,仍为'A'。程序改变的是p1的地址和c2的值。

  • 第12题:

    以下程序的输出结果是【 】。includeincludechar*fun(char*t){ char *p=t;retur

    以下程序的输出结果是【 】。

    include <stdio.h>

    include <string.h>

    char *fun(char *t)

    { char *p=t;

    return (p+strlen(t)/2);

    }

    main()

    { char *str="abcdefgh";

    str=ftm(str);

    puts(str);

    }


    正确答案:
    efgh 解析:本题考查的知识点是:字符指针。题目中的fun()函数,通过strlen()库函数得到形参t所指字符串的长度。然后返回t所指字符串首地址值加上该长度值的一半。所以fun()函数的作用就是返回所给字符串的中间位置。故最后通过puts()输出的字符串为"efgh"。

  • 第13题:

    有以下程序: include point ( char * p) {p + = 3; }main( ) char b[4] = {'a','b','c

    有以下程序: #include <stdio.h>point ( char * p) { p + = 3; }main( ) char b[4] = {'a','b','c','d'} , *p=b; point(p); printf( "% c \n" , * p);

    A.a

    B.b

    C.c

    D.d


    正确答案:A
    解析:C函数的参数传递方式采用按值传递,不能通过调用函数改变形参指针本身的值,只能改变指针所指变量的值。调用point函数时,将实参指针p的值(b数组的首地址)传给了形参指针P,P+=3运算使形参指针指向字符d,但并不能改变main函数中p的值,所以本题正确答案应该是选项A)。

  • 第14题:

    下列程序输出的结果是()。includesub1(char a,char b){char c:c=a:a=b:b=c; }sub2(char

    下列程序输出的结果是( )。 #include<stdio.h> sub1(char a,char b) {char c:c=a:a=b:b=c; } sub2(char*a,char b) {char c:c=*a;”a=b;b=c;} sub3(char*a,char*b) {char c;c=*a;”a=*b;*b=c;} void main() { char a,b; a='A';b='B':sub1(a,b);putchar(a):putchar(b): a='A';b='B'; sub2(&a,b);putchar(a);putchar(b); a='A';b='B'; sub3(&a,&b);putchar(a);putchar(b); putchar('\n'); }

    A.ABABAB

    B.ABBBBA

    C.ABBABA

    D.ABABBA


    正确答案:B

  • 第15题:

    下列程序的输出结果是______。 #include sub1(char a,char b) {char c; c=a;a=b;b=c;} sub2(char* a,char b) {char c; c=*a;*a=b;b=c;} sub3(char* a,char*b) {char c; c=*a;*a=*b;*b=c;} { char a,b; a='A' ;b='B'; sub3 (&a, &b) ;putchar (a) ;putchar (b); a='A';b='B';sub2(&a,b);putchar(a);prtchar(b); a='A';b='B';sub1(a,b);putchar(a) ;putchar(b); }

    A.BABBAB

    B.ABBBBA

    C.BABABA

    D.BAABBA


    正确答案:A

  • 第16题:

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

  • 第17题:

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

  • 第18题:

    有以下程序 include main() { char a=4; printf("%d/n,a=a

    有以下程序 #include <stdio.h> main() { char a=4; printf("%d/n,a=a<<1); } 程序的运行结果是______。

    A.40

    B.16

    C.8

    D.4


    正确答案:C
    解析:“”是按位左移运算符,左移一位相当于该数乘以2,左移两位相当于该数乘以2的2次方,所以本题相当于将4乘以2,结果为8。

  • 第19题:

    请读程序: includde include void fun(char * s) {char a[10]; str

    请读程序: # includde<stdio.h> # include<string.> void fun(char * s) {char a[10]; strcpy(a,"STRING"); s=a; } main() { char*p; fun(p); print{("%s\n",p); } 上面程序的输出结果(表示空格) ( )

    A.STRING

    B.STRING

    C.STRING

    D.不确定的值


    正确答案:D

  • 第20题:

    下列程序输出的结果是()。includeun1(char a,char b){char c;c=a;a=b;b=c;}fun2(char*a

    下列程序输出的结果是( )。 #include<stdio.h> un1(char a,char b){char c;c=a;a=b;b=c;} fun2(char*a,char b){char c;c=*a;*a=b;b=c;} fun3(char*2,char*b){charc;c=*a;*a=*b;*b=c;} void main() { char a,b; a='A';b='B';funl(a,b);putchar(a);putchar(b);

    A.BABBAB

    B.ABBBBA

    C.ABBABA

    D.ABABBA


    正确答案:B
    解析: 由程序中的主函数main入手,分别调用funl,fun2,fun3函数,得出输出结果。其中,3个函数都是实现的两个形参的交换功能,只是值传递的方式不同,有的是引用,有的是传值。第一个函数中参数采用的是值传递的方式,形参的变化不影响实参。所以d调用funl后,实参a和b并没有交换,仍然是AB。第二个调用中,实参a采用的是地址,印传递的是地址,所以形参a的改变合影响实参a的值,即BB。同理,调用fun3后为BA。

  • 第21题:

    下列程序输出的结果是()。includefun1(char a,char b){char c;c=a;a=b;b=c;}fun2(char*

    下列程序输出的结果是( )。 #include<stdio.h> fun1(char a,char b){char c;c=a;a=b;b=c;} fun2(char*a,char b){char c;c=*a;*a=b;b=c;} fun3(char*a,char*b){char c;c=*a;*a=*b;*b=c;} void main() { char a,b; a='A';b='B';fun1(a,b);putchar(a);putchar(b); a='A';b='B';fun2(&a,b);putchar(a);putchar(b); a='A';b='B';fun3(&a,&b);putchar(a);putchar(b); putchar('\n'); } A) B)

    C) D)

    A.BABBAB

    B.ABBBBA

    C.ABBABA

    D.ABABBA


    正确答案:B
    解析:由程序中的主函数main入手,分别调用fun1,fun2,fun3函数,得到输出结果。其中,三个函数都是实现两个形参的交换功能,只是参数传递的方式不同,有的是地址。有的是传值。第一个函数中参数采用的是值传递的方式,形参的变化不影响实参。所以调用fun1后,实参a和b并没有交换,仍然是AB。第二个调用中,实参a采用的是地址,即传递的是地址,所以形参a的改变会影响实参a的值,即BB。同理,调用fun3后为BA。

  • 第22题:

    下列程序输出的结果是()。includesubl(char a,char b) {char c;c=a;a=b;b=c; }sub2(cha

    下列程序输出的结果是( )。 #include<stdio.h> subl(char a,char b) {char c;c=a;a=b;b=c; } sub2(char*a,char b) {char c;c=*a;*a=b;b=c;} sub3(char*a,char*b) { char c;c=*a;*a=*b;*b=c; } void main() { char a,b; a='A';b='B';subl(a,b);putchar(a);putchar(b); a='A';b='B';sub2(&a,b);putchar(a);putchar(b); a='A';b='B';sub3(&a,&b);putchar(a);putchar(b); putchar('\n'); }

    A.BABBAB

    B.ABBBBA

    C.ABBABA

    D.ABABBA


    正确答案:B

  • 第23题:

    下列程序输出的结果是( )。 include fun1(char a,char b) {char c;c=a;a=b;b=c;} fun2

    下列程序输出的结果是( )。 #include<stdio.h> fun1(char a,char b) {char c;c=a;a=b;b=c;} fun2 (char*a,char b) {char c;c=*a;*a=b;b=c;} fun3(char*a,char*b) {char c;c=*a;*a=*b;*b=c;} void main() { char a,b; a='A';b='B'; fun1 (a,b);putchar(a);putchar(b); a='A';b='B'; fun2 (&a,b);putchar(a);putchar(b); a='A';b='B'; fun3 (&a,&b);putchar(a);putchar(b); putchar('\n'); }

    A.BABBAB

    B.ABBBBA

    C.ABBABA

    D.ABABBA


    正确答案:B
    解析:由程序中的主函数main入手,分别调用fun1,fun2, fun3函数,得出输出结果。其中,3个函数都是实现的两个形参的交换功能,只是值传递的方式不同,有的是引用,有的是传值。第一个函数中参数采用的是值传递的方式,形参的变化不影响实参。所以d调用fun1后,实参a和b并没有交换,仍然是AB。第二个调用中,实参a采用的是地址,即传递的是地址,所以形参a的改变会影响实参a的值,即BB。同理,调用fun3后为BA.