ϰ1.1
1.׼޷ͺͱ׼з͡׼޷ְ_Boolunsigned charunsigned short intunsigned intunsigned long intunsigned long long int׼зְsigned charsigned short intsigned intsigned long intsigned long long int
2.(A)
3.ԡsigned long int m;
4.(ABD)
5.(int)   (speed,width,height)   (int)   (speed,width,height)
6.(AB)
7.(A)

ϰ1.2
1.ֵָʾ˵ıʽmֵΪı3ֵֻһ֡
2.a)bǱʽĺ壬ǳʱĶcǳʱݱ涯ִкĽ⡣
3.⣨ΪֵһֵתΪǸĴ洢ֵΪֵתΪܶҪĲֵֵתΪĴ洢ֵ

ϰ1.3
1.(a)  (b)  (c)  (d)  (e)  (f)
2.(BEFG)  (D)  (G)
3.(ʽ)  (;)
4.(B)  (D)  (E)
5.(BCD)

ϰ2.1
1.һִк󣬱mֵΪ1ڶִк󣬱mֵΪ0
2.ִк󣬱sumֵΪ0nֵΪ1

ϰ2.2
ԣΪcusumҪ1

ϰ2.3
(C)   (B)

ϰ3.1
CԲֺ֧Ĳгʼ⽫±ʱĴ

ϰ3.2
1ִк󣬱xֵΪ1yֵҲΪ12ִк󣬱xֵΪ2zֵΪ1

ϰ3.3
ģΪӵsumֵǱnǰԭֵ++ nǡ

ϰ3.4
1.ο𰸣
unsigned long long int cusum (unsigned long long int r)
{
    unsigned long long int n = 0, sum = 0;

    while (r > n) sum += n += 1;

    return sum;
}

2.ο𰸣
unsigned long long int cusum (unsigned long long int r)
{
    unsigned long long int n = 0, sum = 0;

    while (n < r) sum += ++ n;

    return sum;
}

3.ΪֵȼڼǴϵģʱʽsum = sum + n = n + 1ȼsum = ((sum + n) = (n + 1))ǣʽ(sum + n) = (n + 1)Ҫӱʽsum + nΪֵĽֵֵ

4.
(a)ԡΪͱʽc > d > e <= fԣȼ((c > d) > e) <= fҲ˵c>dĽ01eֵȽϣȽϵĽ0101fֵȽϡ
(b)  ((((a + b) + c) > d) > e) <= f
(c)fķֵ1

ϰ3.5
еķöֵ˳ݡ

ϰ3.6
еķöֵ˳ݡ


ϰ3.7
1. (y = z, x = ++ y)  (1)
2. е㣬ζţ磬ֵn ++ֵ͸ɺֵsum += nֵsum += nֵn ++ǲͬģͬ

ϰ3.8
(1)  (1)  (1)

ϰ3.9
1.ʽn = n + 1ֵʱҪõ=Ľȶnӷ˺дn˳Ա֤nֵһȷģͬʽsum = sum + nֵʱҲȶsumnӷȻŻдsum˳Ա֤sumֵһȷġ
2.ʽԱyθã˳ȷδΪ

ϰ3.10
1.
next:
    
        unsigned long long int sum = 0;
     

next:
     {
        unsigned long long int sum = 0;
        while (r) sum += r --;
      }
2.ʹñ½ĸԡ

ϰ4.1
(1)  (2)

ϰ4.2
1. m     * p     f (void)
2.
3.Ϸpʵintʽ& xint *

ϰ4.3
1.(& * pf)ΪָʾpfԶתΪָ룬* pfĽǺָʾ&*pfĽǺָ롣ơ
2.Ϊ
int (* pf) (char, char); 
Ϊint (*) (char, char)

ϰ4.4
1.
int main (void)
{
    char m = 102, n = 103, * pc c;

    pc = swaprp (& m, & n);
    c = * (swaprp (& m, & n));  //㲻ȼʹš
}

2.
_Bool cusum (unsigned long long int * sum, unsigned long long int * r)
{
    if (* r == 0 || * r > 1000000000) return 0;

    * sum = 0;

    while (* r) (* sum) += (* r) --;

    return 1;
}

3. (acde)   (b)

4.  (a)

5.  (b)    (c)

ϰ4.5
Ϸʽp += qǽһֵָӵһָָͲӡ

ϰ4.6
37intͣ0x98Llong intͣ056unsigned long long int͡

ϰ4.7
õ͵ֵM

ϰ4.8
ʽsl += cx * 3Lsigned long intslһ£ʽul += sl <= ulunsigned long intulһ¡ֵʽҲΣֵʽͺ͸ֵһ¡

