當前位置:首頁 » 編程語言 » c語言基礎知識點總結

c語言基礎知識點總結

發布時間: 2022-09-28 08:52:23

c語言基礎知識必背什麼

c語言基礎必背知識如下:

1、C語言程序結構有三種:順序結構,循環結構(三個循環結構),選擇結構(if 和 switch)。

2、計算機的數據在電腦中是以二進制的形式保存。最低的存儲單元是bit(位),位是由為 0 或者1構成。 byte 是指位元組, 一個位元組 = 八個位。數據存放的位置就是它的地址。

3、合法的要求是由字母,數字,下劃線組成。有其它元素就錯了。


4、大寫字母和小寫字母轉換的方法: A+32=a 相互之間一般是相差32。

5、賦值表達式:表達式數值是最左邊的數值,a=b=5,該表達式為5,常量不可以賦值。

㈡ 學習C語言需要掌握哪些基本知識

1.入門程序

#include <stdio.h>
int main()
{
printf("Hello World!");
return 0;
}

2.數據類型

數據類型:

1.基本數據類型:

1.1. 整型:int 4個位元組

1.2. 字元型:char 1個位元組

1.3. 實型(浮點型)

  • 1.3.1.單精度型:float 4個位元組

  • 1.3.2.雙精度型:double 8個位元組

  • 2.構造類型:

    2.1.枚舉類型

    2.2.數組類型

    2.3.結構體類型

    2.4.共用體類型

    3.指針類型:

    4.空類型:

    3.格式化輸出語句

  • %d:十進制整數;

  • %c:單個字元;

  • %s:字元串;

  • %f:6位小數;

  • #include <stdio.h>

  • int main()

  • {

  • int age = 18;

  • float height = 1.85;

  • char unit = 'm';

  • printf("小明今年%d歲 ", age);

  • printf("小明身高%f%c ", height, unit);

  • printf("小明現在在慕課網上學習IT技術 ");

  • return 0;

  • }

  • 學好C++才是入職大廠的敲門磚! 當年要是有這課,我的C++也不至於這樣

    已失效

    4.常量

    值不發生改變的量成為常量;

    定義字元常量(注意後面沒有;)

  • #include <stdio.h>

  • #define POCKETMONEY 10 //定義常量及常量值

  • int main()

  • {

  • printf("小明今天又得到%d元零花錢 ", POCKETMONEY);

  • return 0;

  • }

  • 5.運算符

    5.1.算數運算符:+,-,*,/,%,++,--;前++/--,先運算,再取值.後++/--,先取值,再運算;

    5.2.賦值運算符:

    5.3.關系運算符;

    5.4.邏輯運算符;

    5.5.三目運算符:

  • 表達式1 ? 表達式2 : 表達式3;

  • 6.水仙花數計算

    輸出所有三位數的水仙花數字

    所謂「水仙花數」是指一個三位數,其各位數字立方和等於該數,如:153就是一個水仙花數,153=111+555+333。

  • #include <stdio.h>


  • int main()

  • {

  • //定義三位數num,個位數sd,十位數td,百位數hd

  • int num, sd, td, hd;

  • //循環所有三位數

  • for( num=100 ; num<1000 ; num++ )

  • {

  • //獲取三位數字num百位上的數字

  • hd = num/100 ;

  • //獲取三位數字num十位上的數字

  • td = num/10%10 ;

  • //獲取三位數字num個位上的數字

  • sd = num%10 ;

  • //水仙花數的條件是什麼?

  • if(num ==hd*hd*hd+td*td*td+sd*sd*sd )

  • {

  • printf("水仙花數字:%d ", num);

  • }

  • }

  • return 0;

  • }

  • 7.列印正三角形的*

  • #include <stdio.h>

  • int main()

  • {

  • int i, j, k;

  • for(i=1; i<5; i++)

  • {

  • /* 觀察每行的空格數量,補全循環條件 */

  • for( j=i ; j<5 ; j++ )

  • {

  • printf(" "); //輸出空格

  • }

  • /* 觀察每行*號的數量,補全循環條件 */

  • for( k=0 ; k<2*i-1 ; k++ )

  • {

  • printf("*"); //每行輸出的*號

  • }

  • printf(" "); //每次循環換行

  • }

  • return 0;

  • }

  • 8.臭名遠揚的goto語句

    很少使用

  • #include <stdio.h>

  • int main()

  • {

  • int sum = 0;

  • int i;

  • for(i=1; i<=10; i++)

  • {

  • printf("%d ", i);

  • if(i==3){

  • goto LOOP;//滿足條件就執行goto語句

  • }

  • }

  • //執行goto

  • LOOP:printf("結束for循環了...."); //請選擇合適位置添加標識符

  • return 0;

  • }

  • 9.形參與實參

    形參:形參是在定義函數名和函數體的時候使用的參數,目的是用來接收調用該函數時傳入的參數;

    實參:實參是在調用時傳遞該函數的參數。

    函數的形參和實參具有以下特點:

  • 形參只有在被調用時才分配內存單元,在調用結束時,即刻釋放所分配的內存單元。因此,形參只有在函數內部有效。函數調用結束返回主調函數後則不能再使用該形參變數。

  • 實參可以是常量、變數、表達式、函數等,無論實參是何種類型的量,在進行函數調用時,它們都必須具有確定的值,以便把這些值傳送給形參。因此應預先用賦值等辦法使實參獲得確定值。

  • 在參數傳遞時,實參和形參在數量上,類型上,順序上應嚴格一致,否則會發生類型不匹配」的錯誤。

  • 10.函數返回值注意

    注意:void函數中可以有執行代碼塊,但是不能有返回值,另void函數中如果有return語句,該語句只能起到結束函數運行的功能。其格式為:return;

    11.遞歸

  • #include <stdio.h>


  • int getPeachNumber(int n) //這里要定義n,要不編譯器會報錯!

  • {

  • int num;

  • if(n==10)

  • {

  • return 1;

  • }

  • else

  • {

  • num = (getPeachNumber(n+1)+1)*2;

  • printf("第%d天所剩桃子%d個 ", n, num);

  • }

  • return num;

  • }

  • int main()

  • {

  • int num = getPeachNumber(1);

  • printf("猴子第一天摘了:%d個桃子。 ", num);

  • return 0;

  • }

  • 12.變數存儲類別 !

    12.1.生存周期劃分存儲方式

    C語言根據變數的生存周期來劃分,可以分為靜態存儲方式和動態存儲方式。

    靜態存儲方式:是指在程序運行期間分配固定的存儲空間的方式。靜態存儲區中存放了在整個程序執行過程中都存在的變數,如全局變數。

    動態存儲方式:是指在程序運行期間根據需要進行動態的分配存儲空間的方式。動態存儲區中存放的變數是根據程序運行的需要而建立和釋放的,通常包括:函數形式參數;自動變數;函數調用時的現場保護和返回地址等。

    12.2.存儲類型劃分

    C語言中存儲類別又分為四類:自動(auto)、靜態(static)、寄存器的(register)和外部的(extern) ;

  • 用關鍵字auto定義的變數為自動變數,auto可以省略,auto不寫則隱含定為「自動存儲類別」,屬於動態存儲方式。

  • 用static修飾的為靜態變數,如果定義在函數內部的,稱之為靜態局部變數;如果定義在函數外部,稱之為靜態外部變數。

  • 注意:靜態局部變數屬於靜態存儲類別,在靜態存儲區內分配存儲單元,在程序整個運行期間都不釋放;靜態局部變數在編譯時賦初值,即只賦初值一次;如果在定義局部變數時不賦初值的話,則對靜態局部變數來說,編譯時自動賦初值0(對數值型變數)或空字元(對字元變數)

  • 為了提高效率,C語言允許將局部變數的值放在CPU中的寄存器中,這種變數叫「寄存器變數」,用關鍵字register作聲明。

  • 注意:只有局部自動變數和形式參數可以作為寄存器變數;一個計算機系統中的寄存器數目有限,不能定義任意多個寄存器變數;局部靜態變數不能定義為寄存器變數。

  • 用extern聲明的的變數是外部變數,外部變數的意義是某函數可以調用在該函數之後定義的變數。

  • #includ <stdio.h>

  • //來源公眾號:C語言與CPP編程

  • int main()

  • {

  • //定義外部局部變數

  • extern int x;

  • return 0;

  • }

  • int x=100;

  • 13.內部函數外部函數 !

    在C語言中不能被其他源文件調用的函數稱為內部函數 ,內部函數由static關鍵字來定義,因此又被稱為靜態函數,形式為:

    static [數據類型] 函數名([參數])

    這里的static是對函數的作用范圍的一個限定,限定該函數只能在其所處的源文件中使用,因此在不同文件中出現相同的函數名稱的內部函數是沒有問題的。

    在C語言中能被其他源文件調用的函數稱為外部函數 ,外部函數由extern關鍵字來定義,形式為:

    extern [數據類型] 函數名([參數])

    C語言規定,在沒有指定函數的作用范圍時,系統會默認認為是外部函數,因此當需要定義外部函數時extern也可以省略。 extern可以省略; 14.數組 數組:一塊連續的,大小固定並且裡面的數據類型一致的內存空間, 數組的聲明:數據類型 數組名稱[長度n]

  • 數據類型 數組名稱[長度n] = {元素1,元素2,元素3,......};

  • 數據類型 數組名稱[] = {元素1,元素2,元素3,......};

  • 數類類型 數組名稱[長度n]; 數組名稱[0] = 元素1;數組名稱[1] = 元素2;...... 注意: 1、數組的下標均以0開始; 2、數組在初始化的時候,數組內元素的個數不能大於聲明的數組長度; 3、如果採用第一種初始化方式,元素個數小於數組的長度時,多餘的數組元素初始化為0; 4、在聲明數組後沒有進行初始化的時候,靜態(static)和外部(extern)類型的數組元素初始化元素為0,自動(auto)類型的數組的元素初始化值不確定。

  • 15.數組遍歷

  • #include <stdio.h>


  • int main()

  • {

  • int arr[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};

  • int i;

  • for(i=0;i<10;i++)

  • {

  • printf("%d ",arr[i]);

  • }

  • return 0;

  • }

  • 數組的冒泡排序

  • 冒泡排序的思想:相鄰元素兩兩比較,將較大的數字放在後面,直到將所有數字全部排序。

  • 字元串與數組

  • 在C語言中,是沒有辦法直接定義子字元串數據類型的,需使用數組來定義所要的字元串,形式如下:

  • char 字元串名稱[長度] = "字元串內容";

  • char 字元串名稱[長度] = {'字元串1','字元串2',....,'字元串n',''};

  • 注:

  • []中的長度可以省略不寫;

  • 採用第二種方式最後一個元素必須是'',表示結束;

  • 第二種方式不能寫中文!; 輸出字元串時,要使用:printf("%s",字元數組名);或puts(字元數組名);

  • 16.字元串函數

  • strlen(s):獲取字元串s的長度;

  • strcmp(s1,s2):比較字元串;比較的時候會把字元串轉換成ASCII碼再進行比較,返回結果為0表示s1和s2的ASCII碼值相等,返回結果為1表示s1比s2的ASCII碼大,返回結果為-1表示s1比s2的ACSII碼小;

  • strcpy(s1,s2):字元串拷貝;s2會取代s1中的內容;

  • strcat(s1,s2)將s2拼接到s1後面;注意:s1的length要足夠才可以!

  • atoi(s1)將字元串轉為整數!

  • 17.多維數組

    數據類型 數組名稱[常量表達式1]...[常量表達式n];

    多維數組的初始化與一維數組的初始化類似也是分兩種:

  • 數據類型 數組名稱[常量表達式1][常量表達式2]...[常量表達式n] = {{值1,..,值n},{值1,..,值n},...,{值1,..,值n}};

  • 數據類型 數組名稱[常量表達式1][常量表達式2]...[常量表達式n]; 數組名稱[下標1][下標2]...[下標n] = 值;

  • 多維數組初始化要注意以下事項:

  • 採用第一種始化時數組聲明必須指定列的維數。因為系統會根據數組中元素的總個數來分配空間,當知道元素總個數以及列的維數後,會直接計算出行的維數;

  • 採用第二種初始化時數組聲明必須同時指定行和列的維數。

  • 18.多維度數組的遍歷

    使用嵌套循環

    注意:多維數組的每一維下標均不能越界!

    19.結構體

    C 數組允許定義可存儲相同類型數據項的變數,結構是 C 編程中另一種用戶自定義的可用的數據類型,它允許您存儲不同類型的數據項。

    結構用於表示一條記錄,假設您想要跟蹤圖書館中書本的動態,您可能需要跟蹤每本書的下列屬性:

  • Title

  • Author

  • Subject

  • Book ID

  • 定義結構

    為了定義結構,您必須使用 struct 語句。struct 語句定義了一個包含多個成員的新的數據類型,struct 語句的格式如下:

  • struct tag {

  • member-list

  • member-list

  • member-list

  • ...

  • } variable-list ;

  • tag 是結構體標簽。

    member-list 是標準的變數定義,比如 int i; 或者 float f,或者其他有效的變數定義。

    variable-list 結構變數,定義在結構的末尾,最後一個分號之前,您可以指定一個或多個結構變數。下面是聲明 Book 結構的方式:

  • struct Books

  • {

  • char title[50];

  • char author[50];

  • char subject[100];

  • int book_id;

  • } book;

  • 在一般情況下,tag、member-list、variable-list 這 3 部分至少要出現 2 個。以下為實例:

  • //此聲明聲明了擁有3個成員的結構體,分別為整型的a,字元型的b和雙精度的c

  • //同時又聲明了結構體變數s1

  • //這個結構體並沒有標明其標簽

  • struct

  • {

  • int a;

  • char b;

  • double c;

  • } s1;


  • //此聲明聲明了擁有3個成員的結構體,分別為整型的a,字元型的b和雙精度的c

  • //結構體的標簽被命名為SIMPLE,沒有聲明變數

  • struct SIMPLE

  • {

  • int a;

  • char b;

  • double c;

  • };

  • //用SIMPLE標簽的結構體,另外聲明了變數t1、t2、t3

  • struct SIMPLE t1, t2[20], *t3;


  • //也可以用typedef創建新類型

  • typedef struct

  • {

  • int a;

  • char b;

  • double c;

  • } Simple2;

  • //現在可以用Simple2作為類型聲明新的結構體變數

  • Simple2 u1, u2[20], *u3;

  • 訪問結構成員

    為了訪問結構的成員,我們使用成員訪問運算符(.)。成員訪問運算符是結構變數名稱和我們要訪問的結構成員之間的一個句號。您可以使用 struct 關鍵字來定義結構類型的變數。下面的實例演示了結構的用法:

  • #include <stdio.h>

  • #include <string.h>

  • //來源公眾號:C語言與CPP編程


  • struct Books

  • {

  • char title[50];

  • char author[50];

  • char subject[100];

  • int book_id;

  • };


  • int main( )

  • {

  • struct Books Book1; /* 聲明 Book1,類型為 Books */

  • struct Books Book2; /* 聲明 Book2,類型為 Books */


  • /* Book1 詳述 */

  • strcpy( Book1.title, "C Programming");

  • strcpy( Book1.author, "Nuha Ali");

  • strcpy( Book1.subject, "C Programming Tutorial");

  • Book1.book_id = 6495407;


  • /* Book2 詳述 */

  • strcpy( Book2.title, "Telecom Billing");

  • strcpy( Book2.author, "Zara Ali");

  • strcpy( Book2.subject, "Telecom Billing Tutorial");

  • Book2.book_id = 6495700;


  • /* 輸出 Book1 信息 */

  • printf( "Book 1 title : %s ", Book1.title);

  • printf( "Book 1 author : %s ", Book1.author);

  • printf( "Book 1 subject : %s ", Book1.subject);

  • printf( "Book 1 book_id : %d ", Book1.book_id);


  • /* 輸出 Book2 信息 */

  • printf( "Book 2 title : %s ", Book2.title);

  • printf( "Book 2 author : %s ", Book2.author);

  • printf( "Book 2 subject : %s ", Book2.subject);

  • printf( "Book 2 book_id : %d ", Book2.book_id);


  • return 0;

  • }

  • 學好C++才是入職大廠的敲門磚! 當年要是有這課,我的C++也不至於這樣

    已失效

    20.共用體

    共用體是一種特殊的數據類型,允許您在相同的內存位置存儲不同的數據類型。您可以定義一個帶有多成員的共用體,但是任何時候只能有一個成員帶有值。共用體提供了一種使用相同的內存位置的有效方式。

  • #include <stdio.h>

  • #include <string.h>


  • union Data

  • {

  • int i;

  • float f;

  • char str[20];

  • };


  • int main( )

  • {

  • union Data data;


  • printf( "Memory size occupied by data : %d ", sizeof(data));


  • return 0;

  • }

  • 21.指針

  • #include <stdio.h>


  • int main ()

  • {

  • int var = 20; /* 實際變數的聲明 */

  • int *ip; /* 指針變數的聲明 */


  • ip = &var; /* 在指針變數中存儲 var 的地址 */


  • printf("Address of var variable: %p ", &var );


  • /* 在指針變數中存儲的地址 */

  • printf("Address stored in ip variable: %p ", ip );


  • /* 使用指針訪問值 */

  • printf("Value of *ip variable: %d ", *ip );


  • return 0;

  • }

  • 22.文件讀寫

    寫入文件

  • #include <stdio.h>


  • int main()

  • {

  • FILE *fp = NULL;


  • fp = fopen("/tmp/test.txt", "w+");

  • fprintf(fp, "This is testing for fprintf... ");

  • fputs("This is testing for fputs... ", fp);

  • fclose(fp);

  • }

  • 讀取文件

  • #include <stdio.h>


  • int main()

  • {

  • FILE *fp = NULL;

  • char buff[255];


  • fp = fopen("/tmp/test.txt", "r");

  • fscanf(fp, "%s", buff);

  • printf("1: %s ", buff );


  • fgets(buff, 255, (FILE*)fp);

  • printf("2: %s ", buff );


  • fgets(buff, 255, (FILE*)fp);

  • printf("3: %s ", buff );

  • fclose(fp);


  • }

  • C語言與C++學習路線

    23.排序演算法

    十大經典排序演算法(動態演示+代碼)

    24.查找演算法

    九種查找演算法

    25.面試知識

    C語言與C++面試知識總結

    26.字元串操作

    字元串操作的全面總結

    27.C語言常用標准庫解讀

    C語言常用標准庫解讀

    28. C語言最常用的貪心演算法

    C語言最常用的貪心演算法就這么被攻克了

    29. 常見的C語言內存錯誤及對策

    常見的C語言內存錯誤及對策

    30. C語言實現面向對象的原理

    C語言實現面向對象的原理

    31. C語言/C++內存管理

    看完這篇你還能不懂C語言/C++內存管理?

    32. 再談C語言指針

    再談指針:大佬給你撥開 C 指針的雲霧

    C語言函數指針之回調函數

    C語言指針詳解(文末有福利)

    33. C語言預處理命令

    長文詳解:C語言預處理命令

    34. C語言高效編程與代碼優化

    C語言高效編程與代碼優化

    35. C語言結構體

    C語言之結構體就這樣被攻克了!值得收藏!

    36. 原碼, 反碼, 補碼 詳解

    原碼, 反碼, 補碼 詳解

    37. C語言宏定義

    簡述C語言宏定義的使用

    38. c語言之共用體union、枚舉、大小端模式

    c語言之共用體union、枚舉、大小端模式

