版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
國(guó)家二級(jí)(C語(yǔ)言)筆試模擬試卷11(共9套)(共558題)國(guó)家二級(jí)(C語(yǔ)言)筆試模擬試卷第1套一、公共基礎(chǔ)選擇題(本題共10題,每題1.0分,共10分。)1、已知8個(gè)數(shù)據(jù)元素為(34,76,45,18,26,54,92,65),按照依次插入結(jié)點(diǎn)的方法生成一棵二叉排序樹(shù)后,最后2層上的結(jié)點(diǎn)總數(shù)為_(kāi)_____。A、1B、2C、3D、4標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:暫無(wú)解析2、一個(gè)棧的輸入序列為1,2,3,4,下列選項(xiàng)中的______序列不可能是這個(gè)棧的輸出序列。A、1,3,2,4B、2,3,4,1C、4,3,1,2D、3,4,2,1標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:暫無(wú)解析3、循環(huán)鏈表的主要優(yōu)點(diǎn)是______。A、不再需要頭指針了B、已知某個(gè)結(jié)點(diǎn)的位置后,能夠容易找到它的直接前驅(qū)C、在進(jìn)行插入、刪除運(yùn)算時(shí),能更好地保證鏈表不斷開(kāi)D、從表中任一結(jié)點(diǎn)出發(fā)都能掃描到整個(gè)鏈表標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:暫無(wú)解析4、軟件測(cè)試是軟件開(kāi)發(fā)過(guò)程中重要且不可缺少的階段,測(cè)試過(guò)程中的______是基礎(chǔ)測(cè)試。A、系統(tǒng)測(cè)試B、有效性測(cè)試C、單元測(cè)試D、集成測(cè)試標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:暫無(wú)解析5、在瀑布模型中,將軟件開(kāi)發(fā)劃分為若干時(shí)期,而軟件的可行性研究一般被屬于______。A、計(jì)劃時(shí)期B、維護(hù)時(shí)期C、運(yùn)行時(shí)期D、開(kāi)發(fā)時(shí)期標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:暫無(wú)解析6、在數(shù)據(jù)庫(kù)技術(shù)中,面向?qū)ο髷?shù)據(jù)模型是一種______。A、概念模型B、結(jié)構(gòu)模型C、物理模型D、形象模型標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:暫無(wú)解析7、在C語(yǔ)言中提供的合法的關(guān)鍵字是______。A、swicthB、cherC、CaseD、default標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:暫無(wú)解析8、若定義staticinta[2][2]={1,2,3,4},則a數(shù)組的各數(shù)組元素分別為_(kāi)_____。A、a[0][0]=1、a[0][1]=2、at[1][0]=3、a[1][1]=4B、a[0][0]=1、a[0][1]=3、a[1][0]=2、a[1][1]=4C、a[0][0]=4、a[0][1]=3、a[1][0]=2、s[1][1]=1D、a[0][0]=4、a[0][1]=2、a[1][0]=3、a[1][1]=1標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:暫無(wú)解析9、下列變量說(shuō)明語(yǔ)句中,正確的是A、char:abc;B、chara;b;c;C、intx;z;D、intx,z;標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:暫無(wú)解析10、若有以下定義和語(yǔ)句,則輸出的結(jié)果是______。charc1=’b’,c2=’e’;printf("%d,%c\n",c2-c1,c2-’a’+"A");A、2,MB、3,EC、2,ED、輸出結(jié)果不確定標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:暫無(wú)解析二、選擇題(1分)(本題共10題,每題1.0分,共10分。)11、下列不正確的轉(zhuǎn)義字符是______。A、’\\’,B、’\’C、’074’D、’\0’標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:暫無(wú)解析12、設(shè)有如下定義,則執(zhí)行表達(dá)式(nFa>b)&&(n=c>d)后,n的值為_(kāi)_____。inta=1,b=2,c=3,d=4,m=2,n=2;A、1B、2C、3D、0標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:暫無(wú)解析13、若變量c為char類(lèi)型,能正確判斷出c為小寫(xiě)字母的表達(dá)式是______。A、’a’<=c<’z’B、(c>=’a’)||(c<=’z’)C、(’a’<’c’)and(’z’>=C)D、(c>=’a’)&&(c<=’z’)標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:暫無(wú)解析14、在下列敘述中,正確的一條是______。A、if(表達(dá)式)語(yǔ)句中,表達(dá)式的類(lèi)型只限于邏輯表達(dá)式B、語(yǔ)句“goto12;”是合法的C、for(;;)語(yǔ)句相當(dāng)于while(1)語(yǔ)句D、break語(yǔ)句可用于程序的任何地方,以終止程序的執(zhí)行標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:暫無(wú)解析15、設(shè)i是int型變量,f是float型變量,用下面的語(yǔ)句給這2個(gè)變量輸入值。為了將,100和765.12分別賦給i和f,則正確的輸入為_(kāi)_____。scanf("i=%d,f=%f”,&i,&f);A、100<空格>765.12<回車(chē)>B、i=100,f=765.12<回車(chē)>C、100<回車(chē)>765.12<回車(chē)>D、x=100<回車(chē)>y=765.12<回車(chē)>標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:暫無(wú)解析16、下面程序執(zhí)行后的輸出結(jié)果是(小數(shù)點(diǎn)后只寫(xiě)一位)______。main(){doubled;floatf;long1;inti;i=f=1=d=20/3;printf("%d%ld%f%f\n",i,l,f,d);}A、666.06.0B、666.76.7C、666.06.7D、666.76.0標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:暫無(wú)解析17、當(dāng)下面的程序運(yùn)行后,變量c的值為_(kāi)_____。main(){inta=45,b=27,c=0;c=max(a,b);}intmax(x,y)intx,y;{intz;if(x>y)z=x;elsez=y;return(z);}A、45B、27C、0D、72標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:暫無(wú)解析18、若有語(yǔ)句scanf("%d%c%f",&a,&b,&c),假設(shè)輸入序列為2223a123o.12,則a.b.c的值為_(kāi)_____。A、無(wú)值B、2223,a,123o.12C、2223,a,無(wú)D、2223,a,123標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:暫無(wú)解析19、若輸入"Iamaboy!",下列程序的運(yùn)行結(jié)果為_(kāi)_____。charconnect(string1,string2,string)charstring1[],string2[],string[];{inti,j;for(i=0;stringl[i]!=’\0’;i++)string[i]=stringl[i];for(j=0;string2[j]!=’\0’;j++)string[i+j]=string2[j];string[i+j]=’\0’;}main(){chars1[100],s2[100],s[100];printf("\n輸入string1:\n");scanf("%s",s1);printf("\n輸入string2:\n");scanf("%s",s2);connect(s1,s2,s);printf("%s\n",s);}A、Iamaboy!B、輸入string2:C、IamD、Iamaboy!標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:暫無(wú)解析20、下面能正確進(jìn)行字符串賦值操作的語(yǔ)句是______。A、chars[5]={"ABCDE"};B、chars[5]={’a’,’b’,’c’,’d’,’e’};C、char*s;s="ABCDEF"D、char*s;scanf("%s",s);標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:暫無(wú)解析三、選擇題(2分)(本題共20題,每題1.0分,共20分。)21、下列程序的輸出結(jié)果是()。main(){inti=1,j=2,k=3;if(i++==1&&(++j==3‖k++==3))printf("%d%d%d\n",i,j,k);}A、123B、234C、223D、233標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:本題考查自增運(yùn)算符“++”、邏輯與運(yùn)算符“&&”和邏輯或運(yùn)算符“‖”。自增運(yùn)算符“++”,出現(xiàn)在變量之前(如題中的中++n),表示先使變量的值加1,再使用變量的值進(jìn)行運(yùn)算:出現(xiàn)在變量之后(如題中的n++),表示先使用變量的值進(jìn)行運(yùn)算,再使變量的值加1。當(dāng)邏輯與運(yùn)算符“&&”兩邊的運(yùn)算對(duì)象都為真時(shí),邏輯表達(dá)式的值才為真;當(dāng)邏輯或運(yùn)算符“‖”左邊的運(yùn)算對(duì)象為真時(shí),其值就為真,不用計(jì)算其右邊的運(yùn)算對(duì)象的值.所以根據(jù)運(yùn)算符的優(yōu)先級(jí),題中應(yīng)先計(jì)算內(nèi)層括號(hào)中的值。++j是先自加后運(yùn)算,因此運(yùn)算時(shí)j的值等于3,所以表達(dá)式++j=3成立,即表達(dá)式的值為1;由于1與任何數(shù)都為進(jìn)行或(‖)運(yùn)算,結(jié)果都為1,因此k=3;最后計(jì)算“&&”之前的表達(dá)式,i++是先運(yùn)算后自加,因此運(yùn)算時(shí)i為1,所以i++=1成立,自加1后i=2。if語(yǔ)句的條件為真即“1”,所以輸出i、j、k的值分別是2,3,3。22、下列程序的輸出結(jié)果是()。#include<stdio.h>main(){inta=0,i;for(i=1;i<5;i++){switch(i){case0:case3:a+=1;case1:case2:a+=2;default:a+=3;}printf("%d",A);}A、19B、18C、6D、8標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:本題考查switch語(yǔ)句。當(dāng)i=1時(shí),執(zhí)行case1,因?yàn)闆](méi)有遇到break語(yǔ)句,所以依次往下運(yùn)行,a=a+2=2,a=a+3=5;當(dāng)i=2時(shí),執(zhí)行case2,因?yàn)闆](méi)有遇到break語(yǔ)句,所以依次往下運(yùn)行,a=a+2=7,a=a+3=10;當(dāng)i=3時(shí),執(zhí)行case3,a=a+1=11,因?yàn)闆](méi)有遇到break語(yǔ)句,所以依次往下運(yùn)行,a=a+2=13,a=a+3=16;當(dāng)i=4時(shí),執(zhí)行default,a=a+3=19,結(jié)束循環(huán)。23、在C語(yǔ)言中,while和do…while循環(huán)的主要區(qū)別是()。A、do…while的循環(huán)體不能是復(fù)合語(yǔ)句B、do…while允許從循環(huán)體外轉(zhuǎn)到循環(huán)體內(nèi)C、while的循環(huán)體至少被執(zhí)行一次D、do…while的循環(huán)體至少被執(zhí)行一次標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:本題考查while和do…while循環(huán)的區(qū)別。while循環(huán)的控制出現(xiàn)在循環(huán)體之前,只有當(dāng)while后面的表達(dá)式的值為非零時(shí),才可能執(zhí)行循環(huán)體:在do…while構(gòu)成的循環(huán)體中,總是先執(zhí)行一次循環(huán)體,然后再求表達(dá)式的值,因此無(wú)論表達(dá)式的值是否為零,循環(huán)體至少要被執(zhí)行一次。24、若各選項(xiàng)中所用變量已正確定義,fun()函數(shù)中通過(guò)return語(yǔ)句返回一個(gè)函數(shù)值,下列選項(xiàng)中錯(cuò)誤的程序是()。A、main()……x=fun(2,10);……}floatfun(inta,intb){……}B、floatfun(inta,intb){……}main(){……x=fun(i,j);……}C、floatfun(int,int);main(){……x=fun(2,10);……}floatfun(inta,intb){……}D、main(){floatfun(intI,intj);……x=fun(i,j);……}floatfun(inta,intB){……}標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:C語(yǔ)言規(guī)定,函數(shù)必須先定義,后調(diào)用(函數(shù)的返回值類(lèi)型為int或char時(shí)除外)。在選項(xiàng)A)中,調(diào)用的子函數(shù)在調(diào)用后面定義,所以不正確。在選項(xiàng)B)、C)中,被調(diào)用函數(shù)在主調(diào)函數(shù)之前定義,再在主函數(shù)中調(diào)用,所以是正確的:在選項(xiàng)D)中,在主調(diào)函數(shù)中先對(duì)于函數(shù)floatfun(inti,intj)進(jìn)行了定義,然后進(jìn)行調(diào)用。25、判斷char型變量c1是否為小寫(xiě)字母的正確表達(dá)式為()。A、’a’<=c1<=’z’B、(c1>=A)‖(c1<=z)C、(’a’=>c1‖(’z’<=c1)D、(c1>=’a’)&&(c1<=’z’)標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:C語(yǔ)言規(guī)定,字符常量在程序中要用單引號(hào)括起來(lái)。判斷c1是否為小寫(xiě)字母的充要條件c1>=’a’和c1<=’z’,用邏輯與(&&)來(lái)表示。A選項(xiàng)的這種形式在C語(yǔ)言中沒(méi)有,所以選項(xiàng)D)正確.26、有下列程序:main(){intk=5;while(--k)printf("%d",k-=3);printf("\n");}執(zhí)行后的輸出結(jié)果是()。A、1B、2C、4D、死循環(huán)標(biāo)準(zhǔn)答案:1知識(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。27、若函數(shù)調(diào)用時(shí),參數(shù)為基本數(shù)據(jù)類(lèi)型的變量,下列敘述中正確的是()。A、實(shí)參與其對(duì)應(yīng)的形參共占存儲(chǔ)單元B、只有當(dāng)實(shí)參與其對(duì)應(yīng)的形參同名時(shí)才共占存儲(chǔ)單元C、實(shí)參與其對(duì)應(yīng)的形參分別占用不同的存儲(chǔ)單元D、實(shí)參將數(shù)據(jù)傳遞給形參后,立即釋放原先占用的存儲(chǔ)單元標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:本題考查函數(shù)調(diào)用時(shí)的參數(shù)傳遞。函數(shù)的形參是函數(shù)定義時(shí)由用戶(hù)定義的形式上的變量,實(shí)參是函數(shù)調(diào)用時(shí),主調(diào)函數(shù)為被調(diào)函數(shù)提供的原始數(shù)據(jù)。在函數(shù)調(diào)用時(shí),實(shí)參和其所對(duì)應(yīng)的形參分別占用不同的存儲(chǔ)單元,彼此之間不影響。28、在C語(yǔ)言程序中,下列說(shuō)法正確的是()。A、函數(shù)的定義和函數(shù)的調(diào)用均可以嵌套B、函數(shù)的定義不可以嵌套,但函數(shù)的調(diào)用可以嵌套C、函數(shù)的定義可以嵌套,但函數(shù)的調(diào)用不可以嵌套D、函數(shù)的定義和函數(shù)的調(diào)用均不可以嵌套標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:本題考查函數(shù)調(diào)用的基本概念。因?yàn)楹瘮?shù)的結(jié)果是個(gè)未知量,而函數(shù)定義時(shí)不能使用未知量,所以函數(shù)定義不可以嵌套,但函數(shù)的調(diào)用可以嵌套。29、下列說(shuō)法中不正確的是()。A、指針是一個(gè)變量B、指針中存放的是數(shù)值C、指針可以進(jìn)行加、減等算術(shù)運(yùn)算D、指針變量占用存儲(chǔ)空間標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:指針中存放的是變量的地址,指針也可以進(jìn)行增減運(yùn)算,這時(shí)指針移動(dòng)的最小單位是—個(gè)存儲(chǔ)單元,而不是一個(gè)字節(jié)。30、若有定義和語(yǔ)句:int**pp,*p,a=20,b=10;pp=&p;p=&a;p=&b;printf(%d,%d\n",*p,**pp);則輸出結(jié)果是()。A、20,10B、20,20C、10,20D、10,10標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:本題考查指針變量的賦值。**pp是定義了一個(gè)指向指針的指針變量,語(yǔ)句pp=&p的意思是將pp指向指針p,*p和**pp都是指針p所指的內(nèi)存空間的內(nèi)容,即b的值。31、下列二維數(shù)組的說(shuō)明中,不正確的是()。A、floata[][4]={0,1,8,5,9};B、inta[3][4];C、#defineN5D、inta[2][9.5];floata[N][3];標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:C語(yǔ)言規(guī)定,對(duì)于二維數(shù)組,只可以省略第一個(gè)方括號(hào)中的常量表達(dá)式,而不能省略第二個(gè)方括號(hào)中的常量表達(dá)式;二維數(shù)組的一般定義格式是:類(lèi)型說(shuō)明符數(shù)組名[常量表達(dá)式][常量表達(dá)式]。32、若有定義:“inta[2][3];”則對(duì)a數(shù)組的第i行第j列元素的正確引用為()。A、*(*(a+i)+j)B、(a+i)[j]C、*(a+i+j)D、*(a+i)+j標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:本題考查如何通過(guò)地址來(lái)引用數(shù)組元素。通過(guò)地址來(lái)引用數(shù)組元素的方法有下列5種:①a[i][j];②*(a[i]+j);③*(*(a+i)+j);④*(a[i])[j];⑤*(&a[0][0]+3*i+j)。33、下列能正確進(jìn)行字符串賦值的是()。A、chars[5]={"ABCDE"};B、chars[5]={’A’,’B’,’C’,’D’,’E’};C、char*s;s="ABCDE";D、char*s;printf("%s",s);標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:字符串存儲(chǔ)要有結(jié)束符“\0”且要占用一個(gè)空間,選項(xiàng)A)、B的空間不夠:printf用來(lái)輸出字符,不能輸入字符串.34、若有說(shuō)明chars1[30]="abc",s2[]="defghi";,則在使用函數(shù)strcat(s1,s2)后,結(jié)果是()。A、s1的內(nèi)容更新為abcdefghiB、s1的內(nèi)容更新為defghi\0C、s1的內(nèi)容更新為defghiabc\0D、s1的內(nèi)容更新為abcdefghi\0標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:strcat(s1,s2)是把s2字符串連接到s1字符串的末尾,要保證s1能容納下連接后的字符串。35、設(shè)有變量說(shuō)明int(*p)[m],其中的標(biāo)識(shí)符p是()。A、m個(gè)指向整型變量的指針B、指向m個(gè)整型變量的指針C、一個(gè)指向具有m個(gè)整型元素的一維數(shù)組的指針D、具有m個(gè)指針元素的一維指針數(shù)組,每個(gè)元素都指向整型變量標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:本題考查指向數(shù)組的指針變量的聲明。這里的p表示一個(gè)指向數(shù)組的指針;*p表示指針p指向地址的內(nèi)容。36、下列描述中正確的是()。A、在C語(yǔ)言程序中預(yù)處理是指完成宏替換和文件包含指定的文件的調(diào)用B、預(yù)處理指令只能位于C源程序文件的首部C、預(yù)處理命令可以放在程序中的任何位置D、預(yù)處理命令結(jié)尾需要加分號(hào)標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:本題考查預(yù)處理命令的特點(diǎn),編譯預(yù)處理命令的特點(diǎn):①為了區(qū)別一般的語(yǔ)句,預(yù)處理命令行都必須以“#”號(hào)開(kāi)始,結(jié)尾不加分號(hào);②預(yù)處理命令可以放在程序中的任何位置;③在程序中凡是以“#”號(hào)開(kāi)始的語(yǔ)句行都是預(yù)處理命令行。37、若有結(jié)構(gòu)體定義:structstu{intnum;charsex;intage;}a1,a2;則下列語(yǔ)句中錯(cuò)誤的是()。A、printf("%d,%c,%d",a1);B、a2.age=a1.age;C、a1.age++;D、a1.num=5;標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:題中a1和a2兩個(gè)結(jié)構(gòu)體變量名所對(duì)應(yīng)的成員相同,可以與運(yùn)算“++’相結(jié)合。結(jié)構(gòu)體變量的輸出格式為:printf("要輸出變量名;%d\t",結(jié)構(gòu)變量名.要輸出的成員變量名),38、C語(yǔ)言結(jié)構(gòu)體類(lèi)型變量在程序執(zhí)行期間()。A、所有成員一直駐留在內(nèi)存中B、沒(méi)有成員駐留在內(nèi)存中C、部分成員駐留在內(nèi)存中D、只有一個(gè)成員駐留在內(nèi)存中標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:C語(yǔ)言結(jié)構(gòu)體類(lèi)型變量在程序執(zhí)行期間所有成員一直駐留在內(nèi)存中,39、在位運(yùn)算中,操作數(shù)每右移兩位,其結(jié)果相當(dāng)于()。A、操作數(shù)乘以2B、操作數(shù)除以2C、操作數(shù)除以4D、操作數(shù)乘以4標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:在位運(yùn)算中,操作數(shù)每右移兩位,相當(dāng)于在操作數(shù)的左側(cè)添0,最右面的兩位被移出,即操作數(shù)除以4。40、在“文件包含”預(yù)處理語(yǔ)句的使用形式中,當(dāng)#include后面的文件名用"",(雙撇號(hào))括起時(shí),尋找被包含文件的方式是()。A、直接按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索目錄B、先在源程序所在的目錄搜索,如沒(méi)找到,再按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索C、僅僅搜索源程序所在目錄D、僅僅搜索當(dāng)前目錄標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:本題考查庫(kù)函數(shù)調(diào)用的知識(shí)點(diǎn)。格式1:#include(文件名),預(yù)處理程序在標(biāo)準(zhǔn)目錄下查找指定的文件:格式2:#include"文件名",預(yù)處理程序首先在引用被包含文件的源文件所在的目錄下搜索指定的文件,如沒(méi)找到,再按系統(tǒng)指定的標(biāo)準(zhǔn)目錄搜索。四、公共基礎(chǔ)填空題(本題共5題,每題1.0分,共5分。)41、一棵二叉樹(shù)第六層(根結(jié)點(diǎn)為第一層)的結(jié)點(diǎn)數(shù)最多為【】個(gè)。標(biāo)準(zhǔn)答案:32知識(shí)點(diǎn)解析:根據(jù)二叉樹(shù)的性質(zhì):二叉樹(shù)第i(i≥1)層上至多有2i-1個(gè)結(jié)點(diǎn),得到第六層的結(jié)點(diǎn)數(shù)最多是26-1=32。42、算法復(fù)雜度主要包括時(shí)間復(fù)雜度和【】復(fù)雜度。標(biāo)準(zhǔn)答案:空間知識(shí)點(diǎn)解析:程序在計(jì)算機(jī)上運(yùn)行時(shí)所耗費(fèi)的時(shí)間由程序運(yùn)行時(shí)所需輸入的數(shù)據(jù)總量、對(duì)源程序進(jìn)行編譯所需時(shí)間、計(jì)算機(jī)執(zhí)行每條指令所需時(shí)間、程序中的指令重復(fù)執(zhí)行的次數(shù)等決定。習(xí)慣上常常把語(yǔ)句重復(fù)執(zhí)行的次數(shù)作為算法運(yùn)行時(shí)間的相對(duì)量度,稱(chēng)作算法的時(shí)間復(fù)雜度。算法在運(yùn)行過(guò)程中需輔助存儲(chǔ)空間的大小稱(chēng)為算法的空間復(fù)雜度。43、在進(jìn)行模塊測(cè)試時(shí),要為每個(gè)被測(cè)試的模塊另外設(shè)計(jì)兩類(lèi)模塊:驅(qū)動(dòng)模塊和承接模塊(樁模塊),其中【】的作用是將測(cè)試數(shù)據(jù)傳送給被測(cè)試的模塊,并顯示被測(cè)試模塊所產(chǎn)生的結(jié)果。標(biāo)準(zhǔn)答案:驅(qū)動(dòng)模塊知識(shí)點(diǎn)解析:在進(jìn)行模塊測(cè)試時(shí),要為每個(gè)被測(cè)試的模塊另外設(shè)計(jì)兩類(lèi)模塊:驅(qū)動(dòng)模塊和承接模塊(樁模塊)。其中,驅(qū)動(dòng)模塊相當(dāng)于被測(cè)試模塊的主程序,它接收測(cè)試數(shù)據(jù),并傳給被測(cè)試模塊,輸出實(shí)際測(cè)試結(jié)果。承接模塊通常用于代替被測(cè)試模塊調(diào)用的其他模塊,其作用僅做少量的數(shù)據(jù)操作,是一個(gè)模擬子程序,不必將子模塊的所有功能帶入。44、數(shù)據(jù)管理技術(shù)的發(fā)展過(guò)程經(jīng)過(guò)人工管理、文件系統(tǒng)和數(shù)據(jù)庫(kù)系統(tǒng)三個(gè)階段,其中數(shù)據(jù)獨(dú)立性最高的階段是【】。標(biāo)準(zhǔn)答案:數(shù)據(jù)庫(kù)系統(tǒng)階段知識(shí)點(diǎn)解析:在數(shù)據(jù)管理技術(shù)的發(fā)展過(guò)程中,經(jīng)歷了人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫(kù)系統(tǒng)階段,其中數(shù)據(jù)獨(dú)立性最高的階段是數(shù)據(jù)庫(kù)系統(tǒng)階段。45、數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu),循環(huán)隊(duì)列屬于【】結(jié)構(gòu)。標(biāo)準(zhǔn)答案:邏輯知識(shí)點(diǎn)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)是反映數(shù)據(jù)元素之間邏輯關(guān)系的數(shù)據(jù)結(jié)構(gòu),它在計(jì)算機(jī)存儲(chǔ)空間中的存放形式稱(chēng)為數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)(也稱(chēng)數(shù)據(jù)的物理結(jié)構(gòu))。在數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)中,不僅要存放各數(shù)據(jù)元素的信息,還需要存放各數(shù)據(jù)元素之間的前后件關(guān)系的信息。而循環(huán)隊(duì)列就是將隊(duì)列存儲(chǔ)空間的最后一個(gè)位置繞到第一個(gè)位置,形成邏輯上的環(huán)狀空間,供隊(duì)列循環(huán)使用。所以循環(huán)隊(duì)列不需要存放元素之間的前后件關(guān)系,故它屬于邏輯結(jié)構(gòu)。五、填空題(本題共13題,每題1.0分,共13分。)46、以下程序運(yùn)行時(shí),若從鍵盤(pán)輸入:102030<回車(chē)>,輸出的結(jié)果是【】。#include<stdio.h>main(){inti=0,j=0,k=0;scanf("%d%*d%d",&i,&j,&k);prinff("%d%d%d\n",i,j,k);}標(biāo)準(zhǔn)答案:10300知識(shí)點(diǎn)解析:在scanf格式控制符中有一個(gè)“*”附加說(shuō)明符,表示跳過(guò)它指定的列數(shù)。程序中"%d%*d%d"表示首先將10賦給i,然后遇%。d讀入整數(shù)但不賦給任何變量,最后將讀人的整數(shù)30賦給變量j,變量k并沒(méi)有重新賦值,仍為初始值0。所以輸出的結(jié)果為10300。47、以下程序運(yùn)行后的輸出結(jié)果是【】。#include<stdio.h>#defineS(x)4*x*x+1main(){inti=6,j=8;prinff("%d\n",S(i+j));}標(biāo)準(zhǔn)答案:81知識(shí)點(diǎn)解析:帶參數(shù)的宏定義是按#define命令行中指定的字符串從左到右進(jìn)行替換。本題替換后得到:4*i+j*i+j+1,代入i,j的值得81。48、以下程序運(yùn)行后的輸出結(jié)果是【】。#include<stdio,h>main(){inta=3,b=4,c=5,t=99;if(b<a&&a<c)t=a;a=c;c=t;if(a<e&&b<c)t=b;b=a;a=t;printf("%d%d%d\n",a,b,e);}標(biāo)準(zhǔn)答案:4599知識(shí)點(diǎn)解析:要注意每條證語(yǔ)句后面是三條語(yǔ)句,而不是一條語(yǔ)句。執(zhí)行第一條if語(yǔ)句時(shí),條件表達(dá)式不成立,執(zhí)行a=c;c=t;,此時(shí)a=5,c=99;執(zhí)行第二條if語(yǔ)句時(shí),條件表達(dá)式成立,執(zhí)行t=b;b=a;a=t;交換a,b的值,輸出結(jié)果為4,5和99。49、已知字符’A’的ASCII代碼值為65,以下程序運(yùn)行時(shí)若從鍵盤(pán)輸入:B33<回車(chē)>,則輸出結(jié)果是【】。#include<stdio.h>main(){chara,b;a=getchar();seanf("%d",&b);a=a-’A’+’0’;b=b*2;prinff("%c%c\n",a,b);}標(biāo)準(zhǔn)答案:1B知識(shí)點(diǎn)解析:本題輸入B33,字符’B’被輸入給字符變量a,33賦給b,執(zhí)行a=a-’A’+’0’;得到a的值’1’;執(zhí)行b=b*2;得到b值66,最后以字符型輸出為1B。50、以下程序運(yùn)行后的輸出結(jié)果是【】#include<stdio,h>fun(inta){intb=0;staticintc=3;b++;c++;return(a+b+c);}main()inti,a=5;for(i=0;i<3;i++)prinff("%d%d",i,fun(a));printf("\n");}標(biāo)準(zhǔn)答案:10111212知識(shí)點(diǎn)解析:用static關(guān)鍵字聲明的變量稱(chēng)為靜態(tài)局部變量。靜態(tài)局部變量只在編譯時(shí)賦一次初值,以后再次調(diào)用函數(shù)時(shí)不再重新賦初值,而是保留上次函數(shù)調(diào)用結(jié)束時(shí)的值。程序中的變量c為靜態(tài)變量,當(dāng)再次調(diào)用fun函數(shù)時(shí),變量c不再被賦初值,變量c的值為上次調(diào)用fun函數(shù)時(shí)所保留下來(lái)的值,具體在程序運(yùn)行過(guò)程中的體現(xiàn)如下:當(dāng)i=0時(shí),第一次調(diào)用fun(5),這時(shí)a=5,b=0,c=3,執(zhí)行b++,c++,得到b=1,c=4,則a+b+c=10,返回主函數(shù)輸出010;當(dāng)i=1時(shí),第二次調(diào)用fun(5),這時(shí)a=5,b=0,c=4,執(zhí)行b++,c++,得到b=1,c=5,則a+b+c=11,返回主函數(shù)輸出111;當(dāng)i=2時(shí),第三次調(diào)用fun(5),這時(shí)a=5,b=0,c=5,執(zhí)行b++,c++,得到b=1,c=6,則a+b+c=12,返回主函數(shù)輸出212;當(dāng)i=3時(shí),循環(huán)結(jié)束,所以輸出結(jié)果為:010111212。51、以下程序中,fun函數(shù)的功能是求3行4列二維數(shù)組每行元素中的最大值。請(qǐng)?zhí)羁铡?include<stdio,h>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]);prinff("\n");}voidfun(intm,intn,intar[][4],int*br){inti,j,x;for(i=0;i<m;i++){x=ar[i][0];’for(j=0;j<n;j++)if(x<ar[i][j])x=ar[i][j];【】=x;}}標(biāo)準(zhǔn)答案:br[i]或*(br+i)知識(shí)點(diǎn)解析:程序中的數(shù)組a是一個(gè)3行4列的二維數(shù)組,一維數(shù)組b用于存放每行的最大數(shù)。在函數(shù)fun中,通過(guò)二重for循環(huán)求每行的最大數(shù),外層for循環(huán)用于控制行數(shù),內(nèi)層for循環(huán)用于控制列數(shù),當(dāng)外層循環(huán)執(zhí)行一次時(shí),內(nèi)層循環(huán)則從一行的4個(gè)數(shù)中找出最大數(shù)x,然后將最大值x賦給數(shù)組br,故空格處應(yīng)填br[i]或*(br+i)。52、有下面的程序:#include<stdio,h>main(){enumteam{my,your=4,his,her=his+10};prinff("%d%d%d%d\n",my,your,his,her);此程序的輸出結(jié)果是【】。A)0123B)04010C)04515D)14515標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:枚舉的語(yǔ)法規(guī)定,當(dāng)枚舉元素沒(méi)有賦值時(shí),如果前面沒(méi)有其他枚舉元素,其值為0;如果前面有其他枚舉元素,其值為前一個(gè)元素的值加1,所以his的值為5,her的值為15。53、以下程序運(yùn)行后的輸出結(jié)果是【】。#include<stdio,h>#include<stating,h>voidfun(char*s,intp,intk){inti;for(i=p;i<k-1;i++)s[i]=s[i+2];}main(){chars[]="abedefg";fun(s,3,strlen(s));puts(s);}標(biāo)準(zhǔn)答案:abcfg知識(shí)點(diǎn)解析:fun函數(shù)中for循環(huán)語(yǔ)句的作用是將s所指的字符串中從第5個(gè)字符到第7個(gè)字符依次向前移動(dòng)兩個(gè)位置。輸出結(jié)果為abcfg。54、以下程序運(yùn)行后的輸出結(jié)果是【】。#include<stdio,h>#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("%s",&x[i][i]);printf("\n")}標(biāo)準(zhǔn)答案:abcbcc知識(shí)點(diǎn)解析:for循環(huán)用strcpy函數(shù)將字符數(shù)組ch的值"abc",分別復(fù)制給二維數(shù)組x的每一行,然后通過(guò)for循環(huán)先后打印出以x[0][0],x[1][1],x[2][2]開(kāi)頭的字符串"abe","bc","c",所以輸出結(jié)果為:abcbcc。55、以下程序運(yùn)行后輸出結(jié)果是【】。#include<stdio,h>voidswap(inty){intt;t=x;x=y;y=t:printf("%d%d",x,y);}main(){ihta=3,b=4:swap(a,b);prinff("%d%d",a,b);}標(biāo)準(zhǔn)答案:4334知識(shí)點(diǎn)解析:程序?qū)⒆兞縜,b的值傳給函數(shù)swap的形參x,y,并在函數(shù)中對(duì)x,y的值進(jìn)行交換,所以在函數(shù)swap中輸出x,y的值4,3,由于c程序的函數(shù)是僧傳遞,實(shí)參a,b的值不會(huì)隨形參x,y的改變而改變,所以在主函數(shù)中輸出的a,b的值為3,4。56、以下程序運(yùn)行后的輸出結(jié)果是【】。#include<stdio,h>main()charc1,c2;for(el=’0’,c2=’9’;e1<c2;c1++,c2--)printf("%c%c",c1,c2);printf("\n");}標(biāo)準(zhǔn)答案:918273645知識(shí)點(diǎn)解析:程序通過(guò)for循環(huán)將字符’0’~’9’從前向后,同時(shí)從后向前依次輸出,所以輸出結(jié)果為:0918273645。57、以下程序運(yùn)行后輸出結(jié)果是【】。#include<stdio,h>main(){inta,b,c;a=10;b:20;c=(a%b<1)‖(a/b>1);printf("%d%d%d\n",a,b,c);}標(biāo)準(zhǔn)答案:10200知識(shí)點(diǎn)解析:程序中(a%b<1)||(a/b>1)的運(yùn)算順序?yàn)橄人憷ㄌ?hào)→算術(shù)運(yùn)算符→關(guān)系運(yùn)算符→邏輯運(yùn)算符。首先計(jì)算a%b=10,a/b=0,因?yàn)閍%b<1為假(0),a/b>1也為假(0),所以整個(gè)表達(dá)式的結(jié)果為假(0),最后輸出a,b,c的值為10200。58、以下程序中函數(shù)huiwen的功能是檢查一個(gè)字符串是否是回文,當(dāng)字符串是回文時(shí),函數(shù)返回字符串“yes!”,否則函數(shù)返回字符串“no!”,并在主函數(shù)中輸出。所謂回文即正向與反向的拼寫(xiě)都一樣,例如:adsda。請(qǐng)?zhí)羁铡?include<stdio,h>#include<string,h>char*huiwen(char*str){char*p1,*p2;inti,t=0;p1=str;p2=【】;for(i=0;i<=strlen(str)/2;i++)if(*pl++!=*p2--){t=1;breakif(【】)return("yes!");elsereturn("no!");}main(){charstr[50];printf("Iaput:");scanf("%s",str);printf("%s\n",【】);標(biāo)準(zhǔn)答案:p1+(stfien(str)-1)或str+(strlen(str)-1)t==0或!thuiwen(str)或(strlen(str)-1)+p1或(stden(str)-1)+str知識(shí)點(diǎn)解析:回文字符串是指正向與反向拼寫(xiě)都一樣。由huiwen函數(shù)可知,第三處應(yīng)該填寫(xiě)調(diào)用函數(shù)huiwen(str)。在函數(shù)huiwen中,執(zhí)行P1=str;使p1指向字符串str中第一個(gè)字符的地址,則第一處應(yīng)該使p2指向字符串str中最后一個(gè)字符的地址,故填p1+(stden(str)-1)或str+(strlen(str)-1)。本題要求如果是回文,則返回"yes!",否則,返回"no!",故當(dāng)t=0時(shí),說(shuō)明字符串str為回文,所以第二處應(yīng)填t==0或!t。國(guó)家二級(jí)(C語(yǔ)言)筆試模擬試卷第2套一、公共基礎(chǔ)選擇題(本題共10題,每題1.0分,共10分。)1、十進(jìn)制數(shù)555的十六進(jìn)制數(shù)表示形式為_(kāi)_____。A、220B、22AC、22BD、22C標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:本題考查不同進(jìn)制數(shù)間的轉(zhuǎn)換,(555)10=(1000101011)2=(22B)16。2、計(jì)算機(jī)的存儲(chǔ)器完整的應(yīng)包括______。A、內(nèi)存儲(chǔ)器與外存儲(chǔ)器B、磁盤(pán)、磁帶與光盤(pán)C、RAM與ROMD、軟盤(pán)與硬盤(pán)標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:存儲(chǔ)器包括內(nèi)部存儲(chǔ)器和外部存儲(chǔ)器,而選項(xiàng)B、D只能統(tǒng)稱(chēng)為外部存儲(chǔ)器,選項(xiàng)C屬于內(nèi)部存儲(chǔ)器。3、在具有n(n>1)個(gè)結(jié)點(diǎn)的完全二叉樹(shù)中,結(jié)點(diǎn)i(2i>n)的左孩子結(jié)點(diǎn)是______。A、2iB、2i+1C、不存在D、2i-1標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:完全二叉樹(shù)中葉子結(jié)點(diǎn)一定在最后一層或兩層。n個(gè)結(jié)點(diǎn)的完全二叉樹(shù)中,其層數(shù)最多為log2n+1。結(jié)點(diǎn)i與雙親的關(guān)系是i≠1時(shí),i的雙親是trunc(i/2)。結(jié)點(diǎn)i與子女的關(guān)系是:若2i≤n,則i的左孩子是標(biāo)號(hào)2i的結(jié)點(diǎn),若2i>n,則不存在左孩子;若2i+1≤n,則i的右孩子是標(biāo)號(hào)2i+1的結(jié)點(diǎn),若2i+1>n,則該結(jié)點(diǎn)不存在右孩子。4、結(jié)構(gòu)化程序流程圖中一般包含3種基本結(jié)構(gòu)。下述結(jié)構(gòu)中,______不屬于其基本結(jié)構(gòu)。A、順序結(jié)構(gòu)B、嵌套結(jié)構(gòu)C、循環(huán)結(jié)構(gòu)D、條件結(jié)構(gòu)標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:結(jié)構(gòu)化程序流程圖中包括順序結(jié)構(gòu)、條件結(jié)構(gòu)和循環(huán)結(jié)構(gòu)3種基本結(jié)構(gòu),而不包含嵌套結(jié)構(gòu)。5、計(jì)算機(jī)中,能夠用來(lái)與外存交換信息的是______。A、鍵盤(pán)B、RAMC、顯示器D、ROM標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:RAM中存儲(chǔ)著當(dāng)前使用的程序、數(shù)據(jù)、中間結(jié)果和與外存交換的數(shù)據(jù),CPU根據(jù)需要可以直接讀/寫(xiě)RAM中的內(nèi)容。6、堆排序是一種______排序。A、插入B、選擇C、交換D、歸并標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:堆排序是一種選擇排序。選擇排序有直接選擇排序和堆排序兩種。7、瀑布模型適合于______。A、大型軟件系統(tǒng)開(kāi)發(fā)B、中型軟件系統(tǒng)開(kāi)發(fā)C、小型軟件系統(tǒng)開(kāi)發(fā)D、大、中、小型軟件系統(tǒng)開(kāi)發(fā)標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:根據(jù)瀑布模型的特點(diǎn)(連續(xù)無(wú)反饋)是對(duì)于每一個(gè)階段來(lái)說(shuō),前一個(gè)階段工作的正確無(wú)誤是至關(guān)重要的。因此,瀑布模型不能很好地適應(yīng)那些需求不易確定和多變的軟件項(xiàng)目的開(kāi)發(fā)。由于大項(xiàng)目在軟件開(kāi)發(fā)的前期階段,人們很難詳細(xì)地了解系統(tǒng)的許多細(xì)節(jié),從而在項(xiàng)目進(jìn)行過(guò)程中常會(huì)出現(xiàn)需求變化。因此,瀑布模型適用于小系統(tǒng)開(kāi)發(fā)項(xiàng)目,而不適用于大、中型軟件系統(tǒng)開(kāi)發(fā)。8、在多媒體計(jì)算機(jī)系統(tǒng)中,不能存儲(chǔ)多媒體信息的是______。A、光盤(pán)B、磁盤(pán)C、磁帶D、光纜標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:光纜是多媒體信息的傳輸通道,不能存儲(chǔ)多媒體信息。9、對(duì)一個(gè)關(guān)系投影操作以后,新關(guān)系的元組個(gè)數(shù)______原來(lái)關(guān)系的元組個(gè)數(shù)。A、小于B、小于或等于C、等于D、大于標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:投影操作是從關(guān)系中選擇某些列,投影后消去了某些屬性,就可能出現(xiàn)重復(fù)元組,根據(jù)關(guān)系的性質(zhì),應(yīng)消去這些完全相同的元組。這樣使得新關(guān)系的元組數(shù)小于或等于原來(lái)的元組數(shù)。10、下列關(guān)于“數(shù)據(jù)庫(kù)系統(tǒng)(DBS)”的敘述中,正確的一條是______。A、DBS是指在計(jì)算機(jī)系統(tǒng)中引入數(shù)據(jù)庫(kù)后的系統(tǒng)構(gòu)成B、DBS是幫助用戶(hù)建立、使用和管理數(shù)據(jù)庫(kù)的一種計(jì)算機(jī)軟件C、DBS是用戶(hù)建立的若干數(shù)據(jù)庫(kù)文件的集合D、DBS是一種新穎的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)系統(tǒng)DBS是指在計(jì)算機(jī)系統(tǒng)中引入數(shù)據(jù)庫(kù)后的系統(tǒng)構(gòu)成。數(shù)據(jù)庫(kù)系統(tǒng)是一種帶有數(shù)據(jù)庫(kù)的綜合系統(tǒng),它包括硬件、軟件(如操作系統(tǒng)、數(shù)據(jù)庫(kù)管理系統(tǒng)、編譯系統(tǒng)及應(yīng)用開(kāi)發(fā)工具軟件等)、數(shù)據(jù)庫(kù)以及開(kāi)發(fā)者和使用者。二、選擇題(1分)(本題共10題,每題1.0分,共10分。)11、以下運(yùn)算符中優(yōu)先級(jí)最高的運(yùn)算符是______。A、++B、?:C、!=D、&&標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:四個(gè)運(yùn)算符的優(yōu)先級(jí)由高到低依次是:++,&&,?:,!=。12、下列4組選項(xiàng)中,均不是C語(yǔ)言關(guān)鍵字的選項(xiàng)是______。A、definesumtypeB、getccharprintfC、includescanfcaseD、whilegopow標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:本題各選項(xiàng)中的關(guān)鍵字只有三個(gè):char,case,while。13、已知各變量的類(lèi)型說(shuō)明如下:intk,a,b;unsignedlongw=5;doublex=142;則以下不符合c語(yǔ)言語(yǔ)法的表達(dá)式是______。A、x%(-3)B、w+=-2C、k=(a=2,b=3,a+b)D、a+=a-=(b=4)*(a=3)標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:求余運(yùn)算符“%”為雙目運(yùn)算符,要求兩個(gè)操作數(shù)都是整型。14、表達(dá)式18/4*sqrt(4.0)/8值的數(shù)據(jù)類(lèi)型為_(kāi)_____。A、intB、floatC、doubleD、不確定標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:根據(jù)數(shù)據(jù)類(lèi)型轉(zhuǎn)換時(shí)的就長(zhǎng)轉(zhuǎn)換規(guī)則,可以得到最后的結(jié)果應(yīng)是實(shí)型。15、設(shè)a=12,a定義為整型變量。表達(dá)式a+=a-=a*=a的值為_(kāi)_____。A、12B、144C、0D、132標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:表達(dá)式a+=a-=a*=a的運(yùn)算方向是自右向左,即先計(jì)算a*=a,a值為a*a=144,再計(jì)算a-=a,a值為a-a=0,再計(jì)算計(jì)a+=a,故表達(dá)式和a的值都為a+a=0。16、在C語(yǔ)言中,合法的字符常量是______。A、’\081B、’\x43’C、’ab’D、\0標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:選項(xiàng)A錯(cuò)在表示轉(zhuǎn)義字符的三位八進(jìn)制數(shù)中不能出現(xiàn)8,選項(xiàng)C錯(cuò)在字符串要用雙引號(hào)括起,選項(xiàng)D錯(cuò)在單個(gè)字符應(yīng)用單引號(hào)括起。選項(xiàng)B表示用兩位16進(jìn)制數(shù)代表轉(zhuǎn)義字符。17、以下程序片段的輸出結(jié)果是______。charstr[]="abc\n\012\\\"";printf("%d",strlen(str));A、4B、5C、6D、7標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:abc后的四個(gè)字符都是由反斜線(xiàn)引出的轉(zhuǎn)義字符,\n是換行符,\012也是換行符,\\表示反斜線(xiàn)本身,\"表示雙引號(hào),因此,一共是7個(gè)字符。18、假定有以下變量定義,則能使值為3的表達(dá)式是______。intk=7,x=12;A、x%=(k%=5)B、x%=(k-k%5)C、x%=k-k%5D、(x%=k)-(k%=5)標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:選項(xiàng)A,(k%=5)=2,(x%=2)=0;選項(xiàng)B,(k-k%5)=7-2=5,(x%=5)=2:選項(xiàng)C,(k%5)=2,k-2=7-2=5,(x%5)=2;選項(xiàng)D,(x%=7)=5,(k%=5)=2,5-2=3。19、下面程序運(yùn)行的結(jié)果是______。main(){intx,y,z;x=0;y=z=-1;x+=-z---y;printf("x=%d\n",x);}A、x=4B、x=0C、x=2D、x=3標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:表達(dá)式“x+=-z---y”等價(jià)于“x=x+(-z-(-(-y)))=0+(1-(-1))=2”。20、下面語(yǔ)句中不能定義一個(gè)數(shù)組,元素值依次分別為1,1,1,0,0的是______。A、staticinta[5]={1,1,1,0,0};B、staticinta[5]={1,1,1};C、staticinta[]={1,1,1,0,0};D、staticinta[5]={1*2,0*3};標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:不可能用表達(dá)式的方式來(lái)給數(shù)組元素一一賦值。三、選擇題(2分)(本題共30題,每題1.0分,共30分。)21、設(shè)a、b、c、d、m、n均為int型變量,且a=5、b=6、c=7、d=8、m=2、n=2,則邏輯表達(dá)式(m=a>b)&&(n=c>d)運(yùn)算后,n的值為_(kāi)_____。A、0B、1C、2D、3標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:C語(yǔ)言中比較表達(dá)式的運(yùn)算結(jié)果為0或1。0代表不成立,1表示成立。22、以下程序的輸出結(jié)果是______。main(){intnum=0;while(num<=2){num++;printf("%d\n",num);}}A、1234B、123C、12D、1標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:while的執(zhí)行過(guò)程是:先計(jì)算條件表達(dá)式的值,若成立則執(zhí)行循環(huán)體,重復(fù)上述過(guò)程,直到條件表達(dá)式的值為“假”(值為零)時(shí),退出循環(huán),并轉(zhuǎn)下—語(yǔ)句去執(zhí)行。本題在輸出num的值為3之后,再判斷while的循環(huán)條件3<=2,不成立,所以不再輸出num的值,故本題的答案選B。23、下面的關(guān)鍵字中,不能夠從循環(huán)體中跳到循環(huán)體外的是______。A、gotoB、breakC、returnD、continue標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:在C語(yǔ)言中,可以用break語(yǔ)句和continue語(yǔ)句跳出本層循環(huán)和結(jié)束本次循環(huán)。goto語(yǔ)句可跳出多層循環(huán),如果在函數(shù)的循環(huán)體內(nèi)使用return語(yǔ)句,就會(huì)直接結(jié)束循環(huán)返回函數(shù)值。24、以下各選項(xiàng)企圖說(shuō)明一種新的類(lèi)型名,其中正確的是______。A、typedefv1int;B、typedefv2=int;C、typedefintv3;D、typedefv4:int標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:C語(yǔ)言中可以使用typedef來(lái)重新定義已有的數(shù)據(jù)類(lèi)型,相當(dāng)于為數(shù)據(jù)類(lèi)型取個(gè)別名。25、為了避免嵌套的if-else的二義性,C語(yǔ)言規(guī)定:else與______配對(duì)。A、縮排位置相同的ifB、其之前最近的ifC、其之后最近的ifD、同一行上的if標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:在if語(yǔ)句中又包含—個(gè)或多個(gè)if語(yǔ)句稱(chēng)為if語(yǔ)句的嵌套。應(yīng)當(dāng)注意if與else的配對(duì)關(guān)系,在C語(yǔ)言中,從最內(nèi)層開(kāi)始,else總是與它上面最近的(未曾配對(duì)的)if配對(duì)。26、在調(diào)用函數(shù)時(shí),如果實(shí)參是簡(jiǎn)單變量,它與對(duì)應(yīng)形參之間的數(shù)據(jù)傳遞方式是______。A、地址傳遞B、單向值傳遞C、由實(shí)參傳紿形,再由形參傳回實(shí)參D、傳遞方式由用戶(hù)指定標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:C語(yǔ)言函數(shù)中的參數(shù)傳遞方式有傳值與傳址兩種方式,傳值方式是指將實(shí)參的值復(fù)制一份傳遞給形參,而傳址方式是指將實(shí)參的變量地址傳遞給形參,也就是實(shí)參的引用。27、以下函數(shù)值的類(lèi)型是______。fun(floatx){floaty;y=3*x-4;returny;}A、intB、不確定C、voidD、float標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:C語(yǔ)言中如果函數(shù)前不加任何數(shù)據(jù)類(lèi)型時(shí),默認(rèn)函數(shù)的類(lèi)型為整型,函數(shù)的類(lèi)型就是函數(shù)返回值的類(lèi)型。28、以下選項(xiàng)中,非法的字符常量是______。A、’\t’B、’\17’C、\nD、’\xaa’標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:C語(yǔ)言中字符常量是以單引號(hào)括起來(lái)的單個(gè)字符,或?yàn)橐浴癨”與三位八進(jìn)制數(shù)值或兩位十六進(jìn)制數(shù)值代替單個(gè)字符。29、以下程序的輸出結(jié)果是______。#include<stdio.h>main(){inta=200;#definea100printf("%dd",a);#undefaprintf("%d",a);}A、200100B、100100C、100200D、200200標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:#define宏名的有效范圍為定義命令之后到本源文件結(jié)束,可以在程序中使用#undef命令終止宏定義的作用域。本題由于#undef的作用,使a的作用范圍在#definea100到#undefa之間,故答案為C。30、若有說(shuō)明inti,j=2,*p=&i;,則能完成i=j賦值功能的語(yǔ)句是______。A、i=*p;B、*p=*&j;C、i=&j;D、i=**p;標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:指針是一種用來(lái)存放變量地址的特殊變量。本題中指針變量p用于存放整型變量i的地址,改變*p的值即為改變i的值。又因?yàn)椤?”和“*”兩個(gè)運(yùn)算符的優(yōu)先級(jí)別相同,按自右而左的方向結(jié)合,所以*&j先進(jìn)行&j運(yùn)算,得j的地址,再進(jìn)行*迄算,取所得地址里面的值,故*&j與j等價(jià)。31、假定int類(lèi)型變量占用兩個(gè)字節(jié),若有定義:intx[10]={0,2,4};,則數(shù)組x在內(nèi)存中所占字節(jié)數(shù)是______。A、3B、6C、10D、20標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:當(dāng)數(shù)組定義后,系統(tǒng)就為其分配內(nèi)存空間,而不論其中有沒(méi)有內(nèi)容。因此,本題中數(shù)組x[10]不論是否為其元素初始化,它所分配的存儲(chǔ)空間仍為2*10=20個(gè)字節(jié)。32、執(zhí)行以下的程序段后,m的值是______。inta[2][3]={{1,2,3},(4,5,6}};intm,*p;p=&a[0][0];m=p[4];A、4B、5C、3D、不確定標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:程序中定義了一個(gè)指向整型變量的指針變量,并對(duì)其賦值為二維整型數(shù)組a的首元素的地址。P[4]等價(jià)于*(p+4),即二維數(shù)組a中第四個(gè)元素的值,而a是一個(gè)2*3的二維數(shù)組,其第四個(gè)元素為a[1][1],即5。33、以下程序的輸出結(jié)果是______。main(){inti,a[10];for(i=9;i>=0;i-)a[i]=10-i;printf("%d%d%d",a[2],a[5],a[8]);}A、258B、741C、852D、369標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:在本題運(yùn)行時(shí)主要注意的是當(dāng)i=9時(shí),a[i]=10-9=1;i=8時(shí),a[i]=10-8=2;i=7時(shí),a[i]=10-7=3;……依此類(lèi)推,直到i=0時(shí),a[i]=10-0=10:此時(shí),i的值已變?yōu)?1,判斷for的循環(huán)條件,不成立,然后輸出a[2],a[5],a[8]分x偽8,5,2。34、下面程序的輸出結(jié)果為_(kāi)_____。#include<string.h>main(){charp1[7]="abc",p2[]="ABC",str[50]="xyz";strcpy(str,strcat(p1,p2));printf("%s",str);}A、xyzabcABCB、abcABCC、xyzabcD、xyzABC標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:strcpy(str1,s1):作用是將字符串s1拷貝到字符數(shù)組str1中去。strcat(字符數(shù)組1,字符數(shù)組2):把字符串2接到字符串1的后面,結(jié)果放在字符數(shù)組1中,函數(shù)調(diào)用后返回字符數(shù)組1的地址。本題定義了三個(gè)字符數(shù)組p1,p2,str,strcat(p1,p2)函數(shù)的作用是將字符串?dāng)?shù)組p2接到字符串p1的后面,結(jié)果放在字符數(shù)組p1,再通過(guò)strcpy()函數(shù)將該字符串拷貝到str數(shù)組中,原str數(shù)組中的字符串xyz被覆蓋,因此打印輸出字符串str即可得到abcABC。35、以下數(shù)組定義中不正確的是______。A、inta[2][3];B、intb[][3]={0,1,2};C、intc[100][100]={0};D、intd[3][]={{1,2},{1,2,3},{1,2,3,4}};標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:一維數(shù)組的定義方式為:類(lèi)型說(shuō)明符數(shù)組名[常量表達(dá)式];選項(xiàng)A符合此定義形式,正確;C語(yǔ)言中多維數(shù)組賦初值時(shí)可以部分賦值,也可以不指定除第一維以外的其他維的大小,故選項(xiàng)C正確;另外,如果對(duì)全部數(shù)組元素都賦初值,則定義數(shù)組時(shí)對(duì)第一維的長(zhǎng)度可以不指定,但第二維的長(zhǎng)度不能省,所以選項(xiàng)B正確,而選項(xiàng)D是錯(cuò)誤的。36、以下程序的輸出結(jié)果是______。main(){inta[4][4]={{1,3,5},{2,4,6},{3,5,7}};printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1];a[3][0]);}A、650B、1470C、5430D、輸出值不定標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:對(duì)未給出初始值的整數(shù)數(shù)組元素,被默認(rèn)初始化為零。37、在說(shuō)明語(yǔ)句int*f();中,標(biāo)識(shí)符f代表的是______。A、一個(gè)用于指向整型數(shù)據(jù)的指針變量B、—個(gè)用于指向—維數(shù)組的行指針C、—個(gè)用于指向函數(shù)的指針變量D、一個(gè)返回值為指針型的函數(shù)名標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:帶回指針值的函數(shù),其—般定義形式為:類(lèi)型標(biāo)識(shí)符*函數(shù)名(參數(shù)表);例如,int*f(x,y);其中,f是函數(shù)名,調(diào)用它以后能得到—個(gè)指向整型數(shù)據(jù)的指針(地址),x,y是函數(shù)f的形參。在f的兩側(cè)分別為*運(yùn)算符和()預(yù)算符,而()優(yōu)先級(jí)高于*,因此f先與()結(jié)合,顯然是函數(shù)形式。這個(gè)函數(shù)前面有一個(gè)*,表示此函數(shù)是指針型函數(shù)(函數(shù)值是指針)。前面的int表示返回的指針指向整型變量。38、以下程序的輸出結(jié)果是______。main(){charst[20]="hello\0\t\\";printf("%d%d\n",strlen(st),sizeof(st));}A、99B、520C、1320D、2020標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:C語(yǔ)言中字符串是以’\0’字符結(jié)束的,且strlen()函數(shù)計(jì)算的是’\0’字符前的所有字符的個(gè)數(shù)。本題中strlen(st)應(yīng)為5。數(shù)組定義以后系統(tǒng)就為其分配相應(yīng)大小的內(nèi)存空間,而不論其中有沒(méi)有內(nèi)容。sizeof()函數(shù)是計(jì)算變量或數(shù)組的所分配到的內(nèi)存空間的大小。所以本題的sizeof(st)為20。39、以下程序運(yùn)行后的輸出結(jié)果是______。intd=1;fun(intp){staticintd=5;d+=p;printf("%d",d);returnd;}main(){inta=3;printf("%d\n",fun(a+fun(d)));}A、699B、669C、61515D、6615標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:靜態(tài)局部變量在編譯時(shí)賦初值,即只賦初值一次,在程序運(yùn)行時(shí)它已有初值。以后每次調(diào)用時(shí)不再重新賦初值而只是保留上次函數(shù)調(diào)用結(jié)束時(shí)的值,而對(duì)自動(dòng)變量賦初值,不是在編譯時(shí)進(jìn)行的,而在函數(shù)調(diào)用時(shí)進(jìn)行,每調(diào)用一次函數(shù)重新給一次初值,相當(dāng)于執(zhí)行一次賦值語(yǔ)句。本題在程序開(kāi)頭定義了全局變量d并賦初值1,在被調(diào)函數(shù)fun()中,定義了靜態(tài)局部變量d,初值為5。在第一次調(diào)用函數(shù)fun時(shí),d初值為5,p由主函數(shù)傳遞過(guò)來(lái)的值為1,則d=d+p=5+1=6,由于d是靜態(tài)局部變量,在函數(shù)調(diào)用結(jié)束后,它仍保留d=6。再次調(diào)用fun函數(shù),d的初值為6,而由主函數(shù)傳遞的p的值為9,則此時(shí)d=d+p=6+9=15,最后打印輸出d的值并返回主函數(shù)。40、以下選項(xiàng)中,不能確定賦值的是______。A、chars1[10];s1="chest";B、chars2[]={’C’,’t’,’e’,’s’,’t’};C、chars3[20]="Chest";D、char*s4="Ctest\n"標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:C語(yǔ)言中不能將字符串常量直接賦給數(shù)組。但在賦初值時(shí)可以。41、以下程序輸出正確的是______。amovep(int*p,int(*a)[3],intn){inti,j;for(i=0;i<n;i++)for(j=0;j<n;j++){*p=a[i][j];p++;}}main(){int*p,a[3][3]={{1,3,5},{2,4,6}};p=(int*)malloc(100);arnovep(p,a,3);printf("%d%d\n",p[2],p[5];free(p);}A、56B、25C、34D、程序錯(cuò)誤標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:本題main函數(shù)中定義了指針p和二維數(shù)組a,通過(guò)函數(shù)amovep將數(shù)組的值存入指針p所指向的存儲(chǔ)單元中,a的各元素分別為:a[0][0]=1,a[0][1]=3,a[0][2]=5,a[1][0]=2,a[1][1]=4,a[1][2]=6,a[2][0]=0,a[2][1]=0,a[2][2]=0。通過(guò)mailoc()函數(shù)給指針?lè)峙鋬?nèi)存空間,free()函數(shù)用于釋放指針變量所用內(nèi)存空間。在主函數(shù)中通過(guò)amovep(p,a,3)調(diào)用函數(shù)amovep,使得實(shí)參p與形參p,實(shí)參數(shù)組a與形參中指向數(shù)組的指針變量共用同一存儲(chǔ)空間。最后輸出p[2],p[5]為56。42、下面程序的輸出結(jié)果是______。#definea121constb=12;enumc{a1,a2};main(){printf("%d,%d,%d",sizeof(a),sizeof(b),sizeof(enumc));}A、121,0,4B、2,2,2C、0,2,4D、0,2,2標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:sizeof函數(shù)是取變量所占的存儲(chǔ)空間的字節(jié)數(shù),標(biāo)識(shí)a代表常量121;constb=12;,其中數(shù)據(jù)類(lèi)型可以缺省,默認(rèn)為整型;enumc{a1,a2};定義了—個(gè)枚舉類(lèi)型enumc,a1,a2為枚舉元素,在C編譯時(shí),對(duì)枚舉元素按常量處理,它們的值按定義順序依次為0,1。因此它們的字節(jié)數(shù)均為2,2,2。43、以下程序的輸出結(jié)果是______。structHAR{intx,y;structHAR*p;}h[2];main(){h[0].x=1;h[0].y=2;h[1].x=3;h[1].y=4;h[0].p=&h[1];h[1].p=h;printf("%d%d\n",(h[0].p)->x,(h[1].p)->y);}A、12B、23C、14D、32標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:本題中是一個(gè)含有兩個(gè)結(jié)點(diǎn)的循環(huán)鏈表。C語(yǔ)言中結(jié)構(gòu)體的定義為:struct結(jié)構(gòu)題類(lèi)型名{成員項(xiàng)表;};44、變量a所占的內(nèi)存字節(jié)數(shù)是______。unionU{charst[4];inti;long1;};structA{intc;unionUu;}a;A、4B、5C、6D、8標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:結(jié)構(gòu)體變量所占內(nèi)存長(zhǎng)度是各成員占內(nèi)存長(zhǎng)度之和,而共用體變量所占的內(nèi)存長(zhǎng)度等于最長(zhǎng)的成員的長(zhǎng)度。本題結(jié)構(gòu)體變量a中成員c為整型占2個(gè)字節(jié),共用體變量u最大長(zhǎng)度為4個(gè)字節(jié),故選C。45、以下程序的結(jié)果是______。inta,b;voidfun(){a=100;b=200;}main(){inta=5,b=7;fun();printf("%d%d\n",a,b);}A、100200B、57C、200100D、75標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:全程變量是可以在于函數(shù)中對(duì)其值作改變,且它也可作為函數(shù)間的值傳遞。但當(dāng)函數(shù)或子函數(shù)中定義了與全程變量名稱(chēng)相同的局部變量,則全程變量將被屏蔽。46、以下程序的輸出結(jié)果是______。#defineM(x,y,z)x*y+zmain(){inta=1,b=2,c=3;printf("%d\n",M(a+b,b+c,c+a));}A、19B、17C、15D、12標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:C語(yǔ)言的宏定義包括不帶參數(shù)的宏定義與帶參數(shù)的宏定義。本題為帶參數(shù)的宏定義,其形式為:#define宏名(形參表)字符串本題的M(a+,b+c,c+a)被字符串a(chǎn)+b*b+c+c+a代替。47、若有以下說(shuō)明和語(yǔ)句:structst{intn;char*ch;};strucesta[3]={5,"abc",7,"def",9,"ghk"},*p=a;則值為6的表達(dá)式是______。A、p++->nB、p->n++C、(*p).n++D、++P->n標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:根據(jù)結(jié)構(gòu)變量的存儲(chǔ)特點(diǎn),p+1意味著增加地址值為結(jié)構(gòu)體數(shù)組a的一個(gè)元素所占的字節(jié)數(shù),即p++使p由a[0]指向a[1]起始地址。本題++p->n得到p指向的結(jié)構(gòu)伸變量中成員n的值使之加1。因?yàn)閜指向數(shù)組a起始地址,p->n的值為5,再執(zhí)行自加1運(yùn)行,結(jié)果為6。48、整型變量X和Y的值相等,且為非0值,則以下選項(xiàng)中結(jié)果為0的表達(dá)式是______。A、X||YB、X|YC、X&YD、XY標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:“||”為或運(yùn)算符,當(dāng)其左右表達(dá)式中只要一個(gè)為非零則整個(gè)表達(dá)式的值1。|是按位或,&是按位與,^是按位異或,這三位運(yùn)算符是按值的二進(jìn)制位來(lái)比較的。49、C語(yǔ)言中,組成數(shù)據(jù)文件的成分是______。A、記錄B、數(shù)據(jù)行C、數(shù)據(jù)塊D、字符(字節(jié))序列標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:C語(yǔ)言中的文件是流式文件。流式文件是一種無(wú)結(jié)構(gòu)文件,即整個(gè)文件是一串字符流或二進(jìn)制流。文件的存取以字符或字節(jié)為單位。50、下面的程序執(zhí)行后,文件test.t中內(nèi)容是______。#include<stdio.h>voidfun(char*fname,char*st){FILE*myf;inti;myf=fopen(fname,"w");for(i=0;i<strlen(st);i++)fputc(st[i],myf);fclose(myf);}main(){fun("test.t","newworld");fun("test.t","hello,");}A、hello,B、newworldhelloC、newworldD、hello,rld標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:C語(yǔ)言中文件有文本文件與二進(jìn)制文件,對(duì)文件的使用前必須先打開(kāi),打開(kāi)方式有只讀、寫(xiě)入、讀寫(xiě)等方式。四、公共基礎(chǔ)填空題(本題共5題,每題1.0分,共5分。)51、在先左后右的原則下,根據(jù)訪(fǎng)問(wèn)根結(jié)點(diǎn)的次序,二叉樹(shù)的遍歷可以分為三種:前序遍歷、【】遍歷和后序遍歷。標(biāo)準(zhǔn)答案:中序知識(shí)點(diǎn)解析:在先左后右的原則下,根據(jù)訪(fǎng)問(wèn)根結(jié)點(diǎn)的次序,二叉樹(shù)的遍歷可以分為三種:前序遍歷、中序遍歷和后序遍歷。前序遍歷是指在訪(fǎng)問(wèn)根結(jié)點(diǎn)、遍歷左子樹(shù)與遍歷右子樹(shù)這三者中,首先訪(fǎng)問(wèn)根結(jié)點(diǎn),然后遍歷左子樹(shù),最后遍歷右子樹(shù):并且遍歷左、右子樹(shù)時(shí),仍然先訪(fǎng)問(wèn)根結(jié)點(diǎn),然后遍歷左子樹(shù),最后遍歷右子樹(shù)。中序遍歷指在訪(fǎng)問(wèn)根結(jié)點(diǎn)、遍歷左子樹(shù)與遍歷右子樹(shù)這三者中,首先遍歷左子樹(shù),然后訪(fǎng)問(wèn)根結(jié)點(diǎn),最后遍歷右子樹(shù);并且遍歷左、右子樹(shù)時(shí),仍然先遍歷左子樹(shù),然后訪(fǎng)問(wèn)根結(jié)點(diǎn),最后遍歷右子樹(shù)。后序遍歷指在訪(fǎng)問(wèn)根結(jié)點(diǎn)、遍歷左子樹(shù)與遍歷右子構(gòu)這三者中,首先遍歷右子樹(shù),然后訪(fǎng)問(wèn)根結(jié)點(diǎn),最后遍歷左子樹(shù);并且遍歷左、右子樹(shù)時(shí),仍然先遍歷右子樹(shù),然后訪(fǎng)問(wèn)根結(jié)點(diǎn),最后遍歷左子樹(shù)。52、結(jié)構(gòu)化程序設(shè)計(jì)方法的主要原則可以概括為自頂向下、逐步求精、【】和限制使用goto語(yǔ)句。標(biāo)準(zhǔn)答案:模塊化知識(shí)點(diǎn)解析:結(jié)構(gòu)化程序設(shè)計(jì)方法的主要原則可以概括為自頂向下、逐步求精、模塊化和限制使用goto語(yǔ)句。自頂向下:程序設(shè)計(jì)時(shí),應(yīng)先考慮總體,后考慮細(xì)節(jié);先考慮全局目標(biāo),后考慮局部目標(biāo)。不要一開(kāi)始就過(guò)多追求眾多的細(xì)節(jié),先從最上層總目標(biāo)開(kāi)始設(shè)計(jì),逐步使問(wèn)題具體化。逐步求精:對(duì)復(fù)雜問(wèn)題,應(yīng)設(shè)計(jì)—些子目標(biāo)作過(guò)度,逐步細(xì)化。模塊化:—個(gè)復(fù)雜問(wèn)題,肯定是由若干稍簡(jiǎn)單的問(wèn)題構(gòu)成。模塊化是把程序要解決的總目標(biāo)分解為分目標(biāo),再進(jìn)—步分解為具體的小目標(biāo),把每個(gè)小目標(biāo)稱(chēng)為—個(gè)模塊。限制使用goto語(yǔ)句。53、軟件測(cè)試是保證軟件質(zhì)量的重要手段,而軟件測(cè)試的主要和重要的測(cè)試方法是通過(guò)測(cè)試數(shù)據(jù)和【】的設(shè)計(jì)來(lái)實(shí)現(xiàn)。標(biāo)準(zhǔn)答案:測(cè)試實(shí)例知識(shí)點(diǎn)解析:進(jìn)行軟件測(cè)試時(shí),應(yīng)精心設(shè)計(jì)測(cè)試實(shí)例和選擇測(cè)試數(shù)據(jù),以對(duì)系統(tǒng)進(jìn)行全面測(cè)試。54、數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式分別為【】模式、內(nèi)部級(jí)模式與外部級(jí)模式。標(biāo)準(zhǔn)答案:概念或概念級(jí)知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)系統(tǒng)在其內(nèi)部具有三級(jí)模式及二級(jí)映射,三級(jí)模式分別是概念級(jí)模式、內(nèi)部級(jí)模式和外部級(jí)模式。概念模式是數(shù)據(jù)庫(kù)系統(tǒng)中全局?jǐn)?shù)據(jù)邏輯結(jié)構(gòu)的描述,是全體用戶(hù)(應(yīng)用)公共數(shù)據(jù)視圖。內(nèi)模式又稱(chēng)物理模式,它給出了數(shù)據(jù)庫(kù)物理存儲(chǔ)結(jié)構(gòu)與物理存取方法,如數(shù)據(jù)存儲(chǔ)的文件結(jié)構(gòu)、索引、集簇及hash等存取方式與存取路徑,內(nèi)模式的物理性主要體現(xiàn)在操作系統(tǒng)及文件級(jí)上,它還未深入設(shè)備級(jí)上(如磁盤(pán)及磁盤(pán)操作)。外模式也稱(chēng)子模式或用戶(hù)模式,它是用戶(hù)的數(shù)據(jù)視圖,也就是用戶(hù)所見(jiàn)到的數(shù)據(jù)模式,它由概念模式推導(dǎo)而出。55、數(shù)據(jù)字典是各類(lèi)數(shù)據(jù)描述的集合,它通常包括5個(gè)部分,即數(shù)據(jù)項(xiàng)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、【】和處理過(guò)程。標(biāo)準(zhǔn)答案:數(shù)據(jù)存儲(chǔ)知識(shí)點(diǎn)解析:數(shù)據(jù)字典是各類(lèi)數(shù)據(jù)描述的集合,它通常包括5個(gè)部分,即數(shù)據(jù)項(xiàng),是數(shù)據(jù)的最小單位;數(shù)據(jù)結(jié)構(gòu),是若干數(shù)據(jù)項(xiàng)有意義的集合:數(shù)據(jù)流,可以是數(shù)據(jù)項(xiàng),也可以是數(shù)據(jù)結(jié)構(gòu),表示某—處理過(guò)程的輸入或輸出;數(shù)據(jù)存儲(chǔ),處理過(guò)程中存取的數(shù)據(jù),常常是手工憑證、手工文檔或計(jì)算機(jī)文件;處理過(guò)程。五、填空題(本題共14題,每題1.0分,共14分。)56、定義inta=5,b;,則執(zhí)行表達(dá)式b=++a*--a之后,變量b的值為【】。標(biāo)準(zhǔn)答案:25知識(shí)點(diǎn)解析:#NAME?57、函數(shù)count(head)統(tǒng)計(jì)鏈表的結(jié)點(diǎn)個(gè)數(shù),head為表頭指針,閱讀程序,要求將整個(gè)if語(yǔ)句改成while循環(huán)控制結(jié)構(gòu),其形式為【】。#include<stdio.h>intcount(NODE*head){intn=0;if(head!=NULL)do{n++;head=head->next;}while(head!=NULL);returnn;}標(biāo)準(zhǔn)答案:while(p!=NULL){n++;head=head→next;}知識(shí)點(diǎn)解析:do…while循環(huán)轉(zhuǎn)化為while循環(huán),循環(huán)體執(zhí)行的內(nèi)容應(yīng)該是一致的,不同的是do…while結(jié)構(gòu)是先執(zhí)行一次循環(huán)體,然后再判斷循環(huán)條件是否滿(mǎn)足,而while循環(huán)則是先判斷循環(huán)條件是否滿(mǎn)足,滿(mǎn)足則執(zhí)行循環(huán)體。所以do…while循環(huán)結(jié)構(gòu)若想轉(zhuǎn)換為while循環(huán)結(jié)構(gòu),必須在do…while循環(huán)之前先對(duì)循環(huán)條件進(jìn)行一個(gè)判斷,即此題中的if(head!=NULL)。注意:3種循環(huán)結(jié)構(gòu)的比較。58、語(yǔ)句printf("%f\n",13.0*(1/5));的輸出結(jié)果為【】。標(biāo)準(zhǔn)答案:0知識(shí)點(diǎn)解析:/表示整除,1/5為0,0乘以任何數(shù)都得零,但是與浮點(diǎn)型相乘,要轉(zhuǎn)化為浮點(diǎn)型,所以結(jié)果為0.000000。注意:在一個(gè)運(yùn)算符的兩邊如果一個(gè)是字符型,一個(gè)是整型,則把字符型轉(zhuǎn)換為整型之后再進(jìn)行運(yùn)算。59、下列程序的運(yùn)行結(jié)果是【】。#include<stdio.h>voidmain(){ints=0,k;for(k=7;k>4;k--){switch(k){case1:case4:case7:s++;break;case2:case3:case6:break;case0:case5:s+=2;break;}}printf("s=%d",s);}標(biāo)準(zhǔn)答案:s=3知識(shí)點(diǎn)解析:當(dāng)k=7時(shí),執(zhí)行case7,s++,s的值為1。當(dāng)k=6時(shí),直接break出switch結(jié)構(gòu);當(dāng)k=5時(shí),執(zhí)行case5,s+=2,s的值為3;當(dāng)k=4時(shí)由于不滿(mǎn)足for循環(huán)的條件,所以結(jié)束循環(huán),所以輸出的s的值為3。注意:循環(huán)語(yǔ)句和條件的嵌套使用。60、以下程序的功能是根據(jù)輸入的“y”(“Y”)與“n”(“N”),在屏幕上分別顯示出“ThisisYES.”與“ThisNO.”??瞻滋幮枰钊氲膬?nèi)容是#include<stdio.h>voidYesNo(charch){switch(ch){case’y’:case’Y’:printf("\nThisisYES,\n");case’n’:case’N’:printf("\nThisisNO.\n");}}main(){charch;printf("\nEnterachar’y’,’Y’or’n’,’N’:");ch=【】;printf("ch;%c",ch);YesNo(ch);}標(biāo)準(zhǔn)答案:getchar知識(shí)點(diǎn)解析:題中要求根據(jù)輸入的字符調(diào)用函數(shù)YesNo來(lái)判斷輸入的字符是y(Y)還是n(N),字符的輸入可用字符輸入函數(shù)getchar。函數(shù)YesNo用來(lái)判斷一個(gè)字符是y(Y)還是n(N),主要用了一個(gè)switch多分支結(jié)構(gòu)來(lái)比較輸入字符與字符’y’,’Y’、,’n’,’N’是否相等來(lái)實(shí)現(xiàn)的。注意:用于字符串處理的函數(shù)。61、以下程序調(diào)用函數(shù)swap_p將指針s和t所指單元(a和b)中的內(nèi)容交換,請(qǐng)?zhí)羁?。main(){inta=10,b=20,*s,*t;s=&a;t=&b;swap_p(【】);printf("%d%d,a,b");}swap_p(int**ss,int**tt){intterm;term=**ss;**ss=**tt;**tt=term;}標(biāo)準(zhǔn)答案:&s,&t知識(shí)點(diǎn)解析:指針做函數(shù)參數(shù)時(shí),
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版獵聘平臺(tái)用戶(hù)服務(wù)與隱私保護(hù)合同一
- 企業(yè)文化活動(dòng)策劃方案三篇
- 六一體驗(yàn)創(chuàng)意活動(dòng)策劃方案五篇
- 2024煤炭行業(yè)碳排放交易合同范本3篇
- 2024版檢測(cè)設(shè)備租賃合同書(shū)
- 二零二五年度企業(yè)知識(shí)產(chǎn)權(quán)保護(hù)委托合同3篇
- 七年級(jí)數(shù)學(xué)教材培訓(xùn)
- 2024建筑工地食堂承包合同
- 一年級(jí)數(shù)學(xué)100以?xún)?nèi)口算練習(xí)題
- 一年級(jí)數(shù)學(xué)20以?xún)?nèi)退位減法教學(xué)點(diǎn)評(píng)
- 路面基層允許彎沉值計(jì)算+彎沉系數(shù)圖+允許彎沉值計(jì)算公式
- 連鑄意外事故處理
- 國(guó)家開(kāi)放大學(xué)(中央廣播電視大學(xué))報(bào)名登記表【模板】
- 新職業(yè)英語(yǔ)1-基礎(chǔ)篇-Unit 3(課堂PPT)
- 公司各部門(mén)協(xié)作情況互評(píng)表滿(mǎn)意度調(diào)查表
- 第二章水準(zhǔn)測(cè)量PPT課件
- 長(zhǎng)輸管道原油輸送基本知識(shí)
- 完美世界的材料
- 藻類(lèi)名稱(chēng)(漢拉對(duì)照)
- 勞資專(zhuān)管員任命書(shū)
- 1百家姓全文帶拼音打印
評(píng)論
0/150
提交評(píng)論