下面空格中填入(),执行程序可以交换a,b的值。 int t,a=3,b=4; () a=b; b=t;A.t=a;B.b=a;C.a=t;D.a==b;

题目

下面空格中填入(),执行程序可以交换a,b的值。 int t,a=3,b=4; () a=b; b=t;

A.t=a;

B.b=a;

C.a=t;

D.a==b;


相似考题
参考答案和解析
A
更多“下面空格中填入(),执行程序可以交换a,b的值。 int t,a=3,b=4; () a=b; b=t;”相关问题
  • 第1题:

    下面程序应能对两个整型变量的值进行交换。以下正确的说法是

    main()

    {int a=10,b=20;

    printf("(1)a=%d,b=%d\n",a,b);

    swap(&a,&b);

    printf("(2)a=%d,b=%d\n",a,b);

    }

    swap(int p,int q)

    {int t;

    t=p;p=q;q=t;

    }

    A.该程序完全正确

    B.该程序有错,只要将语句swap(&a,&b);中的参数改为a,b即可

    C.该程序有错,只要将swap()函数中的形参p和q以及t均定义为指针(执行语句不变)即可

    D.以上说法都不对


    正确答案:D

  • 第2题:

    在下面程序横线处填上适当内容,以使该程序执行结果为4.4。includeusing namespace std;

    在下面程序横线处填上适当内容,以使该程序执行结果为4.4。

    include<iostream>

    using namespace std;

    template<typename T>

    T average(T*datA)

    {

    T s=0;

    int i:0;

    while(data[i])

    【 】;

    return s/(i+1);

    }

    int main()

    {

    double x[]={2.5,4.5,6.5,5,0.0,5,3,18.5};

    cout<<average(X);

    return 0;

    }


    正确答案:s+=data[i++]
    s+=data[i++] 解析:函数average()中的while循环用来将求传入的数组中各元素的值的总和。

  • 第3题:

    有以下程序: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函数的功能是通过递归调用实现数组中左右部分相应位置数据的交换,即数组中第一个元素与最后一个元素调换位置,第二个元素与倒数第二个元素调换位置,以此类推。

  • 第4题:

    下列程序的运行结果是()。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数组。

  • 第5题:

    下面程序的输出结果是()。includeusing namespace std;void swap(int x[2]){int t; t=

    下面程序的输出结果是( )。 #include<iostream> using namespace std; void swap(int x[2]) { int t; t=x[0]; x[0]=x[1]; x[1]=t; } void main() { int a[2]={4,8}; swap(a); cout<<a[0]<<" "<<a[1]; }

    A.4 8

    B.8 4

    C.4 4

    D.8 8


    正确答案:B
    解析:数组名作为函数参数属于地址传递,形参、实参共用同一内存空间。

  • 第6题:

    下列程序的运行结果是()。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数组。

  • 第7题:

    执行下面程序中的输出语句后,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。

  • 第8题:

    下面程序的运行结果是void swap(int *a,int *b){ int *t; t=a;a=b;b=t;}main(){ int x=3,y=5,*p=&x,*q=&y; swap(p,q); printf("%d%d\n",*p,*q);}


    正确答案:35
    观察本题的程序可以看出,被调函数swap()实现的功能是交换变量的值,但由于函数不返回任何值,所以在main()函数中打印出的变量的值并没有发生交换,即仍为3和5。

  • 第9题:

    执行下面程序中的输出语句后,a的值是

    main( )

    {

    int a;

    cout<<(a=3*5,a*4,a+5);

    }

    A.65

    B.20

    C.15

    D.10


    正确答案:B
    解析:本题考查逗号表达式的运算特点。逗号表达式是所有表达式中优先级最低的,从左到右结合,其求解过程是:将逗号表达式各表达式按从左到右的顺序依次求值,并将最右边的表达式结果作为整个逗号表达式的结果。这里考生要注意的是,第二个表达式执行完后,a的值并没有发生变化,依然是15,所以在执行a+5的时候,结果是20,而不是65。正确答案应是B。

  • 第10题:

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

  • 第11题:

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

  • 第12题:

    单选题
    有以下程序 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
    解析: 暂无解析

  • 第13题:

    下列程序段执行后t5的结果是( )。int t1 = 9, t2 = 11, t3=8;int t4,t5;t4 = t1 > t2 ? t1 : t2+ t1;t5 = t4 > t3 ? t4 : t3;

    A.8

    B.20

    C.11

    D.9


    正确答案:B

  • 第14题:

    有以下程序:

    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
    a、b、C都是按值传递给函数f,函数f不能改变它们的值。所以,a、b、t的值仍然是4、3、5。

  • 第15题:

    设x、y、t均为int型变量,执行以下语句后,y的值为______。x=y=3;t=++x||++y;

    A.不定值

    B.4

    C.3

    D.1


    正确答案:C

  • 第16题:

    下面程序应能对两个整型变量的值进行交换。以下正确的说法是 include void swap

    下面程序应能对两个整型变量的值进行交换。以下正确的说法是 #include<iostream.h> void swap(int p,int q) { int t; t=p; p=q; q=t;} void main( ) { int a=10,b=20; cout<<a<<" "<<b; swap(&a,&b); cout<<a<<" "<<b;}

    A.该程序完全正确

    B.该程序有错,只要将语句swap(&a,&b);中的参数改为a,b即可

    C.该程序有错,只要将swap( )函数中的形参p和q以及t均定义为指针(执行语句不变)即可

    D.以上说法都不对


    正确答案:D
    解析:本题应该把swap()函数改成这样:swap(int*P,int*q){intt;t=*p;*p=*q;*q=t;}执行程序时,先将a的地址传递给指针变量p,b的地址传递给指针变量q,然后将*p(a的值)的值传递给t,将*q(b的值)传递给*p,将t的值传递给*q,从而将a值和b值互换。

  • 第17题:

    下面程序的运行结果是:[ ]。

    fun(int t[],int n)

    { int i,m;

    if(n=1) return t[0];

    else

    if(n>=2) {m=fun(t,n-1);return m;}

    }

    main()

    { int a[]={11,4,6,3,8,2,3,5,9,2};

    printf("%d\n",fun(a,10));

    }


    正确答案:11
    11 解析:此题主要考核的知识点是数组名作为函数参数及函数调用牙口参数的传递。调用实参可知n=10,形参数组t指向实参a的首地址t[0]=11。执行fun()函数的if-else语句,因为n=10所以执行else语句,在满足if(n>=2)的条件下:m=fun(t[0],9), m=fun(t[0],8), m=fun(t[0],7),......m=fun(t[0],2), .m=fun(t[0],1),当n=1时满足if(n=1)的条件,所以执行此处的return语句,返回数组首地址指向的值t[0],所以答案为11。

  • 第18题:

    若有以下程序

    main()

    { int a=4,b=3,c=5,t=0;

    if(a<b)t=a;a=b;b=t;

    if(a<c)t=a;a=c;c=t;

    pfintf("%d%d%d\n",a,b,c) ;

    }

    执行后输出结果是【 】。


    正确答案:5 0 3
    5 0 3 解析:如果if后面的条件为真,只执行其后的一条语句或一条复合语句,如果if后面的条件为假,只执行else后面的一条语句或一条复合语句。先判断表达式“ab”为假,不执行“t=a”,但执行“a=b;b=t;”,a的值为3,b的值为0。在判断表达式“ac”,值为真,所以执行后面的3条语句“t=a;a=c;c=t”,结果a的值为5,c的值为3,所以最后输出的结果为5、0和3。

  • 第19题:

    执行以下程序段后,T的值为int T=’a’, x=12, y=5;T=((x || y)&&(T>’A’));A.1 B.NULL C.-l D.0


    正确答案:A
    本题考查逻辑运算符的使用及对ASCII码的了解。“&&”为逻辑与运算符,该运算符的特点是当其左右两边对象都为真时,用该运算符连接构成的逻辑表达式为真。“||”为逻辑或运算符,该运算符只要左右两边的对象有一个为真,则整个表达式就为真。在ASCII码中,26个英文小写字母a~z的码值为97~122,26个英文大写字母A~Z的码值为65~90。题中“&&”左边为一个逻辑或运算表达式,因为x=12,y=5,所以该或运算的值为1,右边为一个关系表达式,此时T=’a’,由于’a’的ASCII码值大于’A’的码值,所以该关系表达式的值为1。“&&”连接的左右两边的表达式的值都为1,所以整个表达式的值为1,T=1。

  • 第20题:

    有以下程序:includeint f(int t[],int n);main(){int a[4]={1,2,3,4},s;s=f(a,2);prin

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

    A.4

    B.7

    C.10

    D.61


    正确答案:B

  • 第21题:

    有以下程序 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选项为所选。

  • 第22题:

    若有如下程序: 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。

  • 第23题:

    执行下面语句序列后,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

  • 第24题:

    单选题
    有以下程序:#include int f(int t[],int n);main(){ int a[4]={1,2,3,4},s; s=f(a,4); printf(%d,s);}int f(int t[],int n){ if(n>0)return t[n-1]+f(t,n-1); else return 0;}程序运行后的输出结果是(  )。
    A

    4

    B

    10

    C

    14

    D

    6


    正确答案: B
    解析:
    函数f的功能是通过递归计算数组t中元素的和。在主函数中调用了递归函数f(a,4),将递归函数f(a,4)的递归式展开,s = f(a,4) = a[3] + f(a,3) = a[3] + a[2] + f(a,2) = a[3] + a[2] + a[1] + f(a,1) = a[3] + a[2] + a[1] + a[0] + f(a,0) = a[3] + a[2] + a[1] + a[0] + 0 = 4 + 3 + 2 + 1 + 0 = 10。答案选择B选项。