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

题目

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

参考答案和解析
正确答案:4
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

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

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

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

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

D.2,3,4,5,6,


正确答案:B
解析:调用函数f()时,将数组a的地址传递给了指针q,此时q指向的就是数组a的第一个元素a[0]。在5次循环过程中,q始终指向a[0],因此a [0]的值增加了5。最后的输出结果为“6,2,3,4,5”。

第2题:

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后的语句。

第3题:

有以下程序

void f(int *q)

{ int i=0;

for( ; i<5;i++)(*q)++;

}

main( )

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

f(a);

for(i=0;i<5;i++)printf("%d,",a[i]);

}

程序运行后的输出结果是

A)2,2,3,4,5,

B)6,2,3,4,5,

C)1,2,3,4,5,

D) 2,3,4,5,6,


正确答案:B

第4题:

若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

第5题:

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

第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,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,所以,4个选项中选项A符合题意。

第7题:

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

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

int q=x;

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


正确答案:2
2

第8题:

有以下程序

void f(int *q)

{int i=0;

for( ; i<5;i++)(*q)++;

}

main()

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

f(a);

for(i=0;i<5;i++)printf(“%d,”,a[i]);

}

程序运行后的输出结果是( )。

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

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

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

D.2,3,4,5,6,


正确答案:B

第9题:

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

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

第10题:

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

更多相关问题