参考答案和解析
正确答案: D
解析:
函数fun1、fun2、fun3实现对两个形参的交换功能,但是使用的参数传递方式不同。采用传值方式,形参的改变不影响实参;采用传地址方式,形参的改变会使实参发生变化。因此,调用fun1,实参不发生变化,a=’A’,b=’B’;调用fun2,实参a改变,a=’B’,b=’B’;调用fun3,实参均改变a=’B’,b=’A’。因此输出ABBBBA
更多“单选题下列程序输出的结果是(  )。A BABBABB ABBBBAC ABBABAD ABABBA”相关问题
  • 第1题:

    下列程序输出的结果是()。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

  • 第2题:

    执行以下程序段 a$="abbacddcba" For i=6 To 2 Step-2 X=Mid(a,i,i) Y=Left(a,i) Z=Right(a,i) z=UCase(X&Y&z) Next i Print z 输出结果为( )

    A.ABC

    B.BBABBA

    C.ABBABA

    D.AABAAB


    正确答案:B

  • 第3题:

    有以下程序 程序运行后的输出结果是( )。A.程序错无输出结果B.31.5C.7.5SXB

    有以下程序

    程序运行后的输出结果是( )。

    A.程序错无输出结果

    B.31.5

    C.7.5

    D.14.0


    正确答案:A
    宏定义不是c语句,末尾不需要有分号。因此语句“printf(”%4.1f\n”。S(a+b));”展开后为“prinff(”%4.1tXn",3.5;+a+b}a+b;);”,所以程序会出现语法错误。

  • 第4题:

    下列程序的输出结果是( )。

    A.s

    B.c

    C.f

    D.a


    正确答案:C
    本题考查函数的调用及参数传递,当执行函数point时,刚开始指针P指向“a”,经过+3,指针p指向“f”。所以最后的输出结果是f。

  • 第5题:

    下列程序输出的结果是()。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

  • 第6题:

    有以下程序:

    程序的输出结果是( )


    正确答案:C
    本题考查d0…while循环。在d0…while构成的循环体中,总是先执行一次循环体,然后再求表达式的值。当执行完第三次循环时,得到n=3,while循环表达式仍然成立,接着执行直到n=4,表达式不成立,跳出循环,结束程序。

  • 第7题:

    下列程序输出的结果是()。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。

  • 第8题:

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


    正确答案:A

  • 第9题:

    下列程序执行后的输出结果是: main() { char arr[2][4]; strcpy(arr'"you"); strcpy(arr[1],"me"); arr[0][3]='&'; printf("%s\n",arr); } 程序的输出结果是( )。

    A.you&me

    B.me

    C.you

    D.err


    正确答案:A
    解析:本题定义了一个二维字符数组arr[2][4],该二维数组可以看成一个含有两个元素arr[0]、arr[1]的一维字符数组,分别看成是含有4个元素,也可以看成是以arr为首地址的一个一维字符数组。函数strcpy(arr,“you”)是把字符串“you”复制到arr指向的空间,strcpy(arr[1],“me”)同理,在以arr[0]为首地址的字符数组中有“you”,在以air[1]为首地址的字符数组中有“me”。arr[0][3]=‘&’;是给arr[0]为首地址的字符数组的第4个元素赋值为‘&’。因此输出为you&me。

  • 第10题:

    单选题
    下列程序执行后,输出的结果是(  )。
    A

    1

    B

    2

    C

    4

    D

    5


    正确答案: B
    解析:
    循环条件是++x,在C++中,对于非O值全都为真,O代
    表假。x的初始值为-5,所以循环能进行4次。

  • 第11题:

    单选题
    下列程序段的输出结果是(  )。
    A

    0

    B

    1

    C

    由A的值决定

    D

    程序出错


    正确答案: C
    解析:
    程序中不管条件语句是否执行,“S=1”总是执行,S为1。

  • 第12题:

    单选题
    下列程序段的输出结果是(  )。
    A

    1

    B

    0

    C

    ﹣1

    D

    程序出错


    正确答案: A
    解析:
    本程序的流程中,无论if是否执行,S=1必然最后为S赋1,所以S最后为1。ACCEPT TO A表示通过键盘给A赋值。$用于子串包含测试,若A包含[等级]则为真,否则为假。

  • 第13题:

    下列程序的输出结果是______。 #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

  • 第14题:

    下列程序段的输出结果是( )。

    A.0

    B.a

    C.1

    D.5


    正确答案:D
    a和f的ASCIl值相差5。

  • 第15题:

    有下列程序:

    程序运行后的输出结果是()

    A.44

    B.33

    C.34

    D.43


    正确答案:C
    语句charp[]={ˊaˊ,ˊbˊ,ˊcˊ};定义了一个一维字符数组p[],并用3个字符ˊaˊ,ˊbˊ,ˊcˊ进行了初始化;而语句q[]=″abc″表示定义了一个一维字符数组,并用一个字符串常量”abc”进行了初始化。在C语言中,系统在每个字符串常量的最后自动加入一个字符ˊ\0ˊ作为字符串的结束符。所以函数sizeof(q)=4,而sizeof(p)=3,因而选项C为正确答案。

  • 第16题:

    有以下程序:程序的输出结果是:A.B.C.D.

    有以下程序:

    程序的输出结果是:


    正确答案:D
    {intk=-3;if(k<=0)printf(″****\n″)elsewind(″&&&&\n″);)中printf(″****\n″)缺少分号,因此会报编译错误。

  • 第17题:

    下列程序输出的结果是()。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。

  • 第18题:

    下列程序段的输出结果是( )。

    A.passwarn

    B.passerror

    C.goodpasswarn

    D.pass


    正确答案:A
    本题的考查点是switch语句。当用户键人字符时,会进入一个多分支选择语句,根据n的值,来确定下一步执行的选择语句;最后的结果应当为passwarn。本题需要注意的是,当case语句没有跟随break语句时,不会跳出switch,而是继续执行下一个case语句,直至遇到break语句。

  • 第19题:

    下列程序输出的结果是( )。 #include<stdi0.h> funl(chara,charb){charC;c=a;a=b;b=C;) fun2(char*a,charb){charC;c=*a;*a=b;b=c;) fun3(char*a,char*b){charC;C=*a;*a=*b;*b=C;) voidmain( ) { chara,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
    B。【解析】由程序中的主函数main入手,分别调用fun1,fun2,fun3函数,得出输出结果。其中,3个函数都是实现的两个形参的交换功能,只是值传递的方式不同,有的是引用,有的是传值。第一个函数中参数采用的是值传递的方式,形参的变化不影响实参。所以d调用funl后,实参a和b并没有交换,仍然是AB。第二个调用中,实参a采用的是地址,即传递的是地址,所以形参a的改变会影响实参a的值,即BB。同理,调用fun3后为BA。

  • 第20题:

    下列程序输出的结果是()。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

  • 第21题:

    完成下列程序,使其运行后的输出结果是FEDC。


    正确答案:
    答案:Ase(strl)-3Step-1解析;从F到C,循环的终止值为Asc(strl)-3,步长为-1。

  • 第22题:

    单选题
    下列程序的输出结果是(  )。
    A

    0

    B

    20

    C

    50

    D

    100


    正确答案: A
    解析:
    主函数定义整型变量n=50,然后调用函数fun,实际参数为n。函数fun中使用的参数传递机制是传地址方式。函数中形参的改变会影响实参的值。输出n=50*2=100。

  • 第23题:

    单选题
    若有如下程序段:该程序的输出结果是(  )。
    A

    a

    B

    b

    C

    c

    D

    d


    正确答案: C
    解析:
    字符指针p指向“abcdefgh”字符串,语句“r=p;”是r指向p指向的字符串,而*r则是指向字符串中的第一个字符。即a。