全國(guó)計(jì)算機(jī)等級(jí)考試《二級(jí)C語(yǔ)言程序設(shè)計(jì)》試題(網(wǎng)友回憶版)一_第1頁(yè)
全國(guó)計(jì)算機(jī)等級(jí)考試《二級(jí)C語(yǔ)言程序設(shè)計(jì)》試題(網(wǎng)友回憶版)一_第2頁(yè)
全國(guó)計(jì)算機(jī)等級(jí)考試《二級(jí)C語(yǔ)言程序設(shè)計(jì)》試題(網(wǎng)友回憶版)一_第3頁(yè)
全國(guó)計(jì)算機(jī)等級(jí)考試《二級(jí)C語(yǔ)言程序設(shè)計(jì)》試題(網(wǎng)友回憶版)一_第4頁(yè)
全國(guó)計(jì)算機(jī)等級(jí)考試《二級(jí)C語(yǔ)言程序設(shè)計(jì)》試題(網(wǎng)友回憶版)一_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

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

文檔簡(jiǎn)介

全國(guó)計(jì)算機(jī)等級(jí)考試《二級(jí)C語(yǔ)言程序設(shè)計(jì)》試題(網(wǎng)友回憶版)一[單選題]1.下列敘述中正確的是()。A.所有數(shù)據(jù)結(jié)構(gòu)必須有根(江南博哥)結(jié)點(diǎn)B.所有數(shù)據(jù)結(jié)構(gòu)必須有終端結(jié)點(diǎn)(即葉子結(jié)點(diǎn))C.只有一個(gè)根結(jié)點(diǎn),且只有一個(gè)葉子結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)一定是線性結(jié)構(gòu)D.沒有根結(jié)點(diǎn)或沒有葉子結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)一定是非線性結(jié)構(gòu)參考答案:D參考解析:D項(xiàng)正確,線性結(jié)構(gòu)的特點(diǎn)是:①集合中必存在“第一個(gè)元素”且惟一;②集合中必存在“最后一個(gè)元素”且惟一;③除最后一個(gè)元素外,其他數(shù)據(jù)元素均有惟一的“后繼”;④除第一個(gè)元素外,其他數(shù)據(jù)元素均有惟一的“前驅(qū)”。所以沒有根結(jié)點(diǎn)或沒有葉子結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)一定是非線性結(jié)構(gòu)。AB兩項(xiàng)錯(cuò)誤,不是所有數(shù)據(jù)結(jié)構(gòu)都必須有根結(jié)點(diǎn)和葉子結(jié)點(diǎn);C項(xiàng)錯(cuò)誤,數(shù)據(jù)結(jié)構(gòu)中若有中間結(jié)點(diǎn)不滿足只有一個(gè)前件或者后件的條件,就不是線性結(jié)構(gòu)。答案選擇D選項(xiàng)。[單選題]2.以下敘述中錯(cuò)誤的是()。A.C語(yǔ)言中的每條可執(zhí)行語(yǔ)句和非執(zhí)行語(yǔ)句最終都將被轉(zhuǎn)換成二進(jìn)制的機(jī)器指令B.C程序經(jīng)過(guò)編譯、鏈接步驟之后才能形成一個(gè)真正可執(zhí)行的二進(jìn)制機(jī)器指令文件C.用C語(yǔ)言編寫的程序稱為源程序,它以ASCII代碼形式存放在一個(gè)文本文件中D.C語(yǔ)言源程序經(jīng)編譯后生成后綴為.obj的目標(biāo)程序參考答案:A參考解析:A項(xiàng)錯(cuò)誤,注釋語(yǔ)句不會(huì)被翻譯成二進(jìn)制的機(jī)器指令。C源程序經(jīng)過(guò)C編譯程序編譯之后生成后綴為.obj的二進(jìn)制文件(稱為目標(biāo)文件),然后由“鏈接程序”(Link)的軟件把.obj文件與各種庫(kù)函數(shù)連接起來(lái)生成一個(gè)后綴為.exe的可執(zhí)行文件。答案選擇A選項(xiàng)。[單選題]4.有以下程序段:charch;intk;ch='a';k=12;printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);已知字符a的ASCII碼十進(jìn)制值為97,則執(zhí)行上述程序段后輸出的結(jié)果是()。A.因變量類型與格式描述符的類型不匹配輸出無(wú)定值B.輸出項(xiàng)與格式描述符個(gè)數(shù)不符,輸出為零值或不定值C.a,97,12k=12D.a,97,k=12參考答案:D參考解析:字符變量的值是該字符的ASCII碼值,可以參與整型變量所允許的任何運(yùn)算?!癱h='a'”,%c表示以字符格式輸出ch的值,所以輸出為a;%d表示以十進(jìn)制代碼的形式輸出ch的值,為97;k沒有對(duì)應(yīng)的輸出格式,不輸出。在第二個(gè)語(yǔ)句中,首先輸出“k=”,然后以十進(jìn)制代碼輸出k的值,為12。答案選擇D選項(xiàng)。[單選題]5.下列敘述中正確的是()。A.棧是“先進(jìn)先出”的線性表B.隊(duì)列是“先進(jìn)后出”的線性表C.循環(huán)隊(duì)列是非線性結(jié)構(gòu)D.有序線性表既可以采用順序存儲(chǔ)結(jié)構(gòu),也可以采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)參考答案:D參考解析:有序的線性表既可采用順序存儲(chǔ)結(jié)構(gòu),也可以采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。A項(xiàng)錯(cuò)誤,棧是“先進(jìn)后出”的線性表;B項(xiàng)錯(cuò)誤,隊(duì)列是“先進(jìn)先出”的線性表;C項(xiàng)錯(cuò)誤,循環(huán)隊(duì)列是線性結(jié)構(gòu)的,有序的線性表既可采用順序存儲(chǔ)結(jié)構(gòu),也可采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。答案選擇D選項(xiàng)。[單選題]6.若要實(shí)現(xiàn)total=1+2+3+4+5求和,以下程序段錯(cuò)誤的是()。A.inti=1,total=1;while(i<5){total+=i;i+=1;}B.inti=1,total=0;while(i<=5){total+=i;i+=1;}C.inti=0,total=0;while(i<5){i+=1;total+=i;}D.inti=0,total=0;while(i<=5){total+=i;i+=1;}參考答案:A參考解析:A項(xiàng)執(zhí)行過(guò)程為:i=1,total=1,判斷while循環(huán)條件1<5成立,total=1+1,i=2;判斷循環(huán)條件執(zhí)行函數(shù)體,直到i=4,total=1+1+2+3+4,i=5;i=5循環(huán)條件不成立,退出循環(huán),A項(xiàng)不能實(shí)現(xiàn)題目要求,錯(cuò)誤。B項(xiàng)執(zhí)行過(guò)程:i=1,total=0,1<=5成立,total=0+1=1,i=2;直到i=5,total=1+2+3+4+5,i=6;i=6條件不成立,退出循環(huán),程序正確。C項(xiàng)執(zhí)行過(guò)程:i=0,total=0,0<5成立,i=1,total=1;直到i=5,total=1+2+3+4+5;i=5條件不成立,退出循環(huán),程序正確。D項(xiàng)執(zhí)行過(guò)程:i=0,total=0,0<=5成立,total=0,i=1;直到i=5,total=1+2+3+4+5,i=6;i=6條件不成立,退出循環(huán),程序正確。答案選擇A選項(xiàng)。[單選題]7.下列不屬于軟件工程3個(gè)要素的是()。A.工具B.過(guò)程C.方法D.環(huán)境參考答案:D參考解析:軟件工程是指用工程化的原則和方法來(lái)構(gòu)建和維護(hù)軟件,其要素包括:①方法,用于完成軟件工程項(xiàng)目的技術(shù)手段;②工具,用于支持軟件的開發(fā)、管理、文檔生成;③過(guò)程,用于支持軟件開發(fā)的各個(gè)環(huán)節(jié)的控制、管理。答案選擇D選項(xiàng)。[單選題]8.下面不屬于黑盒測(cè)試方法的是()。A.邊界值分析法B.基本路徑測(cè)試C.等價(jià)類劃分法D.錯(cuò)誤推測(cè)法參考答案:B參考解析:常見的黑盒測(cè)試方法有:等價(jià)類劃分法、邊界值分析法、錯(cuò)誤推測(cè)法以及因果圖等;常見的白盒測(cè)試方法有:邏輯覆蓋測(cè)試和基本路徑測(cè)試。答案選擇B選項(xiàng)。[單選題]9.有三個(gè)關(guān)系R、S和T如下:則下列操作中正確的是()。A.T=R∩SB.T=R∪SC.T=R×SD.T=R-S參考答案:D參考解析:圖中關(guān)系R比關(guān)系S多一行T中的元組,故由關(guān)系R和S得到關(guān)系T的操作是差。答案選擇D選項(xiàng)。[單選題]10.下列選項(xiàng)中,不屬于數(shù)據(jù)管理員(DBA)職責(zé)的是()。A.數(shù)據(jù)庫(kù)維護(hù)B.數(shù)據(jù)庫(kù)設(shè)計(jì)C.改善系統(tǒng)性能,提高系統(tǒng)效率D.數(shù)據(jù)類型轉(zhuǎn)換參考答案:D參考解析:數(shù)據(jù)庫(kù)管理員對(duì)數(shù)據(jù)庫(kù)進(jìn)行規(guī)劃、設(shè)計(jì)、維護(hù)、監(jiān)視等,其主要工作有:①數(shù)據(jù)庫(kù)設(shè)計(jì),主要是對(duì)數(shù)據(jù)模式進(jìn)行設(shè)計(jì);②數(shù)據(jù)庫(kù)維護(hù),對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)安全性、完整性、并發(fā)控制及系統(tǒng)恢復(fù)、數(shù)據(jù)定期轉(zhuǎn)儲(chǔ)等進(jìn)行實(shí)施與維護(hù);③改善系統(tǒng)性能,不斷調(diào)整內(nèi)部結(jié)構(gòu),提高系統(tǒng)效率。答案選擇D選項(xiàng)。[單選題]11.有以下程序#includemain(){inta=0,b=0;/*給a賦值a=10;給b賦值b=20*/printf("a+b=%d\n",a+b);/*輸出計(jì)算結(jié)果*/}程序運(yùn)行后的輸出結(jié)果是()。A.a+b=0B.a+b=30C.a+b=10D.出錯(cuò)參考答案:A參考解析:注釋/*和*/之間的代碼不參與編譯,所以a、b的值仍為0。答案選擇A選項(xiàng)。[單選題]12.有以下程序段#includemain(){inta,b,c;a=10;b=50;c=30;if(a>b)a=b,b=c;c=a;printf("a=%db=%dc=%d\n",a,b,c);}程序的輸出結(jié)果是()。A.a=10b=50c=30B.a=10b=50c=10C.a=10b=30c=10D.a=50b=30c=50參考答案:B參考解析:C語(yǔ)言中使用分號(hào)來(lái)作為語(yǔ)句的結(jié)束,所以a=b,b=c;是一條含有逗號(hào)運(yùn)算符的語(yǔ)句,是if語(yǔ)句的執(zhí)行體。因?yàn)轭}中a[單選題]13.下列二叉樹描述中,正確的是()。A.任何一棵二叉樹必須有一個(gè)度為2的結(jié)點(diǎn)B.二叉樹的度可以小于2C.非空二叉樹有0個(gè)或1個(gè)根結(jié)點(diǎn)D.至少有2個(gè)根結(jié)點(diǎn)參考答案:B參考解析:空樹度為0,斜二叉樹度為1,故A項(xiàng)錯(cuò)誤,B項(xiàng)正確。空二叉樹沒有結(jié)點(diǎn),非空二叉樹的定義中要求有且只有一個(gè)結(jié)點(diǎn)是該樹的根結(jié)點(diǎn),故C和D項(xiàng)錯(cuò)誤。答案選擇B選項(xiàng)。[單選題]14.下列敘述中,不符合良好程序設(shè)計(jì)風(fēng)格要求的是()。A.程序的效率第一,清晰第二B.程序的可讀性好C.程序中要有必要的注釋D.輸入數(shù)據(jù)前要有提示信息參考答案:A參考解析:“清晰第一,效率第二”是當(dāng)今主導(dǎo)的程序設(shè)計(jì)風(fēng)格。對(duì)程序的要求不僅是能夠運(yùn)行正常,還要便于調(diào)試和維護(hù),所以程序要具有良好的可讀性,語(yǔ)句結(jié)構(gòu)應(yīng)該簡(jiǎn)單直接,這有利于程序的開發(fā)與維護(hù)。答案選擇A選項(xiàng)。[單選題]15.有以下程序#includemain(){intx,y,z;x=y=1;z=x++,y++,++y;printf("%d,%d,%d\n",x,y,z);}程序運(yùn)行后的輸出結(jié)果是()。A.2,3,1B.2,3,2C.2,3,3D.2,2,1參考答案:A參考解析:注意區(qū)分,z=x++是先將x的值賦給z,在令x自增;z=++x是先將x自增,再將自增后的值賦給z;而無(wú)論是++x還是x++,都會(huì)完成x自增的運(yùn)算。對(duì)于表達(dá)式“z=x++,y++,++y;”,因?yàn)橘x值運(yùn)算符的優(yōu)先級(jí)高于逗號(hào)運(yùn)算符的優(yōu)先級(jí),所以可以將上式改成“(z=x++),(y++),(++y)”。然后從左向右先計(jì)算表達(dá)式z=x++,后綴自增運(yùn)算先進(jìn)行其他運(yùn)算,再執(zhí)行自增運(yùn)算,所以z的值為1,x的值為2,再計(jì)算逗號(hào)表達(dá)式第二個(gè)表達(dá)式y(tǒng)++,此時(shí)y的值為1,y++的值為2,最后計(jì)算第三個(gè)表達(dá)式++y,y的值為3。答案選擇A選項(xiàng)。[單選題]16.設(shè)二叉樹如下:則后序序列為()。A.ABDEGCFHB.DBGEAFHCC.DGEBHFCAD.ABCDEFGH參考答案:C參考解析:后序遍歷,先訪問(wèn)左子樹,再訪問(wèn)右子樹,最后訪問(wèn)根結(jié)點(diǎn)。法一:本題中,樹不為空,所以先后序遍歷左子樹,得DGEB,再后序遍歷右子樹,得HFC,最后訪問(wèn)根結(jié)點(diǎn)。所以該二叉樹的后序序列為DGEBHFCA。法二:由后序遍歷的過(guò)程知,樹的根結(jié)點(diǎn)一定是最后遍歷到,即A結(jié)點(diǎn)一定在遍歷序列的最后,答案選擇C選項(xiàng)。[單選題]17.以下敘述中正確的是()。A.break語(yǔ)句不能用于提前結(jié)束for語(yǔ)句的本層循環(huán)B.使用break語(yǔ)句可以使流程跳出switch語(yǔ)句體C.continue語(yǔ)句使得整個(gè)循環(huán)終止D.在for語(yǔ)句中,continue與break的效果是一樣的,可以互換參考答案:B參考解析:B項(xiàng)正確,break語(yǔ)句可以跳出switch語(yǔ)句和循環(huán)。A項(xiàng)錯(cuò)誤,break語(yǔ)句在for循環(huán)內(nèi)部的作用是跳出循環(huán);C項(xiàng)錯(cuò)誤,continue語(yǔ)句的作用是跳過(guò)本次循環(huán)體中余下尚未執(zhí)行的語(yǔ)句,立刻進(jìn)行下一次的循環(huán)條件判定,即僅結(jié)束本次循環(huán),并沒有使整個(gè)循環(huán)終止;D項(xiàng)錯(cuò)誤,continue和break的效果完全不同。答案選擇B選項(xiàng)。[單選題]18.有以下程序:#includemain(){inta=1,b=0;if(--a)b++;elseif(a==0)b+=2;elseb+=3;printf("%d\n",b);}程序運(yùn)行后的輸出結(jié)果是()。A.0B.1C.2D.3參考答案:C參考解析:“++”和“--”運(yùn)算,當(dāng)以前綴形式出現(xiàn)時(shí),則先進(jìn)行加一或減一操作,再進(jìn)行其他運(yùn)算,當(dāng)以后綴形式出現(xiàn)時(shí),則先進(jìn)行其他運(yùn)算,再進(jìn)行加一或減一操作。a初始定義為1,b為0,執(zhí)行--a,a的值變?yōu)?,--a的值也為0,即if判斷為假,執(zhí)行b+=2,輸出b的值為2。答案選擇C選項(xiàng)。[單選題]19.待排序的關(guān)鍵碼序列為(15,20,9,30,67,65,45,90),要按關(guān)鍵碼值遞增的順序排序,采取簡(jiǎn)單選擇排序法,第一趟排序后關(guān)鍵碼15被放到第()個(gè)位置。A.2B.3C.4D.5參考答案:B參考解析:簡(jiǎn)單選擇排序的算法可以描述為:將整個(gè)待排序序列分為有序和無(wú)序兩部分,初始時(shí)有序部分為空;每一趟排序時(shí)掃描無(wú)序序列,找到最小的元素,將它與無(wú)序序列的首元素交換位置,直到無(wú)序序列為空。所以第一趟排序后,將選出的最小元素9與15交換,15被放在第3個(gè)位置。答案選擇B選項(xiàng)。[單選題]20.下列關(guān)系表達(dá)式中,結(jié)果為“假”的是()。A.(3+4)>6B.(3!=4)>2C.3<=4‖3D.(3<4)==1參考答案:B參考解析:A項(xiàng),先執(zhí)行3+4=7,7>6,結(jié)果為真;B項(xiàng),先執(zhí)行3!=4為真,即為1,1>2結(jié)果為假;C項(xiàng),先執(zhí)行3<=4結(jié)果為真,即1,再邏輯或運(yùn)算只要左邊值為1,就不在執(zhí)行右邊運(yùn)算,結(jié)果為真;D項(xiàng),先執(zhí)行3<4結(jié)果為真,即為1,再執(zhí)行1==1,結(jié)果為真。答案選擇B選項(xiàng)。[單選題]21.有如下程序:#includemain(){inti;for(i=0;i<5;i++)putchar('9'-i);printf("\n");}程序運(yùn)行后的輸出結(jié)果是()。A.54321B.98765C.'9''8''7''6''5'D.'43210'參考答案:B參考解析:本題執(zhí)行過(guò)程為:i=0,輸出字符9,在i<5的情況下,依次輸出字符8、7、6、5。在i=5時(shí),退出for循環(huán)。最后顯示在命令窗口結(jié)果為98765。答案選擇B選項(xiàng)。[單選題]22.下列敘述中正確的是()。A.可以用關(guān)系運(yùn)算符比較字符串的大小B.空字符串不占用內(nèi)存,其內(nèi)存空間大小是0C.兩個(gè)連續(xù)的單引號(hào)是合法的字符常量D.兩個(gè)連續(xù)的雙引號(hào)是合法的字符串常量參考答案:D參考解析:A項(xiàng)錯(cuò)誤,關(guān)系運(yùn)算符不能比較字符串大小,可以用函數(shù)庫(kù)中的字符串比較函數(shù)來(lái)比較字符串的大?。籅項(xiàng)錯(cuò)誤,空字符串占用一個(gè)字節(jié)的內(nèi)存;C項(xiàng)錯(cuò)誤,字符常量是用單引號(hào)把一個(gè)字符括起來(lái);D項(xiàng)正確,兩個(gè)連續(xù)的雙引號(hào)是一個(gè)字符串常量,稱為空串。答案選擇D選項(xiàng)。[單選題]23.以下關(guān)于C語(yǔ)言函數(shù)參數(shù)傳遞方式的敘述正確的是()。A.數(shù)據(jù)只能從實(shí)參單向傳遞給形參B.數(shù)據(jù)可以在實(shí)參和形參之間雙向傳遞C.數(shù)據(jù)只能從形參單向傳遞給實(shí)參D.C語(yǔ)言的函數(shù),參數(shù)既可以從實(shí)參單向傳遞給形參,也可以在實(shí)參和形參之間雙向傳遞,可視情況選擇使用參考答案:A參考解析:數(shù)據(jù)只能由實(shí)參單向傳遞給形參稱為“值傳遞”,而不能由形參傳給實(shí)參,A項(xiàng)正確,B、C、D錯(cuò)誤;數(shù)組名、指針等作參數(shù),實(shí)參傳遞給形參的是地址值,這樣形參和實(shí)參就指向同一段內(nèi)存單元,在函數(shù)體內(nèi)對(duì)形參數(shù)據(jù)的改變也將影響到實(shí)參。答案選擇A選項(xiàng)。[單選題]24.以下敘述中錯(cuò)誤的是()。A.當(dāng)在程序的開頭包含頭文件sdivio.h時(shí),可以給指針變量賦NULLB.函數(shù)可以返回地址值C.改變函數(shù)形參的值,不會(huì)改變對(duì)應(yīng)實(shí)參的值D.可以給指針變量賦一個(gè)整數(shù)作為地址值參考答案:D參考解析:A項(xiàng)正確,NULL是在頭文件stdio.h中定義的符號(hào)常量;B項(xiàng)正確,函數(shù)的返回值可以是地址,即指針;C項(xiàng)正確,函數(shù)調(diào)用中形參值的變化不會(huì)傳遞給實(shí)參;D項(xiàng)錯(cuò)誤,不能將一個(gè)整數(shù)直接賦給指針變量作為地址,只能用取地址運(yùn)算符“&”把該整型變量的地址賦值給該指針變量。答案選擇D選項(xiàng)。[單選題]25.有以下程序(說(shuō)明:字母A的ASCII碼值是65):#includevoidfun(char*s){while(*s){if(*s%2)printf("%c",*s);s++;}}main(){chara[]="BYTE";fun(a);printf("\n");}程序運(yùn)行后的輸出結(jié)果是()。A.BYB.BTC.YTD.YE參考答案:D參考解析:函數(shù)只會(huì)輸出ASCII碼值為奇數(shù)的字母,執(zhí)行fun(a)時(shí),依次取出a[]中的字母,當(dāng)取第一個(gè)字母B時(shí),因?yàn)锽的ASCII碼值為66,所以不會(huì)輸出B,字母Y的ASCII碼值為89,字母T的ASCII碼值為84,字母E的ASCII碼值為69,所以最后輸出字母YE。答案選擇D選項(xiàng)。[單選題]26.有以下程序:#includemain(){…while(getchar()!='\n');…}以下敘述中正確的是()。A.此while語(yǔ)句將無(wú)限循環(huán)B.getchar()不可以出現(xiàn)在while語(yǔ)句的條件表達(dá)式中C.當(dāng)執(zhí)行此while語(yǔ)句時(shí),只有按回車鍵程序才能繼續(xù)執(zhí)行D.當(dāng)執(zhí)行此while語(yǔ)句時(shí),按任意鍵程序就能繼續(xù)執(zhí)行參考答案:C參考解析:本題中while循環(huán)條件為getchar()!='\n',表示只要不輸入回車鍵,getchar()!='\n'語(yǔ)句一直為真,則while循環(huán)會(huì)出現(xiàn)空循環(huán),當(dāng)按下回車鍵后跳出while循環(huán)執(zhí)行下一條語(yǔ)句。答案選擇C選項(xiàng)。[單選題]27.有以下程序:#includevoidfun(int*p,int*q)main(){intm=1,n=2,*r=&m;f(r,&n);printf("%d,%d",m,n);}voidf(int*p,int*q){p=p+1;*q=*q+1;}程序運(yùn)行后的輸出結(jié)果是()。A.1,3B.2,3C.1,4D.1,2參考答案:A參考解析:語(yǔ)句p=p+1;只改變指針p的地址,與p的內(nèi)容無(wú)關(guān),所以m值沒有改變,而語(yǔ)句*q=*q+1;是改變?cè)撝羔標(biāo)傅刂分械膬?nèi)容,所以n變?yōu)?,m不變,仍為1,答案選擇A選項(xiàng)。[單選題]28.以下函數(shù)按每行8個(gè)輸出數(shù)組中的數(shù)據(jù):voidfun(int*w,intn){inti;for(i=0;i{______printf("%d",w[i]);}printf("\n");}下劃線處應(yīng)填入的語(yǔ)句是()。A.if(i/8==0)printf("\n");B.if(i/8==0)continue;C.if(i%8==0)printf("\n");D.if(i%8==0)continue;參考答案:C參考解析:每行輸出8個(gè)數(shù)組數(shù)據(jù)后輸入一個(gè)換行,所以應(yīng)該采取對(duì)8取余的方法,余數(shù)循環(huán)一次便換行一次,所以語(yǔ)句為if(i%8==0)printf("\n");答案選擇C選項(xiàng)。[單選題]29.以下敘述中正確的是()。A.函數(shù)的形參類型不能是指針類型B.函數(shù)的類型不能是指針類型C.設(shè)有指針變量為double*p,則p+1將指針p移動(dòng)8個(gè)字節(jié)D.基類型不同的指針變量可以相互混用參考答案:C參考解析:C項(xiàng)正確,一般情況下,double類型的變量長(zhǎng)度為8個(gè)字節(jié),對(duì)指針進(jìn)行加、減運(yùn)算時(shí),數(shù)字“1”指1個(gè)存儲(chǔ)單元長(zhǎng)度。A項(xiàng)錯(cuò)誤,函數(shù)的形參可以是數(shù)值類型,也可以是指針類型;B項(xiàng)錯(cuò)誤,C語(yǔ)言中有指向函數(shù)的指針,稱為函數(shù)指針;D項(xiàng)錯(cuò)誤,int類型的指針只能指向int,不能指向double,基類型不同的指針變量不能混用。答案選擇C選項(xiàng)。[單選題]30.設(shè)有以下定義:chars1[]="0123";chars2[]={'0','1','2','3'};則以下敘述正確的是()。A.數(shù)組s1的長(zhǎng)度小于s2的長(zhǎng)度B.數(shù)組s1和s2的長(zhǎng)度相同C.數(shù)組s1的長(zhǎng)度大于s2的長(zhǎng)度D.數(shù)組s1和s2完全等價(jià)參考答案:C參考解析:字符數(shù)組s1賦值字符串"0123",字符串中字符依次放入數(shù)組中,在最后一個(gè)字符后要添加一個(gè)結(jié)束字符'\0',數(shù)組s1長(zhǎng)度為5。數(shù)組s2只需要4個(gè)單元即可放下所有初始化值,故數(shù)組長(zhǎng)度為4。所以數(shù)組s1的長(zhǎng)度大于s2的長(zhǎng)度,C項(xiàng)正確,AB錯(cuò)誤。兩個(gè)數(shù)組等價(jià)是指兩個(gè)數(shù)組長(zhǎng)度和類型以及對(duì)應(yīng)每個(gè)元素值均相同,所以s1和s2不是完全等價(jià),D項(xiàng)錯(cuò)誤。答案選擇C選項(xiàng)。[單選題]31.有以下程序(sdivcpy為字符串復(fù)制函數(shù),sdivcat為字符串連接函數(shù)):#include

