國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷41(共255題)_第1頁(yè)
國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷41(共255題)_第2頁(yè)
國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷41(共255題)_第3頁(yè)
國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷41(共255題)_第4頁(yè)
國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷41(共255題)_第5頁(yè)
已閱讀5頁(yè),還剩67頁(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)介

國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷41(共9套)(共255題)國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷第1套一、選擇題(本題共25題,每題1.0分,共25分。)1、算法具有五個(gè)特性,以下選項(xiàng)中不屬于算法特性的是A、有窮性B、簡(jiǎn)潔性C、可行性D、確定性標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:算法的五個(gè)特性分別是:有窮性、可行性、確定性、輸入和輸出。2、若變量已正確定義并賦值,以下不能構(gòu)成C語(yǔ)句的選項(xiàng)是A、A=a+b;B、B++;C、a=a+bD、A?a:b:標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:C語(yǔ)言語(yǔ)句的表示為分號(hào),不加分號(hào)的表達(dá)式不能看成C語(yǔ)句。3、下列敘述中正確的是A、順序存儲(chǔ)結(jié)構(gòu)的存儲(chǔ)一定是連續(xù)的,鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的存儲(chǔ)空間不一定是連續(xù)的B、順序存儲(chǔ)結(jié)構(gòu)只針對(duì)線性結(jié)構(gòu),鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)只針對(duì)非線性結(jié)構(gòu)C、順序存儲(chǔ)結(jié)構(gòu)能存儲(chǔ)有序表,鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)不能存儲(chǔ)有序表D、鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)比順序存儲(chǔ)結(jié)構(gòu)節(jié)省存儲(chǔ)空間標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:順序存儲(chǔ)方式主要用于線性的數(shù)據(jù)結(jié)構(gòu),它把邏輯上相鄰的數(shù)據(jù)元素存儲(chǔ)在物理上相鄰的存儲(chǔ)單元里,結(jié)點(diǎn)之間的關(guān)系由存儲(chǔ)單元的鄰接關(guān)系來(lái)體現(xiàn)。而鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的存儲(chǔ)空間不一定是連續(xù)的。4、在C語(yǔ)言中()。A、不能使用do-while語(yǔ)句構(gòu)成的循環(huán)B、do-while語(yǔ)句構(gòu)成的循環(huán)必須用break語(yǔ)句才能退出C、do-while語(yǔ)句構(gòu)成的循環(huán),當(dāng)while語(yǔ)句中的表達(dá)式值為零時(shí)結(jié)束循環(huán)D、do-while語(yǔ)句構(gòu)成的循環(huán),當(dāng)while語(yǔ)句中的表達(dá)式值為非零時(shí)結(jié)束循環(huán)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查對(duì)do-while循環(huán)語(yǔ)句的理解。Do-while語(yǔ)句是先執(zhí)行循環(huán)體,再判斷條件,當(dāng)條件為真時(shí),就再次執(zhí)行循環(huán)體,當(dāng)條件為假時(shí)就結(jié)束循環(huán)。5、由以下while構(gòu)成的循環(huán),循環(huán)體執(zhí)行的次數(shù)是intk=0;while(k=1)k++;A、一次也不執(zhí)行B、執(zhí)行一次C、無(wú)限次D、有語(yǔ)法錯(cuò),不能執(zhí)行標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:循環(huán)條件表達(dá)式為賦值表達(dá)式k=1,因此循環(huán)執(zhí)行無(wú)限次。6、有以下程序#includevoidfun(inta,intb){intt;t=a;a=b;b=t;}main(){intc[10]={1,2,3,4,5,6,7,8,9,0),i;for(i=0;i<10;i+=2)fun(c[i],c[i+1]);for(i=0;i<10;i++)printf("%d,",C[i]);printf("\n");}程序的運(yùn)行結(jié)果是A、2,1,4,3,6,5,8,7,0,9,B、0,9,8,7,6,5,4,3,2,1,C、1,2,3,4,5,6,7,8,9,0.D、0,1,2,3,4,5,6,7,8,9,標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:C語(yǔ)言規(guī)定,實(shí)參變量對(duì)形參變量的數(shù)據(jù)傳遞是“值傳遞”,即單向傳遞,只由實(shí)參傳給形參,而不能由形參傳同來(lái)給實(shí)參。在調(diào)用函數(shù)時(shí),給形參分配存儲(chǔ)單元,并將實(shí)參對(duì)應(yīng)的值傳遞給形參,調(diào)用結(jié)束后,形參單元被釋放,實(shí)參單元仍保留并維持原值。由此可知,在本題中,函數(shù)fun(inta,intb)的功能是實(shí)現(xiàn)形參整形變量a和b值的互換。當(dāng)在主函數(shù)中調(diào)用fun(c[i]j,c[i+1])時(shí),把實(shí)參變量c[i]和c[i+1]的值賦給形參變量a和b,執(zhí)行完函數(shù)fun(c[i],c[i+1])時(shí),形參變最a和b的值發(fā)生了互換,實(shí)參變量c[j]和c[i+1]的值并沒(méi)有發(fā)生互換,所以輸出的值為1,2,3,4,5,6,7,8,9,0。7、對(duì)象實(shí)現(xiàn)了數(shù)據(jù)和操作(方法)的結(jié)合,其實(shí)現(xiàn)的機(jī)制是A、封裝B、繼承C、隱蔽D、抽象標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:封裝,即隱藏對(duì)象的屬性和實(shí)現(xiàn)細(xì)節(jié),僅對(duì)外公開(kāi)接口,控制在程序中屬性的讀和修改的訪問(wèn)級(jí)別;將抽象得到的數(shù)據(jù)和行為(或功能)相結(jié)合,形成一個(gè)有機(jī)的整體,也就是將數(shù)據(jù)與操作數(shù)據(jù)的源代碼進(jìn)行有機(jī)的結(jié)合,形成“類”,其中數(shù)據(jù)和函數(shù)都是類的成員。所以選項(xiàng)A正確。8、若有定義語(yǔ)句doublex,y,*px,*PY;,執(zhí)行了px=&x;py=a,y;之后,正確的輸入語(yǔ)句是()。A、scanf(’’%lf%le’’,px,py);B、scanf(’’%f%f’’&x,&y);C、scanf(’’%f%f’’,x,y);D、scanf(’’%lf%If’’,x,y);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:因?yàn)閤和y都是double型數(shù)據(jù),所以輸入時(shí)的格式字符應(yīng)為%lf,所以B、C選項(xiàng)錯(cuò)誤。D選項(xiàng)中的scanf(’’%lf%lf’’,x,y);應(yīng)為scanf(’’%lf%lf’’,&x,&y);。9、DOS文件系統(tǒng)的組織結(jié)構(gòu)屬于A、星形結(jié)構(gòu)B、網(wǎng)星結(jié)構(gòu)C、環(huán)形結(jié)構(gòu)D、樹(shù)形結(jié)構(gòu)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:DOS中目錄結(jié)構(gòu)是層次的,由根目錄到子目錄形成一個(gè)樹(shù)型結(jié)構(gòu)。10、設(shè)有定義:inta;floatb;執(zhí)行scanf("%2d%f",&a,&b);語(yǔ)句時(shí),若從鍵盤輸入876543.0則a和b的值分別是A、876和543.0B、87和6.0C、87和543.0D、76和543.0標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在輸入函數(shù)scanf的輸入格式符%2d%f中,2d表示輸入的數(shù)據(jù)的寬度為’2,所以當(dāng)從鍵盤輸入876543.0<CR>時(shí),這時(shí)把輸入數(shù)字串的前兩位87賦給變量a,然后將緊接著將6按照格式控制符%f的形式賦給變量b,所以b的值為6.000000。11、有以下程序charfun(char*c){if(*c<=’Z’&&*c>=’A’)*c=’A’-’a’;return*c;}main(){chars[81],*p=s;gets(s);while(*p){木P=fun(p);putchar(*p);p++;}printf("\n");}若運(yùn)行時(shí)從鍵盤上輸入OPENTHEDOOR,程序的輸出結(jié)果是A、oPENtHEdOORB、openthedoorC、OPENTHEDOORD、OpenTheDoor標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:函數(shù)fun的主要功能是判斷字符是否為大寫字符,如果是則轉(zhuǎn)換為小寫字符,主函數(shù)讀入大寫字符串,轉(zhuǎn)換成小寫。12、有以下程序main(){inta=1,b=2,c=3,d=0;if(a==1&&b++==2)if(b!=2‖c--!=3)printf("%d,%d,%d\n",a,b,c);elseprintf("%d,%d,%d\n",a,b,c);elseprintf("%d,%d,%d\n",a,b,c);}程序運(yùn)行后的輸出結(jié)果是A、1,3,2B、1,2,3C、1,3,3D、3,2,1標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:a,b,c,d初始值分別為1,2,3,0。嵌套的if語(yǔ)句中,第一個(gè)if中,表達(dá)式a=1&&b++==2值為1,執(zhí)行嵌套的if分支,此時(shí)b=3,b!=2成立,由于運(yùn)算符是‖,不管后面一個(gè)表達(dá)式的值是不是1,其整個(gè)表達(dá)式的值總是1,c--!=3表達(dá)式不執(zhí)行,最后打印出a,b,c的值是1,3,3。13、下面選項(xiàng)中關(guān)于編譯預(yù)處理的敘述正確的是A、凡是以#號(hào)開(kāi)頭的行,都被稱為編譯預(yù)處理命令行B、預(yù)處理命令行必須使用分號(hào)結(jié)尾C、預(yù)處理命令行不能出現(xiàn)在程序的最后一行D、預(yù)處理命令行的作用域是到最近的函數(shù)結(jié)束處標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在C語(yǔ)言中,凡是以“#”號(hào)開(kāi)頭的行,都稱為編譯預(yù)處理命令行。這些預(yù)處理命令組成的預(yù)處理命令行必須在一行的開(kāi)頭以“撐”號(hào)開(kāi)始,每行的末尾不能用“;”號(hào)結(jié)束,以區(qū)別于C語(yǔ)句、定義和說(shuō)明語(yǔ)句。根據(jù)需要,命令行可以出現(xiàn)在程序的任何一行的開(kāi)始部位,其作用一直持續(xù)到源文件的末尾。14、有以下程序intfunl(doublea){returna*=a;}intfun2(doublex,doubley){doublea=0,b=0;a=funI(x);b=fun1(y);retum(int)(a+b);}main(){doublew;w=fun2(1.1,2.0);……}程序執(zhí)行后輸出結(jié)果是A、5.00B、5C、5.21D、0.0標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:子函數(shù)fun1(dloublea)的功能是返回a的平方值的整數(shù)部分。子函數(shù)fun2(doublex,doubley)的功能是返回x的平方值的整數(shù)部分與y的平方值的整數(shù)部分的和。又因?yàn)轭}中變量w的定義為double型,函數(shù)fun(2)的定義為int型,按照各類數(shù)值型數(shù)據(jù)間的混合運(yùn)算,整型數(shù)據(jù)被轉(zhuǎn)換為實(shí)型數(shù)據(jù)。所以雙精度型變量w的值為5.00。15、有下列程序:main(){inti,s=0,t[]={1,2,3,4,5,6,7,8,9};for(i=0;i<9;i+=2)s+=*(t+i);printf("%d\n",s);}程序執(zhí)行后的輸出結(jié)果是A、20B、45C、36D、25標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題在主函數(shù)中定義了一維整型數(shù)組t[]={1,2,3,4,5,6,7,8,9};然后在for循環(huán)語(yǔ)句中自變量i從0開(kāi)始,每次自加2,執(zhí)行s+=*(t+i)語(yǔ)句,因?yàn)镃語(yǔ)言規(guī)定數(shù)組名代表數(shù)組的首地址,也就是第一個(gè)元素的地址。因此*(t+i)代表數(shù)組的第i+1個(gè)元素。所以程序運(yùn)行的結(jié)果是1+3+5+7+9_25,即變量s的值等于25。16、下列選項(xiàng)中,能夠滿足"只要字符串s1等于字符串s2,則執(zhí)行ST"要求的是()。A、if(strcmp(s2,s1)==0)ST;B、if(s1==s2)ST;C、if(strcpy(s1,s2)==1)ST;D、if(s1-s2==0)ST;標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C語(yǔ)言中,比較兩個(gè)字符串只能使用字符串處理函數(shù)中的字符串比較函數(shù)strcmp(字符串1,字符串2),若若字符串1與字符串2相同則該函數(shù)返回0,所以選項(xiàng)A)符合要求,答案選A)。17、有以下函數(shù)intfun(char*s){char*t=s;while(*t++);return(t-s);}該函數(shù)的功能是A、比較兩個(gè)字符串的大小B、計(jì)算s所指字符串的長(zhǎng)度C、計(jì)算s所指字符串占用內(nèi)存字節(jié)的個(gè)數(shù)D、將s所指字符串復(fù)制到字符串t中標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在函數(shù)fun(char*s)中,首先用字符指針變量t指向s,而循環(huán)語(yǔ)句while(*t++);的功能是使指針變量t指向字符串變量s的末尾,這時(shí)退出循環(huán),因而語(yǔ)句return(t-s);返回的就是字符串s所指字符串的長(zhǎng)度。18、有以下程序#includemain(){inti,x[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++)printf("%d",x[i][2-i]);printf("\n");}程序的輸出結(jié)果是A、1、5、0B、3、5、7C、1、4、7D、3、6、9標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:程序首先初始化二維數(shù)組x[3][3],然后通過(guò)3次for循環(huán),輸出x[0][2]、x[1][1]和x[2][0]的值,即3、5、7。因此B選項(xiàng)正確。19、有以下程序#include<stdio.h>#defineSUB(a)(a)-(a)main(){inta=2,b=3,c=5,d;d=SUB(a+b)*c;printf("%d\n",d);}程序運(yùn)行后的輸出結(jié)果是A、-12B、0C、10D、-20標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題主要考查的是宏替換,在程序中執(zhí)行d=sub(a+b)*c這條語(yǔ)句時(shí),首先要進(jìn)行宏替換,依據(jù)宏SUB(a)的定義可知,上面這條語(yǔ)句替換為d=(a+b)-(a+b)*c,因?yàn)槌朔ǖ膬?yōu)先級(jí)比減法的優(yōu)先級(jí)高,所以先進(jìn)行乘法運(yùn)算,即d=5-5*5=-20。20、有三個(gè)關(guān)系R、S和T如下:由關(guān)系R和S通過(guò)運(yùn)算得到關(guān)系T,則所使用的運(yùn)算為()。A、并B、自然連接C、笛卡爾積D、交標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:自然連接是一種特殊的等值連接,它要求兩個(gè)關(guān)系中進(jìn)行比較的分量必須是相同的屬性組,并且在結(jié)果中把重復(fù)的屬性列去掉,所以B)錯(cuò)誤。笛卡爾積是用R集合中元素為第一元素,S集合中元素為第二元素構(gòu)成的有序?qū)Γ訡)錯(cuò)誤。根據(jù)關(guān)系T可以很明顯的看出是從關(guān)系R與關(guān)系S中取得相同的關(guān)系組所以取得是交運(yùn)算,選擇D)。21、下列鏈表中,其邏輯結(jié)構(gòu)屬于非線性結(jié)構(gòu)的是A、二叉鏈表B、循環(huán)鏈表C、雙向鏈表D、帶鏈的棧標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在定義的鏈表中,若只含有一個(gè)指針域來(lái)存放下一個(gè)元素地址,稱這樣的鏈表為單鏈表或線性鏈表。帶鏈的??梢杂脕?lái)收集計(jì)算機(jī)存儲(chǔ)空間中所有空閑的存儲(chǔ)結(jié)點(diǎn),是線性表。在單鏈表中的結(jié)點(diǎn)中增加一個(gè)指針域指向它的直接前件,這樣的鏈表,就稱為雙向鏈表(一個(gè)結(jié)點(diǎn)中含有兩個(gè)指針),也是線性鏈表。循環(huán)鏈表具有單鏈表的特征,但又不需要增加額外的存貯空間,僅對(duì)表的鏈接方式稍做改變,使得對(duì)表的處理更加方便靈活,屬于線性鏈表。二叉鏈表是二叉樹(shù)的物理實(shí)現(xiàn),是一種存儲(chǔ)結(jié)構(gòu),不屬于線性結(jié)構(gòu)。答案為A選項(xiàng)。22、有以下程序main(){inti=0;i=~i;printf("%d\n",i);}程序運(yùn)行后的輸出結(jié)果是A、0B、1C、8D、-1標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:運(yùn)算符(~)是位運(yùn)算符中唯一的一個(gè)單目運(yùn)算符,運(yùn)算對(duì)象應(yīng)置于運(yùn)算符的右邊,其運(yùn)算功能是把運(yùn)算對(duì)象的內(nèi)容按位取反(使每一位上的0變1,1變0)。i的初值為0,二進(jìn)制位00000000,因此取反后結(jié)果為11111111,最高位為符號(hào)位,為-1的補(bǔ)碼形式,因此輸出結(jié)果為-1.23、設(shè)p是指針變量,語(yǔ)句p=NULL;等價(jià)于A、p=’0’;B、p=’’;C、p="";D、p=0;標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:p=NULL;等價(jià)p=0;因此D選項(xiàng)正確。24、有以下程序:#include#includetypedefstruct{charname[9];charsex;intscore[2];}STU;STUf(STUa){STUb={"Zhao",’m’,85,90};inti;strcpy(,);a.sex=b.sex;for(i=0;i<2;i++)a.score[i]=b.score[i];returna;}main(){STUc={"Qian",’f’,95,92},d;d=f(c);printf("%s,%c,%d,%d,",,d.sex,d.score[0],d.score[1]);printf("%s,%c,%d,%d\n",,c.sex,c.score[0],c.score[1]);}程序運(yùn)行后的輸出結(jié)果是()。A、Zhao,m,85,90,Qian,f,95,92B、Zhao,m,85,90,Zhao,m,85,90C、Qian,f,95,92,Qian,f,95,92D、Qian,f,95,92,Zhao,m,85,90標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查的是函數(shù)調(diào)用時(shí)的參數(shù)傳遞問(wèn)題。程序在調(diào)用函數(shù)f時(shí),傳給函數(shù)f的參數(shù)只是結(jié)構(gòu)變量c在棧中的一個(gè)拷貝,函數(shù)f所做所有操作只是針對(duì)這個(gè)數(shù)據(jù)拷貝進(jìn)行的修改,這些都不會(huì)影響變量c的值。25、有以下程序#include<stdio.h>main(){FILE*fp;inti,a[6]={l,2,3,4,5,6},k;fp=fopen("data.dat","w+");for(i=0;i<6;i++)fprintf(fp,"%d\n",a[5-i]);rewind(fp);for(i=0;i<6;i++){fscanf(fp,"%d",&k);printf("%d,",k);}fclose(fp);}程序運(yùn)行后的輸出結(jié)果是()。A、6,5,4,3,2,1,B、1,2,3,4,5,6,C、1,1,1,1,1,1D、6,6,6,6,6,6,標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:fopen(“data.dat”,“w+”);w+打開(kāi)可讀寫文件,若文件存在則文件長(zhǎng)度清為零,即該文件內(nèi)容會(huì)消失。若文件不存在則建立該文件。rewind(fp);使文件fp的位置指針指向文件開(kāi)始。fprintf(fp,"%d\n",a[5-i]);將a[i]輸出到fp指向的文件中。fscanf(fp,"%d",&k);將fp讀入到變量k中,第一個(gè)for循環(huán)將數(shù)組中元素倒著輸入到fp指向的文件中,rewind()則指向文件開(kāi)始,因此打印是數(shù)組a的倒敘。故打印為6,5,4,3,2,1。答案為A選項(xiàng)。國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷第2套一、選擇題(本題共25題,每題1.0分,共25分。)1、設(shè)循環(huán)隊(duì)列的存儲(chǔ)空間為Q(1:m),初始狀態(tài)為空。現(xiàn)經(jīng)過(guò)一系列正常的入隊(duì)與退隊(duì)操作后,front=m,rear=m-1,此后從該循環(huán)隊(duì)列中刪除一個(gè)元素,則隊(duì)列中的元素個(gè)數(shù)為()。A、m-1B、m-2C、0D、1標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在循環(huán)隊(duì)列中,如果rear-front>0,則隊(duì)列中的元素個(gè)數(shù)為rear-front個(gè);如果rear-front<0,則隊(duì)列中的元素個(gè)數(shù)為rear-front+m。該題中m-1<m,即rear-front<0,則該循環(huán)隊(duì)列中的元素個(gè)數(shù)為(m-1)-m+m=m-1。此后從該循環(huán)隊(duì)列中刪除一個(gè)元素,則隊(duì)列中的元素個(gè)數(shù)為m-1-1=m-2。2、軟件需求規(guī)格說(shuō)明書在軟件開(kāi)發(fā)中的作用不包括()。A、軟件設(shè)計(jì)的依據(jù)B、軟件可行性分析的依據(jù)C、軟件驗(yàn)收的依據(jù)D、用戶和開(kāi)發(fā)人員對(duì)軟件要做什么的共同理解標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:需求分析就是分析軟件用戶的需求是什么,描述需求的文檔稱為軟件需求規(guī)格說(shuō)明書。軟件需求規(guī)格說(shuō)明書是需求分析階段的最后成果。需求規(guī)格說(shuō)明書是使開(kāi)發(fā)人員獲得設(shè)計(jì)和實(shí)現(xiàn)這些功能所需的所有必要信息,是軟件設(shè)計(jì)的依據(jù),A選項(xiàng)正確;軟件需求規(guī)格說(shuō)明書是軟件測(cè)試和驗(yàn)收的依據(jù),通過(guò)檢查每項(xiàng)需求是否能通過(guò)設(shè)計(jì)測(cè)試用例或其他的驗(yàn)證方法,來(lái)確定產(chǎn)品是否確實(shí)按需求實(shí)現(xiàn)了,C選項(xiàng)正確;軟件需求規(guī)格說(shuō)明書對(duì)所有需求說(shuō)明的用戶和開(kāi)發(fā)人員都只能有一個(gè)明確統(tǒng)一的解釋,是用戶和開(kāi)發(fā)人員對(duì)軟件要做什么的共同理解,D選項(xiàng)正確??尚行苑治鍪琼?xiàng)目立項(xiàng)階段要做的工作,雖然也需要對(duì)用戶需求進(jìn)行調(diào)研,但此階段不會(huì)形成軟件需求規(guī)格說(shuō)明書。故正確答案為B。3、設(shè)二叉樹(shù)的后序序列與中序序列均為ABCDEFGH,則該二叉樹(shù)的前序序列為A、HGFEDCBAB、ABCDEFGHC、ABCDHGFED、DCBAHGFE標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:后序遍歷中,最后一個(gè)字母是根結(jié)點(diǎn),也就是H是根結(jié)點(diǎn);在中序遍歷中,根結(jié)點(diǎn)前面的是左子樹(shù)、后面的是右子樹(shù),H后面沒(méi)有,因此該樹(shù)沒(méi)有右子樹(shù)。同理,可判斷出該樹(shù)是第一個(gè)完全的左予樹(shù)。由此可畫出這個(gè)二叉樹(shù),然后根據(jù)二叉樹(shù)可的前序序列為HGFEDCBA。4、設(shè)表的長(zhǎng)度為n。下列查找算法中,在最壞情況下,比較次數(shù)最少的是A、有序表的二分查找B、順序查找C、尋找最大項(xiàng)D、尋找最小項(xiàng)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:有序表的二分法查找只適用于順序存儲(chǔ)的有序表。二分查找的基本方法是:將被查元素x與線性表的中間項(xiàng)進(jìn)行比較,若中間項(xiàng)的值等于x,則說(shuō)明查到;若小于中間項(xiàng)的值則在線性表的前半部分以相同的方法進(jìn)行查找;若大于中間項(xiàng)的值則在線性表的后半部分以相同的方法進(jìn)行查找。在最壞情況下,二分查找需要比較log2n次。順序查找、尋找最大項(xiàng)、尋找最小項(xiàng),在最壞情況下,比較次數(shù)都是n次。所以選項(xiàng)A正確。5、下列對(duì)于軟件測(cè)試的描述中正確的是A、軟件測(cè)試的目的是證明程序是否正確B、軟件測(cè)試的目的是使程序運(yùn)行結(jié)果正確C、軟件測(cè)試的目的是盡可能多地發(fā)現(xiàn)程序中的錯(cuò)誤D、軟件測(cè)試的目的是使程序符合結(jié)構(gòu)化原則標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:軟件測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過(guò)程。一個(gè)好的測(cè)試用例是指很可能找到迄今為止尚未發(fā)現(xiàn)的錯(cuò)誤的用例;一個(gè)成功的測(cè)試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試。軟件測(cè)試的目的要以查找錯(cuò)誤為中心,而不是為了演示軟件的正確功能。6、表達(dá)式a+=a一=a:9的值是()。A、0B、一9C、18D、9標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:賦值語(yǔ)句,從右向左執(zhí)行,先執(zhí)行a=9,再執(zhí)行a一=a,a為0,再執(zhí)行a+=a,結(jié)果仍為0。7、有以下程序#include<stdio.h>main(){inty=9;for(;y>0;y-)if(y%3=0)printf(’’%d’’,-y);}程序的運(yùn)行結(jié)果是A、963B、852C、741D、875421標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:y的值的初值為9,所以在for循環(huán)中,當(dāng)y的值為9、6或3時(shí),if語(yǔ)句的條什成立,執(zhí)行輸出語(yǔ)句,輸出表達(dá)式一y的值。因?yàn)樽詼p符號(hào)在y的前面,所以首先y的自減1,然后再輸出y的值,故輸出結(jié)果為852。8、層次型、網(wǎng)狀型和關(guān)系型數(shù)據(jù)庫(kù)劃分原則是A、記錄長(zhǎng)度B、文件的大小C、聯(lián)系的復(fù)雜程度D、數(shù)據(jù)之間的聯(lián)系方式標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:根據(jù)數(shù)據(jù)之間的聯(lián)系方式,可以把數(shù)據(jù)庫(kù)分為層次型、網(wǎng)狀型和關(guān)系型數(shù)據(jù)庫(kù),它們是根據(jù)數(shù)據(jù)之間的聯(lián)系方式來(lái)劃分的。9、下面對(duì)類-對(duì)象主要特征描述正確的是A、對(duì)象唯一性B、對(duì)象無(wú)關(guān)性C、類的單一性D、類的依賴性標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:對(duì)象的基本特點(diǎn)是:標(biāo)識(shí)唯一性、分類性、多態(tài)性、封裝性、模塊獨(dú)立性好。類是具有共同屬性、共同方法的對(duì)象的集合,是關(guān)于對(duì)象的抽象描述,反映屬于該對(duì)象類型的所有對(duì)象的性質(zhì)。對(duì)象具有的性質(zhì),類也具有。故A選項(xiàng)正確。10、有以下程序#includevoidmain(){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、2050B、3344C、3040D、0304標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在主函數(shù)的for循環(huán)語(yǔ)句中,當(dāng)循環(huán)變量i的值等于0,2時(shí),執(zhí)行switch中的case0語(yǔ)句,分別對(duì)數(shù)組元素a[0]和a[2]加1和減1,所以a[0]的值等于3,a[2]等于4。當(dāng)循環(huán)變量i的值等于1,3時(shí),執(zhí)行switch中的case1語(yǔ)句,把數(shù)組元素a[1]和a[3]的值賦為0。所以輸出數(shù)組a的元素,其結(jié)果為3040。11、以下程序的輸出結(jié)果是()。#include#includeintfun(intn)main(){int*P;{inta;p=(int*)malloc(sizeof(int));a=fun(10);*p=n;return*p;printf(’’%d\n’’,a+fun(10));}}A、21B、20C、10D、11標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查內(nèi)存申請(qǐng)。函數(shù)fun(intn)的功能是在內(nèi)存中每次動(dòng)態(tài)地申請(qǐng)一個(gè)整型變量的存儲(chǔ)空間,把整型變量n的值存入這個(gè)存儲(chǔ)空間中。所以當(dāng)在主函數(shù)中執(zhí)行輸出語(yǔ)句時(shí),a+fun(10)的值等于20。12、有以下程序#includemain(){inta=2,b;b=a<<2;printf("%d\n",b);}程序運(yùn)行后的輸出結(jié)果是A、2B、4C、6D、8標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查位運(yùn)算符,題目中將a向左移兩位,左移兩位表示乘以4,所以答案為8,選項(xiàng)D正確。13、以下錯(cuò)誤的定義語(yǔ)句是A、intx[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3)};B、intx[][3]={{0},{1},{1,2,3}};C、intxn[3]={1,2,3,4};D、intx[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3)};標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:一維數(shù)組定義和初始化是允許省略行下標(biāo),不允許省略列下標(biāo)。14、以下敘述中錯(cuò)誤的是A、預(yù)處理命令行的最后不能以分號(hào)表示結(jié)束B(niǎo)、C程序?qū)︻A(yù)處理命令行的處理是在程序執(zhí)行的過(guò)程中進(jìn)行的C、#defineMAx是合法的宏定義命令行D、在程序中凡是以’’}#’’開(kāi)始的語(yǔ)句行都是預(yù)處理命令行標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:預(yù)處理命令行是以“#”開(kāi)始的語(yǔ)句,預(yù)處理命令行的最后不能以分號(hào)表示結(jié)束,預(yù)處理命令行。其中宏定義的字符替換的定義格式為:#define標(biāo)識(shí)符字符串,預(yù)處理命令行是在系統(tǒng)對(duì)源程序進(jìn)行編譯之前進(jìn)行處理的,不是在程序執(zhí)行的過(guò)程中。15、若x和y代表整型數(shù),以下表達(dá)式中不能正確表示數(shù)學(xué)關(guān)系|x—y|<10的是A、abs(x-y)<10B、x-y>-10&x-y<10C、!(x-y)<-10‖!(y-x)>10D、(x-y)*(x—y)<100標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:數(shù)學(xué)關(guān)系}x-y}<10表示x和y的差的絕對(duì)值小于10,選項(xiàng)A使用了abd求絕對(duì)值函數(shù),滿足要求;選項(xiàng)B是x和y的差值在-10和10之間,滿足要求;選項(xiàng)C是x和y的差值大于-10或者y和x的差值小于10,不滿足要。16、有以下程序#includemain(){intx=8;for(;x>0;x--){if(x%3){printf("%d,",x--);continue;}printf("%d,",--x);}}程序的運(yùn)行結(jié)果是()。A、7,4,2,B、8,7,5,2,C、9,7,6,4,D、8,5,4,2,標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:coutinue的作用是跳出循環(huán)體中剩余的語(yǔ)句而進(jìn)行下一次循環(huán)?第一次循環(huán)x的值為8,循環(huán)體中if條件成立,打印x的值8后將x減1,再執(zhí)行continue語(yǔ)句,跳出本次循環(huán)?第二次判斷循環(huán)條件時(shí),x的值變?yōu)?,不滿足循環(huán)體內(nèi)if條件,執(zhí)行打印--x的操作,即打印5后跳出循環(huán)?第三次判斷循環(huán)條件時(shí)x的值為4,滿足循環(huán)體中if條件,執(zhí)行打印x--的操作,即打印4,后將x值減一,執(zhí)行continue語(yǔ)句,跳出本次循環(huán),第四次判斷循環(huán)條件時(shí)x的為2,滿足循環(huán)體中if條件,打印x--,即打印2后將x減一,執(zhí)行continue語(yǔ)句,跳出本次循環(huán)?在進(jìn)行for條件表達(dá)式中第三個(gè)表達(dá)式x--的操作后x的值為0,不滿足條件結(jié)束循環(huán)?所以打印結(jié)果為8,5,4,2。17、有以下程序main(){intk=5;while(--k)printf("%d",k-=3);printf("\n");}執(zhí)行后的輸出結(jié)果是A、2B、4C、1D、死循環(huán)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在程序語(yǔ)句中,k的初始值為5,進(jìn)行第1次while循環(huán)后,k自減1為4,非0,執(zhí)行循環(huán)體里的printf語(yǔ)句,輸出1,此時(shí)k的值變?yōu)?。程序執(zhí)行第2次循環(huán)時(shí),k自減1變?yōu)?,為假,退出while循環(huán)語(yǔ)句。所以程序的最后結(jié)果為1。18、以下錯(cuò)誤的定義語(yǔ)句是A、intx[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};B、intx[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};C、intx[][3]={{0},{1},{1,2,3}};D、intx[][3]={1,2,3,4};標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:二維數(shù)組定義的一般形式是:類型說(shuō)明符數(shù)組名[常量表達(dá)式1][常量表達(dá)式2]。其中常量表達(dá)式1表示第一維下標(biāo)的長(zhǎng)度,常量表達(dá)式2表示第二維下標(biāo)的長(zhǎng)度。如對(duì)二維數(shù)組全部元素賦初值,則第一維的長(zhǎng)度可以不給出。但如果對(duì)x[4][]賦值,只確定行數(shù),而不確定列數(shù),就無(wú)法正確賦值。因此B選項(xiàng)正確。19、有以下程序#includestructSTU{charname[9];charsex;intscore[2];};voidf(structSTUa[]){structSTUb={"zhao",’m’,85,90);a[1]=b;}main(){structSTUc[2]={{"Qian",’f’,95,92},{"Sun",’m’,98,99}};f(c);printf("%s,%c,%d,%d,",c[0].name,c[0].sex,c[0].score[0],c[0].score[1]);printf("%s,%c,%d,%d\n",",c[1].name,c[1].sex,c[1].score[0],c[1].score[1]);}程序運(yùn)行后輸出結(jié)果是A、Qian,f,95,92,Sun,m,98,99B、Zhao,m,85,90,Sun,m,98,99C、Qian,f,95,92,Zhao,m,85,90D、Zhao,m,85,90,Qian,f,95,92標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在主函數(shù)中,定義了結(jié)構(gòu)體STU數(shù)組c[2],并對(duì)其賦初始值。執(zhí)行f(c)時(shí),在函數(shù)f()中,把結(jié)構(gòu)體變量b的值賦給了c[1]。20、若有以下程序#include<stdio.h>main(){inta=1,b=2,c=3,d=4,r=0;if(a!=1);elser=1;if(b==2)r+=2;else;if(c!=3)r+=3;else;if(d==4)r+=4;printf("%d\n",r);}則程序的輸出結(jié)果是A、10B、6C、7D、3標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:程序代碼中有四條并列的if語(yǔ)句,第一條if表達(dá)式a!=1不成立,執(zhí)行else分支,r=1;第二條if表達(dá)式b==2成立,執(zhí)行r+=2,r=3;第三條if語(yǔ)句c!=3不成立,執(zhí)行else分支,分支為空語(yǔ)句;第四條if分支d==4成立,執(zhí)行該if分支語(yǔ)句,r+=4,r=7。21、以下敘述中正確的是()。A、全局變量的存儲(chǔ)類別可以是靜態(tài)類B、對(duì)于變量而言,"定義"和"說(shuō)明"這兩個(gè)詞實(shí)際上是同一個(gè)意思C、在復(fù)合語(yǔ)句中不能定義變量D、函數(shù)的形式參數(shù)不屬于局部變量標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:全局變量可以用static修飾,限制該變量只能在當(dāng)前文件有效而不能被其他文件訪問(wèn),選項(xiàng)A)正確;變量的說(shuō)明只是向編譯程序描述變量類型,但不為該變量分配存儲(chǔ)空間,變量的定義才為該變量分配存儲(chǔ)空間,選項(xiàng)B)錯(cuò)誤;在語(yǔ)句塊內(nèi)可以定義變量,定義的變量為局部變量,選項(xiàng)C)錯(cuò)誤;函數(shù)的形參相當(dāng)于在函數(shù)內(nèi)部定義的一個(gè)變量,屬于局部變量,選項(xiàng)D)錯(cuò)誤;答案選A)。22、下面選項(xiàng)中的程序段,沒(méi)有編譯錯(cuò)誤的是A、char*sp,s[10];sp="Hello";B、char*sp,s[10];s="Hello";C、charstr1[10]="computer",str2[10];str2=str1;D、charmark[];mark="PROGRAM";標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查字符數(shù)組的初始化以及指向字符串的指針,B選項(xiàng)不能直接將字符串賦值給數(shù)組名,C選項(xiàng)不能將兩個(gè)字符數(shù)組直接互相賦值,D選項(xiàng)中不能這樣定義charmark[],必須指定長(zhǎng)度或者直接初始化。23、有以下程序#include<stdio.h>intfun(int(*s)[4],intn,intk){intm,i;m=s[0][k];for(i=l;i<n;i++)if(s[i][k]>m)m=s[i][k];returnm;}main(){inta[4][4]={{1,2,3,4),{11,12,13,14},{2l,22,23,24},{31,32,33,34}};printf("%d\n",fun(a,4,0));}程序的運(yùn)行結(jié)果是A、31B、34C、4D、32標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:函數(shù)fun(int(*s)[4],intn,intk)的功能是返回二維數(shù)組第k列的最大元素。在主函數(shù)中由于二維數(shù)組a[4][4]已經(jīng)初始化,所以fun(a,4,0)的值是二維數(shù)組a[][]第1列中的最大元素31。24、以下敘述中正確的是A、C語(yǔ)句必須在一行內(nèi)寫完B、C程序中的每一行只能寫一條語(yǔ)句C、C語(yǔ)言程序中的注釋必須與語(yǔ)句寫在同一行D、簡(jiǎn)單C語(yǔ)句必須以分號(hào)結(jié)束標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C語(yǔ)句可以跨行來(lái)寫,但是必須以分號(hào)結(jié)束,所以A選項(xiàng)錯(cuò)誤。C程序中的一行可以有多條語(yǔ)句,所以B選項(xiàng)錯(cuò)誤。C語(yǔ)言中的注釋語(yǔ)句可以與原語(yǔ)句放在一行也可以不放在一行,所以C選項(xiàng)錯(cuò)誤。25、下面關(guān)于"EOF"的敘述,正確的是A、EOF的值等于0B、EOF是在庫(kù)函數(shù)文件中定義的符號(hào)常量C、文本文件和二進(jìn)制文件都可以用EOF作為文件結(jié)束標(biāo)志D、對(duì)于文本文件,fgetc函數(shù)讀入最后一個(gè)字符時(shí),返回值是EOF標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在C語(yǔ)言中,或更精確地說(shuō)成C標(biāo)準(zhǔn)函數(shù)庫(kù)中表示文件結(jié)束符(endoffile)。在while循環(huán)中以EOF作為文件結(jié)束標(biāo)志,這種以EOF作為文件結(jié)束標(biāo)志的文件,必須是文本文件。在文本文件中,數(shù)據(jù)都是以字符的ASCII代碼值的形式存放。我們知道,ASCII代碼值的范圍是0~255,不可能出現(xiàn)-1,因此可以用EOF作為文件結(jié)束標(biāo)志。國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷第3套一、選擇題(本題共40題,每題1.0分,共40分。)1、下列敘述中正確的是A、有一個(gè)以上根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是非線性結(jié)構(gòu)B、只有一個(gè)根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是線性結(jié)構(gòu)C、循環(huán)鏈表是非線性結(jié)構(gòu)D、雙向鏈表是非線性結(jié)構(gòu)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在數(shù)據(jù)結(jié)構(gòu)中,樹(shù)這類的數(shù)據(jù)結(jié)構(gòu)只有一個(gè)根結(jié)點(diǎn),但它不是線性結(jié)構(gòu)。2、在快速排序法中,每經(jīng)過(guò)一次數(shù)據(jù)交換(或移動(dòng))后()。A、只能消除一個(gè)逆序B、能消除多個(gè)逆序C、不會(huì)產(chǎn)生新的逆序D、消除的逆序個(gè)數(shù)一定比新產(chǎn)生的逆序個(gè)數(shù)多標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在一個(gè)排列中,如果一對(duì)數(shù)的前后位置與大小順序相反,即前面的數(shù)大于后面的數(shù),那么它們就稱為一個(gè)逆序??焖倥判虻乃枷胧牵簭木€性表中選取一個(gè)元素,設(shè)為T,將線性表中后面小于T的元素移到前面,而前面大于T的元素移到后面,結(jié)果就將線性表分成兩部分(稱兩個(gè)子表),T插入到其分割線的位置處,這個(gè)過(guò)程稱為線性表的分割,然后再用同樣的方法對(duì)分割出的子表再進(jìn)行同樣的分割??焖倥判虿皇菍?duì)兩個(gè)相鄰元素進(jìn)行比較,可以實(shí)線通過(guò)一次交換而消除多個(gè)逆序,但由于均與T(基準(zhǔn)元素)比較,也可能會(huì)產(chǎn)生新的逆序。3、設(shè)有以下程序段:intx=2009,y=2010;printf("%d\n",(x,y));則以下敘述正確的是()。A、輸出語(yǔ)句中格式說(shuō)明符的個(gè)數(shù)少于輸出項(xiàng)的個(gè)數(shù),不能正確輸出B、運(yùn)行時(shí)產(chǎn)生錯(cuò)誤信息C、輸出值為2009D、輸出值為2010標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:程序段中的輸出項(xiàng)是一個(gè)逗號(hào)表達(dá)式(x,y),其值就是右邊變量y的值,因此輸出項(xiàng)的個(gè)數(shù)和控制轉(zhuǎn)換說(shuō)明符的個(gè)數(shù)相等,輸出為2010。C語(yǔ)言規(guī)定,若輸出格式說(shuō)明符的個(gè)數(shù)少于輸出項(xiàng)的個(gè)數(shù)時(shí),多余的輸出項(xiàng)不予輸出;若輸出格式說(shuō)明符的個(gè)數(shù)多余輸出項(xiàng)的個(gè)數(shù)時(shí),則缺少的輸出項(xiàng)輸出不定值,并不產(chǎn)生出錯(cuò)信息。4、層次型、網(wǎng)狀型和關(guān)系型數(shù)據(jù)庫(kù)劃分原則是()。A、記錄長(zhǎng)度B、文件的大小C、聯(lián)系的復(fù)雜程度D、數(shù)據(jù)之間的聯(lián)系方式標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:層次模型的基本結(jié)構(gòu)是樹(shù)形結(jié)構(gòu),網(wǎng)狀模型是一個(gè)不加任何條件限制的無(wú)向圖,關(guān)系模型采用二維表來(lái)表示,所以3種數(shù)據(jù)庫(kù)的劃分原則是數(shù)據(jù)之間的聯(lián)系方式。5、下面選項(xiàng)中合法的字符常量是A、XB、’abc’C、’X’D、’\’標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在程序中用單引號(hào)把一個(gè)字符括起來(lái)作為字符常量。但是為了表示字符“\”要用兩個(gè)“\\”表示一個(gè)反斜杠。6、函數(shù)rewind(fp)的作用是()。A、使fp指定的文件的位置指針重新定位到文件的開(kāi)始位置B、將fp指定的文件的位置指針指向文件中所要求的特定位置C、使fp指定的文件的位置指針向文件的末尾D、使fp指定的文件的位置指針自動(dòng)移至下一個(gè)字符位置標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:位置指針重返文件頭函數(shù)rewind()的調(diào)用形式為:rewind(fp)。其中,“fp”是指向文件的文件型指針。rewind(fp)的功能是:使fp指定的文件的位置指針重新定位到文件的開(kāi)始位置。7、結(jié)構(gòu)化程序由三種基本結(jié)構(gòu)組成,三種基本結(jié)構(gòu)組成的算法A、可以完成任何復(fù)雜的任務(wù)B、只能完成部分復(fù)雜的任務(wù)C、只能完成符合結(jié)構(gòu)化的任務(wù)D、只能完成一些簡(jiǎn)單的任務(wù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:結(jié)構(gòu)化程序由3種基本結(jié)構(gòu)組成:順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。已經(jīng)得到證明,由3種基本結(jié)構(gòu)組成的算法結(jié)構(gòu)可以解決任何復(fù)雜的問(wèn)題。8、表達(dá)式:(int)((double)9/2)-9%2的值是A、0B、4C、3D、5標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:這個(gè)表達(dá)式的計(jì)算過(guò)程為,首先求出9除以2的商等于4,再把其強(qiáng)制轉(zhuǎn)化為實(shí)型數(shù)據(jù)為4.0,然后再?gòu)?qiáng)制轉(zhuǎn)4,減去9對(duì)2求余數(shù)1,得到其結(jié)果等于3。9、下面描述中,不屬于軟件危機(jī)表現(xiàn)的是A、軟件過(guò)程不規(guī)范B、軟件開(kāi)發(fā)生產(chǎn)率低C、軟件質(zhì)量難以控制D、軟件成本不斷提高標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:軟件危機(jī)主要表現(xiàn)在以下6個(gè)方面:①軟件需求的增長(zhǎng)得不到滿足。②軟件開(kāi)發(fā)成本和進(jìn)度無(wú)法控制。③軟件質(zhì)量難以保證。④軟件不可維護(hù)或維護(hù)程度非常低。⑤軟件的成本不斷提高。⑥軟件開(kāi)發(fā)生產(chǎn)率的提高趕不上硬件的發(fā)展和應(yīng)用需求增長(zhǎng)。10、有如下說(shuō)明:intarray[10]={1,2,3,4,5,6,7,8,9,10},*p=array;則數(shù)值為9的表達(dá)式是________。A、p+8B、*p+9C、*p+=9D、*(p+8)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:指針P指向數(shù)組array,9所在的元素是array[8],與array[0]的地址差值為8,所以正確的訪問(wèn)形式是*(p+8)或p[8]。11、定義學(xué)生選修課程的關(guān)系模式如下:S(S#,Sn,Sd,Sa)(其屬性分別為學(xué)號(hào)、姓名、所在系、年齡);C(C#,Cn,P#)(其屬性分別為課程號(hào)、課程名、先選課);SC(S#,C#,C)(其屬性分別學(xué)號(hào)、課號(hào)和成績(jī))。檢索選修課程名為“操作系統(tǒng)”的成績(jī)?cè)?0分以上(含90分)的學(xué)生姓名的表達(dá)式是()。A、

