有以下程序: #include<stdio.h> void exch(int t[]) { t[0]=t[s];} main( ) { int x[10]={1,2,3,4,5,6,7,8,9,10},i=0; while(i<=4){exch(&x[i]);i++;} for(i=0;i<5;i++)printf("%dl"x[i]); printf("\n"); } 程序运行后输出的结果是( )。A.2 4 6 8 10B.1 3 5 7 9C.1 2 3 4 5D.6 7 8 9 10

题目

有以下程序: #include<stdio.h> void exch(int t[]) { t[0]=t[s];} main( ) { int x[10]={1,2,3,4,5,6,7,8,9,10},i=0; while(i<=4){exch(&x[i]);i++;} for(i=0;i<5;i++)printf("%dl"x[i]); printf("\n"); } 程序运行后输出的结果是( )。

A.2 4 6 8 10

B.1 3 5 7 9

C.1 2 3 4 5

D.6 7 8 9 10


相似考题
更多“有以下程序: #include&lt;stdio.h&gt; void exch(int t[]) { t[0]=t[s];} main( ) { int x[ ”相关问题
  • 第1题:

    请选出以下程序的输出结果_______。 includesub(int*s,inty){ static int t=3,y=s[t];t

    请选出以下程序的输出结果_______。 #include<stdio.h> sub(int*s,inty) { static int t=3, y=s[t];t-; } main() { int a[]={1,2,3,4},i,x=0; for(i=0;i<4;i++){ sub(a,x);printf("%d",x);} printf("\n"); }

    A.1234

    B.4321

    C.0

    D.4444


    正确答案:C
    解析:x作为函数sub()的实参时,函数对x值的改变没有返回主函数,并不能使得x的值变化,所以在打印时,x的值是始终不变的,即为0。

  • 第2题:

    若有如下程序: sub(int *t,int a[3][4]) { int m,n; for(m=0;m<3;m++) for(n=0;n<4;n++) { *t=a[m][n];t++;} } main() { int*t,s[3][4)={{1,2,3),{4,5,6),{7,8,9}}; t=(int*)malloc(50); sub(t,s); printf("%d,%d\n",t[4],t[7]); } 则程序运行后的输出结果是( )。

    A.4,7

    B.4,0

    C.5,8

    D.程序错误


    正确答案:B
    解析:本题定义了一个sub()函数,其作用为将一个二维数组按行复制到t所指的连续内存空间内。主程序中首先使用malloc()函数为t申请了50个字节的内存空间,然后调用sub()函数,将二维数组s的内容复制到t申请的内存空间内,最后输出t的第5个元素(t[4])和第8个元素(t[7]),即为3行4列二维数组中的s[1][0]和s[1][3]。s[1][0]是初始化列表中第二个大括号中的第一个值4,而s[1][3]应该是初始化列表中第二个大括号中的第4个值,但没有这么多初始值,C语言在这种情况下会自动将该元素设置为0,即s[3][4]={{1,2,3},{4,5,6},{7,8,9}}等价于s[3][4]={{1,2,3,0},{4,5,6,0),{7,8,9,0}}。所以最后输出结果是4,0,应该选择B。

  • 第3题:

    下面程序和运行运行结果是【 】。

    void swap(int * a,int * b)

    { int * t;

    t=a; a=b; b=t;

    }

    main( )

    { intx=3,y=5,* p=&x,* q=&y;

    swap(p,q);

    prinff("%d %d\n", *p, *q);}


    正确答案:3 5
    3 5 解析:本题swap( )函数的功能是实现两个数的交换,但它为无返回值型。

  • 第4题:

    请选出以下程序的输出结果()。includesub(int *s,int y){static int t=3; y=s[t];t--;}

    请选出以下程序的输出结果( )。 #include <stdio.h> sub(int *s,int y) { static int t=3; y=s[t];t--; } main() { int a[]={1,2,3,4},i,x=0; for(i=0;i<4;i++) { sub(a,x);printf("%d",x); } printf("\n"); }

    A.1234

    B.4321

    C.0

    D.4444


    正确答案:C
    解析:本题考查函数的形参和实参的关系。函数sub将实参x的值传给形参y,y值的改变不能使x的值发生改变,所以输出的x值始终为0。

  • 第5题:

    有以下程序:include void f(int * x,int * y) int t;t= *x; *x= *y; *y=t;main ( ){in

    有以下程序:#include <stdio.h>void f(int * x,int * y) int t; t= *x; *x= *y; *y=t;main ( ){ int a[8] = { 1,2,3,4,5,6,7,8} ,i, * p, * q; p=a;q =&a[7]; while(p<q) { f(p,q) ;p ++ ;q --; } for(i =0;i<8;i ++ ) printf(" % d," ,a[i]); }程序运行后的输出结果是( )。

    A.8,2,3,4.,5,6,7,1,

    B.5,6,7,8,1,2,3,4,

    C.1,2,3,4,5,6,7,8,

    D.8,7,6,5,4,3,2,1,


    正确答案:D
    解析:程序中函数f的作用是交换指针变量x和y所指向的存储单元的值。在main函数中,通过P=a;q=&a[7];指针变量p指向数组的第一个元素,指针变量q指向数组的最后一个元素。通过调用函数f(p,q)进行前后对称位置上的数组元素的交换。当while循环4次(即p=q)后,a数组中各元素的值分别为8,7,6,5,4,3,2,1,所以程序输出的结果为:8,7,6,5,4,3,2,1,

  • 第6题:

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