蘇世成c語言學習兩個月心得

2021-08-31 13:58:11 字數 2745 閱讀 7203

c語言學習兩個月心得章c資料型別

本章內容有常量和變數,整型、實型和字元型變數的定義和賦值,賦值運算子=,計算位元組數運算子sizeof,運算子的優先順序,運算子的結合性圓括號,識別符號命名。

c程式處理的資料由常量和變數兩種基本形式。變數和常量的區別在於:在程式執行的過程中,常量的值保持不變,變數的值是可以改變。c語言的基本資料型別有整型、實型、字元型和列舉型等。變數必須先定義,後使用。標註c規定所有變數必須在第一條可執行語句之前定義。賦值運算子的左值只能是變數,不是常:量或表示式。sizeof()是c的關鍵字不是函式名。圓括號,將表示式括起來,可避免因誤用和混淆運算子的優先順序和結合性而導致的程式錯誤。不允許使用c識別符號命名。

本章常見錯誤小結a:變數未定義就使用

b:忽視了變數區分大小寫,使得定義的變數和使用的變數不同名

int sum;sum=0;

c:可執行語句之後定義變數printf("input n");int n;

d:在定 義變數時,用於變數初始化的常量型別與定義的變數型別不一致

int n=3.9;

e:在定義變數時,對於多個變數進行連續賦值

int n=m=0;

第三章簡單的算數運算和表示式主要內容:1.算數運算子

算術運算子算數運算子的優先順序高於賦值運算子。算數運算子的結合性是左結合,賦值運算子的結合性是右結和。2.增一和減一運算子

增一和減1運算子字尾形式與字首形式的區別前者是使用變數的值然後再增一(減一),後者是先增一(減- -),然後再使用變數的值。

3.強制型別轉換運算子

將表示式的值強制轉化為目標型別4.自動型別轉換

在不同型別資料之間會發生自動型別轉換。1將取值範圍小的轉換為取值範圍大的型別是安全(的,而反之則是不安全的。

5. 整數除法

兩個整數相除的商仍為整數。

若要得到浮點數商,必須使用浮點數除法,豆者將其中乙個運算元強制轉為浮點數。7.巨集常量

巨集替換是簡單的字串替換,不進行語法檢

查8.const常量

可以用於宣告具有某種型別的常量。常見錯誤

a:使用了非法的識別符號

b:將乘法運算子省略或寫成x4ac或者4xaxc

c:表示式為一線性形式寫出,,即分子、 分母、指數下標等未寫在同一行上

d:使用方括號0和以及花括號}限制表示式1.0/2.0+[a-b]

e:數學函式運算時未將引數用圓括號括起,, 且且未注意定義域要求和引數的單位

f:對浮點數進行求餘運算3.5%5

g: 強制轉換表示式中型別名為用圓括號括起來

float(m)/2

h:誤以為(float)這種強制運算可以改變變數m

1:誤以為用雙引號括起來字串中與巨集名相同的字元也被巨集替換,誤以為巨集替換時可以做語法檢查

k:將巨集定義當做算數運算子使用#define pi=3.14159

1:對乙個算數算數表示式使用增一-或者減一-運

算(a+b)++典型例題1.強制轉換

#includeint main()

int n=256float f=3.6;double d=2.5;

f=n;d=f;

printf("n=%d\n",n);printf("f=%f\n",f);printf("'d=%f\n' ,d);

程式的執行結果為n=3

f=3.000000;d=3,000000;

#include#define pi 3.14159int main()

double r;

printf("input r:";scanf("%1f",&r);

printf("circumstance=%f\n"2*pi*r;printf("area=%f\n",pi*r*r;

第四章鍵盤輸入和螢幕輸出主要內容1. 字元常量

用單引號括起來的乙個字元

以反斜線(\)開頭、有特定含義的字元序

3.字元輸出函式putchar()向螢幕輸出字元

4.字元輸入函式getchar()從鍵盤輸入字元

5.資料的格式化輸出函式printf()

以各種格式進行任:意型別的資料的螢幕輸出操作

6.資料的格式化輸.入函式scanf()

以各種格式進行任意型別資料的鍵盤輸入操作

錯誤例項

1.忘記給scanf()中的變數加上取位址運算

scanf("%d",a);

2.使用者從鍵盤輸入的資料格式與scanf()中格式控制字串要求的格式不一致。例如,相鄰資料項之間應該用逗號分隔,但是使用者沒有輸入逗號,或者不應該用逗號,分隔使用者輸入了逗號scanf("%d%d",&a,&b);使用者輸入2,3

3.將printf0誤寫為print()或者printf(。於c編譯器只是在目標程式中為庫函式呼叫留出空間,並不能識別函式名中拼寫錯誤,更不知道庫函式裡在**,尋找庫函式並將其插入到目標程式中是鏈結程式負責的工作,函式名拼寫錯誤只能在鏈結時發現

print("input a:");printf(input a:";

例#includeint main()

char ch;

printf("press a key and then pressenter:");

ch=getchar();ch=ch+32;

printf("%c, %d\n",ch,ch);}

第五章選擇控制結構主要內容

用於單分支控制的條件語句#includeint main()

用於雙分支控制的條件語句#include int main ()

我的感悟:一定要先明白c語言的表達方式,遵守c語言的規則,不亂寫,有理有據,多加練習。

C語言兩個函式題

f3 查詢陣列元素最大值 10分 本題要求實現乙個函式,查詢陣列中最大元素的下標。例如陣列為,則該函式應該返回4。題目輸入保證陣列元素各不相同。函式介面定義 int indexofmax int array,int size 其中 array 和 size 是使用者傳入的引數。array 是陣列首位...

C語言 交換兩個變數的

c語言中交換兩個變數值 a,b 的幾種方法 1 利用臨時變數 int temp temp a a b b temp 2 不用臨時變數 這種方法有可能溢位 a a b b a b a a b 3 用按位運算子 這種方法不適合浮點數 a a b b a b a a b 4 記憶體拷貝方法 個人覺得這種方...

c語言 兩個值的交換

指標的呼叫 交換兩個數值 一 子函式 被呼叫函式 的改變要想修改父函式 呼叫函式 的值需要 1.傳指標 2.解引用 二 的實現過程 錯誤一 void swap int a,int b int tmp tmp a a b b tmp int main int a 10 int b 20 swap a,...