c语言程序设计(第1部分)选择.docx

c语言程序设计(第1部分)选择

选择题(第一部分) 1、有以下程序 void fun(int a[],int i,int j) { int t; if(ij) { 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;i4;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(x,0,3);是将数组名x作为实参,把数组x的首地址传送给形参(指针a),这样数组x与形参指针a共占同一段内存单元,所以在调用函数期间,如果改变了形参数组x的值,也就改变了实参指针a的值。 另外此题还考了个函数自身的调用,下面是调用fun()函数的运行过程: a=x,i=0,j=3,判断ij,交换a[i],a[j],此时a[0]到a[3]里面的数分别为8,6,1,2,也即是 x[0]到x[3]中的数值,因为它们共用存储单元;i++; j--后继续调用fun(),此时i,j分别为1,2,

文档评论(0)

1亿VIP精品文档

相关文档