① 2017計算機二級考試《C語言》知識點
計算機等級考試為您推薦計算機等級考試基礎知識點,高頻考點,重點以及難點,希望對您學習計算機等級有所幫助,從而取得好成績,這將是我們最大的心願。
一)合法的用戶標識符考查:
合法的要求是由字母,數字,下劃線組成。有其它元素就錯了。
並且第一個必須為字母或則是下劃線。第一個為數字就錯了。
關鍵字不可以作為用戶標識符號。main define scanf printf 都不是關鍵字。迷惑你的地方If是可以做為用戶標識符。因為If中的第一個字母大寫了,所以不是關鍵字。
二)實型數據的合法形式:
2.333e-1 就是合法的,且數據是2.333×10-1。
考試口訣:e前e後必有數,e後必為整數。.
三)字元數據的合法形式::
'1'是字元佔一個位元組,"1"是字元串占兩個位元組(含有一個結束符號)。
'0' 的ASCII數值表示為48,'a' 的ASCII數值是97,'A'的ASCII數值是65。
四) 整型一般是兩個位元組, 字元型是一個位元組,雙精度一般是4個位元組:
考試時候一般會說,在16位編譯系統,或者是32位系統。碰到這種情況,不要去管,一樣做題。掌握整型一般是兩個位元組, 字元型是一個位元組,雙精度一般是4個位元組就可以了。
五)轉義字元的考查:
在程序中 int a = 0x6d,是把一個十六進制的數給變數a 注意這里的0x必須存在。
在程序中 int a = 06d, 是一個八進制的形式。
在轉義字元中,’\x6d’才是合法的,0不能寫,並且x是小寫。
‘\141’是合法的。
‘\108’是非法的,因為不可以出現8。
轉義字元意義 ASCII碼值(十進制)
\a 響鈴(BEL) 007
\b 退格(BS) 008
\f 換頁(FF) 012
換行(LF) 010
回車(CR) 013
\t 水平製表(HT) 009
\v 垂直製表(VT) 011
\\ 反斜杠 092
\? 問號字元 063
\' 單引號字元 039
\" 雙引號字元 034
\0 空字元(NULL) 000
\ddd 任意字元三位八進制
\xhh 任意字元二位十六進制
六)算術運算符號的優先順序別:
同級別的有的是從左到右,有的是從右到左。
七)強制類型轉換:
一定是(int)a 不是 int(a),注意類型上一定有括弧的。
注意(int)(a+b)和(int)a+b 的區別。 前是把a+b轉型,後是把a轉型再加b。
八)表達式的考查:
是表達式就一定有數值。
賦值表達式:表達式數值是最左邊的數值,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。
九)位運算的考查:
會有一到二題考試題目。
總的處理方法:幾乎所有的位運算的題目都要按這個流程來處理(先把十進制變成二進制再變成十進制)。
例1:char a = 6, b;
b = a<<2; 這種題目的計算是先要把a的十進制6化成二進制,再做位運算。
例2:一定要記住,
例3:在沒有捨去數據的時候,<<左移一位表示乘以2;>>右移一位表示除以22016計算機二級考試C語言知識點總結2016計算機二級考試C語言知識點總結。
十)018的數值是非法的,八進制是沒有8的,逢8進1。
十一)%符號兩邊要求是整數。不是整數就錯了。
十二)兩種取整丟小數的情況:
1、int a =1.6;
2、(int)a;
② 2017年計算機二級C語言考點解析:函數
7.1 庫函數的正確調用
1.C語言提供了豐富的庫函數,包括常用數學函數、對字元和字元串處理函數、輸入輸出處理函數等。在調用庫函數時要注意以下幾點:
(1)調用C語言標准庫函數時必須在源程序中用include命令,include命令的格式是:
#include″頭文件名″
include命令必須以#號開頭,系統提供的頭文件名都以.h作為後綴,頭文件名用一對雙引號″″或一對尖括弧〈〉括起來。
(2)標准庫函數的調用形式:
函數名(參數表)
2.在C語言中庫函數的調用可以以兩種形式出現:出現在表達式中;作為獨立的語句完成某種操作。
7.2 函數的定義方法
1.C語言函數的一般形式為:
函數返回值的類型名 函數名(類型名 形參1,類型名 形參2,…)
{
說明部分
語句部分
}
定義的第一行是函數的首部,{}中的是函數體。
2.在老的C語言版本中,函數的首部用以下形式:
函數返回值的類型名 函數名(形參1,形參2…)
形參類型說明;
新的ANSI標准C兼容這種形式的函數首部說明。
3.函數名和形參名是由用戶命名的標識符。在同一程序中,函數名必須。形式參數名只要在同一函數中即可,可以與函數中的變數同名。
4.C語言規定不能在一個函數內部再定義函數。
5.若在函數的首部省略了函數返回值的類型名,把函數的首部寫成:
函數名(類型名 形參1,類型名 形參2,…)
則C默認函數返回值的類型為int類型。
6.當沒有形參時,函數名後面的一對圓括弧不能省略。
7.3 函數的類型和返回值
1.函數的類型由函數定義中的函數返回值的類型名確定,函數的類型可以是任何簡單類型,如整型、字元型、指針型、雙精度型等,它指出了函數返回值的具體類型。當函數返回的是整型值時,可以省略函數類型名。當函數只完成特定的操作而沒有或不需要返回值時,可用類型名void(空類型)。
2.函數返回值就是return語句中表達式的值。當程序執行到return語句時,猛空程序的流程就返回到調用該函數的地方(通常稱為退出調用函數),並空胡帶回函數值。
7.4 形式參數與實際參數,參數值的傳遞
1.在函數定義中,出現的參數名稱為形參(形式參數),在調用函數時,使用的參數值稱為實參(實際參數)。
2.調用函數和被調用函數之間的參數值的傳遞是″按值″進行的,即數據只能從實參單向傳遞給形參。也就是說,當簡單變數作為實參時,用戶不能在函數中改變對應實參的值。
7.5 函數的正確調用(嵌套調用,遞歸調用)
1.調用函數時,函數名必須與被調用的函數名字完全一樣。實參的個數與類型和形參的個數與類型一致。
2.C語言規定:函數必須先定義,後調用,也就是被調用函數必須在調用之前加以說明,或被調用函數整個放在調用函數之前。但對返回值類型為int或char類型的函數可以放在調用函數的後面。
3.C語言中函數定義都是互相平行、獨立的,C語言不允許嵌套定義函數,但允許嵌套調用函數,也就是說,在調用一個函數的過程中,又調用另一個函數。
4.在C程序中,調用一個函數的過程中又出現直接或間接地調用該函數本身,稱為函數的遞歸調用。
5.遞歸調用函數是C語言的特點之一,有時遞歸調用會使求解的問題變得更簡單明了。
7.6 局部變數和全局變數
1.局部變數
在一函數內部所定義的變數稱為局部變數,局部變數只在本函數范圍內有效。
注意:
①不同函數可以使用相同的局部變數名,它們將代表不同的對象,互不幹擾;
②一個函數的形參也為局部變數;
③在函數內部,復合語句也可定義變數,這些變數也為局部變數,只在此復合語句中有效。
2.全局變數
在C語言中,程序的編譯單位是源程序文件,一個源程序文件中包含一個或多個函數。在函數之外所定義枝虧瞎的變數稱為外部變數,也稱為全局變數。全局變數可以被包含它的源程序文件中的其他函數所共用,作用域為從定義變數的位置開始到源程序文件結束,全局變數可以增加函數之間數據的聯系。
注意:當在同一個源程序文件中,全局變數與局部變數同名時,在局部變數的作用范圍內,全局變數不起作用,局部變數起作用。
7.7 變數的存儲類別、作用域及生存期
1.變數的存儲類別
在C語言中,有兩類存儲類別:自動類別及靜態類別。
有4個與兩種存儲類別有關的說明符:auto(自動)、register(寄存器)、static(靜態)和extern(外部),這些說明符一般與類型說明一起出現,一般放在類型名的左邊,例如:
auto long I,j;
也可寫成:
long auto I,j;
(1)自動變數:自動變數是C程序中使用最多的一種變數,這種變數的建立和撤消都是在系統中自動進行的。
格式:[auto]數據類型 變數名[=初始化表達式],…;
上面的說明格式中,方括弧中是可省略的部分,auto為自動類別標識符,若省略auto,系統預設的存儲類別也為自動類別。
注意:函數的形參也為自動類別,在定義時不必加存儲類別標識符。
(2)寄存器變數:寄存器變數與自動變數的性質相同,其區別只在於存儲的位置不同,寄存器變數存儲在CPU的寄存器中,而自動變數存儲在內存中的動態存儲區,寄存器變數的存取速度要快些。
格式:register數據類型,變數名[=初始化表達式],…;
上面的說明格式中,register為寄存器變數的存儲類別標識符。
說明:
①CPU中寄存器的數目是有限的,因此只能把少數的變數說明為寄存器變數;
②寄存器變數是存放在寄存器中的,而不是存放於內存中,所以,寄存器變數無地址;
③寄存器變數的說明應盡量放在靠近要使用的地方,用完後盡快釋放,這樣可提高使用效率。
(3)靜態變數:靜態類別變數的存儲空間在程序的整個運行期間是固定的。
格式:static數據類型 變數名[=初始化表達式],…;
在上面的說明格式中,static為靜態變數的存儲類別標識符。
靜態變數的初始化在編譯時進行,定義時可用常量或表達式進行顯式初始化。對於沒有初始化的靜態變數,自動初始化為0(整型)或0.0(實型)。
注意:靜態變數具有可繼承性,這與自動變數有所不同。
(4)外部變數:使用extern可使外部變數使用范圍擴充到需要使用它的函數。外部變數可作顯式的初始化,若不作初始化,系統將自動地初始化為0或0.0。
格式:[extern]數據類型,變數名[=初始化表達式],…;
上面的說明格式中,extern使外部變數的作用范圍擴大到其他源程序文件中。
注意:局部變數既可以說明為自動類別,也可以說明為靜態類別;全局變數只能說明為靜態類別。
2.變數的作用域及生存期
在C語言中,變數必須先說明後使用,在程序中一個已定義的變數的使用范圍就是此變數的作用域。經過賦值的變數在程序運行期間能保持其值的時間范圍為該變數的生存期。
(1)局部變數的使用域及生存期
①自動變數的使用域及生存期
自動變數的存儲單元被分配在內存的動態存儲區,每當進函數體(或復合語句)時,系統自動為自動變數分配存儲單元,退出時自動釋放這些存儲單元。自動變數的作用域為從定義的位置起,到函數體(或復合語句)結束為止。
自動變數在進入到定義它們的函數體(或復合語句)時生成,在退出所在的函數體(或復合語句)時消失,這就是自動變數的生存期。
使用自動變數的優點是使各函數之間造成信息分隔,不同函數中使用同名變數時不會相互影響。
②寄存器變數的使用域及生存期
寄存器變數的使用域及生存期與自動變數相同。
③靜態存儲類別的局部變數
在函數體(或復合語句)內部,用static說明的變數靜態存儲類別的局部變數,這種變數的作用域與自動(或寄存器)變數的作用域相同,但是生存期有所不同。
在整個程序運行期間,靜態局部變數在內存的靜態存儲區中占據著永久的存儲單元,甚至在退出函數後下次再進入函數時,靜態局部變數仍使用原來的存儲單元。由於不釋放存儲單元,所以這些存儲單元中的值將會被保留下來。靜態局部變數的生存期將一直延長到程序運行結束。
靜態局部變數適合於在函數調用之間必須保留局部變數值的獨立變數。
③ 2017年計算機二級C語言模擬題及答案(3)
2017年計算機二級C語言模擬題及答案(3)
1). 以下選項中不合法的標識符是( )
A.FOR
B.&a
C.print
D._00
正確答案:B
答案解析:合法的標識符要滿足組成字元為a~z以及A~Z,數字字元0到9和下劃線,其中數字不開頭,不能是關鍵字。選項B中,&不屬於組成字元,是錯誤的。
2). 下列描述中正確的是( )
A.程序就是軟體
B.軟體開發不受計算機系統的限制
C.軟體既是邏輯實體,又是物理實體
D.軟體是程序、數據與相關文檔的集合
正確答案:D
答案解析:計算機軟體與硬體是計算機系統中相互依存的兩部分。計算機軟體是包括程序、數據及相關文檔的完整集合。軟體由兩部分組成:一部分是機器可執行的程序和數據;二是機器不可執行的,與軟體開發、運行、維護、使用等有關的文檔。軟體具有以下六個特點:①軟體是一種邏輯實體,而不是物理實體,具有抽象性。②軟體的生產與硬體不同,它沒有明顯的製作過程。③軟體在運行、使用期間不存在磨損、老化問題。④軟體的開發、運行對計算機系統具有依賴性,受計算機系統的限制,這導致了軟體移值的問題。⑤軟體復雜性高,成本昂貴。⑥軟體的開發涉及諸多社會因素。
3). 變數a中的數據用二進製表示的形式是01011101,變數b中的數據用二進製表示的形式是11110000。若要求將a的高4位取反,低4位不變,所要執行的運算是
A.a^b
B.a|b
C.a&b
D.a<<4
正確答案:A
答案解析:本題考查的是位運算的知識,對於任何二進制數,和1進行異或運算會讓其取反,而和0進行異或運算不會產生任何變化,故本題選A。
4). 下列關於棧敘述正確的是( )
A.棧頂元素最先能被刪除
B.棧頂元素最後才能被刪除
C.棧底元素永遠不能被刪除
D.以上三種說法都不對
正確答案:A
答案解析:棧是先進後出的線性表,棧頂的元素最先被刪除,棧底的元素最後被刪除。
5). 已知 int a=1,b=3則a^b的值為
A.3
B.1
C.2
D.4
正確答案:C
答案解析:^是按位異或運算,如果對應位不同則結果為1,相同則為0。
6). 按條件f對關系R進行選擇,其關系代數表達式為( )
A.R|X|R
B.R|X|Rf
C.бf(R)
D.∏f(R)
正確答案:C
7). 信息隱蔽的概念與下述哪一種概念直接相關( )
A.軟體結構定義
B.模塊獨立性
C.模塊類型劃分
D.模擬耦合度
正確答案:B
8). 變數a中的數據用二進製表示的形式是01011101,變數b中的數據用二進製表示的形式是11110000。若要求將a的高4位取反,低4位不變,所要執行的運算是
A.a^b
B.a|b
C.a&b
D.a<<4
正確答案:A
答案解析:本題考查的是位運算的知識,對於任何二進制數,和1進行異或運算會讓其取反,而和0進行異或運算不會產生任何變化,故本題選A。
9). 下列關於棧敘述正確的是( )
A.棧頂元素最先能被刪除
B.棧頂元素最後才能被刪除
C.棧底元素永遠不能被刪除
D.以上三種說法都不對
正確答案:A
答案解析:棧是先進後出的線性表,棧頂的元素最先被刪除,棧底的元素最後被刪除。
10). 已知 int a=1,b=3則a^b的值為
A.3
B.1
C.2
D.4
正確答案:C
答案解析:^是按位異或運算,如果對應位不同則結果為1,相同則為0。
④ 2017年計算機二級C語言命題特點及應對策略
一、命題原則
全國計算機等級考試大綱明確規定:二級C語言考試由「二級公共基礎知識」和「二級C語言程序設計」兩大部分組成,考試內容嚴格按照「寬口徑、厚基礎」的原則設計,主要考核我們對該學科的基礎理論、基本知識和基本技能的掌握程度,以及運用所學理論和知識解決實際問題的能力。
二、考試要求
根據命題原則,大綱對我們如何復習應試也提出了相應的要求。主要強調了兩個方面:
一是 強調我們對基本概念、基本理論和和拿基本知識點的掌握;
二是 強調我們綜合運用所學知識進行實際應用到程序編寫中的能力。
也就是說,我們要想通過二級C語言考試,不僅要熟練地掌握該學科的基本理論知識和操作技能,還要具有較強的分析與解決實際問題的能力,真正做到學以致用。應做到以下兩點:
1.學好基礎知識
這里所說的基礎知識是指C語言中基本概念、基本原理和規定關鍵字、基本結構等基本知識點。二級C語言考試中,概念性的知識點比較多。我們對這些基礎知識要用心理解、記憶。這一類型題目一般都是考察教材中的概念,如果這樣簡單的題目都丟分,那就實在可惜。
2.掌握操作技能和綜合運用能力
二級C語言考試注重對程序設計實際操作能力的考察,要求我們運用所學理論知識和操作技能解決實際問題。二級C語言考試考核的主要內容就是程序設計的基本操作和把所學理論知識和操作技能綜合起來,並能在實際應用中加強對這些知識的熟練掌握。
三、應試對策
我們在備考時,要針對考試大綱和考試要求進行復習,主要應注意以下幾個方面:
1.牢固、清晰地掌握基本知識
二級C語言考試的重點是基本知識的掌握情況和實際編程應用,但其前提條件是對基本知識點的掌握。因此,我們正確地理解、熟記基本概念和原理是通過考試的前提條件。那麼我們要如何才能做到這一點呢?我們可以通過以下3方面來實現:
① 在考前沖刺階段要注意「比較總結」學習成果,特別是對一些關系復雜的知識點,通過比較、總結更容易理解、牢記。「比較總結」是一爛衡個好的學習方法,同時也是一個好的增強記憶方法,在C語言中有些問題只有通過綜合比較、總結才容易在腦海中留下牢固的印烙;
② 理解概念要准確,尤其是一些容易混淆、重要的概念,一定要在考前沖刺階段准確地掌握它們之間在操作步驟和實現功能上的細微區別,一定不能忽視;
③ 通過聯想記憶各考點,在C語言中有一部分考點不是孤立的,而是相互聯系的,我們要能通過一個考點聯想到與他相關的考點、這樣就能擴大記憶了。
2.選擇的習題要有針對性,切不可進行「題海戰術」
現在關於二級C語言考試的習題很多,搞題海戰術肯定是不行的。我們應根據考試大綱,在考前沖刺階段適當地做一些與二級C語言考試題型相同飢棚做的題,我們可以做些試卷和歷年試題(最近2~3年即可)。研究歷年考試題型、分析現在考試形式是通過考試的一個重要法寶,這做可使我們較快地掌握考試題型,從而在最短的時間內達到的學習效果。
注意:根據分析這些年來考試的情況,每年都會有少數新的考點出現,所以在研究歷年考題時,不要忽視了一些以往沒有考過的知識點,應適當理解記憶。
3.上機實踐筆試中程序設計類題目
學習筆試中程序設計類的題目方法是上機操作,驗證自己的解題思路和做題結果。通過在計算機上驗證這類題,可以發現錯誤和糾正解題思路,加深我們的記憶。
⑤ 用vs2017學習C語言,應該下載哪個工作負載求解答
要不換codeblocks吧(笑)
――――――――――――――――
最上面三個是windows,.net和c++吧,把c++選上就可以了,怕不行還可以再多選一個windows,大概要下載2g左右的東西