【正文】
0。 編寫一個函數(shù)rightrot (x, n),返回將x向右循環(huán)移動n位所得到的值。 (412) 在求反碼時,表達式x amp。= ( x 1 )用于把x最右邊的值為1的位刪除掉。請解釋一下這樣做的道理。用這一方法重寫b i t c o u n t函數(shù),使之執(zhí)行得更快一點。 (413) 使用條件表達式重寫用于將大寫字母轉(zhuǎn)換成小寫字母的函數(shù)low e r。 (414) 編寫函數(shù)escape (s, t),將字符串t拷貝到字符串s中,并在拷貝過程中將諸如換行符與制表符等等字符轉(zhuǎn)換成諸如\ n與\ t等換碼序列。使用s w i t c h語句。再編寫一個具有相反功能的函數(shù),在拷貝過程中將換碼序列轉(zhuǎn)換成實際字符。 (415) 寫函數(shù)expand(s1, s2),將字符串s 1中諸如az一類的速記等號在字符串s 2中擴展成等價的完整列表a b c..x y z。允許處理大小寫字母和數(shù)字,并可以處理諸如a b c與a z 0 9與 a z等情況。正確安排好前導(dǎo)與尾隨的 (416) 修改i t o a函數(shù)使之改為接收三個變元。第三個變元是最小域?qū)挕榱吮WC轉(zhuǎn)換得的數(shù)(即字符串表示的數(shù))有足夠的寬度,在必要時應(yīng)在數(shù)的左邊補上一定的空格。 (417) 編寫一個函數(shù)ungets(s),用于把整個字符串推回到輸入中。ungets函數(shù)要使用buf與bufp嗎?它可否僅使用ungetch函數(shù)? (418) 定義宏swap(t, x, y),用于交換t類型的兩個變元(使用分程序結(jié)構(gòu))。 (419) 請比較一下值調(diào)用與引用調(diào)用的相同點和不同點。 (420) 在函數(shù)調(diào)用時,實參與形參有哪幾種對應(yīng)關(guān)系? (421) 用遞歸方法求N的階乘。 (422) 對于以下遞歸函數(shù)f,計算f(3)的值。 int f(int k) { return(k0 ? (k*=2): f(k2)+k)。 } (423) 請編寫函數(shù) sum(number),返回正整數(shù)number的各位數(shù)字之和(number是長整型)。如sum(654321)=21 。