C51.rar
源代码在线查看: 6-2.lst
C51 COMPILER V7.09 6_2 08/25/2005 13:13:43 PAGE 1
C51 COMPILER V7.09, COMPILATION OF MODULE 6_2
OBJECT MODULE PLACED IN 6-2.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 6-2.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include
2 #include
3 #ifdef MONITOR51
char code reserve [3] _at_ 0x23; // 定义一个绝对地址
#endif
6 #define N 10
7 void main (void) {
8 1
9 1 void input(int arr[],int n); //函数声明
10 1 void sort(int *ptr,int n);
11 1 void output(int arr[],int n);
12 1 int a[N],*p; //定义一维数组和指针变量
13 1 #ifndef MONITOR51
14 1 SCON = 0x50;
15 1 TMOD |= 0x20;
16 1 TH1 = 221;
17 1 TR1 = 1;
18 1 TI = 1;
19 1 #endif
20 1
21 1 input(a,N) ; //数据输入函数调用,实参a 是数组名
22 1 p = a ; //指针变量指向数组的首地址
23 1 sort(p,N) ; //排序,实参p 是指针变量
24 1 output(p,N) ; //输出,实参p 是指针变量
25 1 while (1) {};
26 1 }
27 void input(int arr[],int n) //无需返回值的输入数据函数定义,形参a r //r 是数组
28 {
29 1 int i;
30 1 printf("input data:\n");
31 1 for( i = 0 ; i < n ; i++ ) //采用传统的下标法
32 1 scanf( "%d" , &arr[i] ) ;
33 1 }
34 void sort(int *ptr,int n) //冒泡排序,形参p t r 是指针变量、
35 {
36 1 int i,j,t;
37 1 for( i = 0 ; i < n - 1 ; i++ )
38 1 for( j = 0 ; j < n - 1 - i ; j++ )
39 1 if (*(ptr+j)>*(ptr+j+1)) //相临两个元素进行比较
40 1 {
41 2 t = * (ptr+ j ) ; //两个元素进行交换
42 2 *(ptr+ j ) = * (ptr +j+1) ;
43 2 *(ptr+ j + 1 ) = t ;
44 2 }
45 1 }
46 void output(int arr[],int n) //数据输出
47 {
48 1 int *ptr=arr; //利用指针指向数组的首地址
49 1 printf("output data:\n");
50 1 for( ; ptr-arr 51 1 printf("%4d",*ptr) ;
52 1 printf("\n");
53 1 }
C51 COMPILER V7.09 6_2 08/25/2005 13:13:43 PAGE 2
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 477 ----
CONSTANT SIZE = 36 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 49
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)