B、

C、

D、

標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:課程名“操作系統(tǒng)”需要在C表中進(jìn)行查找,成績(jī)?cè)凇?0分以上(含90分)”需要在SC表中查找,“學(xué)生姓名”需要在S表中查找,所以必須對(duì)上述三個(gè)表進(jìn)行連接后再進(jìn)行操作。具體操作是:先從C表中選出課程名是“操作系統(tǒng)”的行σCn=“操作系統(tǒng)”(C),但是只要“課程”列πC#(σCn=“操作系統(tǒng)”(C)),得到篩選結(jié)果的一個(gè)小表;在SC表中找出“90分以上(含90分)”的行σG>=90(SC),得到第二個(gè)小表;兩個(gè)小表進(jìn)行連接操作并從結(jié)果中取“學(xué)號(hào)”列πS#(πC#(σCn=“操作系統(tǒng)”(C))σG>=90(SC));這樣得到的結(jié)果再與S表連接并從結(jié)果中只取“姓名”列πSn(πS#(πC#(σCn=“操作系統(tǒng)”)(C))σG>=90(SC))S)。12、以下程序的輸出結(jié)果是()。#includeintm=13;intfun(intx,inty){intm=2;retum(x*y-m);}main(){inta=7,b=6;printf("%d",fun(a,b)/m);}A、1B、3C、7D、10標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查的是函數(shù)調(diào)用時(shí)的參數(shù)的作用域。在函數(shù)調(diào)用時(shí),當(dāng)全局變量和局部變量的名稱相同時(shí),在局部變量的作用域內(nèi),局部變量起作用,因而在fun函數(shù)內(nèi)m的應(yīng)該等于2,main中的m為13,所以返回值為7x6-2=40,而fun(a,b)/m值為40/13=3。13、以下敘述中正確的是A、由&&構(gòu)成的邏輯表達(dá)式與由‖構(gòu)成的邏輯表達(dá)式都有“短路"現(xiàn)象B、C語(yǔ)言的關(guān)系表達(dá)式:0C、邏輯“非”(即運(yùn)算符!)的運(yùn)算級(jí)別是最低的D、邏輯“或”(即運(yùn)算符‖)的運(yùn)算級(jí)別比算術(shù)運(yùn)算要高標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:邏輯表達(dá)式的運(yùn)算比較復(fù)雜,有短路現(xiàn)象,也就是首先計(jì)算“邏輯與”或者“邏輯或”運(yùn)算的第一個(gè)運(yùn)算量的值,根據(jù)表達(dá)式的值決定是否進(jìn)行第二個(gè)量的值的計(jì)算?!斑壿嬇c”和“邏輯或”運(yùn)算低于關(guān)系運(yùn)算和算術(shù)運(yùn)算。但是“邏輯非”運(yùn)算卻高于算術(shù)運(yùn)算。14、以下選項(xiàng)中與iffa:1)a=b;elsea++;語(yǔ)句功能不同的switch語(yǔ)句是A、switch(a=1){case0:a=b;break;case1:a++;}B、switch(a){case1:a=b;break;default:a++;}C、switch(a){default:a++;break;case1:a=b;}D、switch(a=1){case1:a=b;break;case0:a++;}標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:ifelse語(yǔ)句的含義是,如果變量a的值等于1,則把變量b的值賦給變量a,否則,變量a的值加l。在本題的4個(gè)選項(xiàng)中,與其含義不同的是選項(xiàng)A),表示如果變量a的值等于1,則把變量a的值加1,否則,把變量b的值賦給變量a。15、代碼編寫階段可進(jìn)行的軟件測(cè)試是A、單元測(cè)試B、集成測(cè)試C、確認(rèn)測(cè)試D、系統(tǒng)測(cè)試標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:?jiǎn)卧獪y(cè)試是對(duì)軟件組成單元進(jìn)行測(cè)試,其目的是檢驗(yàn)軟件基本組成單位的正確性,測(cè)試的對(duì)象是軟件設(shè)計(jì)的最小單位是模塊,可在代碼編寫階段測(cè)試。集成測(cè)試也稱聯(lián)合測(cè)試,將程序模塊采用適當(dāng)?shù)募刹呗越M裝起來(lái),對(duì)系統(tǒng)的接口及集成后的功。系統(tǒng)測(cè)試主要包括功能測(cè)試、界面測(cè)試、可靠性測(cè)試、易用性測(cè)試、性能測(cè)試。功能測(cè)試主要針對(duì)包括功能可用性、功能實(shí)現(xiàn)程度(功能流程&業(yè)務(wù)流程、數(shù)據(jù)處理&業(yè)務(wù)數(shù)據(jù)處理)方面測(cè)試。16、下列定義變量的語(yǔ)句中錯(cuò)誤的是()。A、int_int;B、doubleint_;C、charFor;D、floatUS$:標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C語(yǔ)言規(guī)定,變量的標(biāo)識(shí)符只能由字母、數(shù)字和下劃線3種字符組成,且首字符必須為字母或下劃線。在C語(yǔ)言中大寫字母和小寫字母被認(rèn)為是兩個(gè)不同的字符。選項(xiàng)A定義的變量標(biāo)識(shí)符int和選項(xiàng)B定義的變量標(biāo)識(shí)符血與C語(yǔ)言的關(guān)鍵字int是不同的,是正確的變量標(biāo)識(shí)。選項(xiàng)C定義的變量標(biāo)識(shí)符For與C語(yǔ)言中的關(guān)鍵字for是兩個(gè)不同的標(biāo)識(shí)符,所以選項(xiàng)C是正確的,而選項(xiàng)D包含有特殊字符$,因而其不符合C語(yǔ)言的變量命名規(guī)定。17、以下選項(xiàng)中,能用作數(shù)據(jù)常量的是()。A、115LB、0118C、1.5e1.5D、o115標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:數(shù)據(jù)后面加’L’表示該數(shù)據(jù)為長(zhǎng)整型,選項(xiàng)A)正確。以0開(kāi)頭表示為八進(jìn)制整常數(shù),不能出現(xiàn)數(shù)字8,選項(xiàng)B)錯(cuò);科學(xué)計(jì)數(shù)法中,e/E前后必須有數(shù)字并且后面的數(shù)字必須為整數(shù),選項(xiàng)C)錯(cuò);八進(jìn)制數(shù)是以數(shù)字0開(kāi)始而不是字母o,選項(xiàng)D)錯(cuò)。答案選A)。18、以下敘述正確的是A、C語(yǔ)言程序是由過(guò)程和函數(shù)組成的B、C語(yǔ)言函數(shù)可以嵌套調(diào)用,例如:fun(fun(x))C、C語(yǔ)言函數(shù)不可以單獨(dú)編譯D、C語(yǔ)言中除了main函數(shù),其他函數(shù)不可作為單獨(dú)文件形式存在標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在C語(yǔ)言中,允許函數(shù)的嵌套調(diào)用,即遞歸調(diào)用。在C語(yǔ)言中不存在過(guò)程的概念,在C語(yǔ)言中函數(shù)允許單獨(dú)編譯,可以作為單獨(dú)的文件形式存在。19、有三個(gè)關(guān)系R、S和T如下:由關(guān)系R和S通過(guò)運(yùn)算得到關(guān)系T,則所使用的運(yùn)算為A、笛卡爾積B、交C、并D、自然連接標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在實(shí)際應(yīng)用中,最常用的連接是一個(gè)叫自然連接的特例。它滿足下面的條件:兩關(guān)系間有公共域;通過(guò)公共域的相等值進(jìn)行連接。通過(guò)觀察三個(gè)關(guān)系R,S,T的結(jié)果可知關(guān)系T是由關(guān)系R和S進(jìn)行自然連接得到的。20、C語(yǔ)言中double類型數(shù)據(jù)占字節(jié)數(shù)為A、4B、12C、8D、16標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:double類型所占字節(jié)為8。21、在16位編譯系統(tǒng)上,若有定義“inta[]={10,20,30},*p=a;”,當(dāng)執(zhí)行“p++;”后,下列說(shuō)法錯(cuò)誤的是A、p向高地址移了一個(gè)字節(jié)B、p向高地址移了一個(gè)存儲(chǔ)單元C、p向高地址移了兩個(gè)字節(jié)D、p與a+1等價(jià)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查數(shù)組和數(shù)組指針。a是一個(gè)整型數(shù)組,p指針指向a數(shù)組,即p指向a數(shù)組的首元素的地址,因此p++之后,p往高地址移動(dòng),指向首元素后面一個(gè)元素的地址。22、有以下程序#include#defineSUB(X,Y)(X+1)*Ymain(){inta=3,b=4;printf("%d\n",SUB(a++,b++));)程序運(yùn)行后的輸出結(jié)果是A、20B、12C、16D、25標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:宏展開(kāi)的結(jié)果(a+++1)*b++,后綴自加表達(dá)式參加運(yùn)算,先用a和b的初值得到表達(dá)式的值,進(jìn)行計(jì)算,然后a和b在自加。因此計(jì)算結(jié)果為16。23、有以下程序#includemain(){printf("%d\n",NULL);}程序運(yùn)行后的輸出結(jié)果是()。A、0B、變量無(wú)定義,輸出不確定C、-1D、1標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:NULL為一個(gè)符號(hào)常量,對(duì)應(yīng)的ASCII碼值為0,答案選A。24、若有定義語(yǔ)句:inta[3][6];,按在內(nèi)存中的存放順序,a數(shù)組的第10個(gè)元素是A、a[0][4]B、a[1][3]C、a[0][3]D、a[1][4]標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查多維數(shù)組的定義和使用。a是一個(gè)二維數(shù)組,有3行6列。即每行6個(gè)元素,a的第10個(gè)元素位于第二行的第四個(gè)位置,即a[][3]。25、若有定義語(yǔ)句:doublex,y,*px,*py;執(zhí)行px=&x;py=&y;正確的輸入語(yǔ)句是A、scanf("%f%f"&x,&y);B、scanf("%f%f",x,y);C、scanf("%1f%le",px,py);D、scanf("%1f%1f",x,y);標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查scanf語(yǔ)句。scanf()函數(shù)的一般格式為:scanf("格式字符串",輸入項(xiàng)首地址表),對(duì)于。aouble類型數(shù)據(jù),輸入時(shí)候要加上1修飾,否則會(huì)產(chǎn)生錯(cuò)誤的輸入信息,同時(shí)輸入項(xiàng)必須是地址,可以使保存變量地址的指針變量。26、有以下程序main(){inta[5]={2,4,6,8,10),**P,**k;P=a:k=&p;printf(’’%d’’,*(p++));printf(’’%d\n’’,**k);}程序運(yùn)行后的輸出結(jié)果是A、44B、24C、22D、46標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:主函數(shù)中指針變量p指向數(shù)組a中下標(biāo)為0的元素,k指向p,那么*(p++)的值為2,p指向數(shù)組中下標(biāo)為1的元素,k指向p,所以**k的值為4。27、有以下程序#includevoidfun(char*t,char*s){while(*t!=0)t++;while((*t++=*s++)!=0);}main(){charss[10]="ace",aa[10]="bbxxyy";fun(ss,aa);printf("%s,%s\n",ss,aa);}程序的運(yùn)行結(jié)果是A、ace,bbxxyyB、accxxyy,bbxxyyC、accbbxxyy,bbxxyyD、accxyy,bbxxyy標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:fun函數(shù)中,第1個(gè)while循環(huán)語(yǔ)句使指針t指向字符串的末尾。第2個(gè)while循環(huán)語(yǔ)句實(shí)現(xiàn)了字符串t和s的連接。主函數(shù)中語(yǔ)句fun(ss,aa)的功能是將字符串a(chǎn)a連接到字符串ss的末尾。28、有以下程序#includeintf(intx){inty;if(x==0‖x==1)return(3);y=x*x—f(x一2);returny;}main(){intz;z=f(3);printf("%d\n",z);}程序的運(yùn)行結(jié)果是A、9B、0C、6D、8標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:主函數(shù)調(diào)用f()函數(shù),將實(shí)參3傳遞給x,進(jìn)行if條件語(yǔ)句的判斷不成立,接著執(zhí)行y=3*3-f(1),再執(zhí)行f(1),而f(1)滿足if條件語(yǔ)句,所以f[1)的值為3,代入y=3*3-f(1)=9-3=6。29、以下敘述中正確的是A、語(yǔ)句“charstr[10]="string!";”和“charstr[10]={"string!"};”并不等價(jià)B、對(duì)于一維字符數(shù)組,不能使用字符串常量來(lái)賦初值C、對(duì)于字符串常量“string!”,系統(tǒng)已自動(dòng)在最后加入了“’\0’”字符,表示串結(jié)尾D、在語(yǔ)句charstr[]="string!";中,數(shù)組str的大小等于字符串的長(zhǎng)度標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在C語(yǔ)言中,字符串是借助于字符型一維數(shù)組來(lái)存放的,可以借助在定義時(shí)初始化以及輸入來(lái)把字符串存入數(shù)組,并規(guī)定以字符’\0’作為“字符串結(jié)束標(biāo)志”?!?’是一個(gè)轉(zhuǎn)義字符,稱為空值,它的ASCII碼值為0?!?’作為標(biāo)志占甩存儲(chǔ)空間,但不計(jì)入字符串的實(shí)際長(zhǎng)度。在C語(yǔ)言中,系統(tǒng)在每個(gè)字符串的最后自動(dòng)加入一個(gè)字符(’\0’)作為字符串的結(jié)束標(biāo)志。30、若有以下函數(shù)首部intfun(doublex[10],int*n)則下面針對(duì)此函數(shù)的函數(shù)聲明語(yǔ)句中正確的是A、intfun(double,int);B、intfun(double*x,intn);C、intfun(double*,int*);D、intfun(doublex,int*n);標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:函數(shù)說(shuō)明的一般形式為:類型名函數(shù)名(參數(shù)類型1,參數(shù)類型2,……)。因?yàn)楹瘮?shù)intfun(doublex[10],int*n)的第1個(gè)形式參數(shù)是一個(gè)雙精度型的一維數(shù)組,第2個(gè)參數(shù)是一個(gè)整型指針,并返回一個(gè)整型值。一維數(shù)組的名字表示的是一維數(shù)組的地址。31、有以下程序,程序運(yùn)行后的輸出結(jié)果是main(){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);}A、1,2,1,2B、1,2,2,1C、2,1,2,1D、2,1,1,2標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在主函數(shù)定義了3個(gè)整數(shù)指針變量p,q,r,并且使p指向m,q指向n,再執(zhí)行“r=p;p=q;q=r;”這三條語(yǔ)句,使q指向m,p指向n,再輸出變量“m,n,*p,*q”時(shí),它們值分別為1,2,2,1。32、有以下程序structS{inta;intb;};main(){structSa,*p=&a;a.a(chǎn)=99;printf("%d\n",_______);}程序要求輸出結(jié)構(gòu)體中成員a的數(shù)據(jù),以下不能填入橫線處的內(nèi)容是A、a.a(chǎn)B、*p.a(chǎn)C、p->aD、(*p).a(chǎn)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:如果p指向結(jié)構(gòu)體,那么下面三種形式都可以訪問(wèn)結(jié)構(gòu)體的成員:結(jié)構(gòu)體變量.成員名、(*p).成員名、p->成員名。33、有以下程序main(){unsignedchara=2,b=4,c=5,d:d=a|b;d&=c;printf("%d\n",d);}程序運(yùn)行后的輸出結(jié)果是A、3B、5C、4D、6標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查位運(yùn)算,|為按位或運(yùn)算,&為按位與運(yùn)算,按位與(&)運(yùn)算符的作用是:把參加運(yùn)算的兩個(gè)運(yùn)算數(shù)按對(duì)應(yīng)的二進(jìn)制位分別進(jìn)行“與”運(yùn)算,當(dāng)兩個(gè)相應(yīng)的位都為1時(shí),該位的結(jié)果為1;否則為0。按位或(1)的運(yùn)算規(guī)則是:參加運(yùn)算的兩個(gè)運(yùn)算數(shù)中,只要兩個(gè)相應(yīng)的二進(jìn)制位中一個(gè)為1,則該位的運(yùn)算結(jié)果即為1;只有當(dāng)兩個(gè)相應(yīng)位的數(shù)都為0時(shí),該位的運(yùn)算結(jié)果才為0。首先d=2|4值為6,d=6&5值為4。34、以下敘述中正確的是A、在一個(gè)程序中,允許使用任意數(shù)量的#include命令行B、在包含文件中,不得再包含其他文件C、#include命令行不能出現(xiàn)在程序文件的中間D、雖然包含文件被修改了,包含該文件的源程序也可以不重新進(jìn)行編譯和連接標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查預(yù)處理中文件包含的概念,包含文件中可以包含其他文件,B選項(xiàng)錯(cuò)誤,#include可以出現(xiàn)在程序文件的中間,C選項(xiàng)錯(cuò)誤,包含文件被修改了,包含該文件的源程序必須重新進(jìn)行編譯和連接。35、下面結(jié)構(gòu)體的定義語(yǔ)句中,錯(cuò)誤的是A、structord{intx;inty;intz;};structorda;B、structord{intx;inty;intz;}structorda;C、structord{intx;inty;intz;}a;D、struct{intx;inty;intz;}a;標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在選項(xiàng)B)中,由于在定義完結(jié)構(gòu)體后缺少分號(hào)“;”,所以這是一條不完整的語(yǔ)句,因而是錯(cuò)誤的。36、以下選項(xiàng)中的編譯預(yù)處理命令行,正確的是()。A、#definePI3.14B、##defineeps0.001C、#DEFINETRUED、#defineintINT標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:宏定義的一般形式為"#define宏名字符串(或數(shù)值)",宏名的命名規(guī)則要符合用戶標(biāo)識(shí)符的命名規(guī)則,所以答案選A。37、以下敘述中正確的是()。A、在程序中,允許用typedef來(lái)說(shuō)明一種新的類型名B、使用typedef說(shuō)明新類型名時(shí),其格式是:typedef新類型名原類型名;C、使用typedef說(shuō)明新類型名時(shí),后面不能加分號(hào)D、在使用typedef改變?cè)愋偷拿Q后,只能使用新的類型名標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:typedef為類型定義符,使用的一般形式為"typedef原類型名新類型名;",它用于給已知類型取別名,作用是用"新類型名"代替"原類型名",并沒(méi)有產(chǎn)生新的數(shù)據(jù)類型,而且原有類型名依然有效,"新類型名"與"原類型名"允許同時(shí)使用,所以答案選A。38、有以下程序#includemain(){FILE*fp;inti,a[6]={1,2,3,4,5,6};fp=fopen("d2.dat","w+");for(i=0;i<6;i++)fprintf(fp,"%d\n",a[i]);rewind(fp);for(i=0;i<6;i++)fscanf(fp,"%d",&a[5-i]);fclose(fp);for(i=0;i<6;i++)printf("%d,",a[i]);}程序運(yùn)行后輸出結(jié)果是()A、6,5,4,3,2,1,B、1,2,3,4,5,6,C、4,5,6,1,2,3,D、1,2,3,3,2,1,標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:文件d2.dat以讀寫的方式"w+"打開(kāi),第一個(gè)for循環(huán)將數(shù)組a中的數(shù)據(jù)寫入該文件中,然后將文件指針置于文件首,順序讀出文件中的數(shù)據(jù)并逆序存放在數(shù)組a中,所以輸出結(jié)果為選項(xiàng)A)。39、對(duì)下列二叉樹(shù)進(jìn)行前序遍歷的結(jié)果為A、DYBEAFCZXB、YDEBFZXCAC、ABDYECFXZD、ABCDEFXYZ標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:前序遍歷是指在訪問(wèn)根結(jié)點(diǎn)、遍歷左子樹(shù)與遍歷右子樹(shù)這三者中,首先訪問(wèn)根結(jié)點(diǎn),然后遍歷左子樹(shù),最后遍歷右子樹(shù);并且,在遍歷左右子樹(shù)時(shí),仍然先訪問(wèn)根結(jié)點(diǎn),然后遍歷左子樹(shù),最后遍歷右子樹(shù)。前序遍歷描述為:若二叉樹(shù)為空,則執(zhí)行空操作。否則:①訪問(wèn)根結(jié)點(diǎn);②前序遍歷左子樹(shù);③前序遍歷右子樹(shù),C正確。40、以下敘述中正確的是A、if語(yǔ)句只能嵌套一層B、if子句和else子句中可以是任意的合法的C語(yǔ)句C、不能在else子句中再嵌套if語(yǔ)句D、改變if-else語(yǔ)句的縮進(jìn)格式,會(huì)改變程序的執(zhí)行流程標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:A選項(xiàng)中,if語(yǔ)句的嵌套沒(méi)有規(guī)定層數(shù);C選項(xiàng)中,可以在else子句中再嵌套if語(yǔ)句;D選項(xiàng)中,改變if-else語(yǔ)句的縮進(jìn)格式,不會(huì)改變程序的執(zhí)行流程,需要注意if和else的配對(duì)問(wèn)題。因此B選項(xiàng)正確。國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷第4套一、選擇題(本題共40題,每題1.0分,共40分。)1、數(shù)據(jù)字典(DD)所定義的對(duì)象都包含于()。A、數(shù)據(jù)流圖(DFD圖)B、程序流程圖C、軟件結(jié)構(gòu)圖D、方框圖標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在數(shù)據(jù)流圖中,對(duì)所有元素都進(jìn)行了命名,所有名字的定義集中起來(lái)就構(gòu)成了數(shù)據(jù)字典,因此選A選項(xiàng)。2、下列關(guān)于線性鏈表的敘述中,正確的是A、各數(shù)據(jù)結(jié)點(diǎn)的存儲(chǔ)空間可以不連續(xù),但它們的存儲(chǔ)順序與邏輯順序必須一致B、各數(shù)據(jù)結(jié)點(diǎn)的存儲(chǔ)順序與邏輯順序可以不一致,但它們的存儲(chǔ)空間必須連續(xù)C、進(jìn)行插入與刪除時(shí),不需要移動(dòng)表中的元素D、以上都不正確標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)稱為線性鏈表。在鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中,存儲(chǔ)數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ)空間可以不連續(xù),各數(shù)據(jù)結(jié)點(diǎn)的存儲(chǔ)順序與數(shù)據(jù)元素之間的邏輯關(guān)系可以不一致,而數(shù)據(jù)元素之間的邏輯關(guān)系是由指針域來(lái)確定的。3、一棵二叉樹(shù)中共有70個(gè)葉子結(jié)點(diǎn)與80個(gè)度為1的結(jié)點(diǎn),則該二叉樹(shù)中的總結(jié)點(diǎn)數(shù)為A、219B、221C、229D、231標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在二叉樹(shù)中,葉子結(jié)點(diǎn)個(gè)數(shù)為n0,則度為2的結(jié)點(diǎn)數(shù)n2=n0-1。本題中葉子結(jié)點(diǎn)的個(gè)數(shù)為70,所以度為2的結(jié)點(diǎn)個(gè)數(shù)為69,因而總結(jié)點(diǎn)數(shù)=葉子結(jié)點(diǎn)數(shù)+度為1的結(jié)點(diǎn)數(shù)+度為2的結(jié)點(diǎn)數(shù)=70+80+69=219。4、下列敘述中正確的是A、循環(huán)隊(duì)列是線性結(jié)構(gòu)B、循環(huán)隊(duì)列是線性邏輯結(jié)構(gòu)C、循環(huán)隊(duì)列是鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)D、循環(huán)隊(duì)列是非線性存儲(chǔ)結(jié)構(gòu)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:為充分利用向量空間,克服“假溢出”現(xiàn)象的方法是:將向量空間想象為一個(gè)首尾相接的圓環(huán),并稱這種向量為循環(huán)向量。存儲(chǔ)在其中的隊(duì)列稱為循環(huán)隊(duì)列(CircularQueue)。線性結(jié)構(gòu)是一個(gè)有序數(shù)據(jù)元素的集合。常用的線性結(jié)構(gòu)有:線性表,棧,隊(duì)列,雙隊(duì)列,數(shù)組,串。常見(jiàn)的非線性結(jié)構(gòu)有:二維數(shù)組,多維數(shù)組,廣義表,樹(shù)(二叉樹(shù)等),圖。5、以下敘述中錯(cuò)誤的是()。A、算法正確的程序可以有零個(gè)輸入B、算法正確的程序最終一定會(huì)結(jié)束C、算法正確的程序可以有零個(gè)輸出D、算法正確的程序?qū)τ谙嗤妮斎胍欢ㄓ邢嗤慕Y(jié)果標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:算法的特征:①有窮性,一個(gè)算法(對(duì)任何合法的輸人)在執(zhí)行有窮步后能夠結(jié)束,并月.在有限的時(shí)間內(nèi)宄成;②確定性,算法中的每一步都有確切的臺(tái)義;③可行性,鼻法中的操作能夠用已經(jīng)買現(xiàn)的基本運(yùn)算執(zhí)行有限次來(lái)實(shí)現(xiàn);④輸入,一個(gè)算法有零個(gè)或者多個(gè)輸入,零個(gè)輸入就是算法本身確定了初始條件;⑤輸出,一個(gè)算法有一個(gè)或者多個(gè)輸出,以反映出數(shù)據(jù)加工的結(jié)果,所以C選項(xiàng)錯(cuò)誤。6、C語(yǔ)言中char類型數(shù)據(jù)占字節(jié)數(shù)為A、2B、3C、1D、4標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:C語(yǔ)言中char類型數(shù)據(jù)占字節(jié)數(shù)為1。7、下列有關(guān)宏的敘述中不正確的是()。A、宏名必須用大寫字母表示B、雙引號(hào)中出現(xiàn)的宏名不進(jìn)行替換C、宏名無(wú)類型D、和其他語(yǔ)句的編譯同時(shí)進(jìn)行標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查宏的使用規(guī)則:①字符替換格式為“#define標(biāo)識(shí)符字符串”,其中“標(biāo)識(shí)符”稱為宏名,無(wú)類型;②雙引號(hào)中出現(xiàn)的宏名不替換;③宏名的定義通常用大寫字母,但不是必須用大寫字母;④宏定義不是賦值語(yǔ)句,不做語(yǔ)法檢查。8、下列關(guān)于數(shù)據(jù)庫(kù)設(shè)計(jì)的敘述中,正確的是()。A、在需求分析階段建立數(shù)據(jù)字典B、在概念設(shè)計(jì)階段建立數(shù)據(jù)字典C、在邏輯設(shè)計(jì)階段建立數(shù)據(jù)字典D、在物理設(shè)計(jì)階段建立數(shù)據(jù)字典標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:數(shù)據(jù)字典是在需求分析階段建立,在數(shù)據(jù)庫(kù)設(shè)計(jì)過(guò)程中不斷修改、充實(shí)和完善的。9、下列關(guān)于棧敘述正確的是()。A、棧頂元素最先能被刪除B、棧頂元素最后才能被刪除C、棧底元素永遠(yuǎn)不能被刪除D、棧底元素最先能被刪除標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:棧是先進(jìn)后出的數(shù)據(jù)結(jié)構(gòu),所以棧頂元素最后入棧卻最先被刪除。棧底元素最先入棧卻最后被刪除。所以選擇A。10、設(shè)變量已正確定義并賦值,下列表達(dá)式中正確的是()。A、x=y+z+5,++yB、iut(15.8%5)C、x=y*5=x+zD、x=25%5.0標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:B選項(xiàng)與D選項(xiàng)中取模運(yùn)算符%的左右兩個(gè)操作數(shù)均應(yīng)為整數(shù),所以錯(cuò)誤。C選項(xiàng)中不能將x+y的值賦給表達(dá)式y(tǒng)*5,所以C選項(xiàng)錯(cuò)誤。11、算法的時(shí)間復(fù)雜度是指()。A、算法的長(zhǎng)度B、執(zhí)行算法所需要的時(shí)間C、算法中的指令條數(shù)D、算法執(zhí)行過(guò)程中所需要的基本運(yùn)算次數(shù)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:算法的時(shí)間復(fù)雜度,是指執(zhí)行算法所需要的工作量,可以用算法在執(zhí)行過(guò)程中所需基本運(yùn)算的執(zhí)行次數(shù)來(lái)度量算法的工作量。12、對(duì)軟件系統(tǒng)總體結(jié)構(gòu)圖,下面描述中錯(cuò)誤的是A、深度等于控制的層數(shù)B、扇入是一個(gè)模塊直接調(diào)用的其他模塊數(shù)C、扇出是一個(gè)模塊直接調(diào)用的其他模塊數(shù)D、原子模塊一定是結(jié)構(gòu)圖中位于葉子結(jié)點(diǎn)的模塊標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:系統(tǒng)結(jié)構(gòu)圖是對(duì)軟件系統(tǒng)結(jié)構(gòu)的總體設(shè)計(jì)的圖形顯示。在需求分析階段,已經(jīng)從系統(tǒng)開(kāi)發(fā)的角度出發(fā),.把系統(tǒng)按功能逐次分割成層次結(jié)構(gòu),使每~部分完成簡(jiǎn)單的功能且各個(gè)部分之間又保持一定的聯(lián)系,這就是功能設(shè)計(jì)。在設(shè)計(jì)階段,基于這個(gè)功能的層次結(jié)構(gòu)把各個(gè)部分組合起來(lái)成為系統(tǒng)。13、軟件需求規(guī)格說(shuō)明書的作用不包括()。A、軟件設(shè)計(jì)的依據(jù)B、軟件可行性研究的依據(jù)C、軟件驗(yàn)收的依據(jù)D、用戶與開(kāi)發(fā)人員對(duì)軟件要做什么的共同理解標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:《軟件可行性分析報(bào)告》是軟件可行性研究的依據(jù)。14、若有定義:intx[10],*pt=x;,則對(duì)x數(shù)組元素的正確引用是()。A、pt+3B、*&x[10]C、*(pt+10)D、*(x+3)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:沒(méi)有A選項(xiàng)的引用形式。*與&放在一起作用抵消,但x[10]下標(biāo)10超出了數(shù)組下標(biāo)范圍,所以B選項(xiàng)錯(cuò)誤。最大只能引用到x[9],而*(pt+i)表示引用指針pt所指元素后的第i個(gè)元素,所以C選項(xiàng)錯(cuò)誤,最大只能為*(pt+9)。D選項(xiàng)正確。15、有以下程序:#includeintfun(intx){intP;if(x==0‖x==1)return3;P=x—fun(x一2);return(P);}main(){printf(“%d\n”,fun(9));}程序運(yùn)行后的輸出結(jié)果是()。A、4B、5C、9D、7標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查函數(shù)的遞歸調(diào)用。執(zhí)行fun(9)后,fun(9)=9一(7一(5一(3一f(1))))=7,故D選項(xiàng)正確。16、有以下程序#includemain(){inty=9;for(;y>0;y--)if(y%3==0)printf("%d",--y);}程序的運(yùn)行結(jié)果是A、963B、852C、741D、875421標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:v的值的初值為9,所以在for循環(huán)中,當(dāng)y的值為9、6或3時(shí),if語(yǔ)句的條件成立,執(zhí)行輸出語(yǔ)句,輸出表達(dá)式一y的值。因?yàn)樽詼p符號(hào)在y的前面,所以首先y的自減1,然后再輸出y的值,故輸H{結(jié)果為852。17、有以下程序#include<stdio.h>intfun(inta,intb){if(b=0)returna;、elsereturn(fun(-a,-b));}main(){printf(’’%d\n’’,fun(4,2));}程序的運(yùn)行結(jié)果是A、1B、2C、3D、4標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:由程序可知函數(shù)fun(inta,intb)是一個(gè)遞歸函數(shù)。所以當(dāng)主函數(shù)中調(diào)用‰(4,2)時(shí),其執(zhí)行過(guò)程如下:fun(4,2)->fun(3,1)->fun(2,0),其返回值為2。18、有以下程序(說(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、BTB、YEC、YTD、BY標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題中執(zhí)行fun(a)時(shí),會(huì)取a的第一個(gè)字母B,因?yàn)锽的ASCII碼為66,所以不會(huì)輸出B,函數(shù)只會(huì)輸出ASCII碼為奇數(shù)的字母,Y的ASCII碼為89,T的ASCII碼為84,E的ASCII碼為69。因此B選項(xiàng)正確。19、下列敘述中錯(cuò)誤的是()。A、C程序函數(shù)中定義的自動(dòng)變量,系統(tǒng)不自動(dòng)賦確定的初值B、在C程序的同一函數(shù)中,各復(fù)合語(yǔ)句內(nèi)可以定義變量,其作用域僅限本復(fù)合語(yǔ)句內(nèi)C、C程序函數(shù)中定義的賦有初值的靜態(tài)變量,每調(diào)用一次函數(shù)賦一次初值D、C程序函數(shù)的形參不可以說(shuō)明為static型變量標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:A選項(xiàng)描述正確,自動(dòng)變量未賦初值,為隨機(jī)值;B選項(xiàng)描述正確,變量定義除在函數(shù)開(kāi)始位置外,在復(fù)合語(yǔ)句開(kāi)始也可以;C選項(xiàng)描述是錯(cuò)誤的,函數(shù)內(nèi)的靜態(tài)變量只在第一次調(diào)用時(shí)賦值,以后調(diào)用保留上次的值;D選項(xiàng)描述也正確,形參屬于局部變量,占用動(dòng)態(tài)存儲(chǔ)區(qū),而static型變量占用靜態(tài)存儲(chǔ)區(qū)。20、由關(guān)系R1和R2得到關(guān)系R3的操作是A、等值連接B、并C、笛卡爾積D、交標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:等值連接是關(guān)系運(yùn)算.連接運(yùn)算的一種常用的連接方式。是條件連接(或稱θ連接)在連接運(yùn)算符為“=”號(hào)時(shí),即θ=0時(shí)的一個(gè)特例。21

溫馨提示

  • 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)論