《C和指针》章节后编程练习解答参考——第10章

10.1spa

 

 1 #include <stdio.h>
 2 
 3 typedef struct 
 4 {
 5     unsigned char QuHao[5];
 6     unsigned char Exchange[10];
 7     unsigned char StnNum[10];
 8 }TelphoneNumber;
 9 
10 typedef struct 
11 {
12     unsigned char date[10];
13     unsigned char time[10];
14     TelphoneNumber    UserTelphone;
15     TelphoneNumber    CallTelphone;
16     TelphoneNumber    PayTelphone;
17 }Telphone_Call;
18 
19 int main (void)
20 {
21 
22     getchar();
23     return 0;
24 }

 

 

10.2rest

 

 1 #include <stdio.h>
 2 
 3 #define    NAMELENGTH    21
 4 #define    ADDRLENGTH    41
 5 #define    MODLLENGTH    21
 6 #define NAMEOFBANKLEN    21
 7 
 8 typedef struct
 9 {
10     float    ManufacturerSuggestedRetailPrice;
11     float    ActualSellingPrice;
12     float    SalesTax;
13     float    LicensingFee;
14 }CashSale;
15 
16 typedef struct
17 {
18     float    ManufacturerSuggestedRetailPrice;
19     float    ActualSellingPrice;
20     float    DownPayment;
21     float    SecurityDeposit;
22     float    MonthlyPayment;
23     int        LeaseTerm;
24 }Rent;
25 
26 typedef struct
27 {
28     float    ManufacturerSuggestedRetailPrice;
29     float    ActualSellingPrice;
30     float    SalesTax;
31     float    LicensingFee;
32     float    DownPayment;
33     int        LoanDuration;
34     float    InterestRate;
35     float    MonthlyPayment;
36     char    NameOfBank[NAMEOFBANKLEN];
37 }LoanSale;
38 
39 typedef struct
40 {
41     char    CustomerName[NAMELENGTH];
42     char    CustomerAddr[ADDRLENGTH];
43     char    Model[MODLLENGTH];
44     CashSale    CashSal;
45     Rent        RentSal;
46     LoanSale    LoanSal;
47 }SaleRecord;
48 
49 int main (void)
50 {
51 
52     getchar();
53     return 0;
54 }

 

 

10.3code

 

 1 #include <stdio.h>
 2 
 3 typedef struct
 4 {
 5     unsigned int    dst_reg        : 3;    //0-2
 6     unsigned int    dst_mode    : 3;    //3-5
 7     unsigned int    opcode        : 10;    //6-15
 8 }SingleOperat;
 9 
10 typedef struct
11 {
12     unsigned int    dst_reg        : 3;    //0-2
13     unsigned int    dst_mode    : 3;    //3-5
14     unsigned int    src_reg        : 3;    //6-8
15     unsigned int    src_mode    : 3;    //9-11
16     unsigned int    opcode        : 4;    //12-15
17 }DoubleOperat;
18 
19 typedef struct
20 {
21     unsigned int    offset        : 8;    //0-7
22     unsigned int    opcode        : 8;    //8-15
23 }Branch;
24 
25 typedef struct
26 {
27     unsigned int    dst_reg        : 3;    //0-2
28     unsigned int    dst_mode    : 3;    //3-5
29     unsigned int    src_reg        : 3;    //6-8
30     unsigned int    opcode        : 7;    //9-15
31 }RegistSrc;
32 
33 typedef struct
34 {
35     unsigned int    opcode        :16;    //0-15
36 }MiscCmd;
37 
38 typedef struct
39 {
40     unsigned short    addr;
41     SingleOperat    sgl_op;
42     DoubleOperat    dbl_op;
43     Branch            branch;
44     RegistSrc        reg_src;
45     MiscCmd            misc;
46 }machine_inst;
47 
48 machine_inst    x;
49 
50 int main (void)
51 {
52 
53     getchar();
54     return 0;
55 }