执行下面语句序列后,a和b的值分别为() int a=5,b=3,t; int &ra=a; int &rb=b; t=ra;ra=rb;rb=t。A、3和3B、3和5C、5和3D、5和5

题目

执行下面语句序列后,a和b的值分别为() int a=5,b=3,t; int &ra=a; int &rb=b; t=ra;ra=rb;rb=t。

  • A、3和3
  • B、3和5
  • C、5和3
  • D、5和5

相似考题
参考答案和解析
正确答案:B
更多“执行下面语句序列后,a和b的值分别为() int a=5,b=3,t; int ra=a; int rb=b; t=ra;ra=rb;rb=t。A、3和3B、3和5C、5和3D、5和5”相关问题
  • 第1题:

    有以下程序:include void f(int a[],int i, int j){int t; if(i

    有以下程序: #include <stdio.h> void f(int a[],int i, int j) { int t; if(i<j) { t=a[i];a[i]=a[j];a[j]=t; f(a,i+1,j-1); } } main() { int i,aa[5]={1,2,3,4,5}; f(aa,0,4); for(i=0;i<5;i++) printf("%d,",aa[i]);printf("\n"); } 执行后的输出结果是( )。

    A.5,4,3,2,1,

    B.5,2,3,4,1,

    C.1,2,3,4,5,

    D.1,5,4,3,2,


    正确答案:A
    解析:f函数的功能是通过递归调用实现数组中左右部分相应位置数据的交换,即数组中第一个元素与最后一个元素调换位置,第二个元素与倒数第二个元素调换位置,以此类推。

  • 第2题:

    下列程序的运行结果是()。includevoid fun(int*s,int*p){ static int t=3;*p=s[t];t--;

    下列程序的运行结果是( )。#include<stdio.h>void fun(int*s,int*p){ static int t=3; *p=s[t]; t--;}void main(){ int a[]={2,3,4,5),k; int x; for(k=0;k<4;k++) { fun(a,&x); printf("%d,",x); }}

    A.5,4,3,2

    B.2,3,4,5,

    C.2,2,2,2,

    D.5,5,5,5,


    正确答案:A
    解析:分析fun函数程序段,可知fun函数要实现的功能是将s中第(t+1)个元素以前的元素逆置赋给数组p。由于fun中函数定义了静态变量t=3,因此,在主函数中调用函数fun(a,&x)时,就是要将数组a中前4个元素逆置赋给数组x,最后输出x数组。

  • 第3题:

    下列程序的运行结果是()。includevoid fun (int*s,int*p){ static int t=3; *p=s [t];

    下列程序的运行结果是( )。 #include<stdio.h> void fun (int*s,int*p) { static int t=3; *p=s [t]; t--; } void main() int a[]={2, 3, 4, 5},k; int x; for(k=0; k<4; k++) { fun (a, &x); printf("%d,", x); }

    A.5,4,3,2

    B.2,3,4,5,

    C.2,2,2,2,

    D.5,5,5,5,


    正确答案:A
    解析:分析fun函数程序段,可知fun函数要实现的功能是将s中第(t+1)个元素以前的元素逆置赋给数组P。由于fun中函数定义了静态变量t=3因此,在主函数中调用函数fun(a,&x)时,就是要将数组a中前4个元素逆置赋给数组x,最后输出x数组。

  • 第4题:

    有以下程序的输出结果是( ) 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}; swap1(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
    解析:在本题函数的调用中,swap2()不会改变实参的值,swapl()改变了实参的值。

  • 第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}; swap1 (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
    解析:本题考核的知识点是函数调用中值传递和地址传递。函数间的参数的传递有两种情况,第1种情况变量作为形参时的参数传递,变量作为形参时,要求对应的实参应为变量或表达式,变量作为函数的参数其传递方式是“值传递”,该种情况下,形参被赋值为实参的值,然后实参与形参再无联系。也就是说对行参的改变将不再影响实参:第2种情况是地址或数组名作为形参时的参数传递,该种情况下对形参的改变将对实参产生影响。本题中函数swap1()是传递的地址。所以对该形参c的改变将影响实参,分析可知该函数的作用,是使数组c的第一个元素和第二个元素的值互换。主函数中调用该函数将a作为实参传递给形参c,故执行该函数后a的第一个元素和第二个元素的值将交换。分别为5和2.函数swap2()是值传递的,所以该函数执行后对数组b将没有任何改变,此时该数组的第一个和第二个元素依然为3和5,因此最后的输出为5、3,3和5,所以,4个选项中选项B符合题意。

  • 第6题:

    有以下程序 void f(int x,int y) { int t; if(x<y){ t=x; x=y; y=t; } main() { int a=4,b=3,c=5; f(a,b); f(a,c); f(b,c); printf("%d,%d,%d\n",a,b,c); } 执行后输出的结果是

    A.3,4,5

    B.5,3,4

    C.5,4,3

    D.4,3,5


    正确答案:D
    解析:本题考核的知识点是函数的定义、调用方式以及参数的传递。C语言规定,在函数调用时变量作为参数传递是传值的,在函数体中对形参变量的修改不能影响到对应的实参变量。本题定义了一个函数f(),用变量作为形参,在main()函数中调用了3次f()函数,由于变量作为参数进行传递,所以对应的实参的值并没有被交换。所以输出的a、b、c依旧是原来的值4,3、5。所以,D选项为所选。

  • 第7题:

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

    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( )函数的功能是实现两个数的交换,但它为无返回值型。

  • 第8题:

    球形电容器由两个同心的球壳导体, A、 B 组成, 如图 5 所示。 导体 A、 B 的半径分别为和RA 和 RB, 且 RA
    (1) 导体 A、 B 之间的电场强度;
    (2) 该电容器的电容


    答案:
    解析:

  • 第9题:

    有以下程序 void f(int x,int y) { int t; if(x < y) { t=x; x=y; y=t; } } main() { int a=4,b=3,c=5; f(a,b); f(a,c); f(b,c); printf("%d,%d,%d/n",a,b,c); } 执行后输出结果是()

    • A、3,4,5
    • B、5,3,4
    • C、5,4,3
    • D、4,3,5

    正确答案:D

  • 第10题:

    两颗人造卫星A、B都绕地球作圆周运动,周期之比为TA∶TB=1∶8,则轨道半径之比和运动速率之比分别为().

    • A、rA∶rB=4∶1,vA∶vB=1∶2
    • B、rA∶rB=1∶4,vA∶vB=1∶2
    • C、rA∶rB=4∶1,vA∶vB=2∶1
    • D、rA∶rB=1∶4,vA∶vB=2∶1

    正确答案:D

  • 第11题:

    填空题
    已知变量a定义为“i nt a=5;”,要使ra成为a的引用,则ra应定义为(),要使rb指向a,则rb应定义为()

    正确答案: int &ra=a;,int*rb= &a,。
    解析: 暂无解析

  • 第12题:

    单选题
    有10个5Ω的电阻,其中5个相串联,阻值为RA,另5个电阻相并联,其阻值为RB,则RA+RB=()。
    A

    25Ω

    B

    50Ω

    C

    26Ω

    D

    27Ω


    正确答案: B
    解析: 暂无解析

  • 第13题:

    有以下程序: void fun(int a*a,int i,int i) {int t; if(i<j); {t=a[i];a[i]=a[j];a[j]=t; fun(a,++i,--j); } } main() {inta[]={1,2,3,4,5,6},i; fun(a,0,5); for(i=0;i(6;i++) cout<(a[i]; } 执行后输出结果是( )。

    A.6 5 4 3 2 1

    B.4 3 2 1 5 6

    C.4 5 6 1 2 3

    D.1 2 3 4 5 6


    正确答案:A
    解析: 本题采用递归函数的方式将数组中的元素进行倒置,正确答案为A。

  • 第14题:

    下列语句序列执行后,j的值是( )。 int j=0; for (int i=3 i>0; i- -)j+=i;

    A.3

    B.4

    C.6

    D.5


    正确答案:C

  • 第15题:

    有以下程序 void fun{int *a,int i,int j) { int t; if (i<j) t=a[i] ;a[i]=a[j] ;a[j]=t; fun(a, ++i, --j); } main ( ) { int a[]={1,2,3,4,5,6},i; fun(a,0,5); for (i=0; i<6; i++ ) printf ("%d" , a [i] ); } 执行后输出结果是

    A.6 5 4 3 2 1

    B.4 3 2 1 5 6

    C.4 5 6 1 2 3

    D.1 2 3 4 5 6


    正确答案:A
    解析:本题考核的知识点是指针变量作为函数的参数和递归函数的简单使用。函数fun()中有3个参数,参数a为一个指针变量,接收的实参可以是数组名,参数i和j分别表示数组元素的下标,当下标i小于下标j时,a[i]和a[j]交换,然后对自身进行调用,可见这是一个递归函数。其实现的功能是把数组a,从下标为i的元素到下标为i的元素之间的所有元素反序存放。在主函数中调用fun()函数,把a数组从a[0}到a[5]之间的所有元素反序存放,最后输出从a[0]到a[5]的值,因此输出的值为6、5、4、3,2、1,所以,A选项为所选。

  • 第16题:

    执行下面程序中的输出语句后,a的值是()。includemain(){int a; printf("%d\n",(a=3*5,a

    执行下面程序中的输出语句后,a的值是( )。 #include <stdio.h> main() { int a; printf("%d\n",(a=3*5,a*4));

    A.15

    B.20

    C.10

    D.60


    正确答案:A
    解析:本题考查对逗号运算符的理解。逗号运算符的求解过程是从左至右,依次求解各个表达式的值,所以在该题中,先使a的值等于15,再计算a*4,此时整个表达式的值为60,但a的值并未改变,仍为15。

  • 第17题:

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


    正确答案:A
    解析:swapl(a,a+1)是将a,a+1的地址进行传递,运行swapl以后,a[0],a[1]的值不发生改变,而swap2(&b[0],&b[1])是将两个指针所指的元素进行传递,运行swap2后,b[0]与b[1]的值互换。

  • 第18题:

    有以下程序:includevoid swap1(int c[]){int t; t=c[0]; c[0]=c[1]; c[1]=t;}void swa

    有以下程序: #include <stdio.h> 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}; swap1(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
    解析:swap1函数传递的是变量的地址,可以实现两个数的交换;而swap2函数传递的是值,执行完swap2后,c0,c1的值互换了,但main函数中的b0和b1并未互换,即形参值的改变无法传给实参。

  • 第19题:

    两颗人造卫星A、B都绕地球作圆周运动,周期之比为TA∶TB=1∶8,则轨道半径之比和运动速率之比分别为().

    A.rA∶rB=4∶1,vA∶vB=1∶2

    B.rA∶rB=1∶4,vA∶vB=1∶2

    C.rA∶rB=4∶1,vA∶vB=2∶1

    D.rA∶rB=1∶4,vA∶vB=2∶1


    参考答案:D

  • 第20题:

    已知变量a定义为“i nt a=5;”,要使ra成为a的引用,则ra应定义为(),要使rb指向a,则rb应定义为()


    正确答案:int &ra=a;;int*rb= &a;。

  • 第21题:

    以下数组初始化形式正确的是()

    • A、int,t1[][]={{1,2},{3,4},{5,6}}
    • B、int,t2[][]={1,2,3,4,5,6}
    • C、int,t3[3][2]={1,2,3,4,5,6}
    • D、int,t4[][];t4={1,2,3,4,5,6}

    正确答案:A

  • 第22题:

    A、B两个电子都垂直于磁场方向射入一均匀磁砀而作圆周运动,A电子的速率是B电子速率的两倍,设RA和RB分别为A电子与B电子的轨道半径;TA和TB分别为它们各自的周期;则()。

    • A、RA:RB=2,TA:TB=2
    • B、RA:RB=1/2,TA:TB=1
    • C、RA:RB=1,TA:TB=1/2
    • D、RA:RB=2,TA:TB=1

    正确答案:D

  • 第23题:

    单选题
    假定一个类的构造函数为A(int aa, int bb) { a = aa--; b = a * bb; } ,则执行Ax(4,5);语句后,x.a和x.b的值分别为(  )。
    A

    3和l5

    B

    5和4

    C

    4和20

    D

    20和5


    正确答案: D
    解析:
    因为aa后减,所以a=4;b的值与a、bb相关,B=4*5=20,
    与aa没有任何关系。