版權(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ǔ)言)機(jī)試模擬試卷20(共9套)(共386題)國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷第1套一、選擇題(本題共40題,每題1.0分,共40分。)1、在關(guān)系代數(shù)運(yùn)算中,有5種基本運(yùn)算,它們是()。A、并(∪)、差(-)、交(∩)、除(÷)和笛卡兒積(×)B、并(∪)、差(-)、交(∩)、投影(π)和選擇(σ)C、并(∪)、交(∩)、投影(π)、選擇(σ)和笛卡兒積(×)D、并(∪)、差(-)、投影(π)、選擇(σ)和笛卡兒積(×)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:并、差、笛卡兒積、投影和選擇是5種基本的運(yùn)算,其他運(yùn)算即交、連接和除,均可以通過(guò)5種基本的運(yùn)算來(lái)表達(dá)。2、下列關(guān)于函數(shù)的敘述中正確的是()。A、每個(gè)函數(shù)都可以被其他函數(shù)調(diào)用(包括main函數(shù))B、每個(gè)函數(shù)都可以被單獨(dú)編譯C、每個(gè)函數(shù)都可以單獨(dú)運(yùn)行D、在一個(gè)函數(shù)內(nèi)部可以定義另一個(gè)函數(shù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在C語(yǔ)言中,函數(shù)定義是平行的,函數(shù)不能嵌套定義,即函數(shù)之間沒(méi)有從屬關(guān)系。雖然函數(shù)之間可以相互調(diào)用,但main()函數(shù)不能被調(diào)用,選項(xiàng)A)錯(cuò)誤;C程序從main()函數(shù)開(kāi)始執(zhí)行,當(dāng)main()函數(shù)執(zhí)行完畢時(shí),整個(gè)程序就結(jié)束了。C程序的執(zhí)行必須從main()函數(shù)開(kāi)始,選項(xiàng)C)選項(xiàng)錯(cuò)誤;函數(shù)不能嵌套定義,選項(xiàng)D)錯(cuò)誤。3、若變量都已正確說(shuō)明,則以下程序段()。#inchldemain(){inta=8;intb=6;printf(a>b?"&&&a=%d":"!!!b=%d",a,b);}A、輸出為:&&&a=8B、輸出為:!!Ib=8C、輸出為:&&&a=8!!!b=6D、全部錯(cuò)誤標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考杳printf的輸出格式和條件表達(dá)式“?:”的使用。①printf函數(shù)輸出時(shí),“&&&%d\n”和“!!!%d\n”中的“&&&”和“!!!”都是直接輸出。②條件表達(dá)式的基本格式為:a?b:c。其運(yùn)算規(guī)則為:當(dāng)a為非0時(shí),整個(gè)表達(dá)式的值取b的值,當(dāng)a為0時(shí),整個(gè)表達(dá)式取c的值。pnntf函數(shù)中如果在格式說(shuō)明符方前插入任何字符都將原樣輸出。本題中a>b為真,所以返回“&&&a=%d”。4、以下敘述正確的是()。A、只能在循環(huán)體內(nèi)和switch語(yǔ)句體內(nèi)使用jbreak語(yǔ)句B、contiune語(yǔ)句的作用是結(jié)束整個(gè)循環(huán)的執(zhí)行C、在循環(huán)體內(nèi)使用break語(yǔ)句或continue浯句的作用相同D、從多層循環(huán)嵌套中退出時(shí),只能使用goto語(yǔ)句標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查循環(huán)的4個(gè)知識(shí)點(diǎn):①break語(yǔ)句可以出現(xiàn)在循環(huán)體內(nèi)及switch語(yǔ)句體內(nèi),不能用于其他的語(yǔ)句;②continue語(yǔ)句的作用是結(jié)束本次循環(huán),即跳過(guò)循環(huán)體中下面尚未執(zhí)行的語(yǔ)句,而接著轉(zhuǎn)去判定循環(huán)條件是否成立,從而確定下一次循環(huán)是否繼續(xù)執(zhí)行,也就是說(shuō)執(zhí)行contiune語(yǔ)句不會(huì)使整個(gè)循環(huán)終止;③在循環(huán)體內(nèi)使用break語(yǔ)句會(huì)使循環(huán)提前終止;④從多層循環(huán)嵌套中退出時(shí),可以使用goto語(yǔ)句或者break語(yǔ)句。5、某二叉樹(shù)共有7個(gè)節(jié)點(diǎn),其中葉子節(jié)點(diǎn)有1個(gè),則該二叉樹(shù)的深度為(假設(shè)根節(jié)點(diǎn)在第1層)()。A、3B、4C、6D、7標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:根據(jù)二叉樹(shù)的性質(zhì)3:在任意一棵二叉樹(shù)中,度為0的葉子節(jié)點(diǎn)總比度為2的節(jié)點(diǎn)多一個(gè),所以本題中度為2的節(jié)點(diǎn)為1-1=0個(gè),所以知道本題目中的二叉樹(shù)的每個(gè)節(jié)點(diǎn)都有一個(gè)分支,所以7個(gè)節(jié)點(diǎn)共7層,即度為7。6、有以下程序#includemain(){inta=1,b=0;printf("%d,",b=a+b);printf("%d\n",a=2*b);}程序運(yùn)行后的輸出結(jié)果是()。A、1,2B、1,0C、3,2D、0,0標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:考查數(shù)據(jù)的輸入,printf("%d,",b=a+b);先計(jì)算b=a+b,得出b=1,再輸出b值。語(yǔ)句printf("%d\n",a=2*b);先計(jì)算a=2*b,得出a=2,再輸出a值。所以輸出結(jié)果為A)。7、有以下程序:#include<stdio.h>voidfun(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標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:C語(yǔ)言中函數(shù)參數(shù)傳遞滿足“單向傳遞”,實(shí)現(xiàn)傳遞值的功能,實(shí)參能傳給形參,形參卻不能傳回給實(shí)參。fun函數(shù)體內(nèi)輸出p的值為2,并不影響到fun函數(shù)外a的值,a的值在main函數(shù)內(nèi)依然為1。8、下面不屬于需求分析階段任務(wù)的是()。A、確定軟件系統(tǒng)的功能需求B、確定軟件系統(tǒng)的性能需求C、需求規(guī)格說(shuō)明書(shū)評(píng)審D、制定軟件集成測(cè)試計(jì)劃標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:需求分析階段的工作有:需求獲??;需求分析;編寫(xiě)需求規(guī)格說(shuō)明書(shū);需求評(píng)審,所以選擇D。9、以下程序運(yùn)行后的輸出結(jié)果是()。#include<stdio.h>voidreverse(inta[],intn){inti,t;for(i=0;i<n/2;i++){t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}}main(){intb[10]={10,9,8,7,6,5,4,3,2,1};inti,s=0;reverse(b,10);for(i=0;i<3;i++)s+=b[i];printf("%d\n",s);}A、27B、6C、25D、30標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查函數(shù)調(diào)用時(shí)的參數(shù)傳遞。函數(shù)reverse將數(shù)組b進(jìn)行了逆置,此時(shí)b[10]={10,9,8,7,6,5,4,3,2,1},后面for語(yǔ)句的功能是將b中的后3個(gè)數(shù)累加,并將結(jié)果放在s中,最后將s輸出,結(jié)果s=1+2+3=6。10、設(shè)有以下說(shuō)明,則不正確的敘述是()。Unionun{inta;charb;floatc;}arr;A、arr所占的內(nèi)存長(zhǎng)度等于成員c的長(zhǎng)度B、arr的地址和它的各成員的地址都是同一地址C、arr可以作為函數(shù)參數(shù)D、不能在定義arr時(shí)對(duì)它初始化標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題主要考查聯(lián)合體的內(nèi)存使用:聯(lián)合體所占用的內(nèi)存空間為最長(zhǎng)的成員所占用的空間,int占2個(gè)字節(jié),char占1個(gè)字節(jié),float占4個(gè)字節(jié),所以arr所占的內(nèi)存長(zhǎng)度等于成員c的長(zhǎng)度;arr的地址和它的各成員的地址都是同一地址;不能直接對(duì)arr賦值,即不能在定義arr時(shí)對(duì)它初始化;arr也不可以作為函數(shù)參數(shù)。11、下面屬于應(yīng)用軟件的是()。A、人事管理系統(tǒng)B、Oracle數(shù)據(jù)庫(kù)管理系統(tǒng)C、C++編譯系統(tǒng)D、ios操作系統(tǒng)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:系統(tǒng)軟件是管理計(jì)算機(jī)的資源,提高計(jì)算機(jī)的使用效率,為用戶(hù)提供各種服務(wù)的軟件,包括各種系統(tǒng)開(kāi)發(fā)、維護(hù)工具軟件。應(yīng)用軟件是為了應(yīng)用于特定的領(lǐng)域而開(kāi)發(fā)的軟件。人事管理系統(tǒng)屬于應(yīng)用軟件。Oracle數(shù)據(jù)庫(kù)管理系統(tǒng)、C++編譯系統(tǒng)、ios操作系統(tǒng)是系統(tǒng)軟件。故本題答案為A選項(xiàng)。12、有以下程序段:inti,n;for(i=0;i<8;i++){n=rand()%5;switch(n){case1:case3:printf(“%d\n”,n);break;case2:case4:printf(“%d\n”,n);continue;case0:exit(0);}printf(“%d\n”,n);}以下關(guān)于程序段執(zhí)行情況的敘述,正確的是()A、for循環(huán)語(yǔ)句固定執(zhí)行8次B、當(dāng)產(chǎn)生的隨機(jī)數(shù)n為4時(shí)結(jié)束循環(huán)操作C、當(dāng)產(chǎn)生的隨機(jī)數(shù)n為1和2時(shí)不做任何操作D、當(dāng)產(chǎn)生的隨機(jī)數(shù)n為0時(shí)結(jié)束程序運(yùn)行標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:當(dāng)產(chǎn)生的隨機(jī)數(shù)n為0時(shí),執(zhí)行case0:exit(0)這條語(yǔ)句,結(jié)束程序的運(yùn)行。13、C語(yǔ)言中允許用外部說(shuō)明來(lái)指定變量、函數(shù)和其他標(biāo)識(shí)符的特征,這里所說(shuō)的外部指的是()。A、冠以關(guān)鍵字externB、位置在函數(shù)體外部C、作用范圍是全程的D、位置在函數(shù)的外部標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C語(yǔ)言中允許用位置在函數(shù)外部的說(shuō)明來(lái)指定變量、函數(shù)和其他標(biāo)識(shí)符的特征。14、有以下程序#include#defineS(x)x/xmain(){intk=5,j=2;printf("%d,%d\n",S(k+j),S(j+k));}程序的運(yùn)行結(jié)果是()。A、7,9B、1,1C、7,7D、9,9標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:宏定義不是C語(yǔ)句,結(jié)尾不加";",所以該程序會(huì)出現(xiàn)編譯錯(cuò)誤,答案選A)。15、下列關(guān)于線性表的敘述中,不正確的是()。A、線性表可以是空表B、線性表是一種線性結(jié)構(gòu)C、線性表的所有結(jié)點(diǎn)有且僅有一個(gè)前件和后件D、線性表是由n個(gè)元素組成的一個(gè)有限序列標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:線性表是一種線性結(jié)構(gòu),由n(n≥0)個(gè)元素組成,所以線性表可以是空表。但是在線性表中,第一個(gè)結(jié)點(diǎn)沒(méi)有前件,最后一個(gè)結(jié)點(diǎn)沒(méi)有后件,其他結(jié)點(diǎn)有且只有一個(gè)前件和后件,所以選項(xiàng)C是錯(cuò)誤的。16、下列敘述中正確的是()。A、調(diào)用printf()函數(shù)時(shí),必須要有輸出項(xiàng)B、使用putchar()函數(shù)時(shí),必須在之前包含頭文件stdio.hC、在C語(yǔ)言中,整數(shù)可以以二進(jìn)制、八進(jìn)制或十六進(jìn)制的形式輸出D、調(diào)節(jié)getchar()函數(shù)讀入字符時(shí),可以從鍵盤(pán)上輸入字符所對(duì)應(yīng)的ASCII碼標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:選項(xiàng)A),若printf函數(shù)沒(méi)有輸出項(xiàng),且格式字符串中不含格式信息,則輸出的是格式字符串本身,若格式字符串含有格式信息,運(yùn)行時(shí)則出現(xiàn)錯(cuò)誤提示;選項(xiàng)C),在C語(yǔ)言中,整數(shù)可以十進(jìn)制、八進(jìn)制或十六進(jìn)制的形式輸出;選項(xiàng)D),getchar函數(shù)是從標(biāo)準(zhǔn)輸入設(shè)備讀取一個(gè)字符。17、有以下程序#include<stdio.h>voidf(int*q){inti=0;for(;i<5;i++)(*q)++;}main(){inta[5]={1,2,3,4,5},i;f(a);for(i=0;i<5;i++)printf("%d,",a[i]);}程序運(yùn)行后的輸出結(jié)果是A、6,2,3,4,5,B、2,2,3,4,5,C、1,2,3,4,5,D、2,3,4,5,6,標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查的是函數(shù)的地址調(diào)用,將數(shù)組名作為數(shù)組首地址進(jìn)行傳遞,然后取數(shù)據(jù)元素值進(jìn)行加1運(yùn)算。因此A選項(xiàng)正確。18、設(shè)有如下的程序段:charstr[1]="HelloWorld";char*ptr;ptr=str;執(zhí)行上面的程序段后,*(ptr+10)的值為()。A、’\0’B、’0’C、不確定的值D、’0’的地址標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題涉及字符數(shù)組和指針兩個(gè)知識(shí)點(diǎn):①在C語(yǔ)言中,字符數(shù)組在存放字符串時(shí)會(huì)自動(dòng)在末尾加上’\0’,所以題中數(shù)組str有11個(gè)元素;②ptr指向數(shù)組str的首地址,ptr+10是指向s仃[10],*(ptr+10)是引用str[10]的值(即結(jié)束符’\0’)。19、若變量已正確定義為int型,要通過(guò)語(yǔ)句seanf("%d,%d,%d",&a,&b,&C;給a賦值1、給b賦值2、給c賦值3,以下輸入形式中錯(cuò)誤的是(注:口代表一個(gè)空格符)()。A、1,2,3<回車(chē)>B、口口口1,2,3<回車(chē)>C、1,口口口2,口口口3<回車(chē)>D、1口2口3<回車(chē)>標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:scanf()的格式控制串可以使用其他非空白字符,如本題中的逗號(hào),但在輸入時(shí)必須輸入這些字符,以保證匹配。所以逗號(hào)必須輸入。20、在下列關(guān)系運(yùn)算中,不改變關(guān)系表中的屬性個(gè)數(shù)但能減少元組個(gè)數(shù)的是()。A、并B、交C、投影D、除標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:關(guān)系R與s經(jīng)交運(yùn)算后所得到的關(guān)系是由那些既在R內(nèi)又在S內(nèi)的有序組所組成,記為R∩S,交運(yùn)算不改變關(guān)系表中的屬性個(gè)數(shù)但能減少元組個(gè)數(shù)。21、有以下定義語(yǔ)句,編譯時(shí)會(huì)出現(xiàn)編譯錯(cuò)誤的是()。A、chara=‘\x2d’;B、chara=‘\n’;C、chara=‘a(chǎn)’;D、chara=“aa”;標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:D選項(xiàng)中將字符串常量“aa”賦給字符變量a是錯(cuò)誤的。22、有以下計(jì)算公式若程序前面已在命令行中包含math.h文件,不能夠正確計(jì)算上述公式的程序段是()。A、if(x>:0)y=sqrt(x);B、if(x>=0)y=sqrt(x);if(x<0)y=sqrt(一x);elsey=sqrt(一x);C、y=sqrt(x);D、y=sqrt(x>=0?x=一x);if(x<0)y=sqrt(一x);標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題重點(diǎn)考查的知識(shí)點(diǎn)是:sqrt()函數(shù)。sqrt()函數(shù)的作用是計(jì)算平方根,要求輸出的參數(shù)x必須大于等于0。題目公式的要求是無(wú)論x大于等于0還是小于0,y的值都為x絕對(duì)值的開(kāi)方。選項(xiàng)C中淵用了sqrt(x)函數(shù),而沒(méi)有判斷x的正負(fù),則y=sqrt(x)會(huì)出錯(cuò)。23、有以下程序#include<stdio.h>intf(intm){staticintn=0;n+=m;returnn;}main(){intn=0;printf("%d,",f(++n));printf("%d\n",f(n++));}程序運(yùn)行后的輸出結(jié)果是A、3,3B、1,1C、2,3D、1,2標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:該題目中首先區(qū)別++n和n++,第一次調(diào)用f函數(shù)時(shí),將++n(n自增1后再參與運(yùn)算)作為參數(shù)進(jìn)行傳遞,此時(shí)變量m的值為1,執(zhí)行n+=m;后,n=1,將1返回主函數(shù),并輸出。第二次調(diào)用f函數(shù)時(shí),將n++(n參與運(yùn)算后再自增1)作為參數(shù)進(jìn)行傳遞,此時(shí)變量m的值為1,執(zhí)行語(yǔ)句n+=m;,由于n是靜態(tài)存儲(chǔ)變量,因此n=2,將2返回主函數(shù)并輸出。因此D選項(xiàng)正確。24、算法的有窮性是指()。A、算法程序的運(yùn)行時(shí)間是有限的B、算法程序所處理的數(shù)據(jù)量是有限的C、算法程序的長(zhǎng)度是有限的D、算法只能被有限的用戶(hù)使用標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:暫無(wú)解析25、下列語(yǔ)句組中,不正確的是()。A、char*s;s="Olympic";B、chars[]="Olympic";C、char*s;s={"Olympic");D、chars[]={"Olympic"};標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:s是一個(gè)字符指針變量,s代表其地址,C將字符串賦給地址,因此選項(xiàng)C)錯(cuò)誤。26、設(shè)有定義:doublea[10],*s=a;以下能夠代表數(shù)組元素a[3]的是()。A、(*s)[3]B、*(s+3)C、*s[3]D、*s+3標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:語(yǔ)句*s=a;表示指針變量s指向一維數(shù)組a的首地址。a[3]表示引用數(shù)組a的第4個(gè)元素,*(s+i)表示引用指針s所指數(shù)組a的第i+1個(gè)元素,選項(xiàng)A、C、D的表示方法錯(cuò)誤,只有B選項(xiàng)正確。27、下列敘述中正確的是()。A、線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)與順序存儲(chǔ)結(jié)構(gòu)所需要的存儲(chǔ)空間是相同的B、線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)所需要的存儲(chǔ)空間一般要多于順序存儲(chǔ)結(jié)構(gòu)C、線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)所需要的存儲(chǔ)空間一般要少于順序存儲(chǔ)結(jié)構(gòu)D、線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)與順序存儲(chǔ)結(jié)構(gòu)在存儲(chǔ)空間的需求上沒(méi)有可比性標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:線性鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中每個(gè)節(jié)點(diǎn)都由數(shù)據(jù)域與指針域兩部分組成,增加了存儲(chǔ)空間,所以一般要多于順序存儲(chǔ)結(jié)構(gòu)。28、有以下程序:#include#includemain(){charW[20],a[5][10]={"abcdef","ghijkl","mnopq",’rstuv","wxyz."};inti;for(i=0;i<5;i++)w[i]=a[i][strlen(a[i])-1];w[5]=’\0’;puts(w);}程序的運(yùn)行結(jié)果是()。A、flqv.B、agmrwC、ekpuyD、flqvz標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:puts()函數(shù)將數(shù)組中存放的字符串輸出,用"\n"取代字符串結(jié)束符"\0"。strlen()函數(shù)求字符串的實(shí)際長(zhǎng)度(不包含結(jié)束標(biāo)志)。程序中for循環(huán)將第i個(gè)字符串最后一個(gè)字符放入w數(shù)組下標(biāo)值為i的位置。最后將數(shù)組最后一個(gè)字符賦值為“\0”,輸出字符串w為flqv.。29、程序中若有以下的說(shuō)明定義和語(yǔ)句:#include#includestruetSTR{charnHm[10];intS;};main(){struetSTRt,*p;P=&t:}}則不能給變量t的s成員賦整數(shù)99,給num成員賦空串的語(yǔ)句組是()。A、(*P).s=99;(*p).RumRm.“”;B、P一>s=99;P一>num[0]=0;C、(*p).s=99;P一>num[0]:‘\0’;D、P一>s=99;strcpy((*p).num,“”);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:結(jié)構(gòu)體變量使用“.”運(yùn)算符引用結(jié)構(gòu)體成員變量,結(jié)構(gòu)體指針使用“一>”運(yùn)算符引川結(jié)構(gòu)體成員變量,main函數(shù)中聲明結(jié)構(gòu)體STR變量t,和結(jié)構(gòu)體STR指針*p,并將t的地址賦給p,所以使用p訪問(wèn)成員變量時(shí),使用“一>”運(yùn)算符;使用*p訪問(wèn)成員變量時(shí),使用“.”運(yùn)算符。另外,由于成員變量num是字符數(shù)組,所以不能直接進(jìn)行賦值,若要對(duì)num賦空字符串值,可以把num中第一個(gè)元素賦值為0或‘\0’,或者使用strcpy復(fù)制函數(shù)將空字符串“”復(fù)制到num中,故選項(xiàng)B、c、D正確,選項(xiàng)A錯(cuò)誤,因此答案為A。30、下列敘述中正確的是()。A、循環(huán)隊(duì)列是隊(duì)列的一種鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)B、循環(huán)隊(duì)列是隊(duì)列的一種順序存儲(chǔ)結(jié)構(gòu)C、循環(huán)隊(duì)列是非線性結(jié)構(gòu)D、循環(huán)隊(duì)列是一種邏輯結(jié)構(gòu)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在實(shí)際應(yīng)用中,隊(duì)列的順序存儲(chǔ)結(jié)構(gòu)一般采用循環(huán)隊(duì)列的形式。31、有以下程序:#includemain(){ints;scanf(’’%d’’,&s);while(s>0){switch(s){case1:printf(’’%d’’,s+5)case2:printf(’’%d’’,s+4);break;case3:printf(’’%d’’,s+3);case4:printf(’’%d’’,s+2);default:printf(’’%d’’,s+1);break;}scanf(’’%d’’,&s)}}運(yùn)行時(shí),若輸入123450〈回車(chē)〉則輸出的結(jié)果是A、6.56655e+008B、6.56646e+006C、6.66665e+006D、6.66666e+006標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:case語(yǔ)句執(zhí)行后若沒(méi)有break,則會(huì)繼續(xù)執(zhí)行后面的case語(yǔ)句,直到碰到break或switch結(jié)束。當(dāng)輸入1時(shí)輸出65,輸入2時(shí)輸出6,輸入3時(shí)輸出654,當(dāng)輸入4時(shí)輸出65,當(dāng)輸入5時(shí)輸出6,當(dāng)輸入0時(shí)while語(yǔ)句結(jié)束。32、下列程序的輸出結(jié)果是()。#include<stdio.h>voidfun(int*a,int*b){int*k;k=a;a:b;b=k;)main(){inta=l,b=2,*x=&a,*y=&b;fun(x,y);printf(’’%d%d’’,a,b);}A、21B、12C、編譯出錯(cuò)D、0標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查函數(shù)調(diào)用時(shí)的參數(shù)傳遞。分析題目可知‰函數(shù)的形參是指向?qū)崊⒌闹羔?,但main()函數(shù)中調(diào)用fun()函數(shù)時(shí),實(shí)參是指針變量x、y(分別為指向a和b的指針),a、b的值在函數(shù)調(diào)用前后未發(fā)生變化,因而a=1,b=2,即輸出12。33、設(shè)x=021,y=012,則z=x|y的值是()。A、1B、0C、00011011D、1.1e+007標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題主要考查按位或運(yùn)算。按位或是對(duì)兩個(gè)運(yùn)算對(duì)象相應(yīng)的位進(jìn)行邏輯或運(yùn)算,其運(yùn)算規(guī)則和邏輯或相同,兩個(gè)運(yùn)算對(duì)象只要有一個(gè)是1,則結(jié)果為1。34、下面對(duì)對(duì)象概念描述正確的是A、對(duì)象間的通信靠消息傳遞B、對(duì)象是名字和方法的封裝體C、任何對(duì)象必須有繼承性D、對(duì)象的多態(tài)性是指一個(gè)對(duì)象有多個(gè)操作標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:對(duì)象之間進(jìn)行通信的構(gòu)造叫做消息,A正確。多態(tài)性是指同一個(gè)操作可以是不同對(duì)象的行為,D錯(cuò)誤。對(duì)象不一定必須有繼承性,C錯(cuò)誤。封裝性是指從外面看只能看到對(duì)象的外部特征,而不知道也無(wú)須知道數(shù)據(jù)的具體結(jié)構(gòu)以及實(shí)現(xiàn)操作,B錯(cuò)誤。35、已定義以下函數(shù):intfun(int*pt){retum*pt;}fun函數(shù)的返回值是()。A、不確定的值B、一個(gè)整數(shù)C、形參p中存放的值D、形參p的地址值標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:函數(shù)類(lèi)型定義為int所以返回值會(huì)強(qiáng)制轉(zhuǎn)換為一個(gè)整數(shù),*pt是提取指針pt中存放的數(shù)值的運(yùn)算。所以B正確。36、數(shù)據(jù)獨(dú)立性是數(shù)據(jù)庫(kù)技術(shù)的重要特點(diǎn)之一。所謂數(shù)據(jù)獨(dú)立性是指()。A、數(shù)據(jù)與程序獨(dú)立存放B、不同的數(shù)據(jù)被存放在不同的文件中C、不同的數(shù)據(jù)只能被對(duì)應(yīng)的應(yīng)用程序所使用D、以上三種說(shuō)法都不對(duì)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:數(shù)據(jù)獨(dú)立性是數(shù)據(jù)與程序間的互不依賴(lài)性,即數(shù)據(jù)庫(kù)中數(shù)據(jù)獨(dú)立于應(yīng)用程序而不依賴(lài)于應(yīng)用程序。所以選項(xiàng)A,選項(xiàng)B和選項(xiàng)C都不正確。37、以下對(duì)聯(lián)合類(lèi)型敘述正確的是()。A、可以對(duì)聯(lián)合變量名直接賦值B、使用聯(lián)合變量的目的是為了節(jié)省內(nèi)存C、任何一個(gè)聯(lián)合變量可以同時(shí)引用聯(lián)合中的不同成員D、聯(lián)合類(lèi)型定義中不能同時(shí)出現(xiàn)結(jié)構(gòu)類(lèi)型的成員標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:由于聯(lián)合體是同一存儲(chǔ)區(qū)域由不同類(lèi)型的變量共享,所以不可以直接對(duì)聯(lián)合體變量名進(jìn)行賦值,且聯(lián)合體中的空間在某一時(shí)刻只能保持某一成員的數(shù)據(jù);另外合體中可以出現(xiàn)結(jié)構(gòu)類(lèi)型的成員。38、有以下程序#include<stdio.h>main(){charb[4][10];inti;for(i=0;i<4;i++)scanf("%s",b[i]);for(i=3;i>=0;i--)printf("%s",b[i]);printf("\n");}執(zhí)行時(shí)若輸入:Peachflowerispink.<回車(chē)>,則輸出結(jié)果是A、Peachflowerispink.B、pink.isflowerPeachC、Peachflowerispink.D、Pinkisflowerpeach.標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:第一個(gè)for循環(huán)對(duì)字符串?dāng)?shù)組初始化,第二for循環(huán),從后向前打印字符串?dāng)?shù)組,因此,得到的答案是pink.isflowerPeach,故答案為B選項(xiàng)。39、有以下程序#include<stdio.h>voidfun(intn){staticintk=0;if(n<0){printf("-");n=-n;}k+=n%10;printf("%d,",k);if(n/10)fun(n/10);}main(){intx=-12;fun(x);printf("\n");}程序運(yùn)行后的輸出結(jié)果是A、-2,3B、-1,-2,C、-2,-3,D、-2,1標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:fun()函數(shù)使用了靜態(tài)變量,靜態(tài)變量只在聲明時(shí)初始化一次。首先實(shí)參的數(shù)值是-12,if判斷后輸出負(fù)號(hào),并將n=12,計(jì)算k+=n%10-->k+=2-->2,因此輸出2,,后將數(shù)值除以10,結(jié)果為1,遞歸調(diào)用fun()函數(shù),第二次調(diào)用fun(),此時(shí)n=1,k=2,計(jì)算k+=n%10-->k+=1-->3,因此打印3,。故最后打印結(jié)果為-2,3,。故答案為A選項(xiàng)。40、下面對(duì)軟件工程描述正確的是A、軟件工程是用工程、科學(xué)和數(shù)學(xué)的原則與方法研制、維護(hù)計(jì)算機(jī)軟件的有關(guān)技術(shù)及管理方法B、軟件工程的三要素是方法、工具和進(jìn)程C、軟件工程是用于軟件的定義、開(kāi)發(fā)和維護(hù)的方法D、軟件工程是為了解決軟件生產(chǎn)率問(wèn)題標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:軟件工程是應(yīng)用于計(jì)算機(jī)軟件的定義、開(kāi)發(fā)和維護(hù)的一整套方法、工具、文檔、實(shí)踐標(biāo)準(zhǔn)和工序。C選項(xiàng)敘述不全面。軟件工程包含3個(gè)要素:方法、工具和過(guò)程。B選項(xiàng)錯(cuò)誤。軟件工程的目標(biāo)是:在給定成本、進(jìn)度的前提下,開(kāi)發(fā)出具有有效性、可靠性、可理解性、可維護(hù)性、可重用性、可適應(yīng)性、可移植性、可追蹤性和可互操作性且滿足用戶(hù)需求的產(chǎn)品,追求這些目標(biāo)有助于提高軟件產(chǎn)品的質(zhì)量和開(kāi)發(fā)效率,減少維護(hù)的困難。D選項(xiàng)錯(cuò)誤。軟件工程是用工程、科學(xué)和數(shù)學(xué)的原則與方法研制、維護(hù)計(jì)算機(jī)軟件的有關(guān)技術(shù)及管理方法。故本題選A選項(xiàng)二、程序填空題(本題共1題,每題1.0分,共1分。)41、給定程序中,函數(shù)fun的功能是:將參數(shù)給定的字符串、整數(shù)、浮點(diǎn)數(shù)寫(xiě)到文本文件中,再用字符串方式從此文本文件中逐個(gè)讀入,并調(diào)用庫(kù)函數(shù)atoi和atof將字符申轉(zhuǎn)換成相應(yīng)的整數(shù)、浮點(diǎn)數(shù),然后將其顯示在屏幕上。請(qǐng)?jiān)诔绦虻南庐?huà)線處填入正確的內(nèi)容并把下畫(huà)線刪除,使程序得出正確的結(jié)果。注意:部分源程序給出如下。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#inClucle<stdio.h>#include<stdlib.h>voidfun(char*s,inta,doublef){/**********found***********/【1】fp;charstr[100],str1[100],str2[100];inta1;doublef1;fp=fopen(“filel.txt”,“W”);fprintf(fp,“%S%d%f\n”,S,a,f);/**********found***********/【2】;fp=fopen(“filel.txt”,“r”);/**********found***********/fscanf(【3】,“%s%s%S”,str,str1,Str2),fclose(fp);a1=atoi(str1),f1=atof(str2),printf(“\nTheresult:\n\n%S%d%f\n”,str,a1,f1);}main(){chara[10]=“Hello!”;intb=12345;cloublec=98.76;fun(a,b,c);}標(biāo)準(zhǔn)答案:(1)FILE*(2)fclose(fp)(3)fp知識(shí)點(diǎn)解析:填空1:從使用fp=fopen(“filel.txt”,“w”)可知fp應(yīng)該是文件類(lèi)型指針,因此本空應(yīng)該填寫(xiě)FILE*。填空2:當(dāng)對(duì)fp作打開(kāi)操作的時(shí)候,并進(jìn)行不同的操作前,應(yīng)該對(duì)其關(guān)閉,因?yàn)樵诘谝淮未蜷_(kāi)時(shí)是對(duì)fp進(jìn)行寫(xiě)操作,而在第二次打開(kāi)后進(jìn)行的是讀操作,因此應(yīng)該先對(duì)fp進(jìn)行關(guān)閉,本空填fclose(fp)。填空3:fscanf()是把文本文件輸出,因此本空只能填寫(xiě)fp。三、程序修改題(本題共1題,每題1.0分,共1分。)42、使用VC++2010打開(kāi)考生文件夾下modi1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件modi1.c。在此程序中,規(guī)定輸入的字符串全部為字母,fun函數(shù)的功能是:統(tǒng)計(jì)a所指字符串中每個(gè)字母在字符串中出現(xiàn)的次數(shù)(統(tǒng)計(jì)時(shí)不區(qū)分大小寫(xiě)),并將出現(xiàn)次數(shù)最高的字母輸出(如果有多個(gè)相同,輸出一個(gè)即可)。例如對(duì)于字符串:dadbedbabdb,對(duì)應(yīng)的輸出應(yīng)為:b或d。請(qǐng)改正函數(shù)fun中指定部位的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdio.h>#include<stdio.h>#include<string.h>voidfun(chara[]){intb[26],i,n,max;for(i=0;i<26;i++)/*********found*********/a[i]=0;n=strlen(a);for(i=0;i<n;i++)if(a[i]>=’a’&&a[i]<=’z’)/*********found*********/b[a[i]-’A’]++;elseif(a[i]>=’A’&&a[i]<=’Z’)b[a[i]-’A’]++;max=0;for(i=1;i<26;i++)/*********found*********/if(b[max]>b[i])max=i;printf("出現(xiàn)次數(shù)最多的字符是:%c\n’,max+’a’);}main(){chara[200];printf("請(qǐng)輸入一個(gè)待統(tǒng)計(jì)的字符串:");scanf("%s",a);fun(a);}標(biāo)準(zhǔn)答案:(1)b[i]=0;(2)b[a[i]-’a’]++;(3)if(b[max]<b[i])知識(shí)點(diǎn)解析:要統(tǒng)計(jì)字符串中每個(gè)字符在這個(gè)字符串中出現(xiàn)的次數(shù),可以設(shè)數(shù)組b中存放每個(gè)字符出現(xiàn)的次數(shù)b[0]存放字符a的次數(shù),b[1]存放字符b的次數(shù)……。統(tǒng)計(jì)之前為數(shù)組b各元素賦初值為0。然后依次取出字符串的每個(gè)字符進(jìn)行判斷,使對(duì)應(yīng)數(shù)組b加1。max初始值為0,與數(shù)組b中的每個(gè)元素進(jìn)行比較,如果小于,就把下標(biāo)進(jìn)行交換。(1)數(shù)組a存放的是字符串,數(shù)組b為整型數(shù)組存放的是每個(gè)字符的個(gè)數(shù),應(yīng)將數(shù)組b每個(gè)元素初始化為0。(2)小寫(xiě)字母的ASCII碼減去’a’的ASCII即為相應(yīng)字母的下標(biāo)值,相應(yīng)下標(biāo)值的數(shù)組元素的值增加1。(3)最大值小于被比較數(shù)時(shí),把被比較數(shù)的下標(biāo)值賦給max,max中存放的總是當(dāng)前最大值。四、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)43、使用VC++2010打開(kāi)考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,請(qǐng)編函數(shù)fun,其功能是將一個(gè)數(shù)字字符串轉(zhuǎn)換成與其面值相同的長(zhǎng)整型整數(shù)??烧{(diào)用strlen函數(shù)求字符串的長(zhǎng)度。例如:在鍵盤(pán)輸入字符串2345210,函數(shù)返回長(zhǎng)整型數(shù)2345210。注意:部分源程序存在PROG1.C中,請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun指定的部位填入所編寫(xiě)的若干語(yǔ)句。試題程序:#include<stdio.h>#include<string.h>voidNONO();longfun(char*s){}main(){chars[10];longr;printf("請(qǐng)輸入一個(gè)長(zhǎng)度不超過(guò)9個(gè)字符的數(shù)字字符串:");gets(s);r=fun(s);printf("r=%ld\n",r);NONO();}voidNONO(){/*本函數(shù)用于打開(kāi)文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/FILE*fp,*wf;inti;longr;chars[10],*p;fp=fopen("in.dat","r");wf=fopen("out.dat","w");for(i=0;i<10;i++){fgets(s,10,fp);P=strchr(s,’\n’);if(p)*p=0;r=fun(s);fprintf(wf,"%ld\n",r);}fclose(fp);fclose(wf);}標(biāo)準(zhǔn)答案:longfun(char*s){inti,len;longsum=0;len=strlen(s);for(i=0;i<len;i++){sum=sum*10+*s-’0’;s++;}returnsum;}知識(shí)點(diǎn)解析:要把一個(gè)數(shù)字字符轉(zhuǎn)為相應(yīng)的數(shù)字,只要用它的ASCII碼減去48即可。要把數(shù)字字符串轉(zhuǎn)為相應(yīng)的數(shù)字,則要從左到右依次取出字符轉(zhuǎn)為相應(yīng)數(shù)字,乘10再加上下一位數(shù)字。國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷第2套一、選擇題(本題共40題,每題1.0分,共40分。)1、有以下程序段:inta,b,c;a=10;b=50;c=30;if(a>b)a=b,b=c;c=a;printf("a=%db=%dc=%d",a,b,c);程序的輸出結(jié)果是()。A、a=10b=50c=10B、a=10b=50c=30C、a=10b=30c=10D、a=10b=30c=50標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:因?yàn)閍=10,b=50,所以a<b,if語(yǔ)句判斷條件不成立,于是執(zhí)行c=a,得到c=10,a和b的值不變。2、以下程序:#include<stdio.h>main(){charstr[10];scanf("%s",&str);printf("%s\n",str);}運(yùn)行上面的程序,輸入字符串howareyou,則程序的執(zhí)行結(jié)果是()。A、howB、howareyouC、hD、howareyou標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:當(dāng)從鍵盤(pán)輸入howareyou時(shí),由于scanf輸入函數(shù)的特點(diǎn)是遇到空格時(shí)結(jié)束讀入字符,因此,該程序只將how這3個(gè)字符送到了字符數(shù)組str中,并在其后自動(dòng)加上結(jié)束符“\0”。3、以下程序的輸出結(jié)果是()。#include<stdio.h>main(){inta=8,b=6,m=1;switch(a%4){case0;m++;break;case1:m++;switch(b%3){default:m++;case0:m++;break;}}printf("%d\n",m);)A、1B、2C、3D、4標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查switch語(yǔ)句。因?yàn)閍=8,a%4=0,所以執(zhí)行case0后面的語(yǔ)句,將m加1,遇到break語(yǔ)句跳出switch。4、有以下程序:#include<stdio.h>intf(intx);main(){intn=1,m;m=f(f(f(n)));printf("%d\n",m);}intf(intx){returnx*2;}程序運(yùn)行后的輸出結(jié)果是()。A、8B、2C、4D、1標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:第一次調(diào)用m=f(f(f(1))),第二次為m=f(f(2)),第三次為m=f(4),即返回值為8。5、若有定義:inta=1,b=2,c=3;,則執(zhí)行表達(dá)式(a=b+c)∥(++b)后,a,b,c的值依次為()。A、1,2,3B、5,3,2C、5,2,3D、5,3,3標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:||表示或運(yùn)算,當(dāng)?shù)谝粋€(gè)表達(dá)式為真時(shí),第二個(gè)表達(dá)式不執(zhí)行。根據(jù)運(yùn)算符的優(yōu)先級(jí)規(guī)則,先計(jì)算(a=b+c),將b+c的值賦值給a,則a=5,而||右邊的括號(hào)不會(huì)被執(zhí)行,所以b=2,c=3。6、在軟件開(kāi)發(fā)中,需求分析階段可以使用的工具是()。A、N—S圖B、DFD圖C、PAD圖D、程序流程圖標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在需求分析階段可以使用的工具有數(shù)據(jù)流圖(DFD圖),數(shù)據(jù)字典(D),判定樹(shù)與判定表,所以選擇B。7、下列各項(xiàng)中不合法的常量是()。A、2.E8B、-28C、-028D、2e-8標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:0開(kāi)頭表示的是八進(jìn)制整型常量,但八進(jìn)制只能用0~7的數(shù)字表示。8、下列關(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、以上三種說(shuō)法都不對(duì)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:一般來(lái)說(shuō),在線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中,各數(shù)據(jù)結(jié)點(diǎn)的存儲(chǔ)序號(hào)是不連續(xù)的,并且各節(jié)點(diǎn)在存儲(chǔ)空間中的位置關(guān)系與邏輯關(guān)系也不一致。線性鏈表中數(shù)據(jù)的插入和刪除都不需要移動(dòng)表中的元素,只需改變節(jié)點(diǎn)的指針域即可。故C選項(xiàng)正確。9、以下不能正確表示代數(shù)式的C語(yǔ)言表達(dá)是()。A、2*a*b/c/dB、a*b/c/d*2C、a/c/d*b*2D、2*a*b/c*d標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:*與/優(yōu)先級(jí)相同,所以采用左結(jié)合的方式。D項(xiàng)若改為:2*a*b/(c*d),則正確。10、有以下程序段:#include<stdio.h>intj;floaty;charname[50];scanf("%2d%f%s",&j,&y,name);當(dāng)執(zhí)行上述程序段,從鍵盤(pán)上輸入555667777abc后,y的值為()。A、566.0B、55566C、7777D、566777標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:它是格式輸入函數(shù),即按用戶(hù)指定的格式從鍵盤(pán)上把數(shù)據(jù)輸入到指定的變量之中。其中的格式命令可以說(shuō)明最大域?qū)挕T诎俜痔?hào)(%)與格式碼之間的整數(shù)用于限制從對(duì)應(yīng)域讀入的最大字符數(shù)。所以j的值為55,y的值為566.0,字符數(shù)組name為7777abc。11、若x=4,y=5,則x&y的結(jié)果是()。A、0B、4C、3D、5標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題主要考查按位與運(yùn)算的知識(shí)點(diǎn)。按位與是對(duì)兩個(gè)運(yùn)算量相應(yīng)的位進(jìn)行邏輯與,“&”的規(guī)則和邏輯與“&&”相同。x=4的二進(jìn)制為00000100,v=5的二進(jìn)制為00000101,x&y=00000100,轉(zhuǎn)化為十進(jìn)制即為4。12、以下選項(xiàng)中能表示合法常量的是()。A、1,200B、1.5E2.0C、’\’D、\007標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:A選項(xiàng)中整型常量應(yīng)表示為1200,不能包含“,”。B選項(xiàng)中E后面的指數(shù)必須為整數(shù)。C選項(xiàng)中轉(zhuǎn)義字符以“\”開(kāi)始,若要表示字符“\”,應(yīng)寫(xiě)為“\\”。13、數(shù)據(jù)結(jié)構(gòu)中,與所使用的計(jì)算機(jī)無(wú)關(guān)的是數(shù)據(jù)的()。A、存儲(chǔ)結(jié)構(gòu)B、物理結(jié)構(gòu)C、邏輯結(jié)構(gòu)D、線性結(jié)構(gòu)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)反映的是數(shù)據(jù)元素之間的邏輯關(guān)系,與使用的計(jì)算機(jī)無(wú)關(guān)。14、有以下程序#include<stdi0.h>voidmain(){doublex=3.14159:printf("%f\n",(int)(x*1000+0.5)/(df}uble)1000);程序運(yùn)行后的輸出結(jié)果是()。A、3.142000B、3.141000C、3.143000D、3.140000標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:根據(jù)算術(shù)表達(dá)式和運(yùn)算符的優(yōu)先級(jí)與結(jié)合性,對(duì)于題意表達(dá)式:int(x*1000+0.5)/(double)1000,首先計(jì)算x*1000,由于x是double類(lèi)型,1000是整型,所以x*1000的結(jié)果默認(rèn)是double類(lèi)型:3141.59;再加0.5后執(zhí)行int的強(qiáng)制轉(zhuǎn)換,結(jié)果為3142;分母(double)1000強(qiáng)制轉(zhuǎn)換為double類(lèi)型,此時(shí)3142/(double)1000中,3142需要轉(zhuǎn)換成double類(lèi)型,然后除以1000,結(jié)果為3.142000,保留小數(shù)點(diǎn)后6位,本題答案為A。15、若有以下程序:#includemain(){intc;c=13|5;printf("%d\n",c);}則程序的輸出結(jié)果是()。A、13B、15C、18D、5標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查位運(yùn)算中的按位或運(yùn)算符?;蜻\(yùn)算只要兩個(gè)比較的位中有一個(gè)為1,其結(jié)果是1,否則結(jié)果為D,13用二進(jìn)制表示為00001101,5用二進(jìn)制表示為00000101,或運(yùn)算后結(jié)果為00001101,即13,選項(xiàng)A正確。16、以下選項(xiàng)中,當(dāng)x為大于1的奇數(shù)時(shí),值為0的表達(dá)式是()。A、x%2==0B、x/2C、x%2!=0D、x%2==1標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:算術(shù)運(yùn)算符的優(yōu)先級(jí)高于關(guān)系運(yùn)算符的優(yōu)先級(jí),所以當(dāng)x為大于l的奇數(shù)時(shí),A選項(xiàng)的值為假,即0。B選項(xiàng)的值為不定值,但絕對(duì)不是0。C選項(xiàng)的值為真,即1。D選項(xiàng)的值為真,即1。17、下列定義變量的語(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ǔ)言中大寫(xiě)字母和小寫(xiě)字母被認(rèn)為是兩個(gè)不同的字符。選項(xiàng)A定義的變量標(biāo)識(shí)符_int和選項(xiàng)B定義的變量標(biāo)識(shí)符_int與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ī)定。18、以下敘述正確的是()。A、只能在循環(huán)體內(nèi)和switch語(yǔ)句體內(nèi)使用break語(yǔ)句B、contiune語(yǔ)句的作用是結(jié)束整個(gè)循環(huán)的執(zhí)行C、在循環(huán)體內(nèi)使用break語(yǔ)句或continue語(yǔ)句的作用相同D、從多層循環(huán)嵌套中退出時(shí),只能使用goto語(yǔ)句標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查循環(huán)的4個(gè)知識(shí)點(diǎn):①break語(yǔ)句可以出現(xiàn)在循環(huán)體內(nèi)及switch語(yǔ)句體內(nèi),不能用于其他的語(yǔ)句;②continue語(yǔ)句的作用是結(jié)束本次循環(huán),即跳過(guò)循環(huán)體中下面尚未執(zhí)行的語(yǔ)句,而接著轉(zhuǎn)去判定循環(huán)條件是否成立,從而確定下一次循環(huán)是否繼續(xù)執(zhí)行,也就是說(shuō)執(zhí)行contiune語(yǔ)句不會(huì)使整個(gè)循環(huán)終止;③在循環(huán)體內(nèi)使用break語(yǔ)句會(huì)使循環(huán)提前終止;④從多層循環(huán)嵌套中退出時(shí),可以使用goto語(yǔ)句或者break語(yǔ)句。19、有以下程序:#include<stdio.h>voidfun(char*c){while(*c){if(*c>=’a’&&*c<=’z’)*c=*c-(’a’-’A’);c++:}}main(){chars[81];gets(s);fun(s);puts(s);}當(dāng)執(zhí)行程序時(shí)從鍵盤(pán)上輸入HelloBeijing<回車(chē)>,則程序運(yùn)行后的輸出結(jié)果是()。A、hellobeijingB、HelloBeijingC、HELLOBEIJINGD、hELLOBeijing標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:主程序讀取整個(gè)字符串存于s中,調(diào)用fun函數(shù),字符指針c指向數(shù)紺s。函數(shù)fun的功能是把指針c所指向的字符數(shù)組中的所有小寫(xiě)字符轉(zhuǎn)換為大寫(xiě)gets函數(shù)可以把空格作為字符串的一部分輸入,以回車(chē)作為輸入結(jié)束如果*c為小寫(xiě)字符,則*c=*c-32(轉(zhuǎn)大寫(xiě)),因此C選項(xiàng)正確。20、有以下程序:#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、2,1,1,2B、1,2,l,2C、2,1,2,lD、1,2,2,1標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:語(yǔ)句intm=1,n=2,*p=&m,*q=&n,*r;表示指針變量p指向m,指針變量q指向n;語(yǔ)句r=p;p=q;q=r;表示通過(guò)指針變量r,將指針p和指針q指向交換。因此最后輸出1,2,2,1。21、有以下程序:#includevoidfun(inta,intb,intc){a=b;b=c;c=a;}main(){inta=10,b:20,c=30;fun(a,b,c);printf("%d,%d,%d\n",c,b,a);}程序運(yùn)行后的輸出結(jié)果是()。A、10,20,30B、30,20,10C、20,30,10D、0,0,0標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題主要考查函數(shù)形參的值傳遞。函數(shù)調(diào)用中發(fā)生的數(shù)據(jù)傳送是單向的,即只能把實(shí)參的值傳送給形參,而不能把形參的值反向地傳送給實(shí)參。因此在函數(shù)調(diào)用過(guò)程中,形參的值發(fā)生改變,而實(shí)參中的值不會(huì)變化。因此B選項(xiàng)正確。22、以下結(jié)構(gòu)體類(lèi)型說(shuō)明和變量定義中正確的是()。A、structREC;{intn;charC;};RECt1,t2;B、typedefstruct{int11;charc;}REC;RECt1,t2;C、typedefstructREC;{intn=0;charc=‘A’;}t1,t2;D、struct{intn;charC;}REC;RECt1,t2;標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查結(jié)構(gòu)體的相關(guān)知識(shí),選項(xiàng)A中structREC后面不能有分號(hào),C選項(xiàng)中typedefstructREC的后面也不能有分號(hào),選項(xiàng)D中REC已經(jīng)是結(jié)構(gòu)體變量,不能當(dāng)做結(jié)構(gòu)體類(lèi)型來(lái)使用。23、對(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正確。24、有以下程序:#includevoidfun(char*c){while(*c){if(*c>=’a’&&*c<=’z’)C++:}}main(){chars[81];gets(s);fun(s);puts(s);}當(dāng)執(zhí)行程序時(shí)從鍵盤(pán)上輸入HelloBeijing<回車(chē)>,則程序運(yùn)行后的輸出結(jié)果是()。A、hellobe,ijingB、HelloBeijingC、HELLOBEIJINGD、hELLOBeijing標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:主程序讀取整個(gè)字符串存于s中,調(diào)用fun函數(shù),字符指針c指向數(shù)組s。函數(shù)fun的功能是把指針c所指向的字符數(shù)組中的所有小寫(xiě)字符轉(zhuǎn)換為大寫(xiě)。gets函數(shù)可以把空格作為字符串的一部分輸入,以回車(chē)作為輸人結(jié)束。如果*c為小寫(xiě)字符,則*c=*c一32(轉(zhuǎn)大寫(xiě))。因此C選項(xiàng)正確。25、有以下程序:#include<stdio.h>main(){charw[20],a[5][10]={"abcde","fghij","klmno","pqrst","uvwxy"};inti;for(i=0;i<5;i++)W[i]=a[i][i];w[5]=’\’;printf("%s\n",w);}程序運(yùn)行后的輸出結(jié)果是()。A、ejotyB、afkpuC、agrasyD、eimqu標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:數(shù)組a是二維數(shù)組,數(shù)組w存放二維數(shù)組a行列值相同位置的元素,由a[5][10]可得w[0]~w[4]的元素分別是agmsy,因此打印結(jié)果為agmsy。故答案為C選項(xiàng)。26、若有以下程序#include<stdio.h>main(){intb=10,a=-11;a%=b%=4;printf("%d%d\n",a,b);}則程序的輸出結(jié)果是A、12B、-12C、-3D、2015/1/2標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:先計(jì)算b%=4,即b=b%4,結(jié)果為2,然后計(jì)算a%=2,結(jié)果為-1,最后a的值為-1,b的值為2,所以選擇B選項(xiàng)。27、有以下程序#includetypedefstruct{intb,p;}A;voidf(Ac)/*注意:c是結(jié)構(gòu)變量名*/{intj;c.b+=1;c.p+=2;}main(){inti;Aa={1,2};f(a);printf("%d,%d\n",a.b,a.p);}程序運(yùn)行后的輸出結(jié)果是()。A、1,2B、2,4C、1,4D、2,3標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:暫無(wú)解析28、有以下程序:#includemain(){ints;scanf(’’%d’’,&s);while(s>0){switch(s){case1:printf(’’%d’’,s+5)case2:printf(’’%d’’,s+4);break;case3:printf(’’%d’’,s+3);case4:printf(’’%d’’,s+2);default:printf(’’%d’’,s+1);break;}scanf(’’%d’’,&s)}}運(yùn)行時(shí),若輸入123450〈回車(chē)〉則輸出的結(jié)果是A、6.56655e+008B、6.56646e+006C、6.66665e+006D、6.66666e+006標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:case語(yǔ)句執(zhí)行后若沒(méi)有break,則會(huì)繼續(xù)執(zhí)行后面的case語(yǔ)句,直到碰到break或switch結(jié)束。當(dāng)輸入1時(shí)輸出65,輸入2時(shí)輸出6,輸入3時(shí)輸出654,當(dāng)輸入4時(shí)輸出65,當(dāng)輸入5時(shí)輸出6,當(dāng)輸入0時(shí)while語(yǔ)句結(jié)束。29、下列關(guān)于文件概念的敘述中正確的是()。A、文件由ASCⅡ碼組成,只能構(gòu)成二進(jìn)制文件B、文件由結(jié)構(gòu)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件C、文件由字符序列組成,其類(lèi)型只能是文本文件D、文件由數(shù)據(jù)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:文件由數(shù)據(jù)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件。30、語(yǔ)句’’printf(’’a\bhow\’are\’y\\\bou\n’’);’’的輸出結(jié)果是()。A、a\bhow\’are\’V\\boUB、a\bhow\’are\’y\bouC、how’are’youD、ahow’are’y\bou標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:”\b”格式符表示退格,功能是將它后而的字*把它前面的字*覆蓋,導(dǎo)致”\b”格式符前面的字*不能輸出;”\’“格式符表示輸出單引號(hào)字符;”∥”格式符表示輸出反斜線字符。31、有以下程序段int*p;p=__________malloc(sizeof(int));若要求使p指向一個(gè)int型的動(dòng)態(tài)存儲(chǔ)單元,在橫線處應(yīng)填入的是A、(int*)B、intC、int*D、(*int)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查malloc函數(shù),題目中要求p指向一個(gè)int型的動(dòng)態(tài)存儲(chǔ)單元,那么就應(yīng)該將分配的存儲(chǔ)單元轉(zhuǎn)化為int,所以選項(xiàng)A正確。32、下列工具中,不屬于結(jié)構(gòu)化分析的常用工具的是()。A、數(shù)據(jù)流圖B、數(shù)據(jù)字典C、判定樹(shù)D、N—S圖標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:結(jié)構(gòu)化分析的常用工具有數(shù)據(jù)流圖、數(shù)據(jù)字典、判定樹(shù)和判定表。33、關(guān)于switch語(yǔ)句的敘述正確的是()。A、在switch語(yǔ)句中,不一定使用break語(yǔ)句B、在switch語(yǔ)句中必須使用defaultC、break語(yǔ)句只能用于switch語(yǔ)句D、switch語(yǔ)句中,必須使用break語(yǔ)句標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:break用于跳出switch分支語(yǔ)句,若不使用break語(yǔ)句將繼續(xù)執(zhí)行此分支語(yǔ)句后面的分支語(yǔ)句,因此,不使用break語(yǔ)句不會(huì)出現(xiàn)語(yǔ)法錯(cuò)誤,也不一定必須使用break語(yǔ)句,break語(yǔ)句除了在switch語(yǔ)句中使用外,也可以用于跳出循環(huán)語(yǔ)句,所以A正確,C、D不正確。default語(yǔ)句也不是必需的。34、C語(yǔ)言中的標(biāo)識(shí)符分為關(guān)鍵字、預(yù)定義標(biāo)識(shí)符和用戶(hù)標(biāo)識(shí)符,以下敘述正確的是A、關(guān)鍵字可用作用戶(hù)標(biāo)識(shí)符,但失去原有含義B、預(yù)定義標(biāo)識(shí)符可用作用戶(hù)標(biāo)識(shí)符,但失去原有含義C、在標(biāo)識(shí)符中大寫(xiě)字母和小寫(xiě)字母被認(rèn)為是相同的字符D、用戶(hù)標(biāo)識(shí)符可以由字母和數(shù)字任意順序組成標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:關(guān)鍵字不可用作C語(yǔ)言的標(biāo)識(shí)符,所以A錯(cuò)誤,在標(biāo)識(shí)符中大寫(xiě)字母與小寫(xiě)字母作為不同字符處理,所以C錯(cuò)誤,標(biāo)識(shí)符由下劃線,字母,數(shù)字組成,且必須以下劃線和字母開(kāi)始,所以D錯(cuò)誤。35、若有定義和語(yǔ)句:inta,b;scanf("%d,%d,",&a,&b);以下選項(xiàng)中的輸入數(shù)據(jù),不能把值3賦給變量a、5賦給變量b的是A、3,5,4B、3,5C、3,5,D、3,5標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:scanf()的格式控制串可以使用其他非空白字符,如本題中的逗號(hào),但在輸入時(shí)必須輸入這些字符,以保證匹配,所以在3和5之間必須輸入逗號(hào),不能有其他符號(hào),才能保證a和b的正確賦值,所以選擇D。36、數(shù)據(jù)獨(dú)立性是數(shù)據(jù)庫(kù)技術(shù)的重要特點(diǎn)之一。所謂數(shù)據(jù)獨(dú)立性是指()。A、數(shù)據(jù)與程序獨(dú)立存放B、不同的數(shù)據(jù)被存放在不同的文件中C、不同的數(shù)據(jù)只能被對(duì)應(yīng)的應(yīng)用程序所使用D、以上三種說(shuō)法都不對(duì)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:數(shù)據(jù)獨(dú)立性是數(shù)據(jù)與程序間的互不依賴(lài)性,即數(shù)據(jù)庫(kù)中數(shù)據(jù)獨(dú)立于應(yīng)用程序而不依賴(lài)于應(yīng)用程序。所以選項(xiàng)A),選項(xiàng)B)和選項(xiàng)C)都不正確。37、以下程序的運(yùn)行結(jié)果是()。#include<stdio.h>main(){inta=3,b=4,c=8,d=4,m=1,n=3;printf("%d\n",(m=a>b)&&(n=c>d));}A、0B、1C、2D、3標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:邏輯與(&&)運(yùn)算符的功能是:當(dāng)“&&”運(yùn)算符兩邊的運(yùn)算對(duì)象均為1時(shí),整個(gè)表達(dá)式的值為1,否則為0。因?yàn)閍=3<b=4,即m=0,所以整個(gè)表達(dá)式的值為0。38、下面對(duì)軟件測(cè)試和軟件調(diào)試有關(guān)概念敘述錯(cuò)誤的是A、嚴(yán)格執(zhí)行測(cè)試計(jì)劃,排除測(cè)試的隨意性B、程序調(diào)試通常也稱(chēng)為DebugC、軟件測(cè)試的目的是發(fā)現(xiàn)錯(cuò)誤和改正錯(cuò)誤D、設(shè)計(jì)正確的測(cè)試用例標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:軟件測(cè)試就是在軟件投入運(yùn)行之前,盡可能多地發(fā)現(xiàn)軟件中的錯(cuò)誤,但改正錯(cuò)誤又調(diào)試完成,C選項(xiàng)敘述錯(cuò)誤。軟件測(cè)試應(yīng)在測(cè)試之前制定測(cè)試計(jì)劃,并嚴(yán)格執(zhí)行,排除測(cè)試隨意性,并且需要設(shè)計(jì)正確的測(cè)試用例,AD選項(xiàng)敘述正確。調(diào)試(也稱(chēng)為Debug,排錯(cuò))是作為成功測(cè)試的后果出現(xiàn)的步驟而調(diào)試是在測(cè)試發(fā)現(xiàn)錯(cuò)誤之后排除錯(cuò)誤的過(guò)程,B選項(xiàng)敘述正確。故選擇C選項(xiàng)。39、關(guān)于地址和指針,以下說(shuō)法正確的是A、通過(guò)強(qiáng)制類(lèi)型轉(zhuǎn)換可以將一種類(lèi)型的指針變量賦值給另一種類(lèi)型的指針變量B、可以取一個(gè)常數(shù)的地址賦值給同類(lèi)型的指針變量C、可以取一個(gè)表達(dá)式的地址賦值給同類(lèi)型的指針變量D、可以取一個(gè)指針變量的地址賦值給基類(lèi)型相同的指針變量標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:常數(shù)的地址存儲(chǔ)在內(nèi)存的常量區(qū),常量區(qū)存儲(chǔ)的都是常量,值都是不可修改的,所以直接取常量的地址賦給指針變量沒(méi)有任何意義,C語(yǔ)言也不允許這樣做,編譯會(huì)出錯(cuò),B選項(xiàng)錯(cuò)誤;表達(dá)式的值存儲(chǔ)在臨時(shí)變量中,內(nèi)存中存在專(zhuān)門(mén)用來(lái)存儲(chǔ)臨時(shí)變量的區(qū)域,對(duì)這塊地址進(jìn)行操作也是沒(méi)有意義的,C語(yǔ)言不允許這樣做,編譯會(huì)出錯(cuò),C選項(xiàng)錯(cuò)誤;可以取一個(gè)指針變量的地址,但是指針變量的地址屬于指針,只能賦值給指針類(lèi)型的指針變量,D選項(xiàng)錯(cuò)誤。故答案為A選項(xiàng)。40、以下說(shuō)法正確的是()。A、宏定義是C語(yǔ)句,要在行末加分號(hào)B、可以使用≠≠u(mài)ndefine提前結(jié)束宏名的使用C、在進(jìn)行宏定義時(shí),宏定義不能嵌套D、雙引號(hào)中出現(xiàn)的宏名也要進(jìn)行替換標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查宏的使用規(guī)則:①字符替換格式:#define標(biāo)識(shí)符字符串,行末不加分號(hào);②雙引號(hào)中出現(xiàn)的宏名不替換;③如果提前結(jié)束宏名的使用,程序中可以使用#undefine;④在進(jìn)行宏定義時(shí),宏定義能層層置換,能夠嵌套。二、程序填空題(本題共1題,每題1.0分,共1分。)41、使用VC++2010打開(kāi)考生文件夾下blank1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件blank1.c。在此程序中,函數(shù)fun的功能是:將一副撲克牌編號(hào)為1,2,3,…,53,54,以某種特定的方式洗牌,這種方式是將這副牌分成兩半,然后將它們交叉,并始終保持編號(hào)為1的牌在最上方,如第一次這樣洗牌后的結(jié)果為:1,28,2,29,…,53,27,54。兩次洗牌后的結(jié)果為:1,41,28,15,2,42…,53,40,27,14,54。程序的功能是:輸出經(jīng)過(guò)n次這樣洗牌后的結(jié)果。請(qǐng)?jiān)诔绦虻南庐?huà)線處填入正確的內(nèi)容,并把下畫(huà)線刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下的BLANK1.c中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#inclucte<stdio.h>voidfun(inta[55],intn){inti,k;/*********found*********/int【1】[55];for(i=0;i<n;i++){for(k=1;k<=27;k++){b[2*k-1]=a[k];/*********found*********/b[【2】*k]=a[k+27];}for(k=1;k<=54;k++)/*********found*********/a[k]=【3】;}}main(){intm,a[55],i;for(i=1;i<55;i++)a[i]=i;printf("請(qǐng)輸入洗牌次數(shù):");scarlf("%d",&m);fun(a,m);for(i=1;i<55;i++)printf("%d,",a[i]);printf("\n");}標(biāo)準(zhǔn)答案:(1)b(2)2(3)b[k]知識(shí)點(diǎn)解析:填空1:for循環(huán)中使用了一個(gè)數(shù)組b,用來(lái)臨時(shí)存放交換位置后的撲克牌,C語(yǔ)言中變量需要先聲明后使用,所以填空(1)處需要聲明一個(gè)數(shù)組b。答案為b。填空2:第二個(gè)for循環(huán)是將數(shù)組a中前一半元素(即1-27編號(hào)的撲克牌)放入數(shù)組b的奇數(shù)位置,將數(shù)組a中的后一半元素(即28~54編號(hào)的撲克牌)放入數(shù)組b的偶數(shù)位置,實(shí)現(xiàn)撲克牌的交叉洗牌。所以填空(2)處是數(shù)組b的起始值為2的偶數(shù)下標(biāo)2k,答案為2。填空3:由于數(shù)組b屬于函數(shù)中的臨時(shí)變量,所以將數(shù)組a的元素交叉存儲(chǔ)到數(shù)組b后,還需要將數(shù)組b的元素依次賦值給數(shù)組a,第三個(gè)for循環(huán)實(shí)現(xiàn)的功能是將數(shù)組b賦值給數(shù)組a,所以填空(3)處需要填入對(duì)應(yīng)下標(biāo)為k的數(shù)組b的元素,答案為b[k]。三、程序修改題(本題共1題,每題1.0分,共1分。)42、使用VC++2010打開(kāi)考生文件夾下modi1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件modi1.c。在此程序中,函數(shù)fun的功能是:判斷輸入的任何一個(gè)正整數(shù)n,是否等于某個(gè)連續(xù)正整數(shù)序列之和。若是,則輸出所有可能的序列,否則輸出“不能分解”。例如:當(dāng)輸入100時(shí),輸出:100=9+10+11+12+13+14+15+16100=18+19+20+21+22請(qǐng)改正函數(shù)fun中指定部位的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdio.h>voidfun(intn){intj,b,c,m,flag=0;for(b=1;b<=n/2;b++){/*********found*********/n=m;c=b;while(m!=0&&m>=c){/*********found*********/m=m-c;c++}/*********found*********/if(m!=0){printf("%d=",n);for(j=b;j<c-1;j++)printf("%d+",j);printf("%d\n",j);flag=1;}}if(flag=0)printf("不能分解\n");}main(){intn;printf("請(qǐng)輸入一個(gè)整數(shù):");scarlf("%d",&n);fun(n);}標(biāo)準(zhǔn)答案:(1)m=n;(2)m=m-c;c++;(3)if(m==0)知識(shí)點(diǎn)解析:(1)每次循環(huán),程序需要對(duì)n執(zhí)行減去連續(xù)的正整數(shù)序列來(lái)判斷n是否剛好為0,即n是否是連續(xù)的正整數(shù)序列之和,所以需要使用臨時(shí)變量m寄存n的值,每次循環(huán)對(duì)m執(zhí)行減運(yùn)算操作,不滿足繼續(xù)下一輪。另外,程序聲明變量m時(shí),未初始化它的值,所以此處應(yīng)該修改為:m=n。(2)語(yǔ)法錯(cuò)誤。C語(yǔ)言中每個(gè)語(yǔ)句必須以分號(hào)結(jié)束,所以應(yīng)修改為:m=m-c;c++;。(3)題目判斷n是否是連續(xù)的正整數(shù)序列之和,若是,則輸出所有序列,程序中m依次減去連續(xù)的正整數(shù),當(dāng)m為0時(shí),表示m(即n)滿足條件,再輸出當(dāng)前序列中的每個(gè)正整數(shù),所以此處判斷條件反了,應(yīng)修改為:if(m==0)。四、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)43、請(qǐng)編寫(xiě)函數(shù)fun,函數(shù)的功能是:將放在字符串?dāng)?shù)組中的M個(gè)字符串(每串的長(zhǎng)度不超過(guò)N),按順序合并組成一個(gè)新的字符串。例如,字符串?dāng)?shù)組中的M個(gè)字符串為AAAABBBBBBBCC則合并后的字符串的內(nèi)容應(yīng)是:AAAABBBBBBBCC。提示:strcat(a,b)的功能是將字符串b復(fù)制到字符串a(chǎn)的串尾上,成為一個(gè)新串。注意:部分源程序在文件PROGl.C中。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。#include#include#defineM3#defitieN20VOidfun(chara[M][N],char*b){}main(){charw[M][N]={“AAAA”,“BBBBBBB”,“CC”),a[100];inti;voidNONO();printf(“TheString:\n”);for(i=0;i標(biāo)準(zhǔn)答案:inti,j,k=0;for(i=0;i知識(shí)點(diǎn)解析:(1)二維字符數(shù)組第i行j列元素a[i][j],就是指針形式的*(*(a+i)+j)。因此,如果字符水(*(*(a+i)+j)是串的結(jié)束符,則說(shuō)明該字符串已經(jīng)結(jié)束。(2)當(dāng)一維字符數(shù)組存放完字符串中各字符后,必須在一維字符數(shù)組的尾字符處加一個(gè)結(jié)束符‘\0’,才能把字符數(shù)組變成字符串。否則,字符數(shù)組就只能是非字符串的一般字符數(shù)組。國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷第3套一、選擇題(本題共40題,每題1.0分,共40分。)1、算法的有窮性是指()。A、算法程序的運(yùn)行時(shí)間是有限的B、算法程序所處理的數(shù)據(jù)量是有限的C、算法程序的長(zhǎng)度是有限的D、算法只能被有限的用戶(hù)使用標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:算法原則上能夠精確地運(yùn)行,而且人們用筆和紙做有限次運(yùn)算后即可完成。有窮性是指算法程序的運(yùn)行時(shí)間是有限的。2、程序流程圖中帶有箭頭的線段表示的是()。A、圖元關(guān)系B、數(shù)據(jù)流C、控制流D、調(diào)用關(guān)系標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在數(shù)據(jù)流圖中,用標(biāo)有名字的箭頭表示數(shù)據(jù)流。在程序流程圖中,用標(biāo)有名字的箭頭表示控制流。所以選擇C.3、設(shè)R是一個(gè)2元關(guān)系,有3個(gè)元組,S是一個(gè)3元關(guān)系,有3個(gè)元組。如T=R×S,則T的元組的個(gè)數(shù)為()。A、6B、8C、9D、12標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:R為n元關(guān)系,有p個(gè)元組S為m元關(guān)系,有q個(gè)元組。兩個(gè)關(guān)系笛卡兒積是一個(gè)n+m元的關(guān)系,元組個(gè)數(shù)是q×p。所以T的元組的個(gè)數(shù)為9個(gè)。4、下列不合法的用戶(hù)標(biāo)識(shí)符是()。A、j2_KEYB、DoubleC、4dD、_8_標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在C語(yǔ)言程序中,合法標(biāo)識(shí)符的命名規(guī)則是:標(biāo)識(shí)符可以由字母、數(shù)字和下劃線組成,并且第一個(gè)字符必須是字母或下劃線。5、以下關(guān)于C語(yǔ)言的敘述中正確的是()。A、預(yù)處理命令通常位于函數(shù)體外面,但也可以位于函數(shù)體中間B、C語(yǔ)言中的變量定義須在其他語(yǔ)句之前C、在C語(yǔ)言程序的書(shū)寫(xiě)中,一個(gè)語(yǔ)句必須單占一行D、一個(gè)C語(yǔ)言源程序可以由一個(gè)或多個(gè)源文件組成,每個(gè)源文件可由自己的main函數(shù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:源程序中可以有預(yù)處理命令(include命令僅為其中的一種)。C語(yǔ)言中的變量可以在使用之前的任何位置進(jìn)行定義。C語(yǔ)言程序的書(shū)寫(xiě)中,多個(gè)語(yǔ)句可以位于一行,但為了增強(qiáng)可讀性,一般每行只有一條語(yǔ)句。一個(gè)C語(yǔ)言源程序可以由一個(gè)或多個(gè)源文件組成,但僅可以有一個(gè)main函數(shù)。6、關(guān)于“while(條件表達(dá)式)循環(huán)體”,以下敘述中正確的是()。A、循環(huán)體的執(zhí)行次數(shù)總是比條件表達(dá)式的執(zhí)行次數(shù)多一次B、條件表達(dá)式的執(zhí)行次數(shù)總是比循環(huán)體的執(zhí)行次數(shù)多一次C、條件表達(dá)式的執(zhí)行次數(shù)與循環(huán)體的執(zhí)行次數(shù)一樣D、條件表達(dá)式的執(zhí)行次數(shù)與循環(huán)體的執(zhí)行次數(shù)無(wú)關(guān)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:考查while循環(huán)的執(zhí)行過(guò)程。先計(jì)算括號(hào)內(nèi)表達(dá)式的值,若不為0則執(zhí)行循環(huán)體語(yǔ)句,若為0則跳出wlaile循環(huán),所以條件表達(dá)式的執(zhí)行次數(shù)總是比循環(huán)體的執(zhí)行次數(shù)多一次.答案選B。7、語(yǔ)句“printf("a\bhow\’are\’y\\\bou\n");"的輸出結(jié)果是()。A、a\bhow\’are\’y\\bouB、a\bhow\’are\’y\bouC、how’are’youD、ahow’are’y\bou標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:“\b”格式符表示退格,功能是將它后面的字母把它前面的字母覆蓋,導(dǎo)致“\b”格式符前面的字母不能輸出;“\’”格式符表示輸出單引號(hào)字符;“\\”格式符表示輸出反斜線字符。8、以下程序的輸出結(jié)果是()。#includemain(){inta=8,b=6,m=1;switch(a%4){case0:m++;break;case1:m++;switch(b%3){default:m++;case0:m++:break;}}printf(”%d\n”,m);}A、1B、2C、3D、4標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查switch語(yǔ)句。因?yàn)閍=8,a%4=0,所以執(zhí)行case0后面的語(yǔ)句,將m加1,遇到break語(yǔ)句跳出switch。9、有下列程序段:typedefstructNODE{intnum;stmctNODE*next;}OLD;下列敘述中正確的是(
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 福建師范大學(xué)《傳播學(xué)概論》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024屆新疆庫(kù)爾勒第二師華山中學(xué)高三下學(xué)期第七次月考數(shù)學(xué)試題試卷
- 2024屆上海市市三女中高三4月二模數(shù)學(xué)試題
- 蘇教版三年級(jí)語(yǔ)文課件
- 國(guó)家級(jí)新藥石辛牙痛口含片藥材GAP種植與產(chǎn)業(yè)化項(xiàng)目可行性研究報(bào)告
- 2024年巢湖小型客運(yùn)從業(yè)資格證理論考題
- 2024年銀川客運(yùn)資格證摸擬考試題
- 2024年甘肅客車(chē)從業(yè)資格證模擬考試答題軟件
- 2025屆福建省漳達(dá)志中學(xué)數(shù)學(xué)高三第一學(xué)期期末達(dá)標(biāo)測(cè)試試題含解析
- 2025屆四平市重點(diǎn)中學(xué)語(yǔ)文高三上期末質(zhì)量跟蹤監(jiān)視模擬試題含解析
- 期中試題-2024-2025學(xué)年六年級(jí)上冊(cè)語(yǔ)文統(tǒng)編版
- 中國(guó)融通集團(tuán)社招筆試題
- 中國(guó)古代手工業(yè)發(fā)展一覽表
- 公司內(nèi)部招標(biāo)工作流程
- 實(shí)驗(yàn)室質(zhì)量監(jiān)控
- 工程款欠條(模板)
- 應(yīng)用型本科高校基礎(chǔ)課程體系教學(xué)改革之設(shè)計(jì)速寫(xiě)課程改革探討
- 福建省高速公路招標(biāo)做法講義
- 地震資料解釋_第七章
- 全國(guó)中學(xué)生物理競(jìng)賽集錦(電磁學(xué))
- 【doc】氣田單井經(jīng)濟(jì)極限產(chǎn)量研究
評(píng)論
0/150
提交評(píng)論