




已閱讀5頁,還剩7頁未讀, 繼續免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
全國計算機等級考試二級C語言程序設計考試大綱(2013版)基本要求1.熟悉VisualC+6.0集成開發環境。2.掌握結構化程序設計的方法,具有良好的程序設計風格。3.掌握程序設計中簡單的數據結構和算法并能閱讀簡單的程序。4.在VisualC+6.0集成環境下,能夠編寫簡單的C程序,并具有基本的糾錯和調試程序的能力。考試內容一、C語言程序的結構1.程序的構成,main函數和其他函數。2.頭文件,數據說明,函數的開始和結束標志以及程序中的注釋。3.源程序的書寫格式。4.C語言的風格。二、數據類型及其運算1.C的數據類型(基本類型,構造類型,指針類型,無值類型)及其定義方法。2.C運算符的種類、運算優先級和結合性。3.不同類型數據間的轉換與運算。4.C表達式類型(賦值表達式,算術表達式,關系表達式,邏輯表達式,條件表達式,逗號表達式)和求值規則。三、基本語句1.表達式語句,空語句,復合語句。2.輸入輸出函數的調用,正確輸入數據并正確設計輸出格式。四、選擇結構程序設計1.用if語句實現選擇結構。2.用switch語句實現多分支選擇結構。五、循環結構程序設計1.for循環結構。2.while和do-while循環結構。3.continue語句和break語句。4.循環的嵌套。六、數組的定義和引用1.一維數組和二維數組的定義、初始化和數組元素的引用。2.字符串與字符數組。七、函數1.庫函數的正確調用。2.函數的定義方法。3.函數的類型和返回值。4.形式參數與實在參數,參數值的傳遞。5.函數的正確調用,嵌套調用,遞歸調用。6.局部變量和全局變量。7.變量的存儲類別(自動,靜態,寄存器,外部),變量的作用域和生存期。八、編譯預處理1.宏定義和調用(不帶參數的宏,帶參數的宏)。2.“文件包含冶處理。九、指針1.地址與指針變量的概念,地址運算符與間址運算符。2.一維、二維數組和字符串的地址以及指向變量、數組、字符串、函數、結構體的指針變量的定義。通過指針引用以上各類型數據。3.用指針作函數參數。4.返回地址值的函數。5.指針數組,指向指針的指針。十、結構體(即“結構”)與共同體(即“聯合”)1.用typedef說明一個新類型2.結構體和共用體類型數據的定義和成員的引用。3.通過結構體構成鏈表,單向鏈表的建立,結點數據的輸出、刪除與插入。十一、位運算1.位運算符的含義和使用。2.簡單的位運算。十二、文件操作只要求緩沖文件系統(即高級磁盤I/O系統),對非標準緩沖文件系統(即低級磁盤I/O系統)不要求。1.文件類型指針(FILE類型指針)。2.文件的打開與關閉(fopen,fclose)。3.文件的讀寫(fputc,fgetc,fputs,fgets,fread,fwrite,fprintf,fscanf函數的應用),文件的定位(rewind,fseek函數的應用)。考試方式上機考試,考試時長120分鐘,滿分100分。1題型及分值單項選擇題40分(含公共基礎知識部分10分)、操作題60分(包括填空題、改錯題及編程題)。2考試環境VisualC+6.0。全國計算機等級考試二級C語言等級考試題型解析二級C考試分筆試和機試兩部分,兩部分總分均為100分,兩部分考試均需60分以上才能合格發放證書。若其中一科(筆試或機試)通過,另一科可在下一次考試中補考,若補考合格發放證書。若二科均在85分以上,在合格證書上將加印“優秀”字樣,若二科均在70分以上,在合格證書上將加印“良好”字樣。(一)筆試筆試內容分兩部分。公共基礎知識考核內容:30分;C語言基礎知識考核內容:70分。題型分析如下:1、單向選擇題40道題,共70分。分值分布如下:其中(1)(10)、(21)(40)小題,每題2分,(11)(20)小題每題1分。考核內容分布如下:1)(10)小題為公共基礎知識考核內容,共計20分;(11)(40)小題為C語言知識考核內容,共計50分。2、填空題15個空,每空2分,共30分。考核內容分布如下:(1)(5)空為公共基礎知識考核內容,共計10分;(6)(15)空為C語言知識考核內容,共計20分。(二)機試機試三道題:程序填空題,30分;程序修改題,30分;程序設計題,40分。1、程序填空題通常會給出一段源代碼,設計三個空需要你來填寫。每空10分。例如:#include#include#defineM5#defineN20voidfun(char(*ss)N)inti,j,k=0,n,m,len;for(i=0;ilen=strlen(ssi);if(i=0)n=len;if(lenn)/*found*/n=len;_1_=i;for(i=0;iif(i!=k)m=n;len=strlen(ssi);/*found*/for(j=_2_;j=0;j-)ssim-=ssij;for(j=0;j/*found*/_3_=*;main()charssMN=shanghai,guangzhou,beijing,tianjing,cchongqing;inti;printf(nTheoriginalstringsare:n);for(i=0;iprintf(n);fun(ss);printf(nTheresult:n);for(i=0;i2、程序修改題通常會給出一段源代碼,設計2-3個錯誤需要你來修改。修改好一處錯誤得分10分(若有3處錯誤)或15分(若有2處錯誤)。例如:#includelongfun(intg)/*found*/switch(g);case0:return0;/*found*/case1case2:return1return(fun(g-1)+fun(g-2);main()longfib;intn;printf(Inputn:);scanf(%d,&n);printf(n=%dn,n);fib=fun(n);printf(fib=%dnn,fib);3、程序設計題通常會給出一段源代碼,要求你來設計其中的一個函數。完全編好,且運行正確得分40分,無中間過程得分。例如:2010全國計算機等級考試二級C語言資格考試教材及出題比例教材:全國計算機等級考試二級教程-C語言程序設計(2010年版),書中共分16章節內容對理論考試內容進行了詳細的介紹。第17章介紹機試操作內容。通過對最近3次等級考試真題分析,各章內容及出題比例大約如下表所示。章序號 特點及學習方法第1章程序設計基本概念主要考核知識點: 了解C程序、程序設計、算法、模塊化和結構化程序設計等概念學習方法:理解+記憶第2章C程序設計的初步知識主要考核知識點: 了解C程序格式、標識符、常量、變量以及算術運算符及算術表達式、賦值運算符和賦值表達式、自加/減以及逗號運算符學習方法:編寫簡單C程序加強理解和記憶第3章順序結構主要考核知識點: printf()、scanf()函數的應用,復合語句及空語句的應用,順序程序設計思想學習方法:理解順序程序設計思想,設計一些典型的順序程序,如計算圓的面積、體積,三角形面積等第4章選擇結構主要考核知識點: 了解關系運算符和關系表達式;掌握if語句的幾種格式,switch語句、break語句,掌握條件表達式(唯一的三目運算符)的應用學習方法:理解選擇結構程序設計思想,設計一些典型的選擇結構程序,如比較2、3、4個數大小,按等級輸出學生成績,計算分段函數,解一元二次方程等第5章循環結構主要考核知識點: 熟練掌握while、dowhile、for循環語句的格式及應用,學習方法:理解循環結構程序設計思想,設計一些典型的循環結構程序,如累加和,階乘,求的近似值,Fibonacci數列,求素數,求水仙花數等第6章字符型數據主要考核知識點: 使用printf()、scanf()函數進行字符型數據的輸入和輸出,putchar()、getchar()函數的應用學習方法:設計字符處理的各類應用程序,如ASCII字符處理,統計各類字符數,密碼譯碼等第7章函數主要考核知識點: 熟練掌握函數的定義和返回值、函數調用、函數申明、函數之間值傳遞等概念學習方法:理解為什么要使用函數,將前面設計的一些程序打包成函數第8章地址和指針主要考核知識點: 理解指針、指針變量、指針變量的基類型等基本概念學習方法:理解指針的概念,設計一些簡單的指針應用程序第9章數組主要考核知識點: 熟練掌握一維、二維數組的定義和引用;理解數組和指針結合,數組名或數組元素作函數的參數的應用學習方法:理解好一維、二維數組的概念及應用,數組指針和指針數組的應用,熟練冒泡排序、選擇排序程序第10章字符串主要考核知識點: 掌握字符串及運用指針和數組處理字符串,處理字符串常用的函數,如gets()、puts()、strcpy()、strcmp()、strlen()、strcat()等學習方法:理解課本上給出的字符串處理的例題第11章對函數的進一步討論主要考核知識點: 函數的遞歸調用學習方法:理解課本上的計算n!、求平方根的迭代公式求某數的平方根的遞歸算法第12章C語言中用戶標識符的作用域和存儲類主要考核知識點: 理解全局變量、局部變量,auto、register、static、extern存儲類別的應用學習方法:理解+記憶第13章編譯預處理和動態存儲分配主要考核知識點: 主要理解宏替換,特別是帶參的宏學習方法:通過課后習題程序理解宏替換的作用第14章結構體、共用體和用戶定義類型主要考核知識點: 主要掌握結構體類型的說明、結構體類型的變量/數組/指針變量的定義、給結構體變量/數組賦值、引用結構體變量中的數據等內容;鏈表的操作學習方法:通過例題及習題中的代碼來理解及記憶第15章位運算主要考核知識點:理解5個位運算,按位取反、左移、右移、按位與、按位或、按位異或學習方法:理解+記憶第16章文件主要考核知識點: 主要掌握文件指針、文件的打開和關閉;文件輸入輸出函數,如getc(fgetc)、putc(fputc)、feof、fscanf、fprintf、fgets、fputs、fread、fwrite、fseek、ftell、rewind等學習方法:理解+記憶2010全國計算機等級考試二級C語言資格考試答題策略及技巧(一)筆試可考慮以下做題順序(僅供參考)1、先做公共基礎題,選擇題(1)(10),填空題(1)(5)空。2、接下來完成C語言的基礎題,選擇題(11)(20),1分題,考核一些基本概念,如標識符是否合法、整型/實型常量、運算符與表達式、簡單輸入輸出格式控制、if、switch語句、for、while、dowhile等的簡單應用。3、再接著完成選擇題(21)(40),這20個選擇題尤其是后10個選擇題,都有一定難度,都會給定一段代碼,根據代碼做選擇,因此,需要讀懂C的簡單代碼然后做了選擇。4、最后完成填空題(6)(15)空。也需讀得懂C程序,還需判斷出題意圖,才能填好空。難度較高。(二)機試題目順序為:程序填空題,程序修改題,程序設計題。按順序完成即可。1、程序填空題在源代碼中會給出需填空的地方,如s-data=_1_;通常還是比較簡單。解題方法:先讀懂源程序,了解程序的功能,然后試著邊填空邊調試,分析輸出結果,以找到正確的解。程序填空題的特點和注意事項:(1)程序填空的試題中通常包含三個空需要填寫。(2)試題中用*found*/來提示且在下一行或下二行注明填空的位置及編號,如_1_。(3)程序填空考核對程序的整體把握,出題點可能是:for循環語句的初始化或條件判斷、函數返回值、if語句的條件判斷、鏈表中指針如何移動、文件操作相關函數的參數等。(4)特別要注意的是:只能在填空的位置填寫語句或表達式,不要增行或刪行,不要改動程序行的順序,更不要改動程序的結構。程序填空時,建議按以下步驟進行:(1)首先仔細審題,了解試題的要求,看清楚試題給出的輸入和輸出例示,以便檢驗程序運行的結果是否正確。(2)審視/*found*/所在函數,根據題義理解程序所采用的基本算法,做到心里有數。(3)填好空后對測試程序進行檢查是否有語法錯誤。當編譯提示有語法錯時,可參考編譯提示來查找并改正錯誤。(4)當不再出現語法錯時,執行程序,按照試題的示例給出的數據進行試算,若試算的結果與給出的輸出結果相同時,該題就做對了;若試算的結果與給出的輸出結果不同,就應進一步檢查程序中的邏輯錯誤。(5)修改完成,得到正確結果后,一定不要忘記把修改后的程序存盤。2、程序修改題程序修改題的特點和注意事項:(1)上機改錯的試題中通常包含兩個(或三個)錯誤需要修改。(2)試題中用*found*/來提示在下一行(或下面第二行)有錯。(3)錯誤的性質基本分語法錯和邏輯錯兩種,也有些試題要求把語句添加在下劃線處。(4)特別要注意的是:只能在出錯的行上進行修改,不要改動程序行的順序,更不要自己另編程序。解題方法:邊調試邊找錯,分析輸出,找出并改正錯誤。上機改錯測試時,建議按以下步驟進行:(1)首先仔細審題,了解試題的要求,看清楚試題給出的輸入和輸出例示,以便檢驗改錯后程序運行的結果是否正確。(2)審視/*found*/所在函數,根據題義理解程序所采用的基本算法,做到心里有數。(3)先對測試程序進行檢查是否有語法錯誤。當編譯提示有語法錯時,可參考編譯提示來查找并改正錯誤。(4)當不再出現語法錯時,執行程序,按照試題的示例給出的數據進行試算,若試算的結果與給出的輸出結果相同時,該題就做對了;若試算的結果與給出的輸出結果不同,就應進一步檢查程序中的邏輯錯誤。(5)當程序存在邏輯錯誤時,首先應當理解題意、讀懂程序的算法,必要時可按步檢查數據的流程,以便確定錯誤所在。例如,題目要求數據按由小到大排序,而結果數據是按由大到小進行了排序,問題可能出現在條件判斷上。又如,輸出的字符串比預期的短,就有可能字符串的結束標志放錯了位置。再如做循環的時候數組上限下限錯誤了,基數是從0開始而不是1開始的。修改程序中的邏輯錯時,要求考生認真讀懂程序代碼。(6)修改完成,得到正確結果后,一定不要忘記把修改后的程序存盤。3、程序設計題在二級C程序設計上機考試中,要求完成一個獨立的函數的編程。目前教育部考試中心已出版了上機考試習題集,這些有助于學習編程,但考生應當在學習過程中理解基本的算法,通過實際上機操作積累經驗,才能掌握基本的編程能力。進行編程測試時,建議按以下步驟進行:(1)首先仔細審題,了解試題的要求,記下試題給出的輸入和輸出例示,以便檢驗在完成指定的函數后程序運行的結果是否正確。(2)調出源程序后,應對照函數首部的形參,審視主函數中調用函數時的實參內容,以便明確在函數中需要處理的數據對象。(3)理解試題的要求,審視主函數中調用函數的方式,若在表達式中調用函數(如把函數值賦給某個對象),則要求有函數值返回,需注意函數的類型,并在函數中用return語句返回函數值;若主函數中僅用語句形式調用函數,則需要通過形參間接地返回所得結果。(4)選擇適當的算法進行編程,輸入程序語句。不要忘記及時存盤!(5)編譯程序,直到沒有語法錯誤。(6)調試程序,利用試題中給出的例示數據進行輸入(若要求輸入的話),運行程序,用例示的輸出數據檢驗輸出結果,直到結果相同。特別要注意:程序設計題要求完全設計正確才會給分,因此,要么是40分,要么是0分,不會給中間分。那么想通過機試,程序填空題和程序修改題通常來說必須全部正確才能容易通過,否則不容易通過。2010全國計算機等級考試二級C語言C編程時常犯的錯誤1.書寫標識符時,忽略了大小寫字母的區別。main()inta=5;printf(%d,A);編譯程序把a和A認為是兩個不同的變量名,而顯示出錯信息。C認為大寫字母和小寫字母是兩個不同的字符。習慣上,符號常量名用大寫,變量名用小寫表示,以增加可讀性。2.忽略了變量的類型,進行了不合法的運算。main()floata,b;printf(%d,a%b);%是求余運算,得到a/b的整余數。整型變量a和b可以進行求余運算,而實型變量則不允許進行“求余”運算。3.將字符常量與字符串常量混淆。charc;c=a;在這里就混淆了字符常量與字符串常量,字符常量是由一對單引號括起來的單個字符,字符串常量是一對雙引號括起來的字符序列。C規定以“0”作字符串結束標志,它是由系統自動加上的,所以字符串“a”實際上包含兩個字符:a和0,而把它賦給一個字符變量是不行的。4.忽略了“=”與“=”的區別。在許多高級語言中,用“=”符號作為關系運算符“等于”。但C語言中,“=”是賦值運算符,“=”是關系運算符。如:if(a=3)a=b;前者是進行比較,a是否和3相等,后者表示如果a和3相等,把b值賦給a。由于習慣問題,初學者往往會犯這樣的錯誤。5.忘記加分號。分號是C語句中不可缺少的一部分,語句末尾必須有分號。a=1b=2編譯時,編譯程序在“a=1”后面沒發現分號,就把下一行“b=2”也作為上一行語句的一部分,這就會出現語法錯誤。改錯時,有時在被指出有錯的一行中未發現錯誤,就需要看一下上一行是否漏掉了分號。z=x+y;t=z/100;printf(%f,t);對于復合語句來說,最后一個語句中最后的分號不能忽略不寫。6.多加分號。對于一個復合語句,如:z=x+y;t=z/100;printf(%f,t);復合語句的花括號后不應再加分號,否則將會畫蛇添足。又如:if(a%3=0);i+;本是如果3整除a,則i加1。但由于if(a%3=0)后多加了分號,則if語句到此結束,程序將執行語句,不論3是否整除a,i都將自動加1。再如:for(i=0;i5;i+);scanf(%d,&x);printf(%d,x);本意是先后輸入5個數,每輸入一個數后再將它輸出。由于for()后多加了一個分號,使循環體變為空語句,此時只能輸入一個數并輸出它。7.輸入變量時忘記加地址運算符“&”。inta,b;scanf(%d%d,a,b);這是不合法的。scanf函數的作用是:按照a、b在內存的地址將a、b的值存進去。“&a”指a在內存中的地址。8.輸入數據的方式與要求不符。scanf(%d%d,&a,&b);輸入時,不能用逗號作兩個數據間的分隔符,如下面輸入不合法:3,4輸入數據時,在兩個數據之間以一個或多個空格間隔,也可用回車鍵,跳格鍵tab。scanf(%d,%d,&a,&b);C規定:如果在“格式控制”字符串中除了格式說明以外還有其它字符,則在輸入數據時應輸入與這些字符相同的字符。下面輸入是合法的:3,4此時不用逗號而用空格或其它字符是不對的。343:4又如:scanf(a=%d,b=%d,&a,&b);輸入應
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論