第四次博客——函數
PTA總分展示

本章學習總結
定義一個函數我們需要確定三部分內容:
(1). 函數的返回值類型
(2). 函數的名稱
(3). 函數的參數
函數類型 函數名(形式參數表)//:函數首部
{
函數實現過程//:函數體
}
- 函數聲明的作用如下:
(1). 使編譯器正確處理返回值
(2). 使編譯器可以檢查輸入參數的數目
(3). 使編譯器檢查輸入參數的類型,如果類型不正確,則對類型進行隱式轉換
函數類型 函數名(參數表);
- 函數調用的作用如下:
(1). 用實參向形參傳遞數據
(2). 為獲得數據的參數和函數中為聲明的變量分配臨時存儲空間
(3). 中斷當前正在運行的上級調用函數,將程序流程轉到被調用函數的入口處
函數名 (實際參數表)//:實際參數可以是常量、變量和表達式
全局、局部變量、靜態局部變量
全局:具有文件作用域的變量
靜態:具有靜態存儲期或內部鏈接屬性
局部:具有函數或塊作用域的變量
? 局部變量:函數或塊作用域的變量
? 靜態局部變量:函數或塊作用域,靜態存儲期
? 全局變量:具有文件作用域的變量
c語言類型及注意點
整型變量
- int類型
取值范圍(16位):-32768~32767(-2^15— 2^15-1)
轉換說明:%d - short
取值范圍(16位):-32768~32767(-2^15— 2^15-1)
轉換說明:%d - long
取值范圍(16位):取值范圍(16位)-2147483648~2147483648(-2^31— 2^31-1)
轉換說明:%ld
浮點數
- 單精度float
取值范圍:10^-37 —10^37
轉換說明:%f - 雙精度double
取值范圍:(2^63— 2^63-1)
轉換說明:%f
字符型數據輸入問題
1、字符型數據(單個數據的輸入)
(1). scanf輸入,遇到回車,空格,tab鍵會記錄進去,使得一個字符的內容變為空格這類的字符
解決:
(1). getchar();處理一個字符。%c賦值抑制符,跳過一個字符,讀入但不存儲。
(2). 跳過多個空白字符在格式傳中的 %c之前加上空格或者在%d之后加上空格
2. 字符數組與字符串
通常用一個字符數組來存儲一個字符串。字符串和普通字符數組的區別在于字符串末尾有一個空字符'\0'. 空字符不計入字符串有效字符,也不計入總長度。
c運算符
- 算術運算符:+ - * / %
優先級:* / % 》 + - 結合:從左往右
注:%只對整型數據 int%int
注:int / int =int
char-(char)->char
char-(int)->int -(float/double)->double (可提高精度) - 位運算符: &(按位與)--------->有假則假
|(按位或)--------->有真則真
^(異或 )--------------->(0^1=1)
~(取反)--------------->0101——>1010 - 判定運算符: > < >= <= != !(非)
結果:邏輯值 真1 假0
1>2的結果為0 2>1的結果為1 - 自增自減運算符:++ --
i++ ++i 或 i-- --i (i的值必須是變量)
前自增、減: ++i --i (i)先自增/自減,(結果)再取(i)值
后自增、減: i++ i-- (結果)先取(i)值,(i)再自增/減
小學生口算表達式自動生成系統
函數功能及全局變量介紹
void OperateMenu();//游戲操作界面
void GradeOneMenu();//一年級
void GradeTwoMenu();//二年級
void GradeThreeMenu();//三年級
int GetOperands(int grade);//生成隨機操作數
char GetOperator(int grade);//生成隨機運算符
void PutExpression(int num1, int op, int num2);//輸出表達式的函數
int GetAnswer(int num1, char op, int num2);//計算正確函數
void Compliment();//輸出夸獎的話
void Encouragement();//輸出鼓勵的話
全局變量
int RightNumber = 0;//計算正確題目的個數
int WrongNumber = 0;//計算錯誤題目的個數
int QustionNum = 0;//儲存題目數量
菜單相關函數


.運行結果截圖,測試用例。



大作業中編程技巧總結
- 應該學會去注釋一些代碼,這樣可以使代碼更清楚,明白,也便于理解。
- 運用srand((unsigned)time(NULL)),產生隨機數。
- 多注意一些細節,因為代碼很長,不容易找出錯誤,因為有錯,調試了很長時間,最后發現是自己是一些細節錯誤。
浙公網安備 33010602011771號