國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷37(共344題)_第1頁(yè)
國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷37(共344題)_第2頁(yè)
國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷37(共344題)_第3頁(yè)
國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷37(共344題)_第4頁(yè)
國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷37(共344題)_第5頁(yè)
已閱讀5頁(yè),還剩99頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ī)試模擬試卷37(共9套)(共344題)國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷第1套一、選擇題(本題共39題,每題1.0分,共39分。)1、算法的空間復(fù)雜度是指()。A、算法程序的長(zhǎng)度B、算法程序中的指令條數(shù)C、算法程序所占的存儲(chǔ)空間D、算法執(zhí)行過(guò)程中所需要的存儲(chǔ)空間標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:算法的空間復(fù)雜度是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間。一個(gè)算法所占用的存儲(chǔ)空間包括算法程序所占的空間、輸入的初始數(shù)據(jù)所占的存儲(chǔ)空間以及算法執(zhí)行中所需要的額外空間。其中額外空間包括算法程序執(zhí)行過(guò)程中的工作單元以及某種數(shù)據(jù)結(jié)構(gòu)所需要的附加存儲(chǔ)空間。如果額外空間量相對(duì)于問(wèn)題規(guī)模來(lái)說(shuō)是常數(shù),則稱(chēng)該算法是原地工作的。在許多實(shí)際問(wèn)題中,為了減少算法所占的存儲(chǔ)空間,通常采用壓縮存儲(chǔ)技術(shù),以便盡量減少不必要的額外空間。2、結(jié)構(gòu)化程序設(shè)計(jì)的3種結(jié)構(gòu)是()。A、順序結(jié)構(gòu),分支結(jié)構(gòu),跳轉(zhuǎn)結(jié)構(gòu)B、順序結(jié)構(gòu),選擇結(jié)構(gòu),循環(huán)結(jié)構(gòu)-C、分支結(jié)構(gòu),選擇結(jié)構(gòu),循環(huán)結(jié)構(gòu)D、分支結(jié)構(gòu),跳轉(zhuǎn)結(jié)構(gòu),循環(huán)結(jié)構(gòu)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:程序設(shè)計(jì)語(yǔ)言?xún)H僅使用順序、選擇和重復(fù)(循環(huán))三種基本控制結(jié)構(gòu)就足以表達(dá)出各種其他形式結(jié)構(gòu)的程序設(shè)計(jì)方法。遵循程序結(jié)構(gòu)化的設(shè)計(jì)原則,按結(jié)構(gòu)化程序設(shè)計(jì)方法設(shè)計(jì)出的程序易于理解、使用和維護(hù);可以提高編程工作的效率,降低軟件的開(kāi)發(fā)成本。3、設(shè)一棵滿二叉樹(shù)共有15個(gè)結(jié)點(diǎn),則在該滿二叉樹(shù)中的葉子結(jié)點(diǎn)數(shù)為()。A、7B、8C、9D、10標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在具有n個(gè)結(jié)點(diǎn)的滿二叉樹(shù),其非葉子結(jié)點(diǎn)數(shù)為int(n/2),而葉子結(jié)點(diǎn)數(shù)等于總結(jié)點(diǎn)數(shù)減去非葉子結(jié)點(diǎn)數(shù)。本題n=15,故非葉子結(jié)點(diǎn)數(shù)等于int(15/2)=7,葉子結(jié)點(diǎn)數(shù)等于15-7=8。4、設(shè)有表示學(xué)生選課的三張表,學(xué)生S(學(xué)號(hào),姓名,性別,年齡,身份證號(hào)),課程C(課號(hào),課名),選課sC(學(xué)號(hào),課號(hào),成績(jī)),則表SC的關(guān)鍵字(鍵或碼)為()。A、課號(hào),成績(jī)B、學(xué)號(hào),成績(jī)C、學(xué)號(hào),課號(hào)D、學(xué)號(hào),姓名,成績(jī)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:學(xué)號(hào)是學(xué)生表s的主鍵,課號(hào)是課程表c的主鍵,所以選課表SC的關(guān)鍵字就應(yīng)該是與前兩個(gè)表能夠直接聯(lián)系且能唯一定義的學(xué)號(hào)和課號(hào),所以選擇C。5、有以下程序:#include<stdio.h>main(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case1:b++;break;}case2:a++;b++;break;case3:a++;b++;}printf("a=%d,b=%d\n",a,b);}程序的運(yùn)行結(jié)果是()。A、a=2,b=2B、a=2,b=1C、a=1,b=1D、a=1,b=0標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:case常量表達(dá)式只是起語(yǔ)句標(biāo)號(hào)作用,并不是該處進(jìn)行條件判斷。在執(zhí)行switch語(yǔ)句時(shí),根據(jù)switch的表達(dá)式,找到與之匹配的case語(yǔ)句,就從此case子句執(zhí)行下去,不在進(jìn)行判斷,直到碰到break或函數(shù)結(jié)束為止。所以執(zhí)行內(nèi)層switch(y)時(shí)只執(zhí)行了a++,此時(shí)a的值為1。然后執(zhí)行外層case2語(yǔ)句的a++;b++;a為2,b為1。所以結(jié)果為B)。6、有以下程序段:#include<stdio.h>inti,n;for(i=0;0;i<8;i++){n=rand()%5;switch(n){ease1:ease3:printf("%d\n",n);break;ease2:ease4: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)解析:case常量表達(dá)式只是起語(yǔ)句標(biāo)號(hào)作用,并不是該處進(jìn)行條件判斷。在執(zhí)行switch講句時(shí),根據(jù)switch的表達(dá)式,找到與之匹配的case講句,就從此case子句執(zhí)行下去,不再進(jìn)行判斷,直到碰到hreak或函數(shù)結(jié)束為止。簡(jiǎn)單的說(shuō)break是結(jié)束整個(gè)循環(huán)體,而continue是結(jié)束單次循環(huán)。B選項(xiàng)中當(dāng)產(chǎn)生的隨機(jī)數(shù)n為4時(shí)要執(zhí)行打印操作。C選項(xiàng)中當(dāng)產(chǎn)生的隨機(jī)數(shù)為1和2時(shí)分別執(zhí)行case3與case4后面語(yǔ)句的內(nèi)容。由于存在break語(yǔ)句所以for循環(huán)不是同定執(zhí)行8次,執(zhí)行次數(shù)與產(chǎn)生的隨機(jī)數(shù)n有關(guān)系。7、定義如下變量和數(shù)組:inti,x[3][3]={1,2,3,4,5,6,7,8,9};則下面語(yǔ)句的輸出結(jié)果是()。for(i=0;i<3;i++)printf("%d",x[i][2-i]);A、159B、147C、357D、369標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題主要考查二維數(shù)組的使用。題中利用for循環(huán)來(lái)輸出x數(shù)組中的指定元素:①當(dāng)i=0時(shí),輸出x[0][2]=3;②當(dāng)i=1時(shí),輸出x[1][1]=5;③當(dāng)i=2時(shí),輸出x[2][0]=7。8、有以下程序#include<stdio.h>main(){FILE*fp;inti=20,j=30,k,n;fp=fopen("d1.dat","w");fprintf(fp,"%d\n",i);fprintf(fp,"%d\n",j);fclose(fp);fp=fopen("d1.dat","r");fscanf(fp,"%d%d",&k,&n);printf("%d%d\n",k,n);fclose(fp);}程序運(yùn)行后的輸出結(jié)果是()。A、2030B、2050C、3050D、3020標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:分析程序段,首先以只寫(xiě)方式打開(kāi)文件,利用fprintf函數(shù)將i和j的值寫(xiě)入到文件d1.dat中,然后關(guān)閉文件:再以只讀方式打開(kāi)文件,利用格式化輸入函數(shù)fscanf將文件中的數(shù)據(jù)賦值給k和n,最后輸出k和n的值,分別是20和30。9、一個(gè)棧的初始狀態(tài)為空。現(xiàn)將元素1、2、3、4、5、A、B、C、D、E依次入棧,然后再依次出棧,則元素出棧的順序是()。A、12345ABCDEB、EDCBA54321C、ABCDE12345D、54321EDCBA標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:棧是先進(jìn)后出的原則組織數(shù)據(jù),所以入棧最早的最后出棧,所以選擇B。10、內(nèi)聚性是對(duì)模塊功能強(qiáng)度的衡量,下列選項(xiàng)中,內(nèi)聚性較弱的是()。A、順序內(nèi)聚B、偶然內(nèi)聚C、時(shí)間內(nèi)聚D、邏輯內(nèi)聚標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:內(nèi)聚是從功能角度來(lái)衡量模塊的聯(lián)系,它描述的是模塊內(nèi)的功能聯(lián)系。內(nèi)聚有如下種類(lèi),它們之間的內(nèi)聚度由弱到強(qiáng)排列:偶然內(nèi)聚一一模塊中的代碼無(wú)法定義其不同同功能的調(diào)用。但它使該模塊能執(zhí)行不同的功能,這種模塊為巧合強(qiáng)度模塊。邏輯內(nèi)聚——這種模塊把幾種相關(guān)的功能組合在一起,每次被調(diào)用時(shí),由傳送給模塊的參數(shù)來(lái)確定該模塊應(yīng)完成哪一種功能。時(shí)間內(nèi)聚——這種模塊順序完成一類(lèi)相關(guān)功能,比如初始化模塊,它順序地為變量置初值。過(guò)程內(nèi)聚——如果一個(gè)模塊內(nèi)的處理元素是相關(guān)的,而且必須以特定次序執(zhí)行,則稱(chēng)為過(guò)程內(nèi)聚。通信內(nèi)聚——這種模塊除了具有過(guò)程內(nèi)聚的特點(diǎn)外,還有另外一種關(guān)系,即它的所有功能都通過(guò)使用公用數(shù)據(jù)而發(fā)生關(guān)系。順序內(nèi)聚一一如果一個(gè)模塊內(nèi)各個(gè)處理元素和同一個(gè)功能密切相關(guān),而且這些處理必須順序執(zhí)行,處理元素的輸出數(shù)據(jù)作為下一個(gè)處理元素的輸入數(shù)據(jù),則稱(chēng)為順序內(nèi)聚。功能內(nèi)聚——如果一個(gè)模塊包括為完成某一具體任務(wù)所必需的所有成分,或者說(shuō)模塊中所有成分結(jié)合起來(lái)是為了完成一個(gè)具體的任務(wù),此模塊則為功能內(nèi)聚模塊。11、下列選項(xiàng)中,不能作為合法常量的是()。A、1.234e04B、1.234e0.4C、1.234e+4D、1.234e0標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:用指數(shù)形式表示的實(shí)型常量需注意兩點(diǎn):①e或E后面的指數(shù)必須是整數(shù):②指數(shù)必須是不超過(guò)數(shù)據(jù)表示范圍的正負(fù)整數(shù),并且在e或E前必須有數(shù)字。12、有以下程序:#include<stdio.h>intfun(){staticintx=1:x+=1:returnx;}main()inti,s=1;for(i=1;i<=5;i++)s+=fun();printf("%d\n",s);}程序運(yùn)行后的輸出結(jié)果是()。A、120B、1C、6D、21標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:fun函數(shù)中的變量x為靜態(tài)的局部變量,占用固定的內(nèi)存單元,下一次調(diào)用時(shí)仍可以保留上次調(diào)用時(shí)的值。也就是說(shuō),如果多次調(diào)用fun函數(shù),x的定義只在第一次調(diào)用時(shí)有效,從第二次調(diào)用開(kāi)始,x的定義卡相當(dāng)于不存在,直接使用上次x的值,fun函數(shù)被調(diào)用了5次,每次調(diào)用后的返回值累加到s上,5次調(diào)用后,x的值為6,s的值為1+2+3+4+5+6=21,因此D選項(xiàng)正確。13、以下敘述中正確的是()。A、調(diào)用函數(shù)時(shí),函數(shù)名必須與被調(diào)用的函數(shù)名完全一致B、函數(shù)調(diào)用時(shí),不必區(qū)分函數(shù)名稱(chēng)的大小寫(xiě)C、函數(shù)名允許用數(shù)字開(kāi)頭D、在函數(shù)體中只能出現(xiàn)一次return語(yǔ)句標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:調(diào)用函數(shù)的時(shí)候只有保證調(diào)用語(yǔ)句的函數(shù)名和被調(diào)函數(shù)的函數(shù)名、參數(shù)列表一致才能保證調(diào)用的正確性,A)正確。C語(yǔ)言對(duì)大小寫(xiě)敏感,選項(xiàng)B)錯(cuò)。用戶(hù)自定義的函數(shù)名需要遵循用戶(hù)標(biāo)識(shí)符的命名規(guī)則,由字母、數(shù)字、下劃線組成并且第一個(gè)字符不能為數(shù)字,選項(xiàng)C)錯(cuò)。一個(gè)函數(shù)每次只能使用一個(gè)return語(yǔ)句,但是該函數(shù)體中可以有多個(gè)返回點(diǎn),也就是有多條return語(yǔ)句,每次只從其中一點(diǎn)返回,選項(xiàng)D)錯(cuò)。答案選A)。14、算法的有窮性是指()。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í)間是有限的。15、有以下程序#includeintfun(intas*intb){if(b==0)returna;elsereturn(fun(--a,--b));}main(){pfintf("%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)用fun(4,2)時(shí),其執(zhí)行過(guò)程如下:fun(4,2)->fun(3,1)->fun(2,0),其返回值為2。所以正確答案為選項(xiàng)B)。16、有以下程序:#include<stdio.h>main(){inta=6,b=7,m=1;switch(a%2){case0:m++;break;case1:m++:switch(b%2){defaut:m++;case0:m++;break;}}printf("%d\n",m);}程序運(yùn)行后的輸出結(jié)果是()。A、1B、2C、3D、4標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查switch語(yǔ)句。因?yàn)閍=6,所以a%2=0,因此第一個(gè)switch語(yǔ)句,執(zhí)行case0,將m加1,遇到break語(yǔ)句跳出switch語(yǔ)句,輸出m值為2。17、設(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ù)。18、下列有關(guān)數(shù)據(jù)庫(kù)的描述,正確的是()。A、數(shù)據(jù)庫(kù)設(shè)計(jì)是指設(shè)計(jì)數(shù)據(jù)庫(kù)管理系統(tǒng)B、數(shù)據(jù)庫(kù)技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)共享的問(wèn)題C、數(shù)據(jù)庫(kù)是一個(gè)獨(dú)立的系統(tǒng),不需要操作系統(tǒng)的支持D、數(shù)據(jù)庫(kù)系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)必須與邏輯結(jié)構(gòu)一致標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)設(shè)計(jì)的目的實(shí)質(zhì)上是設(shè)計(jì)出滿足實(shí)際應(yīng)用需求的實(shí)際關(guān)系模型。數(shù)據(jù)庫(kù)技術(shù)的主要目的是有效地管理和存取大量的數(shù)據(jù)資源,包括:提高數(shù)據(jù)的共享性,使多個(gè)用戶(hù)能夠同時(shí)訪問(wèn)數(shù)據(jù)庫(kù)中的數(shù)據(jù);減小數(shù)據(jù)的冗余,以提高數(shù)據(jù)的一致性和完整性;提供數(shù)據(jù)與應(yīng)用程序的獨(dú)立性,從而減少應(yīng)用程序的開(kāi)發(fā)和維護(hù)代價(jià)。19、數(shù)據(jù)庫(kù)設(shè)計(jì)的四個(gè)階段是:需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)和()。A、編碼設(shè)計(jì)B、測(cè)試階段C、運(yùn)行階段D、物理設(shè)計(jì)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)設(shè)計(jì)目前一般采用生命周期法,即將整個(gè)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的開(kāi)分解成目標(biāo)獨(dú)立的若干階段,它們是:需求分析階段、概念設(shè)計(jì)階段、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、編碼階段、測(cè)試階段、運(yùn)行階段、進(jìn)一步修改階段。在數(shù)據(jù)庫(kù)設(shè)計(jì)中采用上面幾個(gè)階段中的前四個(gè)階段,并且重點(diǎn)以數(shù)據(jù)結(jié)構(gòu)和模型設(shè)計(jì)為主線。20、已知chara;intb;floatC;doubled;則表達(dá)式a-b+c-d結(jié)果為()型。A、doubleB、floatC、intD、char標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C語(yǔ)言中允許進(jìn)行不同數(shù)據(jù)類(lèi)型的混合運(yùn)算,但在實(shí)際運(yùn)算時(shí),要先將不同類(lèi)型的數(shù)據(jù)轉(zhuǎn)化成同一類(lèi)型再進(jìn)行運(yùn)算。類(lèi)型轉(zhuǎn)換的一般規(guī)則是:①運(yùn)算中將所有char型轉(zhuǎn)換成int型,float型轉(zhuǎn)換成double型;②低級(jí)類(lèi)型服從高級(jí)類(lèi)型,并進(jìn)行相應(yīng)的轉(zhuǎn)換,數(shù)據(jù)類(lèi)型由低到高的順序?yàn)椋篶har->-int->unsigned->long->float->double;③賦值運(yùn)算中最終結(jié)果的類(lèi)型,以賦值運(yùn)算符左邊變量的類(lèi)型為準(zhǔn),即賦值運(yùn)算符右端值的類(lèi)型向左邊變量的類(lèi)型看齊,并進(jìn)行相應(yīng)轉(zhuǎn)換。21、以下敘述正確的是()。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ǔ)句。22、有以下程序#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ú)解析23、一個(gè)棧的初始狀態(tài)為空。現(xiàn)將元素1,2,3,A,B,C依次入棧,然后再依次出棧,則元素出棧的順序是A、1,2,3,A,B,CB、C,B,A,1,2,3C、C,B,A,3,2,1D、1,2,3,C,B,A標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:棧的修改是按后進(jìn)先出的原則進(jìn)行的,所以順序應(yīng)與入棧順序相反,故選C。24、以下敘述中正確的是()。A、使用typedef定義新類(lèi)型名后,新類(lèi)型名與原類(lèi)型名實(shí)際上是等價(jià)的B、結(jié)構(gòu)體類(lèi)型中的各個(gè)成分均不能是數(shù)組或指針C、結(jié)構(gòu)體類(lèi)型的變量,不能在聲明結(jié)構(gòu)體類(lèi)型時(shí)一起定義D、元素為結(jié)構(gòu)體類(lèi)型的數(shù)組,只能在聲明過(guò)結(jié)構(gòu)體類(lèi)型之后單獨(dú)進(jìn)行定義標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查typedef的使用方法。typedef對(duì)已存在的類(lèi)型使用一個(gè)新的名字,結(jié)構(gòu)體類(lèi)型中的成分可以是數(shù)組和指針,所以B選項(xiàng)錯(cuò)誤;結(jié)構(gòu)體類(lèi)型的變量可以在聲明結(jié)構(gòu)體的時(shí)候一起定義,所以C選項(xiàng)錯(cuò)誤;D選項(xiàng)中二者可以一起定義。25、設(shè)有定義:struetcomplex{intreal,unreal;}data1={1,8},data2;則以下賦值語(yǔ)句中錯(cuò)誤的是()。A、data2=(2,6);unreal;B、data2=data1;C、data2.real=data1.real;D、data2.real=data1.標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:結(jié)構(gòu)體變量建議在定義的時(shí)候進(jìn)行初始化。結(jié)構(gòu)體常見(jiàn)的幾種初始化方法如下:(1)structaa1={.b=1,.c=2};(2)structaa1={b:1,c:2};(3)structaa1={1,2};計(jì)算機(jī)內(nèi)核喜歡用第一種,使用第一種和第二種時(shí),成員初始化順序可變。因此,可以判斷選項(xiàng)A錯(cuò)誤。答案為A選項(xiàng)。26、以下敘述中正確的是A、復(fù)合語(yǔ)句在語(yǔ)法上包含多條語(yǔ)句,其中不能定義局部變量B、花括號(hào)對(duì){}只能用來(lái)表示函數(shù)的開(kāi)頭和結(jié)尾,不能用于其他目的C、空語(yǔ)句就是指程序中的空行D、當(dāng)用scanf從鍵盤(pán)輸入數(shù)據(jù)時(shí),每行數(shù)據(jù)在沒(méi)按下回車(chē)鍵(Enter鍵)前,可以任意修改標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:復(fù)合語(yǔ)句可以包含多條語(yǔ)句,在其中可以定義局部變量,所以A錯(cuò)誤?;ɡㄌ?hào)對(duì){}不僅用來(lái)表示函數(shù)的開(kāi)頭和結(jié)尾,也可以用于表示復(fù)合語(yǔ)句,所以B錯(cuò)誤。C語(yǔ)言中的語(yǔ)句必須以分號(hào)";"結(jié)束,所以空語(yǔ)句表示為";",不是空行,所以C錯(cuò)誤。27、關(guān)于結(jié)構(gòu)體類(lèi)型的說(shuō)明和變量定義,以下選項(xiàng)正確的是()。A、stmctREC;{charc;intm;floats;};RECt1,t2;B、typedefstruct{charc;intm;floats;}REC;RECt1,c2;C、typedefstructREC;{charc;intm;floats;}t1,t2;D、struct{charc;intm;floats;}REC;RECt1,t2;標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:選項(xiàng)A和C在REC后面不能有分號(hào),D項(xiàng)中的REC已經(jīng)是定義好的機(jī)構(gòu)體變量,故不能用其定義變量;B項(xiàng)中使用了typedef,所以REC是前面定義的結(jié)構(gòu)體類(lèi)型的別名,所以可以用來(lái)定義變量。28、有以下程序:voidss(char*s,chart){while(*S){if(*s=t)*s=t-’a’+’A’;S++:}}main(){charstrl[100]=’’ABCddfefdbd’’,c=’d’;ss(strl,c);printf(’’%s\n’’,strl);}程序運(yùn)行后的輸出結(jié)果是()。A、ABCDDEFEDBDB、ABCDDfefDbDC、ABCAAfefAbAD、ABCdd~fdbd標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:函數(shù)ss(char*s,chart)的功能是將指針s所指向的字符串中存在的字符”t”均改寫(xiě)成大寫(xiě)字*;所以main函數(shù)中引用函數(shù)ss后使得數(shù)組strl中的小寫(xiě)字*”d”均變成了大寫(xiě)字*”D”,然后輸出數(shù)組strl,結(jié)果為:ABCDDflefDbD。29、以下敘述中正確的是A、C語(yǔ)言程序所調(diào)用的函數(shù)必須放在main函數(shù)的前面B、C語(yǔ)言程序總是從最前面的函數(shù)開(kāi)始執(zhí)行C、C語(yǔ)言程序中main函數(shù)必須放在程序的開(kāi)始位置D、C語(yǔ)言程序總是從main函數(shù)開(kāi)始執(zhí)行標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C語(yǔ)言所調(diào)用的函數(shù)可以放在調(diào)用它的函數(shù)前,也可以放在調(diào)用它的函數(shù)后,所以A錯(cuò)誤,C語(yǔ)言程序總是從main函數(shù)開(kāi)始執(zhí)行,所以B錯(cuò)誤,main函數(shù)的位置可以放在開(kāi)始,也可以放在中間,也可以放在最后,所以C錯(cuò)誤。30、若輸入bcdefgh、m、abcdefg,以下程序的輸出結(jié)果為()。#include<stdio.h>#include<string.h>main(){inti;charstring[20],str[3][20];for(i=O;i<3;i++)gets(str[i]);if(strcmp(str[0],str[1])>0)strcpy(string,str[0]);elsestrcpy(string,str[1]);if(strcmp(str[2],string)>0)strcpy(string,str[2]);printf("%s",string);}A、bcdefghB、mC、abcdefgD、bcdefgh或abcdefg標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查字符比較函數(shù)和字符復(fù)制函數(shù):strcmp(s1,s2);函數(shù)功能:比較字符串str1和str2比較的是字符的ASCII碼的值,當(dāng)str1<str2時(shí),返回值為負(fù)數(shù);當(dāng)str1=str2時(shí),返回0;當(dāng)str1>str2,返回值為正數(shù)。31、有以下程序#include<stdio.h>main(){FILE*fp;inti=20,j=30,k,n;fp=fopen("d1.dat","w");fprintf(fp,"%d\n",i);fprintf(fp,"%d\n",j);fclose(fp);fp=fopen("d1.dat","r”);fscanf(fp,"%d%d",&k,&n);printf("%d%d\n",k,n);fclose(fp);}程序運(yùn)行后的輸出結(jié)果是()。A、2030B、2050C、3050D、3020標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:分析程序段,首先以只寫(xiě)方式打開(kāi)文件,利用fprintf函數(shù)將i和j的值寫(xiě)入到文件d1.dat中,然后關(guān)閉文件;再以只讀方式打開(kāi)文件,利用格式化輸入函數(shù)fscanf將文件中的數(shù)據(jù)賦值給k和n,最后輸出k和n的值,分別是20和30。32、對(duì)于長(zhǎng)度為n的線性表,在最壞情況下,下列各排序法所對(duì)應(yīng)的比較次數(shù)中正確的是()。A、冒泡排序?yàn)閚(n一1)/2B、簡(jiǎn)單插入排序?yàn)閚C、希爾排序?yàn)閚D、快速排序?yàn)閚/2標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在最壞情況下,冒泡排序所需要的比較次數(shù)為n(n—1)/2;簡(jiǎn)單插入排序所需要的比較次數(shù)為n(n-1)/2;希爾排序所需要的比較次數(shù)為O(n1.5);堆排序所需要的比較次數(shù)為O(nlog2n)。33、有以下程序:#include<stdio.h>main(){FILE*fp;inta[10]={1,2,3,0,0),i;fp=fopen("d2.dat","wb");fwrite(a,sizeof(int),5,fp);fwrite(a,sizeof(int),5,fp);fclose(fp);fp=fopen("d2.dat","rb");fread(a,sizeof(int),10,fp);fclose(fp);for(i=0;i<10;i++)printf("%d,",a[i]);}程序的運(yùn)行結(jié)果是()。A、1,2,3,0,0,0,0,0,0,0,B、1,2,3,1,2,3,0,0,0,0,C、123,0,0,0,0,123,0,0,0,0,D、1,2,3,0,0,1,2,3,0,0,標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:首先用函數(shù)fopen()以“wb”的方式打開(kāi)文件“d2.dat”,然后調(diào)用兩次fwrite函數(shù)將數(shù)組a的5個(gè)無(wú)素,依次輸出到文件fp中(共10個(gè)字節(jié)),然后關(guān)閉文件。再次打開(kāi)文件,他用文件指針指向文件的開(kāi)頭,調(diào)用fread函數(shù)從文件fp中讀取這10個(gè)字節(jié)的數(shù)據(jù)到數(shù)組a中,此時(shí)數(shù)組a的內(nèi)容就變?yōu)閧1,2,3,0,0,1,2,3,0,0},因此最后的輸出結(jié)果為“1,2,3,0,0,1,2,3,00”。34、有以下程序#include<stdio.h>main(){inty=9;for(;y>0;y--)if(y%3==0)printf("%d",--y);}程序的運(yùn)行結(jié)果是()。A、741B、963C、852D、875421標(biāo)準(zhǔn)答案:C知識(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。35、設(shè)有函數(shù)定義:voidsub(intk,charch){…}則以下對(duì)函數(shù)sub的調(diào)用語(yǔ)句中,正確的是A、sub(1,97);B、sub(2,’97’);C、n=sub(3,’a’);D、sub(4,"a");標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:函數(shù)的參數(shù)有兩個(gè),第一個(gè)是整型,第二個(gè)是字符類(lèi)型,在調(diào)用函數(shù)時(shí),實(shí)參必須一個(gè)是整型,一個(gè)是字符型。A選項(xiàng)中97為字符’a’的ASCII碼,可以作為字符傳入函數(shù),A選項(xiàng)正確。B選項(xiàng)’97’不是合法字符,字符單引號(hào)里面只能有一個(gè)字符,B選項(xiàng)錯(cuò)誤。函數(shù)sub返回類(lèi)型為空,即不返回任何值,故C選項(xiàng)中將函數(shù)返回值賦給n是不正確的調(diào)用方法,C選項(xiàng)錯(cuò)誤。D選項(xiàng)"a"為字符串,也不是合法的字符,D選項(xiàng)錯(cuò)誤。36、有以下程序#include<stdio.h>main(){inta=1,b=1;for(;a--;)b--;printf("%d,%d\n",a,b);}程序運(yùn)行后的輸出結(jié)果是A、-1,0B、0,0C、-1,-1D、1,1標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:題干中語(yǔ)句for(;a--;),條件a--!=0先判斷a!=0成立,則進(jìn)入循環(huán),然后a減1,起始a=1不等于0,滿足條件進(jìn)入for循環(huán),然后a自減1為0,b自減1為0,繼續(xù)循環(huán);再跳回for語(yǔ)句時(shí),a!=0不成立,不會(huì)進(jìn)入循環(huán),但是a也要自減1為-1,循環(huán)結(jié)束;因此最后輸出a=-1,b=0.因此答案為A選項(xiàng)。37、已知chara;intb;floatc;doubled;則表達(dá)式a-b+c-d結(jié)果為()型。A、doubleB、floatC、intD、char標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C語(yǔ)言中允許進(jìn)行不同數(shù)據(jù)類(lèi)型的混合運(yùn)算,但在實(shí)際運(yùn)算時(shí),要先將不同類(lèi)型的數(shù)據(jù)轉(zhuǎn)化成同一類(lèi)型再進(jìn)行運(yùn)算。類(lèi)型轉(zhuǎn)換的一般規(guī)則是:①運(yùn)算中將所有char型轉(zhuǎn)換成int型,float型轉(zhuǎn)換成double型:②低級(jí)類(lèi)型服從高級(jí)類(lèi)型,并進(jìn)行相應(yīng)的轉(zhuǎn)換,數(shù)據(jù)類(lèi)型由低到高的順序?yàn)椋篶har->int->unsigned->long->float->double;③賦值運(yùn)算中最終結(jié)果的類(lèi)型,以賦值運(yùn)算符左邊變量的類(lèi)型為準(zhǔn),即賦值運(yùn)算符右端值的類(lèi)型向左邊變量的類(lèi)型看齊,并進(jìn)行相應(yīng)轉(zhuǎn)換。38、若有代數(shù)式,(其中e僅代表自然對(duì)數(shù)的底數(shù),1不是變量),則下列能夠正確表示該代數(shù)式的C語(yǔ)言表達(dá)式是()。A、sqrt(abs(n^x+e^x))B、sqrt(fabs(pow(n,x)+pow(x,e)))C、sqrt(fabs(pow(n,x)+exp(x)))D、sqrt(fabs(pow(x,n)+exp(x)))標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:n和e的x冪次方,要分別調(diào)用C語(yǔ)言的數(shù)學(xué)庫(kù)函數(shù)“doublepow(n,x)”和“doubleexp(x)”,因?yàn)檫@兩個(gè)函數(shù)的返回值都為double型,對(duì)兩者的和計(jì)算絕對(duì)值,調(diào)用庫(kù)函數(shù)“doublefabs(pow(n,x)+exp(x))”,求出和的絕對(duì)值,再調(diào)用開(kāi)平方函數(shù)“doublesqrc(fabs(pow(n,x)+exp(x)))”,這樣計(jì)算出的結(jié)果就是題干中表達(dá)式的值。39、已有定義“inta=3:”和輸出語(yǔ)句“printf("%8x".a(chǎn));”,a);”以下正確的敘述是()。A、整型變量的輸出格式符只有%d一種B、%x是格式符的一種,它可以適用于任何一種類(lèi)型的數(shù)據(jù)C、%x是格式符的一種,其變量的值按十六進(jìn)制數(shù)輸出,但%8x是錯(cuò)誤的D、%8x是正確的格式符,其中數(shù)字8規(guī)定了輸出字段的寬度標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查printf函數(shù)的格式。“%8x”表示以十六進(jìn)制無(wú)符號(hào)形式輸出整型數(shù)據(jù)。“8”表示指定輸出數(shù)據(jù)的寬度為8位。二、程序填空題(本題共1題,每題1.0分,共1分。)40、給定程序中,函數(shù)fun的功能是:將s所指字符串中的所有數(shù)字字符移到所有非數(shù)字字符之后,并保持?jǐn)?shù)字字符串和非數(shù)字字符串原有的先后次序。例如,形參s所指的字符串為:def35adh3kjsdf7。執(zhí)行結(jié)果為:defadhkjsdf3537。請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下的BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#includevoidfun(char*s){inti,j=0,k=0;chart1[80],t2[80];for(2=0;s[i]!=’\0’;i++)if(s[i]>=’0’&&s[i]<=’9’){/**********found**********/t2[j]=s[i];____1____;}elset1[k++]=s[i];t2[j]=0;t1[k]=0;/**********found**********/for(i=0;i標(biāo)準(zhǔn)答案:(1)j++(2)s[i]=t1[i](3)j知識(shí)點(diǎn)解析:第一空:如果s[i]是數(shù)字字符,則將s[i]保存在t2數(shù)組中,同時(shí)變量j自增,準(zhǔn)備下次保存數(shù)字字符,故第一空處應(yīng)為“i++”。第二空:語(yǔ)句“for(i=0;i三、程序修改題(本題共1題,每題1.0分,共1分。)41、使用VC++2010打開(kāi)考生文件夾下modil中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件modi1.c。在此程序中,函數(shù)fun和funx的功能是:用二分法求方程23-4x2+3x-6=0的一個(gè)根,并要求絕對(duì)誤差不超過(guò)0.001。例如,若給m輸入-100,給n輸入90,則函數(shù)求得的一個(gè)根為2.000。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdio.h>#include<math.h>doublefunx(doublex){return(2*x*x*x-4*x*x+3*x-6);}doublefun(doublem,doublen){/*********found*********/intr;r=(m+n)/2;/*********found*********/while(fabs(n-m)<0.001){if(funx(r)*funx(n)<0)m=r;elSen=r;r=(m+n)/2;}returnr;}main(){doublem,n,root;printf("Entermn:\n");scanf("%lf%lf",&m,&n);root=fun(m,n);printf("root=%6.3f\n",root);}標(biāo)準(zhǔn)答案:(1)doubler;(2)while(fabs(n-m)>0.001)知識(shí)點(diǎn)解析:(1)程序中會(huì)發(fā)現(xiàn)r=(m+n)/2,而m和n都是double型的,并且根據(jù)題意可知,變量r需要定義為double型。(2)絕對(duì)誤差不超過(guò)0.001,所以循環(huán)條件應(yīng)為fabs(n-m)>0.001。四、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)42、使用VC++2010打開(kāi)考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,規(guī)定輸入的字符串中只包含字母和*號(hào)。請(qǐng)編寫(xiě)函數(shù)fun,其功能是:除了字符串前導(dǎo)的*號(hào)之外,將串中其他*號(hào)全部刪除。在編寫(xiě)函數(shù)時(shí),不得使用C語(yǔ)言提供的字符串函數(shù)。例如,字符串中的內(nèi)容為:“****A*BC*DEF*G*******”,刪除后,字符串中的內(nèi)容應(yīng)當(dāng)是:“****ABCDEFG”。注意:部分源程序在文件PROG1.C中。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。#include<stdio.h>voidfun(char*a){}main(){chars[81];voidNONO();printf(’’Enterastring:\n’’);gets(s);fun(s);printf(’’Thestringafterdeleted:\n’’);puts(s);NONO();}voidNONO(){/*本函數(shù)用于打開(kāi)文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/FILE*in,*out;inti;chars[81];in=fopen(’’in.dat’’,’’r’’);out=fopen(’’out.dat’’,’’w’’);for(i=0;i<10;i++){fscanf(in,’’%s’’,s);fun(s);fprintf(out,’’%s\n’’,s);}felose(in);fclose(out);}標(biāo)準(zhǔn)答案:voidfun(char*a){inti=0:chat*p=a;while(*p&&*p==’*’){a[i]=*p;i++:p++;}while(*p){if(*p!=’*’){a[i]=*p;i++;}p++;}a[i]=’\0’;}知識(shí)點(diǎn)解析:函數(shù)fun的功能:除了字符串前導(dǎo)的*號(hào)之外,將串中其他*號(hào)全部刪除。解答本題,(1)定義一個(gè)臨時(shí)指針p,初始指向原串首地址;(2)利用循環(huán)語(yǔ)句把字符串前導(dǎo)t號(hào)拷貝到原串;(3)繼續(xù)移動(dòng)指針,把串中和串尾的非*號(hào)字符拷貝到原串;(4)為修改后的字符串賦結(jié)束字符’\0’。要?jiǎng)h除字符串中的指定字符,我們通常采用保留非指定字符的方法??梢詫⒎侵付ㄗ址A粼谠?,即將需要保留的字符從原串的起始位置重新賦值;也可以保留到新串,即新建一個(gè)字符串,存放要保留的字符。國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷第2套一、選擇題(本題共40題,每題1.0分,共40分。)1、為了使模塊盡可能獨(dú)立,要求()。A、模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量強(qiáng)B、模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量弱C、模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量弱D、模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量強(qiáng)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:系統(tǒng)設(shè)計(jì)的質(zhì)量主要反映在模塊的獨(dú)立性上。評(píng)價(jià)模塊獨(dú)立性的主要標(biāo)準(zhǔn)有兩個(gè):一是模塊之間的耦合,它表明兩個(gè)模塊之間互相獨(dú)立的程度;二是模塊內(nèi)部之間的關(guān)系是否緊密,稱(chēng)為內(nèi)聚。一般來(lái)說(shuō),要求模塊之間的耦合盡可能地弱,即模塊盡可能獨(dú)立,而要求模塊的內(nèi)聚程度盡量地高。2、語(yǔ)句“printf("a\bhow\’are\’y\\\bou\n");”的輸出結(jié)果是()。A、a\bhow\’are\’y\kbouB、a\bhowk\’are\’y\bouC、how’are’youD、ahow’are’y\bou標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:“\b”格式符表示退格。功能是將它后面的字母把它前面的字母覆蓋,導(dǎo)致“\b”格式符前面的字母不能輸出;“\”格式符表示輸出單引號(hào)字符;“\”格式符表示輸出反3、有以下程序:#include<stdio.h>#defineN8voidfun(int*x,inti){*x=*(x+i)+1;}main(){inta[N]={1,2,3,4,5,6,7,8),i;fun(a,2);for(i=0;i<N/2;i++){printf("%d",a[i]);)printf("\n");}程序運(yùn)行后的輸出結(jié)果是()。A、1313B、3234C、4234D、1234標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:函數(shù)fun(int*x,inti)的功能是把數(shù)組元素x[i]的值加1賦給x[0]。所以在主函數(shù)中執(zhí)行fun(a,2)后,數(shù)組元數(shù)a[0]的值等于4。然后在for循環(huán)語(yǔ)句中,輸出數(shù)組a中的前4個(gè)元素的值,分別是4,2,3,4。4、有以下程序:#include<stdio.h>intfun(intx[],intn){staticintsum=0,i;for(i=0;i<n;i++)sum+=x[i];returnsum;}main(){inta[]={1,2,3,4,5},b[]={6,7,8,9},s=0;s=fun(a,5)+fun(b,4);printf("%d\n",s);}程序執(zhí)行后的輸出結(jié)果是()。A、55B、50C、45D、60標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:內(nèi)部靜態(tài)變量是始終存在的,當(dāng)函數(shù)被調(diào)用退出后,內(nèi)部靜態(tài)變量會(huì)保存數(shù)據(jù),再次調(diào)用該函數(shù)時(shí),以前調(diào)用時(shí)的數(shù)值仍然保留著。fun(a,5)的值是15,再次調(diào)用后sum=15,所以fun(b,4)=45,s:45+15=60。因此D選項(xiàng)正確。5、字符串"\\\"ABCDEF\"\"的長(zhǎng)度是()。A、11B、10C、5D、3標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題涉及字符串的兩個(gè)最基本的概念。①字符串的長(zhǎng)度是指字符串中字符的個(gè)數(shù),但不包含字符串結(jié)束符;②以反斜線“\”開(kāi)頭的特殊字符序列,意思是把反斜線后面的字符序列轉(zhuǎn)換成特定的含義,而不是原來(lái)的含義,不包含在字符串長(zhǎng)度之內(nèi),“\”連同后面的字符為一個(gè)長(zhǎng)度。6、已知函數(shù)的調(diào)用形式:fread(buffer,size,count,fp);其中buffer代表的是()。A、一個(gè)整型變量,代表要讀入的數(shù)據(jù)項(xiàng)總數(shù)B、一個(gè)文件指針,指向要讀的文件C、一個(gè)指針,是指向的輸入數(shù)據(jù)放在內(nèi)存中的起始位置D、一個(gè)存儲(chǔ)區(qū),存放要讀的數(shù)據(jù)項(xiàng)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:數(shù)據(jù)塊輸入/輸出函數(shù)的調(diào)用形式為:fread(buffer,size,count,fp)。fread函數(shù)參數(shù)說(shuō)明:“buffer”是一個(gè)指針,對(duì)fread來(lái)說(shuō),它是讀入數(shù)據(jù)的存放地址;“size”是要讀寫(xiě)的字節(jié)數(shù);“count”是要進(jìn)行讀寫(xiě)多少個(gè)size字節(jié)的數(shù)據(jù)項(xiàng);“fp”是指文件型指針。7、下列語(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ò)誤。8、在下列選項(xiàng)中,沒(méi)有構(gòu)成死循環(huán)的是()。A、inti=100;while(1){i=i0+1;if(i>100)break;}B、for(;;);C、intk=10000;do{k++;}while(k>10000);D、ints=36;while(s)--s;標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:選項(xiàng)D)中,首先定義的變量s的值為36,因?yàn)檎Z(yǔ)句--s;所以當(dāng)s=0時(shí)循環(huán)會(huì)結(jié)束;選項(xiàng)A)由于while(1)永遠(yuǎn)成立,循環(huán)構(gòu)成死循環(huán);選項(xiàng)B)中for循環(huán)沒(méi)有使循環(huán)結(jié)束的限定條件,也構(gòu)成死循環(huán);選項(xiàng)C)中由于k永遠(yuǎn)大于10000,所以循環(huán)無(wú)法停止。9、下列關(guān)于return語(yǔ)句的敘述中,正確的是()。A、一個(gè)自定義函數(shù)中必須有一條return語(yǔ)句B、一個(gè)自定義函數(shù)中可以根據(jù)不同情況設(shè)置多條return語(yǔ)句C、定義成void類(lèi)型的函數(shù)中可以有帶返回值的return語(yǔ)句D、沒(méi)有return語(yǔ)句的自定義函數(shù)在執(zhí)行結(jié)束時(shí)不能返回到調(diào)用處標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:一個(gè)自定義函數(shù)中可以沒(méi)有return語(yǔ)句,沒(méi)有return語(yǔ)句的自定義函數(shù)執(zhí)行完函數(shù)體結(jié)束時(shí),自動(dòng)返回到函數(shù)調(diào)用處,并帶回不確定的值;定義成void類(lèi)型的函數(shù)中不能有帶返回值的return語(yǔ)句;所以選項(xiàng)A、C、D錯(cuò)誤。一個(gè)自定義函數(shù)中可以根據(jù)不同情況設(shè)置多條return語(yǔ)句,根據(jù)程序執(zhí)行流程,選擇執(zhí)行其中一條return語(yǔ)句帶值返回。故B選項(xiàng)正確。10、以下各項(xiàng)中,不是C語(yǔ)言字符型或字符串常量的是()。A、It,sB、0C、’a=0’D、’\010’標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:C選項(xiàng)是一個(gè)賦值表達(dá)式。A、B兩項(xiàng)是字符串常量,D選項(xiàng)是字符型常量。11、在黑盒測(cè)試方法中,設(shè)計(jì)測(cè)試用例的主要根據(jù)是()。A、程序內(nèi)部邏輯B、程序外部功能C、程序數(shù)據(jù)結(jié)構(gòu)D、程序流程圖標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:黑盒測(cè)試是對(duì)軟件已經(jīng)實(shí)現(xiàn)的功能是否滿足需求進(jìn)行測(cè)試和驗(yàn)證,黑盒測(cè)試完全不考慮程序內(nèi)部的邏輯結(jié)構(gòu)和內(nèi)部特性,只根據(jù)程序的需求和功能規(guī)格說(shuō)明,檢查程序的功能是否符合它的功能說(shuō)明,所以本題選擇B。12、下列關(guān)于C語(yǔ)言文件的敘述中正確的是()。A、文件由一系列數(shù)據(jù)依次排列組成,只能構(gòu)成二進(jìn)制文件B、文件由結(jié)構(gòu)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件C、文件由數(shù)據(jù)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件D、文件由字符序列組成,其類(lèi)型只能是文本文件標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查文件的概念,文件是由數(shù)據(jù)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件,所以答案為C選項(xiàng)。13、以下敘述中正確的是()。A、計(jì)算機(jī)只接收由0和1代碼組成的二進(jìn)制指令或數(shù)據(jù)B、計(jì)算機(jī)只接收由0和1代碼組成的十進(jìn)制指令或數(shù)據(jù)C、計(jì)算機(jī)可直接接收并運(yùn)行C源程序D、計(jì)算機(jī)可直接接收并運(yùn)行任意高級(jí)語(yǔ)言編寫(xiě)的源程序標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:二進(jìn)制數(shù)中只有兩個(gè)字符0和1,表示具有兩個(gè)不同穩(wěn)定狀態(tài)的元器件。例如,電路中有無(wú)電流,有電流用1表示,無(wú)電流用0表示。類(lèi)似的還比如電路中電壓的高低,晶體管的導(dǎo)通和截止等。二進(jìn)制數(shù)運(yùn)算簡(jiǎn)單,大大簡(jiǎn)化了計(jì)算中運(yùn)算部件的結(jié)構(gòu),故選項(xiàng)A正確。14、有以下程序:#includemain(){inta1,a2;charc1,c2;scanf(”%d%c%d%c”,&a1,&c1,&a2,&c2);prinff(“%d,%c,%d,%c”,a1,c1,a2,c2);}若想通過(guò)鍵盤(pán)輸入,使得a1的值為12,a2的值為34,c1的值為字符a,c2的值為字符b,程序運(yùn)行后的輸出結(jié)果是:12,a,34,b。則正確的輸入格式是(以下一代表空格,代表回車(chē))()。A、12一a34一一bB、12一a一34一bC、12,a,34,bD、12a34b標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在輸入多個(gè)數(shù)據(jù)時(shí),若格式控制串中無(wú)非格式字符,則認(rèn)為所有輸入的字符均為有效字符。所以應(yīng)按選項(xiàng)D的順序輸入數(shù)據(jù)。15、有以下程序:#includemain(){inta[]={1,2,3,4},y,*P=&a[3];--p;y=*p;printf("y=%d\n",y);}程序的運(yùn)行結(jié)果是()。A、y=0B、y=1C、y=2D、y=3標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:程序首先定義了一個(gè)一維數(shù)組和指針,接著將數(shù)組第4個(gè)元素的地址賦給*p,進(jìn)行一p使指針p指向了數(shù)組的第3個(gè)元素;通過(guò)y=*p,將數(shù)組第3個(gè)元素的值3賦給了v,所以選項(xiàng)D)正確。16、設(shè)有定義:structcomplex{intreal,unreal;datal={1,8},data2;則以下賦值語(yǔ)句中錯(cuò)誤的是()。A、data2=(2,6);B、data2=datal;C、data2=real=datal.real;D、data2.real=datal.unreal;標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:A選項(xiàng)中可以在聲明變量的同事為data2賦值,但是data2=(2,6);應(yīng)寫(xiě)作data2={2,6}。所以選擇A。17、sizeof(char)是()。A、一種函數(shù)調(diào)用B、一個(gè)整型表達(dá)式C、—個(gè)字符型表達(dá)式D、一個(gè)不合法的表達(dá)式標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:“sizeof(char)”是一個(gè)C語(yǔ)言的關(guān)鍵字,它不是函數(shù)調(diào)用?!皊izeot”的功能是計(jì)算出運(yùn)算對(duì)象在計(jì)算機(jī)的內(nèi)存中所占用的字節(jié)數(shù)量,該表達(dá)式的返回值是一個(gè)整數(shù),而不是一個(gè)字符型表達(dá)式。18、以下選項(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ě)為“\\”。19、下面4個(gè)關(guān)于C語(yǔ)言的結(jié)論中錯(cuò)誤的是()。A、可以用do…while語(yǔ)句實(shí)現(xiàn)的循環(huán)一定可以用while語(yǔ)句實(shí)現(xiàn)B、可以用for語(yǔ)句實(shí)現(xiàn)的循環(huán)一定可以用while語(yǔ)句實(shí)現(xiàn)C、可以用while語(yǔ)句實(shí)現(xiàn)的循環(huán)一定可以用for語(yǔ)句實(shí)現(xiàn)D、do…while語(yǔ)句與while語(yǔ)句的區(qū)別僅是關(guān)鍵字“while”出現(xiàn)的位置不同標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查幾個(gè)循環(huán)語(yǔ)句的關(guān)系。①do…while語(yǔ)句、while語(yǔ)句、for語(yǔ)句所實(shí)現(xiàn)的循環(huán)可以相互替代;②do…while語(yǔ)句和while語(yǔ)句的區(qū)別是do…while語(yǔ)句至少執(zhí)行一次,再判斷循環(huán)條件,while語(yǔ)句是先判斷條件再執(zhí)行。20、若有以下程序段:intr=8;pfinff("%d\n",r>>1);輸出結(jié)果是()。A、16B、8C、4D、2標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:C語(yǔ)言中“>>”是二進(jìn)制的右移運(yùn)算符,右移相當(dāng)于將原數(shù)做除二操作,它將原數(shù)右移相應(yīng)位數(shù),并將移出的位信息舍去,在高位補(bǔ)0。本題中8的二進(jìn)制為00001000,右移一位得到00000100,所以輸出4。21、待排序的關(guān)鍵碼序列為(15,20,9,30,67,65,45,90),要按關(guān)鍵碼值遞增的順序排序,采取簡(jiǎn)單選擇排序法,第一趟排序后關(guān)鍵碼15被放到第()個(gè)位置。A、2B、3C、4D、5標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:選擇排序的基本思想是掃描整個(gè)線性表,從中選出最小的元素,將它交換到表的最前面,然后對(duì)剩下的子表采用同樣的方法,直到子表為空。所以第一趟排序后,將選出最小的元素9放在第一個(gè)位置,元素15則被交換放在第三個(gè)位置。22、有以下程序:#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,",13.[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)行傳遞,然后取首個(gè)數(shù)組元素值進(jìn)行加1運(yùn)算,循環(huán)5次。因此A選項(xiàng)正確。23、支持子程序調(diào)用的數(shù)據(jù)結(jié)構(gòu)是()。A、棧B、樹(shù)C、隊(duì)列D、二叉樹(shù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在高級(jí)語(yǔ)言中,函數(shù)的調(diào)用是通過(guò)棧來(lái)實(shí)現(xiàn)的。在進(jìn)行函數(shù)調(diào)用時(shí),系統(tǒng)將所需的信息壓入棧中,如函數(shù)的局部變量、返回值等。24、有以下程序:#include<stdio.h>main(){FILE*fp;intk,n,a[6]={1,2,3,4,5,6};fp=fopen("d2.dat","w");fprintf(fp,"%d%d%d\n",a[0],a[1],a[2]);fprintf(fp,"%d%d%d\n",a[3],a[4].a(chǎn)[5]);fclose(fp);fp=fi)pen("(d2.dat","r");fscanf(fp,"%d%d",&k,&n);printf("%d%d\n",k,n);fclose(fp);}程序運(yùn)行后的輸出結(jié)果是()。A、12B、14C、1234D、123456標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:fprintf()函數(shù)向文本文件輸出數(shù)據(jù),將輸出的內(nèi)容按格式輸出到硬盤(pán)的文本文件中。執(zhí)行兩次fprintf后,文件中的內(nèi)容為“123456”,所以D選項(xiàng)正確。25、下列選項(xiàng)中,能正確定義數(shù)組的語(yǔ)句是()。A、intnun[0..2008];B、intBum[];C、intN=2008;intnum[N];D、#defineN2008intnum[N];標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C語(yǔ)言不允許定義動(dòng)態(tài)數(shù)組,定義數(shù)組的大小必須為常量表達(dá)式。A選項(xiàng)錯(cuò)誤,C語(yǔ)言中數(shù)組沒(méi)有此類(lèi)型的定義方法;B選項(xiàng)錯(cuò)誤,定義數(shù)組應(yīng)指明數(shù)組大小,如果不指明數(shù)組大小,需要給定初倆的個(gè)數(shù);C選項(xiàng)錯(cuò)誤,N為變量,不能用來(lái)定義數(shù)組大小。因此D選項(xiàng)正確。26、設(shè)有以下語(yǔ)句:typedefstruetTr{charc;inta14]:}CIN;則下面敘述中正確的是()。A、CIN是struetTT類(lèi)型的變量B、Tr是struet類(lèi)型的變量C、可以用TT定義結(jié)構(gòu)體變量D、可以用CIN定義結(jié)構(gòu)體變量標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查typedef重新聲明一種結(jié)構(gòu)體類(lèi)型,其中CIN為結(jié)構(gòu)體類(lèi)型名,而不是結(jié)構(gòu)體變量,所以D選項(xiàng)正確。27、有以下程序:#include<stdio.h>main(){intx;scanf("%d",&x);if(x<=3);elseif(x!=10)printf("%d\n",x);}程序運(yùn)行時(shí),輸入的值在哪個(gè)范圍才會(huì)有輸出結(jié)果()。A、小于3的整數(shù)B、不等于10的整數(shù)C、大于3或等于10的整數(shù)D、大于3且不等10的整數(shù)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:根據(jù)代碼可知如果x的值小于等于3,執(zhí)行空語(yǔ)句,不進(jìn)行打印操作。如果x的值大于3,再判斷x的值是否不等于10,如果不等于10就打印x的值,所以選擇D選項(xiàng)。28、設(shè)有關(guān)鍵碼序列(Q,G,M,Z,A,N,B,P,X,H,Y,S,T,L,K,E),采用堆排序法進(jìn)行排序,經(jīng)過(guò)初始建堆后關(guān)鍵碼值B在序列中的序號(hào)是()。A、1B、3C、7D、9標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:建堆的算法:首先將要排序的所有關(guān)鍵碼放到一棵完全二叉樹(shù)的各個(gè)結(jié)點(diǎn)中(這時(shí)的二叉樹(shù)不具備堆的特性),然后,從i=[n/2](n為結(jié)點(diǎn)的個(gè)數(shù))的結(jié)點(diǎn)Ki開(kāi)始,逐步把以K[n/2],K[n/2]-1,K[n/2]-2,…為根的子樹(shù)排成堆,直到以K1為根的樹(shù)排成堆,就完成了建堆過(guò)程。此題中,n=16,i=[16/2]=8,即從第8個(gè)結(jié)點(diǎn)開(kāi)始,建堆完成后如下圖:所以經(jīng)過(guò)初始建堆后關(guān)鍵碼值B在序列中的序號(hào)是3。29、有以下程序:#includemain(){inta=5,b=1,t;t=(a<<2)|b;printf(“%d\n”,t);程序運(yùn)行后的輸出結(jié)果是()。A、1B、11C、6D、21標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查位運(yùn)算,以及按位或操作,將a左移一位相當(dāng)于是將a乘以了4,所以a<<2等于20,二進(jìn)制表示為00010100,與b按位或得到00010101,即21,所以選項(xiàng)D正確。30、程序測(cè)試的目的是()。A、執(zhí)行測(cè)試用例B、發(fā)現(xiàn)并改正程序中的錯(cuò)誤C、發(fā)現(xiàn)程序中的錯(cuò)誤D、診斷和改正程序中的錯(cuò)誤標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:暫無(wú)解析31、下列敘述中正確的是A、程序執(zhí)行的效率與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)密切相關(guān)B、程序執(zhí)行的效率只取決于程序的控制結(jié)構(gòu)C、程序執(zhí)行的效率只取決于所處理的數(shù)據(jù)量D、以上說(shuō)法均錯(cuò)誤標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:程序執(zhí)行的效率與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)、數(shù)據(jù)的邏輯結(jié)構(gòu)、程序的控制結(jié)構(gòu)、所處理的數(shù)據(jù)量等有關(guān)。32、有以下程序:#include<stdio.h>nlain(){FILE*fp;inti,a[6]={1,2,3,4,5,6},k;fp=fopen("datadat","w+b");fwite(&a[0],sizeof(int),1,fp);for(i=1;i<6;i++){fseek(fp,0L,0);fwrite(&a[i],sizeof(int),1,fp);}fseek(fp,0L,0);fread(&k,sizeof(int),1,fp);felose(fp);printf("%d\n",k);}程序運(yùn)行后的輸出結(jié)果是()。A、123456B、21C、6D、654321標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:首先使用fopen函數(shù)以只寫(xiě)方式打開(kāi)文件datAdat,返回文件指針fp然后通過(guò)調(diào)用Write函數(shù),將起始地址為&a[0]、單位長(zhǎng)度為sizeof(int)的一個(gè)元素寫(xiě)入文件,即寫(xiě)入a[0];接著for循環(huán)從數(shù)組a的第二個(gè)元素起,每次首先使用fseek()函數(shù)將指針fp定位到文件datAtdat的開(kāi)始位置,寫(xiě)入起始地址&a[i]、單位長(zhǎng)度為sizeof(int)的一個(gè)元素,即寫(xiě)入a[i];此時(shí)數(shù)組元素按照逆序?qū)懭胛募?54321,盾環(huán)結(jié)束后,使用fseek()函數(shù)再將指針fp定位到文件開(kāi)始位置,調(diào)用fread()函數(shù),從fp所指位置讀取單化長(zhǎng)度為sizeo(int)的一個(gè)元素到變量k中,即k=6,最后調(diào)用fclose()函數(shù)關(guān)閉文件,輸出k的值6,故答案為C。33、若有以下程序#include<stdio.h>main(){FILE*fp;inti,a[6]={1,2,3,4,5,6},k;fp=fopen("data.dat","w+b");for(i=0;i<6;i++){fseek(fp,0L,0);fwrite(&a[5-i],sizeof(int),1,fp);}rewind(fp);fread(&k,sizeof(int),1,fp);fclose(fp);printf("%d",k);}則程序的輸出結(jié)果是A、6B、1C、123456D、21標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查文件操作函數(shù),fseek用于二進(jìn)制方式打開(kāi)的文件,移動(dòng)文件讀寫(xiě)指針位置。將文件內(nèi)部的位置指針重新指向一個(gè)流(數(shù)據(jù)流/文件)的開(kāi)頭。所以最后只保留了1,答案為B。34、設(shè)有定義:doublea,b,c;若要求通過(guò)輸入分別給a、b、c輸入1、2、3,輸入形式如下(注:此處□代表一個(gè)空格)□□1.0□□2.0□□3.0<回車(chē)>則能進(jìn)行正確輸入的語(yǔ)句是A、scanf("%lf%lf%lf",a,b,c);B、scanf("%lf%lf%lf",&a,&b,&c);C、scanf("%f%f%f",&a,&b,&c);D、scanf("%5.1lf%5.1lf%5.1lf",&a,&b,&c);標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:scanf函數(shù)的一般形式為scanf(格式控制,變量1地址,變量2地址,…),其中,格式字符串要與數(shù)據(jù)類(lèi)型保持一致,所以格式字符串中應(yīng)為%lf,后面應(yīng)該為變量地址,所以需要加上符號(hào)"&",所以選擇B。35、以下敘述中正確的是A、只要適當(dāng)?shù)匦薷拇a,就可以將do-while與while相互轉(zhuǎn)換B、對(duì)于"for(表達(dá)式1;表達(dá)式2;表達(dá)式3)循環(huán)體"首先要計(jì)算表達(dá)式2的值,以便決定是否開(kāi)始循環(huán)C、對(duì)于"for(表達(dá)式1;表達(dá)式2;表達(dá)式3)循環(huán)體",只在個(gè)別情況下才能轉(zhuǎn)換成while語(yǔ)句D、如果根據(jù)算法需要使用無(wú)限循環(huán)(即通常所稱(chēng)的"死循環(huán)"),則只能使用while語(yǔ)句標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:B選項(xiàng)中,for語(yǔ)句中需要先求解先求解表達(dá)式1;C選項(xiàng)中,for語(yǔ)句使用最為靈活,它完全可以取代while語(yǔ)句;D選項(xiàng)中,對(duì)于死循環(huán),也可以使用for語(yǔ)句。因此A選項(xiàng)正確。36、若有定義語(yǔ)句:chara=’\82’;則變量aA、說(shuō)明不合法B、包含1個(gè)字符C、包含2個(gè)字符D、包含3個(gè)字符標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:定義語(yǔ)句:chara=’\82’;反斜杠’\’后面跟三位八進(jìn)制數(shù)據(jù)表示一個(gè)ASCII碼,八進(jìn)制沒(méi)有數(shù)字8,因此A選項(xiàng)正確。37、關(guān)于C語(yǔ)言的變量名,以下敘述正確的是A、變量名不可以與關(guān)鍵字同名B、變量名不可以與預(yù)定義標(biāo)識(shí)符同名C、變量名必須以字母開(kāi)頭D、變量名是沒(méi)有長(zhǎng)度限制的標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:合法的標(biāo)識(shí)符由字母(大、小寫(xiě)均可)、數(shù)字和下劃線組成,并且必須以字母或下劃線開(kāi)頭。關(guān)鍵字是指被C語(yǔ)言保留的,不能用作其他用途的標(biāo)識(shí)符,它們?cè)诔绦蛑卸即碇潭ǖ暮x,用戶(hù)不可重新定義,A選項(xiàng)正確。預(yù)定義標(biāo)識(shí)符是系統(tǒng)已經(jīng)有過(guò)定義的標(biāo)識(shí)符,用戶(hù)可以重新定義,所以可以作為變量名,B選項(xiàng)錯(cuò)誤。變量名除了以字母開(kāi)頭以外,還可以以下劃線開(kāi)頭,C選項(xiàng)錯(cuò)誤。變量名沒(méi)有長(zhǎng)度限制,但不可超過(guò)編譯器可以辨識(shí)的范圍,D選項(xiàng)錯(cuò)誤。38、有如下程序#include<stdio.h>main(){intx=072;printf("X=%d.\n",x+1);}程序運(yùn)行后的輸出結(jié)果是A、X=115B、X=73C、X=59.D、X=72.標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:x定義為072,表示x為一個(gè)八進(jìn)制數(shù),%d代表十進(jìn)制整數(shù)輸出,x需要轉(zhuǎn)化成十進(jìn)制為58,在輸出時(shí),x+1=59,再輸出,答案為C選項(xiàng),另外輸出時(shí)不能忘記"."。39、以下程序的輸出結(jié)果是()。#include<stdio.h>main(){inta[3][3]={0,1,2,0,1,2,0,1,2},i,j,s=1;for(i=0;i<3.i++)for(j=i,j<=i0++)s+=a[i][a[j][j];printf("%d\n",s);}A、3B、4C、1D、9標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:當(dāng)外層循環(huán)為i時(shí),內(nèi)層循環(huán)j只能取j=i,所以s+=a[i][a[j][j]],其實(shí)就是s+=a[i][a[i][i]],當(dāng)i=0時(shí),s=s+a[0][a[0][0]]=s+a[0][0]=1,當(dāng)i=1時(shí)S=S+a[1][a[1][1]]=s+a[1][1]=1+1=2,當(dāng)i=2時(shí),s=s+a[2][a[2][2]]=s+a[2][2]=2+2=4。40、有以下程序:#include<stdio.h>main(){inti,j;for(i=3;i>1;i——){for(j=1;j<=2;j++)printf("%d",i+j);printf("\n");}}程序運(yùn)行的結(jié)果是()。A、234345B、43254345C、233423D、4534標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:外層主循環(huán)i從3減到1執(zhí)行了3次(最后一次循環(huán)條件不成立,不執(zhí)行),嵌套的循環(huán)j從1增到2,每輪執(zhí)行2次。每次輸出i+j的值,就可以得到如D選項(xiàng)的輸出結(jié)果。每次換行發(fā)生在外循環(huán)完成一次循環(huán)之后。二、程序填空題(本題共1題,每題1.0分,共1分。)41、程序通過(guò)定義學(xué)生結(jié)構(gòu)體變量,存儲(chǔ)了學(xué)生的學(xué)號(hào)、姓名和3門(mén)課的成績(jī)。所有學(xué)生數(shù)據(jù)均以二進(jìn)制方式輸出到文件中。函數(shù)fun的功能是重寫(xiě)形參filename所指文件中最后一個(gè)學(xué)生的數(shù)據(jù),即用新的學(xué)生數(shù)據(jù)覆蓋該學(xué)生原來(lái)的數(shù)據(jù),其他學(xué)生的數(shù)據(jù)不變。請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下的BLANKl.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include#defineN5typedefstructstudent{longsno;charname[10];floatscore[3];}STU;voidfun(char*filename,STUn){FILE*fp;/**********found**********/fp=fopen(_____1_____,"rb+");/**********found**********/fseek(_____2_____,一(long)sizeof(STU),SEEKEND);/**********found**********/fwrite(&n,sizeof(STU),1,_____3_____);fclose(fp);}main(){STUt[N]=f{10001,"MaChao",91,92,77),{10002,"CaoKai",75,60,88},{10003,"LiSi",85,70,78},{10004,"FangFang",90,82,87},{10005,"ZhangSan",95,80,88}};STUn={10006,"ZhaoSi",55,70,68},ss[N];inti,j;FILE*fp;fp=fopen("student.dat","wb");fwrite(t,sizeof(STU),N,fp);fclose(fp);fp=fopen("student.dat","rb");fread(ss,sizeof(STU),N,fp);fclose(fp);printf("\nTheoriginaldata:\n\n");for(j=0;j標(biāo)準(zhǔn)答案:(1)filename(2)fp(3)fp知識(shí)點(diǎn)解析:第一空:“fp=fopen(__1__,"rb+");”補(bǔ)充fopen的參數(shù),fopen的調(diào)用形式是:fp=fopen(文件名,文件使用方式),因此第一空處應(yīng)填文件名“filename”。第二空:此處是補(bǔ)充fseek函數(shù)的參數(shù),fseek的調(diào)用形式是:fseek(fp,offset,position),其中第一個(gè)參數(shù)是文件型指針,故第二空處應(yīng)填文件型指針變量“fp”。第三空:fwrite的調(diào)用形式是(buffer,size,count,fb),最后一個(gè)參數(shù)是文件型指針,故第三空處應(yīng)填“fp”,將新的學(xué)生數(shù)據(jù)寫(xiě)在最后一個(gè)學(xué)生數(shù)據(jù)位置。三、程序修改題(本題共1題,每題1.0分,共1分。)42、給定程序MODI1.C中函數(shù)fun的功能是:根據(jù)整型形參m,計(jì)算如下公式的值。例如,若m=2000,則應(yīng)輸出:0.000160。請(qǐng)改正程序中的語(yǔ)法錯(cuò)誤,使它能計(jì)算出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!1#include<stdio.h>2/**********foundv/3fun(intm)4{doubley=0,d;5inti;6/**********found**********/7for(i=100,i<=m,i+=100)8{d=(double)i*(double)i;9y+=1.0/d;10}11return(y);12}13main()14{intn=2000;15printf(’’\nTheresultis%1f\n’’,fun(n));16}標(biāo)準(zhǔn)答案:(1)doublefun(intm)(2)for(i=100;i<=m;i+=100)知識(shí)點(diǎn)解析:函數(shù)為累計(jì)相加,計(jì)算公式的值。(1)第一個(gè)標(biāo)識(shí)下的fun函數(shù)的定義,根據(jù)題干中給出的公式中的分?jǐn)?shù)部分,可知應(yīng)該具有double類(lèi)型返回值。所以應(yīng)將“fun(intm)”改為“doublefun(intm)”。(2)第二個(gè)標(biāo)識(shí)下的for循環(huán)過(guò)程是實(shí)現(xiàn)對(duì)公式的求解,C語(yǔ)句中for循環(huán)中的多個(gè)循環(huán)條件表達(dá)式是以分號(hào)為分隔符,所以第二個(gè)標(biāo)識(shí)下“for(i=100,i<=m,i+=100)”改為“for(i=100;i<=m;i+=100)”。四、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)43、已知學(xué)生的記錄由學(xué)號(hào)和學(xué)習(xí)成績(jī)構(gòu)成,N名學(xué)生的數(shù)據(jù)已存入a結(jié)構(gòu)體數(shù)組中。請(qǐng)編寫(xiě)函數(shù)fun,函數(shù)的功能是:找出成績(jī)最低的學(xué)生記錄,通過(guò)形參返回主函數(shù)(規(guī)定只有一個(gè)最低分)。注意:部分源程序存在文件PROG1.C文件中。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。1#include<stdio.h>2#include<string.h>3#defineN104typedefstructss5{charnum[10];ints;)STU;6voidfun(STUa[],STU*s)7{8}9main()10{STUa[N]={{’’A01’’,81},{’’A02”,89},{’’A03’’,66},{’’A04’’,87},{’’A05’’,77},{’’A06’’,90},{’’A07’’,79},{’’A08’’,61},{’’A09’’,80},{’’A10’’,71}},m;11inti;voidNONO();12printf(’’*****Theoriginaldata*****\n’’);13for(i=0;i<N;i++)printf(’’No=%sMark=%d\n’’,a[i].num,a[i].s);14fun(a,&m);15printf(’’*****THE

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論