程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C語言學習筆記2

C語言學習筆記2

編輯:關於C語言

寫在筆記之前,這是我看C語言進階書籍看到的一些內容,C語言學習的教材有很多,我看的這個不一定是大家喜歡的,或者我每天記錄的也未必符合每個人先看的心願,只是做一項記錄,大家也可以看看。

C語言的特點

  C語言是一種結構化語言。它層次清晰,便於按模塊化方式組織程序,易於調試和維護。C語言的表現能力和處理能力極強。它不僅具有豐富的運算符和數據類型,便於實現各類復雜的數據結構。它還可以直接訪問內存的物理地址,進行位(bit)一級的操作。由於C語言實現了對硬件的編程操作,因此C語言集高級語言和低級語言的功能於一體。既可用於系統軟件的開發,也適合於應用軟件的開發。此外,C語言還具有效率高,可移植性強等特點。因此廣泛地移植到了各類各型計算機上,從而形成了多種版本的C語言。

C語言版本

  目前最流行的C語言有以下幾種:
   ·Microsoft C 或稱 MS C
   ·Borland Turbo C 或稱 Turbo C
   ·AT&T C
  這些C語言版本不僅實現了ANSI C標准,而且在此基礎上各自作了一些擴充,使之更加方便、完美。

面向對象的程序設計語言

  在C的基礎上,一九八三年又由貝爾實驗室的Bjarne Strou-strup推出了C++。 C++進一步擴充和完善了C語言,成為一種面向 對象的程序設計語言。C++目前流行的最新版本是Borland C++4.5,Symantec C++6.1,和Microsoft VisualC++ 2.0。C++提出了一些更為深入的概念,它所支持的這些面向對象的概念容易將問題空間直接地映射到程序空間,為程序員提供了一種與傳統結構程序設計不同的思維方式和編程方法。因而也增加了整個語言的復雜性,掌握起來有一定難度。

C和C++

  但是,C是C++的基礎,C++語言和C語言在很多方面是兼容的。因此,掌握了C語言,再進一步學習C++就能以一種熟悉的語法來學習面向對象的語言,從而達到事半功倍的目的。

學習C語言用什麼軟件呢?

有些人常用的是Turboc 2.0。

這個軟件是DOS操作系統下的應用軟件,但其體積非常小,不足1M,運行起來很方便快捷,但由於不是windows下應用程序,不具備圖形化操作功能,還有一個缺欠就是不支持漢字。

另外的就是VC 6.0,是windows下的應用程序,用起來很方便。不過我感覺功能太多,不光是為C語言,體積較大,運行有點慢。

還有一個就是C語言學習與編譯系統,是一個專門用來學習的軟件,下載安裝後用來學習練習沒有什麼問題,不需注冊就可用大部分功能了。

C源程序的結構特點

  為了說明C語言源程序結構的特點,先看以下幾個程序。這幾個程 序由簡到難,表現了C語言源程序在組成結構上的特點。雖然有關內容還未介紹,但可從這些例子中了解到組成一個C源程序的基本部分和書寫格式。
main()
{
 printf("c語言世界www.vcok.com,您好!\n");
}
  main是主函數的函數名,表示這是一個主函數。每一個C源程序都必須有,且只能有一個主函數(main函數)。函數調用語句,printf函數的功能是把要輸出的內容送到顯示器去顯示。printf函數是一個由系統定義的標准函數,可在程序中直接調用。

#include "stdio.h"
#include "math.h"
main()
{
 double x,s;
 printf("input number:\n");
 scanf("%lf",&x);
 s=sin(x);
 printf("sine of %lf is %lf\n",x,s);
}


每行注釋

include稱為文件包含命令擴展名為.h的文件也稱為頭文件或首部文件
定義兩個實數變量,以被後面程序使用
顯示提示信息
從鍵盤獲得一個實數x
求x的正弦,並把它賦給變量s
顯示程序運算結果
main函數結束

  程序的功能是從鍵盤輸入一個數x,求x的正弦值,然後輸出結果。在main()之前的兩行稱為預處理命令(詳見後面)。預處理命令還有其它幾種,這裡的include 稱為文件包含命令,其意義是把尖括號""或引號<>內指定的文件包含到本程序來,成為本程序的一部分。被包含的文件通常是由系統提供的,其擴展名為.h。因此也稱為頭文件或首部文件。C語言的頭文件中包括了各個標准庫函數的函數原型。因此,凡是在程序中調用一個庫函數時,都必須包含該函數原型所在的頭文件。在本例中,使用了三個庫函數:輸入函數scanf,正弦函數sin,輸出函數printf。sin函數是數學函數,其頭文件為math.h文件,因此在程序的主函數前用include命令包含了math.h。scanf和printf是標准輸入輸出函數,其頭文件為stdio.h,在主函數前也用include命令包含了stdio.h文件。

  需要說明的是,C語言規定對scanf和printf這兩個函數可以省去對其頭文件的包含命令。所以在本例中也可以刪去第二行的包含命令#include。同樣,在例1.1中使用了printf函數,也省略了包含命令。

  在例題中的主函數體中又分為兩部分,一部分為說明部分,另一部分執行部分。說明是指變量的類型說明。例題中未使用任何變量,因此無說明部分。C語言規定,源程序中所有用到的變量都必須先說明,後使用,否則將會出錯。這一點是編譯型高級程序設計語言的一個特點,與解釋型的BASIC語言是不同的。說明部分是C源程序結構中很重要的組成部分。本例中使用了兩個變量x,s,用來表示輸入的自變量和sin函數值。由於sin函數要求這兩個量必須是雙精度浮點型,故用類型說明符double來說明這兩個變量。說明部分後的四行為執行部分或稱為執行語句部分,用以完成程序的功能。執行部分的第一行是輸出語句,調用printf函數在顯示器上輸出提示字符串,請操作人員輸入自變量x的值。第二行為輸入語句,調用scanf函數,接受鍵盤上輸入的數並存入變量x中。第三行是調用sin函數並把函數值送到變量s中。第四行是用printf 函數輸出變量s的值,即x的正弦值。程序結束。

