2014数据结构上机实验指导书答案 下载本文

内容发布更新时间 : 2024/12/29 8:31:12星期一 下面是文章的全部内容请认真阅读。

《数据结构实验指导书》答案

实验一:

1、 请编写函数int fun(int *a, int *b),函数的功能是判断两个指针a和b所指存储单元的值

的符号是否相同;若相同函数返回1,否则返回0。这两个存储单元中的值都不为0。在主函数中输入2个整数、调用函数fun、输出结果。 #include int fun(int *a, int *b) {

if (*a*(*b)>0) return(1); else return(0); }

main() {

int x,y;

scanf(\

if (fun(&x,&y)) printf(\else printf(\}

2、 计算1+2+3+??+100,要求用指针进行设计。即设计函数int fun(int *n)实现求

1+2+3+??+*n,在主函数中输入、调用、输出结果。

#include int fun(int *n) {

int i,sum=0;

for (i=1;i<=*n;i++) sum+=i; return(sum); }

main() {

int x,sum;

scanf(\

printf(\ }

3、 函数的功能是求数组a中最大数的位置(位序号)。在主函数中输入10个整数、调用函

数fun、输出结果。 #define N 10

#include void input(int *a,int n) { int i;

for (i=0;i

scanf(\}

int fun(int *a,int n) {

int i,*max; max=a;

for (i=1;i*max) max=a+i; return(max-a); }

main()

{int a[N],maxi; input(a,N); maxi=fun(a,N);

printf(\}?? 4、请编写函数fun(int *a,int n, int *odd, int *even),函数的功能是分别求出数组a中所有奇数之和和所有偶数之和。形参n给出数组中数据的个数;利用指针odd和even分别返回奇数之和和偶数之和。在主函数中输入10个整数、调用函数fun、输出结果。

#define N 10

#include void input(int *a,int n) { int i;

for (i=0;i

scanf(\}

void fun(int *a,int n, int *odd, int *even) {

int i,sum1=0,sum2=0;

for (i=0;i

*odd=sum1; *even=sum2; }

main()

{int a[N],odd,even; input(a,N);

fun(a,N, &odd, &even);

printf(\}

5、请编写函数int fun(int *a, int *b,int n),函数的功能是把数组a中所有为偶数的数,放在另一个数组中b。在主函数中输入10个整数、调用函数fun、输出结果。 #define N 10

#include void input(int *a,int n) { int i;

for (i=0;i

scanf(\}

void output(int *a,int n) { int i;

printf(\for (i=0;i

printf(\}

int fun(int *a, int *b,int n) {

int i,j=0;

for (i=0;i

}

main()

{int a[N],b[N],m; input(a,N); m=fun(a,b,N); output(b,m); }

6、请编写函数int fun(int *a,,int n),函数的功能是把数组a中最大数和最小数交换。在主函数中输入10个整数、调用函数fun、输出结果。

#define N 10

#include void input(int *a,int n) { int i;

for (i=0;i

scanf(\}

void output(int *a,int n) { int i;

printf(\for (i=0;i

printf(\}

void fun(int *a,int n) {

int i,*max,*min,temp; max=min=a; for (i=1;i*max) max=a+i; if (a[i]<*min) min=a+i; }

printf(\printf(\if (max!=min) {temp=*max;*max=*min;*min=temp;}

}

main()

{int a[N],m; input(a,N); fun(a,N); output(a,N); }??

7、请编写函数int fun(int a[4][4]),函数的功能是把矩阵a转置。在主函数中输入、调用函数fun、输出结果。

#define N 4

#include

void input(int a[][4],int n) { int i,j;

for (i=0;i

scanf(\}

void output(int a[][4],int n) { int i,j;

printf(\for (i=0;i

void fun(int a[][4],int n) {

int i,j,temp;

for (i=0;i