题目:原样输入实验指导书实验六exp6_1.c源代码。要求: ① 编辑、编译、链接并运行程序,观察运行结果。 ② 观察4个用于交换的函数,观察对应的形参与实参,注意正确的调用形式。分析为什么有的能实现实参变量的交换而有的不能。 ③ 用F10键单步跟踪程序,运行到函数调用语句时改用F11键,进入被调函数内再用F10键观察每一步程序运行时实参与形参的作用域以及值的变化情况。
源代码:
#include<stdio.h>voidswap1(int,int);voidswap2(int*,int);voidswap3(int*,int*);voidswap4(int*,int*);intmain(int argc,charconst*argv[]){int x=13,y=31;swap1(x,y);printf("%2d %2d\n",x,y );
x=13,y=31;swap2(&x,y);printf("%2d %2d\n",x,y );
x=13,y=31;swap3(&x,&y);printf("%2d %2d\n",x,y );
x=13,y=31;swap4(&x,&y);printf("%2d %2d\n",x,y );return0;}voidswap1(int a,int b){int temp =a;
a = b;
b = temp;}voidswap2(int*a,int b){int temp=*a;*a = b;
b = temp;}voidswap3(int*a,int*b){int temp =*a;*a =*b;*b = temp;}voidswap4(int*a,int*b){int*temp = a ;
a = b;
b = temp;}
#include<stdio.h>voidMax(double*ar,int n);voidPrintf(double*ar,int n);voidMin(double*ar,int n);voidAverage(double*ar,int n);voidBubbleSort(double*ar,int n);intmain(){int i,n;double array[10],*p=array;printf("qing shu ru cun ru ge shu :");do{scanf("%d",&n);}while(n<=0||n >10);printf("qing shu ru cun fang de shu :\n");for(i=0;i<n;i++){scanf("%lf",&array[i]);}for(i=0;i<n;i++)printf("array[%d]:%lf\t",i,*(p+i));printf("\n");Printf(p,n);Max(p,n);Min(p,n);Average(p,n);BubbleSort(p,n);for(i=0;i<n;i++)printf("array[%d]:%lf\t",i,*(p+i));printf("\n");}voidPrintf(double*ar,int n){int i;for(i=0;i<n;i++){printf("array[%d]:%p\t",i,&ar+i);}printf("\n");}voidMax(double*ar,int n){int i;double max;
max =*ar;for(i=0;i<n;i++)if(*(ar+i)>max)
max=*(ar+i);printf("max is %5lf\n",max);}voidMin(double*ar,int n){int i;double min;
min =*ar;for(i=0;i<n;i++)if(*(ar+i)<min)
min=*(ar+i);printf("min is %5lf\n",min);}voidAverage(double*ar,int n){int i;double sum;for(i=0;i<n;i++){
sum+=*(ar+i);}printf("average is %5lf\n", sum/n);}voidBubbleSort(double*ar,int n){int i,j,temp;for(i=0;i<n-1;i++)for(j =i+1;j<n;j++)if(*(ar+i)>*(ar+j)){
temp =*(ar+i);*(ar+i)=*(ar+j);*(ar+j)=temp;}}
#include<stdio.h>#include<string.h>intmain(int argc,charconst*argv[]){char str[10][1000];int i,j;printf("qing shu ru 10 ge zi fu :\n");for(i=0;i<10;i++){scanf("%s",str[i]);}for(i=0;i<9;i++){for(j=0;j<9-i;j++){if(strcmp(str[j],str[j +1])>0){char strx[10]={0};strcpy(strx,str[j]);strcpy(str[j],str[j+1]);strcpy(str[j+1],strx);}}}printf("pai xu hou jie guo :\n");for(i=0;i<10;i++){printf("%s\n",str[i]);}return0;}