ϰ4.9
1.-1浽ЩɵõЩ޷͵ֵ
2.3uunsigned intȻunsigned intҲǱʽ-3uĽ͡Ľĸֵunsigned intܱʾֵΪ-3תΪunsigned intͣԱʽ-3uĽunsigned int͵ֵ1ټȥ3͵Ȼunsigned int

ϰ4.10
1.ʽ(unsigned long long) & mǽһָ루mĵַתΪunsigned long longʽ(unsigned long long) mǽmֵתΪunsigned long long͡
2.οӣ
int f (int x, int y)
{
    return x + y;
}

int main (void)
{
    unsigned long long int m;
    m = (unsigned long long int) & f;
    int sum = ((int (*) (int, int)) m) (20, 30);
}

ϰ4.11
1.һθֵ󣬱resֵΪ1ڶθֵΪ2
2.ԱʽʼΪintͲͬо档

ϰ4.12
(ABD)

ϰ4.13
int (* * ppf) (void);

ϰ5.1
(5)

ϰ5.2
ԣϻ۲졣

ϰ5.3
ϻ

ϰ5.4
1.ϻ
2.ַ'G'intӱʽ"good"char [5]ӱʽ* "good"charڸñʽֵĹУ"good"ͣchar [5])ֵԶתΪָԪصָ(char *)*"good"õһֵԪأΪchar 

ϰ5.5
ο𰸣
int main (void)
{
    int x = 0, a [] = {5, [7] = 7, [11] = 8}, b [sizeof a / sizeof (int)];
    
    while (x < sizeof a / sizeof (int))
    {
        * (b + x) = * (a + x);
        x ++;
    }

    char c = * ("Are you sure?" + 2);
}

ϰ5.6
ο𰸣
int main (void)
{
    int a [5] = {37, 1, 62, 58, 33}, b [7];

    for (int x = 0; x < sizeof a / sizeof (int); x ++)
        b [x] = a [x];
}

ϰ5.7
1. a.   b.   c.   d.  
2.пܻΪ洮"hi"ܲд롣
3.οĳ
_Bool strcmp (char * s1, char * s2)
{
    while (* s1 != '\0' && * s2 != '\0')  //ַָָǿַ
        if (* s1 ++ != * s2 ++) return 0;

    //ѭпַǲͬģ"abc""abcd"
    return * s1 == * s2;
}

ϰ5.8
οĴ𰸣
int main (void)
{
    char a [] = "hello,world.";
    char * p = a, * q = a;	//pqֵָ鿪ͷ
    while (* q != '\0') q ++;	//qֵָĩβĿַ

    -- q;			//qֵָһǿַ
    char c;
/*ƶpֵָԪأǰƶqֵָԪأ
**ÿƶǰȽָԪصֵ
**ѭָƶû
*/
    while (p < q)
    {
        c = * p, * p = * q, * q = c;
        p ++, q --;
    }
}

ϰ5.9
1.οĴ𰸣
void faas (int (* pa) [])
{
    (* pa) [3] = (* pa) [0] + (* pa) [1];
}
2.aϷpaϷ

ϰ5.10
1. char (*) [21]
2.Ϊָָͬһַ໥
3.οĴ𰸣
_Bool fstrcmp (char (* para) [], char (* parb) [])
{
    int m = 0, n = 0;

    while ((* para) [m] != '\0' && (* parb) [n] != '\0')
        if ((* para) [m ++] != (* parb) [n ++]) return 0;

    return (* para) [m] == (* parb) [m];
}

ϰ5.11
S5洮"Search"Ϊ飨char [7]ִ鵽ָתתΪchar *͡ʽarrps [0]arrps±Ϊ0ԪأԪصΪchar *ִֵֵתҽиֵ
S6洮"Project"Ϊ飨char [8]ִ鵽ָתתΪchar *͡ʽarrps [1]arrps±Ϊ1ԪأԪصΪchar *ִֵֵתҽиֵ
S7[]ȼ*ʱʽ* arrps [0]ȼ* (arrps [0])ʽarrps [0]arrps±Ϊ0ԪأԪصΪchar *һִֵֵתõchar *͵ֵһָ룬ַָSearchһԪ*ָ룬õһֵı洢ַSearchַSһأִֵתõԪصֵַSı룬ֵֵc
S8[]ȼ*ʱʽ* arrps [1]ȼ* (arrps [1])ʽarrps [1]arrps±Ϊ1ԪأԪصΪchar *һִֵֵתõchar *͵ֵһָ룬ַָProjectһԪ*ָ룬õһֵı洢ַProjectַPһأִֵתõԪصֵַPı룬ֵֵc

ϰ5.12
οĴ룺
void f (char r [22])
{
    unsigned int m = sizeof r;
}
һmainô˺öϵ۲mֵȻ22