㈢ 計算機c語言基礎知識

計算機c語言的特性

C語言是世界上最流行、使用最廣泛的高級程序設計語言之一。在操作系統和系統使用程序以及需要對硬體進行操作的場合,用C語言明顯優於其它高級語言,許多大型應用軟體都是用C語言編寫的。C語言的主要特性有以下幾種:

1、C是高級語言:它把高級語言的基本結構和語句與低級語言的實用性結合起來。

2、C是結構式語言:結構式語言的顯著特點是代碼及數據的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。

3、C語言功能齊全:具有各種各樣的數據類型,並引入了指針概念,可使程序效率更高。而且計算功能、邏輯判斷功能也比較強大,可以實現決策目的的游戲。

4、C語言適用范圍大:適合於多種操作系統,如Windows、DOS、UNIX等等;也適用於多種機型。

5、C語言應用指針:可以直接進行靠近硬體的操作,但是C的指針操作不做保護,也給它帶來了很多不安全的因素。C++在這方面做了改進,在保留了指針操作的同時又增強了安全性。

6、C語言創始人D.M.Ritchie6、C語言文件由數據序列組成:可以構成二進制文件或文本文件常用的C語言IDE有Microsoft Visual C++,Dev-C++,Code::Blocks,Borland C++,Watcom C++,Borland C++ Builder,GNU DJGPP C++,Lccwin32 C Compiler 3.1,High C,Turbo C,C-Free,win-tc,xcode等。

