自考“高級語言程序設計”習題答案詳解(35)

字號:

6.2 填充題
    1.靜態(tài)型內部變量的作用域是___________.
    「解」靜態(tài)存儲類型的主要特性是永久性和專用性。靜態(tài)局部變量提供永久存儲,但因它是局部變量,也得遵守局部變量的作用域規(guī)則,是定義它的函數(shù)或復合語句。
    2.函數(shù)中的形參和調用時的實參都是數(shù)組名時,傳遞方式為______;都是變量時,傳遞方式為_____________.
    「解」在C語言中,實參向形參傳遞方式只有值傳遞,但傳遞的內容可能是非指針類型的值,如基本類型值,或結構類型值,也可以是指針類型值。通常傳遞指針類型值特稱為傳地址方式。其中實參向指針形參傳遞數(shù)組名,就是一種傳地址方式。若形參不是指針類型的,形參是一般的變量,實參可以是變量或表達式,就是值傳遞方式。
    3.函數(shù)的形式參數(shù)的作用域為_____,全局的外部變量和函數(shù)體內定義的局部變量重名時,________變量優(yōu)先。
    「解」函數(shù)將它的形參當作它的局部變量,所以函數(shù)形參的作用城為定義它的函數(shù)。當函數(shù)的形參或函數(shù)內的局部變量與函數(shù)外的全局變量同名時,函數(shù)的局部變量優(yōu)先。
    4.若自定義函數(shù)要求返回一個值,則應在該函數(shù)體中有一條________語句,若自定義函數(shù)要求不返回一個值,則應在該函數(shù)說明時加一個類型符____________.
    「解」苦自定義的函數(shù)有返回值,則函數(shù)返回時應執(zhí)行帶表達式的return語句返回,該表達式的值將作為函數(shù)調用的結果。為了強調函數(shù)是一個不返回值的函數(shù),應在該函數(shù)說明時,加上一個void類型說明符。
    5.若給fun函數(shù)的形參s傳送字符串:“ㄩㄩ 6354abcc”(其中ㄩ表示空格字符),則函數(shù)的返回值是__________.
    # include
    long fun(char s[])
    { long n;int sign;
    for(; isspace(*s); s++);
    sign=(*s==‘-’ )?-1:l;
    if(*s==‘+’ ||*s==‘-’) s++;
    for(n=0; isdigit(*s); s++) n=10*n+(*s-‘0’);
    return sign *n;
    }
    「解」函數(shù)fun的第一個for循環(huán)跳過字符串的前導空白符,接著分析第一個非空白符是否是負號,若是置變量sign為-1;否則,置變量sign為1.接著的if語句在第一個非空白字符是負號或正號時,跳過該字符。以后的for循環(huán)將后面的數(shù)字符當作十進制數(shù)的各位數(shù)字譯出一個長整數(shù)n.遇字符a時,結束譯數(shù)循環(huán)。最后,函數(shù)返回sign與n的乘積。所以若調用函數(shù)時提供的實參是“ㄩㄩ6354abc”,函數(shù)返回值是整數(shù)6354.
    6.下面函數(shù)要求計算兩個整數(shù)X、y之和,并通過形參Z傳回該和值,請?zhí)羁铡?BR>    void add(int x,int y,________z)
    {_________=x+ y; return;}
    「解」函數(shù)希望通過形參z傳送結果,形參z必須是指針類型的,由于返回整型結果,所以z的說明是int *z.函數(shù)返回前必須先把結果通過形參z間接引用(寫成* z)傳回。7.以下函數(shù)用來在w數(shù)組中插入x.在n所指向的存儲單元中存放著w數(shù)組中的字符個數(shù)。數(shù)組W中的字符已按從小到大的順序排列,插入后數(shù)組W中的字符仍有序。請?zhí)羁铡?BR>    void fun(char *w,char x, int *n)
    { int i, p;
    p=0;
    w[*n]=x;
    whlie( x>w[p] ) p++;
    for(i=* n; i>p;i——) w=_____________;
    w[p] = x;
    ++ *n;
    }
    「解」在用數(shù)組實現(xiàn)的有序序列中插入內容,必須先尋找插入位置。插入位置找到后,需將插入位置之后的元素向后移動一個位置,留出插入點。最后,將元素插入,并增加序列的元素個數(shù)。函數(shù)為了簡化尋找插入位置循環(huán)的循環(huán)條件,預先在序列的最后置人插入值。插入位置之后的元素向后移動一個位置必須從最后一個元素開始往前逆序移動,是將前一個元素向后移,所以在空框處應填入w[i-l] .