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

  • 格式:doc
  • 大小:26.00 KB
  • 文档页数:4

下载文档原格式

  / 11
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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

1. 编写一个通用函数,该函数可以实现判断:一个含有五位数字的整数是否是回文数。回文数的含义是从左向右与从右向左看,数是相同的。如:23732是回文数,而23564则不是。编写主程序调用该函数实现求所有5位数字中满足条件的数的个数。

#include

int Judge(int num)

{

int w,q,b,s,g;

w=num/10000;

q=num%10000/1000;

s=(num%100)/10;

g=num%10;

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("%d\n",count);

}

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

printf("%.0f\t",array[i]);

Transfer(array,N);

printf("\n");

for(i=0;i

printf("%.0f\t",array[i]);

printf("\n");

}

3.编写一个通用函数,该函数可以实现求数值型二维数组的上三角各元素的平方根的和(即先对上三角各元素求平方根,然后再对平方根求和)。编写主程序调用该函数,计算数组A 的上三角元素的平方根的和。

上三角的含义:左上部分(包含对角线元素),如下二维数组的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

for(j=0;j

sum+=sqrt(*(p+i*n+j));

return sum;

}

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("%f\n",rootsum);

}

/*系统把二维数组看成数组元素为一维数组的一维数组,即对于二维数组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

sum+=*(p+i);

avg=sum/num;

for(i=0;i

if(*(p+i)

count++;

return count;

}

void main()

{

double a[9]={3521,5647,6849,5962,4567,2361,1247,5241,1246};

int count =num(a,9);

printf("%d\n",count);

}

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

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

void Transfer(int num)

{

相关主题