計算機c語言的語法結構

1.順序結構

順序結構的程序設計是最簡單的,只要按照解決問題的順序寫出相應的語句就行,它的執行順序是自上而下,依次執行。順序結構可以獨立使用構成一個簡單的完整程序,常見的輸入、計算,輸出三步曲的程序就是順序結構。

2.選擇結構

選擇結構的執行是依據一定的條件選擇執行路徑,而不是嚴格按照語句出現的物理順序。選擇結構的程序設計方法的關鍵在於構造合適的分支條件和分析程序流程,根據不同的程序流程選擇適當的選擇語句。

3.循環結構

循環結構可以減少源程序重復書寫的工作量,用來描述重復執行某段演算法的問題,這是程序設計中最能發揮計算機特長的程序結構,C語言中提供四種循環,即goto循環、while循環、do while循環和for循環。

4.模塊化程序結構

C語言的模塊化程序結構用函數來實現,即將復雜的C程序分為若干模塊,每個模塊都編寫成一個C函數,然後通過主函數調用函數及函數調用函數來實現一大型問題的C程序編寫,因此常說:C程序=主函數+子函數。因此,對函數的定義、調用、值的返回等中要尤其注重理解和應用,並通過上機調試加以鞏固。

計算機c語言基礎知識

【知識點1】C程序

C語言程序結構有三種: 順序結構 , 循環結構(三個循環結構), 選擇結構(if 和 switch)

【知識點2】main函數

每個C語言程序中main 函數是有且只有一個。讀程序都要從main()入口, 然後從最上面順序往下讀(碰到循環做循環,碰到選擇做選擇)。

【知識點3】存儲形式

計算機的數據在電腦中是以二進制的形式保存。最低的存儲單元是bit(位),位是由為 0 或者1構成。 byte 是指位元組, 一個位元組 = 八個位。數據存放的位置就是它的地址。

【知識點4】注釋

是對程序的說明,可出現在程序中任意合適的地方,注釋從「/*」開始到最近一個「*/」結束,其間任何內容都不會被計算機執行,注釋不可以嵌套。

【知識點5】書寫格式

每條語句的後面必須有一個分號,分號是語句的一部分。一行內可寫多條語句,一個語句可寫在多行上。

【知識點6】標識符

合法的用戶標識符考查:

合法的要求是由字母,數字,下劃線組成。有其它元素就錯了。

並且第一個必須為字母或則是下劃線。第一個為數字就錯了。

C語言標識符分如下3類

(1)關鍵字。它們在程序中有固定的含義,不能另作他用。如int、for、switch等。

(2)預定義標識符。預先定義並具有特定含義的標識符。如define、include等。

(3)用戶標識符。用戶根據需要定義的標識符,符合命名規則且不與關鍵字相同。

關鍵字不可以作為用戶標識符號。main define scanf printf 都不是關鍵字。迷惑你的地方If 是可以做為用戶標識符。因為If 中的'第一個字母大寫了,所以不是關鍵字。

【知識點7】實型數據

實型數據的合法形式:小數形式和指數形式。掌握判定指數形式合法性。

2.333e-1 就是合法的,且數據是2.333×10-1。

考試口訣:e 前e 後必有數,e 後必為整數。

【知識點8】字元

字元數據的合法形式::

'1' 是字元佔一個位元組,"1"是字元串占兩個位元組(含有一個結束符號)。

'0' 的ASCII 數值表示為48,'a' 的ASCII 數值是97,'A'的ASCII 數值是65。

字元型和整數是近親:

char a = 65 ;

printf(「%c」, a); 得到的輸出結果:a

printf(「%d」, a); 得到的輸出結果:65

一般考試表示單個字元錯誤的形式:'65' "1"

字元是可以進行算術運算的,記住: '0'-0=48

大寫字母和小寫字母轉換的方法: 'A'+32='a' 相互之間一般是相差32。

【知識點9】整型數據

整型一般是兩個位元組, 字元型是一個位元組,雙精度一般是4 個位元組:

考試時候一般會說,在16 位編譯系統,或者是32 位系統。碰到這種情況,不要去管,

一樣做題。掌握整型一般是兩個位元組, 字元型是一個位元組,雙精度一般是4 個位元組就可以了。

【知識點10】轉義字元

轉義字元的考查:

在程序中 int a = 0x6d,是把一個十六進制的數給變數a 注意這里的0x 必須存在。

在程序中 int a = 06d, 是一個八進制的形式。

在轉義字元中, 』x6d』 才是合法的,0 不能寫,並且x 是小寫。

『141』 是合法的, 0 是不能寫的。

『108』是非法的,因為不可以出現8。

【知識點11】算術運算

算術運算符一共有+、—、*、/、%這五個。%符號兩邊要求是整數。不是整數就錯了。

三種取整丟小數的情況:不是四捨五入是舍掉小數部分。

1、int a =1.6;

2、(int)a;

3、1/2; 3/2;

【知識點12】強制類型轉換

將一個運算對象轉換成指定類型,格式為(類型名)表達式

一定是 (int)a 不是 int(a),注意類型上一定有括弧的。

注意(int)(a+b) 和(int)a+b 的區別。前是把a+b 轉型,後是把a 轉型再加b。

【知識點13】賦值

是表達式就一定有數值。

賦值表達式:表達式數值是最左邊的數值,a=b=5;該表達式為5,常量不可以賦值。

復合賦值運算符:注意:a*=m+2 是 a=a*(m+2)

自加、自減表達式:假設a=5,++a(表達式的值為6), a++(表達式的值為5);

j=a++;等價於j=a;a=a+1; 而j=++a;等價於a=a+1;j=a;。

考試口訣:++在前先加後用,++在後先用後加。

【知識點14】逗號運算

逗號表達式:優先順序別最低; 表達式的數值逗號最右邊的那個表達式的數值。

(2,3,4)的表達式的數值就是4。

【知識點15】數制轉換

一定要記住二進制 如何轉換成十進制。

八進制是沒有8 的,逢8 進1,018 的數值是非法的。

【知識點16】位運算

會有一到二題考試題目。

C語言提供6種位運算符:按位求反~,按位左移<<,按位右移>>,按位與&,按位異或|,按位或^。

總的處理方法:幾乎所有的位運算的題目都要按這個流程來處理(先把十進制變成二進制再變成十進制)。

異或運算的規則:0異或1得到1,0異或0得到0,1異或1得到0。可記為「相同為0,不同為1」。

