c語言程序設計周信東答案
A. 跪求《c語言程序設計》課本習題答案!!!
習題1參考答案
一、選擇題 1. A 2. D
二、填空題
1. BASIC、FORTRAN、AL_GOL60和COBOL 2. 8
3. 關鍵字
4. 編輯、編譯、鏈接和運行
三、簡答題 1.答:
(1)C語言具有結構化的控制語句。C語言提供了結構化程序所必需的基本控制語句,實現了對邏輯流的有效控制。
(2)C語言具有豐富的數據結構類型。C語言除提供整型、實型、字元型等基本數據類型外,還提供了用基本數據類型構造出的各種復雜的數據結構,如數組、結構、聯合等。C語言還提供了與地址密切相關的指針類型。此外,用戶還可以根據需要自定義數據類型。 (3)C語言具有豐富的運算符。C語言提供了多達34種運算符,豐富的數據類型與豐富的運算符相結合,使C語言的表達力更具靈活性,同時也提高了執行效率。
(4)C語言簡潔、緊湊,使用方便、靈活,程序書寫自由,有9種控制語句。
(5)C語言既具有高級語言的功能,又具有低級語言的許多功能,通常被稱為中級計算機語言。它既是成功的系統描述語言,又是通用的程序設計語言。 (6)C語言與匯編語言相比,可移植性好。
(7)功能強大。C語言具有低級語言的一些功能,所以,生成目標代碼質量高,程序執行效率高。現在許多系統軟體都用C語言來描述,可以大大提高了編程效率。
2.答:運行一個C語言程序,一般需要經過如下幾個步驟:①上機輸入並編輯源程序;②編譯源程序;③與庫函數連接;④生成可執行目標程序;⑤運行目標程序。 3.答:
(1)操作系統的設計與實現。C語言是一種應用非常廣泛的結構化高級程序設計語言,既適合編寫應用軟體,又適合編寫系統軟體。
B. C語言程序設計(第4章函數)3
4.3 函數的調用與參數
如果一個函數要使用參數,它就必須定義接受參數值的變數。
4.3.1 形式參數與實際參數
函數定義時填入的參數我們稱之為形式參數,簡稱形參,它們同函數內部的局部變數作用相同。形參的定義是在函數名之後和函數開始的花括弧之前。
調用時填入的參數,我們稱之為實際參數,簡稱實參。
必須確認所定義的形參與調用函數的實際參數類型一致,同時還要保證在調用時形參與實參的個數出現的次序也要一一對應。如果不一致,將產生意料不到的結果。與許多其它高級語言不同,(是健壯的,它總要做一些甚至你不希望的事情,幾乎沒有運行時錯誤檢查,完全沒有范圍檢測。作為程序員,必須小心行事以保證不發生錯誤,安全運行。
4.3.2 賦值調用與引指脊用調用
一般說來,有兩種方法可以把參數傳遞給函數。第一種叫做「賦值調用搭缺」(call by value),這種方法是把參數的值復制到函數的形式參數中。這樣,函數中的形式參數的任何變化不會影響到調用時所使用的變數。
把參數傳遞給函數的第二種方法是「引用調用」(call by reference)。這種方法是把參數的地址復制給形式參數,在函數中,這個地址用來訪問調用中所使用的實際參數。這意味著,形式參數的變化會影響調用時所使用的那個變數(詳細內容請參見後續章節)。
除少數情況外,C語言使用賦值調用來傳遞參數。這意味著,一般不能改變調用時所用變數的值。請看例4 - 9。
[例4 - 9]
main ( )
{
int t =10;
printf("%d %d ",sqr(t),t); /* sqr(t)是函數調用,t是實參* /
}
int sqr(x) /* 函數定義,x是形式參數* /
int x;
{
x = x * x;
return (x);
}
在這個例子里,傳遞給函數sqr( )的參數值是復制給形式參數x的,當賦值語唯枝滲句x = x * x執行時,僅修改局部變數x。用於調用sqr( )的變數t,仍然保持著值10。
執行程序:
100 10
切記,傳給函數的只是參數值的復製品。所有發生在函數內部的變化均無法影響調用時使用的變數。
4.4 遞歸
C語言函數可以自我調用。如果函數內部一個語句調用了函數自己,則稱這個函數是「遞歸」。遞歸是以自身定義的過程。也可稱為「循環定義」。
遞歸的例子很多。例如定義整數的遞歸方法是用數字1,2,3,4,5,6,7,8,9加上或減去一個整數。例如,數字1 5是7 + 8;數字2 1是9 + 1 2; 數字1 2是9 + 3。
一種可遞歸的計算機語言,它的函數能夠自己調用自己。一個簡單的例子就是計算整數階乘的函數factor( )數N的階乘是1到N之間所有數字的乘積。例如3的階乘是1×2×3,即是6。
factor( )和其等效函數fact( )如例4 - 1 0所示。
[例4 - 1 0 ]
factor(n) /* 遞歸調用方法* /
int n;
{
int answer;
if (n==1)
return (1);
answer=factor(n-1) * n; /* 函數自身調用* /
return(answer);
}
[例4 - 11 ]
fact(n) /* 非遞歸方法* /
int n;
{
int t,a n s w e r;
answer = 1;
for (t=1; t < = n; t ++)
answer = answer * t;
return(answer);
}
非遞歸函數fact( )的執行應該是易於理解的。它應用一個從1開始到指定數值結束的循環。
在循環中,用「變化」的乘積依次去乘每個數。
factor( )的遞歸執行比fact( )稍復雜。當用參數1調用factor( )時,函數返回1;除此之外的其它值調用將返回factor(n-1) * n這個乘積。為了求出這個表達式的值,用( n - 1)調用factor( )一直到n等於1,調用開始返回。
計算2的階乘時對factor( )的首次調用引起了以參數1對factor( )的第二次調用。這次調用返回1,然後被2乘(n的初始值),答案是2(把printf( )語句插入到factor ( )中,察看各級調用及其中間答案,是很有趣的)。
C. C語言程序設計(201803)測試求大佬幫忙!
選D
選C;"my name"算上空格一共7個字元,加上結尾的'