計算機編程入門自學?計算機二級考試C語言知識點總結(完全針對考試大綱),我來為大家科普一下關于計算機編程入門自學?下面希望有你要的答案,我們一起來看看吧!
計算機二級考試C語言知識點總結
(完全針對考試大綱)
概述
總體上必須清楚的:
1)程序結構是三種: 順序結構 , 循環結構(三個循環結構), 選擇結構(if 和 switch)
2)讀程序都要從main()入口, 然後從最上面順序往下讀(碰到循環做循環,碰到選擇做選擇)。
3)計算機的數據在電腦中保存是以 二進制的形式. 數據存放的位置就是 他的地址.
4)bit是位 是指為0 或者1。 byte 是指字節, 一個字節 = 八個位.
5)一定要記住 二進制 如何劃成 十進制。
概念常考到的:
1)、編譯預處理不是C語言的一部分,不再運行時間。C語言編譯的程序稱為源程序,它以ASCII數值存放在文本文件中。
2)、每個C語言程序中main函數是有且隻有一個。
3)、在函數中不可以再定義函數。
4)、算法的是一定要有輸出的,他可以沒有輸入。
5)、break可用于循環結構和switch語句。
6)、逗号運算符的級别最低。
第一章
1)合法的用戶标識符考查:
合法的要求是由字母,數字,下劃線組成。有其它元素就錯了。
并且第一個必須為字母或則是下劃線。第一個為數字就錯了。
關鍵字不可以作為用戶标識符号。main define scanf printf 都不是關鍵字。迷惑你的地方If是可以做為用戶标識符。因為If中的第一個字母大寫了,所以不是關鍵字。
2)實型數據的合法形式:
2.333e-1 就是合法的,且數據是2.333×10-1。
考試口訣:e前e後必有數,e後必為整數。.
3)字符數據的合法形式::
'1' 是字符占一個字節,"1"是字符串占兩個字節(含有一個結束符号)。
'0' 的ASCII數值表示為48,'a' 的ASCII數值是97,'A'的ASCII數值是65。
4) 整型一般是兩個字節, 字符型是一個字節,雙精度一般是4個字節:
考試時候一般會說,在16位編譯系統,或者是32位系統。碰到這種情況,不要去管,一樣做題。掌握整型一般是兩個字節, 字符型是一個字節,雙精度一般是4個字節就可以了。
5)轉義字符的考查:
在程序中 int a = 0x6d,是把一個十六進制的數給變量a 注意這裡的0x必須存在。
在程序中 int a = 06d, 是一個八進制的形式。
在轉義字符中,’\x6d’ 才是合法的,0不能寫,并且x是小寫。
‘\141’ 是合法的。
‘\108’是非法的,因為不可以出現8。
轉義字符 意義 ASCII碼值(十進制)
\a 響鈴(BEL) 007
\b 退格(BS) 008
\f 換頁(FF) 012
\n 換行(LF) 010
\r 回車(CR) 013
\t 水平制表(HT) 009
\v 垂直制表(VT) 011
\\ 反斜杠 092
\? 問号字符 063
\' 單引号字符 039
\" 雙引号字符 034
\0 空字符(NULL) 000
\ddd 任意字符 三位八進制
\xhh 任意字符 二位十六進制
6)算術運算符号的優先級别:
同級别的有的是從左到右,有的是從右到左。
7)強制類型轉換:
一定是 (int)a 不是 int(a),注意類型上一定有括号的。
注意(int)(a b)和(int)a b 的區别。 前是把a b轉型,後是把a轉型再加b。
8)表達式的考查:
是表達式就一定有數值。
賦值表達式:表達式數值是最左邊的數值,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了。
考試口訣: 在前先加後用, 在後先用後加。
逗号表達式:優先級别最低 ;表達式的數值逗号最右邊的那個表達式的數值。
(2,3,4)的表達式的數值就是4。
9)位運算的考查:
會有一到二題考試題目。
總的處理方法:幾乎所有的位運算的題目都要按這個流程來處理(先把十進制變成二進制再變成十進制)。
例1: char a = 6, b;
b = a<<2; 這種題目的計算是先要把a的十進制6化成二進制,再做位運算。
例2: 一定要記住,
例3: 在沒有舍去數據的時候,<<左移一位表示乘以2;>>右移一位表示除以2。
10)018的數值是非法的,八進制是沒有8的,逢8進1。
11)%符号兩邊要求是整數。不是整數就錯了。
12) 兩種取整丢小數的情況:
1、int a =1.6;
2、(int)a;
第二章
1)printf函數的格式考查:
%d對應整型;%c對應字符;%f對應單精度等等。寬度的,左對齊等修飾。
%ld對應 long int;%lf 對應double。
2)scanf函數的格式考察:
注意該函數的第二個部分是&a 這樣的地址,不是a;
Scanf(“%d%d%*d%d”,&a,&b,&c); 跳過輸入的第三個數據。
3)putchar ,getchar 函數的考查:
char a = getchar() 是沒有參數的,從鍵盤得到你輸入的一個字符給變量a。
putchar(‘y’)把字符y輸出到屏幕中。
4)如何實現兩個變量x ,y中數值的互換(要求背下來)
不可以把 x=y ,y=x; 要用中間變量 t=x;x=y;y=t。
5)如何實現保留三位小數,第四位四舍五入的程序,(要求背下來)
x=(int)(x*1000 0.5)/1000.0
這個有推廣的意義,注意 x = (int)x 這樣是把小數部分去掉。
第三章
特别要注意:c語言中是用非0表示邏輯真的,用0表示邏輯假的。
1)關系表達式:
表達式的數值隻能為1(表示為真),或0(表示假)
當關系的表達是為真的時候得到1。如 9>8這個是真的,所以表達式的數值就是1;
2)邏輯表達式:
隻能為1(表示為真),或0(表示假)
a) 共有&& || ! 三種邏輯運算符号。
b) !>&&>|| 優先的級别。
c) 注意短路現象。考試比較喜歡考到。
d) 要表示 x 是比0大,比10小的方法。0<x<10是不可以的(一定記住)。是先計算0<x 得到的結果為1或則0;再用0,或1與10比較得到的總是真(為1)。所以一定要用 (0<x)&&(x<10)表示比0大比10小。
3)if 語句
else 是與最接近的if且沒有else的相組合的。
4)條件表達式:
表達式1 ?表達式2 :表達式3
注意是當非0時候是表達式2的數值,當為0是就是表達式2的數值。
考試口訣:真前假後。
5)switch語句:
a)一定要注意 有break 和沒有break的差别,沒有break時候,隻要有一個case匹配了,剩下的都要執行,有break則是直接跳出了swich語句。
b)switch隻可以和break一起用,不可以和continue用。
第四章
1)三種循環結構:
a)for() ; while(); do- while()三種。
b)for循環當中必須是兩個分号,千萬不要忘記。
c)寫程序的時候一定要注意,循環一定要有結束的條件,否則成了死循環。
d) do-while()循環的最後一個while();的分号一定不能夠丢。(當心上機改錯)
2) break 和 continue的差别
記憶方法:
break:是打破的意思,(破了整個循環)所以看見break就退出真個一層循環。
continue:是繼續的意思,(繼續循環運算),但是要結束本次循環,就是循環體内剩下的語句不再執行,跳到循環開始,然後判斷循環條件,進行新一輪的循環。
3)嵌套循環
就是有循環裡面還有循環,這種比較複雜,要一層一層一步一步耐心的計算,一般記住兩層是處理二維數組的。
4) while((c=getchar())!=’\n’) 和 while(c=getchar() !=’\n’)的差别
先看a = 3 != 2 和 (a=3)!=2 的區别:
(!=号的級别高于=号 所以第一個先計算 3!=2) 第一個a的數值是得到的1;第二個a的數值是3。
考試注意點: 括号在這裡的重要性。
第五章
函數:是具有一定功能的一個程序塊;
1) 函數的參數,返回數值(示意圖):
main()
{
int a = 5,b=6,c;
c = add(a,b);
printf(“%d”,c);
}
調用函數
a,b是實參
整個函數得到一個數值就是
Add函數的返回數值。
int add ( int x, int y)
{
int z;
z=x y;
return z;
}
被調用函數
x,y是形式參數
函數返回數值是整型
z就是這個add函數計算後得到的結果,就是函數返回給主程序的返回數值。
程序是在從上往下順序執行,當碰到了函數add後,把a,b的數值穿給調用函數,程序暫時中斷等待返回數值。當得到了返回數值後,再順序的往下執行
2)一定要注意參數之間的傳遞
實參和形參之間 傳數值,和傳地址的差别。(考試的重點)
傳數值的話,形參的變化不會改變實參的變化。
傳地址的話,形參的變化就會有可能改變實參的變化。
3)函數聲明的考查:
一定要有:函數名,函數的返回類型,函數的參數類型。
不一定要有:形參的名稱。
第六章
指針變量的本質是用來放地址,而一般的變量是放數值的。
int *p 中 *p和p的差别:
*p可以當做變量來用;*的作用是取後面地址p裡面的數值
p是當作地址來使用。
*p 和 (*p) 的之間的差别:改錯題目中很重要
*p 是 地址會變化。
(*p) 是數值會要變化。
三名主義:(考試的重點)
數組名:表示第一個元素的地址。數組名不可以自加,他是地址常量名。(考了很多次)
函數名:表示該函數的入口地址。
字符串常量名:表示第一個字符的地址。
第七章
1一維數組的重要概念:
對a[10]這個數組的讨論。
1、a表示數組名,是第一個元素的地址,也就是元素a[10]的地址。
2、a是地址常量,所以隻要出現a ,或者是a=a 2賦值的都是錯誤的。
3、a是一維數組名,所以它是列指針,也就是說a 1是跳一列。
對a[3][3]的讨論。
1、a表示數組名,是第一個元素的地址,也就是元素a[10]的地址。
2、a是地址常量,所以隻要出現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]是不同的,它們的基類型是不同的。前者是一行元素,後三者是一列元素。
二維數組做題目的技巧:
如果有a[3][3]={1,2,3,4,5,6,7,8,9}這樣的題目。
步驟一:把他們寫成: 第一列 第二列 第三列
a[0]à 1 2 3 ->第一行
a[1]à 4 5 6 —>第二行
a[2]à 7 8 9 ->第三行
步驟二:這樣作題目間很簡單:
*(a[0] 1)我們就知道是第一行的第一個元素往後面跳一列,那麼這裡就是a[0][1]元素,所以是1。
*(a[1] 2)我們就知道是第二行的第一個元素往後面跳二列。那麼這裡就是a[1][2]元素,所以是6。
一定記住:隻要是二維數組的題目,一定是寫成如上的格式,再去做題目,這樣會比較簡單。
數組的初始化,一維和二維的,一維可以不寫,二維第二個一定要寫
int a[]={1,2} 合法。 int a[][4]={2,3,4}合法。 但int a[4][]={2,3,4}非法。
二維數組中的行指針
int a[1][2];
其中a現在就是一個行指針,a 1跳一行數組元素。 搭配(*)p[2]指針
a[0],a[1]現在就是一個列指針。a[0] 1 跳一個數組元素。搭配*p[2]指針數組使用
還有記住脫衣服法則:
a[2] 變成 *(a 2) a[2][3]變成 *(a 2)[3]再可以變成 *(*(a 2) 3)
這個思想很重要!
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!