本文作者:qiaoqingyi

编程应用题(编程题目解答)

qiaoqingyi 07-15 113

  1.分析输出结果 int arr[] = {6,7,8,9,10};

  int *ptr = arr;

  *(ptr++)+=123;

  printf(“ %d %d ”, *ptr, *(++ptr));

  输出:8 8

  过程:对于*(ptr++)+=123;先做加法6+123,然后++,指针指向7;对于printf(“ %d %d ”, *ptr, *(++ptr));从后往前执行,指针先++,指向8,然后输出8,紧接着再输出8

  2 分析输出结果

  void g(int**);

  int main()

  {

  int line[10],i;

  int *p=line;

  for (i=0;i10;i++)

  {

  *p=i;

  g(p); //数组对应的值加1

  }

  for(i=0;i10;i++)

  printf("%dn",line[i]);

  return 0;

  }

  void g(int**p)

  {

  (**p)++;

  (*p)++;//

  }

  输出:

  1

  2

  3

编程应用题(编程题目解答)

  4

  5

  6

  7

  8

  9

  10

  3 用递归算法判断数组a[N]是否为一个递增数组。

  答案:

  递归的方法,记录当前最大的,并且判断当前的是否比这个还大,大则继续,否则返回false结束:

  bool fun( int a[], int n )

  {

  if( n= =1 )

  return true;

  if( n= =2 )

  return a[n-1] = a[n-2];

  return fun( a,n-1) ( a[n-1] = a[n-2] );

  }

阅读
分享