更多“下列程序段执行后,a[4]的值为()    int[] a={1,2,3,4,5};     a[4]=a[a[2]];”相关问题
  • 第1题:

    a的值为3时,下列程序段被执行后,c的值是( )。 int c=1; if (a<0) if (a<3) c=2; else c=3; else c=4;

    A.1

    B.2

    C.3

    D.4


    正确答案:C
    解析:本题主要考查if-else的使用,当订语句中的条件为真时执行其后的语句,并跳过else执行下面的语句;当条件为假时执行else后的语句。

  • 第2题:

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

  • 第3题:

    若a的值为3时,下列程序段被执行后,c的值是 ( ) int c=1; if(a>0) if(a>3) c=2; else c=3; else c=4;

    A.1

    B.2

    C.3

    D.4


    正确答案:C

  • 第4题:

    有以下程序:include prt(int * m,int n)int i;for(i =0;i

    有以下程序:#include <stdio.h>prt(int * m,int n) int i; for(i =0;i<n;i ++ ) m[i] ++;main( )} int a[ ] = { 1,2,3,4,5} ,i; prt(a,5); for(i =0;i<5;i ++ ) printf( "% d," ,a[i] );}程序运行后的输出结果是( )。

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

    B.2,3,4,5,6,

    C.3,4,5,6,7,

    D.2,3,4,5,1


    正确答案:B
    解析:prt(a,5);用数组名a作函数实参,不是把a数组的值传递给形参m,而是将数组a的首地址传递给指针变量m,使指针变量m指向数组a的首地址,这样他们就占用同一段内存单元。当改变了指针变量所指向的存储单元中的内容,也就改变了数组a中的元素。函数pit的作用是将指针变量m所指向的存储单元中的各元素值加1,也就是数组a中各元素的值加l,所以输出结果为:2,3,4,5,6,

  • 第5题:

    下列程序的运行结果是()。includevoid sub(int*s,int*y){static int m=4;*y=s[0];m++;}

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

    A.1,1,1,1,1,

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

    C.0,0,0,0,0,

    D.4,4,4,4,4,


    正确答案:A
    解析:本题中sub(int*s,int*y)函数的参数是两个指针型变量,在函数体内将数组s的第一个元素赋给y。主程序内,首先定义了一维数组并赋初值,然后通过for循环,5次调用sub(a,&x)函数,每一次调用都是将数组a的第一个元素1赋给x,并输出。

  • 第6题:

    有以下程序 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,2,3,4,5,


    正确答案:A
    解析:递归调用,当第3次进行递归调用时结束调用过程,排序结果为:5,4,3,2,1。

  • 第7题:

    下列程序的运行结果是()。includevoid sub(int*s,int*y){static int m=4:*y=s[m];m--;}

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

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

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

    C.0,0,0,0,0,

    D.4,4,4,4,4,


    正确答案:A
    解析:本题考查的是静态变量以及函数的实参与形参之间的地址值传递。sub()函数数中定义的变量m是一个静态变量,系统可为其分配固定的存储空间,重复使用时,变量的值保留;所以当mam()函数中的for循环中语句sub(a,&x);执行时,sub函数中m的值依次是4,3,2,1,0;因为变量x进行的是地址值传递,所以最后依次输出的是数组a的元素a[4]、a[3]、a[2]、a[1]、a[0]。

  • 第8题:

    执行以下的程序段后,m的值是______。 int a[2][3]={{1,2,3},(4,5,6}}; int m,*p; p=&a[0][0]; m=p[4];

    A.4

    B.5

    C.3

    D.不确定


    正确答案:B
    解析:程序中定义了一个指向整型变量的指针变量,并对其赋值为二维整型数组a的首元素的地址。P[4]等价于*(p+4),即二维数组a中第四个元素的值,而a是一个2*3的二维数组,其第四个元素为a[1][1],即5。

  • 第9题:

    有以下程序: Void f(int a[],iht i,int j) { int t; if(i<j) { t=a[i]; a[i]=a[j]; a[j]=t; f(a,i+1,i-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
    解析:在C语言中所谓函数的递归是在指在调用一个函数的过程中,又出现了直接或间接地调用该函数本身,直接调用该函数本身的称为函数递归,而间接调用该函数称为函数的间接递归调用.由程序可以看出函数f(a,i,j)为一递归函数,其功能是i

  • 第10题:

    有以下程序 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
    解析:在C语言中所谓函数的递归是指在调用一个函数的过程中,又出现了直接或间接地调用该函数本身,直接调用该函数本身的称为函数递归,而间接调用该函数称为函数的间接递归调用。由程序可以看出函数f(a,i,j)为一递归函数,其功能是当ij时,将数组中的元素a[i]和a[j]交换,然后再调用函数f(a,i+1,j-1),将数组中 a[i+1]和a[j--]交换,这样一直递归到数组下标i=j,可见该递归函数的作用是使数组中首尾元素依次互换。主函数中定义了—个长度为5的数组aa并初始化,然后调用f(a,0, 4),将数组a中的元素依次互换,故最后for循环输出的数组aa中各元素的值为5、4、3、2、1。

  • 第11题:

    下列程序段执行后,a[4]的值为()。int[]a={1,2,3,4,5};a[4]=a[a[2]];


    正确答案:4

  • 第12题:

    填空题
    下列程序段执行后,a[4]的值为()。int[]a={1,2,3,4,5};a[4]=a[a[2]];

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

  • 第13题:

    执行下列语句段后程序的输出结果是______。

    int x[]={1,2,3,4,5};

    int q=x;

    cout<<*(++q)<<end1;


    正确答案:2
    2

  • 第14题:

    下列数组的初始化正确的是_________。

    A.int[]score=newint[5]{1,2,3,4,5};

    B.int[5]score=newint[]{1,2,3,4,5};

    C.intscore={1,2,3,4,5};

    D.int[]score=newint[5];


    正确答案:D

  • 第15题:

    有以下程序 prt(int *m,int n) {int i; for(i=0;i<n;i++)m[i]++; } main() { int a[]={1,2,3,4,5},i; prt(a,5); for(i=0;i<5;i++) printf("%d,",a[i]); } 程序运行后的输出结果是

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

    B.2,3,4,5,6,

    C.3,4,5,6,7,

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


    正确答案:B
    解析:函数ptr(*m,n)中,参数m传递的是一个地址,所以可以改变主函数中数组a的各元素值,函数ptr(*m,n)的功能是将数组的各元素都自加1,所以,最后数组a中的各元素为2,3,4,5,6。

  • 第16题:

    下列程序的执行结果是______。 print(int*b,int m) { int i; for(i=0;i<m;i++) {*b=i; b++; } printf("%d\n",*--B) ; } main() { int a[5]=}1,2,3,4,5}; print(a,5);}

    A.5

    B.4

    C.3

    D.2


    正确答案:B
    解析:函数print中形参b指向数组a的首地址,for循环将0~4依次赋给元素a[0]~a[4],指针b指向数组后的地址,输出函数先将指针b自减,指向元素a[4],输出为4。

  • 第17题:

    执行以下的程序段后,m的值是 ______ 。 int a[2][3]={{(1,2,3),{4,5,6}} int m,*p; p=aa[0][0]; m=p[4];

    A.4

    B.5

    C.3

    D.不确定


    正确答案:B
    解析:程序中定义了一个指向整型变量的指针变量,并对其赋值为二维整型数组a的首元素的地址。p[4]等价于*(p+4),即二维数组a中第四个元素的值,而a是一个2*3的二维数组,其第四个元素为a[1][1],即5。

  • 第18题:

    执行以下程序段后,m的值为______。 int a[2][3]={ {1,2,3},{4,5,6} }; int m,*p; p=&a[0][0]; m=(*p)*(*(p+2))*(*(p+4));

    A.15

    B.14

    C.13

    D.12


    正确答案:A

  • 第19题:

    有下列程序: int fun(int x[],int n) { static int sum=0,i: for(i 0;i<n;i++) sum+=x[i]; return sum; } main { int a[]={1,2,3,4,5),b[]一{6,7,8,9),s=0: s=fun(a,5)+fun(b,4);printf("%d\n",s): } 程序执行后的输出结果是( )。

    A.45

    B.50

    C.60

    D.55


    正确答案:C
    在函数intfun(intxE],intn)的定义中,变量sum为一个静态局部变量。由于在整个程序运行期间,静态局部变量在内存中的静态存储中占据着永久的存储单元。函数intfun(intx[],intn)的功能是求出数组X[]各个元素的和,所以在j三函数中,调用函数fun(a,5)后,变量sum=1+2+3+4+5=15,当再次调用fun(b,4)后,变量sum=15+6+7+8+9=45,所以S=l5+45=60。

  • 第20题:

    若a的值为3时,下列程序段被执行后,c的值是 int c = 1; if (a>0) if (a>3) c = 2; else c = 3; else c = 4;

    A.1

    B.2

    C.3

    D.4


    正确答案:C
    解析:此题主要考查if-else的使用,当if语句中的条件为真时执行后的语句,并跳过else执行下面的语句;当条件为假时执行else后的语句。

  • 第21题:

    执行下列程序段后,变量y的值为( ) int x[]={1,2,3,4},y,*p=&x[1]; y=(*--P)++;

    A.1

    B.2

    C.3

    D.4


    正确答案:A
    从数据定义语句中可以得出下列结论:指针变量P指向的数组元素是x[1]。再来分析赋值句的右边表达式“(*--p)++”,其中的“--”优先于“*”先计算“--p”,使得p指向数组元素x[0];所以“(*--p)”就是数组元素a[0],再计算其后的“++”,由于“++”是后缀,所以表达式的值就是数组元素x[0]的值,为1,然后再对数组元素x[0]加1。因此变量y的值是1。本题答案应选A。

  • 第22题:

    有如下程序段: int total = 0; for ( int i = 0; i < 4; i++ ){ if ( i == 1) continue; if ( i == 2) break;total += i;} 则执行完该程序段后total的值为()

    • A、0
    • B、1
    • C、3
    • D、6

    正确答案:A

  • 第23题:

    数组定义与赋初值语句如下:int[]a={1,2,3,4,5};则a[2]的值为()。


    正确答案:3

  • 第24题:

    单选题
    有如下程序段: int total = 0; for ( int i = 0; i < 4; i++ ){ if ( i == 1) continue; if ( i == 2) break;total += i;} 则执行完该程序段后total的值为()
    A

    0

    B

    1

    C

    3

    D

    6


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