#include

main(){char

a[10]

=

"abc",b[10]

=

"012",c[10]

=

"xyz";sdivcpy(a+1,b+2);puts(sdivcat(a,c+1));}程序運(yùn)行后的輸出結(jié)果是()。A.a12xyzB.12yzC.a2yzD.bc2yz參考答案:C參考解析:先執(zhí)行strcpy,將b數(shù)組中第2個(gè)及之后位置上的字符復(fù)制到a數(shù)組中第1個(gè)及之后的位置上的字符位置,即此時(shí)數(shù)組a中字符為a2,再執(zhí)行strcat連接函數(shù),將a中字符與c數(shù)組中第2個(gè)及之后位置上的字符連接,即為a2yz。注意,數(shù)組下標(biāo)從0開始。答案選擇C選項(xiàng)。[單選題]32.以下敘述中正確的是()。A.簡(jiǎn)單遞歸不需要明確的結(jié)束遞歸的條件B.任何情況下都不能用函數(shù)名作為實(shí)參C.函數(shù)的遞歸調(diào)用不需要額外開銷,所以效率很高D.函數(shù)既可以直接調(diào)用自己,也可以間接調(diào)用自己參考答案:D參考解析:D項(xiàng)正確,C語(yǔ)言中的函數(shù)可以直接或間接地自己調(diào)用自己,前者稱簡(jiǎn)單遞歸,后者稱間接遞歸。A項(xiàng)錯(cuò)誤,遞歸必定要有一個(gè)明確的結(jié)束遞歸的條件;B項(xiàng)錯(cuò)誤,遞歸就是把函數(shù)名作為實(shí)參的一種特殊情況;C項(xiàng)錯(cuò)誤,函數(shù)的遞歸調(diào)用過(guò)程中,系統(tǒng)要為每一層調(diào)用中的變量開辟存儲(chǔ)單元,記住每一層調(diào)用后的返回點(diǎn),要增加許多額外的開銷,通常會(huì)降低程序的運(yùn)行效率。答案選擇D選項(xiàng)。[單選題]33.有以下函數(shù):#includevoidfunc(intn){inti;for(i=0;i<=n;i++)printf("*");printf("#");}main(){func(3);printf("????");func(4);printf("\n");}程序運(yùn)行后的輸出結(jié)果是()。A.****#????***#B.***#????*****#C.**#????*****#D.****#????*****#參考答案:D參考解析:從main函數(shù)開始,執(zhí)行func(3)函數(shù),for循環(huán)執(zhí)行4次,連續(xù)輸出四個(gè)“*”,然后輸出一個(gè)“#”;輸出“????”;再次調(diào)用func(4),for循環(huán)執(zhí)行5次,連續(xù)輸出五個(gè)“*”,然后輸出一個(gè)“#”;最后輸出換行符。答案選擇D選項(xiàng)。[單選題]34.有以下程序:#include