printf("input number:\n");
scanf("%lf",'C10F10&x);
s=sin(x);
printf("sine of %lf is %lf\n",'C10F10x,s);
  運行本程序時,首先在顯示器屏幕上給出提示串input number,這是由執行部分的第一行完成的。用戶在提示下從鍵盤上鍵入某一數,如5,按下回車鍵,接著在屏幕上給出計算結果。

輸入和輸出函數

  在前兩個例子中用到了輸入和輸出函數scanf和 printf,在第三章中我們要詳細介紹。這裡我們先簡單介紹一下它們的格式,以便下面使用。scanf和 printf這兩個函數分別稱為格式輸入函數和格式輸出函數。其意義是按指定的格式輸入輸出值。因此,這兩個函數在括號中的參數表都由以下兩部分組成: “格式控制串”,參數表  格式控制串是一個字符串,必須用雙引號括起來,它表示了輸入輸出量的數據類型。各種類型的格式表示法可參閱第三章。在printf函數中還可以在格式控制串內出現非格式控制字符,這時在顯示屏幕上將原文照印。參數表中給出了輸入或輸出的量。當有多個量時,用逗號間隔。例如:
printf("sine of %lf is %lf\n",x,s);
  其中%lf為格式字符,表示按雙精度浮點數處理。它在格式串中兩次現,對應了x和s兩個變量。其余字符為非格式字符則照原樣輸出在屏幕上
int max(int a,int b);
main()
{
 int x,y,z;
 printf("input two numbers:\n");
 scanf("%d%d",&x,&y);
 z=max(x,y);
 printf("maxmum=%d",z);
}
int max(int a,int b)
{
 if(a>b)return a;
  else return b;
}
此函數的功能是輸入兩個整數,輸出其中的大數。
/*函數說明*/
/*主函數*/
/*變量說明*/
/*輸入x,y值*/
/*調用max函數*/
/*輸出*/
/*定義max函數*/
/*把結果返回主調函數*/
  上面例中程序的功能是由用戶輸入兩個整數,程序執行後輸出其中較大的數。本程序由兩個函數組成,主函數和max 函數。函數之間是並列關系。可從主函數中調用其它函數。max 函數的功能是比較兩個數,然後把較大的數返回給主函數。max 函數是一個用戶自定義函數。因此在主函數中要給出說明(程序第三行)。可見,在程序的說明部分中,不僅可以有變量說明,還可以有函數說明。關於函數的詳細內容將在第五章介紹。在程序的每行後用/*和*/括起來的內容為注釋部分,程序不執行注釋部分。

  上例中程序的執行過程是,首先在屏幕上顯示提示串,請用戶輸入兩個數,回車後由scanf函數語句接收這兩個數送入變量x,y中,然後調用max函數,並把x,y 的值傳送給max函數的參數a,b。在max函數中比較a,b的大小,把大者返回給主函數的變量z,最後在屏幕上輸出z的值。

C源程序的結構特點

1.一個C語言源程序可以由一個或多個源文件組成。

2.每個源文件可由一個或多個函數組成。

3.一個源程序不論由多少個文件組成,都有一個且只能有一個main函數,即主函數。

4.源程序中可以有預處理命令(include 命令僅為其中的一種),預處理命令通常應放在源文件或源程序的最前面。

5.每一個說明,每一個語句都必須以分號結尾。但預處理命令,函數頭和花括號“}”之後不能加分號。

6.標識符,關鍵字之間必須至少加一個空格以示間隔。若已有明顯的間隔符,也可不再加空格來間隔。

書寫程序時應遵循的規則

  從書寫清晰,便於閱讀,理解,維護的角度出發,在書寫程序時 應遵循以下規則:

1.一個說明或一個語句占一行。

2.用{} 括起來的部分,通常表示了程序的某一層次結構。{}一般與該結構語句的第一個字母對齊,並單獨占一行。

3.低一層次的語句或說明可比高一層次的語句或說明縮進若干格後書寫。以便看起來更加清晰,增加程序的可讀性。在編程時應力求遵循這些規則,以養成良好的編程風格。

C語言的字符集

  字符是組成語言的最基本的元素。C語言字符集由字母,數字,空格,標點和特殊字符組成。在字符常量,字符串常量和注釋中還可以使用漢字或其它可表示的圖形符號。
1.字母  小寫字母a~z共26個,大寫字母A~Z共26個

2.數字  0~9共10個

3.空白符 空格符、制表符、換行符等統稱為空白符。空白符只在字符常量和字符串常量中起作用。在其它地方出現時,只起間隔作用, 編譯程序對它們忽略。因此在程序中使用空白符與否,對程序的編譯不發生影響,但在程序中適當的地方使用空白符將增加程序的清晰性和可讀性。

4.標點和特殊字符

今天就先學習到這裡,每天還可以看這個C語言入門教程,繼續學習下面的內容。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved