09c語言學習資料 一 資料型別 運算子和表示式

2022-03-11 20:17:56 字數 4188 閱讀 6017

大二那時當過c語言助教,答疑的時候時常發現新生們遇到各種各樣的問題,看著他們糾結的樣子很心痛,很想讓他們少走些彎路,一時激動通宵寫了一些概括的教程。那時也發給了自己協會裡的新生們。雖然知道發下去他們也不太會去看的,可是我想我至少努力過了。真的希望那時他們能好好的學c語言,因為這門課真的只有花心思進去了才能學好的。

(我那時改的作業乙個班竟然只有4、5個版本,真的很替他們擔憂阿。過幾天就是考試了,希望他們考好點,不要掛科。

一、資料型別、運算子和表示式

一、資料型別、運算子和表示式

1、簡單的程式結構

#include

void main()

# include《檔名》(或」檔名」)是乙個預處理命令,作用是把要用的標頭檔案包含到你的程式中。

stdio.h是就是乙個標頭檔案,裡面包含了些函式功能,像printf,scanf,gets等基本的輸入輸出函式的定義就包含裡面。程式裡面如果要用到類似printf的語句,在最前面就要加上#include,如果沒有的話,系統會無法識別,會報錯的。

標頭檔案你也可以自己寫,然後用#include包含進來,這樣當你要用到你自己寫的函式的時候,可以直接用,其實相當於你把函式的宣告和定義在標頭檔案裡定義過了。

void是空型別的意思,表示函式沒有返回值,如果不加的話主函式main預設也是void。

main是主函式的名字,乙個程式只有乙個主函式(main),並且程式是從主函式開始的,主函式結束了程式也就結束了。

上面的格式幾乎是固定的格式了呢

2、常量

常量分兩種一種是字面常量就是單單的4,5.2,』a』這樣子。

另一種是可能會用到的符號常量。就像書本38頁的例子,定義的方法是:#define 常量名 數值。#define是預處理命令,表示把以下程式裡面出現的perice全部替換成30,所以使用常量的好處是「一改全改」。

注:再給常量賦值的語句是錯誤的,常量的值在其定義域內不能改變,不能再被賦值。

常量名習慣大寫,小寫的也可以的。

3、變數

書本38頁 3.2.2變數開始的前兩段話好好理解。

變數型別一般有三種:整型變數,浮點型變數,字元型變數。

整型變數(都是整數):int(書本41頁的「2、整型變數的分類」看一下)

浮點型變數(允許有小數部分):float單精度浮點型,double雙進度浮點型。(他們的精度不一樣,有效數字長度分別是6~7和15~16,但是他們小數點後都是顯示6位)

注:字元型資料分字元常量和字元變數兩部分。字元常量又分普通的單撇號括起來的字元和特殊的轉義字元。

字元變數(用來存放字元,只能放乙個字元):char

4、輸入格式

scanf(」%d」,&十進位制整型變數名);scanf(」%f」,&單精度浮點型變數名);scanf(」%lf」,&雙精度浮點型變數名);scanf(」%c」,&字元型變數名);必須要加&取位址運算子。書本82頁例4.9看一下。

注意:以什麼格式輸入就要輸入什麼型別的資料。

5、輸出格式

printf(「%d」,十進位制整型變數名);printf(「%f」,浮點型變數名);(這裡單雙精度是一樣的) printf(「%c」,字元型變數名);printf(「%o」,八進位制整型變數名);printf(「%x」,十六進製制整型變數名);(如果變數是整型,也可以用八進位制和十六進製制法輸出)

注:雙引號內的「\\」開頭的字串行是轉義字元,書本48頁有表。雙引號內的「%」開頭的字串行是格式說明,書本75頁下方有介紹。除了這兩樣,printf雙引號內的其他字元都是原樣輸出。(表示式中的%是取餘的作用)

6、字元型的特殊

0-255數值範圍的字元變數和整型變數在printf輸出時可以通用,他們既可以用%d輸出也可以用%c輸出,具體輸出的結果看用哪種型別輸出。書本50頁說明。

字元輸入輸出函式:

putchar函式用法:putchar(c),它輸出字元變數c的值代表的字元,c可以是字元型變數或整型變數。還可也輸出轉義字元:如putchar(\\n);執行換行。

getchar函式:書本74頁例4.2仔細看看。

7、求餘運算子

%,又稱模運算,%兩側均應為整型資料。

如7%3為1,5%3為2,6%2為0,特殊例子: 2%2為0,2%5為2,2%7為2。

「/」除法運算子,多數c編譯系統採用的是向零取整

8、復合賦值運算子

a+=b相當於a=a+b,a%=b相當於a=a%b

x%=y+3相當於x%=(y+3)相當於x=x%(y+3),預設帶了括號的。

例:(a初值為12) 求a+=a-=a*=a

先求a*=a (a=12*12) 所以a=144,再a-=a(a=144-144) 所以a=0,再a+=a(a=0+0) 所以最終a=0。

(a初值為12,n初值為5) 求a%=(n%=2)

先求括號裡的值n=n%2,所以n的值為1,括號裡的值為1,再求a%=1,余為0,所以最終a=0。

9、格式化輸出

整型:%md  m指定輸出的資料共佔m列。如果資料的位數小於m,則左端補以空格(如果是%-md,則是右端補以空格),若超出m,則按實際位數輸出。

例如printf(「%4d,%4d,%-6d」a,b,c); 若a=123,b=12345,c=123

則輸出結果為_123,12345,123___

浮點型:%m.nf  m指定輸出的資料共佔m列。n為擷取的小數點位數(注意cfree3.5環境下擷取的方式是4舍5入,所以作業本19頁第3題第二個答案是3.142而不是直接取3.141。這個和程式的執行平台有關,為了程式的可移植性程式設計師應盡量避免出現這樣的分歧)

看的時候先取好n位小數,取好之後的資料的位數小於m,則左端補以空格(如果是%-m.nf,則是右端補以空格),若超出m,則按實際位數輸出。

例如printf(「%4.3f,%5.3f,%6.3f,%7.3f」a,a,a,a); 若a=3.1415

則輸出結果為3.142,3.142,_3.142,__3.142

注:%.1f的寫法也是可以的,只是擷取小數。下面的字元型也一樣。

字元型(字串):%m.ns  m指定輸出的資料共佔m列。n為只取字串中左端n個字元。

先取好左端n個字元,取好之後的資料的位數小於m,則左端補以空格(如果是%-m.ns,則是右端補以空格),若超出m,則按實際位數輸出。

例如作業本上第20頁第5題就是乙個很好的例子,答案分別是%14.8s;\\n  %10.6s;\\n  %6.4s;\\n  %-8.3s;\\n

10、混合運算和強制型別轉換

混合運算:整型、浮點型、字元型資料間可以混合運算,運算前需要一定的轉換。

如字元型必定先轉換為整數,short型轉換為int,float型資料在運算時一律先轉換成雙精度型,以提高運算精度(即使是兩個float型資料相加,也先都化成double型,然後再相加)

強制型別轉換:

利用強制型別轉換運算子將乙個表示式轉換成所需型別,轉換得到的只是乙個中間變數,原來的型別和值未發生變化。

注:在cfree環境下浮點型轉換為整型時是直接去掉小數部分。

例:int a=2; int b=3; float x=3.5; float y=2.5  求(float)(a+b)/2+(int)x %(int)y

先求(int)x %(int)y  相當於 3%2 結果為1,再求(float)(a+b)/2 相當於5.000000/2結果為2.500000, 所以最終結果為2.500000+1 結果為3.500000。

11、自增、自減運算子

++i,--i  (i先加(減)1然後再拿來使用)  

i++,i-- (i先拿來使用,然後自己再加(減)1)

例:作業本第21頁第2題,結果是i=9,j=11,m=9,n=10。

這個一定要弄懂,熟練

12、逗號表示式

例如(a=3*5,a*4)逗號表示式的運算次序為從左至右,先一路運算過去,然後最右邊的乙個式子作為整個表示式的值。

如果b=(a=3*5,a*4)的話,b的值為60。

如果x=(a=3,6*3)的話,x的值為18。

最後作業本21頁第3題一定要會的,結果是3,4,3    3,4,4。理解一下。

大一的c語言為以後的複雜程式打基礎的。以後做**做軟體都會用到。

對電信專業的同學來說c語言請一定學好~其他專業的同學如果有興趣也可以看看~多了解一下

一些小經驗:1、上課之前要預習一遍要講的內容。2、作業認真做。會發現很多漏洞的。3、和同學多多交流

有時間有能力的同學最好把書一字一句看過去。因為老譚的書很好。看完一遍以後你的知識漏洞會非常少了。有的同學可能跟著老師的路子走也會學的很好。

時間倉促,看見錯誤了請多指正

C語言學習(一)資料型別

一 資料型別 1 資料型別 基本型別 整型int 字元型char 浮點型 單精度實型float 雙精度實型double 構造型別 陣列型別 結構型別struct 聯合型別union 列舉型別enum 指標型別 空型別 void 2 常量與變數 常量 在程式執行過程中,其值不能被改變的量 define...

09c語言學習資料 三 陣列

4 1至 4 3一維陣列,二維陣列,字元陣列與字串 資料型別包括了基本型別,構造型別,指標型別,和空型別。其中基本型別包括了整型,字元型,浮點型和列舉型別。而構造型別包括了陣列型別,結構體型別和共用體型別。構造型別資料是由基本型別資料按一定規則組成的。1 一維陣列 程式裡資料實際上是存放在位址段裡面...

C語言學習系列(一)資料型別

基本資料型別由11個關鍵字組成 int short long unsigned char float dobule bool complex 複數 imaginary 虛數 c 語言內建運算子 sizeof 以位元組為單位給出指定型別的大小。編譯器可用 u 或 lu 列印。注 在運算物件是型別時,圓...