int

b=2;int

fun(int

*k){b=*k+b;return(b);}main(){int

a[10]={1,2,3,4,5,6,7,8},i;for(i=2;i<4;i++){b=fun(&a[i])+b;printf("%d",b);}printf("\n");}程序運(yùn)行后的輸出結(jié)果是()。A.1012B.810C.1028D.1016參考答案:C參考解析:因?yàn)閕nt是全局變量,所以它的值在整個(gè)程序結(jié)束時(shí)才會(huì)消失。for循環(huán)第一次i=2,a[i]=3,所以fun(&a[i])=3+2=5,這時(shí)b為5,所以b=fun(&a[i])+b=5+5=10。第二次循環(huán)時(shí),b=10,然后fun(&a[i]),代入a[i]=4,這時(shí)fun(&a[i])=10+4=14,所以b=fun(&a[i])+b=14+14=28。答案選擇C選項(xiàng)。[單選題]35.以下敘述中正確的是()。A.在C語(yǔ)言中,預(yù)處理命令行都以“#”開頭B.預(yù)處理命令行必須位于C源程序的起始位置C.#include必須放在C程序的開頭D.C語(yǔ)言的預(yù)處理不能實(shí)現(xiàn)宏定義和條件編譯的功能參考答案:A參考解析:“編譯預(yù)處理”就是在C編譯程序?qū)源程序進(jìn)行編譯前,由編譯預(yù)處理程序?qū)@些編譯預(yù)處理命令行進(jìn)行處理的過(guò)程。A項(xiàng)正確,在C語(yǔ)言中,凡是以“#”號(hào)開頭的行,都稱為“編譯預(yù)處理”命令行。B項(xiàng)錯(cuò)誤,預(yù)處理命令行可以出現(xiàn)在程序的任何一行的開始部位,其作用一直持續(xù)到源文件的末尾;C項(xiàng)錯(cuò)誤,#include可以出現(xiàn)在程序的任意一行的開始部位;D項(xiàng)錯(cuò)誤,預(yù)處理可以實(shí)現(xiàn)宏定義、條件編譯和文件包含。答案選擇A選項(xiàng)。[單選題]36.有以下程序:#include

