#include <stdio.h>
int a[5]={ 7,2,9,10,3 };
void st(int *,int);
void main()
{
int i;
st(a,5);
for(i=0;i<5;i++)
printf("%4d",a[i]);
printf(" ");
}
void st(int *b,int n)
{
int i,m,t;
if(n==1) return;
m=0;
for(i=1;i<n;i++)
if(b[i]<b[m]) m=i;
t=b[0];b[0]=b[m];b[m]=t;
b++;n--;
st(b,n);
}
程序的运行结果是
int a[5]={ 7,2,9,10,3 };
void st(int *,int);
void main()
{
int i;
st(a,5);
for(i=0;i<5;i++)
printf("%4d",a[i]);
printf(" ");
}
void st(int *b,int n)
{
int i,m,t;
if(n==1) return;
m=0;
for(i=1;i<n;i++)
if(b[i]<b[m]) m=i;
t=b[0];b[0]=b[m];b[m]=t;
b++;n--;
st(b,n);
}
程序的运行结果是
答案:C
A) 2 10 3 9 7
B) 2 7 3 9 10
C) 2 3 7 9 10
计算数组array中元素下标为len到0的所有元素的和。
#include <stdio.h>
int sum(int* array, int len)
{
if (len == 0)
return array[0];
else
return array[0] + sum(array+1, len-1);
}
main()
{
int array[5] = {1,2,3,4,5};
int res = sum(array, 4);
printf("%d
", res);
}
41.
有以下程序
#include <stdio.h>
void f(int x[], int n)
{ if (n > 1)
{ printf("%d,", x[n-1]);
f(x, n-1);
printf("%d,", x[n-1]);
}
else
printf("%d,", x[0]);
}
main( )
{ int z[3] = {1, 2, 3};
f(z,3);
printf(" ");
}
程序运行后的输出结果是
#include <stdio.h>
void f(int x[], int n)
{ if (n > 1)
{ printf("%d,", x[n-1]);
f(x, n-1);
printf("%d,", x[n-1]);
}
else
printf("%d,", x[0]);
}
main( )
{ int z[3] = {1, 2, 3};
f(z,3);
printf(" ");
}
程序运行后的输出结果是
答案:D
A)1,2,3,1,2,3,
B)3,1,3,
C)1,2,3,2,1,
D)3,2,1,2,3,
f函数是将数组x进行输出,依次输出为z(2),z(1),z(0),z(1),z(2),即3,2,1,2,3,。