C语言指针数组函数练习(含参考答案) 下载本文

作 业(使用指针、数组、函数完成)

1. 编写一个通用函数,该函数可以实现判断:一个含有五位数字的整数是否是回文数。回文数的含义是从左向右与从右向左看,数是相同的。如:23732是回文数,而23564则不是。编写主程序调用该函数实现求所有5位数字中满足条件的数的个数。 #include int Judge(int num) { int w,q,b,s,g; w=num/10000; q=num000/1000; s=(num0)/10; g=num; if((w==g)&&(q==s)) return 1; else return 0; }

void main() { int count=0; int i; for(i=10000;i<=99999;i++) if(Judge(i)) count++; printf(\}

2.编写一个通用函数,该函数可以实现对数值型数组的倒序。倒序的含义是把数组的元素值前后颠倒。例数组:20,19,18,15,13,10倒序的结果为:10,13,15,18,19,20。编写主程序,数组初始化方式不限,并输出,然后调用该函数实现倒序后再输出倒序的结果。 #include #define N 6

void Transfer(double *b,int n) { double temp; double *i=b; double *j=b+n-1; while(j>i) { temp=*i; *i=*j; *j=temp; i++;

j--; } }

void main() { double array[N]={20,19,18,15,13,10}; int i; for(i=0;i

上三角的含义:左上部分(包含对角线元素),如下二维数组的0元素区域即为上三角。 0 0 0 0 0 0 0 0 0 7 0 0 0 3 8 0 0 5 9 3 0 2 4 6 7 数组A的数据如下: 15 45 56 73 11 34 74 85 54 70 56 98 56 89 67 98 54 83 12 59 77 87 74 48 33

#include #include

double Cal(double *p,int n) { int i,j; double sum=0; for(i=0;i

}

void main() { double a[5][5]={15, 45, 56 , 73 , 11,34 , 74 , 85 ,54 , 70,56, 98 , 56 , 89 , 67, 98, 54 , 83, 12 , 59,77 , 87, 74, 48, 33}; double rootsum=Cal(a[0],5); //或者double rootsum=Cal(&a[0][0],5); printf(\}

/*系统把二维数组看成数组元素为一维数组的一维数组,即对于二维数组a[2][3],系统会看成由两个一维数组a[0]和a[1]组成,而a[0]和a[1]中分别包含三个元素(a[0]和a[1]为一维数组名)。所以不能把二维数组名(类似于二级指针,不完全相同)赋给一个普通的指针变量,但能把a[0]赋给一个普通的指针变量(a[0]不是一个具体的元素,而是元素a[0][0]的地址)*/

4.编写一个通用函数,该函数可以实现统计一维数组中小于数组元素平均值的元素个数。编写主程序调用该函数,统计数组A(数据为:3521,5647,6849,5962,4567,2361,1247,5241,1246)中小于平均值的元素个数。 #include

int num(double *p,int num) { int count=0; double sum=0,avg=0; for(int i=0;i

void main() { double a[9]={3521,5647,6849,5962,4567,2361,1247,5241,1246}; int count =num(a,9); printf(\}

5.编写一个通用函数,该函数可以实现把一个十进制的正整数转换成七进制。例如把88转换成154。编写主程序调用该函数,把整数123455转换成七进制并输出。

注:把一个十进制的整数转换成七进制的方法是:把十进制数当作被除数,用7除,直到商为0为至,然后把余数倒序即可。例88除7的余数依次是4、5、1,则其七进制为:154。 #include

void Transfer(int num) {