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,...