本節書摘來自異步社群《c primer plus(第6版)中文版》一書中的第2章,第2.12節,作者 傅道坤,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。
紙上得來終覺淺,絕知此事要躬行。讀者應該試着編寫一兩個簡單的程式,體會一下編寫程式是否和閱讀本章介紹的這樣輕松。題目中會給出一些建議,但是應該盡量自己思考這些問題。一些程式設計答案練習的答案可在出版商網站擷取。
1.編寫一個程式,調用一次printf()函數,把你的名和姓列印在一行。再調用一次printf()函數,把你的名和姓分别列印在兩行。然後,再調用兩次printf()函數,把你的名和姓列印在一行。輸出應如下所示(當然要把示例的内容換成你的名字):
2.編寫一個程式,列印你的姓名和位址。
3.編寫一個程式把你的年齡轉換成天數,并顯示這兩個值。這裡不用考慮閏年的問題。
4.編寫一個程式,生成以下輸出:
除了main()函數以外,該程式還要調用兩個自定義函數:一個名為jolly(),用于列印前3條消息,調用一次列印一條;另一個函數名為deny(),列印最後一條消息。
5.編寫一個程式,生成以下輸出:
除了main()以外,該程式還要調用兩個自定義函數:一個名為br(),調用一次列印一次“brazil, russia”;另一個名為ic(),調用一次列印一次“india, china”。其他内容在main()函數中完成。
6.編寫一個程式,建立一個整型變量toes,并将toes設定為10。程式中還要計算toes的兩倍和toes的平方。該程式應列印3個值,并分别描述以示區分。
7.許多研究表明,微笑益處多多。編寫一個程式,生成以下格式的輸出:
該程式要定義一個函數,該函數被調用一次列印一次“smile!”,根據程式的需要使用該函數。
8.在c語言中,函數可以調用另一個函數。編寫一個程式,調用一個名為one_three()的函數。該函數在一行列印單詞“one”,再調用第2個函數two(),然後在另一行列印單詞“three”。two()函數在一行顯示單詞“two”。main()函數在調用one_three()函數前要列印短語“starting now:”,并在調用完畢後顯示短語“done!”。是以,該程式的輸出應如下所示:
[1] 原書圖中叙述有誤。根據c11标準,c語言有6種語句,已在圖中更正。——譯者注
[2] c語言是通過指派運算符而不是指派語句完成指派操作。根據c标準,c語言并沒有所謂的“指派語句”,本書及一些其他書籍中提到的“指派語句”實際上是表達式語句(c語言的6種基本語句之一)。本書把“指派語句”均譯為“指派表達式語句”,以提醒初學者注意。——譯者注
[3] 在c語言中,return語句是一種跳轉語句。——譯者注
[4] 市面上許多書籍(包括本書)都把這種語句叫作“函數調用語句”,但是曆年的c标準中從來沒有函數調用語句!值得一提的是,函數調用本身是一個表達式,圓括号是運算符,圓括号左邊的函數名是運算對象。在c11标準中,這樣的表達式是一種字尾表達式。在表達式末尾加上分号,就成了表達式語句。請初學者注意,這樣的“函數調用語句”實質是表達式語句。本書的錯誤之處已在翻譯過程中更正。——譯者注
[5] 英尋,也稱為㖊。航海用的深度機關,1英尋=6英尺=1.8米,通常用在海圖上測量水深。——譯者注
[6] 要了解該句子存在文法錯誤,需要具備基本的英文文法知識。——譯者注
本文僅用于學習和交流目的,不代表異步社群觀點。非商業轉載請注明作譯者、出處,并保留本文的原始連結。