二級(jí)(C語(yǔ)言程序設(shè)計(jì))考試大綱_第1頁(yè)
二級(jí)(C語(yǔ)言程序設(shè)計(jì))考試大綱_第2頁(yè)
二級(jí)(C語(yǔ)言程序設(shè)計(jì))考試大綱_第3頁(yè)
已閱讀5頁(yè),還剩43頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

C語(yǔ)言全國(guó)計(jì)算機(jī)等級(jí)(二級(jí))考試指導(dǎo)第一章二級(jí))考試大綱公共基礎(chǔ)知識(shí)基本要求掌握算法的基本概念。掌握基本數(shù)據(jù)結(jié)構(gòu)及其操作。掌握基本排序和查找算法。掌握逐步求精的結(jié)構(gòu)化程序設(shè)計(jì)方法。掌握軟件工程的基本方法,具有初步應(yīng)用相關(guān)技術(shù)進(jìn)行軟件開(kāi)發(fā)的能力??荚噧?nèi)容一.基本數(shù)據(jù)結(jié)構(gòu)與算法算法的基本概念;算法復(fù)雜度的概念和意義(時(shí)間復(fù)雜度與空間復(fù)雜度。線性結(jié)構(gòu)的概念。線性表的定義;線性表的順序存儲(chǔ)結(jié)構(gòu)及其插入與刪除運(yùn)算。棧和隊(duì)列的定義;棧和隊(duì)列的順序存儲(chǔ)結(jié)構(gòu)及其基本運(yùn)算。線性單鏈表、雙向鏈表與循環(huán)鏈表的結(jié)構(gòu)及其基本運(yùn)算。樹(shù)的基本概念;二叉樹(shù)的定義及其存儲(chǔ)結(jié)構(gòu);叉樹(shù)的前序、中序和后序遍歷。(二、程序設(shè)計(jì)基礎(chǔ)程序設(shè)計(jì)方法與風(fēng)格。結(jié)構(gòu)化程序設(shè)計(jì)。三、軟件工程基礎(chǔ)軟件工程基本概念,軟件生命周期概念,軟件工具與軟件開(kāi)發(fā)環(huán)境。結(jié)構(gòu)化分析方法,數(shù)據(jù)字典,軟件需求規(guī)格說(shuō)明書(shū)。結(jié)構(gòu)化設(shè)計(jì)方法,總體設(shè)計(jì)與詳細(xì)設(shè)計(jì)。集成測(cè)試和系統(tǒng)測(cè)試。四、數(shù)據(jù)庫(kù)設(shè)計(jì)基礎(chǔ)數(shù)據(jù)庫(kù)的基本概念:數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)管理系統(tǒng),數(shù)據(jù)庫(kù)系統(tǒng)。E-RE-R關(guān)系代數(shù)運(yùn)算,包括集合運(yùn)算及選擇、投影、連接運(yùn)算,數(shù)據(jù)庫(kù)規(guī)范化理論??荚嚪椒ü不A(chǔ)知識(shí)的考試方法為筆試,與C(C++語(yǔ)言程序設(shè)計(jì)、Java程序設(shè)計(jì)、VisualBasic語(yǔ)言程序設(shè)計(jì)、VisualFoxPro數(shù)據(jù)庫(kù)程序設(shè)計(jì)或Access數(shù)據(jù)庫(kù)程序設(shè)計(jì))的筆試部分合為一張?jiān)嚲?。公共基礎(chǔ)知識(shí)部分占全卷的30分。105C語(yǔ)言程序設(shè)計(jì)基本要求TURBOC集成環(huán)境。熟練掌握結(jié)構(gòu)化程序設(shè)計(jì)的方法,具有良好的程序設(shè)計(jì)風(fēng)格。掌握程序設(shè)計(jì)中簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu)和算法。TURBOC的集成環(huán)境下,能夠編寫(xiě)簡(jiǎn)單的C力??荚噧?nèi)容一、C語(yǔ)言的結(jié)構(gòu)序的構(gòu)成,MAIN頭文件,數(shù)據(jù)說(shuō)明,函數(shù)的開(kāi)始和結(jié)束標(biāo)志。源程序的書(shū)寫(xiě)格式。4.C語(yǔ)言的風(fēng)格。二、數(shù)據(jù)類型及其運(yùn)算1.C的數(shù)據(jù)類型(基本類型,指針類型,空類型)及其定義方法。2.C運(yùn)算的種類、運(yùn)算優(yōu)先級(jí)和結(jié)合性。3.不同類型數(shù)據(jù)間的轉(zhuǎn)換與運(yùn)算。4.C表達(dá)式類型(賦值表達(dá)式,算術(shù)表達(dá)式,關(guān)系表達(dá)式,邏輯表達(dá)式,條件表達(dá)式,逗號(hào)表達(dá)式)和求值規(guī)則。三、基本語(yǔ)句表達(dá)式語(yǔ)句,空語(yǔ)句,復(fù)合語(yǔ)句。數(shù)據(jù)的輸入與輸出,輸入輸出函數(shù)的調(diào)用。復(fù)合語(yǔ)句。Goto四、選擇結(jié)構(gòu)程序設(shè)計(jì)ifswitch選擇結(jié)構(gòu)的嵌套1.For2.Whiledowhile3.Continuebreak4.循環(huán)的嵌套。六、數(shù)組的定義和引用一維數(shù)組合多維數(shù)組的定義、初始化和引用。七、函數(shù)庫(kù)函數(shù)的正確調(diào)用。函數(shù)的定義方法。函數(shù)的類型和返回值。形式參數(shù)與實(shí)在參數(shù),參數(shù)值得傳遞。函數(shù)的正確調(diào)用,嵌套調(diào)用,遞歸調(diào)用。局部變量和全局變量。變量的存儲(chǔ)類別(自動(dòng),靜態(tài),寄存器,外部,變量的作用域和生存期。八、編譯預(yù)處理宏定義:不帶參數(shù)的宏定義;帶參數(shù)的宏定義?!拔募碧幚砭?、指針指針與指針變量的概念,指針與地址預(yù)算符。構(gòu)體的指針變量。通過(guò)指針引用以上各類型數(shù)據(jù)。用指針作函數(shù)參數(shù)。返回指針值得指針函數(shù)。指針數(shù)組,指向指針的指針,main函數(shù)的命令行參數(shù)。十、結(jié)構(gòu)體()與孔用體()結(jié)構(gòu)體和公用體類型數(shù)據(jù)的定義方法和引用方法。十一、位運(yùn)算位運(yùn)算符的含義及使用。十二、文件操作只要求緩沖文件系統(tǒng)(即高級(jí)磁盤(pán)I/O系統(tǒng),對(duì)非標(biāo)準(zhǔn)緩沖文件系統(tǒng)(即低級(jí)磁盤(pán)I/O系統(tǒng))不要求。文件類型指針(FILE。文件的打開(kāi)與關(guān)閉(FOPEN,FCLOSE。文件的讀寫(xiě)(FPRTC,FGETC,FPUTS,FGETS,FREAD,FWRITE,FPRINTF,FSCANF。文件的定位(REWIND,FSEEK??荚嚪绞焦P試:12010030上機(jī):60100第二章全國(guó)計(jì)算機(jī)等級(jí)考試(二級(jí))C語(yǔ)言應(yīng)試方略C很多人對(duì)學(xué)習(xí)C語(yǔ)言感到無(wú)從下手,經(jīng)常問(wèn)我同一個(gè)問(wèn)題:究竟怎樣學(xué)習(xí)C語(yǔ)言?CCCCC第一:C語(yǔ)言語(yǔ)法結(jié)構(gòu)很簡(jiǎn)潔精妙,寫(xiě)出的程序也很高效,便于描述算法,大多數(shù)的程序員愿意使用C語(yǔ)言去描述算法本身,所以,如果你想在程序設(shè)計(jì)方面有所建樹(shù),就必須去學(xué)它。第二:CC有的windows,Unix,Linux,Mac,os/2,沒(méi)有一個(gè)例外,如果你不懂C這些操作系統(tǒng)當(dāng)中去呢?更不要說(shuō)你去寫(xiě)它們的內(nèi)核程序了。第三:很多新型的語(yǔ)言都是衍生自C語(yǔ)言,C++,Java,C#,J#,perl...哪個(gè)不是呢?掌握了C語(yǔ)言,可以說(shuō)你就掌握了很多門(mén)語(yǔ)言,經(jīng)過(guò)簡(jiǎn)單的學(xué)習(xí),你就可以用這些新型的語(yǔ)言去開(kāi)發(fā)了,由此可見(jiàn)C語(yǔ)言是程序設(shè)計(jì)的重要基礎(chǔ)。多說(shuō)一點(diǎn):即使現(xiàn)在招聘程序員,考試都是考C語(yǔ)言,你想加入IT行業(yè),那么就一定要掌握好C語(yǔ)言。那么究竟怎樣學(xué)習(xí)C語(yǔ)言呢?工欲善其事,必先利其器這里介紹幾個(gè)學(xué)習(xí)C語(yǔ)言必備的東東:turboC2.0DOS時(shí)代開(kāi)發(fā)程序的大半個(gè)江ft。windows時(shí)代,用turboC沒(méi)有函數(shù)變量自動(dòng)感應(yīng)功能,查詢參考資料也不方便。建議使用Visual一本學(xué)習(xí)教程,現(xiàn)在C語(yǔ)言教材多如牛毛,但推薦大家使用《C語(yǔ)言程序設(shè)計(jì)》譚浩強(qiáng)主編清華大學(xué)出版社,此書(shū)編寫(xiě)的很適合初學(xué)者,并且內(nèi)容也很精到。除此以外,還可以借助于輔助學(xué)習(xí)的軟件,畢竟現(xiàn)在是Window時(shí)代了,學(xué)習(xí)軟件多如牛毛,不象我們當(dāng)初學(xué)習(xí),只有讀書(shū)做題這么老套??▽毜鋵W(xué)習(xí)計(jì)算機(jī)語(yǔ)言最好的方法是什么?答曰:讀程序。沒(méi)錯(cuò),讀程序是學(xué)習(xí)C語(yǔ)言入門(mén)最快,也是最好的方法。如同我,現(xiàn)在學(xué)習(xí)新的J#,C#等其他語(yǔ)言,不再是抱著書(shū)本逐行啃,而是學(xué)習(xí)它們的例程。當(dāng)然,對(duì)于沒(méi)有學(xué)過(guò)任何計(jì)算機(jī)語(yǔ)言的初學(xué)者,最好還是先閱讀教程,學(xué)習(xí)完每一章,都要認(rèn)真體會(huì)這一章的所有概念,然后不放過(guò)這一章中提到的所有例程,然后仔細(xì)研讀程序,直到每一行都理解了,然后找?guī)讉€(gè)編程題目,最好是和例程類似的或一樣的,自己試圖寫(xiě)出這段已經(jīng)讀懂的程序,不要以為例程你已經(jīng)讀懂了,你就可以寫(xiě)出和它一樣的程序,絕對(duì)不一定,不相信你就試一試吧,如果寫(xiě)不出來(lái),也不要著急,回過(guò)頭來(lái)再繼續(xù)研究例程,想想自己為什么寫(xiě)不出來(lái),然后再去寫(xiě)這段程序,反反復(fù)復(fù),直到你手到擒來(lái)為止,祝賀你,你快入門(mén)了。登峰造極寫(xiě)程序的最高境界其實(shí)就是掌握各種解決問(wèn)題的手段(數(shù)據(jù)結(jié)構(gòu))和解決問(wèn)題的方法(算法)。存器及其組合,然后寫(xiě)值讀值,僅此而已。這不過(guò)是熟悉一些IO函數(shù)罷了。那么怎樣才算精通程序設(shè)計(jì)呢?舉個(gè)例子:你面前有10個(gè)人,找出一個(gè)叫“張三”的人,你該怎么辦?10個(gè)人問(wèn)2數(shù)據(jù)結(jié)構(gòu),窮舉查找和折半查找。所以掌握好數(shù)據(jù)結(jié)構(gòu)和一些常用算法,是登峰造極的必然之路。最后給大家推薦嚴(yán)尉敏的《數(shù)據(jù)結(jié)構(gòu)》清華大學(xué)出版社,希望每一個(gè)想成為程序設(shè)計(jì)高手的人研讀此書(shū)。如何應(yīng)對(duì)新大綱二級(jí)考試的公共基礎(chǔ)知識(shí)30分。二級(jí)基礎(chǔ)知識(shí)考核內(nèi)容的大變令相當(dāng)多的考生措手不及,事實(shí)上這次改革將基礎(chǔ)知識(shí)的內(nèi)容由計(jì)算機(jī)常識(shí)(一級(jí)難度)(三級(jí)難度054基礎(chǔ)四部分,下面分別說(shuō)一下學(xué)習(xí)重點(diǎn)和方法:數(shù)據(jù)結(jié)構(gòu)與算法時(shí)這也是數(shù)據(jù)結(jié)構(gòu)與算法的難點(diǎn),考核形式主要為二叉樹(shù)的遍歷問(wèn)題(給前序、中序遍歷求后序遍歷等、二叉樹(shù)的結(jié)點(diǎn)問(wèn)題(如給出一些條件然后求葉子結(jié)點(diǎn)個(gè)數(shù);還有排序和查找考試中也經(jīng)常會(huì)涉及到,排序主要以計(jì)算時(shí)間復(fù)雜度的形式考核,查找主要以計(jì)算最佳/最壞比較次數(shù)的方式考核。其余的知識(shí)點(diǎn)主要以概念的形式考察,考生需要仔細(xì)看書(shū)并理解。程序設(shè)計(jì)基礎(chǔ)與軟件工程基礎(chǔ)即SA及S,約占50%(約占20%可以得到深刻理解。數(shù)據(jù)庫(kù)設(shè)計(jì)基礎(chǔ)外,其余的都是以概念題的形式考核,考生需要仔細(xì)的閱讀。以上為復(fù)習(xí)二級(jí)公共基礎(chǔ)的方法,順便提及一點(diǎn)02年版及其以前的公共基礎(chǔ)考試用書(shū)已不再適用,因此考生在選購(gòu)教材的時(shí)候應(yīng)當(dāng)特別注意,應(yīng)當(dāng)購(gòu)買04年版的二級(jí)公共基礎(chǔ)知識(shí)教程(指定教材由高等教育出版社出版,還有考生在備考時(shí),除了應(yīng)完成教材中的習(xí)054語(yǔ)言筆試應(yīng)試技巧二級(jí)C別是歷年真題,從中找出規(guī)律性的東西以及解題技巧。選擇題排除法等多種方法。但是這類題目考的知識(shí)點(diǎn)往往都比較多且細(xì),容易出錯(cuò),考生在做這類2003949有以下程序main(){inta[3][3], p=&&a[0][0];for(i=0;i<9;i++)p[i]=i+1;printf("%d\n",a[1][2]);}程序運(yùn)行后的輸出結(jié)果是(A)3(B)6(C)9(D)2此題主要考的知識(shí)點(diǎn)有:(1)數(shù)組與指針的關(guān)系;(2)數(shù)組的初始化和數(shù)組元素的引用。Cp0a[0][0p中存放了數(shù)組元素a[0][0]的地址,由于數(shù)組元素在內(nèi)存中是連續(xù)存儲(chǔ)的,因此,我們就可以通過(guò)指針變量pfor(i=0;i<9;i++)1a[3][3]={1,2,3,4,5,6,7,8,9a[1][2]=6C0a[1][2]=3。填空題2040分,有的考生能得35~4010200398main(){inta=1,b=3,c=5;if(c=a+b)printf("yes\n");elseprintf("no");}yes。因?yàn)椤癷f(c=a+b)printf("yes\n");”a+b=1+3=4,所以條件為真。而許多考生卻把賦值語(yǔ)句“c=a+b”理解為關(guān)系表達(dá)式“c==a+b5=1+3no。12main(){inti,n[]={0,0,0,0,0};for(i=1;i<=4;i++){n[i]=n[i-1]*2+1;printf("%d",n[i]);}}問(wèn)程序運(yùn)行后的輸出結(jié)果是 。答案是“13715”許多考生雖然寫(xiě)對(duì)了但卻在每個(gè)數(shù)字后加了標(biāo)點(diǎn)而不得分如“1,3,7,15”或“5又如第19題:s中的數(shù)字字符放入dd如,輸入字符串:abc123edf456gh,執(zhí)行后輸出:123456。請(qǐng)?zhí)羁眨簃ain(){chars[80],d[80];inti,gets(s);for(i=j=0;s[i]!='\0';i++))d[j]='\0';puts(d);}答案應(yīng)是s[i]<='9'&&s[i]>='0'或s[i]<=48&&s[i]>=57將答案張冠李戴,位置寫(xiě)錯(cuò),白白丟了分??傊?,只要考生能準(zhǔn)確理解基本知識(shí)點(diǎn),善于動(dòng)手動(dòng)腦多練習(xí),舉一反三,觸類旁通,就能從中找出規(guī)律性的東西,輕松通過(guò)筆試。上機(jī)考試技巧上機(jī)改錯(cuò)題的特點(diǎn)和注意事項(xiàng)上機(jī)改錯(cuò)的試題中通常包含兩個(gè)(或三個(gè))錯(cuò)誤需要修改。試題中用"/******found******/"來(lái)提示在下一行(或下面第二行)有錯(cuò)。自己另編程序。上機(jī)改錯(cuò)測(cè)試時(shí),建議按以下步驟進(jìn)行改錯(cuò)后程序運(yùn)行的結(jié)果是否正確。TURBOC"/******found******/題義理解程序所采用的基本算法,做到心里有數(shù)。先按F9CTRL+F9當(dāng)程序存在邏輯錯(cuò)誤時(shí),首先應(yīng)當(dāng)理解題意、讀懂程序的算法,必要時(shí)可按步檢0開(kāi)始而不是1開(kāi)始的。修改程序中的邏輯錯(cuò)時(shí),要求考生認(rèn)真讀懂程序代碼。修改完成,得到正確結(jié)果后,一定不要忘記把修改后的程序存盤(pán)。上機(jī)編程題的特點(diǎn)和說(shuō)明C通過(guò)實(shí)際上機(jī)操作積累經(jīng)驗(yàn),才能掌握基本的編程能力。進(jìn)行編程測(cè)試時(shí),建議按以下步驟進(jìn)行完成指定的函數(shù)后程序運(yùn)行的結(jié)果是否正確。TURBOC函數(shù)時(shí)的實(shí)參內(nèi)容,以便明確在函數(shù)中需要處理的數(shù)據(jù)對(duì)象。return語(yǔ)句返回函數(shù)值;若主函數(shù)中僅用語(yǔ)句形式調(diào)用函數(shù),則需要通過(guò)形參間接地返回所得結(jié)果。選擇適當(dāng)?shù)乃惴ㄟM(jìn)行編程,輸入程序語(yǔ)句。不要忘記及時(shí)存盤(pán)!編譯程序,直到?jīng)]有語(yǔ)法錯(cuò)誤。用例示的輸出數(shù)據(jù)檢驗(yàn)輸出結(jié)果,直到結(jié)果相同。常見(jiàn)問(wèn)題分析書(shū)寫(xiě)標(biāo)識(shí)符時(shí),忽略了大小寫(xiě)字母的區(qū)別。main(){inta=5;printf("%d",A);}編譯程序把a(bǔ)和A認(rèn)為是兩個(gè)不同的變量名,而顯示出錯(cuò)信息。C認(rèn)為大寫(xiě)字母和小寫(xiě)字母是兩個(gè)不同的字符。習(xí)慣上,符號(hào)常量名用大寫(xiě),變量名用小寫(xiě)表示,以增加可讀性。忽略了變量的類型,進(jìn)行了不合法的運(yùn)算。main(){floata,b;printf("%d",a%b);}%是求余運(yùn)算,得到a/b的整余數(shù)。整型變量a和b可以進(jìn)行求余運(yùn)算,而實(shí)型變量則不允許進(jìn)行“求余”運(yùn)算。將字符常量與字符串常量混淆。charc;c="a";在這里就混淆了字符常量與字符串常量,字符常量是由一對(duì)單引號(hào)括起來(lái)的單個(gè)字符,字符串常量是一對(duì)雙引號(hào)括起來(lái)的字符序列。C規(guī)定以“\”作字符串結(jié)束標(biāo)志,它是由系統(tǒng)自動(dòng)加上的,所以字符串“a”實(shí)際上包含兩個(gè)字符:‘a(chǎn)'和‘\',而把它賦給一個(gè)字符變量是不行的。忽略了“=”與“==”的區(qū)別。在許多高級(jí)語(yǔ)言中,用“=”符號(hào)作為關(guān)系運(yùn)算符“等于”。如在BASIC程序中可以寫(xiě)if(a=3)then?但C語(yǔ)言中,“=”是賦值運(yùn)算符,“==”是關(guān)系運(yùn)算符。如:if(a==3)a=b;前者是進(jìn)行比較,a是否和3相等,后者表示如果a和3相等,把b值賦給a。由于習(xí)慣問(wèn)題,初學(xué)者往往會(huì)犯這樣的錯(cuò)誤。忘記加分號(hào)。分號(hào)是C語(yǔ)句中不可缺少的一部分,語(yǔ)句末尾必須有分號(hào)。a=1b=2一下上一行是否漏掉了分號(hào)。{z=x+y;t=z/100;printf("%f",t);}對(duì)于復(fù)合語(yǔ)句來(lái)說(shuō),最后一個(gè)語(yǔ)句中最后的分號(hào)不能忽略不寫(xiě)。多加分號(hào)對(duì)于一個(gè)復(fù)合語(yǔ)句,如:{z=x+y;t=z/100;printf("%f",t);};復(fù)合語(yǔ)句的花括號(hào)后不應(yīng)再加分號(hào),否則將會(huì)畫(huà)蛇添足。又如:if(a%3==0);i++;3i1if(a%3==0ifi++3是否整除a,i1。再如:for(i=0;i<5;i++);{scanf("%d",&x);printf("%d",x);}本意是先后輸入5個(gè)數(shù),每輸入一個(gè)數(shù)后再將它輸出。由于for()后多加了一個(gè)分號(hào),使循環(huán)體變?yōu)榭照Z(yǔ)句,此時(shí)只能輸入一個(gè)數(shù)并輸出它。輸入變量時(shí)忘記加地址運(yùn)算符“&”inta,b;scanf("%d%d",a,b);這是不合法的。scanf函數(shù)的作用是:按照a、b在內(nèi)存的地址將a、b的值存進(jìn)去?!?a”指a在內(nèi)存中的地址。輸入數(shù)據(jù)的方式與要求不符①scanf("%d%d",&a,&b);輸入時(shí),不能用逗號(hào)作兩個(gè)數(shù)據(jù)間的分隔符,如下面輸入不合法:3,4輸入數(shù)據(jù)時(shí),在兩個(gè)數(shù)據(jù)之間以一個(gè)或多個(gè)空格間隔,也可用回車鍵,跳格鍵tab。②scanf("%d,%d",&a,&b);C規(guī)定:如果在“格式控制”字符串中除了格式說(shuō)明以外還有其它字符,則在輸入數(shù)據(jù)時(shí)應(yīng)輸入與這些字符相同的字符。下面輸入是合法的:3,4此時(shí)不用逗號(hào)而用空格或其它字符是不對(duì)的。34 3:4又如:scanf("a=%d,b=%d",&a,&b);輸入應(yīng)如以下形式:a=3,b=4輸入字符的格式與要求不一致在用“%c”格式輸入字符時(shí),“空格字符”和“轉(zhuǎn)義字符”都作為有效字符輸入。scanf("%c%c%c",&c1,&c2,&c3);如輸入abc字符“ac1,字符“”送給c2,字符“b”c3,因?yàn)?c符,后面不需要用空格作為兩個(gè)字符的間隔。例如,aba=3;b=4.5;printf("%f%d\n",a,b);編譯時(shí)不給出出錯(cuò)信息,但運(yùn)行結(jié)果將與原意不符。這種錯(cuò)誤尤其需要注意。輸入數(shù)據(jù)時(shí),企圖規(guī)定精度scanf("%7.2f",&a);這樣做是不合法的,輸入數(shù)據(jù)時(shí)不能規(guī)定精度。switchbreak例如:根據(jù)考試成績(jī)的等級(jí)打印出百分制數(shù)段switch(grade){case'A':printf("85~100\n");case'B':printf("70~84\n");case'C':printf("60~69\n");case'D':printf("<60\n");default:printf("error\n");break,casegradeAprintfcase'A':printf("85~100\n");break;在定義數(shù)組時(shí),將定義的“元素個(gè)數(shù)”誤認(rèn)為是可使的最大下標(biāo)值main(){staticinta[10]={1,2,3,4,5,6,7,8,9,10};printf("%d",a[10]);}C語(yǔ)言規(guī)定:定義時(shí)用a[10],表示a數(shù)組有10個(gè)元素。其下標(biāo)值由0開(kāi)始,所以數(shù)組元素a[10]是不存在的。在不應(yīng)加地址運(yùn)算符&的位置加了地址運(yùn)算符scanf("%s",&str);C語(yǔ)言編譯系統(tǒng)對(duì)數(shù)組名的處理是:數(shù)組名代表該數(shù)組的起始地址,且scanf函數(shù)中的輸入項(xiàng)是字符數(shù)組名,不必要再加地址符&。應(yīng)改為:scanf("%s",str);輔之以有效的學(xué)習(xí)方法,就一定會(huì)有所成就。第三章200520054(二級(jí))C一、選擇題1)~(10)每小題2(11)~(50)每小題1分,共60分)下列各題A、、C、)在答題卡相應(yīng)位置上,答在試卷上不得分。數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是指 。A)存儲(chǔ)在外存中的數(shù)據(jù) B)數(shù)據(jù)所占的存儲(chǔ)空間量C)數(shù)據(jù)在計(jì)算機(jī)中的順序存儲(chǔ)方式 D)數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的表下列關(guān)于棧的描述中錯(cuò)誤的是 。棧是先進(jìn)后出的線性表?xiàng)V荒茼樞虼鎯?chǔ)棧具有記憶作用對(duì)棧的插入與刪除操作中,不需要改變棧底指針n 。A)冒泡排序?yàn)閚/2 B)冒泡排序?yàn)閚C)快速排序?yàn)閚 D)快速排序?yàn)閚(n-1)/2對(duì)長(zhǎng)度為n的線性表進(jìn)行順序查找,在最壞情況下所需要的比較次數(shù)為 。A)log2n B)n/2 C)n D)n+1下列對(duì)于線性鏈表的描述中正確的是 。存儲(chǔ)空間不一定是連續(xù),且各元素的存儲(chǔ)順序是任意的C)存儲(chǔ)空間必須連續(xù),且前件元素一定存儲(chǔ)在后件元素的前面D)存儲(chǔ)空間必須連續(xù),且各元素的存儲(chǔ)順序是任意的下列對(duì)于軟件測(cè)試的描述中正確的是 。軟件測(cè)試的目的是證明程序是否正確軟件測(cè)試的目的是使程序運(yùn)行結(jié)果正確軟件測(cè)試的目的是盡可能多地發(fā)現(xiàn)程序中的錯(cuò)誤軟件測(cè)試的目的是使程序符合結(jié)構(gòu)化原則為了使模塊盡可能獨(dú)立,要求 。A)模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量強(qiáng)B)模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量弱C)模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量弱D)模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量強(qiáng)下列描述中正確的是 。A)程序就是軟件B)軟件開(kāi)發(fā)不受計(jì)算機(jī)系統(tǒng)的限制C)軟件既是邏輯實(shí)體,又是物理實(shí)體D)軟件是程序、數(shù)據(jù)與相關(guān)文檔的集數(shù)據(jù)獨(dú)立性是數(shù)據(jù)庫(kù)技術(shù)的重要特點(diǎn)之一,所謂數(shù)據(jù)獨(dú)立性是指 。A)數(shù)據(jù)與程序獨(dú)立存放B)不同的數(shù)據(jù)被存放在不同的文件中C)D)以上三種說(shuō)法都不對(duì)用樹(shù)形結(jié)構(gòu)表示實(shí)體之間聯(lián)系的模型是 。A)關(guān)系模型 B)網(wǎng)狀模型 C)層次模型 D)以上三個(gè)都是算法具有五個(gè)特性,以下選項(xiàng)中不屬于算法特性的是 。A)有窮性 B)簡(jiǎn)潔性 C)可行性 D)確定性以下選項(xiàng)中可作為C語(yǔ)言合法常量的是 。A)-80. B)-080 C)-8e1.0 D)-80.0e以下敘述中正確的是 。A)用C程序?qū)崿F(xiàn)的算法必須要有輸入和輸出操作B)CC)用CD)用C以下不能定義為用戶標(biāo)識(shí)符的是 。A)MainB)_0 C)_int D)sizeof以下選項(xiàng)中不能作為合法常量的是 。A)1.234e04 B)1.234e0.4 C)1.234e+4 D)1.234e00ASCII48,main(){chara=′1′,b=′2′;printf("%c,",b++);printf("%d\n",b-a);}程序運(yùn)行后的輸出結(jié)果是 。A)3,2B)50,2 C)2,2 D)2,50有以下程序main(){intm=12,n=34;printf("%d%d",m++,++n);printf("%d%d\n",n++,++m);}程序運(yùn)行后的輸出結(jié)果是 。A)12353514B)12353513C)12343514 D)12343513有定義語(yǔ)句:intb;charc[10];,則正確的輸入語(yǔ)句是 A)scanf("%d%s",&b,&c); B)scanf("%d%s",&b,c);C)scanf("%d%s",b,c);D)scanf("%d%s",b,&c);有以下程序main(){intm,n,p;scanf("m=%dn=%dp=%d",&m,&n,&p);printf("%d%d%d\n",m,n,p);}若想從鍵盤(pán)上輸入數(shù)據(jù),使變量m中的值為123,n中的值為456,p中的值為789,則正確的輸入是 。A)m=123n=456p=789 B)m=123n=456C)m=123,n=456,p=789 D)123456789有以下程序main(){inta,b,d=25;a=d/10%9;b=a&&(-1);printf("%d,%d\n",a,b);}程序運(yùn)行后的輸出結(jié)果是 。A)6,1 B)2,1 C)6,0 D)2,0有以下程序main(){inti=1,j=2,k=3;if(i++==1&&(++j==3||k++==3))printf("%d%d%d\n",i,j,k);}程序運(yùn)行后的輸出結(jié)果是 A)123 B)234 C)223 D)233a、b、c、d1、4、3、2。則條件表達(dá)式a<B?A:C<D?C:D的值是 。A)1 B)2 C)3 D)4有以下程序main(){intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;while(i++<7)if(p[i]%2)j+=p[i];printf("%d\n",j);}程序運(yùn)行后的輸出結(jié)果是 。A)42 B)45 C)56 D)60有以下程序main(){chara[7]="a0\0a0\0";inti,j;i=sizeof(a);j=strlen(a);printf("%d%d\n",i,j);}程序運(yùn)行后的輸出結(jié)果是 。A)22B)76 C)72 D)62以下能正確定義一維數(shù)組的選項(xiàng)是 。A)inta[5]={0,1,2,3,4,5}; B)chara[]={0,1,2,3,4,5};C)chara={′A′,′B′,′C′};D)inta[5]="0123";有以下程序intf1(intx,inty){returnx>y?x:y;}intf2(intx,inty){returnx>y?y:x;}main(){inta=4,b=3,c=5,d=2,e,f,g;e=f2(f1(a,b),f1(c,d));f=f1(f2(a,b),f2(c,d));g=a+b+c+d-e-f;printf("%d,%d,%d\n",e,f,g);程序運(yùn)行后的輸出結(jié)果是 。A)4,3,7 B)3,4,7 C)5,2,7 D)2,5,7chara[]="xyz",b[]={x′,′y′,′z′};,以下敘述中正確的是 。A)數(shù)組a和b的長(zhǎng)度相同B)a數(shù)組長(zhǎng)度小于b數(shù)組長(zhǎng)度C)a數(shù)組長(zhǎng)度大于b數(shù)組長(zhǎng)度D)上述說(shuō)法都不對(duì)有以下程序voidf(int*x,int*y){intt;t=*x;*x=*y;*y=t;main(){inta[8]={1,2,3,4,5,6,7,8},i,*p,*q;p=a;q=&a[7];while(p<q){if(p,q);p++;q--;}for(i=0;i<8;i++)printf("%d,",a[i]);}程序運(yùn)行后的輸出結(jié)果是 。A)8,2,3,4,5,6,7,1, C)1,2,3,4,5,6,7,8, D)8,7,6,5,4,3,2,1,有以下程序main(){inta[3][3],*p,i;p=&a[0][0];for(i=0;i<9;i++)p[i]=i;for(i=0;i<3;i++)printf("%d",a[1][i]);程序運(yùn)行后的輸出結(jié)果是 。A)012B)123 C)234 D)345以下敘述中錯(cuò)誤的是 。A)對(duì)于double類型數(shù)組,不可以直接用數(shù)組名對(duì)數(shù)組進(jìn)行整體輸入或輸出B)數(shù)組名代表的是數(shù)組所占存儲(chǔ)區(qū)的首地址,其值不可改變C)的出錯(cuò)信息D)可以通過(guò)賦初值的方式確定數(shù)組元素的個(gè)數(shù)有以下程序#defineN20fun(inta[],intn,intm){inti,j;for(i=m;i>=n;i--)a[i+1]=a[i];}main(){inti,a[N]={1,2,3,4,5,6,7,8,9,10};fun(a,2,9);for(i=0;i<5;i++)printf("%d",a[i]);}程序運(yùn)行后的輸出結(jié)果是 。A)10234 B)12344 C)12334 D)12234有以下程序main(){inta[3][2]={0},(*ptr)[2],i,j;for(i=0;i<2;i++){ptr=a+i;scanf("%d",ptr);ptr++;}for(i=0;i<3;i++){for(j=0;j<2;j++)printf("%2d",a[i][j]);printf("\n");}}若運(yùn)行時(shí)輸入:123<回車>,則輸出結(jié)果是 。產(chǎn)生錯(cuò)誤信息 B)10 C)12 D)10有以下程序prt(int*m,intn){inti;for(i=0;i<n;i++)m[i]++;}main(){inta[]={1,2,3,4,5},i;prt(a,5);for(i=0;i<5;i++)printf("%d,",a[i]);}程序運(yùn)行后的輸出結(jié)果是 。A)1,2,3,4,5, B)2,3,4,5,6, C)3,4,5,6,7, D)2,3,4,5,1,有以下程序main(){inta[]={1,2,3,4,5,6,7,8,9,0},*p;for(p=a;p<a+10;p++)printf("%d,",*p);}程序運(yùn)行后的輸出結(jié)果是 。A)1,2,3,4,5,6,7,8,9,0,B)2,3,4,5,6,7,8,9,10,1,C)0,1,2,3,4,5,6,7,8,9, D)1,1,1,1,1,1,1,1,1,1,有以下程序#defineP3voidF(intx){return(P*x*x);}main(){printf("%d\n",F(3+5));}程序運(yùn)行后的輸出結(jié)果是 。A)192B)29 C)25 D)編譯出錯(cuò)有以下程序main(){intc=35;printf("%d\n",c&c);}程序運(yùn)行后的輸出結(jié)果是 。A)0 B)70 C)35 D)1以下敘述中正確的是 。A)預(yù)處理命令行必須位于源文件的開(kāi)頭B)在源文件的一行上可以有多條預(yù)處理命C)宏名必須用大寫(xiě)字母表示D)宏替換不占用程序的運(yùn)行時(shí)間若有以下說(shuō)明和定義uniondt{inta;charb;doublec;}data;以下敘述中錯(cuò)誤的是 。A)data的每個(gè)成員起始地址都相變量data所占的內(nèi)存字節(jié)數(shù)與成員c所占字節(jié)數(shù)相等C)程序段:data.a=5;printf("%f\n",data.c);輸出結(jié)果為D)data以下語(yǔ)句或語(yǔ)句組中,能正確進(jìn)行字符串賦值的是 。A)char*sp;*sp="right!"; B)chars[10];s="right!";C)chars[10];*s="right!"; D)char*sp="right!";設(shè)有如下說(shuō)明typedefstructST{longa;intb;charc[2];}NEW;則下面敘述中正確的是 。A)以上的說(shuō)明形式非法 B)ST是一個(gè)結(jié)構(gòu)體類型C)NEW是一個(gè)結(jié)構(gòu)體類型D)NEW是一個(gè)結(jié)構(gòu)體變有以下程序main(){inta=1,b;for(b=1;b<=10;b++){if(a>=8)break;if(a%2==1){a+=5;continue;}a-=3;}printf("%d\n",b);}程序運(yùn)行后的輸出結(jié)果是 。A)3 B)4 C)5 D)6有以下程序main(){chars[]="159",*p;p=s;printf("%c",*p++);printf("%c",*p++);}程序運(yùn)行后的輸出結(jié)果是 。A)15 B)16 C)12 D)59有以下函數(shù)fun(char*a,char*b){while((*a!=′\0′)&&(*b!=′\0′)&&(*a==*b)){a++;b++;}return(*a-*b);}該函數(shù)的功能是 。a和bb所指字符串連接到ab所指字符串連接到aD)a和b有以下程序main(){intnum[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j;for(i=0;i<4;i++){for(j=0;j<=i;j++) printf("%4c",′′);for(j= ;j<4;j++)printf("%4d",num[i][j]);printf("\n");}}若要按以下形式輸出數(shù)組右上半三角1234678111216則在程序下劃線處應(yīng)填入的是 。A)i-1B)i C)i+1 D)4-i有以下程序point(char*p){p+=3;}main(){charb[4]={′a′,′b′,′c′,′d′},*p=b;point(p);printf("%c\n",*p);}程序運(yùn)行后的輸出結(jié)果是 。A)a B)b C)c D)d程序中若有如下說(shuō)明和定義語(yǔ)句charfun(char*);main(){char*s="one",a[5]={0},(*f1)()=fun,ch;......}以下選項(xiàng)中對(duì)函數(shù)fun的正確調(diào)用語(yǔ)句是 。A)(*f1)(a); B)*f1(*s);C)fun(&a);D)ch=*f1(s);有以下結(jié)構(gòu)體說(shuō)明和變量定義,如圖所示:structnode{intdata;structnode*next;}*p,*q,*r;現(xiàn)要將q所指結(jié)點(diǎn)從鏈表中刪除,同時(shí)要保持鏈表的連續(xù),以下不能完成指定操作的句是 。A)P->next=q->next; B)p->next=p->next->next;C)p->next=r; D)p=q->next;以下對(duì)結(jié)構(gòu)體類型變量td的定義中,錯(cuò)誤的是 。A)typedefstructaa B)structaa{intn; {intn;floatm; floatm;}AA; }td;AAtd; structaatd;C)struct D)struct{intn; {intn;floatm; floatm;}aa; }td;structaatd;以下與函數(shù)fseek(fp,0L,SEEK_SET)有相同作用的是 。A)feof(fp) B)ftell(fp) C)fgetc(fp) 有以下程序#includevoidWriteStr(char*fn,char*str){FILE*fp;fp=fopen(fn,"w");fputs(str,fp);fclose(fp);}main(){WriteStr("t1.dat","start");WriteStr("t1.dat","end");}程序運(yùn)行后,文件t1.dat中的內(nèi)容是 。A)start B)endC)startend D)endrt二、填空題(每空2分,共40分)請(qǐng)將每空的正確答案寫(xiě)在【1】至【20】序號(hào)的橫線上,答在試卷上不得分。2181】個(gè)葉子結(jié)點(diǎn)。【2】。診斷和改正程序中錯(cuò)誤的工作通常稱為【3】。在關(guān)系數(shù)據(jù)庫(kù)中,把數(shù)據(jù)表示成二維表,每一個(gè)二維表稱為【4】。問(wèn)題處理方案的正確而完整的描述稱為【5】。以下程序運(yùn)行時(shí),若從鍵盤(pán)輸入:102030【6】。main(){inti=0,j=0,k=0;scanf("%d%*d%d",&i,&j,&k);printf("%d%d%d\n",i,j,k);}【7】。#defineS(x)4*x*x+1main(){inti=6,j=8;printf("%d\n",S(i+j));}【8】。main(){inta=3,b=4,c=5,t=99;if(b<a&&a<c) if(a<c&&b<c) printf("%d%d%d\n",a,b,c);}【9】。main(){inta,b,c;a=10;b=20;c=(a%b<1)||(a/b>1);printf("%d%d%d\n",a,b,c);}以下程序運(yùn)行后的輸出結(jié)果是【10】。main(){charc1,c2;for(c1=′0′,c2=′9′;c1<c2;c1++,c2--)printf("%c%c",c1,c2);printf("\n");}AASCII65,以下程序運(yùn)行時(shí)若從鍵盤(pán)輸入:B33則輸出結(jié)果是【11】。main(){chara,b;a=getchar();scanf("%d",&b);a=a-′A′+′0′;b=b*2;printf("%c%c\n",a,b);}以下程序中,fun34空。voidfun(int,int,int(*)[4],int*);main(){inta[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1}},b[3],i;fun(3,4,a,b);for(i=0;i<3;i++)printf("%4d",b[i]);printf("\n");}voidfun(intm,intn,intar[][4],int*br){inti,j,x;for(i=0;i<M;{x=ar[i][0];for(j=0;j<n;j++)if(x<ar[i][j])x=ar[i][j]; 【12】=x;}}以下程序運(yùn)行后的輸出結(jié)果是【13】。voidswap(intx,inty){intt;t=x;x=y;y=t;printf("%d %d main(){inta=3,b=4;swap(a,b);printf("%d%d\n",a,b);}以下程序運(yùn)行后的輸出結(jié)果是【14】。#include"string.h"voidfun(char*s,intp,intk){inti;for(i=p;i<k-1;i++)s[i]=s[i+2];}main(){chars[]="abcdefg";fun(s,3,strlen(s));puts(s);}以下程序運(yùn)行后的輸出結(jié)果是【15】。#include"string.h"main(){charch[]="abc",x[3][4];inti;for(i=0;i<3;i++) strcpy(x[i],ch);for(i=0;i<3;i++) printf("\n");}以下程序運(yùn)行后的輸出結(jié)果是【16】。fun(inta){intb=0;staticintc=3;b++;c++;return(a+b+c);}main(){inti,a=5;for(i=0;i<3;i++)printf("%d%d",i,fun(a));printf("\n");}以下程序運(yùn)行后的輸出結(jié)果是【17】。structNODE{intk;structNODE*link;};main(){structNODEm[5],*p=m,*q=m+4;inti=0;while(p!=q){p->k=++i; p++;q->k=i++; q--;}q->k=i;for(i=0;i<5;i++)printf("%d",m[i].k);printf("\n");}以下程序中函數(shù)huiwen時(shí),函數(shù)返回字符串:yes!,no!,并在主函數(shù)中輸出,所謂回文即正向與反向的拼寫(xiě)都一樣,例如:adgda。請(qǐng)?zhí)羁?。char*huiwen(char*str){char*p1,*p2;inti,t=0;p1=str;p2=【18】;for(i=0;i<=strlen(str)/2;i++)if(*p1++!=*p2--){t=1;break;}if(【19】)return("yes!");elsereturn("no!");}main(){charstr[50];printf("Input:");scanf("%s",str);printf("%s\n",【20】);}20059(二級(jí)一、選擇題1)—(10)每題2(11)—(50)每題1分,共60分)下列各題、、C、D)在答題卡相應(yīng)位置上,答在試卷上不得分。下列敘述中正確的是A)程序設(shè)計(jì)就是編制程序 B)程序的測(cè)試必須由程序員自己去完成C)程序經(jīng)調(diào)試改錯(cuò)后還應(yīng)進(jìn)行再測(cè)試 D)程序經(jīng)調(diào)試改錯(cuò)后不必進(jìn)行再測(cè)下列數(shù)據(jù)結(jié)構(gòu)中,能用二分法進(jìn)行查找的是A)順序存儲(chǔ)的有序線性表 B)線性鏈C)二叉鏈表 D)有序線性鏈表下列關(guān)于棧的描述正確的是A)在棧中只能插入元素而不能刪除元素B)在棧中只能刪除元素而不能插入元素C)棧是特殊的線性表,只能在一端插入或刪除元素D)下列敘述中正確的是A)一個(gè)邏輯數(shù)據(jù)結(jié)構(gòu)只能有一種存儲(chǔ)結(jié)構(gòu)B)數(shù)據(jù)的邏輯結(jié)構(gòu)屬于線性結(jié)構(gòu),存儲(chǔ)結(jié)構(gòu)屬于非線性結(jié)構(gòu)C)D)一個(gè)邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲(chǔ)結(jié)構(gòu),且各種存儲(chǔ)結(jié)構(gòu)影響數(shù)據(jù)處理的效率下列描述中正確的是A)軟件工程只是解決軟件項(xiàng)目的管理問(wèn)題B)C)D)軟件工程只是解決軟件開(kāi)發(fā)中的技術(shù)問(wèn)題在軟件設(shè)計(jì)中,不屬于過(guò)程設(shè)計(jì)工具的是A)PDL(過(guò)程設(shè)計(jì)語(yǔ)言) B)PAD圖 C)N-S圖 D)DFD圖下列敘述中正確的是軟件交付使用后還需要進(jìn)行維護(hù)C)軟件交付使用后其生命周期就結(jié)束D)數(shù)據(jù)庫(kù)設(shè)計(jì)的根本目標(biāo)是要解決A)數(shù)據(jù)共享問(wèn)題 B)數(shù)據(jù)安全問(wèn)C)大量數(shù)據(jù)存儲(chǔ)問(wèn)題 D)簡(jiǎn)化數(shù)據(jù)維設(shè)有如下關(guān)系表:R S TA1A123BBC1122231C233A)T=R∩S B)T=R∪SC)T=R×SD)T=R/S數(shù)據(jù)庫(kù)系統(tǒng)的核心是A)數(shù)據(jù)模型 B)數(shù)據(jù)庫(kù)管理系統(tǒng)C)數(shù)據(jù)庫(kù) D)數(shù)據(jù)庫(kù)管理員以下敘述中錯(cuò)誤的是A)用戶所定義的標(biāo)識(shí)符允許使用關(guān)鍵字B)用戶所定義的標(biāo)識(shí)符應(yīng)盡量做到“見(jiàn)名知意”C)用戶所定義的標(biāo)識(shí)符必須以字母或下劃線開(kāi)頭D)以下敘述中錯(cuò)誤的是A)C語(yǔ)句必須以分號(hào)結(jié)束B(niǎo))復(fù)合語(yǔ)句在語(yǔ)法上被看作一條語(yǔ)句C)空語(yǔ)句出現(xiàn)在任何位置都不會(huì)影響程序運(yùn)行D)賦值表達(dá)式末尾加分號(hào)就構(gòu)成賦值語(yǔ)句以下敘述中正確的是printfputcharstdio.hA3B1A3B1C3getcharASCII碼以下關(guān)于函數(shù)的敘述中正確的是A)每個(gè)函數(shù)都可以被其它函數(shù)調(diào)用(mainB)每個(gè)函數(shù)都可以被單獨(dú)編譯C)每個(gè)函數(shù)都可以單獨(dú)運(yùn)行D)在一個(gè)函數(shù)內(nèi)部可以定義另一個(gè)函數(shù)若有語(yǔ)句:char*line[5];,以下敘述中正確的是A)linecharline5C)line*號(hào)稱為間址運(yùn)算符D)定義line是一個(gè)指向字符型函數(shù)的指針有以下程序段typedefstructNODE{intnum;structNODE*next;}OLD;以下敘述中正確的是A)以上的說(shuō)明形式非法 B)NODE是一個(gè)結(jié)構(gòu)體類型C)OLD是一個(gè)結(jié)構(gòu)體類型 D)OLD是一個(gè)結(jié)構(gòu)體變量以下敘述中錯(cuò)誤的是A)C語(yǔ)言中對(duì)二進(jìn)制文件的訪問(wèn)速度比文本文件快B)C語(yǔ)言中,隨機(jī)文件以二進(jìn)制代碼形式存儲(chǔ)數(shù)據(jù)C)語(yǔ)句FILEfp;定義了一個(gè)名為fp的文件指針D)C語(yǔ)言中的文本文件以ASCII碼形式存儲(chǔ)數(shù)據(jù)當(dāng)把以下四個(gè)表達(dá)式用作if不同,這個(gè)選項(xiàng)是A)k%2B)k%2==1C)(k%2)!=0D)!k%2==1以下不能正確計(jì)算代數(shù)式值的C語(yǔ)言表達(dá)式是A)1/3*sin(1/2)*sin(1/2) B)sin(0.5)*sin(0.5)/3C)pow(sin(0.5),2)/3 以下能正確定義且賦初值的語(yǔ)句是A)intn1=n2=10; B)charc=32;C)floatf=f+1.1; D)doublex=12.3E2.5;rrs。程序在編譯時(shí)出錯(cuò)。main()/*Beginning*/{intr;floatscanf("%d",&r);s=*p*r*r;printf("s=%f\n",s);}出錯(cuò)的原因是A)注釋語(yǔ)句書(shū)寫(xiě)位置錯(cuò)誤 B)存放圓半徑的變量r不應(yīng)該定義為整型C)輸出語(yǔ)句中格式描述符非法 D)計(jì)算圓面積的賦值語(yǔ)句中使用了非法變量設(shè)有定義:intk=1,m=2;floatf=7;,則以下選項(xiàng)中錯(cuò)誤的表達(dá)式A)k=k>=k B)-k++C)k%int(f)D)k>=f>=m設(shè)有定義:inta=2,b=3,c=40A)(!a==1)&&(!b==0) B)(a<B)&&C)a&&b D)a||(b+b)&&(c-a)有以下程序段intk=0,a=1,b=2,c=3;k=ac?c:k;執(zhí)行該程序段后,k的值是A)3B)2C)1D)0a、b、c、d和yifif(a<B)if(c==d)y=0;elsey=1;該語(yǔ)句所表示的含義是0a<b且c=d0a<b且c=dA)y=1a≥bB)y=1a≥b且c≠d0a<b且c=d0 a<bc=dC)y=1a<b且c≠dD)y=1 c≠d有以下程序段intn,t=1,s=0;scanf("%d",&n);do{s=s+t;t=t-2;}while(t!=n);為使此程序段不陷入死循環(huán),從鍵盤(pán)輸入的數(shù)據(jù)應(yīng)該是A)任意正奇數(shù)B)任意負(fù)偶數(shù) C)任意正偶數(shù) D)任意負(fù)奇數(shù)設(shè)變量已正確定義,則以下能正確計(jì)算f=n!的程序段A)f=0; B)f=1;for(i=1;i<=n;i++)f*=i; C)f=1; D)f=1;for(i=n;i>1;i++)f*=i; for(i=n;i>=2;i--)f*=i;設(shè)有定義:intn1=0,n2,*p=&n2,*q=&n1;,以下賦值語(yǔ)句中與n2=n1;語(yǔ)句等價(jià)的A)*p=*q; B)p=q; C)*p=&n1;D)p=*q;若有定義:intx=0,*p=&x;,則語(yǔ)句printf("%d\n",*p);的輸出結(jié)果A)隨機(jī)值 B)0 C)x的地址D)p的地址funvoidfun(charch,floatx){?}funA)fun("abc",3.0); B)t=fun('D',16.5);C)fun('65',2.8); D)fun(32,32);有以下程序main(){inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p+2;printf("%d\n",*p+*q);}程序運(yùn)行后的輸出結(jié)果是A)16 B)10 C)8 D)6有以下程序main(){charp[]={'a','b','c'},q[]="abc";printf("%d%d\n",sizeof(p),sizeof(q));};程序運(yùn)行后的輸出結(jié)果是A)44 B)33 C)34 D)43有以下程序#definef(x)(x*x)main(){inti1,i2;i1=f(8)/f(4);i2=f(4+4)/f(2+2);printf("%d,%d\n",i1,i2);}程序運(yùn)行后的輸出結(jié)果是A)64,28 B)4,4 C)4,3 D)64,64有以下程序main(){chara1='M',a2='m';printf("%c\n",(a1,a2));}以下敘述中正確的是A)程序輸出大寫(xiě)字母M B)程序輸出小寫(xiě)字母mC)格式說(shuō)明符不足,編譯出錯(cuò) D)程序運(yùn)行時(shí)產(chǎn)生出錯(cuò)信有以下程序#includemain(){charc1='1',c2='2';c1=getchar();c2=getchar();putchar(c1);putchar(c2);}當(dāng)運(yùn)行時(shí)輸入:a<回車>后,以下敘述正確的是A)c1a,c2B)2C)c1a,c2D)c1a,c2有以下程序main(){intk=5,n=0;while(k>0){ switch(k){ default:case1:n+=k;case2:case3:n+=k;}k--;}printf("%d\n",n);}程序運(yùn)行后的輸出結(jié)果是A)0 B)4 C)6 D)7有以下程序main(){inta[]={2,4,6,8,10},y=0,x,*p;p=&a[1];for(x=1;x<3;x++)y+=printf("%d\n",y);}程序運(yùn)行后的輸出結(jié)果是A)10 B)11 C)14 D)15有以下程序voidsort(inta[],intn){inti,j,t;for(i=0;i<n-1;i++)for(j=i+1;j<n;if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;sort(aa+2,5);for(i=0;i<10;i++)printf("%d,",aa[i]);printf("\n");}程序運(yùn)行后的輸出結(jié)果是A)1,2,3,4,5,6,7,8,9,10, B)1,2,7,6,3,4,5,8,9,10,C)1,2,7,6,5,4,3,8,9,10, D)1,2,9,8,7,6,5,4,3,10,有以下程序voidsum(inta[]){ a[0]=a[-1]+a[1];}main(){inta[10]={1,2,3,4,5,6,7,8,9,10};sum(&a[2]);printf("%d\n",程序運(yùn)行后的輸出結(jié)果是A)6 B)7 C)5 D)8有以下程序voidswap1(intc0[],intc1[]){intt;t=c0[0];c0[0]=c1[0];c1[0]=t;}voidswap2(int*c0,int*c1){intt;t=*c0;*c0=*c1;*c1=t;}main(){inta[2]={3,5},b[2]={3,5};swap1(a,a+1); swap2(&b[0],&b[1]);printf("%d%d%d%d\n",a[0],a[1],b[0],b[1]);程序運(yùn)行后的輸出結(jié)果是A)3553 B)5335C)3535D)5353有以下程序#include<string.h>main(){charp[]={'a','b','c'},q[10]={'a','b','c'};printf("%d%d\n",strlen(p),strlen(q)); }以下敘述中正確的是A)p和qB)pq3C)qp3D)p和qf#include<string.h>voidf(char*p[],intn){char*t; inti,j;for(i=0;i<n-i;for(j=i+1;j<n;j++)if(strcmp(p[i],p[j])>0){t=p[i];p[i]=p[j];p[j]=t;}}main(){char*p[5]={"abc","aabdfg","abbd","dcdbe","cd"};f(p,5);printf("%d\n",strlen(p[1]));}程序運(yùn)行后的輸出結(jié)果是A)2 B)3 C)6 D)4有以下程序#include<string.h>voidf(char*s,char*t){chark;k=*s;*s=*t;s++; t--;if(*s)f(s,t);}main(){charstr[10]="abcdefg",*p;p=str+strlen(str)/2+1;f(p,p-2);printf("%s\n",str);}程序運(yùn)行后的輸出結(jié)果是A)abcdefg B)gfedcbaC)gbcdefaD)abedcfg有以下程序floatf1(floatn){returnn*n;}floatf2(float{return2*n;}main(){float(*p1)(float),(*p2)(float),(*t)(float),y1,y2;p1=f1;p2=f2;y1=p2(p1(2.0)t=p1;p1=p2;p2=y2=p2(p1(2.0));printf("%3.0f,%3.0f\n",y1,y2);}程序運(yùn)行后的輸出結(jié)果是A)8,16 B)8,8 C)16,16 D)4,8有以下程序inta=2;intf(intn){staticinta=3;intt=0;if(n%2){staticinta=4;t+=a++;}else{staticinta=5;t+=a++;}returnt+a++;}main(){ints=a,i;for(i=0;i<3;i++)s+=f(i);printf("%d\n",s);}程序運(yùn)行后的輸出結(jié)果是A)26B)28 C)29 D)24有以下程序#include<string.h>structSTU{intnum;floatTotalScore;};voidf(structSTUp){structSTUs[2]={{20044,550},{20045,537}};p.num=s[1].num;p.TotalScore=s[1].TotalScore;}main(){structSTUs[2]={{20041,703},{20042,580}};f(s[0]);printf("%d%3.0f\n",s[0].num,s[0].TotalScore);}程序運(yùn)行后的輸出結(jié)果是A)20045537 B)20044550 C)20042580 D)20041703有以下程序#include<string.h>structSTU{charname[10];intnum;};voidf(char*name,intnum){structSTUs[2]={{"SunDan",20044},{"Penghua",20045}};num=s[0].num;strcpy(name,s[0].name);}main(){structSTUs[2]={{"YangSan",20041},{"LiSiGuo",20042}},*p;p=&s[1];f(p->name,p->num);printf("%s%d\n",p->name,p->num);}程序運(yùn)行后的輸出結(jié)果是A)SunDan20042 B)SunDan20044C)LiSiGuo20042 D)YangSan20041有以下程序structSTU{charname[10];intnum;floatTotalScore;};voidf(structSTU*p){structSTUs[2]={{"SunDan",20044,550},{"Penghua",20045,537}};*q=s;++p;++q;*p=*q;}main(){structSTUs[3]={{"YangSan",20041,703},{"LiSiGuo",20042,580}};f(s);printf("%s%d%3.0f\n",s[1].name,s[1].num,s[1].TotalScore);}程序運(yùn)行后的輸出結(jié)果是A)SunDan20044550 B)Penghua20045537C)LiSiGuo20042580 D)SunDan20041703以下程序的功能是進(jìn)行位運(yùn)算main(){unsignedchara,b;a=7^3;b=~4&3;printf("%d%d\n",a,b);程序運(yùn)行后的輸出結(jié)果是A)43B)73 C)70 D)40有以下程序#include<stdio.h>main(){FILE*fp;inti,k,n;fp=fopen("data.dat","w+");for(i=1;i<6;i++){fprintf(fp,"%d",i);if(i%3==0)fprintf(fp,"\n");}rewind(fp);fscanf(fp,"%d%d",&k,&n);printf("%d%d\n",k,n);fclose(fp);}程序運(yùn)行后的輸出結(jié)果是A)00 B)12345 C)14 D)12二、填空題(每空2分,共40分)請(qǐng)將每一個(gè)空的正確答案寫(xiě)在答題卡【1】至【20】序號(hào)的橫線上,答在試卷上不得分?!?】?!?】復(fù)雜度。在進(jìn)行模塊測(cè)試時(shí),要為每個(gè)被測(cè)試的模塊另外設(shè)計(jì)兩類模塊:驅(qū)動(dòng)模塊和承接模塊(樁模塊。其中【3生的結(jié)果。一棵二叉樹(shù)第六層(根結(jié)點(diǎn)為第一層)的結(jié)點(diǎn)數(shù)最多為【4】個(gè)。【5】結(jié)構(gòu)。【6】。main(){intx=0210;printf("%X\n",x);}【7】。main(){inta=1,b=2,c=3;if(c=a)printf("%d\n",c);elseprintf("%d\n",b);}已有定義:double*pmalloc函數(shù)使p【8】?!?】。main(){charc;intn=100;floatf=10;doublex;x=f*=n/=(c=50);printf("%d(10)以下程序的功能是計(jì)算:s=1+12+123+1234+12345。請(qǐng)?zhí)羁?。main(){intt=0,s=0,i;for(i=1;i<=5;i++){t=i+【10】;s=s+t;}printf("s=%d\n",s);}AASCII65【11】。main(){chara,b;a='A'+'5'-'3';b=a+'6'-'2';printf("%d%c\n",a,b);}有以下程序intsub(intn){return(n/10+n%10);}main(){intx,y;scanf("%d",&x);y=sub(sub(sub(x)));printf("%d\n",y);}若運(yùn)行時(shí)輸入:1234<回車>,程序的輸出結(jié)果是【12】。sstrcat()的功能是實(shí)現(xiàn)字符串的連接,即將t所指字符串復(fù)制到sefgh,函數(shù)調(diào)用后sabcdefgh。請(qǐng)?zhí)羁铡?include<string.h>voidsstrcat(char*s,char*t){intn;n=strlen(s);while(*(s+n)=【13】){s++;t++;};}【14】。#include<string.h>char*ss(char*s){char*p,t;p=s+1;t=*s;while(*p){*(p-1)=*p;p++;}*(p-1)=t;returns;}main(){char*p,str[10]="abcdefgh";p=ss(str);printf("%s\n",p);}【15】。intf(inta[],intn){if(n>=1)returnf(a,n-1)+a[n-1];elsereturn0;}main(){intaa[5]={1,2,3,4,5},s;s=f(aa,5);printf("%d\n",s);}【16】。structNODE{intnum;structNODE*next;};main(){structNODEs[3]={{1,'\0'},{2,'\0'},{3,'\0'}};*p,*q,*r;intsum=0;s[0].next=s+1;s[1].next=s+2;s[2].next=s;p=s;q=p->next;r=q->next;sum+=q->next->num;sum+=r->next->next->num;printf("%d\n",sum);}以下程序的功能是輸出如下形式的方陣:1314151691011125 6 7 81 2 3 4請(qǐng)?zhí)羁?。main(){inti,j,x;for(j=4;j【17】;j--){for(i=1;i<=4;i++){x=(j-1)*4+【18】;printf("%4d",x);}printf("\n");}}rotateaN行Nb0a0b所指二維數(shù)組中其他數(shù)據(jù)不變。#defineN4voidrotate(inta[][N],intb[][N]){inti,j;for(i=0;i<N;i++){b[i][N-1]=【19】;【20】=a[N-1][i];}}第四章模擬試題全國(guó)計(jì)算機(jī)等級(jí)考試(二級(jí))C語(yǔ)言模擬題一公共基礎(chǔ)知識(shí)一、選擇題下列關(guān)于棧的敘述正確的 棧是非線性結(jié)構(gòu) 棧是一種樹(shù)狀結(jié)構(gòu)C)棧具有先進(jìn)先出的特征 D)棧具有后進(jìn)先出的特征結(jié)構(gòu)化程序設(shè)計(jì)所規(guī)定的三種基本控制結(jié)構(gòu) 輸入、處理、輸出 樹(shù)形、網(wǎng)形、環(huán)形C)順序、選擇、循環(huán) D)主程序、子程序、函數(shù)結(jié)構(gòu)化程序設(shè)計(jì)的一種基本方法是篩選法 遞歸法 C)歸納法 D)逐步求精法如果對(duì)一個(gè)關(guān)系實(shí)施了一種關(guān)系運(yùn)算后得到了一個(gè)新的關(guān)系,而且新的關(guān)系中屬性數(shù)少于原來(lái)關(guān)系中屬性個(gè)數(shù),這說(shuō)明所實(shí)施的運(yùn)算關(guān)系是: 選擇 投影 C)連接 D)二、填空題N個(gè)數(shù)進(jìn)行快速排序算法的平均時(shí)間復(fù)雜度是【1】在面向?qū)ο蠓椒▽W(xué)中,直接反映了用戶對(duì)目標(biāo)系統(tǒng)的要求的模型是【2】軟件測(cè)試方法中,黑盒測(cè)試個(gè)白盒測(cè)試法是常用的方法,其中黑盒測(cè)試法主要是用于測(cè)試【3】關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)中存儲(chǔ)與管理數(shù)據(jù)的基本形式是【4】C語(yǔ)言程序設(shè)計(jì)一、選擇題下程序的輸出結(jié)果是 main(){intn[3][3],i,j;for(i=0;i<3;i++)for(j=0;j<3;j++) for(i=0;i<2;i++)for(j=0;j<2;j++) n[i+1][j+1]+=n[i][j];printf("%d\n",n[i][j]);}14 B)0 C)6 D)值不確定指針s所指字符串的長(zhǎng) char*s="NameAddress";說(shuō)法不合法 B)19 C)18 D)15(3)C語(yǔ)言中最簡(jiǎn)單的數(shù)據(jù)類型包括整型、實(shí)型、邏輯型 整型、實(shí)型、字符型C)整型、字符型、邏輯型 D)整型、實(shí)型、邏輯型、字符型為表示關(guān)系x大于等于y大于等于應(yīng)使用C語(yǔ)言表達(dá) A)(x>=Y)&&(Y>=z)B)(x>=Y)AND(y>=z)C)(x>=Y>=z)D)(x>=Y)&(Y>=z)下列對(duì)C語(yǔ)言字符數(shù)組的描述中錯(cuò)誤的 字符數(shù)組可以存放字符串 字符數(shù)組中的字符串可以整體輸入、輸出C)可以在賦值語(yǔ)句中通過(guò)賦值運(yùn)算符字符數(shù)組整體賦值D)不可以用關(guān)系運(yùn)算對(duì)字符數(shù)組中的字符串進(jìn)行比較以下說(shuō)法中正確的 C語(yǔ)言程序總是從第一個(gè)定義的函數(shù)開(kāi)始執(zhí)行C函數(shù)中定義D)C語(yǔ)言程序中的main()函數(shù)必須放在程序的開(kāi)始部分以下程序段的輸出結(jié)果是 intx=3;do{printf("%3d",x-=2);}while(!(--x));A)1 B)30 C)1-2 D)死循環(huán)設(shè)有如下定義:char*aa[2]={"abcd","ABCD"};則以下說(shuō)法中正確的 aa數(shù)組元素的值分別是和"ABCD"aa是指針變量,它指向含有兩個(gè)數(shù)組元素的字符型一維數(shù)組aa4個(gè)字符的一維字符數(shù)組的首地址aa數(shù)組的兩個(gè)元素中各自存放了字符'a'和'A'的地址設(shè)有以下定義:inta[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};int(*prt)[3]=a,*p=a[0];則下列能夠正確表示數(shù)組元素a[1][2]的表達(dá)式是 A)*(*prt+1)[2]) B)*(*(p+5))C)(*prt+1)+2 D)*(*(a+1)+2)以下程序的輸出結(jié)果是 fut(int**s,intp[2][3]){**s=p[1][1];}main(){inta[2][3]={1,3,5,7,9,11},*P;p=(int*)malloc(sizeof(int));fut(&p,a);print("%",*p);}A)1 B)7 C)9 D)11二、填空題xint類型,請(qǐng)以最簡(jiǎn)單的形式寫(xiě)出與邏輯表達(dá)式!xc達(dá)式【1】下列程序的輸出結(jié)果是【2】#include<stdio.h>#include<string.h>main(){charb[]="ABCDEFG";char*chp=&b[7];while(--chp>&b[0])putchar(*chp);putchar(′′);}下列程序的輸出結(jié)果是【3】intast(intx,inty,int*cp,int*dp){*cp=x+y;*dp=x-y;}main(){inta,b,c,d;a=4;b=3;ast(a,b,&c,&d);print("%d%dn",c,d);}閱讀程序:{charstr1[]="howdoyoudo",str2[10];char*p1=str1,*p2=str2;scanf("%s",p2);printf("%s",p2);printf("%s",p1);}運(yùn)行上面的程序,輸入字符串HOWDOYOUDO則程序的輸出結(jié)果是【4】件中,用#作為結(jié)束輸入的標(biāo)志。請(qǐng)?zhí)羁铡?include<stdio.h>#include<string.h>main(){FILE*fp;charch,fname[10];printf("Inputthenameoffilegets(fname);gets(fname);if((fp=【5】)==NULL){printf("Cannotopen");exit(0);}printf("Enterdata");while((ch=getchar())!='#')fputc(【6】,fp);fclose(fp);}三、上機(jī)操作題改錯(cuò)題下列程序中,函數(shù)fun的功能是:先將字符串s中的字符按正序存放到t串中,然后將s中的字符按逆序連接到t串的后面。例如,當(dāng)s中的字符串為ABCDE時(shí),則t中的字符串應(yīng)為ABCDEEDCBA。請(qǐng)改正一下程序中的錯(cuò)誤,是它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。#include<stdio.h>#include<con

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論