3、10 答案:A,注意:,(1)形参x的基类型必须与主函数中数组a的类型一致。 (2)在fun函数中引用主函数数组a中的元素时,只能使用fun函数中指向主函数数组的指针来引用主函数中的数组元素。 (3)用户定义函数fun的首部也可以写成fun(int x, int n)或fun(int x5, int n)。,三. 一维数组元素地址作实参,一维数组元素的地址作为函数的实参与一维数组名作为函数的实参有相似之处。它们都是地址值,对应的形参也应当是基类型相同的指针变量。,例11.2 有以下程序: void sum(int p) p0=p-1+p1; main() int a10=1,2,3,4,5,6。
4、,7,8,9,10; sum( 程序运行后的输出结果是_______。 6 B) 7 C) 5 D) 8 答案:A,记:,数组元素作参数,传递的是值。 数组名作参数,传递的是地址。 数组元素地址作参数,需要加 fun(s); 则fun函数的首部可以是以下3种形式之一: (1)fun(double (*a)N)。 (2)fun(double aN)。 (3)fun(double aMN)。,注意:,列下标不可省略。无论是哪种方式,系统都将把a处理成一个行指针。和一维数组相同,数组名传送给函数的是一个地址值,因此,对应的形参也必定是一个类型相同的指针变量。在函数中引用的将是主函数中的数组元素,系统。
5、只为形参开辟一个存放地址的存储单元,而不可能在调用函数时为形参开辟一系列存放数组的存储单元。,例11.3 将二维数组a中的元素转置存放到二维数组b中。 #define N 3 void fun(int aN, int bN) int i, j; for(i=0; i6、)有以下程序,程序执行后,输出结果是#includevoidfun(int*a) a0 =a1; main() inta10=10,9,8,7,6,5,4,3,2,1,i; for(i=2;i=0;i-) fun(,例题,(32)有以下程序 #include void fun(int a, int b) int t; t=a; a=b; b=t; main() int c10=1,2,3,4,5,6,7,8,9,0), i; for (i=0; i<10; i+=2) fun(ci, ci+l); for (i=0; i<10; i+) printf(%d, ci); printf(n); 程。
7、序的运行结果是( )。 A) l,2,3,4,5,6,7,8,9,0, B) 2,l,4,3,6,5,8,7,0,9, C) 0,9,8,7,6,5,4,3,2,1, D) 0,1,2,3,4,5,6,7,8,9,例题,(34)有以下程序 #include void fun(int a, int n) int i, t; for(i=0; i8、n); 程序的运行结果是( )。 A)345678 B)876543 C)1098765 D)321678,例题,35)有以下程序 #include #define N 4 void fun(int aN, int b) int i; for(i=0; i9、,(36)有以下程序 #include int fun(int (*s)4,int n, int k) int m, i; m=s0k; for(i=l; im) m=sik; return m; main() int a44=1,2,3,4),11,12,13,14,2l,22,23,24,31,32,33,34; printf(%dn, fun(a,4,0); 程序的运行结果是( )。A)4 B)34 C)31 D)32,例题,(10)以下程序的输出结果是 【10】 。 #include #define N 5 int fun(int *s, int a, int n) int j; *s。
10、=a; j=n; while(a!=sj)j-; return j; main() int sN+1; int k; for(k=l; k<=N; k+) sk=k+l; printf(%dn,fun(s,4,N);,例题,(32)有以下程序 #include void fun(int *s,int nl,int n2) int i,j,t; i=nl; j=n2; while(i