有以下程序:#include <stdio.h>void f(int * x,int * y) int t; t= *x; *x= *y; *y=t;main ( ){ int a[8] = { 1,2,3,4,5,6,7,8} ,i,

admin2009-01-15  18

问题 有以下程序:#include <stdio.h>void f(int * x,int * y)       int t;    t= *x; *x= *y; *y=t;main ( ){  int a[8] = { 1,2,3,4,5,6,7,8} ,i, * p, * q;    p=a;q =&a[7];    while(p<q) { f(p,q) ;p ++ ;q --; }    for(i =0;i<8;i ++ ) printf(" % d," ,a); }程序运行后的输出结果是(     )。

选项 A、8,2,3,4.,5,6,7,1,
B、5,6,7,8,1,2,3,4,
C、1,2,3,4,5,6,7,8,
D、8,7,6,5,4,3,2,1,

答案8

解析 程序中函数f的作用是交换指针变量x和y所指向的存储单元的值。在main函数中,通过P=a;q=&a[7];指针变量p指向数组的第一个元素,指针变量q指向数组的最后一个元素。通过调用函数f(p,q)进行前后对称位置上的数组元素的交换。当while循环4次(即p =q)后,a数组中各元素的值分别为8,7,6,5,4,3,2,1,所以程序输出的结果为:8,7,6,5,4,3,2,1,
转载请注明原文地址:https://kaotiyun.com/show/VzXp777K
0

最新回复(0)