在沒有捨去數據的時候,<<左移一位表示乘以2;>>右移一位表示除以2。

㈣ C語言知識總結

c語言概要
第一章、 概述
1、 c語言的基本知識
1.1、 c語言的執行步驟
編輯-程序代碼的錄入,生成源程序*.c
編譯-語法分析查錯,翻譯生成目標程序*.obj
(語法或邏輯錯誤,從第一個開始改,變數定義,語句格式,表達式格式等)
鏈接-與其他目標程序或庫鏈接裝配,生成可執行程序*.exe
執行
1.2、 main函數的基本知識
main()函數的位置
c程序總是從main( )函數開始執行
一個c程序可以包含一個主函數,即main()函數;也可以包含一個main()函數和若干其它函數
1.3、 c程序的結構
函數與主函數
程序由一個或多個函數組成
必須有一個且只能有一個主函數main()
程序執行從main開始,在main中結束,其他函數通過嵌套調用得以執行
程序語句
C程序由語句組成
用「;」作為語句終止符
注釋
//

/* */ 為注釋,不能嵌套
不產生編譯代碼
1.4、c 程序書寫的規則
習慣用小寫字母,大小寫敏感
不使用行號,無程序行概念:通常一個語句佔一行
可使用空行和空格
常用鋸齒形的書寫格式;同一層次結構的語句上下對齊。
第二章、基本數據類型與運算
2.1、c程序的數據類型
注意類型和變數含義的不同(類型是固定好的名字,變數是自己起的名字)
變數佔用的存儲空間
數據類型
基本類型:整型、字元型、浮點型(單精度型,雙精度型)
構造類型:數組類型、結構體類型
指針類型
空類型
注意基本類型賦初值的方式
基本數據類型的表示形式
整形數據
十進制:以非0數字開頭,如:123,-9,0
八進制;以0數字開頭,如:0123,067
十六進制:以0x開頭,如:0x123,0xff
實型數據
十進制:必須帶小數點,如:123.0,-9.0
指數形式;如:1.23E3,0.9e-2,5e2
字元型數據
普通字元:如:』a』,』2』,』H』,』#』
轉義字元:如:』\n』,』\167』,』\xlf,』\\』
(實現幾列的對齊:指定寬度。如%100\ 『\t』製表位)
(字元串長度。「abc\n\t\\」 strlen 6; sizeof 7)
基本數據類型的存儲長度
整型
Int 位元組數 2 位數 16 數的表示範圍 -32768—32767
Short 2 16 -32768—32767
Long 4 32 -2147483648—2147483647
實型
Float 4 32 3.4e-38---3.4e38
Double 8 64 1.7e-308---1.7e308
字元型
Char 1 8 -128----127
2.2、標識符命名規則
C語言標志符命名規則
標識符有數字,字母,下劃線組成
標識符的首字元必須為字母和下劃線
標識符不能為c語言的保留字(關鍵字)
如:auto extern sizeof float static case for struct char goto switch continue in typedef const if union default long unsigned do register void double return else short while enum signed
算術運算符 + - * / %
關系運算符 > < == >= <= !=
邏輯運算符 ! && ||
位運算符 << >> ~ | ^ &
賦值運算符 = 及其擴展賦值運算符
條件運算符 ? :
逗號運算符 ,
指針運算符 * &
求位元組數運算符 sizeof
強制類型轉換運算符 (類型)
分量運算符 . ->
下標運算符 [ ]
其他 如函數調用運算符()
運算符的優先順序
由高到低:單目運算符,算數運算符,關系運算符,賦值運算符
說明:單目運算符:自增運算符,自減運算符,類型裝換運算符。結合方向:自右至左
如:++--I 先—i.。
算術運算 結合方向自左至右
2.3基本運算和表達式
關系表達式和邏輯表達式
(a>b)&&(x>y) (a==b)||(x==y) !=a||(a>b)
A&&b.a為0.不執行b
A||b a為1.不執行b
在 c 中邏輯運算結果:1代表「真」,0代表「假」;
判斷一個表達式是否真:0代表「假」,非0代表「真」
條件表達式 逗號表達式
如:k=5,k++
逗號值為5;k為6.
表達式1?表達式2 :表達式3
K=5>6 ? 1 : 0
2.4、混合運算的數據類型轉換
2/3+0.5 雙精度浮點型
第三章、順序結構程序設計
3.1、c語句的分類
簡單語句
表達式語句 表達式+分號
空語句 只有分號的語句
復合語句 用花括弧將若干語句括起來
流程式控制制語句
選擇語句 if ,switch
循環語句 while, do while , for
轉移語句 break ,continue ,return goto
3.2、格式輸入函數scanf
一般形式:scanf(「格式控制字元串「,地址列表);
使用scanf函數時,需要注意:
格式字元的個數必須與輸入項的個數相同,數據類型必須一一對應,非格式字元串(說明性的)要原封不動的輸入。
輸入實行數據時,可以不帶小數點,即按整型數據輸入
數值型數據與字元或字元串混合輸入時,需要注意輸入方式。
3.3、格式輸出函數printf
Printf(「格式控制字元串「,輸出列表);
指定輸出格式,由格式字元串和非格式字元串兩種組成,非格式字元串照原樣輸出。
%[標志][輸出最小寬度][.精度][長度]類型
標志:- 左對齊;+ 右對齊;
%f, %d, %c, %s
3.4、其他輸入輸出函數
Putchar getchar puts gets
第四章、選擇結構程序設計
If選擇結構
單分支
If(表達式)
語句
雙分支
If(表達式)
語句1
Else
語句2
多分支
If (表達式1)
語句1
Else if(表達式2)
語句2
。。。
Else if(表達式m)
語句m
Else
語句n
Switch(表達式)
{
Case 常量表達式1:語句1;break;
Case 常量表達式2:語句2;break;
。。。
Case 常量表達式m:語句m;break;
Default:語句n;break;
}
注意break的使用
第五章、循環結構程序設計
循環三要素
初始條件 ;終止條件 ;在初始條件和終止條件間反復做某件事情(循環體)
While(表達式)
語句

Do
語句
While(表達式);

