




版權(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ī)試模擬試卷14(共9套)(共304題)國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷第1套一、選擇題(本題共40題,每題1.0分,共40分。)1、下列敘述中錯(cuò)誤的是()。A、用戶所定義的標(biāo)識(shí)符允許使用關(guān)鍵字B、用戶所定義的標(biāo)識(shí)符應(yīng)盡量做到“見(jiàn)名知意”C、用戶所定義的標(biāo)識(shí)符必須以字母或下劃線開(kāi)頭D、用戶定義的標(biāo)識(shí)符中,大、小寫字母代表不同標(biāo)識(shí)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在C語(yǔ)言中,合法標(biāo)識(shí)符的命名規(guī)則是:標(biāo)識(shí)符可以由字母、數(shù)字和下劃線組成,并且第一個(gè)字符必須為字母或下劃線,凡是要求標(biāo)識(shí)符的地方都必須按此規(guī)則命名。在C語(yǔ)言的標(biāo)識(shí)符中,大寫字母和小寫字母被認(rèn)為是兩個(gè)不同的字符。在選擇標(biāo)識(shí)符時(shí),應(yīng)注意做到“見(jiàn)名知義”,即選擇具有一定含義的英文單詞或漢語(yǔ)拼音作為標(biāo)識(shí)符,以增加程序的可讀性。2、下列關(guān)于棧的敘述正確的是()。A、棧按“先進(jìn)先出”組織數(shù)據(jù)B、棧按“先進(jìn)后出”組織數(shù)據(jù)C、只能在棧底插人數(shù)據(jù)D、不能刪除數(shù)據(jù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:棧是按”先進(jìn)后出”的原則組織數(shù)據(jù)的,數(shù)據(jù)的插入和刪除都在棧頂進(jìn)行操作。3、以下敘述中正確的是()。A、數(shù)組說(shuō)明符的一對(duì)方括號(hào)中只能使用整型常量,而不能使用表達(dá)式B、一條語(yǔ)句只能定義一個(gè)數(shù)組C、每個(gè)數(shù)組包含一組具有同一類型的變量,這些變量在內(nèi)存中占有連續(xù)的存儲(chǔ)單元D、在引用數(shù)組元素時(shí),下標(biāo)表達(dá)式可以使用浮點(diǎn)數(shù)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:同類元素的集合稱為數(shù)組,數(shù)組元素在內(nèi)存中占據(jù)連續(xù)的存儲(chǔ)空間,答案C正確。方括號(hào)中可以為整型變量或者常量表達(dá)式,選項(xiàng)A錯(cuò)。在使用逗號(hào)運(yùn)算苻的情況下,一條語(yǔ)句可以定義多個(gè)數(shù)組,選項(xiàng)B錯(cuò)。數(shù)組元素在數(shù)組中的下標(biāo)為整型常量或者變量構(gòu)成的整型表達(dá)式,不能為浮點(diǎn)數(shù),選項(xiàng)D錯(cuò)。4、下列說(shuō)法不正確的是()。A、int*fun();----fun是一個(gè)返回int指針的函數(shù)B、int(*fun)();---fun是一個(gè)返回int指針的函數(shù)C、int(*array[5])();----array是一個(gè)有5個(gè)元素的數(shù)組,每一個(gè)元素都是一個(gè)函數(shù)指針,指向一個(gè)返回int的函數(shù)D、int(*fun(int))(int);----fun是帶有一個(gè)int參數(shù)的函數(shù),返回值是一個(gè)函數(shù)指針,這個(gè)指針指向帶有一個(gè)int參數(shù)并返回int的函數(shù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:該函數(shù)中fun是一個(gè)函數(shù)指針。指向一個(gè)返回int的函數(shù)。5、若有定義intx,y;并已正確給變量賦值,則以下選項(xiàng)中與表達(dá)式(x-y)?(x++):(y++)中的條件表達(dá)式(x-y)等價(jià)的是()。A、(x-y<0||x-y>0)B、(x-y<0)C、(x-y>0)D、(x-y==0)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:考查條件表達(dá)式。條件表達(dá)式的形式為:表達(dá)式1?表達(dá)式2:表達(dá)式3,計(jì)算"表達(dá)式1"的值,若為"真",取"表達(dá)式2"的值作為整個(gè)條件表達(dá)式的值;若為"假",取"表達(dá)式3"的值作為整個(gè)條件表達(dá)式的值。本程序中要選能判定(x-y)為"真"的語(yǔ)句,即x!=y,或者(x-y<0||x-y>0),選A6、已知:intc[3][4];,則對(duì)數(shù)組元素引用正確的是()。A、c[1][4]B、c[1.5][0]C、c[1+0][0]D、以上表達(dá)都錯(cuò)誤標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是數(shù)組元素的引用。對(duì)于已定義的數(shù)組a[M][N],數(shù)組元素的正確引用必須滿足行下標(biāo)小于M,列下標(biāo)小于N,且為正整數(shù)。因此,選項(xiàng)A)中列下標(biāo)溢出;選項(xiàng)B)中行下標(biāo)出現(xiàn)小數(shù);選項(xiàng)C)滿足要求。7、有以下程序: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、Abcddfefdbd標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:函數(shù)ss(char*s,chart)的功能是將指針s所指向的字符串中存在的字符“t”均改寫成大寫字母;所以main函數(shù)中引用函數(shù)ss后使得數(shù)組str1中的小寫字母“d”均變成了大寫字母“D”,然后輸出數(shù)組str1,結(jié)果為:abcDDfefDbD。8、在C語(yǔ)言中,只有在使用時(shí)才占用內(nèi)存單元的變量,其存儲(chǔ)類型是()。A、auto和registerB、extern和registerC、auto和staticD、static和register標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C語(yǔ)言中,動(dòng)態(tài)存儲(chǔ)區(qū)域中存放的變量在使用時(shí)才分配內(nèi)存空間。auto變量的存儲(chǔ)單元是分配在內(nèi)存的動(dòng)態(tài)存儲(chǔ)區(qū)中,每當(dāng)進(jìn)入函數(shù)體時(shí)自動(dòng)分配存儲(chǔ)單元。register變量也是自動(dòng)類變量。static說(shuō)明的變量為靜態(tài)變量,靜態(tài)變量在內(nèi)存的靜態(tài)存儲(chǔ)中占據(jù)著永久的存儲(chǔ)單元,直至程序運(yùn)行結(jié)束。extern說(shuō)明的變量為外部變量,屬于全局變量,全局變量在整個(gè)程序運(yùn)行期間都占用內(nèi)存空間。9、有以下程序#includevoidmain(){chars[][={"01aXy");inti,n=0;for(i=0;s[i]!=0;i++)if(s[i]<=’a’&&s[i]>=’z’)n++;printf("%d、n",n);}程序運(yùn)行后的輸出結(jié)果是()。A、0B、2C、3D、5標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:這段程序的功能求出字符串s中字符的ASCII碼小于小寫字符a并且大于小寫字符z的字符的個(gè)數(shù)。因?yàn)樾懽址鹺的ASCII碼大于小寫字符a的ASCII碼,所以滿足a的ASCII碼并且大于z的的ASCII碼的字符是不存在的,所以輸出0。10、以下關(guān)于宏的敘述中正確的是()。A、宏替換沒(méi)有數(shù)據(jù)類型限制B、宏定義必須位于源程序中所有語(yǔ)句之前C、宏名必須用大寫字母表示D、宏調(diào)用比函數(shù)調(diào)用耗費(fèi)時(shí)間標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:宏定義寫在函數(shù)的花括號(hào)外邊,作用域?yàn)槠浜蟮某绦?,通常在文件的最開(kāi)頭,所以B選項(xiàng)中宏定義必須位于源程序中所有語(yǔ)句之前是錯(cuò)誤的。宏名一般用大寫,但不是必須用大寫,所以C選項(xiàng)錯(cuò)誤。宏展開(kāi)不占運(yùn)行時(shí)間,只占編譯時(shí)間,函數(shù)調(diào)用占運(yùn)行時(shí)間(分配內(nèi)存、保留現(xiàn)場(chǎng)、值傳遞、返回值),所以D選項(xiàng)錯(cuò)誤。11、算法的空間復(fù)雜度是指()。A、算法在執(zhí)行過(guò)程中所需要的計(jì)算機(jī)存儲(chǔ)空間B、算法所處理的數(shù)據(jù)量C、算法程序中的語(yǔ)句或指令條數(shù)D、算法在執(zhí)行過(guò)程中所需要的臨時(shí)工作單元數(shù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:算法的空間復(fù)雜度是指算法在執(zhí)行過(guò)程中所需要的內(nèi)存空間。所以選擇A。12、下列敘述中正確的是()。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)。13、有以下程序:#include<stdio.h>main(){unsignedchara=8,c;c=a>>3:printf("%d\n",c);}程序運(yùn)行后的輸出結(jié)果是()。A、32B、16C、1D、0標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:字符常量與其ASCII碼值一一對(duì)應(yīng),在計(jì)算的時(shí)候,可以使用該字符的ASCII碼參與運(yùn)算,輸出時(shí)會(huì)根據(jù)格式控制符輸出對(duì)應(yīng)的字符或者ASCII碼。右移運(yùn)算符“>>”的運(yùn)算規(guī)則是把左邊運(yùn)算數(shù)的各二進(jìn)制位全部右移n位,n取決于“>>”右邊的數(shù)值。字符a的ASCII碼值為8,對(duì)應(yīng)二進(jìn)制為1000,所以a>>3=1,輸出的字符c的ASCII碼值為1,答案選C。14、軟件測(cè)試的目的是()。A、評(píng)估軟件可靠性B、發(fā)現(xiàn)并改正程序中的錯(cuò)誤C、改正程序中的錯(cuò)誤D、發(fā)現(xiàn)程序中的錯(cuò)誤標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:軟件測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過(guò)程,測(cè)試要以查找錯(cuò)誤為中心,而不是為了演示軟件的正確功能。不是為了評(píng)估軟件或改正錯(cuò)誤。15、下列關(guān)于邏輯運(yùn)算符兩側(cè)運(yùn)算對(duì)象的敘述中正確的是()。A、只能是整數(shù)0或1B、只能是整數(shù)0或非0整數(shù)C、可以是結(jié)構(gòu)體類型的數(shù)據(jù)D、可以是任意合法的表達(dá)式標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:邏輯運(yùn)算符兩側(cè)的運(yùn)算對(duì)象可以是任意合法的表達(dá)式。邏輯表達(dá)式的運(yùn)算結(jié)果或者為1(“真”),或者為0(“假”)。16、以下敘述中正確的是()。A、實(shí)用的C語(yǔ)言源程序總是由一個(gè)或多個(gè)函數(shù)組成B、用戶自己定義的函數(shù)只能調(diào)用庫(kù)函數(shù)C、不同函數(shù)的形式參數(shù)不能使用相同名稱的標(biāo)識(shí)符D、在C語(yǔ)言的函數(shù)內(nèi)部,可以定義局部嵌套函數(shù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:一個(gè)C程序可以有一個(gè)或多個(gè)程序文件,所以也可以有一個(gè)或多個(gè)函數(shù),選項(xiàng)A)正確;除了main函數(shù)不能被其他函數(shù)調(diào)用之外,用戶自定義函數(shù)可以調(diào)用其他任意函數(shù),選項(xiàng)B)錯(cuò)誤;函數(shù)是一個(gè)獨(dú)立的模塊,不同函數(shù)之間的定義相互沒(méi)有影響,所以標(biāo)識(shí)符可以相同,選項(xiàng)C)錯(cuò)誤;函數(shù)體內(nèi)部只可以調(diào)用但是不可以定義其他函數(shù),選項(xiàng)D)錯(cuò)誤;答案選A)。17、若有定義:inta,b,c;,想通過(guò)語(yǔ)句:scanf("%d,%d%d",&a,&b,&A、;把1、2、3分別輸入給變量a、b、c,則正確的鍵盤輸入是()。B、1,2,3<回車>C、1,2<tab>3<回車>D、1<回車><tab>2<tab>3E、D標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:題意中,輸入語(yǔ)句scanf()的格式控制字符串中,第一個(gè)%d與第二個(gè)%d之間有一個(gè)逗號(hào),第二個(gè)%d與第三個(gè)%d之間有一個(gè)空格,所以輸入的第一個(gè)整數(shù)和第二個(gè)整數(shù)之間也必須要有一個(gè)逗號(hào),選項(xiàng)C、D錯(cuò)誤;對(duì)于第二個(gè)整數(shù)和第三個(gè)整數(shù)之間的空格,可以使用tab、回車、空格符,選項(xiàng)A錯(cuò)誤;本題答案為B。18、有以下程序#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)。19、有以下程序:#include<stdio.h>intfun(intx[],intn){staticintsum=0.i;for(i=0;i<11;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)正確。20、下列定義變量的語(yǔ)句中錯(cuò)誤的是()。A、int_int;B、doubleint_;C、charFor;D、floatUS$;標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C語(yǔ)言規(guī)定,變量的標(biāo)識(shí)符只能由字母、數(shù)字和下劃線3種字符組成,且首字符必須為字母或下劃線。在C語(yǔ)言中大寫字母和小寫字母被認(rèn)為是兩個(gè)不同的字符。選項(xiàng)A定義的變量標(biāo)識(shí)符_int和選項(xiàng)B定義的變量標(biāo)識(shí)符_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ī)定。21、有以下程序:#include<stdio.h>main(){inty=10;while(y--);printf("y=%d\n",y);}程序執(zhí)行后的輸出結(jié)果是()。A、y=-1B、y=0C、y=1D、while構(gòu)成無(wú)限循環(huán)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:y--表示y使用后再自減1,所以最后一次y的值為0.條件不成立但仍要執(zhí)行自減操作,y的值為-1,跳出循環(huán),打印y的值-1。22、下列選項(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)有此類型的定義方法;B選項(xiàng)錯(cuò)誤,定義數(shù)組應(yīng)指明數(shù)組大小,如果不指明數(shù)組大小,需要給定初倆的個(gè)數(shù);C選項(xiàng)錯(cuò)誤,N為變量,不能用來(lái)定義數(shù)組大小。因此D選項(xiàng)正確。23、以下函數(shù)實(shí)現(xiàn)按每行8個(gè)輸出w所指數(shù)組中的數(shù)據(jù):#includevoidfun(int:*w,intn){inti;for(i=0;iA、if(i/8==0)printf(“\n”);B、if(i/8==0)continue;C、if(i%8==0)printf(“\n”);D、if(i%8==0)continue;標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:要按照每行8個(gè)輸出數(shù)據(jù)的話,橫線處語(yǔ)句的功能應(yīng)該為:當(dāng)i是8的倍數(shù)時(shí)(即i%8==0),輸出一個(gè)換行符。因此C選項(xiàng)正確。24、有以下函數(shù):intaaa(char*s){char*t=s;while(*t++);t--;return(t-s);}以下關(guān)于aaa函數(shù)功能敘述正確的是()。A、將串s復(fù)制到串tB、比較兩個(gè)串的大小C、求字符串s的長(zhǎng)度D、求字符串s所占字節(jié)數(shù)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題重點(diǎn)考察的知識(shí)點(diǎn)while循環(huán)語(yǔ)句的應(yīng)用。8tsta()函數(shù)中,首先定義了一個(gè)字符指針t指向形參s,然后通過(guò)一個(gè)while循環(huán)讓指針t不斷遞增,直到t指向字符串結(jié)束標(biāo)識(shí)處。當(dāng)t指向結(jié)束標(biāo)識(shí)處時(shí),由于后綴++運(yùn)算符的原因,它還會(huì)被再遞增1,所以接下來(lái)的t--;語(yǔ)句讓它回到結(jié)束標(biāo)識(shí)處。最后返回t-s,s還是指向字符串第1個(gè)字符處,而t指向了字符串結(jié)尾,故返回值為字符串的長(zhǎng)度值。因此C選項(xiàng)正確。25、有以下程序:#include<stdio.h>intfun(){staticintx=1;x*=2;returnx;main(){inti,s=1:for(i=1;i<=2;i++)s=fun();printf("%din",s);}程序運(yùn)行后的輸出結(jié)果是()。A、0B、1C、4D、8標(biāo)準(zhǔn)答案:C知識(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的值。主函數(shù)中調(diào)用兩次fun函數(shù):第一次調(diào)用:x=1,x=x*2=2,s=2;第二次調(diào)用:(直接用上次x的值)x=x*2=4,s=4。因此C選項(xiàng)正確。26、有以下計(jì)算公式若程序前面已在命令行中包含math.h文件,不能夠正確計(jì)算上述公式的程序段是()。A、if(x>=0)y=sqrt(x);if(x<0)y=sqrt(一x);B、if(x>=0)y=sqrt(x);elsey=sqrt(一x);C、y=sqrt(x);D、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中調(diào)用了sqrt(x)函數(shù),而沒(méi)有判斷x的正負(fù),則y=sqrt(x)會(huì)出錯(cuò)。27、有以下程序:#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.。28、有以下程序:#include<stdio.h>#include<string.h>main(){inti,len;charb[]="WelcomeyoutoBeijing!";len=strlen(b);for(i=0;i<len;i++)if(b[i]==’’){strcpy(b,b+i+1);i=0;}printf("%s\n",b);}程序運(yùn)行后的輸出結(jié)果是()。A、Beijing!B、toBeijing!C、WelcomeyoutoBeijing!D、youtoBeijing!標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:for循環(huán)的作用是每次遇到空格,將空格后面的移動(dòng)到數(shù)組的最前面。因此數(shù)組最后的狀態(tài)是“Beijing!\0g!\0ng!\neijing!\0”,但是printf(“%s”)打印遇到\0自動(dòng)結(jié)束。因此,打印Beijing!。故答案為A選項(xiàng)。29、設(shè)有定義:doublex=2.12;,以下不能完整輸出變量x值的語(yǔ)句是()。A、printf("x=%5.0f\n",x);B、printf("x=%f\n",x);C、printf("x=%lf\n",x);D、printf("x=%0.5f\n",x);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:暫無(wú)解析30、有以下程序#include<stdio.h>main(){inta=0,b=0;for(;a<5;a++){if(a%2==0)continue;b+=a;}printf("%d\n",b);}程序的運(yùn)行結(jié)果是A、4B、10C、0D、15標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:continue語(yǔ)句只能用在循環(huán)結(jié)構(gòu)中,其作用是結(jié)束本次循環(huán),即不再執(zhí)行循環(huán)體中continue語(yǔ)句之后的語(yǔ)句,而是立即轉(zhuǎn)入對(duì)循環(huán)條件的判斷與執(zhí)行。本題執(zhí)行過(guò)程為:a=0,if條件成立,結(jié)束本次循環(huán),執(zhí)行下一次循環(huán);a=1,b=1;a=2,if條件成立,結(jié)束本次循環(huán),執(zhí)行下一次循環(huán);a=3,b=4;a=4,if條件成立,結(jié)束本次循環(huán),執(zhí)行下一次循環(huán);a=5退出循環(huán),輸出4。A選項(xiàng)正確。31、有以下程序#include<stdio.h>voidf(intx[],intn){if(n>1){f(&x[1],n-1);printf("%d,",x[0]);}elseprintf("%d,",x[0]);}main(){intz[6]={1,2,3,4,5,6};f(z,6);printf("\n");}程序的運(yùn)行結(jié)果是A、6,5,4,3,2,1,B、1,1C、1,1,1,1,1,1,D、1,2,3,4,5,6,標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在調(diào)用一個(gè)函數(shù)的過(guò)程中又出現(xiàn)直接或間接的調(diào)用該函數(shù)本身,稱為函數(shù)的遞歸調(diào)用。本題目中遞歸函數(shù)調(diào)用執(zhí)行過(guò)程為:f(z,6)->f(&z[1],5)->f(&z[2],4)->f(&z[3],3)->f(&z[4],2)->f(&z[5],1),輸出x[0],也即z[5]=6,返回執(zhí)行f(&z[4],2)之后的輸出x[0]語(yǔ)句,即5,同理再返回上一個(gè)f函數(shù),依次輸出4,3,2,1,A選項(xiàng)正確。32、有以下程序(字母A的ASCII代碼為65)#include<stdio.h>main(){charc1=’A’,c2=’Y’;printf("%d,%d\n",c1,c2);}程序運(yùn)行后的輸出結(jié)果是A、輸出格式不合法,輸出出錯(cuò)信息B、A,YC、65,90D、65,89標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:一個(gè)整數(shù),只要它的值在0~255范圍之內(nèi),也可以用字符形式輸出,輸出之前,系統(tǒng)會(huì)將該整數(shù)轉(zhuǎn)化為相應(yīng)的ASCII碼字符;字符也可以用整型來(lái)輸出,輸出的是對(duì)應(yīng)的ASCII值。’A’的ASCII值為65,’Y’的ASCII值為89,D選項(xiàng)正確。33、設(shè)數(shù)據(jù)集合為D={1,3,5,7,9},D上的關(guān)系為R,下列數(shù)據(jù)結(jié)構(gòu)B=(D,R)中為非線性結(jié)構(gòu)的是A、R={(5,1),(7,9),(1,7),(9,3)}B、R={(9,7),(1,3),(7,1),(3,5)}C、R={(1,9),(9,7),(7,5),(5,3)}D、R={(1,3),(3,5),(5,9)}標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:一個(gè)非空的數(shù)據(jù)結(jié)構(gòu)如果滿足以下兩個(gè)條件:有且只有一個(gè)根結(jié)點(diǎn);每一個(gè)結(jié)點(diǎn)最多有一個(gè)前件,也最多有一個(gè)后件,則稱為線性結(jié)構(gòu),在數(shù)據(jù)結(jié)構(gòu)中習(xí)慣稱為線性表。A選項(xiàng)中,5為根結(jié)點(diǎn),線性表為51793。B選項(xiàng)中,9為根結(jié)點(diǎn),線性表為97135。C選項(xiàng)中,1為根結(jié)點(diǎn),線性表為19753。D選項(xiàng),結(jié)點(diǎn)1與7都是根結(jié)點(diǎn),屬于非線性結(jié)構(gòu),故D選項(xiàng)正確。34、簡(jiǎn)單程序設(shè)計(jì)步驟中不包括A、編碼B、確定算法C、安裝編譯程序D、調(diào)試標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:簡(jiǎn)單程序設(shè)計(jì)步驟為:確定數(shù)據(jù)結(jié)構(gòu)、確定算法、編碼、調(diào)試、整理文檔,不包括安裝編譯程序,故答案為C選項(xiàng)。35、有語(yǔ)句:k=x<y,(y<z,1:0):0;,以下選項(xiàng)中,與此語(yǔ)句功能相同的是A、if(x<y||y<z)k=1;elsek=0;B、if(x<y)k=0;elseif(y<z)k=1;C、if(x<y)if(y<z)k=1;elsek=0;D、if(x<y&&y<z)k=1;elsek=0;標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:表達(dá)式1:表達(dá)式2:表達(dá)式3,若表達(dá)式1為真,則執(zhí)行表達(dá)式2,表達(dá)式2的值就作為整個(gè)條件表達(dá)式的值,否則執(zhí)行表達(dá)式3,,表達(dá)式3的值就作為整個(gè)條件表達(dá)式的值。題中,k=x<y,(y<z?1:0):0,執(zhí)行順序?yàn)橄扰袛鄕<y是否為真,為真時(shí)執(zhí)行(y<z,1:0),再判斷y<z是否為真,為真時(shí),k=1否則k=0。因此判斷,答案為D選項(xiàng)。36、設(shè)有定義:chars[81];inti=0;,以下不能將一行(不超過(guò)80個(gè)字符)帶有空格的字符串正確讀入的語(yǔ)句或語(yǔ)句組是()。A、gets(s);B、while((s[i++]=getchar())?。健痋n’);s[i]=’\0’;C、scanf("%s",s);D、do{scanf("%c",&s[i]);}while(s[i++]?。健痋n’);s[i]=’\0’;標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:字符串的輸入不能使用scanf("%s",s);而應(yīng)該使用gets(s)。37、一棵完全二叉樹(shù)共有360個(gè)結(jié)點(diǎn),則在該二叉樹(shù)中度為1的結(jié)點(diǎn)個(gè)數(shù)為A、0B、1C、180D、181標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在二叉樹(shù)中,一個(gè)結(jié)點(diǎn)所擁有的后件個(gè)數(shù)稱為該結(jié)點(diǎn)的度。完全二叉樹(shù)指除最后一層外,每一層上的結(jié)點(diǎn)數(shù)均達(dá)到最大值,在最后一層上只缺少右邊的若干結(jié)點(diǎn)。由定義可以知道,完全二叉樹(shù)中度為1的結(jié)點(diǎn)個(gè)數(shù)為1或者0。若結(jié)點(diǎn)總數(shù)為偶數(shù),則有1個(gè)度為1的結(jié)點(diǎn);若結(jié)點(diǎn)總數(shù)為奇數(shù),沒(méi)有度為1的結(jié)點(diǎn)。由于題目中的完全二叉樹(shù)共有360個(gè)結(jié)點(diǎn),則度為1的結(jié)點(diǎn)個(gè)數(shù)為1。故選擇B選項(xiàng)38、有以下函數(shù)定義:intfun(doublea,doubleb){returna*b;}若以下選項(xiàng)中所用變量都已正確定義并賦值,錯(cuò)誤的函數(shù)調(diào)用是()。A、if(fun(x,y)){……}B、z=fun(fun(x,y),fun(x,y));C、z=fun(fun(x,y)x,y);D、fun(x,y);標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查函數(shù)調(diào)用時(shí)的參數(shù)傳遞。選項(xiàng)C)中第一個(gè)參數(shù)的表達(dá)式不正確,因此不能得到正確的結(jié)果。39、有以下程序:#include<stdio.h>intf(intn){staticinta=1;n+=a++;returnn:)main(){Inta=3,s:s=f(a);s=s+f(a);printf("%d\n",s);}程序運(yùn)行以后的輸出結(jié)果是()。A、7B、8C、9D、10標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在函數(shù)f中,整型變量a為靜態(tài)變量,所以每次調(diào)用函數(shù)f時(shí)不再為a重新賦值.而且a的值只有在程序結(jié)束時(shí)才被釋放。第一次調(diào)用f后n=4,a=2;第二次調(diào)用時(shí),a已經(jīng)變成2了,所以結(jié)果為4+5=9。40、設(shè)有以下函數(shù):voidfun(intn,char*s){……}則下面對(duì)函數(shù)指針的定義和賦值均是正確的是()。A、void(*pf)();pf=fun;B、void*pf();pf=fun:C、void*pf();*pf=fun:D、void(*pf)(intchar);pf=&fun:標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:函數(shù)指針的一般定義形式為:數(shù)據(jù)類型(*指針變量名)()。D項(xiàng)中,void(*pf)(int,char)帶有兩個(gè)數(shù)據(jù)類型,不符合函數(shù)指針定義。二、程序填空題(本題共1題,每題1.0分,共1分。)41、給定程序通過(guò)定義并賦初值的方式,利用結(jié)構(gòu)體變量存儲(chǔ)了一名學(xué)生的學(xué)號(hào)、姓名和3門課的成績(jī)。函數(shù)fun的功能是將該學(xué)生的各科成績(jī)都乘以一個(gè)系數(shù)a。注意:不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdio.h>typedefstruct{intnum;charname[9];floatscore[3];}STU;voidshow(STUtt){inti;printf("%d%s:",tt.num,tt.name);for(i=0;i<3;i++)printf("%5.1f",tt.score[i]);printf("\n");}/******found******/voidmodify(【1】*ss,floata){inti;for(i=0;i<3;i++)/******found******/ss一>【2】*=a;}main(){STUstd={1,"Zhanghua",76.5,78.0,82.0};floata;printf("Theoriginalnumberandnameandscores:\n");show(std);printf("Inputanumber:");scanf("%f",&a);/******found******/modify(【3】,a);printf("Aresultofmodifying:\n");show(std);}標(biāo)準(zhǔn)答案:(1)STU(2)score[i](3)&std知識(shí)點(diǎn)解析:本題考查:數(shù)組變量賦值;函數(shù)實(shí)參定義。本題是利用結(jié)構(gòu)體存儲(chǔ)學(xué)生記錄,對(duì)記錄進(jìn)行修改并由實(shí)參ss返回。填空1:實(shí)參ss是一個(gè)結(jié)構(gòu)型指針變量,所以應(yīng)填STU。填空2:該學(xué)生的各科成績(jī)都乘以一個(gè)系數(shù)a,所以應(yīng)填score[i]。填空3:函數(shù)的調(diào)用,由于函數(shù)定義時(shí)使用的指針結(jié)構(gòu)型變量,所以應(yīng)填&std。三、程序修改題(本題共1題,每題1.0分,共1分。)42、下列給定程序中,函數(shù)fun的功能是:求兩個(gè)非零正整數(shù)的最大公約數(shù),并作為函數(shù)值返回。例如,若num1和num2分別為49和21,則輸出的最大公約數(shù)為7;若num1和num2分別為27和81,則輸出的最大公約數(shù)為27。請(qǐng)改正函數(shù)fun中指定部位的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdio.h>intfun(inta.intb){intr,t;if(a<b){/******found******/t=a;b=a;a=t;}r=a%b;while(r!=0){a=b;b=r;r=a%b;}/******found******/return(a);}main(){intnum1,num2,a;printf("Inputnum1num2:");scanf("%d%d",&num1,&num2);printf("num1=%dnum2=%d\n",num1,num2);a=fun(num1,num2);printf("Themaximuncommondivisoris%d\n",a);}標(biāo)準(zhǔn)答案:(1)t=a;a=b;b=t;(2)return(b);或returnb;知識(shí)點(diǎn)解析:本題考查:return語(yǔ)句,功能是計(jì)算表達(dá)式的值,并將其返回給主調(diào)函數(shù)。求最大公約數(shù)算法一般采用輾轉(zhuǎn)相除法。輾轉(zhuǎn)相除法的算法為:首先將m除以n(m>n)得余數(shù)r,再用余數(shù)r去除原來(lái)的除數(shù),得到新的余數(shù),重復(fù)此過(guò)程直到余數(shù)為0時(shí)停止,此時(shí)的除數(shù)就是m和n的最大公約數(shù)。(1)程序首先判斷參數(shù)a和b的大小,如果a<b則進(jìn)行交換,這里是一個(gè)數(shù)學(xué)邏輯錯(cuò)誤,應(yīng)先將a的值賦給中間變量t,再將b的值賦給a,最后將t的值賦給b。(2)當(dāng)余數(shù)r為0時(shí),除數(shù)b即為所求的最大公約數(shù),所以函數(shù)應(yīng)返回b。四、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)43、學(xué)生的記錄由學(xué)號(hào)和成績(jī)組成,N名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組S中,請(qǐng)編寫函數(shù)fun,它的功能是:把分?jǐn)?shù)最低的學(xué)生數(shù)據(jù)放在b所指的數(shù)組中,注意:分?jǐn)?shù)最低的學(xué)生可能不止一個(gè),函數(shù)返回分?jǐn)?shù)最低的學(xué)生的人數(shù)。注意:部分源程序在文件PROG1.C文件中。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語(yǔ)句。#include#defiheN16typedefstruct{charnum[10];ints;}STREC;intfun(STREC*a,STREC*b){}main(){STRECs[N]={{“GA05”,85),{“GA03”,76),{“GA02”,69},{“GA04”,85),{“GA01”,91},{“GA07”,72),{“GA08”,64},{“GA06”,87},{“GA015”,85),{“GA013”,91),{“GA012”,64},{“GA014”,91),{“GAO11”,91},{“GA017”,64),{“GA018”,64},{“GA016”,72}};STRECh[N];inti,n;FILE*out;n=fun(s,h);printf(“The%dlowestscore:\n”,n);for(i==0;i標(biāo)準(zhǔn)答案:inti,j=0,min=a[0].s;for(i=0;ia[i].s){j=0;b[j++]=a[i];min=a[i].s;}elseif(min==a[i].s)b[j++]=a[i];}returnj;知識(shí)點(diǎn)解析:該程序功能是把分?jǐn)?shù)最低的學(xué)生數(shù)據(jù)放在b所指的數(shù)組中。本題是關(guān)于求解結(jié)構(gòu)體中某些成員的最小值,首先將第一個(gè)值設(shè)定為最小值,并在循環(huán)中將其他所有值與該值進(jìn)行比較,求得最小值。然后將最小值與所有值進(jìn)行比較,求得所有的最小值。[解題思路](1)要把最低分?jǐn)?shù)的學(xué)生數(shù)據(jù)放在數(shù)組中,首先求出最低分?jǐn)?shù),再使用一個(gè)for循環(huán)把所有的成績(jī)進(jìn)行比較,找出最低的分?jǐn)?shù)來(lái)。(2)找出所有與最低分?jǐn)?shù)相等的學(xué)生,并將最低分?jǐn)?shù)的人數(shù)累加。國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷第2套一、選擇題(本題共40題,每題1.0分,共40分。)1、數(shù)據(jù)庫(kù)技術(shù)的根本目標(biāo)是()。A、數(shù)據(jù)存儲(chǔ)B、數(shù)據(jù)共享C、數(shù)據(jù)查詢D、數(shù)據(jù)管理標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)是長(zhǎng)期儲(chǔ)存在計(jì)算機(jī)內(nèi)、有組織的、可共享的大量數(shù)據(jù)的集合,它具有統(tǒng)一的結(jié)構(gòu)形式并存放于統(tǒng)一的存儲(chǔ)介質(zhì)內(nèi),是多種應(yīng)用數(shù)據(jù)的集成,并可被各個(gè)應(yīng)用程序所共享,所以數(shù)據(jù)庫(kù)技術(shù)的根本目標(biāo)是解決數(shù)據(jù)共享問(wèn)題。2、有以下程序:main(){intk=33;printf("%d,%o,%x",k,k,k);}執(zhí)行后的輸出結(jié)果是()。A、33,033,0x21B、33,033,21C、33,041,021D、33,41,21標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查不同進(jìn)制間的轉(zhuǎn)換。printf輸出函數(shù)中輸出變量的格式,由輸出格式符決定。題中“%o”格式符表示以八進(jìn)制的形式輸出;“%x”格式符表示以十六進(jìn)制的形式輸出?!?3”的八進(jìn)制和十六進(jìn)制分別是41和21。3、下列各選項(xiàng)中,不屬于序言性注釋的是()。A、程序標(biāo)題B、程序設(shè)計(jì)者C、主要算法D、數(shù)據(jù)狀態(tài)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:注釋一般為序言性注釋和功能性注釋。序言性注釋常位于程序開(kāi)頭部分,它包括程序標(biāo)題、程序功能說(shuō)明、主要算法、接口說(shuō)明、程序位置、開(kāi)發(fā)簡(jiǎn)歷、程序設(shè)計(jì)者、復(fù)審者、復(fù)審日期及修改日期等。功能性注釋一般嵌在源程序體之中,用于描述其后的語(yǔ)句或程序的主要功能。4、有以下程序#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)。5、以下關(guān)于C語(yǔ)言函數(shù)參數(shù)傳遞方式的敘述正確的是()。A、數(shù)據(jù)只能從實(shí)參單向傳遞給形參B、數(shù)據(jù)可以在實(shí)參和形參之間雙向傳遞C、數(shù)據(jù)只能從形參單向傳遞給實(shí)參D、C語(yǔ)言的函數(shù),參數(shù)既可以從實(shí)參單向傳遞給形參,也可以在實(shí)參和形參之間雙向傳遞,可視情況選擇使用標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:數(shù)據(jù)只能由實(shí)參單向傳遞給形參,稱為“值傳遞”,數(shù)組名、指針等作參數(shù),實(shí)參傳遞給形參的是地址值,這樣形參和實(shí)參就指向同一段內(nèi)存單元,在函數(shù)體內(nèi)對(duì)形參數(shù)據(jù)的改變也將影響到實(shí)參的值。6、有以下程序:#include<stdio.h>intf(intn){staticinta=1:n+=a++;returnn;}main(){inta=3,s;s=f(a);s=s+f(a);printf("%d\n",s);}程序運(yùn)行以后的輸出結(jié)果是()。A、7B、8C、9D、10標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在函數(shù)f中,整型變量a為靜態(tài)變量,所以每次調(diào)用函數(shù)f時(shí)不再為a重新賦值,而且a的值只有在程序結(jié)束時(shí)才被釋放。第一次調(diào)用f后n=4,a=2;第二次調(diào)用時(shí),a已經(jīng)變成2了,所以結(jié)果為4+5=9。7、有以下函數(shù):intfun(char*x,char*y){intn=0;while((*x==*y)&&*x!=’\0’){x++;y++;n++;}returnn;}函數(shù)的功能是()。A、將y所指字符串賦給x所指存儲(chǔ)空間B、查找x和y所指字符串中是否有’\0’C、統(tǒng)計(jì)x和y所指字符串中最前面連續(xù)相同的字符個(gè)數(shù)D、統(tǒng)計(jì)x和y所指字符串中相同的字符個(gè)數(shù)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題中由循環(huán)條件可知遇到‘\0’或x與y所指的字符的值不等中的一個(gè)條件時(shí)就結(jié)束,所以功能是統(tǒng)計(jì)x和y所指字符串中最前面連續(xù)相同的字符個(gè)數(shù)。8、以下程序段中的變量已定義為int類型,則sum=pad=5;pad=sum++,pad++,++pad;printf("%d\n",pad);程序段的輸出結(jié)果是()。A、6B、4C、5D、7標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:賦值運(yùn)算符的優(yōu)先級(jí)高于逗號(hào)運(yùn)算符,因此語(yǔ)句“pad=sum++,pad++,++pad”的執(zhí)行順序?yàn)閜ad=sum++,pad=5;pad++,pad=6;++pad,pad=7,輸出7。9、已有定義“inta=3;”和輸出語(yǔ)句“printf("%8x",a),”以下正確的敘述是()。A、整型變量的輸出格式符只有%d—種B、%x是格式符的一種,它可以適用于任何一種類型的數(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ù)?!?”表示指定輸出數(shù)據(jù)的寬度為8位。10、有以下程序#include<stdio.h>voidmain(){intn=2,k=1;while(!(k>0||n++));printf(’’%d%d\n’’,k,n);}程序運(yùn)行后的輸出結(jié)果是()。A、02B、13C、57D、12標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在程序中整型變量n的初始值等于2,整型變量k的初始值等于1,在執(zhí)行while語(yǔ)句時(shí),由于表達(dá)式k的值大于0為真,所以不再需要判斷“n++’是否為真,“(k>0‖n++)”表達(dá)式的值為真。“!(k>0‖n++)”表達(dá)式的值為假,所以while語(yǔ)句中的條件不滿足,循環(huán)語(yǔ)句不會(huì)執(zhí)行,變量n的值也不會(huì)加1,所在輸出變量k和n的值是1和2。11、以下敘述中錯(cuò)誤的是()。A、使用三種基本結(jié)構(gòu)構(gòu)成的程序只能解決簡(jiǎn)單問(wèn)題B、結(jié)構(gòu)化程序由順序、分支、循環(huán)三種基本結(jié)構(gòu)組成C、C語(yǔ)言是一種結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言D、結(jié)構(gòu)化程序設(shè)計(jì)提倡模塊化的設(shè)計(jì)方法標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:已經(jīng)證明,由順序、分支、循環(huán)這三種基本結(jié)構(gòu)組成的算法可以解決任何復(fù)雜的問(wèn)題。選項(xiàng)A)敘述有誤。12、有以下程序:#include#include“string.h”voidfun(char*s[],intn){char*t;inti.d;for(i=0;istrlen(s[j])){t=s[i];s[i]=s[j];s[j]=t;}}main(){char*ss[]={“bcc”,“bbcc”,“xy”,“aaaacc”,“aabcc”);fun(ss,5);printf(“%s,%s\n”,ss[0],ss[4]);}程序的運(yùn)行結(jié)果是()。A、xy,aaaaccB、aaaacc,xyC、bcc,aabccD、aabcc,bcc標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:從main函數(shù)入手,定義了一個(gè)一維數(shù)組并賦初值,接著調(diào)用函數(shù)fun(),函數(shù)的功能是:比較數(shù)組中各元素的長(zhǎng)度,按元素長(zhǎng)度從小到大的順序排列元素,所以執(zhí)行fun(SS,5)函數(shù)后,*ss[]={"xy","bcc","bbcc""aabcc""aaaacc"},所以調(diào)用printf函數(shù)輸出ss[0],ss[4]的值分別為xy,aaaacc。13、設(shè)有定義:structcomplex{intreal,unreal;}datal={1,8},data2;則以下賦值語(yǔ)句中錯(cuò)誤的是()。A、data2={datal.real,datal.unreal};B、data2=(2,6);C、data2.real=datal.real;D、data2->real=datal.unreal;標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題主要考查結(jié)構(gòu)體變量的定義與初始化。題目中定義了complex類型的結(jié)構(gòu)體變量data1和data2,并對(duì)data1進(jìn)行了初始化。可以用一個(gè)結(jié)構(gòu)體變量的成員對(duì)另一個(gè)結(jié)構(gòu)體變量的成員賦值。14、以下選項(xiàng)中可用作C程序合法實(shí)數(shù)的是()。A、0.1B、3.0e0.2C、E9D、9.12E標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C程序的合法實(shí)數(shù)有兩種表示形式,一種是小數(shù)形式,另一種是指數(shù)形式,對(duì)于用指數(shù)形式表示的實(shí)數(shù)來(lái)說(shuō),需要注意的是字母e或E之前必須要有數(shù)字,且字母e或E后面的指數(shù)必須為整數(shù),所以選項(xiàng)A)為正確答案。15、以下程序的輸出結(jié)果是()。#include<Stdio.h>structst{intx;int*y;)*p;intdt[4]={1,2,3,4};structstaa[4]={2,&dt[0],3,&dt[0],4,&dt[0],5,&dt[0],};main(){p=aa;printf("%d\n",++(p->x));}A、1B、2C、3D、4標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:程序首先將指針p指向結(jié)構(gòu)體數(shù)組aa的首地址,通過(guò)p->x引用了結(jié)構(gòu)體數(shù)組aa[0]的第一個(gè)成員2;++(p->x)是將p->x的值加1,所以輸出結(jié)果為3。16、若i、j已定義成int型,則以下程序段中內(nèi)循環(huán)體的總執(zhí)行次數(shù)是()。for(i=6;i>0;i--)for(i=0;j<4.j++){…}A、20B、24C、25D、30標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查的是嵌套for循環(huán)執(zhí)行次數(shù)。對(duì)于外層i的循環(huán)中任何一個(gè)i,內(nèi)層j的循環(huán)中的j都要從0變化到3,j=4時(shí)退出循環(huán);然后外層i循環(huán)的i減少1,內(nèi)層循環(huán)的j仍要從0變化到3,j=4時(shí)退出循環(huán)……直到外層i循環(huán)的i變?yōu)?,退出i循環(huán)。所以執(zhí)行多重循環(huán)時(shí),對(duì)外層循環(huán)變量的每一個(gè)值,內(nèi)層循環(huán)的循環(huán)變量都要從初始值變化到終值。對(duì)外層循環(huán)的每一次循環(huán),內(nèi)層循環(huán)要執(zhí)行完整的循環(huán)語(yǔ)句。外層for語(yǔ)句執(zhí)行6次,內(nèi)層for語(yǔ)句執(zhí)行4次,所以內(nèi)循環(huán)體執(zhí)行6*4=24次。17、結(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)。18、有以下程序:#include<stdio.h>main(){intc;while((c=getchar0)!=’\n’){switch(c-’3’){case0:case1:putchar(c+4);case2:putchar(c+4);break;case3:putchar(c+3);case4:putchar(c+3);break;}}printf(’’\n’’);}從第一列開(kāi)始輸入數(shù)據(jù)(<CR>代表一個(gè)回車符):3845<CR>,則程序輸出結(jié)果為()。A、77889B、77868C、776810D、77886610標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:題中while循環(huán)的條件是:當(dāng)從鍵盤讀入的字符不是“’\n’”時(shí),執(zhí)行while循環(huán)。輸入第一個(gè)字符3時(shí):執(zhí)行case0,什么也不輸出;case1,輸出7;case2,輸出7;遇到break語(yǔ)句,跳出switch語(yǔ)句。輸入第二個(gè)字符8時(shí)“c-’3’=5”,不執(zhí)行任何語(yǔ)句。輸入第三個(gè)字符4時(shí)“c-’3’=1”,執(zhí)行case1輸出8;case2,輸出8;遇到break語(yǔ)句,跳出switch語(yǔ)句。輸入第四個(gè)字符5時(shí)“c-’3’=2”,執(zhí)行case2,輸出9;遇到break語(yǔ)句,跳出switch語(yǔ)句。19、有以下程序:#includemain(){chara=4;printf("%d\n",a=a<<1);}程序的運(yùn)行結(jié)果是()。A、16B、8C、40D、4標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查位運(yùn)算。題目中將4向左移一位然后重新賦值給a,4左移一位為8,程序運(yùn)行結(jié)果為8,選項(xiàng)B正確。20、若有以下定義,則對(duì)數(shù)組元素的正確引用是()。inta[5],*p=a;A、*&a[5]B、(*a)+2C、*p+4D、*(a+2)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查通過(guò)指針引用數(shù)組元素。選項(xiàng)A)、C)沒(méi)有這種引用形式;選項(xiàng)B),(*a)+2與*a+2相同,表示第一一個(gè)元素的值加2:選項(xiàng)D),*(a+2)引用數(shù)組的第3個(gè)元素。21、有以下程序:#inc1ude#inc1ude"string.h"voidfun(char*s[],intn){char*t,inti,j,for(i=0;istrlen(s[j]){t=s[i];s[i]=s[j];s[j]=t;}}main(){char*ss[]={"bcc","bbcc","xy","aaaacc","aabcc"};fun(ss,5);printf("%s,%s\n",ss[0],ss[4]);}程序的運(yùn)行結(jié)果是()。A、xy,aaaaccB、aaaacc,xyC、bcc,aabccD、aabcc,bcc標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:從main函數(shù)入手,定義了一個(gè)一維數(shù)組并賦初值,接著調(diào)用函數(shù)fun(),函數(shù)的功能是:比較數(shù)組中各元素的長(zhǎng)度,按元素長(zhǎng)度從小到大的順序排列元素,所以執(zhí)行“fun(ss,5)”函數(shù)后,“*ss[]={"xy","bcc","bbcc","aabcc","aaaacc"}”,所以調(diào)用printf函數(shù)輸出ss[0],ss[4]的值分別為xy,aaaacc。22、有以下程序:#includevoidfun(int*a,int*b){int*c;c=a;a=b;b=c;}main(){intx=3,y=5,*p=&x,*q=&y;fun(p,q);printf("%d,%d",*p,*q);fun(&x,&y);printf("%d,%d\n",*p,*q);}程序運(yùn)行后的輸出結(jié)果是()。A、3,5,5,3B、3,5,3,5C、5,3,3,5D、5,3,5,3標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:C語(yǔ)言中,函數(shù)參數(shù)傳遞的功能是“傳值”,即形參和實(shí)參是兩個(gè)沒(méi)有關(guān)系的變量。本題程序中函數(shù)的形參為指針變量,函數(shù)內(nèi)部交換的是地址值,不是地址值所指向的值,所以不會(huì)改變實(shí)參的值。23、有以下程序:#include<stdio.h>#defineN3voidfun(inta[][N],intb[]){inti,j;for(i=0;i<=2;i++){intmax=a[i][0];for(j=i;j<=2;j++)if(max<a[i][j])max=a[i][j];b[i]=max;}}main(){intx[N][N]={1,2,3,4,5,6,7,8,9},y[N],i;fun(x,y);for(i=0;i<=2;i++){prA、2,4,8,B、3,6,9,C、3,5,7,D、1,3,5,標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:fun函數(shù)功能是把數(shù)組a的每一行的最大值賦給b,a的第一行的最大值是3,第二行的最大值是6,第三行的最大值是9,所以答案是3,6,9,。24、有如下程序段:intx=12:doubley=3.141593;prinff(“%d%8.6f”,x,y);其輸出結(jié)果是()。A、123.141593B、123.141593C、12,3.141593D、123.1415930標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:printf函數(shù)中格式字符“%8.6”的含義是:變量y的輸出寬度為8(包括小數(shù)點(diǎn)),小數(shù)點(diǎn)后面保留6位小數(shù),且右對(duì)齊。所以選擇A。25、軟件測(cè)試的目的是()。A、評(píng)估軟件可靠性B、發(fā)現(xiàn)并改正程序中的錯(cuò)誤C、改正程序中的錯(cuò)誤D、發(fā)現(xiàn)程序中的錯(cuò)誤標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:軟件測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過(guò)程,測(cè)試要以查找錯(cuò)誤為中心,而不是為了演示軟件的正確功能。不是為了評(píng)估軟件或改正錯(cuò)誤。26、有以下程序:#include<stdio.h>main(){intx=1,y=0;if(!x)y++;elseif(x==0)if(x)y+=2;elsey+=3;printf("%d\n",y);}程序運(yùn)行后的輸出結(jié)果是()。A、1B、2C、0D、3標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:因?yàn)閤=1,!x為0,x==0為false,所以if和elseif的判斷條件都不滿足,程序運(yùn)行時(shí)只執(zhí)行x,y的初始化語(yǔ)句和printf()函數(shù),打印出y的值為0,故答案為C。27、有以下程序:#includevoidfun(char*c,intd){*c=*c+1:d=d+1:printf(“%e,%e,”,*c,d);}main(){charb=’a’,a=’A’;fun(&b,a);printf(“%c,%c\n”,b,a);}程序運(yùn)行后的輸出結(jié)果是()。A、b,B,b,AB、b,B,B,AC、a,B,B,aD、a,B,a,B標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題重點(diǎn)考察函數(shù)的調(diào)用,首先要了解字母對(duì)應(yīng)的ASCⅡ碼。例如A為65,a為97。即字母+1則可得到下一個(gè)字母。其次是函數(shù)形參和實(shí)參的問(wèn)題,運(yùn)行過(guò)程如下:在fun(&b,a)中,*c=’a’,d=65。*c+1=’b’,d+1=66,printf(”%c,%c,”*c,d);輸出b,B,因?yàn)橹羔榗指向地址的值為b,此時(shí)b=*c=’b’;函數(shù)返回執(zhí)行printf(“%c,%c\n”,b,a);輸出b,A,因此A選項(xiàng)正確。28、以下選項(xiàng)中能正確定義二維數(shù)組的選項(xiàng)是()。A、doublea[][3]={2*3};B、doublea[][3];C、doublea[][3]={};D、doublea[2][3]={{1.0},{2.0},{3.0,4.0}};標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:如果第一維的長(zhǎng)度沒(méi)有指定,則定義的同時(shí)需要完成初始化,否則不知道分配多大的內(nèi)存空間給它,所以選項(xiàng)B、C錯(cuò)誤;二維數(shù)組a[2][3]中只有兩個(gè)元素,都是一維數(shù)組,一維下標(biāo)最大只能是a[1],所以選項(xiàng)D錯(cuò)誤;若完成初始化的二維數(shù)組,第一維的長(zhǎng)度沒(méi)有指定,則第一維的大小按如下規(guī)則確定:若初值個(gè)數(shù)能被第二維大小整除,所得的商就是第一維的大??;若不能整除,則所得的商加1作為第一維的大小,所以選項(xiàng)A相當(dāng)于:douhlea[1][3]=|6|;其中a[0][0]=6,其他元素賦值0,故選項(xiàng)A正確,答案為A。29、以下敘述中正確的是()。A、charc1,c2,*c3,c4[40];是合法的變量定義語(yǔ)句B、數(shù)組下標(biāo)的下限由數(shù)組中第一個(gè)非零元素的位置決定C、數(shù)組下標(biāo)的下限由數(shù)組中第一個(gè)被賦值元素的位置決定D、數(shù)組下標(biāo)的下限是1標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:暫無(wú)解析30、若有定義語(yǔ)句:charstr[8]=’’abcdef\0\0’’;則strlen(str)的值是()。A、6B、7C、8D、9標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:系統(tǒng)會(huì)在字符數(shù)組末尾加一個(gè)字符(’\0’)作為結(jié)束符,strlen()會(huì)將’\0’作為字符串的結(jié)束符,因此,本題中的字符串的實(shí)際長(zhǎng)度是6。31、在數(shù)據(jù)庫(kù)設(shè)計(jì)中,將E-R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過(guò)程屬于()。A、需求分析階段B、概念設(shè)計(jì)階段C、邏輯設(shè)計(jì)階段D、物理設(shè)計(jì)階段標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:E-R圖轉(zhuǎn)換成關(guān)系模型數(shù)據(jù)則是把圖形分析出來(lái)的聯(lián)系反映到數(shù)據(jù)庫(kù)中,即設(shè)計(jì)出表,所以屬于邏輯設(shè)計(jì)階段。32、不能正確表示數(shù)學(xué)式的表達(dá)式是A、a/c*bB、a*b/cC、a/b*cD、a*(b/c)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:/號(hào)和*號(hào)的優(yōu)先級(jí)處于平級(jí),結(jié)合性都是自左至右?所以選擇C,C式子表示的是?33、下面選項(xiàng)中合法的字符常量是A、XB、’X’C、’abc’D、’\’標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:字符常量是用單引號(hào)括起來(lái)的一個(gè)字符。A選項(xiàng)中,使用雙引號(hào),所以是錯(cuò)誤的;C選項(xiàng)中,’abc’是字符串,字符常量只能是單個(gè)字符,不能是字符串;D選項(xiàng)中,以反斜線"\"開(kāi)頭的是轉(zhuǎn)義字符。因此B選項(xiàng)正確。34、當(dāng)a=4,b=5,c=7,d=6時(shí),執(zhí)行下面一段程序:iffa<b)if(c<d)x=l:elseiffa<c)if(b<c)x=2;elsex=3;elsex=4;elsex=5;程序執(zhí)行后,x的值為()。A、1B、2C、3D、4標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:scanf()語(yǔ)句中用“空格”間隔不同的字符串,空格將被全部忽略掉,所以用scanf()函數(shù)不能輸入空格;getchar()函數(shù)用于輸入字符,其調(diào)用形式為:ch=getchar(),getchar()函數(shù)從終端讀入一個(gè)字符作為函數(shù)值,把讀入的字符賦給變量ch。在輸入時(shí),空格、回車符都將作為字符讀入,而且只有在用戶敲入Enter鍵時(shí),讀入才開(kāi)始執(zhí)行。gets()函數(shù)的調(diào)用形式為:gets(stradr),其中stradr。是存放輸入字符串的起始地址,可以是字符數(shù)組名、字符數(shù)組元素的地址或字符指針變量。gets函數(shù)用來(lái)從終端鍵盤讀入字符串(包括空格符),直到讀入一個(gè)換行符為止。getc()函數(shù)的調(diào)用形式為:ch=getc(pf)其中pf是文件指針。函數(shù)的功能是從pf指定的文件中讀入一個(gè)字符,并把它作為函數(shù)值返同。35、有以下程序#include<stdio.h>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、00B、43C、34D、71標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:主函數(shù)中首先初始化整型變量a、b、c、d分別為4、3、0、0。調(diào)用函數(shù)fun,將實(shí)參傳遞給形參。在fun函數(shù)內(nèi),*c=7、*d=1。返回主函數(shù),最后輸出7和1。因此D選項(xiàng)正確。36、有以下程序#include<stdio.h>main(){inta=0,b=0,c=0,d=0;(++a||++b)?++c:++d;printf("%d,%d,%d,%d\n",a,b,c,d);}程序的運(yùn)行結(jié)果是A、1,0,1,0B、1,1,0,1C、1,0,0,1D、1,1,1,0標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:條件表達(dá)式一般形式:exp1:exp2:exp3,執(zhí)行規(guī)則為:若exp1為真,求解exp2,輸出exp2的值,不計(jì)算exp3的值;若為假,求解exp3,輸出exp3的值,不計(jì)算exp2的值。本題程序執(zhí)行過(guò)程為:求解邏輯表達(dá)式(++a||++b),先求解++a,a=1,則整個(gè)表達(dá)式為真,不計(jì)算++b,然后求解++c,不計(jì)算++d,最后得到a=1,b=0,c=1,d=0,A選項(xiàng)正確。37、下列敘述中錯(cuò)誤的是A、算法的時(shí)間復(fù)雜度與算法所處理數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)有直接關(guān)系B、算法的空間復(fù)雜度與算法所處理數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)有直接關(guān)系C、算法的時(shí)間復(fù)雜度與空間復(fù)雜度有直接關(guān)系D、算法的時(shí)間復(fù)雜度與算法程序執(zhí)行的具體時(shí)間是不一致的標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:算法的時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量。數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)直接決定數(shù)據(jù)輸入,而這會(huì)影響算法所執(zhí)行的基本運(yùn)算次數(shù),A選項(xiàng)敘述正確。算法的空間復(fù)雜度是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間,其中包括輸入數(shù)據(jù)所占的存儲(chǔ)空間,B選項(xiàng)敘述正確。而算法的時(shí)間復(fù)雜度與空間復(fù)雜度沒(méi)有直接關(guān)系,故選擇C選項(xiàng)。算法程序執(zhí)行的具體時(shí)間受到所使用的計(jì)算機(jī)、程序設(shè)計(jì)語(yǔ)言以及算法實(shí)現(xiàn)過(guò)程中的許多細(xì)節(jié)所影響,而算法的時(shí)間復(fù)雜度與這些因素?zé)o關(guān),所以是不一致的,D選項(xiàng)敘述正確。38、設(shè)有n個(gè)數(shù)按從大到小的順序存放在數(shù)組x中,以下能使這n個(gè)數(shù)在x數(shù)組中的順序變?yōu)閺男〉酱蟮氖茿、for(i=0;i<n/2;i++){t=x[i];x[i]=x[n-i-1];x[n-i-1]=t;}B、for(i=0;i<n;i++){t=x[i];x[i]=x[n-i-1];x[n-i-1]=t;}C、for(i=0;i<n/2;i++){t=x[i];x[i]=x[n-i+1];x[n-i+1]=t;}D、for(i=0;i<n/2;i+=2){t=x[i];x[i]=x[n-i-1];x[n-i-1]=t;}標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題使用for循環(huán)實(shí)現(xiàn)數(shù)組元素首尾倒置。A選項(xiàng)中控制變量上限為n/2,用變量t實(shí)現(xiàn)數(shù)下標(biāo)值i與n-i-1的元素交換,使數(shù)組元素首尾倒置,從而實(shí)現(xiàn)從小到大排列,A選項(xiàng)正確。B選項(xiàng)控制變量上限為n,用變量t實(shí)現(xiàn)數(shù)下標(biāo)值i與n-i-1的元素交換,當(dāng)i=n/2時(shí),已經(jīng)實(shí)現(xiàn)數(shù)組首尾倒置,而繼續(xù)運(yùn)行至i=n,將再次將新的數(shù)組首尾倒置,與原數(shù)組相比沒(méi)有發(fā)生變化,依然是從大到小排列,B選項(xiàng)錯(cuò)誤。C選項(xiàng)數(shù)組越界,i=0時(shí)x[n+1]不存在,C選項(xiàng)錯(cuò)誤。D選項(xiàng)控制變量每次加2,實(shí)現(xiàn)數(shù)組偶數(shù)下標(biāo)值的元素首尾倒置,奇數(shù)下標(biāo)值元素不變,不能實(shí)現(xiàn)整個(gè)數(shù)組從小到大排列,D選項(xiàng)錯(cuò)誤。39、有以下程序#include<stdio.h>main(){intm,n;scanf("%d%d",&m,&n);while(m!=n){while(m>n){m=m-n;}while(n>m){n=n-m;}}printf("%d\n",m);}該程序的功能是A、計(jì)算m和n的最小公倍數(shù)B、計(jì)算m和n的最大公約數(shù)C、計(jì)算m和n的差值D、找出m和n中的較大值標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:題目使用更相減損術(shù)求最大公約數(shù),其思想:1、任意給定兩個(gè)正整數(shù),判斷它們是否都是偶數(shù)。若是,則用2約簡(jiǎn),若不是則執(zhí)行第二步。第二步:以較大的數(shù)減較小的數(shù),接著把所得的差與較小的數(shù)比較,并以大數(shù)減小數(shù)。繼續(xù)這個(gè)操作,直到所得的減數(shù)和差相等為止。則第一步中約掉的若干個(gè)2與第二步中等數(shù)的乘積就是所求的最大公約數(shù)。因此。故答案為B選項(xiàng).40、一個(gè)棧的初始狀態(tài)為空?,F(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ù)的,入棧的順序?yàn)?2345ABCDE,則出棧的順序應(yīng)為其逆序,即EDCBA54321。二、程序填空題(本題共1題,每題1.0分,共1分。)41、給定程序中,函數(shù)fun的功能是建立一個(gè)NxN的矩陣。矩陣元素的構(gòu)成規(guī)律是:最外層元素的值全部為1;從外向內(nèi)第2層元素的值全部為2;第3層元素的值全部為3,…依次類推。例如,若N=5,生成的矩陣為:1111112221123211222111111請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下的BLANKl.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include#defineN7/**********found**********/voidfun(int(*a)____1____)(inti,j,k,m;if(N%2==0)m=N/2;elsem=N/2+1;for(i=0;i標(biāo)準(zhǔn)答案:(1)[N](2)i(3)i+1知識(shí)點(diǎn)解析:第一空:第一空處是補(bǔ)充函數(shù)定義,在主函數(shù)內(nèi)fun的調(diào)用形式是:fun(x),x是二維數(shù)組名,因此fun函數(shù)的參數(shù)是一個(gè)二維數(shù)組指針,故第一空處應(yīng)為“[N]”。第二空:i等于0時(shí),此時(shí)第二空下的循環(huán)內(nèi)a[0][j]=a[N-1][j]=1,顯然這是對(duì)最外圍的兩列賦值為1;i等于1時(shí),對(duì)外向內(nèi)第2列元素的值全部賦值為2,依此類推,故第二空處i的初值應(yīng)為“i”。第三空:“a[k][i]=a[k][N-i-1]=__3__;”是對(duì)矩陣的兩行進(jìn)行操作,題干要求矩陣每一圈上的值都相等,故這里和上一個(gè)循環(huán)的列上的值相同,也為“i+1”。三、程序修改題(本題共1題,每題1.0分,共1分。)42、下列給定程序中,函數(shù)fun的功能是:實(shí)現(xiàn)兩個(gè)整數(shù)的交換。例如,給a和b分別輸入60和65,輸出為:a=65b=60。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdio.h>#include<conio.h>#include<stdlib.h>/*********found*********/voidfun(inta,b){intt;/*********found*********/t=b;b=a;a=t;}voidmain(){inta,b;system("CLS");printf("Entera,b:");scanf("%d%d",&a,&b);fun(&a,&b);printf("a=%db=%d\n",a,b);}標(biāo)準(zhǔn)答案:(1)voidfun(int*a,int*b)(2)t=*b;*b=*a;*a=t;知識(shí)點(diǎn)解析:(1)本題考查指針變量作函數(shù)參數(shù)。采用一般變量作參數(shù),不能改變實(shí)參的值,采用指針變量作為參數(shù)則能夠改變實(shí)參的值。主函數(shù)中fun的調(diào)用方式說(shuō)明fun函數(shù)的參數(shù)應(yīng)當(dāng)為指針類型。(2)此處錯(cuò)誤比較明顯,因?yàn)閍和b都是指針變量,進(jìn)行變量交換時(shí)不能直接引用,應(yīng)加上“*”號(hào)。四、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)43、請(qǐng)編寫函數(shù)fun,函數(shù)的功能是:將M行N列的二維數(shù)組中的數(shù)據(jù),按行的順序依次放到一維數(shù)組中,一維數(shù)組中數(shù)據(jù)的個(gè)數(shù)存放在形參n所指的存儲(chǔ)單元中。例如,二維數(shù)組中的數(shù)據(jù)為:333333334444444455555555則一維數(shù)組中的內(nèi)容應(yīng)是:333333334444444455555555。注意:部分源程序在文件PROGI.C中。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語(yǔ)句。#includevoidfun(int(*s)[10],int*b,int*n,intmm,intnn){}main(){intw[10][10]={{33,33,33,33),{44,44,44,44),{55,55,55,55}},i,j;inta[100]={0),n=0;VoidNONO();printf(“Thematrix:\n”);for(i=0;i<3;i++){for(j=0;j<4;j++)printf(“%3d”,W[i][j]);printf(“\n”);}fun(W,a,&n,3,4);printf(“TheAarray:\n”);for(i=0;i標(biāo)準(zhǔn)答案:inti,j;for(i=0;i知識(shí)點(diǎn)解析:該程序功能是將M行、N列的二維數(shù)組中的數(shù)據(jù),按行的順序依次放到一維數(shù)組中。本題中首先要清楚數(shù)組元素在通常情況下是按行存放的,而如果要實(shí)現(xiàn)按行存放,其對(duì)應(yīng)關(guān)系應(yīng)為:s[0][0],s[0][1],s[0][2],…,s[0][M—1],s[1][0],s[1][1],…,s[N-1][M—1]。國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷第3套一、程序填空題(本題共1題,每題1.0分,共1分。)1、使用VC++2010打開(kāi)考生文件夾下blank1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件blank1.c。在此程序中,函數(shù)fun的功能是:計(jì)算出形參s所指字符串中包含的單詞個(gè)數(shù),作為函數(shù)值返回。為便于統(tǒng)計(jì),規(guī)定各單詞之間用空格隔開(kāi)。例如,形參s所指的字符串為:ThisisaClanguageprogram.,函數(shù)的返回值為6。請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:部分源程序在文件BIANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdio.h>intfun(char*s){intn=0,flag=0;while(*s!=’\0’){if(*s!=’’&&flag==0){/*********found*********/【1】;flag=1;)/*********found*********/if(*s==’’)flag=【2】;/*********found*********/【3】;}returnn;}main(){charstr[81];intn;printf("\nEnteralihete
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 海南思政黨史課題申報(bào)書(shū)
- 材料課題申報(bào)書(shū)范文
- 辦公隔斷合同范例
- 假肢定制合同范例
- 臨滄代理記賬合同范本
- 甘肅教學(xué)課題申報(bào)書(shū)
- 下水道整修合同范本
- 合法派遣合同范本
- 書(shū)畫掛牌合同范本
- 公司激勵(lì)股合同范本
- 急診醫(yī)院感染與控制課件
- 人教版 七年級(jí)英語(yǔ)下冊(cè) UNIT 2 單元綜合測(cè)試卷(2025年春)
- 2024年“新能源汽車裝調(diào)工”技能及理論知識(shí)考試題與答案
- 【地理】非洲-位置與范圍 高原為主的地形課件-2024-2025學(xué)年湘教版(2024)七下
- 搶救車的管理
- GB/T 44927-2024知識(shí)管理體系要求
- GB/T 17350-2024專用汽車和專用掛車分類、名稱及型號(hào)編制方法
- 2024年07月山東省泰山財(cái)產(chǎn)保險(xiǎn)股份有限公司2024年夏季校園招考29名工作人員筆試歷年參考題庫(kù)附帶答案詳解
- 臨床護(hù)理死亡病例討論
- 2025年廣東韶關(guān)城投集團(tuán)招聘筆試參考題庫(kù)含答案解析
- 醫(yī)療器械生產(chǎn)企業(yè)并購(gòu)合同
評(píng)論
0/150
提交評(píng)論