niusouti.com

有以下程序: void swapl(int c0[], int c1[]) {int t; t=co[o]; co[o]=o1[o]; c1[o]=t; } void swap2(int * c0, int * c1) {int t; t=*c0; *c0=*c1; *c1=t; } main() {int a[2]={3, 5}, b[2]=A{3, 5); swapl(a, a+1); swap2(&b [0], &b[1]); printf("%d%d%d%d\n", a[0], a[1], b[0

题目

有以下程序: void swapl(int c0[], int c1[]) {int t; t=co[o]; co[o]=o1[o]; c1[o]=t; } void swap2(int * c0, int * c1) {int t; t=*c0; *c0=*c1; *c1=t; } main() {int a[2]={3, 5}, b[2]=A{3, 5); swapl(a, a+1); swap2(&b [0], &b[1]); printf("%d%d%d%d\n", a[0], a[1], b[0],b[1]); } 程序运行后的输出结果是______。

A.3 5 5 3

B.5 3 3 5

C.3 5 3 5

D.5 3 5 3


相似考题
更多“有以下程序:void swapl(int c0[], int c1[]){int t;t=co[o]; co[o]=o1[o]; c1[o]=t;}void swap2( ”相关问题
  • 第1题:

    有以下程序: include void swap1 (int c0[],int e1[] ){intt;t = c0[0]; c0[0]: c1 [

    有以下程序: #include <stdio, h>void swap1 (int c0[],int e1[] ){ int t; t = c0[0]; c0[0]: c1 [0] ; c1 [0] = t;}void swap2(int * c0,int * c1){ int t; t= *c0; *c0= *c1; * c1 =t;}main( ){ inta[2]={3.5}.b[2]={3,5}; swapl(a,a+1) ;swap2(&b[0],&b[1]); printf("% d %a %d %d \n" ,a[0] ,a[1] ,b[0] ,b[1] ); }程序运行后的车出结果是( )。

    A.3 5 5 3

    B.5 3 3 5

    C.3 5 3 5

    D.5 3 5 3


    正确答案:D
    解析:函数swap1,swap2的功能均为交换两个数。main函数调用swap1(a,a+1);使得数组a的首地址赋给形参c0[],a[1]的首地址赋给形参c1[],故交换c0[0]与c1[0]后,a[0]与a[1]的值也发生了变化;函数调用swap2(&b[0],&b[1]);的功能也一样,使指针变量c0指向了b[0]存储单元,c1指向了b[1]存储单元,并在swap2函数中进行了交换,所以b[0],b[1]的值也发生变化,故本程序输出的结果是5353。

  • 第2题:

    有以下程序: void swap1(int C[]) { int t; t=c[0]; c[0]=C[1]; c[1]=t; } void swap2(int c0, int c1) { int t; t=c0; c0=c1; c1=t; } main() { int a[2]={3,5}, b[2]={3,5); swapl(a); swap2(b[0],b[1]); printf("%d %d %d %d\n",a[0],a[1],b[0],b[1]); } 其输出结果是

    A.5 3 5 3

    B.5 3 3 5

    C.3 5 3 5

    D.3 5 5 3


    正确答案:B
    解析:本题中函数swapl()是传递的地址。所以对该形参c的改变将影响实参,分析可知该函数的作用,是使数组c的第一个元素和第二个元素的值互换。主函数中调用该函数将a作为实参传递给形参c,故执行该函数后a的第一个元素和第二个元素的值将交换。分别为5和3。函数swap2()是值传递的,所以该函数执行后对数组b将没有任何改变,此时该数组的第一个和第二个元素依然为3和5,因此最后的输出为5、3、3和5,所以,4个选项中选项B符合题意。

  • 第3题:

    以下程序的输出结果是( )。 include void swap(int*a,int*B){int*t; t=a;a=b;b=c;} main

    以下程序的输出结果是( )。 include<stdio.h> void swap(int*a,int*B){int*t; t=a;a=b;b=c;} main() {int i=3,j=5,*p=&i,*q=&j; swap(p,q);printf("%d %d\n",*p,*q); }


    正确答案:3 5
    3 5 解析:本题考查函数中形参和实参的传递。在C语言函数中实参和形参传递具有不可逆性,参数只能由实参传向形参,而不能由形参传向实参,虽然swap函数的功能是实现两个数的交换,但由于没有返回值,故最终的输出结果为3 5。

  • 第4题:

    有以下程序 void swapl(int c0[],int c1[] { int t; t=c0[0]; c0[0]=c1[0]; c1[0]=t; } void swap2 (int *c0,int *c1) { int t; t-*c0; *c0=*c1; *c1=t; } main() { int a[2]={3,5}, b[2]={3,5} swapl(a,a+1); swap2(&b[0],&b[1]); printf("%d %d %d %d\n",a[0],a[1],b[0],b[1]); } 程序运行后的输出结果是

    A.3 5 5 3

    B.5 3 3 5

    C.3 5 3 5

    D.5 3 5 3


    正确答案:D
    解析:本题考查的是数组名和指针用作函数的参数。在C语言中,函数参数使用数组形式和指针形式两者毫无差别。因此两个函数swap1()和swap2()的作用是完全一样的,都是交换两个参数所指的内容。主函数中分别使用swap1和swap2交换数组a[2]和b[2]中两个元素的位置。因此最终输出为:5353。故应该选择D。

  • 第5题:

    有以下程序 void swapl(int c[]) { int t; t=c[0];c[0]=c[1];c[1]=t; } void swap2(int c0,int c1) {int t; t=c0;c0=c1;c1=t; } main() { int a[2]={3,5},b[2]={3,5}; swapl(a) ;swap2(b[0],b[1]); printf("%d%d%d%d\n",a[0],a[1],b[0],b[1]); } 其输出结果是:

    A.5 3 5 3

    B.5 3 3 5

    C.3 5 3 5

    D.3 5 5 3


    正确答案:B
    解析:函数间的参数的传递有两种情况,第一种情况变量作为形参时的参数传递,变量作为形参时,要求对应的实参应为变量或表达式,变量作为函数的参数其传递方式是“值传递”,该种情况下,形参被赋值为实参的值,然后实参与形参再无联系。也就是说对形参的改变将不再影响实参;第二种情况是地址或数组名作为形参时的参数传递,该种情况下对形参的改变将对实参产生影响。本题中函数swapl()是传递的地址。所以对该形参c的改变将影响实参,分析可知该函数的作用,是使数组c的第一个元素和第二个元素的值互换。主函数中调用该函数将a作为实参传递给形参c,故执行该函数后 a的第一个元素和第二个元素的值将交换。分别为5和2。函数swap2()是值传递的,所以该函数执行后对数组b将没有任何改变,此时该数组的第一个和第二个元素依然为3和5,因此最后的输出为5、3、3和5。