For(循環體變數賦初值;循環條件;循環變數增量)
( for( ) ; // ; 進行時間延遲。在信息交換等時用。如for(i=0,i<100) ; 互相通訊的時間延遲。 Delay )
Break語句 :不能用於循環語句和switch語句之外的任何其他語句;跳出循環。
Continue語句 :跳過循環體中剩餘的語句而強行執行下一次循環;跳出本次循環。
第六章、函數與編譯預處理
6.1、函數的定義和調用
類型標識符 函數名 (形式參數列表)
{ 聲明部分
語句
}
例:
Int max (int x,int y)
{int z;<br>Z=x>y?x:y;<br>Return(z);}
6.2、局部變數和全局變數
注意函數中靜態變數的定義和使用
6.3、變數的存儲類型
局部變數的存儲類型
自動變數(auto) 動態存儲
局部靜態變數(static) 靜態存儲
寄存器變數(register) 靜態存儲
全局變數的存儲類型
自動變數(auto) 動態存儲
外部變數 (extern) 靜態存儲
全局靜態變數(static )靜態存儲
Extern 外部引用
Static 不能用extern 引用。
第七章、數組
7.1、一維數組的定義和使用
特別需要注意循環體的初值,終止條件
例:
Main()
{
Int I,a[10];
For(i=0;i<=9;i++)
A=I;
For(i=9;i>=0;i--)
Printf(「%d」,a);
}
注意下標問題
7.2、二維數組的定義和使用
二維數組的初始化
例如:
Int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
Int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
Int a[ ][4]={1,2,3,4,5,6,7,8,9,10,11,12};
Int a[ ][4]={{1,2,3,4},{5},{9,10,11,12}};
例如:int a[3][3]={{1},{2},{3}};
是對每一行的第一列元素賦值,未賦值的元素取0
7.3、字元數組和 字元串
字元串用字元數組來處理,結束標志符 『\0』
如:char c[ ]={「I am happy」};
用字元串常量使字元數組初值化
Char c[ ]={『I』,』 『,』a』,』m』,』 『,』h』,』a』,』p』,』p』,』y』,』\0』};
第八章、指針
8.1、地址和指針的概念
Int I;
Int *i_point;
8.2、指針變數和變數的地址
操作符:* &
8.3、指針和一維數組
若有定義
Int a[10];
Int *p=a;
分析下面表達式的含義:
A, &a,
*(a+i), a+I,
*(p+i), p+i
A=*(a+i)=*(P+i)
&a=a+i=p+i
8.4、指針與字元串
Main()
{
Char string[ ]=」I love china!」;
Printf(「%s\n」,string);
}
Main()
{ char *string=」I love china!」;
Printf(「%s\n」,string);
}
8.5、指針變數作為函數參數
形參的定義方式;實參的形式;參數的傳遞方式。
第九章、結構體
9.1、結構體類型和變數的定義
Struct 結構體名
{成員列表};
Struct student
{char stuNO[8];<br>Char name[20];<br>Char sex;<br>Int age;<br>Float score;<br>Char addr[30];<br>};

Stuct student
{char stuNO[8];<br>Char name[20];<br>Char sex;<br>Int age;<br>Float score;<br>Char addr[30];<br>};
Struct student stu1, stu2;
9.2、結構體變數的引用
一般形式為:
結構體變數名.成員名
9.3、結構體數組
結構體數組 結構體數組元素.成員名
指向結構體的指針變數
(*p).成員名
p->成員名
其他
Strcpy(字元數組1,字元串2)
Strcat(字元數組1,字元數組2)
Strcmp(字元串1,字元串2)
Strlen(字元數組)

㈤ 誰幫我整理一些C語言的基礎知識,謝謝!!

C語言基礎知識
1.1 C語言簡介
C語言於1972年由美國的Dennis Ritchie發明,並首次在配備了UNIX操作系統的DEC PDP-11計算機上實現。它由早期的編程語言BCPL(Basic Combind Programming Language)發展演變而來。1970年,AT&T貝爾實驗室的Ken Thompson根據BCPL語言設計出了較先進並取名為B的語言,通過不斷修改、完善,更先進的C語言問世了。
C語言是一種功能強大、應用廣泛、具有發展前途的計算機語言。它既可用於系統軟體的設計,也可用於應用軟體的開發。許多著名的系統軟體都是由C語言編寫的。C語言具有下列特點:
(1)C語言既具有低級語言直接操縱硬體的特點,又具有高級語言與 自然語言和人的思維邏輯相似的特點,C語言程序易編寫、易查錯,而且實用性很強。
(2)C語言具有豐富的數據類型和運算符,語法結構簡單。
(3)C語言是一種結構化程序設計語言,提供了完整的程序控制語句。
(4)C語言是一種模塊化程序設計語言,適合大型軟體的開發和研製。
(5)C語言還有一個突出的優點就是適合於多種操作系統,如DOS、UNIX,也適用於多種機型,其程序移植性好。
1.2 C語言的數據類型
數據是程序處理的對象,數據類型是數據的內在表現形式。例如,學生的年齡和成績具有一般數值的特點,在C語言中稱為數值型,其中年齡是整數,稱為整型;成績可以為小數,稱為實型。而學生的姓名和性別是文字,在C語言中稱為字元型數據。
C語言具有豐富的數據類型,其中基本的數據類型有整型、實型、字元型。
1.2.1 變數
變數是在程序執行過程中其值可以被改變的量。
1.變數命名規則
和人的取名一樣,變數的命名也有一定的規則。
(1)由字母、數字和下劃線組成;
(2)必須以字母或下劃線打頭;
(3)字母區分大小寫(在系統默認狀態下);
(4)前32個字元有效(在系統默認狀態下)。
例如:a,Book,book,_Make_Cipher都是合法的變數名,且Book與book是不同的變數名,而123A,x+y都不是變數名。
2.變數的數據類型
變數可以是任意的一種數據類型,如整型變數、字元型變數、指針變數等。C語言中的基本數據類型及其特性如表1-1所示。
表1-1 C語言的基本數據類型
數據類型名 數據類型描述 數據類型的長度(位元組) 數據取值范圍
char 字元型 1 0~255
int 有符號整型 2 –32 768~32 767
unsigned int 無符號整型 2 0~65 535
short 短整型 2 –32 768~32 767
long 長整型 4 –2 147 483 648~2 147 483 647
unsigned long 無符號長整型 4 0~4 294 967 295
float 單精度實數 4 |3.4×10–38|~|3.4×1038|
double 雙精度實數 8 |1.7×10–308|~|1.7×10308|
long double 長雙精度實數 10 |3.4×10–4932|~|3.4×104932|

3.變數的定義
每個變數在使用前都必須先定義其數據類型,定義變數數據類型的語法格式如下:

數據類型符 變數名1,變數名2,…;

例如:

int age,score; /* 定義年齡和成績為整型 */
char name[20]; /* 定義姓名為至多含20個字元的字元數組 */

4.變數的存儲類型
當定義某個變數時,C語言的編譯系統就要給該變數分配若干個存儲單元用來存放該變數的值。而在計算機中寄存器和內存都可以存放數據,內存又可分為臨時佔用和長期佔用。變數的存儲類型是指變數在計算機中的存放位置及時間。
定義變數存儲類型的語法格式如下:
存儲類型符 數據類型符 變數名1,變數名2,…;

變數的存儲類型有自動型(auto)、寄存器型(register)、靜態型(static)和外部型(extern),具體特點和使用方法在後面的章節中詳細介紹。
在變數定義時,如未說明存儲類型,則系統默認為自動型(auto)。
5.變數的初始化
變數的初始化是給變數賦初值的一種方法,是指在變數定義時就給變數賦予初始值。變數初始化的方法很簡單,在變數定義的語句中,在變數名後加一個等號和初值即可。
例如:

int x, age=20, score=100;

在上面的定義中,變數x未賦初值,而變數age和score的初值分別為20和100。
在程序中,變數未賦值之前不允許使用,即要遵循「先賦值後使用」的規則。
1.2.2 常量
常量是在程序運行過程中值不發生改變的數據。例如,圓周率3.1415926就是一個常量。常量也有數據類型,它們是整型常量、實型常量、字元常量、字元串常量及符號常量,整型常量及實型常量的數據長度及取值范圍與變數的規定相同。
1.整型常量
整型常量用來表示整數,整型數據可以以不同數制形式來表示,不同的進位制有其不同的表示方式,其表示方式如表1-2所示。
表1-2 整型常量的表示方式
數 制 表 示 方 式 示 例
十進制 一般整數的寫法 0,–22,55
八進制 在八進制整數前加數字0 00,–072,+0331
十六進制 在十六進制整數前加數字0和字母x 0x0,0x1B5,–0xb3

另外,對於長整型常量,應當在其後加後綴L或l,例如30L。30L和30數值一樣,但佔用內存的大小不一樣。30佔用2個位元組的存儲空間,而30L佔用4個位元組的存儲空間。
2.實型常量
實型常量只有十進制數表示方式,它沒有單精度和雙精度之分。其表示方式有定點數表示和浮點數表示兩種。具體表示方式如表1-3所示。
表1-3 實型常量的書寫方法
類 別 表 示 方 式 示 例
定點數 整數部分.小數部分 0.0,1.34,–34.0
浮點數 尾數E(或e)指數 3.57E10,–5.6e–9

說明:
(1)浮點數表示方式相當於數學中的科學計數法,其換算公式如下:
尾數E(或e)指數=尾數×10指數
(2)浮點數中的指數部分只能是整型數,尾數可以大於或等於10。
3.字元常量
字元常量是用兩個單引號引住單個字元來表示的。例如:'A'、'*'、'!'等。使用字元常量時應注意以下幾點:
(1)空格也是字元,表示為'a'。
(2)單引號中必須恰好有一個字元,不能空缺。如' '是錯誤的字元常量。
在C語言中有一類特殊的字元常量,被稱為轉義字元。它們用來表示特殊符號或鍵盤上的控制代碼,常見的轉義字元如表1-4所示。
表1-4 常用轉義字元表
轉 義 字 符 意 義 轉 義 字 符 意 義
\n 回車換行符 \a 響鈴
\t 水平製表符 \" 雙引號
\v 垂直製表符 \' 單引號
\b 左退一格 \\ 反斜杠
\r 回車符 \ddd 1~3位八進制數ddd對應的字元
\f 換頁符 \xhh 1~2位十六進制數hh對應的字元

4.字元串常量
字元串是用雙引號引住的若干個字元。例如,"hello!","485769","a"。
字元串可以不含任何字元,稱為空串,表示為""。
字元串中所含的字元個數稱為字元串的長度。例如,"abc123","3",""的長度分別為6,1,0。計算字元串長度時應注意以下幾點:
(1)對於含有轉義字元的字元串,應將轉義字元計算為1個字元。例如,"abc\\12\n"的長度為7,而不是9;"abc\\\12\n"及"abc\\\123\n"的長度均為6。
(2)在字元串中,反斜杠表示轉義字元的開始,如果其後面沒有表1-4中所列出的轉義符號,則該反斜杠被忽略,並不參與計算長度。例如,"\A"的長度為1,但"\"是非法的。
5.符號常量
上面所介紹的常量都是具體數據,在程序中也可以用特定符號來表示某個常量,這個符號被稱為符號常量。
符號常量的語法格式如下:

#define 符號常量名 常量

例如:

#define PI 3.1415926

經過上述定義後,可以在程序中使用PI來代替3.1415926。
在程序中使用符號常量有兩個好處:一是提高了程序的易讀性;二是為修改程序提供了方便。例如,當不需要太高精度時,只需要將符號常量定義修改為
#define PI 3.14

而不需要在程序中去修改每一處的圓周率。
1.3 算術運算符與算術表達式
用來表示各種運算的符號稱為運算符。C語言中包括以下七大類的基本運算符:算術運算符、邏輯運算符、關系運算符、賦值運算符、逗號運算符、條件運算符和位運算符。本節主要介紹算術運算符,其他的運算符將在後續章節中詳細介紹。
1.3.1 算術運算符
C語言中的算術運算符和數學中的算術運算相似,是對數據進行算術運算的。算術運算符的運算對象、運算規則及結合性如表1-5所示。
表1-5 算術運算符
運算對象個數 名 稱 運 算 符 運 算 規 則 運算對象
數據類型 結 合 性
單目 正 + 取原值 整型或實型 自右向左
負 – 取負值
雙目 加 + 加法運算 自左向右
減 – 減法運算
乘 * 乘法運算
除 / 除法運算
模 % 整除取余 整型
單目 增1(前綴) ++ 先加1,後使用 整型、字元型、指針型變數或數組元素、實型 自右向左
增1(後綴) ++ 先使用,後加1
減1(前綴) – – 先減1,後使用
減1(後綴) – – 先使用,後減1

在C語言中,參加運算的對象個數稱為運算符的「目」。單目運算符是指參加運算的對象只有一個,如+10,–67,x++。雙目運算符是指參加運算的對象有兩個,如2+3,7%3。
相同運算符連續出現時,有的運算符是從左至右進行運算,有的運算符是從右至左進行運算,C語言中,將運算符的這種特性稱為結合性。
加法(+)、減法(–)、乘法(*)與數學中的算術運算相同。例如:3.5+4.7結果是8.2;3.5 – 4.7結果是–0.8;3.5*4.7結果是16.45。
除法運算(/)與數學中的除法不完全相同,它與參加運算的對象的數據類型相關。當參加運算的兩個對象均為整型數據時,其運算結果為數學運算結果的整數部分。如7/4結果為1,而不是1.75。若參加運算的兩個對象有一個是實型或兩個都是實型,那麼運算結果為實際運算的值,如7/5.0的運算結果為1.4。
模運算的運算對象必須為整型,結果是相除後的余數,如7%5結果為2。
增1減1運算符都是單目運算符,用來對整型、實型、字元型、指針型變數或數組元素等變數進行加1或減1運算,運算的結果仍是原類型。
1.3.2 常用數學函數
C語言系統提供了400多個標准函數(稱為庫函數),設計程序時可以直接使用它們。庫函數主要包括數學函數、字元處理函數、類型轉換函數、文件管理函數及內存管理函數等幾類。下面介紹常用的數學函數,其他類型的函數將在後面章節中陸續介紹。
1.函數名:abs
原型:int abs(int i);
功能:求整數的絕對值。
例如,設x=abs(5),y=abs(–5),z=abs(0),則x=5,y=5,z=0。
2.函數名:labs
原型:long labs(long n);
功能:求長整型數的絕對值。
例如,設x=labs(40000L),y=labs(–5),z=labs(0),則x=40000,y=5,z=0。
3.函數名:fabs
原型:double fabs(double x);
功能:求實數的絕對值。
例如,設x=fabs(5.3),y=fabs(–5.3),z=fabs(0),則x=5.3,y=5.3,z=0。
4.函數名:floor
原型:double floor(double x);
功能:求不大於x的最大整數,它相當於數學函數[x]。
例如,設x=floor(–5.1),y=floor(5.9),z=floor(5),則x= –6,y=5,z=5。
5.函數名:ceil
原型:double ceil(double x);
功能:求不小於x的最小整數。
例如,設x=ceil(–5.9),y=ceil(5.1),z=ceil(5),則x = –5,y=6,z=5
6.函數名:sqrt
原型:double sqrt(double x);
功能:求x的平方根。
例如,設x=sqrt(4),y=sqrt(16),則x=1.414214,y=4.0
7.函數名:log10
原型:double log10(double x);
功能:求x的常用對數。
8.函數名:log
原型:double log(double x);
功能:求x的自然對數。
9.函數名:exp
原型:double exp(double x);
功能:求歐拉常數e的x次方。
10.函數名:pow10
原型:double pow10(int p);
功能:求10的p次方。
例如,設x=pow10(3),y=pow10(0),則x=1000,y=1
11.函數名:pow
原型:double pow(double x, double y);
功能:求x的y次方。
例如,設x=pow(3,2),y=pow(–3,2),則x=9,y=9
12.函數名:sin
原型:double sin(double x);
功能:正弦函數。
13.函數名:cos
原型:double cos(double x);
功能:餘弦函數。
14.函數名:tan
原型:double tan(double x);
功能:正切函數。
1.3.3 算術表達式
由算術運算符和運算對象連接形成的式子稱為算術表達式。
算術運算符的優先順序從高到低規定如下:
++ – –
* / %
+ –
位於同一行的運算符的優先順序相同。
1.4 數據類型轉換規則
對數據進行運算時,要求參與運算的對象的數據類型相同(運算得到的運算結果的類型與運算對象也相同)。因此,在運算過程中常常需要對變數或常量的數據類型進行轉換,轉換的方法有兩種,一種是系統自動轉換(又稱為隱式轉換);另一種是在程序中強制轉換(又稱為顯式轉換)。
1.4.1 自動轉換規則
在不同類型數據的混合運算中,由系統自動實現轉換。轉換規則如下:
(1)若參與運算的數據的類型不同,則應先轉換成同一類型,然後進行運算。
(2)將低類型數據轉換成高類型數據後進行運算。如int型和long型運算時,先把int型轉換成long型後再進行運算。
類型的高低是根據其所佔空間的位元組數按從小到大的順序排列的,順序如下:
char,int,long,float,double。
(3)所有的浮點運算都是按照雙精度進行運算的,即使僅含float型單精度量運算的表達式,也要先轉換成double型,再作運算。
(4)char型和short型參與運算時,必須先轉換成int型。
例如,設有:

float PI=3.14;
int s,r=7;
s=r*r*PI;

因為PI為單精度型,s和r為整型,在執行s=r*r*PI語句時,r和PI都轉換成double型後再進行計算,運算結果也為double型,右邊的運算結果為153.86,但由於s為整型,故應將賦值號右邊的運算結果轉換成整型(捨去小數部分),因此s的值為153。
1.4.2 強制類型轉換
強制類型轉換是通過類型轉換運算來實現的,其語法格式如下:

(類型說明符)(表達式)

其功能是把表達式的運算結果強制轉換成類型說明符所表示的類型。例如: (float) a 把a轉換為實型;(int)(x+y) 把x+y的結果轉換為整型;而(int)x+y 則只將x轉換為整型。
在使用強制類型轉換時應注意以下問題:
(1)類型說明符和表達式都必須加括弧(單個變數可以不加括弧),如把(int)(x+y)寫成(int)x+y則只是把x轉換成int型之後再與y相加。
(2)對於被轉換的單個變數而言,無論是強制轉換還是自動轉換,都只是為了本次運算的需要而對變數的數據長度進行臨時性轉換,而不會改變變數定義時所聲明的類型。
例如,設有:

float f = –5.75;
int x;
x= (int)f;

將f強制轉換成整數–5,因此x = –5,而f本身的類型並未改變且其值仍為–5.75。
1.5 程序結構
1.5.1 主函數結構
每一個C源程序都是一系列函數的集合。其中,必須有且只能有一個主函數,其函數名為main,其結構如下:
void main(void)
{

}

其中,void main(void) 稱為函數說明部分(又稱函數頭),而

{

}

稱為函數體,函數體中的每個語句行末尾都必須用分號結束。
1.5.2 文件包含命令

C語言系統提供了400多個庫函數,並將這些函數根據其功能分成了若干組,每組都有一個組名。如數學類函數組的組名為math。在C語言系統所安裝文件夾的下級文件夾中有一個與其相對應的文件math.h,這些擴展名為.h的文件稱為頭文件。
include稱為文件包含命令,當用戶在程序中使用到系統的標准庫函數中的函數時,需要在程序中(一般在程序的首部)增加一條預處理語句如#include<stdio.h>,以便告知系統需要使用某個頭文件中的函數。
1.5.3 C語言程序基本結構
一個完整的C語言源程序由如下5個部分構成:
(1)預處理命令;
(2)全局變數說明;
(3)函數原型說明;
(4)主函數;
(5)其他子函數。
一個簡單的C語言源程序只需要(1)和(4)兩個部分,其中「預處理命令」一般是一系列文件包含命令,即include命令。
關於程序結構,應當注意以下幾方面的問題:
(1)可由若干個函數構成,其中必須有且只有一個以main命名的主函數,可以沒有其他函數。每個函數完成一定的功能,函數與函數之間可以通過參數傳遞信息。main()函數可以位於原程序文件中任何位置,但程序的執行總是從main函數開始,main函數執行完畢時程序執行結束。
(2)子函數的結構與主函數相同,即分為函數說明部分和函數體兩個部分。
(3)函數中的每個語句最後要有一個分號,作為語句結束標記。但某些特殊的語句行末尾不需要分號,有時還不能有分號。
(4)「/*」和「*/」括住的任意一段字元稱為「程序注釋」,用來對程序作說明,可以插入到程序的任何地方,且可以跨行使用。程序注釋不影響程序運行結果。
(5)函數的書寫格式很靈活,在一行中可以書寫多個語句(每個語句末尾都要有分號),一個語句也可以寫在多行中。在程序的任何地方都可以插入空格或回車符。
(6)主函數可以調用任何子函數但不能調用它自己,任何子函數之間也可以相互調用,但是子函數不能調用主函數。
下面是一個簡單的C語言源程序:
【例1-1】 求圓的面積。

#include <stdio.h>
void main(void)
{
float r,s,p=3.14;
r=10.5;
s=r*r*p;
printf("圓的面積是:%f ",s);
}

下面是一個較完整的C語言源程序:
【例1-2】 較完整的C語言程序示例。

#include<stdio.h>
#include<conio.h>
int y,z;
void abc(int x);
void main(void)
{
int x;
clrscr();
x=10;
y=20;
z=30;
printf("ok1: x=%d y=%d z=%d \n",x,y,z);
abc(x);
printf("ok2: x=%d y=%d z=%d \n",x,y,z);
getch();
}
void abc(int x)
{
int y;
printf("ok3: x=%d y=%d z=%d \n",x,y,z);
x=100;
y=200;
z=300;
printf("ok4: x=%d y=%d z=%d \n",x,y,z);
}

㈥ c語言有哪些基礎知識

C語言是一門面向過程的、抽象化的通用程序設計語言,廣泛應用於底層開發。

C語言能以簡易的方式編譯、處理低級存儲器。C語言是僅產生少量的機器語言以及不需要任何運行環境支持便能運行的高效率程序設計語言。

盡管C語言提供了許多低級處理的功能,但仍然保持著跨平台的特性,以一個標准規格寫出的C語言程序可在包括類似嵌入式處理器以及超級計算機等作業平台的許多計算機平台上進行編譯。

(6)c語言基礎知識點總結擴展閱讀:

C語言的字元串其實就是以''字元結尾的char型數組,使用字元型並不需要引用庫,但是使用字元串就需要C標准庫裡面的一些用於對字元串進行操作的函數。

它們不同於字元數組。使用這些函數需要引用頭文件<string.h>。

在C語言中,輸入和輸出是經由標准庫中的一組函數來實現的。在ANSI C中,這些函數被定義在頭文件<stdio.h>;中。

㈦ C語言入門

1、 DIP40雙列直插;
2、 P0,P1,P2,P3四個8位準雙向I/O引腳;(作為I/O輸入時,要先輸出高電平)
3、 電源VCC(PIN40)和地線GND(PIN20);
4、 高電平復位RESET(PIN9);(10uF電容接VCC與RESET,即可實現上電復位)
5、 內置振盪電路,外部只要接晶體至X1(PIN18)和X0(PIN19);(頻率為主頻的12倍)
6、 程序配置EA(PIN31)接高電平VCC;(運行單片機內部ROM中的程序)
7、 P3支持第二功能:RXD、TXD、INT0、INT1、T0、T1

單片機內部I/O部件:(所胃學習單片機,實際上就是編程式控制制以下I/O部件,完成指定任務)
1、 四個8位通用I/O埠,對應引腳P0、P1、P2和P3;
2、 兩個16位定時計數器;(TMOD,TCON,TL0,TH0,TL1,TH1)
3、 一個串列通信介面;(SCON,SBUF)
4、 一個中斷控制器;(IE,IP)

針對AT89S52單片機,頭文件AT89x52.h給出了SFR特殊功能寄存器所有埠的定義。

C語言編程基礎正式內容:

1、 十六進製表示位元組0x5a:二進制為01011010B;0x6E為01101110。
2、 如果將一個16位二進數賦給一個8位的位元組變數,則自動截斷為低8位,而丟掉高8位。
3、 ++var表示對變數var先增一;var—表示對變數後減一。
4、 x |= 0x0f;表示為 x = x | 0x0f;
5、 TMOD = ( TMOD & 0xf0 ) | 0x05;表示給變數TMOD的低四位賦值0x5,而不改變TMOD的高四位。
6、 While( 1 ); 表示無限執行該語句,即死循環。語句後的分號表示空循環體,也就是{;}
一、常量

(1)無符號單位元組數

(2)帶符號單位元組數

(3)無符號雙位元組數

(4)帶符號雙位元組數

(5)浮點數,佔用4個位元組

二、變數

(1)無符號單位元組數:unsigned char

(2)帶符號單位元組數:char

(3)無符號雙位元組數:unsigned int

(4)帶符號雙位元組數:int

(5)浮點數,佔用4個位元組:float

(6)位變數:sbit

(7)數組:Arrary[ ][ ]

(8)聯合體:union

union{

inti_Data;

unsigned char b_Data[2];

}u_int;

(9)結構體:struct

struct Stu_Channel_Info{

unsigned char Device_Info;

unsigned intDevice_ID;

unsigned intDevice_Time;

}Channel_Info[con_MaxNumber];

(10)指針:在C51語言中,我們盡量避免指針。

三、存儲類型

code:指放到程序存儲器中,不可變得常數 比如:unsigned char code x

data:指內部RAM低128位元組空間 00~7FH比如:unsigned char data x

idata:指全部內部RAM空間00H~FFH。unsigned char idata x

bdata:指放到可位定址區域20H~2FH中 unsigned char bdata x

pdata:指可用Ri定址的區域,通常固定為外部RAM256位元組unsigend char pdata x

xdata:指外部64KBRAM空間 unsiged char xdata x

四、關於運算符號

+:加法運算

-:減法運算

*:乘法運算

/:除法運算

%:取余數

<<:左移

>>:右移

=:等於

&:與操作

|:或操作

~:取反

&&:邏輯與

||:邏輯或

五、關於位操作

(1)口線位操作

sbit Left_Red P1^0表示用Left_Red來表示P1.0位

Left_Red = 0則表示將P1.0清零Left_Red = 1則表示將P1.0置位

(2)位變數的操作方法

unsigend char bdata Control_Port;// 聲明一個可位定址的位元組變數

sbitOutput1 = Control_Port^1;// 引用該位元組變數的某一位

sbitOutput2 = Control_Port^2;

sbitOutput3 = Control_Port^3;

則我們可以對Control_Port操作,也可以直接對其中定義好的位變數直接操作

六、關於外部埠的操作

#define LED_Address XBYTE[0xC400]固定LED_Address為0xC400地址

讀該埠的方法:x = LED_Address;

寫該埠的方法:LED_Address = x;LED_Address = 0x33; LED_Address = Arr[5];

七、外部RAM區的操作

unsigned char xdata Arr[20]; 表示聲明了20個位元組的外部RAM空間

寫方法:Arr[1] = 1;

讀方法:x = Arr[1];

unsigned char xdata Arr[20] _at_ 0x0000;表示這20個外部RAM的起始地址為0x0000

八、普通函數的書寫方法:

void Delay( void ){

}

void Output( unsigned char x ){

}

unsigned char Input( void ){

}

unsigned char Key_Disp( unsigned char *P ){

}

九、中斷服務函數的寫法:

void p_Int0( void ) interrupt 0 using 0{

}

其中interrupt 0 表示第0號中斷,即INT0中斷

using0 表示中斷服務程序中使用的工作組為0區。

十、常用語句

if (){}

else{}

for(;;; ) {}

while( ) {}

switch( ){

case:break;

case:barek;

default:break;

}

十一、書寫規范

x = x + 1;

for( i = 1; i < 10; i++ ){

j = Arr[5] + i;

}

void Delay_10ms( void ){

unsigned char i;

for( i = 0; i < 100; i++ ) { }

}

㈧ c語言課程的總結

1.先學習C語言的基礎知識。現在正在學C語言的在校學生可以直接進入第2步學習。
2.按照《C語言程序設計入門學習六步曲》進行上機練習。
3.在上機練習時要養成良好的編程風格。點擊查看C語言的編程風格

4.積極參加C、C++興趣小組,養成和老師與同學交流習慣,從而相互收益。有時別人不經意的一句話可能使你茅塞頓開--「一句話點醒夢中人」。

5.及時總結自己的學習經驗,養成寫C語言日記的習慣。軟體有編程日記功能。

6.從網上或教材上找一個自己感興趣的題目(選題時根據自己的能力,可先易後難,培養自己的成就感,如果有了成就感,即使再苦再累還是感覺C語言學習是一件快樂的事,同學們喜歡打游戲,經常通宵達旦地玩游戲也樂而不疲就是這個道理)進行實戰訓練,提高自己的C語言綜合應用能力。

7. 由於C語言靈活、強大,初學者要全面地掌握它是不可能的,因此在學習C語言的過程中,不要在細枝末節上浪費精力(比如++、--用於表達式的計算,實際上是沒有意義的),但一定要熟練掌握C語言的流程式控制制語句、數組、函數、指針等基礎知識的應用,為學習面向對象程序設計打下堅實的基礎。如果這些知識你學不好,要後續學習好C++、可視化的程序設計Visual C++或C++Builder就像空中樓閣,是不現實的。
C語言程序設計入門學習六步曲

筆者在從事教學的過程中,聽到同學抱怨最多的一句話是:老師,上課我也能聽懂,書上的例題也能看明白,可是到自己動手做編程時,卻不知道如何下手。發生這種現象的原因有三個:

一、所謂的看懂聽明白,只是很膚淺的語法知識,而我們編寫的程序或軟體是要根據要解決問題的實際需要控製程序的流程,如果你沒有深刻地理解C語言的語句的執行過程(或流程),你怎麼會編寫程序解決這些實際問題呢?

二、用C語言編程解決實際問題,所需要的不僅僅是C語言的編程知識,還需要相關的專業知識。例如,如果你不知道長方形的面積公式,即使C語言學得再好你也編不出求長方形的面積的程序來。

三、C語言程序設計是一門實踐性很強的課程,「紙上談兵」式的光學不練是學不好C語言的。例如,大家都看過精彩自行車雜技表演,假如,你從來沒有騎過自行車,光聽教練講解相關的知識、規則、技巧,不要說上台表演、就是上路你恐怕都不行。

出現問題原因清楚了,那麼如何學習呢?請你看【C語言學習六步曲】

在程序開發的過程中,上機調試程序是一個不可缺少的重要環節。「三分編程七分調試」,說明程序調試的工作量要比編程大得多。這里以如何上機調試C程序來說明C語言的學習方法。

第一步、驗證性練習

在這一步要求按照教材上的程序實例進行原樣輸入,運行一下程序是否正確。在這一步基本掌握C語言編程軟體的使用方法(包括新建、打開、保存、關閉C程序,熟練地輸入、編輯C程序;初步記憶新學章節的知識點、養成良好的C語言編程風格)。
初學者最容易犯的錯誤是:

1、沒有區分開教材上的數字1和字母l,字母o和數字0的區別,造成變數未定義的錯誤。另一個易錯點是將英文狀態下的逗號,分號;括弧()雙引號""輸入出入成中文狀態下的逗號,分號;括弧(),雙引號「」造成非法字元錯誤。

2、C語言初學者易犯語法錯誤:使用未定義的變數、標示符(變數、常量、數組、函數等)不區分大小寫、漏掉「;」、「{」與「}」、「(」與「)」不匹、控制語句(選擇、分支、循環)的格式不正確、調用庫函數卻沒有包含相應的頭文件、調用未C聲明的自定義函數、調用函數時實參與形參不匹配、數組的邊界超界等。

3、修改C語言語法錯誤時要注意以下兩點:

(1)、由於C語言語法比較自由、靈活,因此錯誤信息定位不是特別精確。例如,當提示第10行發生錯誤時,如果在第10行沒有發現錯誤,從第10行開始往前查找錯誤並修改之。

(2)、一條語句錯誤可能會產生若干條錯誤信息只要修改了這條錯誤,其他錯誤會隨之消失。特別提示:一般情況下,第一條錯誤信息最能反映錯誤的位置和類型,所以調試程序時務必根據第一條錯誤信息進行修改,修改後,立即運行程序,如果還有很多錯誤,要一個一個地修改,即,每修改一處錯誤要運行一次程序。
第二步、照葫蘆畫瓢
在第一步輸入的C程序的基礎上進行試驗性的修改,運行一下程序看一看程序結果發生了什麼變化,分析結果變化的原因,加深新學知識點的理解。事實上這和第一步時同步進行的,實現「輸入」加深知識的記憶,「修改」加深對知識的理解。記憶和理解是相輔相成的,相互促進。

例如:將最簡單的Hello World!程序
#include "stdio.h"
int main()
{
printf("Hello World!\n");
return 0;
}
中的

printf("Hello World!\n");

中的Hello World!改成你的姓名,運行一下程序,看有什麼變化?

再如求1+2+3...+100的和的程序

#include <stdio.h>

main()

{

int i,sum=0;

for(i=1;i<=100;i++)
{
sum=sum+i;
}
printf("sum=%d\n",sum);
}

第1次將for(i=1;i<=100;i++)中的100改成50,運行一下程序,看有什麼變化?

第2次將for(i=1;i<=100;i++)中的i++改成i=i+2,運行一下程序,看有什麼變化?

找出程序結果變化的原因,就加深了對C語句的理解。

第三步、不看教材看是否能將前兩步的程序進行正確地輸入並運行。

在這一步要求不看教材,即使程序不能運行,看能否將其改正,使其能正確運行。目的是對前兩步的記憶、理解進一步強化。

第四步、增強程序的調試能力

在教材中每章都有C語言初學者易犯的錯誤,按照易出錯的類型,將教材中的正確的程序改成錯誤的程序,運行一下程序,看出現的錯誤信息提示,並記下錯誤信息,再將程序改成正確的,運行一下程序。這樣反復修改,就能夠學習C語言程序發生錯誤的原因和修改錯誤的能力。

注意:每次只改錯一個地方,目的是顯示發生該錯誤的真正原因,避免一次改動多個地方,搞清發生錯誤的真正原因,切記!!!!

注意:上機調試程序時要帶一個記錄本,記下英文錯誤提示信息和解決該錯誤問題的方法,積累程序調試經驗,避免在編程犯同樣的錯誤,切記!!!!。

例如,將Hello World程序中語句

printf("Hello World!\n");

中的;改成中文的分號;

運行一下程序,看有什麼結果?

調試程序是一種實踐性很強的事,光紙上談兵是是沒用的,就像游泳運動員只聽教練講解示範,而不親自下水練習,是永遠學不會游泳的。

即使在優秀的程序員編寫程序也會犯錯誤的,可能事最低級的語法錯誤,但他能快速發現錯誤並改正錯誤,而我們C語言初學者面對錯誤提示,不知道發生了什麼錯誤,如何改正,這就事差別。

第五步、研究典型的C語言程序,提高程序設計能力

C語言初學者遇到最多的困惑是:上課也能聽懂,書上的例題也能看明白,可是到自己動手做編程時,卻不知道如何下手。發生這種現象的原因是:所謂的看懂聽明白,只是很膚淺的語法知識,而沒有深刻地理解C語言的語句的執行過程(或流程)。

計算機是按照人的指令(編寫的程序)去執行的,如果不知道這些C語句在計算機中是如何執行的,你怎麼回靈活運用這些知識去解決實際問題呢?

解決問題的方法是要先理解C語言各種語句的流程(即計算機是如何執行這些語句的過程),然後研讀現成C語言經典程序,看懂別人事如何解決問題的,以提高自己的程序設計能力。
第六步、研究課程設計源成序,提高C語言的綜合應用能力.

㈨ c語言知識點有哪些

c語言知識點有:

1、C語言程序是由多個函數構成的。

2、每個C語言程序中有且只有一個main函數。

3、C語言不使用行號,無程序行的概念。

4、程序中可使用空行和空格。

5、C語言程序格式常用鋸齒形書寫格式。

6、C語言程序中可加任意多的注釋,注釋形式/*……*/,並且注釋形式不能嵌套,即不能注釋裡面又有另一個注釋。//行注釋是C++當中新增加的內容。

7、引用C語言標准庫函數,一般要用文件包含預處理命令將其頭文件包含進來。

8、用戶自定義的函數,必須先定義後使用。

9、變數必須先定義後使用。

10、變數名,函數名必須是合法的標識符,標識符習慣用小寫字母,C語言是字母大小寫敏感的語言。

11、不能用關鍵字來命名變數和函數。

12、C語言的語句都是以分號結尾的。

13、計算機中使用的進制數是二進制數,而不是十進制數,因為二進制只有兩個數碼,運算簡單便於硬體實現,同時二進制便於邏輯運算。

將十進制數轉換成二進制數應分為整數部分轉換和小數部分轉換,整數部分轉換可採用基數除法來實現,小數部分轉換可採用基數乘法來實現。八進制和十六進制也是C語言中經常表示數據的進制,因為它們與二進制之間的轉換非常方便,但要注意他們不是計算機中使用的進制。

14、機器數的表示形式有原碼、反碼和補碼幾種形式,計算機中通常使用補碼的形式來表示一個數,因為補碼運算可以連同符號位一起參與運算,這便於運算器的設計與實現。

㈩ C語言的知識點有哪些

1、C語言是一門程序的基礎語言,知識點有很多,如果只是應付考試的話,把函數、數組和指針學會了就基本沒有問題了,還有就是幾種結構按是基礎,也是學習必不可少的。C++是在C語言的基礎上而法發展起來的,他繼承了C語言的大多數編程風格,現在市場上對C語言要求的人很少,軟體公司現在都是要C++/java等,極少數招收C語言的,不過學好C++的前提是學好C。

2、非語言部分:
1)首先是基礎數學,簡單的運算需要會,加減乘除問題不大
2)邏輯數學,分析解決問題邏輯需要清晰有條理
3)線性代數,數據結構中使用
4)概率統計

熱點內容
安卓手機什麼是雙卡 發布:2024-12-25 23:54:40 瀏覽:892
dnd伺服器ip地址 發布:2024-12-25 23:48:08 瀏覽:196
cad解壓沒有 發布:2024-12-25 23:48:03 瀏覽:14
超星做題腳本 發布:2024-12-25 23:35:14 瀏覽:908
打開加密pdf 發布:2024-12-25 23:24:57 瀏覽:742
動態sql查詢條件 發布:2024-12-25 23:24:56 瀏覽:303
qq群上傳速度 發布:2024-12-25 23:13:09 瀏覽:480
編程工程學 發布:2024-12-25 23:07:28 瀏覽:717
李小璐賈乃亮超級訪問 發布:2024-12-25 22:47:50 瀏覽:719
電信精品寬頻多ip路由如何配置 發布:2024-12-25 22:45:44 瀏覽:384