第一篇:大學C語言考試知識點
1.開始——程序——VC ++ 6.0 ——文件——新建——文件——C++ source file(C源文件)2.標準C 語言的后綴名.c
3./* example1.1
The first C Program*/ 注釋文字 不影響程序本身 是程序員看的,方便日后修改 /* 注釋文字 */
4.stdio.h 輸入輸出頭文件
#include
編譯預處理文件
作用是將stdio.h包含到我們的C程序里面來 5.main(){ }
主函數;任何一個C語言程序有且僅有一個主函數,所有程序代碼都必須包含到主函數的{}里面去 ;
printf(“”);是一個輸出函數;所有的需要的輸出的內容都必須放在printf里面的””里面去
C語言里面的所有符號都必須是英文狀態(tài)下的 關掉軟件
熱啟動 ctrl+alt+del 調出任務管理器
系統(tǒng)暫停命令 system(“pause”);
在VC++6.0 C++的環(huán)境下,需要頭文件 stdlib.h 在編程的時候需要加預處理#include
.c是C語言文件的源文件的標準后綴名,是高級語言;
.obj是C語言文件的目標文件的標準后綴名,是一種機器語言;.exe是C語言文件的可知性文件的標準后綴名;是一種機器語言; 11.signed int 類型所對應的格式字符是
%d unsigned int類型所對應的格式字符是 %u 12.標識符:由字母、數字、下劃線組成;第一個字母必須是字母或者下劃線;
不區(qū)分大小寫;不能是關鍵字;
13.常量 :在整個程序的運行過程中,值不會改變的量
符號常量:用符號來常量的值
整型常量:
十進制——數學中普通整數的表示 數碼0-9
123
格式字符%d
八進制——以0開頭的八進制數 數碼0—7
0123
格式字符%o
十六進制——以0x開頭的十六進制數 數碼0—9 a—f
0x123 格式字符 %x 實型常量:
十進制:只要有小數點
.123
123.float 格式字符%f double %lf
指數形式:包含了E或 e
注意 E、e的前后都必須有數字,后面的數字必須是整數
%e
字符型常量:以’’括起來的單個普通字符或者是轉義字符
‘a’
‘n’
‘OOO’
‘xHH’
‘123’
‘x2a’
字符串常量:以””括起來的字符序列
“a”
“abd58ege,2dgd” 14.變量:在程序的運行過程中,其值可以改變的量
定義:
數據類型
變量名;
int
a;
賦值:a=15;
類型:
整型變量:int 變量名; int a;定義變量
a=3;變量賦值
實型變量: float 變量名;
double 變量名; 字符型變量:char 變量名;
沒有字符串變量,只有字符串常量 15.運算符的優(yōu)先級大致排行
!-> 算術運算符>關系運算符>邏輯運算符>賦值運算符>逗號運算符
表達式:含有運算符的式子稱為表達式 運算符:
+* / % +=-= *= /= %= ++-
= 賦值運算符
其左邊只能是單個變量
== 關系運算符
判斷兩邊的值是否相等
如果相等為真,不等為假
?: 條件運算符
判斷?前面的表達式,如果為真,就執(zhí)行:前面的表達式;如果為假就執(zhí)行:后面的
表達式1,表達式2,表達式3……
從左往右依次運算,最后表達式的值是整個逗號表達式的值 4. 輸入函數
sanf();getchar()gets()5. 輸出函數
Printf()Putchar()Puts();6.選擇結構
條件表達式的值要么為真,要么為假
if(‘a’)
if(0)if(x=y)
if(x==y)當條件滿足的時候,要執(zhí)行的語句
If(條件表達式){ 語句1; 語句2; 語句3;…… } If(條件表達式)語句1; 語句2; …… 6. 循環(huán)結構
循環(huán)的四要素
循環(huán)結構的相互轉換
循環(huán)結束的時候,循環(huán)變量的值 7. 數組
數組的定義 數組賦初值 數組的賦值
字符數組的賦值
數組的排序
8. 函數 9. 指針
int *p;int a;p=&a;*p=a;&*p=&a;10.結構體
是一種用戶自定義類型
第二篇:C語言知識點總結
C語言知識點總結資料I 總體上必須清楚的:
程序結構是三種:順序結構,循環(huán)結構(三個循環(huán)結構),選擇結構(if和switch)讀程序都要從main()入口,然后從最上面順序往下讀(碰到循環(huán)做循環(huán),碰到選擇做選擇)。
計算機的數據在電腦中保存是以二進制的形式。數據存放的位置就是它的地址。bit是位是指為0或者1。byte是指字節(jié)。一個字節(jié)=八個位。—定要記住二進制如何轉換成十進制。概念常考到的:
1、編譯預處理不是C語言的一部分,不占運行時間,不要加分號。C語言編譯的程序稱 為源程序,它以ASCII數值存放在文本文件中。
2、每個C語言程序中main函數是有且只有一個。
3、在函數定義中不可以再定義函數。
4、算法的是一定要有輸出的,他可以沒輸入。
5、break可用于循環(huán)結構和switch語句。
6、逗號運算符的級別最低。
第3章
1)合法的用戶標識符考查:
合法的要求是由字母,數字,下劃線組成。有其它元素就錯了。并且第一個必須為字母或則是下劃線。第一個為數字就錯了。
關鍵字不可以作為用戶標識符號。main define scanf printf都不是關鍵字。迷惑你 的地方If是可以做為用戶標識符。因為If中的第一個字母大寫了,所以不是關鍵字。2)實型數據的合法形式:
2.333e-1就是合法的,且數據是2.333X10' 考試口訣:e前e后必有數,e后必為整數。3)字符數據的合法形式::
'1'是字符占一個字節(jié),“1”是字符串占兩個字節(jié)(含有一個結束符號)。'0'的ASCII數值表示為48,'a'的ASCII數值是97,'A'的ASCII數值是65。一般考試表示單個字符錯誤的形式:' 65' 字符是可以進行算術運算的,記?。?0'-0=48 大寫字母和小寫字母轉換的方法:' A'+32='a'相互之間一般是相差32。4)int型TC中是2個字節(jié),VC中是4個字節(jié)。字符型是1個字節(jié)。5)轉義字符的考查:
在程序中int a = 0x6d,是把一個十六進制的數給變量a注意這里的0x必須存在。在程序中int a = 06d 是一個八進制的形式。
在轉義字符中,?x6d?才是合法的,0不能寫,并且x是小寫。?141?是合法的,0是不能寫的。?108?是非法的,因為不可以出現(xiàn)8。6)強制類型轉換:
一定是(int)a不是int(a),注意類型上一定有括號的。
“1” 注意(int)(a+b)和(int)a+b的區(qū)別。前是把a+b轉型,后是把a轉型再加b。7)表達式的考查:
是表達式就一定有數值。
賦值表達式:表達式數值是最左邊的數值,a=b=5;該表達式為5,常量不可以賦值。自加、自減表達式:假設a=5,++a(是為6),a++(為5);
運行的機理:++a是先把變量的數值加上1,然后把得到的數值放到變量a中,然后再用這 個++a表達式的數值為6,而a++是先用該表達式的數值為5,然后再把a的數值加上1為6,再放到變量a中。進行了++a和a++后在下面的程序中再用到a的話都是變量a中的6 了。
考試口訣:++在前先加后用,++在后先用后加。
逗號表達式:優(yōu)先級別最低;表達式的數值逗號最右邊的那個表達式的數值。(2,3,4)的表達式的數值就是4。
8)018的數值是非法的,八進制是沒有8的,逢8進1。9)%符號兩邊要求是整數。不是整數就錯了。10)三種取整丟小數的情況:
1、int
2、(int)a;3、1/2;3/2;11)字符型和整數是近親: char a = 65;printf(“%c”, a);得到的輸出結果:a prmtf(“%d”, a);得到的輸出結果:65 12)printf函數的格式考查:
%d對應整型;%c對應字符;%f對應單精度等等。寬度的,左對齊等修飾。%ld 對應 long int;%lf 對應 double。13)scanf函數的格式考察:
注意該函數的第二個部分是&a這樣的地址,不是a;scanf(“%d%d%*d%d”,&a,&b,&c);跳過輸入的第三個數據。14)putchar ,getchar 函數的考查:
char a = getchar()是沒有參數的,從鍵盤得到你輸入的一個字符給變量a。putchar(?y?)把字符y輸出到屏幕中。
15)如何實現(xiàn)兩個變量x,y中數值的互換(要求背下來)
不可以把x=y ,y=x;要用中間變量t=x;x=y; y=t。
16)如何實現(xiàn)保留三位小數,第四位四舍五入的程序,(要求背下來)
這個有推廣的意義,注意x =(int)x這樣是把小數部分去掉。
第4章
特別要注意:e語言中是用非0表示邏輯真的,用0表示邏輯假的。1)關系表達式:
表達式的數值只能為1(表示為真),或0(表示假)
當關系的表達是為真的時候得到1。如9>8這個是真的,所以表達式的數值就是1;2)邏輯表達式: a =1.6;只能為1(表示為真),或0(表示假)a)共有&& ||!三種邏輯運算符號。
b)!>&&>||優(yōu)先的級別。
c)注意短路現(xiàn)象??荚嚤容^喜歡考到。
d)要表示x是比0大,比10小的方法。0 else是與最接近的if且沒有else的相組合的。4)條件表達式: 表達式1 ?表達式2 :表達式3 注意是當非0時候是表達式2的數值,當為0是就是表達式2的數值。考試口訣:真前假后。5)switch 語句: a)—定要注意有break和沒有break的差別,書上(34頁)的兩個例子,沒有break 時候,只要有一個case匹配了,剩下的都要執(zhí)行,有break則是直接跳出了 switch語句。b)switch只可以和break —起用,不可以和continue用。C)switch(x)x:是整型常量,字符型常量,枚舉型數據。{case 1:....不可以是變量。case 2:...} 第5章 1)三種循環(huán)結構: a)for(); while();do-while()三種。 b)for循環(huán)當中必須是兩個分號,千萬不要忘記。 c)寫程序的時候一定要注意,循環(huán)一定要有結束的條件,否則成了死循環(huán)。 d)do-while()循環(huán)的最后一個while();的分號一定不能夠丟。(當心上機改錯),do—while 循環(huán)是至少執(zhí)行一次循環(huán)。2)break 和 continue 的差別 記憶方法: break:是打破的意思,(破了整個循環(huán))所以看見break就退出真?zhèn)€一層循環(huán)。continue:是繼續(xù)的意思,(繼續(xù)循環(huán)運算),但是要結束本次循環(huán),就是循環(huán)體內剩下 的語句不再執(zhí)行,跳到循環(huán)開始,然后判斷循環(huán)條件,進行新一輪的循環(huán)。3)嵌套循環(huán) 就是有循環(huán)里面還有循環(huán),這種比較復雜,要一層一層一步一步耐心的計算,一般記住 兩層是處理二維數組的。 while((c=getchar())!=?n?)和 while(c=getchar()!=?n?)的差別 先看a = 3!= 2和(a=3)=2的區(qū)別: (!=號的級別髙于=號所以第一個先計算3!=2)第一個a的數值是得到的1;第二個a的數值是3??荚囎⒁恻c:括號在這里的重要性。 第6章 1)一維數組的重要概念: 對a[10]這個數組的討論。 1、a表示數組名,是第一個元素的地址,也就是元素a[0]的地址。 2、a是地址常量,所以只要出現(xiàn)a++,或者是a=a+2賦值的都是錯誤的。 3、a是一維數組名,所以它是列指針,也就是說a+1是跳一列。對a[3][3]的討論。 1、a表示數組名,是第一個元素的地址,也就是元素a[0]的地址。 2、a是地址常量,所以只要出現(xiàn)a++,或者是a=a+2賦值的都是錯誤的。 3、a是二維數組名,所以它是行指針,也就是說a+1是跳一行。 4、a[0]、a[1]、a[2]也都是地址常量,不可以對它進行賦值操作,同時它們都是列指針,a[0]+1,a[1]+1,a[2]+1 都是跳一列。 5、注意a和a[0]、a[1]、a[2]是不同的,它們的基類型是不同的。前者是一行元素,后 三者是一列元素。 2)兩種重要的數組長度: char a={?a?,?b?,?c?};數組長度為3,字符串長度不定。sizeof(a)為3。char a[5]={ ?a?,?b?,?c?} 數組長度為 5,字符串長度 3。sizeof(a)為 5。3)scanf 和 gets 的數據 如果輸入的是 good good study!那么scanf(“%s”,a);只會接收good.考點:不可以接收空格。gets(a);會接收good good study!考點:可以接收空格。 4)字符串的strlen()和strcat()和strcmp()和strcpy()的使用方法一定要記住。他 們的參數都是地址。其中strcat()和strcmp()有兩個參數。5)二維數組做題目的技巧: 如果有 a[3][3]={1,2,3,4,5,6,7,8,9}這樣的題目。步驟一:把他們寫成: 第0列 第1列 第2列 a[0]—> 1 2 3 —> 第0行 a[1]—> 4 5 6 —> 第1行 a[2]—> 7 8 9 —> 第2行 步驟二:這樣作題目間很簡單: *(a[0]+1)我們就知道是第一行的第一個元素往后面跳一列,那么這里就是a[0][1]元素,所以是1。 *(a[1]+2)我們就知道是第二行的第一個元素往后面跳二列。那么這里就是a[1][2]元素,所以是 6。 一定記?。褐灰嵌S數組的題目,一定是寫成如上的格式,再去做題目,這樣會比較簡單。6)數組的初始化,一維和二維的,一維可以不寫,二維第二個一定要寫 int a[]={1,2}合法。int a[][4]={2,3,4}合法。但 int a[4][]={2,3,4}非法。7)二維數組中的行指針 int a[1][2];其中a現(xiàn)在就是一個行指針,a+1跳一行數組元素。搭配(*)p[2]指針。 a[0],a[1]現(xiàn)在就是一個列指針。a[0]+1跳一個數組元素。搭配*p[2]指針數組使用。8)還有記住脫帽子法則: a[2]變成 *(a+2)a[2][3]變成 *(a+2)[3],再可以變成 *(*(a+2)+3)這個思想很重要! 第7章 函數:是具有一定功能的一個程序塊;是c語言的基本組成單位。,/ 1)函數的參數,返回數值(示意圖): 2)—定要注意參數之間的傳遞 實參和形參之間傳數值,和傳地址的差別。(考試的重點)傳數值的話,形參的變化不會改變實參的變化。傳地址的話,形參的變化就會有可能改變實參的變化。3)函數聲明的考查: 一定要有:函數名,函數的返回類型,函數的參數類型。不一定要有:形參的名稱。4)要求掌握的庫函數: sqrt()fabs()pow()sin()其中 pow(a,b)是重點。23 是由 pow(2,3)表示的。5)“文件包含”的考查點: no1.c #include”no2.c” main(){ add(29, 33)} no2.c int add(int a,int b){ return a+b;} 這里一個C語言程序是有兩個文件組成,分別是no1.c,no2.c。那么no1.c中最開始有 個#include”no2.c??他表示把第二個文件的內容給包含過來,那么no1.c中調用add()函數的時 候就可以了把數值傳到no2.c中的被調用函數add()了。 一個文件必須要有main函數。這句話錯了。例如:no2.c就沒有。 頭文件一定是以.h結束的。這句話錯了。例如:no1.c中就是#mclude”no2.c”以.c結尾的。 第8章 1)指針變量的本質是用來放地址,而一般的變量是放數值的。2)int *p中 *p和p的差別: *p可以當做變量來用;*的作用是取后面地址p里面的數值 p是當作地址來使用。 3)*p++和(*p)++的之間的差別——改錯題目中很重要 *p++是地址會變化。 (*p)++是數值會要變化。(考試的重點)4)三名主義: 數組名:表示第一個元素的地址。|數組名不可以自加,他是地址常量名。(考了很多次)函數名:表示該函數的入口地址。字符串常量名:表示第一個字符的地址。5)考試重要的話語: 指針變量是存放地址的。并且指向哪個就等價哪個,所有出現(xiàn)*p的地方都可以用它等價的代替。 例如:int a=2,*p=&a; *p=*p+2;(由于*p指向變量a,所以指向哪個就等價哪個,這里*p等價于a,可以相當于是a=a+2)指針變量兩種初始化 方法一:int a=2,*p=&a;(定義的同時初始化)..方法二:int a=2,*p;(定義之后初始化p=&a; 文件的復習方法: 把上課時候講的文件這一章的題目要做一i strlen和sizeof的區(qū)別也是考試的重點; 上考試的都會在練習當中。 define f(x)(x*x)和define f(x)x*x之間的差別。一定要好好的注意這寫 容易錯的地方,替換的時候有括號和沒有括號是很大的區(qū)別。int *p;p =(int *)malloc(2);p =(int *)malloc(sizeof(int));以上兩個等價 當心填空題目,malloc的返回類型是void * 還有main(int argc,char **argv){}這種含有參數的題目,是很呆板的題目。第 一個參數是表示輸入的字符串的數目,第二個參數是指向存放的字符串。 函數的遞歸調用一定要記得有結束的條件,并且要會算簡單的遞歸題目。要會作遞歸的 題目 結構體和共用體以及鏈表要掌握最簡單的。typedef考的很多,而且一定要知道如何引用 結構體中的各個變量,鏈表中如何填加和刪除節(jié)點,以及何如構成一個簡單的鏈表,一定記 住鏈表中的節(jié)點是有兩個域,一個放數值,一個放指針。函數指針的用法(*f)()記住一個例子: int add(int x, int y){ } main(){ int(*f)()f=add;} 賦值之后:合法的調用形式為 1、add(2,3); 2、f(2,3); 3、(*f)(2,3)9) 11)共用體的考查: union TT { int a;char ch[2];} 考點一:sizeof(struct TT)= 2;考點二: TT t1;t1=0x1234;那么 ch[0]=0x 34;ch[1]=0x12 C語言總結 第一章 概述 1. C語言的特點 ①語言簡潔、緊湊,使用方便、靈活。共有32個關鍵字,9種控制語句。②運算符豐富,公有34種運算符。 ③數據結構豐富,數據類型有:整型、實型、字符型、數組、指針、結構體、共用體等。④具有結構化的控制語句(如if…else、while、do…while、switch、for)⑤語法限制不太嚴格,程序設計自由度大。 ⑥允許直接訪問物理地址,能進行位(bit)操作,可以直接對硬件操作。⑦生成目標代碼質量高,程序執(zhí)行效率高。⑧可移植性好。2. C語言的用途 C雖不擅長科學計算和管理領域,但對操作系統(tǒng)和系統(tǒng)實用程序以及對硬件進行操作方面,C有明顯的優(yōu)勢?,F(xiàn)在很多大型應用軟件也用C編寫。 第二章 數據類型、運算符與表達式 1. C的數據類型 C的數據類型包括:整型、字符型、實型或浮點型(單精度和雙精度)、枚舉類型、數組類型、結構體類型、共用體類型、指針類型和空類型。2. 常量與變量 常量其值不可改變,符號常量名通常用大寫。變量其值可以改變,變量名只能由字母、數字和下劃線組成,且第一個字符必須為字母或下劃線。否則為不合法的變量名。變量在編譯時為其分配相應存儲單元。3. 整型數據 整型常量的表示方法:十進制不用說了,八進制以0開頭,如0123,十六進制以0x開頭,如0x1e。 整型變量分為:基本型(int)、短整型(short int)、長整型(long int)和無符號型。不同機器上各類數據所占內存字節(jié)數不同,一般int型為2個字節(jié),long型為4個字節(jié)。4. 實型數據 實型常量表示形式:十進制形式由數字和小數點組成(必須有小數點),如:0.12、.123、123.、0.0等。指數形式如123e3代表123×10的三次方。 實型變量分為單精度(float)和雙精度(double)兩類。在一般系統(tǒng)中float型占4字節(jié),7位有效數字,double型占8字節(jié),15~16位有效數字。5. 字符型數據 字符變量用單引號括起來,如'a','b'等。還有一些是特殊的字符常量,如'n','t'等。分別代表換行和橫向跳格。 字符變量以char 來定義,一個變量只能存放一個字符常量。 字符串常量是由雙引號括起來的字符序列。這里一定要注意'a'和“a”的不同,前者為字符常量,后者為字符串常量,c規(guī)定:每個字符串的結尾加一個結束標志'
第三篇:C語言知識點總結