main(){char

a,b,c,d;scanf("%c%c",&a,&b);c=getchar();d=getchar();printf("%c%c%c%c\n",a,b,c,d);}當(dāng)執(zhí)行程序時(shí),按下列方式輸入數(shù)據(jù)(從第一列開始,代表回車,注意:回車是一個(gè)字符)1234則輸出結(jié)果是()。A.1234B.12C.123D.1234參考答案:C參考解析:scanf()函數(shù)的一般調(diào)用形式為:scanf(格式控制,輸入地址列表);。其中,格式控制是用雙引號(hào)括起來(lái)的字符串,包括格式字符和普通字符,格式是由“%”和格式字符組成。getchar()函數(shù)的功能是從標(biāo)準(zhǔn)輸入設(shè)備上讀入一個(gè)字符。根據(jù)程序中的格式控制可知,接收輸入時(shí)分別把1賦給了a,2賦給了b,然后getchar()函數(shù)提取一個(gè)換行符賦給c,再提取一個(gè)字符3賦給了d。所以程序的輸出結(jié)果為:123。答案選擇C選項(xiàng)。[單選題]37.在C語(yǔ)言中,只有在使用時(shí)才占用內(nèi)存單元的變量,其存儲(chǔ)類型是()。A.auto和registerB.extern和registerC.auto和staticD.static和register參考答案:A參考解析:C語(yǔ)言中,動(dòng)態(tài)存儲(chǔ)區(qū)域中存放的變量在使用時(shí)才分配內(nèi)存空間。auto變量的存儲(chǔ)單元是分配在內(nèi)存的動(dòng)態(tài)存儲(chǔ)區(qū)中,每當(dāng)進(jìn)入函數(shù)體時(shí)自動(dòng)分配存儲(chǔ)單元。register變量也是自動(dòng)類變量。static說(shuō)明的變量為靜態(tài)變量,靜態(tài)變量在內(nèi)存的靜態(tài)存儲(chǔ)中占據(jù)著永久的存儲(chǔ)單元,直至程序運(yùn)行結(jié)束。extern說(shuō)明的變量為外部變量,屬于全局變量,全局變量在整個(gè)程序運(yùn)行期間都占用內(nèi)存空間。答案選擇A選項(xiàng)。[單選題]38.以下程序:#includevoidfun(intx){if(x/2>1)fun(x/2);printf("%d",x);}main(){fun(7);printf("\n");}程序運(yùn)行后的結(jié)果是()。A.137B.731C.73D.37參考答案:D參考解析:函數(shù)fun是遞歸函數(shù),遞歸終止條件是x小于等于3,當(dāng)大于3時(shí)遞歸調(diào)用fun(x/2)。第一次循環(huán)x/2=3,調(diào)用fun(3),x/2=1,跳出if循環(huán),執(zhí)行輸出x=3,然后回到第一次循環(huán),執(zhí)行if循環(huán)的語(yǔ)句,輸出x=7。答案選擇D選項(xiàng)。[單選題]39.以下結(jié)構(gòu)體類型說(shuō)明和變量定義中正確的是()。A.typedefsdivuct{intn;charc;}REC;RECt1,t2;B.sdivuctREC;{intn;charc;};RECt1,t2;C.typedefsdivuctREC:{intn=0;charc='A';}t1,t2;RECt1,t2;D.sdivuct{intn;charc;}REC;參考答案:A參考解析:A項(xiàng),用typedef定義結(jié)構(gòu)體類型名REC后,可以用REC定義變量。B項(xiàng),“structREC;”后面不應(yīng)加分號(hào);C項(xiàng),沒有這樣的書寫形式;D項(xiàng),REC定義的是一個(gè)變量,不是結(jié)構(gòu)體類型,因此不能用來(lái)定義結(jié)構(gòu)體變量。答案選擇A選項(xiàng)。[單選題]40.以下敘述正確的是()。A.在C語(yǔ)言中調(diào)用fopen函數(shù)就可把程序中要讀、寫的文件與磁盤上實(shí)際的數(shù)據(jù)文件聯(lián)系起來(lái)B.fopen函數(shù)的調(diào)用形式為:fopen(文件名)C.fopen函數(shù)的返回值為NULL時(shí),則成功打開指定的文件D.fopen函數(shù)的返回值必須賦給一個(gè)任意類型的指針變量參考答案:A參考解析:A項(xiàng)正確,C語(yǔ)言中打開一個(gè)文件通過(guò)系統(tǒng)函數(shù)fopen實(shí)現(xiàn),通過(guò)這個(gè)函數(shù)把程序中要讀、寫的文件與磁盤上實(shí)際的數(shù)據(jù)文件聯(lián)系起來(lái);B項(xiàng)錯(cuò)誤,函數(shù)調(diào)用中缺少參數(shù)“操作方法”,其調(diào)用的一般形式為:文件指針名=fopen(文件名,使用文件方式);;C項(xiàng)錯(cuò)誤,fopen函數(shù)返回一個(gè)指向指定文件的文件指針,如果不能實(shí)現(xiàn)打開指定文件的操作,則返回一個(gè)空指針NULL;D項(xiàng)錯(cuò)誤,fopen函數(shù)的返回值必須賦給一個(gè)文件類型的指針變量。答案選擇A選項(xiàng)。[問(wèn)答題]1.請(qǐng)補(bǔ)充fun函數(shù),該函數(shù)的功能是:計(jì)算N×N維矩陣元素的方差,結(jié)果由函數(shù)返回。維數(shù)在主函數(shù)中輸入。例如:的計(jì)算結(jié)果是14.414。求方差的公式為:其中注意:請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的橫線上填入所編寫的若干表達(dá)式或語(yǔ)句。/**********code.c**********/#include#include#defineN20/**********found**********/doublefun(①______,intn){inti,j;doubles=0.0;doublef=0.0;doubleaver=0.0;doublesd=0.0;for(i=0;ifor(j=0;js+=a[i][j];/**********found**********/aver=②______;for(i=0;ifor(j=0;jf+=(a[i][j]-aver)*(a[i][j]-aver);f/=(n*n);/**********found**********/sd=③______;returnsd;}main(){inta[N][N];intn;inti,j;doubles;printf("*****Inputthedimensionofarrayn******\n");scanf("%d",&n);printf("*****Thearray*****\n");for(i=0;i{for(j=0;j{a[i][j]=rand()%50;while(a[i][j]==0)a[i][j]=rand()%60;printf("%4d",a[i][j]);}printf("\n\n");}s=fun(a,n);printf("*****THERESULT*****\n");printf("%4.3f\n",s);}參考答案:①inta[][N]②s/(n*n)③sqrt(f)參考解析:根據(jù)題目中的方差公式,先要計(jì)算矩陣元素的平均值,再求矩陣元素與平均值差的平方的平均值,最后調(diào)用庫(kù)函數(shù)求方差。填空1:根據(jù)函數(shù)中各變量的使用情況及實(shí)參的類型,這里應(yīng)該是對(duì)二維數(shù)組a的定義,因?yàn)槎S數(shù)組做形參,可以省略第一維的長(zhǎng)度,但不能省略第二維的長(zhǎng)度,所以此處應(yīng)填inta[][N]。填空2:這里求矩陣元素的平均值,注意元素的個(gè)數(shù)應(yīng)該是n*n。填空3:此處應(yīng)該調(diào)用庫(kù)函數(shù)sqrt()求平方根。[問(wèn)答題]2.請(qǐng)根據(jù)以下各小題的要求設(shè)計(jì)C應(yīng)用程序(包括界面和代碼)。下列給定程序中,函數(shù)fun()的功能是:將n個(gè)無(wú)序整數(shù)從小到大排序。請(qǐng)改正程序指定部位的錯(cuò)誤,使它能得到正確結(jié)果。注意:不要改動(dòng)函數(shù)main(),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。/**********code.c**********/#include

void

fun(int

n,

int

*a){int

i,j,p,t;for(j=0;j<n-1;j++){p=j;/**********found**********/for(i=j+1;i<n-1;i++)if(a[p]>a[i])/**********found**********/t=i;if(p!=j){t=a

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論