自考“高級(jí)語言程序設(shè)計(jì)”習(xí)題答案詳解(36)

字號(hào):

7.函數(shù)my_cmp()的功能是比較字符串s和t的大小,當(dāng)S等于t時(shí)返回0,否則返回s和t的第一個(gè)不同字符的ASCII碼差值,即s>t時(shí)返回正值,當(dāng)s    my_cmp( char *s, char * t)
    {while(*s==* t)
    { if(*s==‘\0’) return 0 ;
    ++s;++t;
    }
    return____________;
    }
    「解」兩字符串大小比較必須從它們的首字符開始,在對(duì)應(yīng)字將相等情況下循環(huán),直至不相等結(jié)束。相等時(shí),老字符率已到了字符串的結(jié)束標(biāo)記符,則兩字符率相同,函數(shù)退回0值;如還有后繼字符,則準(zhǔn)備比較下一對(duì)字符。對(duì)應(yīng)字符不相同,循環(huán)結(jié)束。循環(huán)結(jié)束時(shí),就以兩個(gè)當(dāng)前字符的差返回。所以在空框處應(yīng)填入*s-*t,保證在s>t時(shí)返回正值,當(dāng)s    6.3 程序分析題
    1.閱讀函數(shù),寫出函數(shù)的主要功能:
    ch(int *p1,int *p2)
    { int p;
    if(*pl>*p2) { p=* pl;*pl=*p2;* p2=p; }
    }
    「解」函數(shù)辦有兩個(gè)指針形參p1和p2,函數(shù)體通過*pl和*p2間接引用它們所指變量。當(dāng)pl所指變量的位大于p2所指變量的值時(shí),交換兩形參所指變量的值。所以函數(shù)的功能當(dāng)形參1所指變量比形參2所指變量的值大時(shí),交換這兩個(gè)變量的值。調(diào)用該函數(shù)能保證形參1所指變量的值不大于形參2所指變量的值。
    2.閱讀函數(shù),寫出函數(shù)的主要功能:
    float av(a,n)
    float a[];
    int n;
    { int i; float s;
    for(i=0,s= 0;i    return s/n;
    }
    「解」函數(shù)有一個(gè)數(shù)組形參a和一個(gè)整型形參n.函數(shù)首先用循環(huán)求數(shù)組a的前n個(gè)元素和,然后將和除以n.即求數(shù)組元素的平均值。
    3.閱讀下面程序,寫出運(yùn)算結(jié)果。
    unsigned fun6( unsigned num)
    { unsigned k=l;
    do { k*= num;num/=10;}
    while(n) ;
    return k;
    }
    main()
    { unsigned n=26;
    printf(“%d\n”, fun6(n));
    }
    「解」函數(shù)有一個(gè)形參num,循環(huán)前變量 k置 1,循環(huán)中,表達(dá)式num是取num的個(gè)位,將num的個(gè)位值累乘于k中,然后num除以10.循環(huán)直至num為0結(jié)束,這是逐一求出num十進(jìn)制表示的各位數(shù)字,并累乘于變量k的循環(huán)。函數(shù)最后返回k.函數(shù)fun6的功能是求整數(shù)的各位十進(jìn)數(shù)字積。所以程序輸出12.