![國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷35(共240題)_第1頁(yè)](http://file4.renrendoc.com/view7/M01/08/11/wKhkGWa9R5aAXmxLAAIPCnQZE1w324.jpg)
![國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷35(共240題)_第2頁(yè)](http://file4.renrendoc.com/view7/M01/08/11/wKhkGWa9R5aAXmxLAAIPCnQZE1w3242.jpg)
![國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷35(共240題)_第3頁(yè)](http://file4.renrendoc.com/view7/M01/08/11/wKhkGWa9R5aAXmxLAAIPCnQZE1w3243.jpg)
![國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷35(共240題)_第4頁(yè)](http://file4.renrendoc.com/view7/M01/08/11/wKhkGWa9R5aAXmxLAAIPCnQZE1w3244.jpg)
![國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷35(共240題)_第5頁(yè)](http://file4.renrendoc.com/view7/M01/08/11/wKhkGWa9R5aAXmxLAAIPCnQZE1w3245.jpg)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷35(共9套)(共240題)國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷第1套一、選擇題(本題共25題,每題1.0分,共25分。)1、下列排序方法中,最壞情況下比較次數(shù)最少的是()。A、冒泡排序B、簡(jiǎn)單選擇排序C、直接插入排序D、堆排序標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:冒泡排序與簡(jiǎn)單插入排序與簡(jiǎn)單選擇排序法在最壞情況下均需要比較n(n-1)/2次,而堆排序在最壞情況下需要比較的次數(shù)是nlog2n。2、下列關(guān)于棧的敘述正確的是()。A、棧是非線性結(jié)構(gòu)B、棧是一種樹狀結(jié)構(gòu)C、棧具有“先進(jìn)先出”的特征D、棧具有“后進(jìn)先出”的特征標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:棧是限定在一端進(jìn)行插入和刪除的線性表。允許進(jìn)行插入和刪除元素的一端稱為棧頂,另一端稱為棧底。棧是按照“先進(jìn)后出”或“后進(jìn)先出”的原則組織數(shù)據(jù)的。3、以下敘述中正確的是A、程序必須包含所有三種基本結(jié)構(gòu)才能成為一種算法B、如果算法非常復(fù)雜,則需要使用三種基本結(jié)構(gòu)之外的語(yǔ)句結(jié)構(gòu),才能準(zhǔn)確表達(dá)C、只有簡(jiǎn)單算法才能在有限的操作步驟之后結(jié)束D、我們所寫的每條C語(yǔ)句,經(jīng)過(guò)編譯最終都將轉(zhuǎn)換成二進(jìn)制的機(jī)器指令標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C語(yǔ)句構(gòu)成了函數(shù),函數(shù)構(gòu)成的程序,經(jīng)過(guò)編譯轉(zhuǎn)換成二進(jìn)制代碼后可以運(yùn)行,算法是指為解決某個(gè)特定問(wèn)題而采取的確定且有限的步驟,可以利用代碼來(lái)描述算法,而算法+數(shù)據(jù)結(jié)構(gòu)才是程序,結(jié)構(gòu)化的程序由順序結(jié)構(gòu)、循環(huán)結(jié)構(gòu)和選擇結(jié)構(gòu)三種基本結(jié)構(gòu)組成。由這三種基本結(jié)構(gòu)組成的算法可以解決任何復(fù)雜的問(wèn)題,反之則不一定,所有算法必須在有限步驟后結(jié)束。4、下列敘述中正確的是()。A、棧是“先進(jìn)先出”的線性表B、隊(duì)列是“先進(jìn)后出”的線性表C、循環(huán)隊(duì)列是線性結(jié)構(gòu)D、有序線性表不可以采用順序存儲(chǔ)結(jié)構(gòu)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:棧是“先進(jìn)后出”隊(duì)列是“先進(jìn)先出”。棧和隊(duì)列都是一種線性表,屬于線性結(jié)構(gòu)。有序線性表既可以采用順序存儲(chǔ)結(jié)構(gòu),也可以采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的線性表稱之為線性鏈表。5、設(shè)數(shù)據(jù)元素的集合D={1,2,3,4,5},則滿足下列關(guān)系R的數(shù)據(jù)結(jié)構(gòu)中為線性結(jié)構(gòu)的是A、R={(1,2),(3,4),(5,1)}B、R={(1,3),(4,1),(3,2),(5,4)}C、R={(1,2),(2,3),(4,5)}D、R={(1,3),(2,4),(3,5)}標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:把每個(gè)答案中的第一個(gè)元素集合取出來(lái),例如A:(1,2),先寫下來(lái)就是12,然后看后面的(3,4),在(1,2)中找不到前驅(qū)和后繼,只能和(1,2)暫時(shí)先并列,然后是(5,1),這里我們已經(jīng)寫過(guò)12了,那么5在1前面就是512,但是34要單排,所以A就是兩個(gè)根節(jié)點(diǎn)3和5,兩個(gè)順序是512,34。同理選項(xiàng)B是541,32;選項(xiàng)C是:123和45;選項(xiàng)D是135,24所以選項(xiàng)B正確。6、表示關(guān)系式x≤y≤z的C語(yǔ)言表達(dá)式的是A、(x<=y)‖(y<=z)B、(xC、(x<=y)&&(y<=z)D、(x<=y)!(y<=z)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:表示三個(gè)變量的關(guān)系,要利用邏輯表達(dá)式,用邏輯與連接。7、在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是A、可行性分析報(bào)告B、軟件需求規(guī)格說(shuō)明書C、概要設(shè)計(jì)說(shuō)明書D、集成測(cè)試計(jì)劃標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:需求分析的最終結(jié)果是生成軟件需要規(guī)格說(shuō)明書,可以為用戶、分析人員和設(shè)計(jì)人員之間的交流提供方便,可以直接支持目標(biāo)與確認(rèn),又可以作為控制軟件開發(fā)進(jìn)程的依據(jù)。8、要求通過(guò)while循環(huán)不斷讀入字符,當(dāng)讀入字母N時(shí)結(jié)束循環(huán)。若變量已正確定義,以下正確的程序段是()。A、while(ch=getchar()=’N’)printf("%c",ch);B、while((ch=getchar())!=’N’)printf("%c",ch);C、while(ch=getchar()==’N’)printf("%c",ch);D、while((ch=getchar())==’N’)printf("%c",ch);標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在C語(yǔ)言中,等于號(hào)用“==”表示,一個(gè)“=”表示賦值,當(dāng)讀入字母N時(shí),選項(xiàng)A中,while后的條件值為“N”,是非零數(shù),條件成立,循環(huán)繼續(xù)執(zhí)行,所以A選項(xiàng)錯(cuò)誤。C、D選項(xiàng)的含義都是如果輸入的字符為“N”,則打印輸出,所以正好和題意相反。9、有以下程序段inti,n;for(i=0;i<8;i++){n=rand0%5;switch(n){case1:case3:printf("%d\n",n);break;case2:case4:printf("%d\n",n);continue;case0:exit(0);}printf("%dkn",n);}A、當(dāng)產(chǎn)生的隨機(jī)數(shù)n為4時(shí)結(jié)束循環(huán)操作B、當(dāng)產(chǎn)生的隨機(jī)數(shù)n為1和2時(shí)不做任何操作C、當(dāng)產(chǎn)生的隨機(jī)數(shù)n為0時(shí)結(jié)束程序運(yùn)行D、for循環(huán)語(yǔ)句固定執(zhí)行8次標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:rand()函數(shù)功能為產(chǎn)生一個(gè)隨機(jī)數(shù),ralId()%5,則產(chǎn)生0~4之間的任意隨機(jī)數(shù),當(dāng)產(chǎn)生的隨機(jī)數(shù)n為O時(shí),執(zhí)行case0:exit(0)這條語(yǔ)句,結(jié)束程序的運(yùn)行。10、設(shè)變量x和變量y都是int類型,且x=1,y=2,則printf(’’%d%d’’,x,y,(x,y))的輸出結(jié)果是()。A、12B、122C、1,2D、輸出值不確定標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查printf函數(shù)的格式和逗號(hào)表達(dá)式。printf函數(shù)在輸出時(shí),是根據(jù)格式說(shuō)明符的個(gè)數(shù)輸出的,如果函數(shù)中有多余的項(xiàng)將不予輸出;如果有輸出項(xiàng)少于格式說(shuō)明符,則出錯(cuò),不能輸出正確的結(jié)果。本題中逗號(hào)表達(dá)式(x,y)只返回y的值。此時(shí)格式說(shuō)明的個(gè)數(shù)是2,而輸出項(xiàng)的個(gè)數(shù)是3,因此,printf函數(shù)只輸出前兩項(xiàng)。11、下列定義變量的語(yǔ)句中錯(cuò)誤的是()。A、floatUS$;B、doubleint_;C、charFor;D、int_int;標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:考查標(biāo)識(shí)符。定義的變量名要符合表示符的命名規(guī)則:C語(yǔ)言規(guī)定,標(biāo)識(shí)符由字母(A~Z,a~z)、數(shù)字(0~9)或者下劃線(_)組成,并且第一個(gè)字符必須為字母或者下劃線,由此答案選A。12、有以下程序:#include<stdio.h>main(){FILE*fp;inti,a[6]={1,2,3,4,5,6};fp=fopen(″d2.dat″,″w+″);for(i=0;i<6;i++)fprintf(fp,″%d\n″,a[i]);rewind(fp);for(i=0;i<6;i++)fscanf(fp,″%d″,&a[5—i]);fclose(fp);for(i=0;i<6;i++){printf(″%d,″,a[i]);}printf(″\n″);}程序運(yùn)行后的輸出結(jié)果是()。A、4,5,6,1,2,3,B、1,2,3,3,2,1,C、1,2,3,4,5,6,D、6,5,4,3,2,1,標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:這是對(duì)文件的操作,把數(shù)組的數(shù)寫到文件里,然后再?gòu)奈募锏剐蜃x出。所以輸出結(jié)果為6,5,4,3,2,1,。13、以下選項(xiàng)中合法的標(biāo)識(shí)符是A、1-1B、1_1C、_11D、1__標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查標(biāo)識(shí)符定義。合法標(biāo)識(shí)符的要求是由下劃線、英文大小寫字母和數(shù)字組成的字符串,且第一個(gè)字符必須是字母或下劃線。14、若要求定義具有10個(gè)int型元素的一維數(shù)組a,則以下定義語(yǔ)句中錯(cuò)誤的是A、#definen5inta[2*n];B、inta[5+5];C、#defineN10inta[N];D、intn=10,a[n];標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在C語(yǔ)言中,定義一維數(shù)組的語(yǔ)句形式為:類型名數(shù)組名[整型常量表達(dá)式]。在選項(xiàng)D中,n是一個(gè)整型的變量。15、有以下程序#includevoidmain(){charb,c;inti;b=’a’;c=’A’;for(i=0;i<6;i++){if(i%2)putchar(i+b);elseputchar(i+c);}printf("\n");}程序運(yùn)行后的輸出結(jié)果是A、ABCDEFB、aBeDeFC、abcdefD、AbCdEf標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:循環(huán)變量i從0依次遞增到5,依次輸出字母.A,b,C,d,E,f。16、有以下程序段intn,t=1,s=0;scanff("%d,&n);do{s=s++;t=t.2;}while(t!=n);為使此程序段不陷入死循環(huán),從鍵盤輸入的數(shù)據(jù)應(yīng)該是A、任意正奇數(shù)B、任意負(fù)偶數(shù)C、任意正偶數(shù)D、任意負(fù)奇數(shù)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查基本輸入和循環(huán)。程序代碼的功能是通過(guò)scanf給變量n賦值,在do…while循環(huán)中,s變量自增,t變量每次減2,t的初值為1,循環(huán)執(zhí)行執(zhí)行一次后t的值變成-1,然后是-3、-5…,直到t的值和n的值相同循環(huán)結(jié)束。從t的值的變化可知,t是一個(gè)變化的負(fù)奇數(shù),因此輸入的n如果是負(fù)奇數(shù),則循環(huán)能退出,否則是死循環(huán)。17、有以下程序#includemain()voidfun(char*a,char*b){char*s="*****a*b****",t[80];{while(*a==’*’)a++;fun(s,t);puts(t);while(*b=*a){b++;a++;}}}程序的運(yùn)行結(jié)果是A、a*bB、*****a*bC、a*b****D、ab標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:主函數(shù)main()定義了指向字符串的指針和一個(gè)字符數(shù)組,接著調(diào)用fun(s,t)函數(shù),進(jìn)行實(shí)參向形參傳遞,函數(shù)fun()第一個(gè)while語(yǔ)句判斷*a中的值為“*”時(shí)繼續(xù)掃描,當(dāng)遇到不是“*”時(shí)結(jié)束,接著第二個(gè)while循環(huán)語(yǔ)句,將*a中從“a”開始的后續(xù)所有字符都賦予.b,也就是t[80]中的內(nèi)容為“a.b,……。18、有以下程序#includeintf(intn);main(){inta=3,s;s=f(a);s=s+f(a);printf("%d\n",s);}intf(intn){staticinta=1;n+=a++;returnn;}程序運(yùn)行后的輸出結(jié)果是()。A、9B、8C、7D、10標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:靜態(tài)變量是在編譯時(shí)就被分配存儲(chǔ)空間,所占用存儲(chǔ)單元直到程序結(jié)束時(shí)才釋放,其初始化只進(jìn)行一次。所以第一次調(diào)用f()函數(shù),計(jì)算的結(jié)果為n=4,a=2,s=4;第二次調(diào)用f()函數(shù)時(shí),函數(shù)f()內(nèi)的a初值為2,n=5,s=4+5=9,答案選A。19、C語(yǔ)言中double類型數(shù)據(jù)占字節(jié)數(shù)為A、4B、8C、12D、16標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:double型數(shù)據(jù)在內(nèi)存中占8個(gè)字節(jié),float型數(shù)據(jù)占4個(gè)字節(jié),int型數(shù)據(jù)占2個(gè)字節(jié),char型數(shù)據(jù)占1個(gè)字節(jié),所以選擇B。20、若變量已正確定義,有以下程序段i=0;doprintf("%d,",i);while(i++);printf("%d\n",i);其輸出結(jié)果是A、0,0B、1,1C、0,1D、程序進(jìn)入無(wú)限循環(huán)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:do…while循環(huán)的執(zhí)行過(guò)程如下:①執(zhí)行do后面的循環(huán)體中的語(yǔ)句。②計(jì)算while后一對(duì)圓括號(hào)中表達(dá)式的值。當(dāng)值為非0時(shí),轉(zhuǎn)去執(zhí)行步驟①;當(dāng)值為0時(shí),執(zhí)行步驟③。③退出do…while循環(huán)。對(duì)于本題變量i的初始值等于“0”,接著執(zhí)行do后面的循環(huán)體中的語(yǔ)句,輸出變量i的值0。再判斷while后面括號(hào)中表達(dá)式i++的值,其值為0,所以循環(huán)結(jié)束。此時(shí)變量i的值經(jīng)過(guò)自加已經(jīng)變?yōu)?,所以再次輸出i的值“1”。21、設(shè)有如下的說(shuō)明和定義struct{inta;char*s;}x,*p=&x;x.a(chǎn)=4;x.s="hello";則以下敘述中正確的是A、語(yǔ)句++p->a;的效果是使P增1B、(p++)->a與p++->a都是合語(yǔ)法的表達(dá)式,但二者不等價(jià)C、語(yǔ)句*p->s++;等價(jià)于(*p)->s++;D、語(yǔ)句++p->a;的效果是使成員a增1標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:p->a得到p指向的結(jié)構(gòu)體變量中的成員a的值。p->a++得到p指向的結(jié)構(gòu)體變量中的成員a的值,用完該值后使p->a加1。++p->a得到p指向的結(jié)構(gòu)體變量中的成員a的值使之加1(先加)。由此可見指向運(yùn)算符->優(yōu)先級(jí)高于++,因此*p->s++相當(dāng)于*(p->s)++,結(jié)合性自右至左,因此p++->a和(p++)->a等價(jià)。22、有以下程序#includeintfun(char*s){char*p=s;while(*p!=0)p++;return(p-s);}main(){printf("%d\n",fun("goodbey!"));}程序的輸出結(jié)果是A、0B、6C、7D、8標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題主要考查了函數(shù)定義及調(diào)用,以及while循環(huán)語(yǔ)句,執(zhí)行fun函數(shù)后,首先是找到最后一個(gè)字符的地址,然后減去第一個(gè)地址得到的就是這個(gè)字符串的長(zhǎng)度,所以本題答案為8。23、結(jié)構(gòu)化程序設(shè)計(jì)的基本原則不包括()。A、多態(tài)性B、自頂向下C、模塊化D、逐步求精標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:結(jié)構(gòu)化程序設(shè)計(jì)的思想包括:自頂向下、逐步求精、模塊化、限制使用goto語(yǔ)句,所以選擇A)。24、軟件生命周期可分為定義階段、開發(fā)階段和維護(hù)階段,下面屬于定義階段任務(wù)的是()。A、軟件設(shè)計(jì)B、軟件測(cè)試C、可行性研究D、數(shù)據(jù)庫(kù)設(shè)計(jì)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:軟件生命周期可分為定義階段、開發(fā)階段和維護(hù)階段。軟件定義階段的任務(wù)是:確定軟件開發(fā)工作必須完成的目標(biāo);確定工程的可行性。軟件開發(fā)階段的任務(wù)是:具體完成設(shè)計(jì)和實(shí)現(xiàn)定義階段所定義的軟件,通常包括總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和測(cè)試。其中總體設(shè)計(jì)和詳細(xì)設(shè)計(jì)又稱為系統(tǒng)設(shè)計(jì),編碼和測(cè)試又稱為系統(tǒng)實(shí)現(xiàn)。軟件維護(hù)階段的任務(wù)是:使軟件在運(yùn)行中持久地滿足用戶的需要。25、有以下程序#include<stdio.h>#include<math.h>main(){ints;floatn,t,pai;t=1,pai=0,n=1.0,s=1;while(fabs(t)>1.0e-6){pai+=t;n+=2;s=-s;t=s/n;}printf("total=%f\n",pai);}程序運(yùn)行所計(jì)算的是()。A、1-1/2!+1/3!-1/5!+1/7!-…B、1+1/3+1/5+1/7+1/9-…C、1+1/2+1/3+1/4+1/5-…D、1-1/3+1/5-1/7+1/9-…標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:main函數(shù)首先定義整型變量s,初值為1;定義float類型的n、t、pai,其中n初值為1.0,t初值為1,pai初值為0。while:循環(huán)判斷t的絕對(duì)值(fabs為求float類型值的絕對(duì)值的函數(shù))是否大于1.0×10﹣6,若t的絕對(duì)值大于1.0×10﹣6,那么執(zhí)行語(yǔ)句“pai+=t;n+=2;s=-s;t=s/n;”,所以每輪循環(huán)pai累加“s/n”(其中s是上一輪s的相反數(shù),n是上一輪n累加2的值)。第1輪循環(huán)時(shí),pai被賦值為1,s是正數(shù),所以最終pai的計(jì)算結(jié)果是:1-1/3+1/5-1/7+1/9-……。故本題答案為D選項(xiàng)。國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷第2套一、選擇題(本題共25題,每題1.0分,共25分。)1、下列描述中正確的是A、線性鏈表是線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)B、棧與隊(duì)列是非線性結(jié)構(gòu)C、雙向鏈表是非線性結(jié)構(gòu)D、只有根結(jié)點(diǎn)的二叉樹是線性結(jié)構(gòu)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)稱為線性鏈表。線性表鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的基本單位稱為存儲(chǔ)結(jié)點(diǎn),每個(gè)存儲(chǔ)結(jié)點(diǎn)包括數(shù)據(jù)域和指針域兩個(gè)組成部分。各數(shù)據(jù)元素之間的前后件關(guān)系是由各結(jié)點(diǎn)的指針域來(lái)指示的,指向線性表中第一結(jié)點(diǎn)的指針HEAD稱為頭指針,當(dāng)HEAD=NULL時(shí)稱為空表。棧、隊(duì)列和雙向鏈表是線性結(jié)構(gòu)。樹是一種簡(jiǎn)單的非線性結(jié)構(gòu)。在樹這種數(shù)據(jù)結(jié)構(gòu)中,所有數(shù)據(jù)元素的關(guān)系具有明顯的層次特征。二叉樹是非線性結(jié)構(gòu)。線性結(jié)構(gòu)和非線性結(jié)構(gòu)是從數(shù)據(jù)的邏輯結(jié)構(gòu)角度來(lái)講的,與該數(shù)據(jù)結(jié)構(gòu)中有多少個(gè)元素沒有關(guān)系,即使是空的二叉樹也是非線性結(jié)構(gòu)。2、下面敘述中正確的是()。A、線性表是線性結(jié)構(gòu)B、棧與隊(duì)列是非線性結(jié)構(gòu)C、線性鏈表是非線性結(jié)構(gòu)D、二叉樹是線性結(jié)構(gòu)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:線性表是最簡(jiǎn)單的、最常用的一種線性結(jié)構(gòu)。所謂線性鏈表指的是采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的線性表。棧和隊(duì)列其實(shí)是一種特殊的線性表。樹是一種簡(jiǎn)單的非線性結(jié)構(gòu),二叉樹是樹的一種。3、冒泡排序在最壞情況下的比較次數(shù)是A、n(n+1)/2B、nlog2nC、n(n-1)/2D、n/2標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:對(duì)n個(gè)結(jié)點(diǎn)的線性表采用冒泡排序,在最壞情況下,冒泡排序需要經(jīng)過(guò)n/2遍的從前往后的掃描和n/2遍的從后往前的掃描,需要的比較次數(shù)為n(n-1)/2。4、程序測(cè)試的目的是()。A、為被測(cè)程序設(shè)計(jì)正確的測(cè)試用例B、發(fā)現(xiàn)并改正程序中的錯(cuò)誤C、發(fā)現(xiàn)程序中的錯(cuò)誤D、改正程序中的錯(cuò)誤標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:程序測(cè)試是使用人工或自動(dòng)手段來(lái)運(yùn)行或測(cè)定某個(gè)系統(tǒng)的過(guò)程,其目的在于檢驗(yàn)它是否滿足規(guī)定的需求或是弄清預(yù)期結(jié)果與實(shí)際結(jié)果之間的差別,即為發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過(guò)程,而不是改正錯(cuò)誤。故正確答案為C。5、表達(dá)式a+=a=a=9的值是A、9B、0C、18D、9標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:第一步a=9,然后計(jì)算a.a(chǎn)的值,并將此值賦給a,因此此時(shí)a=0,最后計(jì)算a+a,并將此值賦給a,因此最終結(jié)果為0。6、設(shè)棧的順序存儲(chǔ)空間為S(1:m),初始狀態(tài)為top=0。現(xiàn)經(jīng)過(guò)一系列正常的入棧與退棧操作后,top=m+1,則棧中的元素個(gè)數(shù)為A、不可能B、m+1C、0D、m標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:棧是向上增長(zhǎng)的,每次壓入一個(gè)元素,棧的TOP指針向上移動(dòng)一位,即top-1。對(duì)于這個(gè)題目,由于top初始值等于0,此時(shí)入棧一個(gè)元素,top值減1,即0-1=-1,出現(xiàn)下溢錯(cuò)誤,所以選項(xiàng)A正確。7、若有定義:chars[30]={0};運(yùn)行時(shí)輸入:Thisisastring.<回車>則以下不能正確讀入整個(gè)字符串Thisisastring.到字符數(shù)組s中的語(yǔ)句組是()。A、scanf(“%s”,s);B、gets(s);C、for(i=0;(c=getchar())!=’\n’;++)s[i]=c;D、i=0;while((C=getchar())!=’\n’)j[i++]=c;標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:考查基本的字符串輸入控制語(yǔ)句。8、要求通過(guò)while循環(huán)不斷讀入字符,當(dāng)讀入字母N時(shí)結(jié)束循環(huán)。若變量已正確定義,以下正確的程序段是()。A、while(ch=getchar()=’N’)printf("%c",ch);B、while((ch=getchar())!=’N’)printf("%c",ch);C、while(ch=getchar()==’N’)printf("%c",ch);D、while((ch=getchar())==’N’)printf("%c",ch);標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在C語(yǔ)言中,等于號(hào)用“==”表示,一個(gè)“=”表示賦值,當(dāng)讀入字母N時(shí),選項(xiàng)A中,while后的條件值為“N”,是非零數(shù),條件成立,循環(huán)繼續(xù)執(zhí)行,所以A選項(xiàng)錯(cuò)誤。C、D選項(xiàng)的含義都是如果輸入的字符為“N”,則打印輸出,所以正好和題意相反。9、以下敘述中錯(cuò)誤的是A、C程序在運(yùn)行過(guò)程中所有計(jì)算都以二進(jìn)制方式進(jìn)行B、所有C程序都需要編譯鏈接無(wú)誤后才能運(yùn)行C、C程序在運(yùn)行過(guò)程中所有計(jì)算都以十進(jìn)制方式進(jìn)行D、C程序中字符變量存放的是字符的ASCII值標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:計(jì)算機(jī)程序都是編譯為二進(jìn)制的代碼,計(jì)算機(jī)才會(huì)執(zhí)行。10、有以下程序#includemain(){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[5]);fclose(fp);fp=fopen("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ù)向文件輸出,將輸出的內(nèi)容輸出到硬盤上的文件或是相當(dāng)于文件的設(shè)備上執(zhí)行兩次fprintf后文件中有123456,所以D選項(xiàng)正確。11、以下敘述中正確的是A、關(guān)系運(yùn)算符兩邊的運(yùn)算對(duì)象可以是C語(yǔ)言中任意合法的表達(dá)式B、在C語(yǔ)言中,邏輯真值和假值分別對(duì)應(yīng)1和0C、對(duì)于浮點(diǎn)變量X和Y,表達(dá)式:x==y是非法的,會(huì)出編譯錯(cuò)誤D、分支結(jié)構(gòu)是根據(jù)算術(shù)表達(dá)式的結(jié)果來(lái)判斷流程走向的標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C語(yǔ)言中沒有邏輯類型,用非零表示邏輯真。0表示邏輯假,選項(xiàng)B)錯(cuò)誤,無(wú)法判斷兩個(gè)浮點(diǎn)變量是否相等,但是x==y不會(huì)出現(xiàn)編譯錯(cuò)誤,選項(xiàng)C)錯(cuò)誤,分支結(jié)構(gòu)根據(jù)表達(dá)式的值,不一定為算術(shù)表達(dá)式,選項(xiàng)D)錯(cuò)誤。12、若有定義語(yǔ)句:inta=3,b=2,c=1;以下選項(xiàng)中錯(cuò)誤的賦值表達(dá)式是A、a=b=c+1;B、a=(b=4)=3;C、a=(b=4)+c;D、a=1+(b=c=4);標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題主要考查賦值表達(dá)式,對(duì)于賦值表達(dá)式來(lái)說(shuō),賦值號(hào)“=”的左邊一定為變量名,右邊為一個(gè)C語(yǔ)言合法的表達(dá)式。13、若有定義語(yǔ)句charc=’\101’;則變量c在內(nèi)存中占A、2個(gè)字節(jié)B、3個(gè)字節(jié)C、1個(gè)字節(jié)D、4個(gè)字節(jié)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:每個(gè)字符變量被分配一個(gè)字節(jié)的內(nèi)存空間,因此只能存放一個(gè)字符。字符值是以ASCII碼的形式存放在變量的內(nèi)存單元之中的。14、有以下程序,程序運(yùn)行后的輸出結(jié)果是#include#defineSUB(a)(a)-(a)main(){inta=2,b=3,c=5,d;d=SUB(a+b)*c:printf("%d\n",d);}A、.12B、0C、10D、.20標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題主要考查的是宏替換,在程序中執(zhí)行d=sub(a+b)*c這條語(yǔ)句時(shí),首先要進(jìn)行宏替換,依據(jù)宏SUB(a)的定義可知,上面這條語(yǔ)句替換為d=(a+b)-(a+b)*c,因?yàn)槌朔ǖ膬?yōu)先級(jí)比減法的優(yōu)先級(jí)高,所以先進(jìn)行乘法運(yùn)算,即d=5-5*5=-20。15、若有定義“intx,y;”并已正確給變量賦值,則以下選項(xiàng)中與表達(dá)式“(x-y)?(x++):(y++)”中的條件表達(dá)式(x.y)等價(jià)的是A、(x-y<0)B、(x-y>0)C、(x-y<0‖x—y>0)D、(x-y==0)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:條件表達(dá)式的形式如下:表達(dá)式1?表達(dá)式2:表達(dá)式3。其含義為當(dāng)“表達(dá)式1”的值為非零時(shí),求出“表達(dá)式2”的值,此時(shí)“表達(dá)式2”的值就是整個(gè)條件表達(dá)式的值:當(dāng)“表達(dá)式1”的值為零時(shí),則求“表達(dá)式3”的值,這時(shí)“表達(dá)式3”的值就是整個(gè)表達(dá)式的值。本題條件表達(dá)式的執(zhí)行順序是先求解表達(dá)式“x-y”的值,若其值為非0(可以是證數(shù),也可以是負(fù)數(shù)),則再求表達(dá)式“x++”的值,其值就是條什表達(dá)式的值:若表達(dá)式“x-y”的值為0,則再求表達(dá)式“y++”的值,其值就是條什表達(dá)式的值。16、有下列程序:structS{intn;inta[20];);voidflint*a,intn){inti;for(i=0;i<n-1;i++)a[i]+:i;)main(){inti;structSs={10,{2,3,1,6,8,7,5,4,10,9});f(s.a(chǎn),s.n);for(i=0;i<s.n;i++)printf(”%d,”,s.a(chǎn)[i]);)程序運(yùn)行后的輸出結(jié)果是A、3,4,2,7,9,8,6,5,11,10,B、2,3,1,6,8,7,5,4,10,9,C、2,4,3,9,12,12,11,11,18,9,D、1,2,3,6,8,7,5,4,10,9標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:voidf(int*a,intn)函數(shù)的功能是對(duì)數(shù)組a[]的每一個(gè)元素加上其下標(biāo)的值。所以在main()函數(shù)中f(s.a(chǎn)s.n)語(yǔ)句會(huì)調(diào)用f(int*a,intn)函數(shù),此時(shí)指針a指向數(shù)組s.a(chǎn)={2,3,l,6,8,7,5,4,10,9},n=10:然后執(zhí)行for(i=0;i<n.1;i++)a[i]+=i;語(yǔ)句,也就是從0開始到8對(duì)數(shù)組s.a(chǎn)={2,3,1,6,8,7,5,4,10,9}中的每一個(gè)元素加上其下標(biāo)值。17、有下列程序:fun(charp[][10]){intn=O,i;for(i=0;i<7;i++)if(p[i][0]==’T’)n+-;returnn;}main(){charstr[][10]={"Mon","Tue","Wed","Thu","Fri","Sat","Sun");printf("%d\n".fun(str));}程序執(zhí)行后的輸出結(jié)果是A、1B、3C、0D、2標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題在主函數(shù)中定義了一個(gè)字符二維數(shù)組str[][10],并用{“Mon”,“‘Tue”,“Wed”,“Thu”,“Fri”,“Sat”,“Sun”}初始化。函數(shù)fun(charp[][10])的功能是統(tǒng)計(jì)出p[][10]中p[i][0]等于字符T的個(gè)數(shù)。所以fun(str)的功能是統(tǒng)計(jì)一周七天中英文名稱首字母為“T”的個(gè)數(shù)。因?yàn)樽址?Tue”和“Thu”的首字符是“T”,所以n=2。18、若有以下程序#includeintk=7,m=5;voidf(int**s){int*t=&k;s=&t;*s=&m;printf("%d,%d,%d,",k,*t,**s);}main(){inti=3,*p=&i,**r=&p;f(r);printf("%d,%d,%d\n",i,*p,**r);}則程序的輸出結(jié)果是A、7,5,7,3,5,7,B、7,5,7,3,3,3,C、7,5,5,3,3,3,D、7,7,5,3,3,3,標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在主函數(shù)中首先初始化整型變量i,將i的地址賦給指針變量p,再將指針變量p的地址賦給指向指針的指針變量r;調(diào)用f函數(shù),將變量r的值傳遞給變量s;由于k和m分別賦值7和5,printf("%d,%d,%d,",k,*t,**s);,即結(jié)果為7,5,5;返回主函數(shù),printf("%d,%d,%d\n",i,*p,**r);,即結(jié)果為3,3,3?因此C選項(xiàng)正確?19、有以下程序intd=1;voidfun(intP)main(){inta=3;{intd=5;fun(a);d+=p++;d+=a++;printf("%d",d);}printf("%d\n",d);}程序的輸出結(jié)果是A、96B、94C、84D、85標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:代碼考查點(diǎn)為全局變量和局部變量的同名問(wèn)題,若全局變量和某個(gè)函數(shù)中的局部變量同名,則在該函數(shù)中,此全局變量被屏蔽,在該函數(shù)內(nèi),訪問(wèn)的是局部變量,與同名的全局變量不發(fā)生任何關(guān)系。主函數(shù)執(zhí)行fun(3)時(shí)候,執(zhí)行調(diào)用函數(shù)fun,使用局部變量d=5,執(zhí)行d+=p++,相當(dāng)于d=d+(p++),得到d的值為8,輸出。函數(shù)調(diào)用結(jié)束,轉(zhuǎn)到主函數(shù),繼續(xù)執(zhí)行d+=a++,此時(shí)d為全局變量,執(zhí)行語(yǔ)句以后,d值為4。20、以下敘述中正確的是A、局部變量不能被說(shuō)明為staticB、只有全局變量才有自己的作用域,函數(shù)中的局部變量沒有作用域C、只有在函數(shù)內(nèi)部定義的變量才是局部變量D、只要是用戶定義的標(biāo)識(shí)符,都有一個(gè)有效的作用域標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查局部變量和全局變量作用域,B選項(xiàng)中局部變量也有作用域,C選項(xiàng)中,函數(shù)內(nèi)部定義的也可能是全局變量,A選項(xiàng)錯(cuò)誤,因?yàn)榭梢远x個(gè)靜態(tài)局部變量。21、若有定義typedefint*T;Ta[10];則a的定義與下面哪個(gè)語(yǔ)句等價(jià)A、int*a[10];B、int(*a)[10];C、int*a;D、inta[10];標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:typedef的主要功能是為存在的類型命名,后面的代碼中可以利用該新定義的類型名定義變量,題目中定義了整型指針類型T,而后利用T定義了整型指針數(shù)組a,含有10個(gè)元素,選項(xiàng)A中定義了整型指針數(shù)組a,選項(xiàng)B定義了一個(gè)指向一維數(shù)組的指針a,選項(xiàng)C定義指針變量,,而選項(xiàng)D為定義整型數(shù)組最常用的形式,數(shù)組a中可以存放10個(gè)數(shù)據(jù)元素。22、以下敘述中正確的是A、在語(yǔ)句charstr[]="string!";中,數(shù)組str的大小等于字符串的長(zhǎng)度B、語(yǔ)句charstr[10]="string!";和charstr[10]={"string!"};并不等價(jià)C、對(duì)于一維字符數(shù)組,不能使用字符串常量來(lái)賦初值D、對(duì)于字符串常量"string!",系統(tǒng)已自動(dòng)在最后加入了’\0’字符,表示串結(jié)尾標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:字符串中的字符依次存儲(chǔ)在內(nèi)存中一塊連續(xù)的區(qū)域內(nèi),并且把空字符’\0’自動(dòng)附加到字符串的尾部作為字符串的結(jié)束標(biāo)志。故字符個(gè)數(shù)為n的字符串在內(nèi)存中應(yīng)占(n+1)個(gè)字節(jié)。B選項(xiàng)中兩者等價(jià),C選項(xiàng)中可以使用字符串常量來(lái)給一維字符數(shù)組賦值,就像B選項(xiàng)中一樣,A選項(xiàng)中數(shù)組長(zhǎng)度比字符串長(zhǎng)度小一個(gè)字節(jié),字符串中包含隱含的結(jié)尾符。23、下面不屬于軟件測(cè)試實(shí)施步驟的是A、集成測(cè)試B、回歸測(cè)試C、確認(rèn)測(cè)試D、單元測(cè)試標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:軟件測(cè)試主要包括單元測(cè)試、集成測(cè)試、確認(rèn)測(cè)試和系統(tǒng)測(cè)試。24、下列敘述中正確的是A、循環(huán)隊(duì)列中的元素個(gè)數(shù)隨隊(duì)頭指針與隊(duì)尾指針的變化而動(dòng)態(tài)變化B、循環(huán)隊(duì)列中的元素個(gè)數(shù)隨隊(duì)頭指針的變化而動(dòng)態(tài)變化C、循環(huán)隊(duì)列中的元素個(gè)數(shù)隨隊(duì)尾指針的變化而動(dòng)態(tài)變化D、以上說(shuō)法都不對(duì)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在循環(huán)隊(duì)列中,用隊(duì)尾指針rear指向隊(duì)列中的隊(duì)尾元素,用排頭指針front指向排頭元素的前一個(gè)位置。因此,從排頭指針front指向的后一個(gè)位置直到隊(duì)尾指針rear指向的位置之間所有的元素均為隊(duì)列中的元素。所以循環(huán)隊(duì)列中的元素個(gè)數(shù)與隊(duì)頭指針和隊(duì)尾指針的變化而變化,A正確。25、層次型、網(wǎng)狀型和關(guān)系型數(shù)據(jù)庫(kù)劃分原則是A、記錄長(zhǎng)度B、文件的大小C、聯(lián)系的復(fù)雜程度D、數(shù)據(jù)之間的聯(lián)系方式標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:層次模型的基本結(jié)構(gòu)是樹形結(jié)構(gòu),網(wǎng)狀模型是一個(gè)不加任何條件限制的無(wú)向圖,關(guān)系模型采用二維表來(lái)表示,所以三種數(shù)據(jù)庫(kù)的劃分原則是數(shù)據(jù)之間的聯(lián)系方式。國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷第3套一、選擇題(本題共25題,每題1.0分,共25分。)1、下列敘述中正確的是A、)順序存儲(chǔ)結(jié)構(gòu)的存儲(chǔ)一定是連續(xù)的,鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的存儲(chǔ)空間不一定是連續(xù)的B、順序存儲(chǔ)結(jié)構(gòu)只針對(duì)線性結(jié)構(gòu),鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)只針對(duì)非線性結(jié)構(gòu)C、順序存儲(chǔ)結(jié)構(gòu)能存儲(chǔ)有序表,鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)不能存儲(chǔ)有序表D、鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)比順序存儲(chǔ)結(jié)構(gòu)節(jié)省存儲(chǔ)空間標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:順序存儲(chǔ)方式主要用于線性的數(shù)據(jù)結(jié)構(gòu),它把邏輯上相鄰的數(shù)據(jù)元素存儲(chǔ)在物理上相鄰的存儲(chǔ)單元里,結(jié)點(diǎn)之間的關(guān)系由存儲(chǔ)單元的鄰接關(guān)系來(lái)體現(xiàn)。而鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的存儲(chǔ)空間不一定是連續(xù)的。2、在長(zhǎng)度為64的有序線性表中進(jìn)行順序查找,最壞情況下需要比較的次數(shù)為A、63B、64C、6D、7標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:順序查找又稱順序搜索。順序查找一般是指在線性表中查找指定的元素,其基本方法是:從線性表的第一元素開始,依次將線性表中的元素與被查找的元素進(jìn)行比較,若相等則表示找到(即查找成功),若線性表中所有元素都與被查元素進(jìn)行了比較但都不相等,則表示線性表中沒有要找的元素(即查找失敗)。如果線性表中的第一個(gè)元素就是要查找的元素,則只需要做一次比較就查找成功;但如果要查找的元素是線性表中的最后一個(gè)元素,或者要查找元素不在線性表中,則需要與線性表中所有元素進(jìn)行比較,這是順序查找的最壞情況,比較次數(shù)為線性表的長(zhǎng)度。3、有以下程序:#includemain(){charx=2,y=2,z;z=(Y<<1)&(x>>1);prinff(“%d\n”,z);}程序的輸出結(jié)果是()。A、1B、0C、4D、8標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查位運(yùn)算<<和&。y<<1為4,x>>1為1,二者與運(yùn)算后為0,故B選項(xiàng)正確。4、設(shè)表的長(zhǎng)度為n。在下列結(jié)構(gòu)所對(duì)應(yīng)的算法中,最壞情況下時(shí)間復(fù)雜度最低的是A、堆排序B、有序鏈表查找C、希爾排序D、循環(huán)鏈表中尋找最大項(xiàng)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在循環(huán)鏈表中尋找最大項(xiàng)算法是,首先取出第一個(gè)數(shù)作為最大數(shù),然后和后面的所有項(xiàng)進(jìn)行比較查找。因此,比較次數(shù)為n-1。5、以下選項(xiàng)中,能用作用戶標(biāo)識(shí)符的是()。A、_0_B、8_8C、voidD、unsigned標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C語(yǔ)言中的標(biāo)識(shí)符由字母、下劃線、數(shù)字組成,且開頭必須是字母或下劃線。另外,關(guān)鍵字不能作為標(biāo)識(shí)符。B選項(xiàng)中以數(shù)字8開頭,所以錯(cuò)誤。C選項(xiàng)與D選項(xiàng)中用的是關(guān)鍵字void與unsigned,所以錯(cuò)誤。6、設(shè)二叉樹共有375個(gè)結(jié)點(diǎn),其中度為2的結(jié)點(diǎn)有187個(gè)。則度為1的結(jié)點(diǎn)個(gè)數(shù)是A、0B、1C、188D、不可能有這樣的二叉樹標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:二叉樹的每個(gè)結(jié)點(diǎn)至多只有二棵子樹(不存在度大于2的結(jié)點(diǎn)),二叉樹的子樹有左右之分,次序不能顛倒。二叉樹的第i層至多有2i-1個(gè)結(jié)點(diǎn);深度為k的二叉樹至多有2k-1個(gè)結(jié)點(diǎn);對(duì)任何一棵二叉樹T,如果其終端結(jié)點(diǎn)數(shù)為n0,度為2的結(jié)點(diǎn)數(shù)為n2,則n0=n2+1。本題中,度為2的結(jié)點(diǎn)有187個(gè),葉子結(jié)點(diǎn)應(yīng)該有187+1=188個(gè),度為1的結(jié)點(diǎn)個(gè)數(shù)=375-187-188=0。7、程序調(diào)試的任務(wù)是A、設(shè)計(jì)測(cè)試用例B、驗(yàn)證程序的正確性C、發(fā)現(xiàn)程序中的錯(cuò)誤D、診斷和改正程序中的錯(cuò)誤標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:程序調(diào)試的任務(wù)是診斷和改正程序中的錯(cuò)誤。它與軟件測(cè)試不同,軟件測(cè)試是盡可能多地發(fā)現(xiàn)軟件中的錯(cuò)誤。先要發(fā)現(xiàn)軟件的錯(cuò)誤,然后借助于一定的調(diào)試工具去執(zhí)行并找出錯(cuò)誤的具體位置。軟件測(cè)試貫穿整個(gè)軟件生命期,調(diào)試主要在開發(fā)階段。8、若有代數(shù)式(其中e僅代表自然對(duì)數(shù)的底數(shù),不是變量),則以下能夠正確表示該代數(shù)式的C語(yǔ)言表達(dá)式是A、sqrt(fabs(pow(n,x)+pow(x,e)))B、sqrt(abs(n^x+e^x))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ù)doubleflabs(pow(n,x)+exp(x)),求出和的絕對(duì)值,再調(diào)用開平方函數(shù)doublesqrt(fabs(pow(n,x)+exp(x))),這樣計(jì)算出的結(jié)果就是題干中算*表達(dá)式的值。9、在一個(gè)C源程序文件中所定義的全局變量,其作用域?yàn)锳、由具體定義位置和extern說(shuō)明來(lái)決定范圍B、所在程序的全部范圍C、所在函數(shù)的全部范圍D、所在文件的全部范圍標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:全局變量是在函數(shù)外部任意位置上定義的變量,它的作用域是從變量定義的位置開始,到整個(gè)源文件結(jié)束止。在同一編譯單位內(nèi)用extern說(shuō)明符擴(kuò)展全局變量的作用域(當(dāng)全局變量定義在后,引用它的函數(shù)在前時(shí),應(yīng)該在引用它的函數(shù)中用extern對(duì)此全局變量進(jìn)行說(shuō)明,以便通知編譯程序:該變量是一個(gè)己在外部定義了的全局變量,已經(jīng)分配了存儲(chǔ)單元,不需要再為它分配存儲(chǔ)單元。這時(shí)全局變量的作用域從extern說(shuō)明處起,延伸到該函數(shù)末尾)。當(dāng)一個(gè)程序由多個(gè)編譯單位構(gòu)成,并且在每個(gè)文件中均需要引用同一個(gè)全局變量,這時(shí)只在其中一個(gè)文件中定義所有的全局變量,而在其他用到這些全局變量的文件中用extem對(duì)這些變量進(jìn)行說(shuō)明。10、以下敘述中正確的是A、程序的主函數(shù)名除main外,也可以使用Main或mainB、在C程序中,模塊化主要是通過(guò)函數(shù)來(lái)實(shí)現(xiàn)的C、程序可以包含多個(gè)主函數(shù),但總是從第一個(gè)主函數(shù)處開始執(zhí)行D、書寫源程序時(shí),必須注意縮進(jìn)格式,否則程序會(huì)有編譯錯(cuò)誤標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:C語(yǔ)言中任何一個(gè)有效的程序都有且只能有一個(gè)main()函數(shù),不能寫成其他形式,一個(gè)C程序總是從主函數(shù)開始執(zhí)行,到main函數(shù)體執(zhí)行完后結(jié)束,而不論main函數(shù)在整個(gè)程序中的位置如何。而為了代碼清晰容易看懂,最好加上注釋,這是程序書寫風(fēng)格,與編譯無(wú)關(guān)。11、C語(yǔ)言源程序名的后綴是A、.CB、.exeC、.objD、.cp標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C語(yǔ)言源程序名的后綴是.C,目標(biāo)文件的擴(kuò)展文件是.obj,可執(zhí)行文件的擴(kuò)展名是.exe。12、當(dāng)變量c的值不為2、4、6時(shí),值也為“真”的表達(dá)式是A、(c==2)‖(c==4)‖(c==6)B、(c>=2&&c<=6)&&!(c%2)C、(c>=2&&c<=6)&&(c%2!=1)D、(c>=2&&c<=6)‖(c!=3)‖(c!=5)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:邏輯或運(yùn)算中,只要有一項(xiàng)為真,表達(dá)式的值就為真,故選項(xiàng)D中c的值不為2、4、6時(shí),那么表達(dá)式(c>=2&&c<=6)以及(c!=3)、(c!=5)必有一個(gè)成立,表達(dá)式的值也為真。13、有以下程序#include<stdio.h>main(){inta=2,b;b=a<<2;printf(”%d\n”,b);}A、4B、6C、8D、2標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:表達(dá)式a<<2,把a(bǔ)向左移動(dòng)2位,相當(dāng)于擴(kuò)大4倍。14、若實(shí)體A和B是一對(duì)多的聯(lián)系,實(shí)體B和C是一對(duì)一的聯(lián)系,則實(shí)體A和C的聯(lián)系是A、一對(duì)一B、一對(duì)多C、多對(duì)一D、多對(duì)多標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:A和B為一對(duì)多的聯(lián)系,則對(duì)于A中的每一個(gè)實(shí)體,B中有多個(gè)實(shí)體與之聯(lián)系,而B與C為一對(duì)一聯(lián)系,則對(duì)于B中的每一個(gè)實(shí)體,C中之多有一個(gè)實(shí)體與之聯(lián)系,則可推出對(duì)于A中的每一個(gè)實(shí)體,C中有多個(gè)實(shí)體與聯(lián)系,所以為一對(duì)多聯(lián)系。15、執(zhí)行以下程序后,test.txt文件的內(nèi)容是(若文件能正常打開)main(){FILE*fb;char*s1="Fortran",*s2="Basic".if((fb=fopen("test.txt","wb"))==NULL){printf("Can’topentest.txtfile\n");exit(1);}fwrite(s1,7,l,fb);/*把從地址s1開始的7個(gè)字符寫到fb所指文件中*/fseek(fb,0L,SEEK_SET);/*文件位置指針移到文件開頭*/fwrite(s2,5,1,fb);fclose(fb);}A、BasicanB、BasicFortranC、BasicD、FortranBasic標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題主要考查文件的基本操作。在main函數(shù)中,首先打開text.txt文件,然后通過(guò)fwrite函數(shù)把s1字符串寫到文件中,接下來(lái)通過(guò)fseek函數(shù)把文件指針移動(dòng)到文件開始,再調(diào)用fwrite函數(shù)把s2字符竄寫到文件中,s2的長(zhǎng)度小于s1的長(zhǎng)度,因此第二次寫的時(shí)候會(huì)覆蓋第一次寫的部分內(nèi)容,程序運(yùn)行后test.text中內(nèi)容為Basican。16、有以下程序段charname[20];intnum;scanf("name=%snum=%d",name,&num);當(dāng)執(zhí)行上述程序段,并從鍵盤輸入:name=Lilinum=1001后,name的值為A、name=LiliB、Lilinum=C、name=Lilinum=1001D、Lili標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在題目中以字符串的形式給字符數(shù)組賦值,所以字符數(shù)組name的值為L(zhǎng)ili。17、以下敘述中正確的是A、循環(huán)發(fā)生嵌套時(shí),最多只能兩層B、三種循環(huán)for,while,do-while可以互相嵌套C、循環(huán)嵌套時(shí),如果不進(jìn)行縮進(jìn)形式書寫代碼,則會(huì)有編譯錯(cuò)誤D、for語(yǔ)句的圓括號(hào)中的表達(dá)式不能都省略掉標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在一個(gè)循環(huán)體內(nèi)又完整包含了另一個(gè)循環(huán),稱為循環(huán)嵌套。循環(huán)的嵌套可以多層,但每一層循環(huán)在邏輯上必須是完整的。for循環(huán)、while循環(huán)、do-while循環(huán)可以互相嵌套,但每層循環(huán)在邏輯上必須完整。而在for語(yǔ)句中,for語(yǔ)句中的表達(dá)式可以部分或全部省略,但兩個(gè)“;”不可省略。18、有以下程序#includetypedefstruct{intb,p;}A;voidf(AC)/*,注意:c是結(jié)構(gòu)變量名*/{intj;c.b+=1;c.p+=2;}main(){i;Aa={1,2};f(a);printf("%d,%d\n",a.b,a.p);}程序運(yùn)行后的輸出結(jié)果是A、2,4B、1,2C、1,4D、2,3標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在C語(yǔ)言中,數(shù)據(jù)只能從實(shí)參單向傳遞給形參,稱為“按值”傳遞。也就是說(shuō),當(dāng)簡(jiǎn)單變量作為實(shí)參時(shí),用戶不可能在函數(shù)中改變對(duì)應(yīng)實(shí)參的值。所以本題中在main()函數(shù)f(A)語(yǔ)句中結(jié)構(gòu)體實(shí)參a作為值,傳遞給函數(shù)f(AC)中的形參c;這種值傳遞的方式不會(huì)對(duì)實(shí)參a產(chǎn)生任何影響,所以結(jié)構(gòu)體實(shí)參a的值不會(huì)發(fā)生變化。19、軟件設(shè)計(jì)中模塊劃分應(yīng)遵循的準(zhǔn)則是A、低內(nèi)聚低耦合B、高耦合高內(nèi)聚C、高內(nèi)聚低耦合D、以上說(shuō)法均錯(cuò)誤標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:根據(jù)軟件設(shè)計(jì)原理提出如下優(yōu)化準(zhǔn)則:①劃分模塊時(shí),盡量做到高內(nèi)聚、低耦合,保持模塊相對(duì)獨(dú)立性,并以此原則優(yōu)化初始的軟件結(jié)構(gòu)。②一個(gè)模塊的作用范圍應(yīng)在其控制范圍之內(nèi),且判定所在的模塊應(yīng)與受其影響的模塊在層次上盡量靠近。③軟件結(jié)構(gòu)的深度、寬度、扇入、扇出應(yīng)適當(dāng)。④模塊的大小要適中。C正確。20、有以下程序structS{inta;intb;};main(){structSa,*p=&a;a.a(chǎn)=99;printf("%d\n",_______);}程序要求輸出結(jié)構(gòu)體中成員a的數(shù)據(jù),以下不能填入橫線處的內(nèi)容是A、a.a(chǎn)B、*p.a(chǎn)C、p->aD、(*p).a(chǎn)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:如果p指向結(jié)構(gòu)體,那么下面三種形式都可以訪問(wèn)結(jié)構(gòu)體的成員:結(jié)構(gòu)體變量.成員名、(*p).成員名、p->成員名。21、有以下程序voidfun(intx,inty,int*c,int*d){*c=x+y;*d=x-y;}main(){inta=4,b=3,c=0,d=0;fun(a,b,&c,&d);printf("%d%d\n",c,d);}程序的輸出結(jié)果是A、43B、34C、71D、00標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:函數(shù)fun有四個(gè)形參,功能是利用參數(shù)的地址傳遞來(lái)計(jì)算前兩個(gè)參數(shù)的和與差。主函數(shù)中調(diào)用fun函數(shù)c計(jì)算4+3,d計(jì)算4.3值為1。22、若fp已定義為指向某文件的指針,且沒有讀到該文件的末尾,則C語(yǔ)言函數(shù)feof(fp)的函數(shù)返回值是A、EOFB、非0C、-1D、0標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查文件的定位,feof函數(shù)的用法是從輸入流讀取數(shù)據(jù),如果到達(dá)文件末尾(遇文件結(jié)束符),eof函數(shù)值為非零值,否則為0,所以選項(xiàng)D正確。23、有以下程序:#includefun(intx,inty){staticintm=0,i=2;i+=m+1;m=i+x+y;returnm;}main(){intj=1,m=1,k;k=fun(j,m);printf("%d,",k);k=fun(j,m);printf("%d\n",k);}執(zhí)行后的輸出結(jié)果是()。A、5,11B、5,5C、11,11D、11,5標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:聲明靜態(tài)局部變量:函數(shù)調(diào)用結(jié)束后,其占用的存儲(chǔ)單元不釋放,在下次該函數(shù)調(diào)用時(shí),該變量保留上一次函數(shù)調(diào)用結(jié)束時(shí)的值。本題子函數(shù)fun中的變量i和m均為靜態(tài)局部變量。所以第一次調(diào)用fun函數(shù),返回m的值為5,第二次再調(diào)用fun函數(shù)時(shí),i的值為3,m的值已經(jīng)是5了,所以執(zhí)行i+=m+1,i的值變?yōu)?,m=i+x+y=9+1+1=11。24、若有定義語(yǔ)句:intyear=2009,*p=&year;以下不能使變量year中的值增至2010的語(yǔ)句是A、(*p)++;B、*p++;C、++(*p);D、*p+=1;標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:由于自加運(yùn)算符++的運(yùn)算級(jí)別高于間接運(yùn)算*的運(yùn)算級(jí)別,所以B選項(xiàng)的表達(dá)式*p++不能使變量year中的值增至2010。因此B選項(xiàng)正確。25、下列敘述中正確的是()。A、算法的復(fù)雜度包括時(shí)間復(fù)雜度與空間復(fù)雜度B、算法的復(fù)雜度是指算法控制結(jié)構(gòu)的復(fù)雜程度C、算法的復(fù)雜度是指算法程序中指令的數(shù)量D、算法的復(fù)雜度是指算法所處理的數(shù)據(jù)量標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:算法復(fù)雜度是指算法在編寫成可執(zhí)行程序后,運(yùn)行時(shí)所需要的資源,資源包括時(shí)間資源和內(nèi)存資源。算法的復(fù)雜度包括時(shí)間復(fù)雜度與空間復(fù)雜度。算法的時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量;算法的空間復(fù)雜度是指算法在執(zhí)行過(guò)程中所需要的內(nèi)存空間。故本題答案為A選項(xiàng)。國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷第4套一、選擇題(本題共25題,每題1.0分,共25分。)1、以下敘述中正確的是A、標(biāo)識(shí)符的長(zhǎng)度不能任意長(zhǎng),最多只能包含16個(gè)字符B、語(yǔ)言中的關(guān)鍵字不能作變量名,但可以作為函數(shù)名C、用戶自定義的標(biāo)識(shí)符必須“見名知義’’,如果隨意定義,則會(huì)出編譯錯(cuò)誤D、標(biāo)識(shí)符總是由字母、數(shù)字和下劃線組成,且第一個(gè)字符不得為數(shù)字標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:標(biāo)識(shí)符就是C語(yǔ)言中的變量名、函數(shù)名、數(shù)組名、文件名、類型名等。C語(yǔ)言合法標(biāo)識(shí)符的命名規(guī)則是:①標(biāo)識(shí)符由字母、數(shù)寧和下劃線組成;②第一個(gè)字符必須為字母或下劃線;③大寫字母與小寫字母被認(rèn)為是兩個(gè)不同的寧符;④C語(yǔ)言規(guī)定了一個(gè)標(biāo)識(shí)符允許的寧符個(gè)數(shù),為32,超過(guò)的字符將不被識(shí)別。C語(yǔ)言的標(biāo)識(shí)符可分為以下3類:①關(guān)鍵字,不能用于為自定義標(biāo)識(shí)符命名。②預(yù)定義標(biāo)識(shí)符。③用戶標(biāo)識(shí)符。由用戶根據(jù)需要定義的標(biāo)識(shí)符稱為用戶標(biāo)識(shí)符,又稱自定義標(biāo)識(shí)符,一般用來(lái)給變量、函數(shù)、數(shù)組等命名,一般做到見名知義,但是沒有特殊規(guī)定。2、以下選項(xiàng)中合法的常量是A、2.7eB、999C、123E0.2D、0Xab標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:0xab是十六進(jìn)制表示的常量。3、C語(yǔ)言源程序名的后綴是()。A、.CB、.exeC、.objD、.cp標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C語(yǔ)言源程序名的后綴是.C,目標(biāo)文件的擴(kuò)展名是.obj,可執(zhí)行文件的擴(kuò)展名是.exe。4、有以下程序#includemain(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(Y){case0:a++;break;case1:b++;break;}case2:a++;b++;break;}printf("a=%d,b=%d\n",a,b);}程序運(yùn)行后的輸出結(jié)果是A、a=l,b=1B、a=l,b=0C、a=2,b=lD、a=2,b=2標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查的是用switch語(yǔ)句實(shí)現(xiàn)多分支選擇結(jié)構(gòu),首先進(jìn)入第一個(gè)switch(x)判斷,進(jìn)入case1中進(jìn)行嵌套判斷,如果switch(y)也成立,a自加1,遇到break,退出嵌套,接著執(zhí)行case2,a自加為2,b自加為1,遇到break,結(jié)束循環(huán),此時(shí)a=2,b=1。5、要求通過(guò)while循環(huán)不斷讀入字符,當(dāng)讀人字母N時(shí)結(jié)束循環(huán)。若變量已正確定義,以下正確的程序段是()。A、while(ch:getchar()=’N’)printf(’’%e’’,ch);B、while((eh=getchar())!=’N’)printf(’’%e’’,eh);C、while(ch=getchar()==’N’)printf(’’%c’’,ch);D、while((ch=getchar())==’N’)printf(’’%e’’,eh);標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在C語(yǔ)言中,等于號(hào)用“==”表示,一個(gè)“=”表示賦值,當(dāng)讀入字母N時(shí),選項(xiàng)A中,while后的條件值為“N”,是非零數(shù),條件成立,循環(huán)繼續(xù)執(zhí)行,所以A選項(xiàng)錯(cuò)誤。C、D選項(xiàng)的含義都是如果輸入的字符為“N”,則打印輸出,所以正好和題意相反。6、若有定義:floatx=1.5;inta=1,b=3,c=2;,則正確的switch語(yǔ)句是()。A、switch(a+b){ease1:printf("*\n");ease2+1:printf("**\n");}B、switch((int)x);{ease1:printf("*\n");case2:printf("**\n");}C、switch(x){case1.0:printf("*\n");ease2.0:printf("**\n");}D、switch(a+b){case1:printf("*\n");casec:printf("**\n");}標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:B選項(xiàng)中switch((int)x);語(yǔ)句中不應(yīng)該有最后的分號(hào)。switch(expr1)中的expr1不能用浮點(diǎn)類型或long類型,也不能為一個(gè)字符串,所以C選項(xiàng)錯(cuò)誤。case后面必須為常量表達(dá)式,所以D選項(xiàng)錯(cuò)誤。7、在關(guān)系數(shù)據(jù)庫(kù)中,用來(lái)表示實(shí)體間聯(lián)系的是A、屬性B、二維表C、網(wǎng)狀結(jié)構(gòu)D、樹狀結(jié)構(gòu)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在關(guān)系數(shù)據(jù)庫(kù)中,實(shí)體間的聯(lián)系由個(gè)二維表來(lái)表示。8、若各選項(xiàng)中所用變量已正確定義,函數(shù)fun中通過(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)答案:A知識(shí)點(diǎn)解析:C語(yǔ)言規(guī)定,函數(shù)必須先定義,后調(diào)用(函數(shù)的返回值類型為int或char時(shí)除外)。在選項(xiàng)A中,調(diào)用的子函數(shù)在調(diào)用后面定義,所以不正確。在選項(xiàng)B、C中,被調(diào)用函數(shù)在主函數(shù)之前定義,再在主函數(shù)中調(diào)用,所以是正確的;在選項(xiàng)D中,在主函數(shù)中先對(duì)子函數(shù)floatfun(inti,inti)進(jìn)行了聲明,然后進(jìn)行調(diào)用。9、負(fù)責(zé)數(shù)據(jù)庫(kù)中查詢操作的數(shù)據(jù)庫(kù)語(yǔ)言是A、數(shù)據(jù)定義語(yǔ)言B、數(shù)據(jù)管理語(yǔ)言C、數(shù)據(jù)操縱語(yǔ)言D、數(shù)據(jù)控制語(yǔ)言標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:負(fù)責(zé)數(shù)據(jù)庫(kù)中查詢操作的數(shù)據(jù)庫(kù)語(yǔ)言是數(shù)據(jù)操縱語(yǔ)言。10、以下敘述中正確的是A、continue語(yǔ)句的作用是:使程序的執(zhí)行流程跳出包含它的所有循環(huán)B、break語(yǔ)句只能用在循環(huán)體內(nèi)和switch語(yǔ)句體內(nèi)C、在循環(huán)體內(nèi)使用break語(yǔ)句和continue語(yǔ)句的作用相同D、break語(yǔ)句只能用于switch語(yǔ)句體中標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:只能在循環(huán)體內(nèi)和switch語(yǔ)句體內(nèi)使用break語(yǔ)句。continue語(yǔ)句的作用是結(jié)束本次循環(huán),即跳過(guò)本次循環(huán)體中continue語(yǔ)句后面的語(yǔ)句,立刻進(jìn)行下一次的循環(huán)條件判斷,可以理解為僅結(jié)束本次循環(huán)。而break語(yǔ)句可以使程序流程跳出switch語(yǔ)句體,也可用break語(yǔ)句在循環(huán)結(jié)構(gòu)中終止循環(huán)體。11、有以下程序intadd(inta,intb){return(a+b);)main(){intk,(*f)(),a=5,b=10;f=add;}則以下函數(shù)調(diào)用語(yǔ)句錯(cuò)誤的是A、k=add(a,b);B、k=(*f)Ca,b);C、k=*f(a,b);D、k=fla,b);標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在語(yǔ)句”k=*f(a,b)”中,由于”()”的優(yōu)先級(jí)高于”*”,所以”’f(a,b);”表示其返回類型為指針的帶有兩個(gè)整型參數(shù)的函數(shù),而不是整型數(shù)值,因此選項(xiàng)C為錯(cuò)誤的調(diào)用形式。12、以下選項(xiàng)中可用作C程序合法實(shí)數(shù)的是A、3.0e0.2B、1e0C、E9D、9.12E標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:A選項(xiàng)中E后面的指數(shù)必須為整數(shù)。C語(yǔ)言規(guī)定,E之前必須要有數(shù)字,所以C選項(xiàng)錯(cuò)誤。E后面必須要有數(shù)字,且必須為整數(shù),所以D選項(xiàng)錯(cuò)誤。13、下列敘述中正確的是()。A、當(dāng)對(duì)文件的讀(寫)操作完成之后,必須將它關(guān)閉,否則可能導(dǎo)致數(shù)據(jù)丟失B、打開一個(gè)已存在的文件并進(jìn)行寫操作后,原有文件中的全部數(shù)據(jù)必定被覆蓋C、在一個(gè)程序中對(duì)文件進(jìn)行寫操作后,必須先關(guān)閉該文件然后再打開才能讀到第一個(gè)數(shù)據(jù)D、C語(yǔ)言中的文件是流式文件,因此只能順序存取數(shù)據(jù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:B選項(xiàng)中打開一個(gè)已存在的文件并進(jìn)行寫操作后,原有文件中的全部數(shù)據(jù)不一定被覆蓋,也可以對(duì)源文件進(jìn)行追加操作等。C選項(xiàng)中在一個(gè)程序中對(duì)文件進(jìn)行寫操作后,不是先關(guān)閉該文件然后再打開才能讀到第—個(gè)數(shù)據(jù),用fseek()函數(shù)進(jìn)行重新定位即可。D選項(xiàng)中,C語(yǔ)言中的文件可以進(jìn)行隨機(jī)讀寫。14、在黑盒測(cè)試方法中,設(shè)計(jì)測(cè)試用例的根據(jù)是A、數(shù)據(jù)結(jié)構(gòu)B、程序調(diào)用規(guī)則C、模塊間的邏輯關(guān)系D、軟件要完成的功能標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:黑盒測(cè)試也稱功能測(cè)試,它是通過(guò)測(cè)試來(lái)檢測(cè)每個(gè)功能是否都能正常使用。在測(cè)試中,把程序看作一個(gè)不能打開的黑盒子,在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下,在程序接口進(jìn)行測(cè)試,它只檢查程序功能是否按照需求規(guī)格說(shuō)明書的規(guī)定正常使用,程序是否能適當(dāng)?shù)亟邮蛰斎霐?shù)據(jù)而產(chǎn)生正確的輸出信息。黑盒測(cè)試著眼于程序外部結(jié)構(gòu),不考慮內(nèi)部邏輯結(jié)構(gòu),主要針對(duì)軟件界面和軟件功能進(jìn)行測(cè)試。15、當(dāng)變量c的值不為2、4、6時(shí),值也為“真”的表達(dá)式是A、(c==2)||(c==4)||(c==6)B、(c>=2&&c<=6)&&!(c%2)C、(c>=2&&c<=6)&&(c%21=1)D、(c>=2&&c<=6)||(c!=3)||(c!=5)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:邏輯或運(yùn)算中,只要有一項(xiàng)為真,表達(dá)式的值就為真,故選項(xiàng)D)中c的值不為2、4、6時(shí),那么表達(dá)式(c>=2&&c<=6)以及(c!=3)、(c!=5)必有一個(gè)成立,表達(dá)式的值也為真。16、有下列程序:inta=4;intf(intn){intt=0;staticinta=5;if(n%2){inta=6;t+=a++;}else{inta=7;t+=a++;}returnt+a++;}main(){ints=a,i=0;for(;i<2;i++)s+=f(i);printf("%d\n",s);}程序運(yùn)行后的輸出結(jié)果是A、28B、24C、32D、36標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:程序中定義了全局整型變量a=4。在intf(intn)函數(shù)中定義了局部靜態(tài)整型變量并進(jìn)行了初始化即staticinta=5。在intf(intn)函數(shù)中對(duì)n是否是偶數(shù)進(jìn)行判斷,如果n是奇數(shù),則函數(shù)的返回值為11,局部靜態(tài)整型變量a=6;如果n是偶數(shù),則函數(shù)的返回值為12,局部靜態(tài)整型變量a=6。所以在main()函數(shù)中循環(huán)首先執(zhí)行s+=f(0)語(yǔ)句,而f(0)返回值12,所以第一次循環(huán)結(jié)束s的值等于4+12=16:第二次開始執(zhí)行f(1)時(shí),在f(1)中執(zhí)行if(n%2){inta=6;t+=a++;}和returnt+a++;這兩條語(yǔ)句,這時(shí)t=6,a=6(靜態(tài)局部變量第一次循環(huán)后其值加1值不釋放,執(zhí)行第二次循環(huán)量,其值仍有效),所以f(1)的返回值等于12。再在主函數(shù)中執(zhí)行s+=f(1)語(yǔ)句,即16+12=28。17、以下選項(xiàng)中函數(shù)形參不是指針的是A、fun(int&p){…}B、fun(inta[10]){…}C、fun(int*a){…}D、fun(intp[]){…}標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C語(yǔ)言中形參數(shù)組是指針變量,其數(shù)組中元素的個(gè)數(shù)由傳遞的實(shí)參數(shù)組決定,因此可以在定義的時(shí)候,不給出元素個(gè)數(shù)的說(shuō)明,因此選項(xiàng)B)和D)形參均為指針變量,選項(xiàng)A)的定義在C語(yǔ)言中不存在的。18、若有以下程序typedefstructstu{char*name,gender;intscore;}STU;voidf(char*p){p=(char*)malloc(10);strcpy(p,"Qian");}main(){STUa={NULL,’m’,290},b;a.name=(char*)malloc(10);strcpy(a.name,"Zhao");b=a;f(b.name);b.gender=’f:b.score=350;printf("%s,%c,%(1,",a.name,a.gender,a.score);printf("%s,%c,%d\n",b.name,b.gender,b.score);}則程序的輸出結(jié)果是A、Zhao,m,290,Qian,f,350B、Qian,C350,Qian,f,350C、Qian,m,290,Qian,f,350D、Zhao,m,290,Zhao,f,350標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:函數(shù)f(char*p)的主要功能申請(qǐng)字符串的存儲(chǔ)空間,然后存入字符串"Qian",但當(dāng)程序調(diào)用結(jié)束以后,形參指針變量p撤銷,存儲(chǔ)的字符串地址丟失,而不能更改實(shí)參指針的值。主函數(shù)中結(jié)構(gòu)體變量定義同時(shí)賦初值,初始情況其name指針成員存儲(chǔ)空,而后語(yǔ)句為其分配存儲(chǔ)空間,存入字符串"Zhao"。執(zhí)行b=a;語(yǔ)句后,b的數(shù)據(jù)和a的數(shù)據(jù)相同,調(diào)用函數(shù)f以后,b的name成員的值沒變。19、程序中己構(gòu)成如下圖所示的不帶頭結(jié)點(diǎn)的單向鏈表結(jié)構(gòu),指針變量s、P、q均已正確定義,并用于指向鏈表結(jié)點(diǎn),指針變量s總是作為頭指針指向鏈表的第一個(gè)結(jié)點(diǎn)。若有以下程序段:q=s;s=s->next;p=s;while(p->next)p=p->next;p->next=q;q->next=NULL;該程序段實(shí)現(xiàn)的功能是A、尾結(jié)點(diǎn)成為首結(jié)點(diǎn)B、首結(jié)點(diǎn)成為尾結(jié)點(diǎn)C、刪除首結(jié)點(diǎn)D、刪除尾結(jié)點(diǎn)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:分析程序可知,程序段首先讓q指向鏈表的首結(jié)點(diǎn),s指向鏈表的第二結(jié)點(diǎn),p此時(shí)指向鏈表的第二個(gè)結(jié)點(diǎn)。然后在while循環(huán)中,當(dāng)p的后繼結(jié)點(diǎn)非空時(shí),讓p指向鏈表的最后一個(gè)結(jié)點(diǎn),退出循環(huán)。然后讓尾結(jié)點(diǎn)指向首結(jié)點(diǎn),并使首結(jié)點(diǎn)的后繼結(jié)點(diǎn)為NULL。所以最終實(shí)現(xiàn)鏈表的首結(jié)點(diǎn)成為尾結(jié)點(diǎn)。20、若有以下程序typedefstructstu{charname[10],gender;intscore;}STU;voidf(STUa,STUb){b=a;printf(”%s,%c,%d,",b.name,b.gender,b.score);}main(){STUa={"Zhao",’m’,290},b={"Qian",’f’,350};f(a,b);printf("%s,%c,%d\n",b.name,b.gender,score);}則程序的輸出結(jié)果是A、Zhao,m,290,Zhao,m,290B、Zhao,m,290,Qian,f,350C、Qian,f,350,Qian,f,350D、Zhao,m,290,Zhao,f,350標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:函數(shù)f(STua,STUb)的主要功能是為把結(jié)構(gòu)體變量a的值存放到b中,然后輸出b中各個(gè)成員的值。土函數(shù)中調(diào)用函數(shù)f(a,b),輸出賦值以后b的數(shù)據(jù),實(shí)際為a{"Zhao",’m’,290}的數(shù)據(jù),函數(shù)調(diào)用結(jié)束,形參a和b撤銷,流程到主函數(shù)輸出b{"Qian",’f’,350}的數(shù)據(jù)。21、下列關(guān)于C語(yǔ)言文件的敘述中正確的是A、文件由結(jié)構(gòu)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件B、文件由一系列數(shù)據(jù)依次排列組成,只能構(gòu)成二進(jìn)制文件C、文件由數(shù)據(jù)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件D、文件由字符序列組成,其類型只能是文本文件標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在C語(yǔ)言中,對(duì)輸入、輸出的數(shù)據(jù)都按“數(shù)據(jù)流”的形式進(jìn)行處理。數(shù)據(jù)可以按文本形式或二進(jìn)制形式存放在介質(zhì)上,因此文件可以按數(shù)據(jù)的存放形式分為文本文件和二進(jìn)制文件。22、以下敘述中正確的是A、只能在循環(huán)體內(nèi)和switch語(yǔ)句體內(nèi)使用break語(yǔ)句B、當(dāng)break出現(xiàn)在循環(huán)體中的switch語(yǔ)句體內(nèi)時(shí),其作用是跳出該switch語(yǔ)句體,并中止循環(huán)體的執(zhí)行C、continue語(yǔ)句的作用是:在執(zhí)行完本次循環(huán)體中剩余語(yǔ)句后,中止循環(huán)D、在while語(yǔ)句和do-while語(yǔ)句中無(wú)法使用continue語(yǔ)句標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:break語(yǔ)句通常用在循環(huán)語(yǔ)句和開關(guān)語(yǔ)句中。當(dāng)break用于開關(guān)語(yǔ)句switch中時(shí),可使程序跳出switch而執(zhí)行switch以后的語(yǔ)句;當(dāng)break語(yǔ)句用于do-while、for、while循環(huán)語(yǔ)句中時(shí),可使程序終止循環(huán)而執(zhí)行循環(huán)后面的語(yǔ)句,即滿足條件時(shí)便跳出循環(huán)。continue語(yǔ)句的作用是跳過(guò)循環(huán)體中剩余的語(yǔ)句而強(qiáng)行執(zhí)行下一次循環(huán)。B、C和D三個(gè)選項(xiàng)中均有錯(cuò)誤。因此A選項(xiàng)正確。23、定義無(wú)符號(hào)整數(shù)類為UInt,下面可以作為類UInt實(shí)例化值的是()。A、-369B、369C、0.369D、整數(shù)集合{1,2,3,4,5}標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:只有B)選項(xiàng)369可以用無(wú)符號(hào)整數(shù)來(lái)表示和存儲(chǔ)。A)選項(xiàng)-369有負(fù)號(hào),選項(xiàng)C)0.369是小數(shù)都不能用無(wú)符號(hào)整數(shù)類存儲(chǔ)。選項(xiàng)D)是一個(gè)整數(shù)集合得用數(shù)組來(lái)存儲(chǔ)。24、程序流程圖中帶有箭頭的線段表示的是()。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。25、下列結(jié)構(gòu)體類型說(shuō)明和變量定義中正確的是()。A、structREC;{intn;charc;};RECt1,t2;B、typedefstruct{intn;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”是結(jié)構(gòu)體變量,不能當(dāng)作結(jié)構(gòu)體類型來(lái)使用。故本題答案為B選項(xiàng)。國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷第5套一、選擇題(本題共25題,每題1.0分,共25分。)1、下列選項(xiàng)中不屬于結(jié)構(gòu)化程序設(shè)計(jì)原則的是()。A、可封裝B、自頂向下C、模塊化D、逐步求精標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:結(jié)構(gòu)化程序設(shè)計(jì)的原則包括:自頂向下、逐步求精、模塊化、限制使用GOTO語(yǔ)句,所以選擇A選項(xiàng)。2、定義無(wú)符號(hào)整數(shù)類為UInt,下面可以作為類UInt實(shí)例化值的是A、-369B、369C、0.369D、整數(shù)集合{1,2,3,4,5}標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:UInt表示的是無(wú)符號(hào)整數(shù)類,所以它的每個(gè)實(shí)例都是一個(gè)無(wú)符號(hào)整數(shù),所以排除選項(xiàng)A和選項(xiàng)C,選項(xiàng)D是整數(shù)集合,所以也排除。3、設(shè)順序表的長(zhǎng)度為16,對(duì)該表進(jìn)行簡(jiǎn)單插入排序。在最壞情況下需要的比較次數(shù)為A、15B、30C、60D、120標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:插入排序的基本思想是:每步將一個(gè)待排序的紀(jì)錄,按其關(guān)鍵碼值的大小插入前面已經(jīng)排序的文件中適當(dāng)位置上,直到全部插入完為止。最壞情況計(jì)算方法(n*(n—1))/2=16*15/2=120。4、已知大寫字母A的ASCⅡ碼值是65,小寫字母a的ASCII碼值是97。下列不能將變量c中的大寫字母轉(zhuǎn)換為對(duì)應(yīng)小寫字母的語(yǔ)句是()。A、c=(-A’+c)%26一’a’B、c=c+32C、C=C—’A’+‘a(chǎn)’D、c=(c一’A’)%26+’a’標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:根據(jù)題意可知,小寫字母比與之對(duì)應(yīng)的大寫字母的ASCⅡ碼大32。A選項(xiàng)中字符A加上c表示的大寫字符再對(duì)字母?jìng)€(gè)數(shù)26取余,本身這個(gè)表達(dá)式?jīng)]有任何含義,所以選擇A選項(xiàng)。5、軟件生命周期是指A、軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過(guò)程B、軟件從需求分析、設(shè)計(jì)、實(shí)現(xiàn)到測(cè)試完成的過(guò)程C、軟件的開發(fā)過(guò)程D、軟件的運(yùn)行維護(hù)過(guò)程標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:軟件生命周期是指軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用、維護(hù)到停止使用、退役的過(guò)程。6、下列敘述中錯(cuò)誤的是()。A、C程序可以由一個(gè)或多個(gè)函數(shù)組成B、C程序可以由多個(gè)程序文件組成C、一個(gè)C語(yǔ)言程序只能實(shí)現(xiàn)一種算法D、一個(gè)C函數(shù)可以單獨(dú)作為一個(gè)C程序文件存在
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年高、低能校正磁鐵合作協(xié)議書
- 部編初中數(shù)學(xué)八年級(jí)下學(xué)期開學(xué)考試卷
- 2025年交配電設(shè)備設(shè)施委托管理協(xié)議(2篇)
- 2025年產(chǎn)權(quán)房屋買賣合同經(jīng)典版(三篇)
- 2025年產(chǎn)品商標(biāo)設(shè)計(jì)委托合同模板(三篇)
- 2025年產(chǎn)品采購(gòu)協(xié)作服務(wù)協(xié)議(2篇)
- 2025年亮化工程施工承包合同經(jīng)典版(三篇)
- 2025年中班幼兒園教師個(gè)人工作心得體會(huì)模版(4篇)
- 2025年產(chǎn)品試用協(xié)議范例(2篇)
- 2025年個(gè)人房屋裝修委托書合同(2篇)
- 招聘專員轉(zhuǎn)正述職報(bào)告
- “一帶一路”背景下的西安市文化旅游外宣翻譯研究-基于生態(tài)翻譯學(xué)理論
- 2024年江蘇省昆山市六校中考聯(lián)考(一模)化學(xué)試題
- 大學(xué)生文學(xué)常識(shí)知識(shí)競(jìng)賽考試題庫(kù)500題(含答案)
- 國(guó)家電網(wǎng)智能化規(guī)劃總報(bào)告
- 邢臺(tái)市橋西區(qū)2024年事業(yè)單位考試《公共基礎(chǔ)知識(shí)》全真模擬試題含解析
- 太原頭腦外賣營(yíng)銷方案
- 2023年寧夏中考物理試題(附答案)
- JBT 7041.1-2023 液壓泵 第1部分:葉片泵 (正式版)
- 2024年浙江首考英語(yǔ)聽力原文解惑課件
- 國(guó)家基層糖尿病防治管理指南(2022)更新要點(diǎn)解讀-1074177503
評(píng)論
0/150
提交評(píng)論