AaronYang風格 C語言挑講[一][基本入門]


 

我沒有上過大學,所以不會C,掌握了C#,決定看算法導論,於是要學C

我是學C#的,所以學的時候會聯想C#的,然后做個比較,我學過JAVA,所以也會聯想JAVA做個比較

 

基本概念

1. 程序:用某種計算機能理解並執行的計算機語言描述解決問題的方法步驟

2.程序設計:分析解決問題的方法步驟,並將其記錄下來的過程

3.二進制語言→匯編語言(符號代替二進制代碼,所以稱符號語言,面向機器的語言)

4.高級語言:C(面向過程的語言)等,將二進制語言和匯編語言統稱為“低級語言”

5.高級語言編寫的程序稱為“源程序”,源程序不能直接在計算機上運行,先翻譯成二進制語言然后執行。方式:①翻譯一句執行一句-解釋執行,完成翻譯工作的程序叫”解釋程序”。②一次性翻譯完再執行,完成翻譯工作的程序叫”編譯程序”,編譯后的二進制程序稱為”目標程序“

6.C語言前身-ALGOL語言(世界上第一個高級語言,第二個是 FORTRAN語言),以后還有BASIC,COBOL,PASCAL等

7.相比C#特點:更接近硬件,比低級語言更容易描述算法,性能更好

 

 

基礎知識

1.字符集和C#一樣.轉義用\

2.保留字(關鍵字),例如if,int,float,typedef,C#會了,這很容易掌握

3.標識符:取名字的規范和C#一樣,方法名,函數名等

4.詞匯分類:常量,變量,運算符,函數調用,表達式,保留字,跟C#一樣

5.語句分類:數據定義語句,賦值語句,函數調用月,表達式語句,流程控制語句,符合語句,空語句,其他語句。跟C#基本一樣

6.C程序是C語句組成的語句序列,通常一個C程序包括一個或多個函數,其中有且僅有一個成為主函數,其函數名規定為 main

7.注釋:/*   */

8.C程序,總是從主函數開始,主函數結束。基本和C#中控制台程序一樣

 

 

C程序的開發環境

(一)WIN-TC(書中使用Turbo C,我電腦時Win7 64位,運行不了,了解一下就可以了)

1.下載 :  下載

2.安裝:一直下一步就行了,很簡單。

3.界面

image

4. 本來Turbo C的調試C程序的主要操作步驟分為:

  • 輸入新程序或調用已有的程序
  • 編輯修改源程序
  • 源程序清單存盤
  • 編譯連接生成目標程序
  • 執行目標程序
  • 顯示運行結果

 

但是在WIN7 64位,運行程序時候,就不行了,如果你是XP用戶,或許可以用

於是我決定用C-Free這個工具去學習了

 

 

 

(二)C-Free 5.0 (下載:第一卷  第二卷

安裝一直下一步,也是比較簡單的

界面

圖像 10

然后點 幫助-注冊

用戶名:tianfang
電子郵件:quart@163.com
注冊碼:2NnUqd3shO2agta0xNjcusfK1LXO

重啟C-Free

 

Hello World,第一個C項目

新建工程

image

image

我們不選第三個

image

image

因為我電腦有vs2010,選擇第一個,然后完成

image

image雙擊main.c文件

輸入代碼如下,printf相當於C#中的Console.Write

image

和VS2010一樣,按下F5編譯運行程序,效果圖:

image

但是這個生成后的exe程序,在這里,顯示結束后,會定個下來,可以看到效果

但是如果你單獨運行,我們以前在C#中都是Console.ReadLine()等待用戶輸入,然后可以看到,輸入以前的所有效果

image

我們添加一行scanf代碼

java中也是用類似 scan的一個單詞,等待用戶輸入的,好像是Scanner s = new Scanner(System.in);

然后用

      String str = s.next();
      Integer i = s.nextInt();

等待用戶的輸入

我們繼續添加一行代碼

image

按F5編譯程序就可以了

接下來,你就可以直接

image

單擊它,就可像C#的控制台那樣,運行項目了,程序的啟動速度很快,這是C#不能比的,WPF項目生成exe,我發現啟動最慢的

 

 

 

其他小例子

作為一個初學者,你還想試試,發現真的跟C#差不多

求輸入的3個數字的 平均數,這也是書上的小例子

預備工作:

如上面一樣建立一個空殼子,准備寫代碼

知識:還記得%f,我們學過C#,知道 float,那么f就是float的簡寫了,表示,這里輸入一個float或者double類型的值。輸入后,直接輸出保存正確的數據類型了,關於%號,還有其他的一些格式

 

%d整型輸出,%ld長整型輸出,

%o以八進制數形式輸出整數,

%x以十六進制數形式輸出整數,

%u以十進制數輸出unsigned型數據(無符號數)。

%c用來輸出一個字符,

%s用來輸出一個字符串,

%f用來輸出實數,以小數形式輸出,

%e以指數形式輸出實數,

%g根據大小自動選f格式或e格式,且不輸出無意義的零。

 

image然后准備好空殼子

我們寫一個ave方法,返回的方式和C#有點不一樣,變量用括號括起來了,其他一樣

image

回到main函數,繼續編寫代碼

#include <stdio.h>
 
float ave(float f1,float f2,float f3){
    float a1;
    a1=(f1+f2+f3)/3;
    return (a1);
}
 
int main(int argc, char *argv[])
{
    float x1,x2,x3,x4;
    scanf("%f,%f,%f",&x1,&x2,&x3);
    x4=ave(x1,x2,x3);
    printf("%f\n",x4);
    scanf("%f");
    return 0;
}

輸入 5,6,7按下回車

效果:

image

這點 ave 函數必須在main方法上面,否則當先運行main的時候,ave根本不存在,所以編譯會出錯

這點和C#不一樣

如果你想要在其他位置放ave方法,需要在main方法中,調用ave方法之前先聲明這個ave函數

代碼如下

image

然后就可以了

scanf后面的%f的逗號隨便什么連接字符的,例如我改成這樣

image

效果圖:

image

 

學習總結

  1. 對C有基本的認識了
  2. 對C和C#有基本的比較了
  3. 發現學起C不太難
  4. 用C-Free開發
  5. 很容易寫出個比C#性能好點的小程序
  6. 下一步,具體慢慢學C會很容易了

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM