




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(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.下列關(guān)于C語(yǔ)言文件的敘述中正確的是()。A.文件(江南博哥)由一系列數(shù)據(jù)依次排列組成,只能構(gòu)成二進(jìn)制文件B.文件由結(jié)構(gòu)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件C.文件由數(shù)據(jù)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件D.文件由字符序列組成,其類(lèi)型只能是文本文件參考答案:C參考解析:C語(yǔ)言將文件看作是一個(gè)字符(字節(jié))的序列,即由一個(gè)一個(gè)字符(字節(jié))數(shù)據(jù)順序組成。根據(jù)數(shù)據(jù)的組成形式,可將文件分為兩種:①ASCII文件,又稱(chēng)文本(text)文件,它的每一個(gè)字節(jié)可放一個(gè)ASCII碼,代表一個(gè)字符;②二進(jìn)制文件,是把內(nèi)存中的數(shù)據(jù)按其在內(nèi)存中的存儲(chǔ)形式原樣輸出到磁盤(pán)上存放。所以C文件就是一個(gè)字節(jié)流或一個(gè)二進(jìn)制流。答案選擇C選項(xiàng)。[單選題]2.有以下程序:#includemain(){intm=1,n=2,*p=&m,*q=&n,*r;r=p;p=q;q=r;printf("%d,%d,%d,%d\n",m,n,*p,*q);}程序運(yùn)行后的輸出結(jié)果是()。A.1,2,1,2B.1,2,2,1C.2,1,2,1D.2,1,1,2參考答案:B參考解析:m和n的值不變,分別是1,2;指針*p和*q交換了指向的位置,即*p=&n,*q=&m,分別為2,1。答案選擇B選項(xiàng)。[單選題]3.有以下程序:#include#includesdivuctA{inta;charb[10];doublec;};sdivuctAf(sdivuctAt);main(){sdivuctAa={1001,"ZhangDa",1098.0};a=f(a);printf("%d,%s,%6.1f\n",a.a,a.b,a.c);}sdivuctAf(sdivuctAt){t.a=1002;sdivcpy(t.b,"ChangRong");t.c=1202.0;returnt;}程序運(yùn)行后的輸出結(jié)果是()。A.1001,ZhangDa,1098.0B.1002,ZhangDa,1202.0C.1001,ChangRong,1098.0D.1002,ChangRong,1202.0參考答案:D參考解析:函數(shù)f對(duì)結(jié)構(gòu)體成員進(jìn)行修改,并返回新的結(jié)構(gòu)體;main函數(shù)先定義了一個(gè)結(jié)構(gòu)體變量a并為它賦初值,然后調(diào)用函數(shù)f修改結(jié)構(gòu)體變量的成員值,最后輸出新的結(jié)構(gòu)體變量成員值。答案選擇D選項(xiàng)。[單選題]4.數(shù)據(jù)庫(kù)管理系統(tǒng)是()。A.操作系統(tǒng)的一部分B.在操作系統(tǒng)支持下的系統(tǒng)軟件C.一種編譯系統(tǒng)D.一種操作系統(tǒng)參考答案:B參考解析:系統(tǒng)軟件主要包括:①操作系統(tǒng)軟件;②各種語(yǔ)言的解釋程序和編譯程序;③各種服務(wù)性程序;④各種數(shù)據(jù)庫(kù)管理系統(tǒng)。數(shù)據(jù)庫(kù)管理系統(tǒng)是一種系統(tǒng)軟件,負(fù)責(zé)數(shù)據(jù)庫(kù)中的數(shù)據(jù)組織、數(shù)組操縱、數(shù)據(jù)維護(hù)、控制和保護(hù)以及數(shù)據(jù)服務(wù)等。答案選擇B選項(xiàng)。[單選題]5.有以下程序:#includevoidfun(intp){intd=2;p=d++;printf("%d",p);}main(){inta=1;fun(a);printf("%d\n",a);}程序運(yùn)行后的輸出結(jié)果是()。A.32B.12C.21D.22參考答案:C參考解析:C語(yǔ)言中函數(shù)參數(shù)傳遞滿(mǎn)足“單向傳遞”,實(shí)現(xiàn)傳遞值的功能,實(shí)參能傳給形參,形參卻不能傳回給實(shí)參。fun函數(shù)體內(nèi)輸出p的值為2,并不影響到fun函數(shù)外a的值,a的值在main函數(shù)內(nèi)依然為1。答案選擇C選項(xiàng)。[單選題]6.有以下程序:#include#definef(x)x*x*xmain(){inta=3,s,t;s=f(a+1);t=f((a+1));printf("%d,%d\n",s,t);}程序運(yùn)行后的輸出結(jié)果是()。A.10,64B.10,10C.64,10D.64,64參考答案:A參考解析:C語(yǔ)言中帶參數(shù)的宏可以理解為用參數(shù)直接替換定義式中的變量,而不經(jīng)過(guò)任何修改。所以s=f(a+1)=a+1*a+1*a+1=3+3+3+1=10,t=f((a+1))=(a+1)*(a+1)*(a+1)=4×4×4=64,所以有無(wú)括號(hào)的運(yùn)算結(jié)果是不同的。故答案選擇A選項(xiàng)。[單選題]7.有以下程序:#includemain(){inta[]={2,3,5,4},i;for(i=0;i<4;i++)switch(i%2){case0:switch(a[i]%2){case0:a[i]++;break;case1:a[i]--;}break;case1:a[i]=0;}for(i=0;i<4;i++)printf("%d",a[i]);printf("\n");}程序運(yùn)行后的輸出結(jié)果是()。A.3344B.2050C.3040D.0304參考答案:C參考解析:main函數(shù)的主體是一個(gè)for循環(huán)語(yǔ)句,for循環(huán)中包含一個(gè)switch語(yǔ)句,如果判斷條件為0則進(jìn)入第二個(gè)switch語(yǔ)句,如果判斷語(yǔ)句為1則執(zhí)行“a[i]=0”,最后將數(shù)組順序輸出。所以程序功能是將數(shù)組下標(biāo)為奇數(shù)的項(xiàng)設(shè)為0,數(shù)組下標(biāo)為偶數(shù)的項(xiàng),如果對(duì)應(yīng)的元素為偶數(shù)則加1,如果對(duì)應(yīng)的元素為奇數(shù)則減1。答案選擇C選項(xiàng)。[單選題]8.若有以下程序段:intr=8;printf("%d\n",r>>1);輸出結(jié)果是()。A.16B.8C.4D.2參考答案:C參考解析:C語(yǔ)言中,“>>”右移運(yùn)算符是將變量轉(zhuǎn)換成二進(jìn)制,然后右移相應(yīng)位數(shù),將移出的位信息舍去,并在高位補(bǔ)0,將所得的結(jié)果再賦值給變量。本題十進(jìn)制數(shù)8轉(zhuǎn)換為二進(jìn)制數(shù)為00001000,右移一位得到00000100,再轉(zhuǎn)換成十進(jìn)制數(shù)就是4。所以答案選擇C選項(xiàng)。[單選題]9.有以下定義語(yǔ)句,編譯時(shí)會(huì)出現(xiàn)編譯錯(cuò)誤的是()。A.chara='a';B.chara='\n';C.chara='aa';D.chara='\x2d';參考答案:C參考解析:本題中a為一個(gè)字符型變量,只能為其賦值一個(gè)字符常量,A項(xiàng)編譯可以通過(guò)。C項(xiàng)中'aa'不是字符常量,而是一個(gè)字符串,所以會(huì)編譯錯(cuò)誤。BD兩項(xiàng)為轉(zhuǎn)義字符,編譯可以通過(guò)。答案選擇C選項(xiàng)。[單選題]10.下面結(jié)構(gòu)體的定義語(yǔ)句中,錯(cuò)誤的是()。A.sdivuctord{intx;inty;intz;};sdivuctorda;B.sdivuctord{intx;inty;intz;}sdivuctorda;C.sdivuctord{intx;inty;intz;}a;D.sdivuct{intx;inty;intz;}a;參考答案:B參考解析:C語(yǔ)言中結(jié)構(gòu)體變量的定義有三種方法:①定義結(jié)構(gòu)體類(lèi)型的同時(shí)定義結(jié)構(gòu)體變量,如C項(xiàng);②使用無(wú)名結(jié)構(gòu)體類(lèi)型定義結(jié)構(gòu)體變量,如D項(xiàng);③先定義結(jié)構(gòu)體類(lèi)型,后定義結(jié)構(gòu)體變量,如A項(xiàng),B項(xiàng)錯(cuò)在分別定義結(jié)構(gòu)體類(lèi)型與結(jié)構(gòu)體變量時(shí)需要用“;”隔開(kāi)。故答案選擇B選項(xiàng)。[單選題]11.有以下程序:#include#includemain(){chara[10]="abcd";printf("%d,%d\n",sdivlen(a),sizeof(a));}程序運(yùn)行后的輸出結(jié)果是()。A.7,4B.4,10C.8,8D.10,10參考答案:B參考解析:在C語(yǔ)言中,strlen()用來(lái)統(tǒng)計(jì)字符串中字符的個(gè)數(shù)(不包含字符串結(jié)束標(biāo)志'\0'),sizeof()用來(lái)求分配給數(shù)組的存儲(chǔ)空間大小。題目中字符串a(chǎn)中字符個(gè)數(shù)為4,但由于數(shù)組a定義含有10個(gè)字符,所以所占空間大小為10。所以答案選擇B選項(xiàng)。[單選題]12.以下函數(shù)findmax擬實(shí)現(xiàn)在數(shù)組中查找最大值并作為函數(shù)值返回,但程序中有錯(cuò)導(dǎo)致不能實(shí)現(xiàn)預(yù)定功能。#defineMIN-2147483647intfingmax(intx[],intn){inti,max;for(i=0;i{max=MIN;if(max}returnmax;}造成錯(cuò)誤的原因是()。A.定義語(yǔ)句inti,max;中max未賦初值B.賦值語(yǔ)句max=MIN;中,不應(yīng)給max賦MIN值C.語(yǔ)句if(maxD.賦值語(yǔ)句max=MIN;放錯(cuò)了位置參考答案:D參考解析:本題中for循環(huán)中首先將MIN值賦值給max,然后用x[i]與max的值比較。每次都是將MIN值與x[i]值進(jìn)行比較,所以無(wú)論x[i]的值是什么,都不會(huì)影響if的判斷語(yǔ)句,max=x[i]始終執(zhí)行。所以函數(shù)返回的是數(shù)組中最后一個(gè)元素的值。程序的錯(cuò)誤在于max=MIN的位置,for循環(huán)之前應(yīng)先執(zhí)行max=MIN。所以答案選擇D選項(xiàng)。[單選題]13.設(shè)有定義:char*c;以下選項(xiàng)中能夠使字符型指針c正確指向一個(gè)字符串的是()。A.charsdiv[]="sdiving";c=sdiv;B.scanf("%s",c);C.c=getchar();D.*c="sdiving";參考答案:A參考解析:B,C選項(xiàng)均為輸入函數(shù),其表達(dá)意思為輸入字符串c。B項(xiàng)中scanf()函數(shù)是將c定義為一個(gè)字符數(shù)組的數(shù)組名;C項(xiàng)中是將c定義為一個(gè)字符型變量;D項(xiàng)中是需要在指針定義時(shí)為它賦值,因此是不合法的,所以BCD三項(xiàng)都不正確。A項(xiàng)定義字符數(shù)組str,再將字符數(shù)組str的首地址賦給字符型指針c,正確。所以答案選擇A選項(xiàng)。[單選題]14.軟件詳細(xì)設(shè)計(jì)產(chǎn)生的圖如下:該圖是()。A.N-S圖B.PAD圖C.程序流程圖D.E-R圖參考答案:C參考解析:N-S圖是由若干基本框圖構(gòu)成的流程圖,其特點(diǎn)是沒(méi)有流程線(xiàn);PAD圖即問(wèn)題分析圖,它是一種由左往右展開(kāi)的二維樹(shù)形結(jié)構(gòu);程序流程圖用于描述問(wèn)題解決的過(guò)程和步驟,其中方框表示處理步驟,菱形框表示邏輯判斷,箭頭表示控制流向;E-R圖即實(shí)體-聯(lián)系圖,用來(lái)描述現(xiàn)實(shí)世界的概念模型,構(gòu)成元素有實(shí)體、屬性和聯(lián)系,分別用矩形、橢圓形和菱形表示。所以答案選擇C選項(xiàng)。[單選題]15.下列函數(shù)的功能是()。fun(char*a,char*b){while((*b=*a)!='\0'){a++;b++;}}A.將a所指字符串賦給b所指空間B.使指針b指向a所指字符串C.將a所指字符串和b所指字符串進(jìn)行比較D.檢查a和b所指字符串中是否有'\0'參考答案:A參考解析:函數(shù)fun中a和b是兩個(gè)字符型指針,在while語(yǔ)句的表達(dá)式中將指針a所指向的字符賦給指針b所指向的內(nèi)存單元,再判斷指針b所指向的字符是不是字符串中的結(jié)尾符,若不是,則字符指針a和b分別自增,再執(zhí)行循環(huán)語(yǔ)句,直至b所指向的字符為字符串中的空字符。所以答案選擇A選項(xiàng)。[單選題]16.表達(dá)式:(int)((double)9/2)-9%2的值是()。A.0B.3C.4D.5參考答案:B參考解析:運(yùn)算符“/”、“%”的優(yōu)先級(jí)高于“-”,所以先進(jìn)行除法和求余運(yùn)算,再進(jìn)行減法運(yùn)算。強(qiáng)制類(lèi)型轉(zhuǎn)換表達(dá)式的形式:(類(lèi)型名)(表達(dá)式)。“9/2”結(jié)果為4,轉(zhuǎn)換成double類(lèi)型再轉(zhuǎn)換成int類(lèi)型結(jié)果依然為4,9%2的結(jié)果為1,最后結(jié)果為4-1=3。答案選擇B選項(xiàng)。[單選題]17.有以下程序:#include#includemain(){charsdiv[][20]={"One*World","One*Dream!"},*p=sdiv[1];printf("%d,",sdivlen(p));printf("%s\n",p);}程序運(yùn)行后的輸出結(jié)果是()。A.9,One*WorldB.9,One*Dream!C.10,One*Dream!D.10,One*World參考答案:C參考解析:程序?qū)蓚€(gè)字符串常量賦值給一個(gè)二維字符數(shù)組,然后p指向第二個(gè)字符串。strlen統(tǒng)計(jì)字符串中有效字符的個(gè)數(shù),可知"One*Dream!"中共有10個(gè)字符。所以答案選擇C選項(xiàng)。[單選題]18.對(duì)于循環(huán)隊(duì)列,下列敘述中正確的是()。A.隊(duì)頭指針是固定不變的B.隊(duì)頭指針一定大于隊(duì)尾指針C.隊(duì)頭指針一定小于隊(duì)尾指針D.隊(duì)頭指針可以大于隊(duì)尾指針,也可以小于隊(duì)尾指針參考答案:D參考解析:在循環(huán)隊(duì)列中,用隊(duì)尾指針(rear)指向隊(duì)列中的隊(duì)尾元素,用隊(duì)頭指針(front)指向隊(duì)頭元素的前一個(gè)位置。在循環(huán)隊(duì)列中,一般情況下rear>front,當(dāng)存儲(chǔ)空間的最后一個(gè)位置被使用,而新元素要入隊(duì)時(shí),如果存儲(chǔ)空間的第一個(gè)位置空閑,便可將元素插入到第一個(gè)位置,此時(shí)存儲(chǔ)空間的第一個(gè)位置作為隊(duì)尾,便有front>rear。所以答案選擇D選項(xiàng)。[單選題]19.有以下程序:#includeintf(intn);main(){inta=3,s;s=f(a);s=s+f(a);printf("%d\n",s);}intf(intn){staticinta=1;n+=a++;returnn;}程序運(yùn)行以后的輸出結(jié)果是()。A.7B.8C.9D.10參考答案:C參考解析:在函數(shù)f中,整型變量a為靜態(tài)變量,所以每次調(diào)用函數(shù)f時(shí)不再為a重新賦值,而且a的值只有在程序結(jié)束時(shí)才被釋放。第一次調(diào)用f后n=4,a=2,s=4;第二次調(diào)用時(shí),a初值為2,調(diào)用后,a=3,n=5,s=4+5=9,所以輸出結(jié)果為9。答案選擇C選項(xiàng)。[單選題]20.有以下程序:#includemain(){intc=0,k;for(k=1;k<3;k++)switch(k){default:c+=k;case2:c++;break;case4:c+=2;break;}printf("%d\n",c);}程序運(yùn)行后的輸出結(jié)果是()。A.3B.5C.7D.9參考答案:A參考解析:程序進(jìn)入for循環(huán)后,首先k=1,執(zhí)行default語(yǔ)句,c變?yōu)?。由于default語(yǔ)句之后沒(méi)有break語(yǔ)句,因此繼續(xù)執(zhí)行case2,c變?yōu)?,之后執(zhí)行break語(yǔ)句跳出本次循環(huán)。下次循環(huán)k=2,直接執(zhí)行case2,c自增為3后跳出本次循環(huán)。k=3時(shí)for循環(huán)結(jié)束,最后輸出3。答案選擇A選項(xiàng)。[單選題]21.有三個(gè)關(guān)系R、S和T如下:其中關(guān)系T由關(guān)系R和S通過(guò)某種操作得到,該操作為()。A.選擇B.投影C.交D.并參考答案:D參考解析:選擇和投影操作對(duì)單個(gè)關(guān)系進(jìn)行操作,選擇運(yùn)算是對(duì)行的操作,投影運(yùn)算是對(duì)列的操作。交和并運(yùn)算要求參與運(yùn)算的表具有相同的屬性,交運(yùn)算的結(jié)果是兩個(gè)表的公共部分,并運(yùn)算的結(jié)果包含兩個(gè)表的所有元素。觀(guān)察三個(gè)關(guān)系的元組可知,關(guān)系T=R∪S。答案選擇D選項(xiàng)。[單選題]22.下面是有關(guān)C語(yǔ)言字符數(shù)組的描述,其中錯(cuò)誤的是()。A.不可以用賦值語(yǔ)句給字符數(shù)組名賦字符串B.可以用輸入語(yǔ)句把字符串整體輸入給字符數(shù)組C.字符數(shù)組中的內(nèi)容不一定是字符串D.字符數(shù)組只能存放字符串參考答案:D參考解析:C語(yǔ)言中,字符數(shù)組可以用來(lái)存放單個(gè)的字符或者字符串。答案選擇D選項(xiàng)。[單選題]23.若有定義語(yǔ)句:inta[4][10],*P,*q[4];且0≤i<4,則錯(cuò)誤的賦值是()。A.p=aB.q[i]=a[i]C.p=a[i]D.p=&a[2][1]參考答案:A參考解析:二維數(shù)組名是指向指針的指針,所以a和q都為指向指針的指針,而p為指向int類(lèi)型的指針,p和a不同類(lèi)型,故A選項(xiàng)中p=a賦值語(yǔ)句錯(cuò)誤。其余選項(xiàng)可以正確賦值,其中D項(xiàng)是用取地址符&返回整數(shù)的地址,然后賦值給p。所以答案選擇A選項(xiàng)。[單選題]24.以下程序段中,與語(yǔ)句:k=a>b?(b>c?1:0):0;功能相同的是()。A.if((a>b)&&(b>c))k=1;elsek=0;B.if((a>b)‖(b>c))k=1;elsek=0;C.if(a<=b)k=0;elseif(b<=c)k=1;D.if(a>b)k=1;elseif(b>c)k=1;elsek=0;參考答案:A參考解析:三元運(yùn)算符表達(dá)式的形式為:表達(dá)式1?表達(dá)式2∶表達(dá)式3,當(dāng)表達(dá)式1的值為真時(shí),結(jié)果為表達(dá)式2的值;當(dāng)表達(dá)式1的值為假時(shí),結(jié)果為表達(dá)式3的值。首先判斷a、b的關(guān)系:①如果a>b,執(zhí)行語(yǔ)句(b>c?1:0);判斷b、c的關(guān)系,如果b>c,k=1,否則k=0;②如果a≤b,則k=0。綜上所述:當(dāng)a>b且b>c時(shí),k=1,否則k=0,與A項(xiàng)語(yǔ)句功能相同。答案選擇A選項(xiàng)。[單選題]25.若有定義語(yǔ)句:intx=10;則表達(dá)式x-=x+x的值為()。A.-20B.-10C.0D.10參考答案:B參考解析:?jiǎn)文考舆\(yùn)算符優(yōu)先級(jí)高于賦值運(yùn)算符,所以先做x+x結(jié)果為20,再做x-20,結(jié)果為-10,然后賦值給x。所以答案選擇B選項(xiàng)。[單選題]26.有以下程序:#includemain(){chars[]={"012xy"};inti,n=0;for(i=0;s[i]!=0;i++)
if(s[i]>='a'&&s[i]<='z')n++;printf("%d\n",n);}程序運(yùn)行后的輸出結(jié)果是()。A.0B.2C.3D.5參考答案:B參考解析:程序中main函數(shù)的作用就是判斷字符串s中小寫(xiě)字母的個(gè)數(shù),顯然結(jié)果為2。答案選擇B選項(xiàng)。[單選題]27.下列選項(xiàng)中不屬于結(jié)構(gòu)化程序設(shè)計(jì)原則的是()。A.可封裝B.自頂向下C.模塊化D.逐步求精參考答案:A參考解析:結(jié)構(gòu)化程序設(shè)計(jì)的基本原則包括:①模塊化;②自頂向下;③逐步求精;④限制使用goto語(yǔ)句。可封裝是面向?qū)ο蟮脑O(shè)計(jì)思想。答案選擇A選項(xiàng)。[單選題]28.有以下程序:#include
main(){char
c1,c2;c1='A'+'8'-'4';c2='A'+'8'-'5';printf("%c,%d\n",c1,c2);}已知字母A的ASCII碼為65,程序運(yùn)行后的輸出結(jié)果是()。A.E,68B.D,69C.E,DD.輸出無(wú)定值參考答案:A參考解析:C語(yǔ)言中每個(gè)字符都對(duì)應(yīng)一個(gè)ASCII碼值,該值可以用來(lái)運(yùn)算。本題中main函數(shù)將字符A經(jīng)過(guò)加四和加三運(yùn)算后分別賦值給c1、c2,則c1='E',c2='D',然后將c1按字符格式輸出,c2按整型格式輸出。答案選擇A選項(xiàng)。[單選題]29.算法的空間復(fù)雜度是指()。A.算法在執(zhí)行過(guò)程中所需要的計(jì)算機(jī)存儲(chǔ)空間B.算法所處理的數(shù)據(jù)量C.算法程序中的語(yǔ)句或指令條數(shù)D.算法在執(zhí)行過(guò)程中所需要的臨時(shí)工作單元數(shù)參考答案:A參考解析:算法的空間復(fù)雜度是指算法在執(zhí)行過(guò)程中所需要的計(jì)算機(jī)存儲(chǔ)空間。包括算法程序所占空間,輸入的初始數(shù)據(jù)所占空間和執(zhí)行過(guò)程中所需要的額外空間。答案選擇A選項(xiàng)。[單選題]30.以下敘述中正確的是()。A.程序設(shè)計(jì)的任務(wù)就是編寫(xiě)程序代碼并上機(jī)調(diào)試B.程序設(shè)計(jì)的任務(wù)就是確定所用數(shù)據(jù)結(jié)構(gòu)C.程序設(shè)計(jì)的任務(wù)就是確定所用算法D.以上三種說(shuō)法都不完整參考答案:D參考解析:程序設(shè)計(jì)是指設(shè)計(jì)、編程、調(diào)試程序的方法和過(guò)程,通常分為4個(gè)階段:①問(wèn)題建模;②算法設(shè)計(jì);③編寫(xiě)代碼;④編譯調(diào)試。其工作內(nèi)容涉及有關(guān)的基本概念、工具、方法及方法學(xué),是目標(biāo)明確的智力活動(dòng)。答案選擇D選項(xiàng)。[單選題]31.下列數(shù)據(jù)結(jié)構(gòu)中,能夠按照“先進(jìn)后出”原則存取數(shù)據(jù)的是()。A.循環(huán)隊(duì)列B.棧C.隊(duì)列D.二叉樹(shù)參考答案:B參考解析:棧和隊(duì)列都是操作受限的線(xiàn)性表:棧只能在棧頂插入和刪除元素,按照“先進(jìn)后出”的原則組織數(shù)據(jù);隊(duì)列只能在隊(duì)頭刪除元素,在隊(duì)尾插入元素,按照“先進(jìn)先出”的原則組織數(shù)據(jù)。B項(xiàng),棧,按照“先進(jìn)后出”的原則組織數(shù)據(jù)。A項(xiàng),循環(huán)隊(duì)列是隊(duì)列的一種特殊形式,按照“先進(jìn)先出”的原則組織數(shù)據(jù);C項(xiàng),隊(duì)列,按照“先進(jìn)后出”的原則組織數(shù)據(jù)。D項(xiàng),二叉樹(shù)屬于非線(xiàn)性結(jié)構(gòu)。答案選擇B選項(xiàng)。[單選題]32.有以下程序:#includemain(){inta=1,b=0;printf("%d,",b=a+b);printf("%d\n",a=2*b);}程序運(yùn)行后的輸出結(jié)果是()。A.0,0B.1,0C.3,2D.1,2參考答案:D參考解析:main函數(shù)先為a、b賦值,然后做運(yùn)算a+b結(jié)果賦值給b,此時(shí)b為1,并將b打印出來(lái)。接著做運(yùn)算2*b結(jié)果為2*1=2賦值給a,將a打印出來(lái),所以最終的輸出結(jié)果為1,2。答案選擇D選項(xiàng)。[單選題]33.以下選項(xiàng)中,能用作用戶(hù)標(biāo)識(shí)符的是()。A.voidB.8_8C._0_D.unsigned參考答案:C參考解析:標(biāo)識(shí)符是由若干個(gè)字符組成的字符序列,用來(lái)命名程序的一些實(shí)體。C語(yǔ)言定義標(biāo)識(shí)符應(yīng)遵循以下六種規(guī)則:①標(biāo)識(shí)符由字母、數(shù)字或下劃線(xiàn)組成;②第一個(gè)字符必須是字母或下劃線(xiàn);③標(biāo)識(shí)符最多由274個(gè)字符組成;④在標(biāo)識(shí)符中嚴(yán)格區(qū)分大小寫(xiě)字母;⑥關(guān)鍵字不能作為自定義的標(biāo)識(shí)符在程序中使用。A、D項(xiàng)皆為C語(yǔ)言的關(guān)鍵字,B項(xiàng)第一個(gè)字符為數(shù)字,錯(cuò)誤。答案選擇C選項(xiàng)。[單選題]34.軟件設(shè)計(jì)中劃分模塊的一個(gè)準(zhǔn)則是()。A.低內(nèi)聚低耦合B.高內(nèi)聚低耦合C.低內(nèi)聚高耦合D.高內(nèi)聚高耦合參考答案:B參考解析:耦合性和內(nèi)聚性是模塊獨(dú)立性的兩個(gè)定性標(biāo)準(zhǔn)。內(nèi)聚性是一個(gè)模塊內(nèi)部各個(gè)元素間彼此結(jié)合的緊密程度的度量,作為軟件結(jié)構(gòu)設(shè)計(jì)的設(shè)計(jì)原則,要求每個(gè)模塊的內(nèi)部都具有很強(qiáng)的內(nèi)聚性;耦合性是指模塊間相互連接的緊密程度的度量,一個(gè)模塊與其他模塊的耦合性越強(qiáng)則該模塊的獨(dú)立性越弱。一般優(yōu)秀的軟件設(shè)計(jì)應(yīng)盡量做到高內(nèi)聚、低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨(dú)立性。答案選擇B選項(xiàng)。[單選題]35.設(shè)有以下函數(shù):voidfun(intn,char*s){……}則下面對(duì)函數(shù)指針的定義和賦值均是正確的是()。A.void(*pf)();pf=fun;B.void*pf();pf=fun;C.void*pf();*pf=fun;D.void(*pf)(int,char);pf=&fun;參考答案:D參考解析:函數(shù)指針的一般定義形式為:返回值類(lèi)型(*指針變量名)([形參列表]);其中,“返回值類(lèi)型”說(shuō)明函數(shù)的返回類(lèi)型,“(*指針變量名)”中的括號(hào)不能省,括號(hào)改變了運(yùn)算符的優(yōu)先級(jí)。若省略整體則成為一個(gè)函數(shù)說(shuō)明,說(shuō)明了一個(gè)返回的數(shù)據(jù)類(lèi)型是指針的函數(shù),后面的“形參列表”表示指針變量指向的函數(shù)所帶的參數(shù)列表。以本題函數(shù)和函數(shù)指針為例,將函數(shù)的首地址賦給指針,可以是pf=fun;或者pf=&fun;選項(xiàng)A,參數(shù)列表與題干函數(shù)不符,錯(cuò)誤。選項(xiàng)B,函數(shù)指針定義格式錯(cuò)誤。選項(xiàng)C。函數(shù)指針定義格式錯(cuò)誤,復(fù)制格式也錯(cuò)誤。答案選擇D選項(xiàng)。[單選題]36.下列數(shù)據(jù)結(jié)構(gòu)中,屬于非線(xiàn)性結(jié)構(gòu)的是()。A.循環(huán)隊(duì)列B.帶鏈隊(duì)列C.二叉樹(shù)D.帶鏈棧參考答案:C參考解析:線(xiàn)性結(jié)構(gòu)要滿(mǎn)足兩個(gè)條件:①有且僅有一個(gè)根結(jié)點(diǎn);②每個(gè)結(jié)點(diǎn)最多有一個(gè)前驅(qū),也最多有一個(gè)后繼。棧和隊(duì)列均滿(mǎn)足這兩個(gè)條件,屬于線(xiàn)性結(jié)構(gòu);循環(huán)隊(duì)列是一個(gè)頭結(jié)點(diǎn)和尾結(jié)點(diǎn)互為前驅(qū)結(jié)點(diǎn)和后繼結(jié)點(diǎn)的特殊的隊(duì)列,屬于線(xiàn)性結(jié)構(gòu);帶鏈隊(duì)列、帶鏈棧都是用鏈表形式來(lái)實(shí)現(xiàn)的,分別滿(mǎn)足隊(duì)列和棧的條件,只是存儲(chǔ)結(jié)構(gòu)不連續(xù),屬于線(xiàn)性結(jié)構(gòu)。二叉樹(shù)除了葉子結(jié)點(diǎn)外,每個(gè)結(jié)點(diǎn)都可以有兩個(gè)后繼結(jié)點(diǎn),屬于非線(xiàn)性結(jié)構(gòu)。答案選擇C選項(xiàng)。[單選題]37.閱讀以下程序:#includemain(){intcase;floatprintF;printf("請(qǐng)輸入2個(gè)數(shù):");scanf("%d%f",&case,&printF);printf("%d%f\n",case,printF);}該程序編澤時(shí)產(chǎn)生錯(cuò)誤,其出錯(cuò)原因是()。A.定義語(yǔ)句出錯(cuò),case是關(guān)鍵字,不能用作用戶(hù)自定義標(biāo)識(shí)符B.定義語(yǔ)句出錯(cuò),printF不能用作用戶(hù)自定義標(biāo)識(shí)符C.定義語(yǔ)句無(wú)錯(cuò),scanf不能作為輸入函數(shù)使用D.定義語(yǔ)句無(wú)錯(cuò),printf不能輸出case的值參考答案:A參考解析:在C語(yǔ)言中,關(guān)鍵字又稱(chēng)保留字,它是系統(tǒng)預(yù)先定義的,具有特定含義的標(biāo)識(shí)符,故不允許用戶(hù)重新定義。case為C語(yǔ)言中的關(guān)鍵字,因此用戶(hù)不能再定義標(biāo)識(shí)符為case的變量。答案選擇A選項(xiàng)。[單選題]38.在E-R圖中,用來(lái)表示實(shí)體聯(lián)系的圖形是()。A.橢圓形B.矩形C.菱形D.三角形參考答案:C參考解析:在E-R圖中,菱形表示聯(lián)系,矩形表示實(shí)體,橢圓形表示屬性。答案選擇C選項(xiàng)。[單選題]39.設(shè)有定義:inta=1,b=2,c=3;以下語(yǔ)句中執(zhí)行效果與其他三個(gè)不同的是()。A.if(a>b)c=a,a=b,b=c;B.if(a>b){c=a,a=b,b=c}C.if(a>b)c=a;a=b;b=c;D.if(a>b){c=a;a=b;b=c}參考答案:C參考解析:C語(yǔ)言中if語(yǔ)句后面只跟一條語(yǔ)句時(shí),可以省略大括號(hào)。即if語(yǔ)句僅作用于緊隨其后的那條語(yǔ)句或者是復(fù)合語(yǔ)句的內(nèi)容,所以A項(xiàng),執(zhí)行三條語(yǔ)句組成的復(fù)合語(yǔ)句;BD兩項(xiàng)執(zhí)行大括號(hào)中的三條語(yǔ)句;而C項(xiàng)只執(zhí)行c=a;。答案選擇C選項(xiàng)。[單選題]40.有以下程序:#includemain(){intn=2,k=0;while(k++&&n++>2);printf("%d%d\n",k,n);}程序運(yùn)行后的輸出結(jié)果是()。A.02B.13C.57D.12參考答案:D參考解析:(表達(dá)式1)&&(表達(dá)式2)中,如果表達(dá)式1為假或0,那么表到式2就不會(huì)被執(zhí)行。本題中首先進(jìn)入while的判斷語(yǔ)句,執(zhí)行k++和n++。k++為零,不滿(mǎn)足循環(huán)條件,所以n++不會(huì)被執(zhí)行,while循環(huán)結(jié)束后,k經(jīng)過(guò)運(yùn)算自增為1,n沒(méi)有進(jìn)行運(yùn)算,仍為2。答案選擇D選項(xiàng)。[問(wèn)答題]1.N個(gè)有序整數(shù)數(shù)列已放在一維數(shù)組中,給定下列程序中,函數(shù)fun()的功能是:利用折半查找法查找整數(shù)m在數(shù)組中的位置。若找到,則返回其下標(biāo)值;反之,則返回“Not
be
found!”。折半查找法的基本算法是:每次查找前先確定數(shù)組中待確定的范圍:low和high(low<high),然后把m與中間位置(mid)中元素的值進(jìn)行比較。如果m的值大于中間位置元素中的值,則下一次的查找范圍放在中間位置之后的元素中;反之,下次查找范圍落在中間位置之前的元素中。直到low>high,查找結(jié)束。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的橫線(xiàn)上填入所編寫(xiě)的若干表達(dá)式或語(yǔ)句。/**********code.c**********/#include#define
N
10int
fun(int
a[],int
m){int
low=0,high=N-1,mid;while(low<=high){/**********found**********/mid=
①______;if(m<a[mid])/**********found**********/high=
②______;else
if(m>a[mid])low=mid+1;elsereturn(mid);}/**********found**********/③______(-1);}main(){int
i,a[N]={-3,4,7,9,13,24,67,89,100,180},k,m;printf("a數(shù)組中的數(shù)據(jù)如下:");for(i=0;i<n;i++)printf("%d",a[i]);printf("Enter
m:");scanf("%d",&m);k=fun(a,m);if(k>=0)printf("m=%d,index=%d\n",m,k);elseprintf("Not
be
found\n");}/**********-code.c**********/參考答案:①(low+high)/2②mid-1③return參考解析:填空1:根據(jù)題目的意思,此處是要確定折半查找的中間位置,所以應(yīng)該填(low+high)/2,這個(gè)式子的運(yùn)算結(jié)果為整型數(shù)據(jù)。填空2:由折半查找的算法可得,中間的元素值大,則應(yīng)該選擇前半段進(jìn)行查找,所以此處應(yīng)該把mid前一位的下標(biāo)賦
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 店長(zhǎng)轉(zhuǎn)正述職報(bào)告
- 2025年度股東之間關(guān)于公司研發(fā)投入與成果分配協(xié)議
- 二零二五年度農(nóng)村土地永久互換與農(nóng)業(yè)文化遺產(chǎn)保護(hù)合作協(xié)議
- 二零二五年度荒山承包生態(tài)修復(fù)與景觀(guān)設(shè)計(jì)合同
- 二零二五年度城市景觀(guān)水溝美化與清潔合同
- 二零二五年度新媒體兼職運(yùn)營(yíng)合作協(xié)議
- 2025年度金融機(jī)構(gòu)單位員工勞動(dòng)合同書(shū)(附績(jī)效獎(jiǎng)金條款)
- 二零二五年度酒店資產(chǎn)評(píng)估及處置合同
- 二零二五年度冷鏈物流線(xiàn)路承包與運(yùn)營(yíng)管理合同
- 二零二五年度生態(tài)園區(qū)門(mén)窗維護(hù)與節(jié)能改造合同
- 垂直細(xì)分領(lǐng)域分析報(bào)告
- 電氣自動(dòng)化專(zhuān)業(yè)單招高職2024年技能考試題目及答案
- 舞臺(tái)彩繪妝面培訓(xùn)課件
- 人工智能行業(yè)教育與人才培養(yǎng)政策解讀研討會(huì)
- 【課件】問(wèn)題研究+汽車(chē)工業(yè)能否帶動(dòng)家鄉(xiāng)的發(fā)展高二地理人教版(2019)選擇性必修2
- 體能訓(xùn)練預(yù)防訓(xùn)練傷
- 內(nèi)分泌科護(hù)理常規(guī)的課件
- 疼痛科營(yíng)銷(xiāo)方案
- 中醫(yī)藥在關(guān)節(jié)病變治療中的價(jià)值
- 《香水知識(shí)》課件
- 公務(wù)員獎(jiǎng)勵(lì)審批表(表格)
評(píng)論
0/150
提交評(píng)論