main( ){ int a[6]={10,20,30,40,50,60},i;invert(a,0,5);for(i=0;i<6;i++) printf(“%d,”,a

题目

main( )

{ int a[6]={10,20,30,40,50,60},i;

invert(a,0,5);

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

printf(“\n”);

}

invert(int s[ ],int i,int j)

{ int t;

if(i<J)

{ invert(s,i+1j-1);

t=s[i];s[i]=s[j];s[j]=t;

}

}

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

第1题:

以下程序运行后的输出结构是。main(){ int i,j,a[][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++) for(j=i;j<3;j++)a[j][i]=0; for(i=0;i<3;i++) { for(j=0;j<3;j++) printf("%d ",a[i][j]); printf("\n"); }}


正确答案:0 2 3 0 0 6 0 0 0
将a[0][0],a[1][0],a[2][0],a[1][1],a[2][1],a[2][2]赋值为0,所a[][3]={0,2,3,0,0,6,0,0,0}

第2题:

没有定义语句 int x[6]={2,4,6,8,5,7},*p=x,i; 要求依次输出x数组6个元素中的值,不能完成此操作的语句是

A.for(i=0;i<6;i++) printf("%2d",*(p++));

B.for(i=0;i<6;i++) printf("%2d",*(p+i);

C.for(i=0;i<6;i++) printf("%2d",*p++);

D.for(i=0;i<6;i++) printf("%2d",(*p)++);


正确答案:D
解析:本题首先定义了一个一维数组并初始化,接着定义了一个指针变量 p指向数组x。因此可以通过指针p的下移,即每次加1引用数组x中的元素,来指向数组中的每个元素,这样循环6次即可引用数组的每个元素。选项A、B和选项C满足要求,而在选项D中表达式为(*p)++,该表达式是先取*p的值然后将其值加1,而没有将指针下移一位。

第3题:

有以下程序,程序执行后,输出结果是【11】

#include <stdio.h>

void fun (int *a)

{a[0=a[1];]}

main()

{int a[10]={10,9,8,7,6,5,4,3,2,1},i;

for(i=2;i>=0;i--) fun{&a};

for(i=0;i<10;i++) printf(“&d”,a);

printf(“\n”);

}


正确答案:
117777654321

第4题:

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

A.1268

B.8621

C.8162

D.8612


正确答案:C
解析:函数fun()中用了一个if语句,当数组下标i小于数组下标j时,交换数组元素a[i]和a[j]的值,并使i值加1,j值减1。其功能就是把数组a中从下标i到j的元素首尾互换。主函数中定义一个数组x,该数组有4个元素,接着调用fun(a,O,3),其中将a数组的第一个元素的下标0和最后一个元素的下标3传给了函数fun(),故执行完该函数后,数组a中的元素首尾互换,因此最后依次输出的数组a中值为8、1、6和2,所以,4个选项中选项C符合题意。

第5题:

有以下程序 main() {int i; for(i=1;i<=40;i++) { if(i++%5=0) if(++i%8=0) printf ("%d",i); } printf("\n"); }

A.5

B.24

C.32

D.40


正确答案:C
解析:在满足for语句条件下,第—个if语句的条件是指i先对5取余后,再自行加1;第二个if语句的条件是指:i=i+1后,再对8取余。设可以满足第—个if语句的值为:x,那么可以满足第二个if语句的值为:x+2,转换为方程组:

x=32,所以答案选C。

第6题:

有以下程序:fun(int a[],int m,int n){int i;for(i=m;i<n;i++)a[i+1]=a[i]+3;return a[i+1];}void main(){int i,a[6]={2,4,6,8,10,12};fun(a,2,5);for(i=0;i<6;i++)printf("%d",a[i]);}程序运行后输出的结果是( )。A.24691315 B.24691215 C.249121518 D.249121415


正确答案:B
函数的功能是将数组的某个区域内的元素加3,赋给后一个元素,然后返回;题目是从a[2]到a[5]调用函数,a[2]=6,所以a[3]=6+3=9,a[4]=9+3=12,a[5]=12+3=15,所以结果为B

第7题:

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

A.1 2 6 8

B.8 6 2 1

C.8 1 6 2

D.8 6 1 2


正确答案:C
解析:函数fun()中用了一个if语句,当数组下标i小于数组下标j时,交换数组元素a[i]和a[j]的值,并使i值加1,j值减1。其功能就是把数组a中从下标i到j的元素首尾互换。主函数中定义一个数组,在定义该数组的时候缺省了定义长度,定义的同时将其初始化赋值,所以该数组的长度为初始化该数组时的元素的个数即4,接着调用 fun(a,0,3),其中将a数组的第一个元素的下标0和最后一个元素的下标3传给了函数 fun(),故执行完该函数后,数组a中的元素首尾互换,因此最后依次输出的数组a中值为 8,1,6和2。

第8题:

有以下程序 , 程序执行后 , 输出结果是【 1 1 】

#include <stdio.h>

void fun(int *a)

{ a[0]=a[1];}

main()

{ int a[10]={10,9,8,7,6,5,4,3,2,1},i;

for(i=2;i>=0;i--) fun(&a[i]);

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

printf("\n");

}


正确答案:

第9题:

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

第10题:

若有以下程序:includeint a[]={2,4,6,8};main(){int i; int *p=a; for(i=0;i<4;i++)a[

若有以下程序: #include<stdio.h> int a[]={2,4,6,8}; main() { int i; int *p=a; for(i=0;i<4;i++) a[i]=*p; printf("%d\n",a[2]); } 上面程序的输出结果是( )。

A.6

B.8

C.4

D.2


正确答案:D
解析:在C语言中,数组元素的下标是从0开始的。for循环语句中,指针变量p始终指向数组a的首地址,因而执行循环赋值语句后数组各元素的值均变为2。

更多相关问题