1. 程式人生 > 實用技巧 >cannot find module providing package github.com/× working directory is not part of a module

cannot find module providing package github.com/× working directory is not part of a module

這個作業屬於哪個班級 C語言--網路2011/2012
這個作業的地址 C部落格作業03--函式
這個作業的目標 學習如何設計函式、C語言基本資料型別
姓名 喻文康

目錄

0. 展示PTA總分

1. 本章學習總結

1.1 函式定義,宣告,呼叫

關於函式的這三點,一般注意以下幾點:

  1. 如果函式沒有宣告, 應該在呼叫前定義:


  1. 可以在函式頭宣告:


  1. 但一般應在檔案頭宣告:


  1. 函式可互呼叫, 但不能巢狀:


  1. 關於無引數、無返回值的函式:
    如果函式沒有引數, 最好是 fun(void), 不過 fun() 也行;
    如果函式沒有返回值, 要註明返回型別是 void;
    在 C 語言中呼叫無參函式也要帶括號.

  1. 宣告函式時可以省略形參(只有在宣告的時候可以):
    int sum(int, int, int); /* 省略形式引數 */

1.2 全域性、區域性變數、靜態區域性變數

全域性變數:
定義在main函式的外部
區域性變數:
定義在main函式內,在C語言中,區域性變數分配在棧中,另外在進入每個小的分支時,如進入for迴圈,
如果在for迴圈內部定義了與迴圈外同名的變數,那麼迴圈內變數優先,且不會改變迴圈外同名變數的值。
靜態變數:
又分為靜態全域性變數和靜態區域性變數,靜態區域性變數定義時前面加static關鍵字。


總結:

1、靜態區域性變數和普通區域性變數不同。靜態區域性變數也是定義在函式內部的,靜態區域性變數定義時前面要加static關鍵字來標識,靜態區域性變數所在的函式在多呼叫多次時,
只有第一次才經歷變數定義和初始化,以後多次在呼叫時不再定義和初始化,而是維持之前上一次呼叫時執行後這個變數的值。本次接著來使用。
2、靜態區域性變數在第一次函式被呼叫時創造並初始化,但在函式退出時它不死亡,而是保持其值等待函式下一次被呼叫。下次呼叫時不再重新創造和初始化該變數,
而是直接用上一次留下的值為基礎來進行操作。
3、靜態區域性變數的這種特性,和全域性變數非常類似。它們的相同點是都創造和初始化一次,以後呼叫時值保持上次的不變。不同點在於作用域不同

拓展:

在自學變數時有額外瞭解到一些知識,也把它記錄了下來
區域性變數和全域性變數的對比:
1、定義同時沒有初始化,則區域性變數的值是隨機的,而全域性變數的值是預設為0.
2、使用範圍上:全域性變數具有檔案作用域,而區域性變數只有程式碼塊作用域。
3、生命週期上:全域性變數是在程式開始執行之前的初始化階段就誕生,到整個程式結束退出的時候才死亡;而區域性變數在進入區域性變數所在的程式碼塊時誕生,在該程式碼塊退出的時候死亡。
4、變數分配位置:全域性變數分配在資料段上,而區域性變數分配在棧上。

1.3 C語言資料型別及注意點

資料型別 說明 位元組 應用 示例
char 字元型 1 用於儲存單個字元 char sex ='M’;
int 整型 2 用於儲存整數 int height = 18;
float 單精度浮點型 4 用於儲存小數 float price = 11.1
double 雙精度浮點型 8 用於儲存位數更多的小數 double pi = 3.1415926

格式化輸出

格式符 說明 舉例
%d 帶符號十進位制整數 int a=10; printf("%d", a);輸出結果為10
%c 單個字元 char x='a' ; printf("%c",x);輸出結果為a
%s 字串 printf("%s"∵"慕課網");輸出結果為慕課網
%f 6位小數 float a=1.23;printf("%f",a);輸出結果為1.230000

備註:
浮點型資料在儲存時都會造成資料精度的丟失,如給某個浮點型變數賦初值3.0,則在儲存該變數時,可能會變成2.999995,即小數部分資料丟失
字元型資料在輸入時是在緩衝區內讀取的,且只能讀取單個字元,字元還包括‘\n’換行符

1.4 C運算子

名稱 運算子號 舉例
加法運算子 + 2+10=12
減法運算子 - 10-3=7
乘法運算子 * 2*10=20
除法運算子 / 30/10=3
求餘運算子〈模運算子) % 23%7=2
自增運算子 ++ int a = 1; a++
自減運算子 -- int a = 1; a--

另外注意:取餘運算中,該運算只適合用兩個整數進行取餘運算,如:10%3 = 1;而10.0%3則是錯誤的;
運算後的符號取決於被模數的符號,如(-10)%3 = -1;而10%(-3) = 1。

運算表示式 說明 運算規則
++a a自增1後,再取值 先運算,再取值
--a a自減1後,再取值 先運算,再取值
a++ a取值後,a的值再自增1 先取值,再運算
a-- a取值後,a的值再自減1 先取值,再運算

比較運算子

符號 意義 舉例 結果
> 大於 10>5 1
>= 大於等於 10>=10 1
< 小於 10<5 0
<= 小於等於 10<=10 1
== 等於 10==5 0
!= 不等於 10!=5 1

邏輯運算子

符號 意義 舉例 結果
&& 邏輯與 0&&1 0
邏輯或
! 邏輯非 !o 1

測試錯題領悟:

在執行完或語句的前部分後,若結果為真,則程式將不再執行後面的邏輯語句
對於C語言中運算子的優先順序,大致如下圖

1.5 學習體會

在最近的C語言學習中,漸漸發現C語言與數學之間的緊密連線,變成能力不僅取決於語言的運用是否熟練,還取決於數學的運用和自身的數學思維
另外,在最近的pta刷題過程中,漸漸感覺到一個程式不僅僅需要能夠完成所需的功能,程式執行的效率也是一個不可忽視的點。

2. 綜合作業:小學生口算表示式自動生成系統

2.1 模組流程圖

一年級模組流程圖

二年級模組流程圖

三年級模組流程圖
大致同二年級,但有相應的細節變化,如出題難度的變化,會有三個運算元的題目,會有連乘或者連除

2.2 函式功能及全域性變數介紹

函式及其功能

2.2.1 全域性變數

2.2.2 選單相關函式




2.2.3 出題相關函式





2.3 測試結果截圖,測試用例

兩題,一題對一題錯

2.4 大作業中程式設計技巧總結

在生成隨機數時,使用時間作rand函式的種子,會使每次生成不同的隨機數,但如果連續兩次呼叫rand函式的話,生成的隨機數還是會一樣
個人解決辦法是定義一個變數,讓rand函式的參每次加上這個變數,加完一次後改變這個變數的值,讓下次加的數不一樣,就實現了能夠連續呼叫的問題了
學會建檔案和分裝函式,能夠使main函式更為簡潔