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

下載本文檔

版權(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ī)試模擬試卷15(共9套)(共345題)國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷第1套一、選擇題(本題共40題,每題1.0分,共40分。)1、對(duì)長(zhǎng)度為n的線性表排序,在最壞情況下,比較次數(shù)不是n(n一1)/2的排序方法是()。A、快速排序B、冒泡排序C、直接插入排序D、堆排序標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:除了堆排序算法的比較次數(shù)是O(nlog2n),其他的都是n(n—1)/2。2、若有定義語(yǔ)句:char*s1="OK",*s2="ok";以下選項(xiàng)中,能夠輸出“OK”的語(yǔ)句是()。A、if(strcmp(s1,s2)!=0)puts(s2);B、if(strcmp(s1,s2)!=0)puts(s1);C、if(strcmp(s1,s2)==1)puts(s1);D、if(strcmp(s1,s2)==0)puts(s1);標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:strcmp(s1,s2)是字符串比較函數(shù),比較規(guī)則是兩個(gè)字符串自左向右逐個(gè)字符相比(按照ASCII碼值大小),以第一個(gè)不相同的字符的大小作為比較結(jié)果。因?yàn)?;?’<’0’,所以strcmp(s1,s2)為負(fù)值,只有B選項(xiàng)正確。3、判斷字符串s1是否大于字符串s2,應(yīng)該使用()。A、iffstrcmp(s1,s2)<0)B、if(s1>s2)C、if(strcmp(s2,s1)<0)D、if(strcmp(s1,s2))標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查字符串比較函數(shù)strcmp(),調(diào)用形式:strcmp(str+1,str+2),其中sh+1、str+2分別是字符串存儲(chǔ)區(qū)的首地址,函數(shù)功能:比較字符串str1和str2,當(dāng)str1str2,返回值為正數(shù)。注意:不能使用關(guān)系運(yùn)算符比較兩個(gè)字符串的大小。4、有以下程序:#include<stdio.h>#include<string.h>structA{inta;charb[10];doublec;};voidf(structA*t);main(){structAa={1001,"ZhangDa’’,1098.0};f(&a);printf(’’%d,%s,%6.1f\n’’,a,a,a,b,a.c);}voidf(structA*t){t->a=1002;strcpy(t->b,’’ChangRong’’);t->c=1202.0;}程序運(yùn)行后的輸出結(jié)果是()。A、1001,zhangDa,1098.0B、1002,ChangRong,1202.0C、1001,ChangRong,1098.0D、1002,zhangDa,1202.0標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題主要考查是的函數(shù)調(diào)用時(shí)參數(shù)之間的傳遞問(wèn)題。在C語(yǔ)言中參數(shù)之間的傳遞是傳值,也就是把實(shí)參的值復(fù)制一份傳遞給形參,而實(shí)參的值不發(fā)生變化。但對(duì)于指針調(diào)用來(lái)說(shuō),函數(shù)直接對(duì)實(shí)參的地址操作,因此在這種情況下實(shí)參變化。5、程序調(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ò)誤。6、有兩個(gè)關(guān)系R和T如下:則由關(guān)系R得到關(guān)系T的操作是()。A、選擇B、交C、投影D、并標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:關(guān)系T是由關(guān)系R的第3、4行的元組組成的,很顯然這是對(duì)關(guān)系R進(jìn)行選擇運(yùn)算的結(jié)果??梢院?jiǎn)單理解為:選擇運(yùn)算是對(duì)行的操作,投影運(yùn)算是對(duì)列的操作。選擇是從表中選出滿足給定條件的元組組成新表。故C選項(xiàng)正確。7、有以下程序,其中%u表示按無(wú)符號(hào)整數(shù)輸出()。main(){unsignedintx=0xFFFF;/*x的初值為十六進(jìn)制數(shù)*/printf("%u\n",x);}程序運(yùn)行后的輸出結(jié)果是()。A、-1B、65535C、32767D、0xFFFF標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:因?yàn)椋表示按無(wú)符號(hào)整數(shù)輸出,而x用十六進(jìn)制表示為0xFFFF,所以輸出無(wú)符號(hào)整數(shù)的最大值65535。8、以下程序的輸出結(jié)果是()。#includeintm=13;intfun(intX,inty){intm=2;retum(x*y—m);}main(){inta=7,b=6;printf(“%d”,fun(a,b)/m);}A、1B、3C、7D、10標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查的是函數(shù)調(diào)用時(shí)的參數(shù)的作用域。在函數(shù)調(diào)用時(shí),當(dāng)全局變量和局部變量的名稱相同時(shí),在局部變量的作用域內(nèi),局部變量起作用,因而在fun函數(shù)內(nèi)m的應(yīng)該等于2,main中的m為13,所以返回值為7×6.2=40,而fun(a,b)/m值為40/13=3。9、有以下程序:#include<stdio.h>main(){intb[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;for(i=0;i<3;i++)for(j=i;j<=i;j++)t+=b[i][b[j][i]];printf("%d\n",t);}程序運(yùn)行后的輸出結(jié)果是()。A、3B、4C、1D、9標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:每次內(nèi)循環(huán)只循環(huán)一次就結(jié)束,第一次外循環(huán)時(shí)t=t+b[0][b[0][0]]=1+b[0][0]=1+0=1;第二次外循環(huán)時(shí)t=t+b[1][b[1][1]]=1+b[1][1]=1+1=2;第三次外循環(huán)時(shí)t=t+b[2][b[2][2]]=2+b[2][2]=2+2=4。10、以下程序的輸出結(jié)果是()。#includeintm=13;intfun(intx,inty){intm=2;retum(x*y—m);}main(){inta=7,b=6;printf("%d",fun(a,b)/m);}A、1B、3C、7D、10標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查的是函數(shù)調(diào)用時(shí)的參數(shù)的作用域。在函數(shù)調(diào)用時(shí),當(dāng)全局變量和局部變量的名稱相同時(shí),在局部變量的作用域內(nèi),局部變量起作用,因而在fun函數(shù)內(nèi)m的應(yīng)該等于2,main中的m為13,所以返回值為7×6.2=40,而fun(a,b)/m值為40/13=3。11、有以下程序段:#include<stdio.h>inta,b,c;a=10;b=50;c=30;if(a>b)a=b,b=c;c=a;printf("a=%db=%dc=%d\n",a,b,c);程序運(yùn)行后的輸出結(jié)果是()。A、a=10b=50c=30B、a=10b=50c=10C、a=10b=30c=10D、a=50b=30c=50標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題中a>b的條件不滿足,所以不執(zhí)行逗號(hào)表達(dá)式a=b,b=c;的操作,而是執(zhí)行c=a操作,即c的值為10。12、有以下程序#includevoidmain(){chars[]={"01aXy");inti,n=0;for(i=0;s[i]!=0;i++)if(s[i]<=’a’&&s[i]>=’z’)n++;printf("%d\a",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的ASCIl碼,所以滿足a的ASCII碼并且大于z的的ASCII碼的字符是不存在的,所以輸出0。13、設(shè)有定義:structcomplex{intreal,unreal;}data1={1,8},data2;則以下賦值語(yǔ)句中錯(cuò)誤的是()。A、data2=(2,6);B、data2=data1;C、data2.real=data1.real;D、data2.real=data1.unreal;標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:A)選項(xiàng)中可以在聲明變量的同事為data2賦值,但是data2=(2,6);應(yīng)寫作data2={2,6}。所以選擇A。14、C語(yǔ)言程序的模塊化通過(guò)以下哪個(gè)選項(xiàng)來(lái)實(shí)現(xiàn)()。A、變量B、函數(shù)C、程序行D、語(yǔ)句標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:C語(yǔ)言程序的模塊化通過(guò)函數(shù)來(lái)體現(xiàn),所以選擇B。15、下列敘述中錯(cuò)誤的是()。A、C程序可以由多個(gè)程序文件組成B、一個(gè)C語(yǔ)言程序只能實(shí)現(xiàn)一種算法C、C程序可以由一個(gè)或多個(gè)函數(shù)組成D、一個(gè)C函數(shù)可以單獨(dú)作為一個(gè)C程序文件存在標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在一個(gè)C語(yǔ)言程序中可以進(jìn)行多種算法的實(shí)現(xiàn),對(duì)算法的個(gè)數(shù)沒(méi)有規(guī)定,所以B錯(cuò)誤。16、有以下程序:#includemain(){chara,b,c,d;scanf("%c%c",&a,&b);c=getchar();d=getchar();printf("%c%c%c%c\n",a,b,c,d;}當(dāng)執(zhí)行程序時(shí),按下列方式輸入數(shù)據(jù)(從第1列開(kāi)始,代表回車,注意:回車也是一個(gè)字符)1234則輸出結(jié)果是()。A、B、12C、1234D、標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:按照從鍵盤輸入的數(shù)據(jù)可以判斷字符1給了變量a,字符2給了變量b,字符即回車給了變量c,字符3給了變量d。所以打印輸出的結(jié)果為D選項(xiàng)。17、下述語(yǔ)句中,在字符串s1和s2相等時(shí)顯示“theyareEqual”的是()。.A、if(*s1==*s2)puts("theyareEqual");B、if(!strcmp(s1,s2))puts("theyareEqual");C、if(s1==s2)Puts("theyareEqual");D、if(strcmp(s1,s2))puts("theyareEqual");標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:字符串比較不能用兩個(gè)等號(hào)(==)來(lái)進(jìn)行比較,應(yīng)使用strcmp(s1,s2)函數(shù)來(lái)比較。strcmp(s1,s2)函數(shù)的功能是:當(dāng)字符串s1和s2相等時(shí),返回值為0,因此,當(dāng)表達(dá)式!strcmp(s1,s2)==1時(shí),條件成立,執(zhí)行后面的語(yǔ)句,輸出thevareEqual。18、設(shè)有以下說(shuō)明,則不正確的敘述是()。unionun{inta;charb:floatc;}art;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ù)。19、在一棵二叉樹(shù)上,第5層的結(jié)點(diǎn)數(shù)最多是()。A、8B、9C、15D、16標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:根據(jù)二叉樹(shù)的性質(zhì):二叉樹(shù)第i(i≥1)層上至多有2i-1個(gè)結(jié)點(diǎn)。得到第5層的結(jié)點(diǎn)數(shù)最多是16個(gè)。20、在關(guān)系代數(shù)運(yùn)算中,有5種基本運(yùn)算,它們是()。A、并(∪)、差(-)、交(∩)、除(÷)和笛卡兒積(×)B、并(∪)、差(-)、交(∩)、投影(Ⅱ)和選擇(o)C、并(∪)、交(∩)、投影(π)、選擇(σ)和笛卡兒積(×)D、并(∪)、差(-)、投影(π)、選擇(σ)和笛卡兒積(×)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:并、差、笛卡兒積、投影和選擇是5種基本的運(yùn)算,其他運(yùn)算即交、連接和除,均可以通過(guò)5種基本的運(yùn)算來(lái)表達(dá)。21、有以下程序:#include<stdio.h>main(){inta[]={2,4,6,8},*p=a,i;for(i=0;i<4;i++)a[i]=*p++;printf("%d\n",a[2]);}程序運(yùn)行后的輸出結(jié)果是()。A、2B、8C、4D、6標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題通過(guò)語(yǔ)句“*p=a”將一維數(shù)組a的首地址的值賦值給變量p,即p的值為2。執(zhí)行for循環(huán),a[i]=*p++,表示將p的值賦給a[i]后,再進(jìn)行++操作。因此4次循環(huán)后a[2]的值為6。故D選項(xiàng)正確。22、有以下函數(shù):intfun(char*s){char*t=s;while(*t++);return(t-s);}該函數(shù)的功能是()。A、計(jì)算s所指字符串的長(zhǎng)度B、比較兩個(gè)字符串的大小C、計(jì)算s所指字符串占用內(nèi)存字節(jié)的個(gè)數(shù)D、將s所指字符串復(fù)制到字符串t中標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:首先char*s接受一個(gè)字符型數(shù)組的首地址,并將這個(gè)首地址賦給另一個(gè)字符型指針char*t,while(*t++)不斷循環(huán)直到*t為"\0",再將t-1,這時(shí)字符指針t指向字符串的最后一個(gè)字符,又因?yàn)閟指向字符數(shù)組的首地址,即字符串的首地址,所以return(t-s)便是返回字符數(shù)組中字符串的長(zhǎng)度。23、下列程序的運(yùn)行結(jié)果是()。#includevoidfun(int*S,int*P){staticintt=3;*p=s[c];t--;}voidmain(){inta[]={2,3,4,5},k,x;for(k=0;k<4;k++){fun(a,&x);printf("%d,",x);}}A、5,4,3,2,B、2,3,4,5,C、2,2,2,2,D、5,5,5,5,標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:分析fun函數(shù)程序段,可知fun函數(shù)要實(shí)現(xiàn)的功能是將s中第(t+1)個(gè)元素以前的元素逆置賦給數(shù)組p。由于fun函數(shù)定義了靜態(tài)變量t=3,因此,在主函數(shù)中調(diào)用函數(shù)fun(a,&x)時(shí),就是要將數(shù)組a中前4個(gè)元素逆置賦給數(shù)組x,最后輸出x數(shù)組。24、有以下程序:#includemain(){ehara=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正確。25、以下敘述錯(cuò)誤的是()。A、一個(gè)算法所包含的操作步驟應(yīng)該是有限的B、任何能通過(guò)編譯和運(yùn)行的算法都一定能得到所期望的結(jié)果C、算法中每一條指令必須有確切的含義D、算法可以用各種描述方法來(lái)進(jìn)行描述標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:算法的特點(diǎn):零個(gè)或多個(gè)輸入,至少一個(gè)輸出,可行性(能編程實(shí)現(xiàn)),有窮性(有限步出結(jié)果),確定性(描述不能有歧義)。可知選項(xiàng)A,C,D正確。C語(yǔ)言中,通過(guò)編譯,可以運(yùn)行的程序,不一定符合題目的本意,因此即使可以運(yùn)行得到結(jié)果,也不一定和預(yù)期的結(jié)果一樣,否則就不需要調(diào)試和修改程序了,故B選項(xiàng)錯(cuò)誤。答案為B選項(xiàng)。26、以下不屬于C語(yǔ)言整型常量的是()。A、0LB、-018C、0XaD、200U標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:C語(yǔ)言中,整數(shù)可以有八進(jìn)制、十進(jìn)制和十六進(jìn)制3種表示形式,十進(jìn)制的數(shù)碼取值為0~9,沒(méi)有前綴;八進(jìn)制的數(shù)碼取值為0—7,必須以0開(kāi)頭,作為八進(jìn)制數(shù)的前綴;十六進(jìn)制的數(shù)碼取值為:0~9,A~F或a~f,前綴為0X或0x。另外,對(duì)于長(zhǎng)整型數(shù),使用后綴L或l來(lái)表示,無(wú)符號(hào)數(shù)使用后綴U或u來(lái)表示;0L表示十進(jìn)制長(zhǎng)整型數(shù)0,故選項(xiàng)A正確;OXa表示十六進(jìn)制數(shù)a,即十進(jìn)制數(shù)值10,故選項(xiàng)C正確;200U表示十進(jìn)制無(wú)符號(hào)整型數(shù)200,故選項(xiàng)D正確;負(fù)數(shù)一般使用二進(jìn)制補(bǔ)碼形式保存在內(nèi)存中,按照八進(jìn)制顯示時(shí),前綴0在最前面,后面的數(shù)值由二進(jìn)制補(bǔ)碼轉(zhuǎn)換成八進(jìn)制,無(wú)負(fù)數(shù)符號(hào),在C程序中,只有十進(jìn)制數(shù)可以是負(fù)數(shù),而八進(jìn)制和十六進(jìn)制數(shù)只能是整數(shù)。因此答案為B。27、設(shè)二叉樹(shù)中度為2的節(jié)點(diǎn)有8個(gè),則葉子節(jié)點(diǎn)數(shù)是()。A、10B、8C、6D、9標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:二叉樹(shù)中,葉子節(jié)點(diǎn)的個(gè)數(shù)比度為2的節(jié)點(diǎn)的個(gè)數(shù)多1,所以答案為9。28、定義結(jié)構(gòu)體數(shù)組structstu{intnum;charname[20];}x[5]={1,"ZHAO",2,"QIAN",3,"SUN",4,"LEE",5,"ZHOU"};for(i=1;i<5;i++)printf("%d%c",x[i].num,x[i].name[2]);程序執(zhí)行后的輸出結(jié)果是()。A、2A3N4E5OB、1H213U4EC、1A2N3E4OD、1A2N3E4O標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題主要考查結(jié)構(gòu)體數(shù)組。x[i].num是結(jié)構(gòu)體x[i]中的num成員,x[i].name[2]是結(jié)構(gòu)體x[il中name成員的第3個(gè)元素。第一次循環(huán),i=1,輸出x[1].num,x[1].name[2]的值,即2A;第二次循環(huán),i=2,輸出x[2].num,x[2].name[2]的值,即3N;第三次循環(huán),i=3,輸出x[3].num,x[3].name[2]的值,即4E;第四次循環(huán),i=4,輸出x[4].num,x[4].name[2]的值,即50。29、下面屬于字符類的實(shí)例是A、’518’B、5C、’nmD、’\n’標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:字符實(shí)例的一般形式是用一對(duì)單引號(hào)括起來(lái)的一個(gè)字符。另外ASCII碼中還有一些控制字符,C語(yǔ)言中用轉(zhuǎn)義字符的形式來(lái)書寫這些常,轉(zhuǎn)義字符一反斜杠(\)開(kāi)始,后面跟1個(gè)字符或字符序列?!?18’單引號(hào)中有三個(gè)字符,A選項(xiàng)錯(cuò)誤。"5"雙引號(hào)為字符串,B選項(xiàng)錯(cuò)誤。’nm’單引號(hào)中有兩個(gè)字符,C選項(xiàng)錯(cuò)誤?!痋n’為換行符,屬于字符類實(shí)例,D選項(xiàng)正確。30、有以下程序:intf1(doublea)main(){returna*a;}{doublew;intf2(intx,inty)w=f2(2.1,4.0);{doublea,b;:a=f1(x);}b=f1(y);returna+b:}程序執(zhí)行后,變量w的值是()。A、20.21B、20C、20.0D、0.0標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查函數(shù)調(diào)用的使用。計(jì)算w的時(shí)候,先調(diào)用f2函數(shù),f2函數(shù)的公式是“a+b”,計(jì)算a和b的時(shí)候又調(diào)用到f1函數(shù),f1的函數(shù)是“a*a”,因此,w的計(jì)算公式為:w=(double)[(int)(2.1*2.1)+(int)(4.0*4.0)]=20.0。31、有如下程序#include<stdio.h>main(){inta=8,b;b=(a>>2)%2;printf("%d,%d\n",a,b);}程序運(yùn)行后的輸出結(jié)果是A、8,0B、4,0C、4,1D、8,1標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:>>右移運(yùn)算符,按位右移運(yùn)算規(guī)則是將一個(gè)操作數(shù)先轉(zhuǎn)換成二進(jìn)制數(shù),然后將二進(jìn)制數(shù)各位右移若干位,移出的低位舍棄;并在高位補(bǔ)位,若為無(wú)符號(hào)數(shù),右移時(shí)左邊高位移入0。a=8=01000,執(zhí)行a>>2后,a=00010=2,b=2%2=0,輸出a,b為8,0,A選項(xiàng)正確。32、有以下程序#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).33、下列敘述中正確的是A、數(shù)據(jù)庫(kù)系統(tǒng)可以解決數(shù)據(jù)冗余和數(shù)據(jù)獨(dú)立性問(wèn)題,而文件系統(tǒng)不能B、數(shù)據(jù)庫(kù)系統(tǒng)能夠管理各種類型的文件,而文件系統(tǒng)只能管理程序文件C、數(shù)據(jù)庫(kù)系統(tǒng)可以管理龐大的數(shù)據(jù)量,而文件系統(tǒng)管理的數(shù)據(jù)量較少D、數(shù)據(jù)庫(kù)系統(tǒng)獨(dú)立性較差,而文件系統(tǒng)獨(dú)立性較好標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:數(shù)據(jù)管理技術(shù)的發(fā)展經(jīng)歷了3個(gè)階段:人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫(kù)系統(tǒng)階段。三者各自的特點(diǎn)如下表所示。數(shù)據(jù)庫(kù)系統(tǒng)可以解決數(shù)據(jù)冗余和數(shù)據(jù)獨(dú)立性問(wèn)題,而文件系統(tǒng)不能。數(shù)據(jù)庫(kù)系統(tǒng)和文件系統(tǒng)的區(qū)別不僅在于管理的文件類型與數(shù)據(jù)量的多少。數(shù)據(jù)庫(kù)系統(tǒng)具有高度的物理獨(dú)立性和一定的邏輯獨(dú)立性,而文件系統(tǒng)獨(dú)立性較好。故本題選A選項(xiàng).34、以下是正確C語(yǔ)言標(biāo)識(shí)符的是A、&3B、#3C、_3D、-3標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:C語(yǔ)言合法標(biāo)識(shí)名的命名規(guī)則是:(1)標(biāo)識(shí)符由字母、數(shù)字和下劃線組成,(2)第一個(gè)字符不能是數(shù)字只能是字母或下劃線。選項(xiàng)A的第一個(gè)字符為&,非法,選項(xiàng)B,第一個(gè)字符為#,非法,選項(xiàng)D,第一個(gè)字符為-,非法。答案為選項(xiàng)C.35、有以下程序#include<stdio.h>intm=1,n=2;voidsub1(intm,intn){m+=2;n++;}voidsub2(){m++;n+=2;}main(){printf("%d,%d,",m,n);sub1(4,5);printf("%d,%d,",m,n);sub2();printf("%d,%d\n",m,n);}程序運(yùn)行后的輸出結(jié)果是A、1,2,1,2,2,4B、1,2,6,6,7,8C、1,2,2,4,2,4D、1,2,6,6,2,4標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:全局變量與函數(shù)體內(nèi)局部變量同名時(shí),局部變量會(huì)覆蓋全局變量,因此在sub1()函數(shù)內(nèi),全局變量m,n是不可見(jiàn)的,在sub1()對(duì)m,n操作的是局部變量,對(duì)全局變量不產(chǎn)生影響。但在sub2()函數(shù)內(nèi),由于沒(méi)有和全局變量變量重名,因此在此函數(shù)內(nèi),m,n是可見(jiàn)的。因此,第一個(gè)printf()打印的是全局變量m,n,故打印的是1,2,第二個(gè)printf(),調(diào)用sub1(),沒(méi)有修改全局變量m,n.故打印的是1,2,第三個(gè)printf(),之前調(diào)用了sub2(),修改了全局變量m,n。因此,打印的是2,4,故答案為A選項(xiàng)。36、軟件按功能可以分為應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于系統(tǒng)軟件的是A、學(xué)生成績(jī)管理系統(tǒng)B、ERP系統(tǒng)C、辦公自動(dòng)化系統(tǒng)D、UNIX系統(tǒng)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:系統(tǒng)軟件是管理計(jì)算機(jī)的資源,提高計(jì)算機(jī)的使用效率,為用戶提供各種服務(wù)的軟件。應(yīng)用軟件是為了應(yīng)用于特定的領(lǐng)域而開(kāi)發(fā)的軟件。選項(xiàng)A屬于系統(tǒng)軟件,選項(xiàng)B、C、D屬于應(yīng)用軟件。故選D選項(xiàng).37、有以下程序#include<stdio.h>main(){intt;scanf("%d",&t);if(t++<6)printf("%d\n",t);elseprintf("%d\n",t--);printf("\n");}執(zhí)行時(shí)輸入:6<回車>,則輸出結(jié)果是A、6B、8C、7D、5標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:后置自增運(yùn)算:k++表示先運(yùn)算,后自加。if(t++<6)printf("%d\n",t);elseprintf("%d\n",t--);t的初值為6,t++<6,則條件為假,執(zhí)行printf("%d\n",t--),此時(shí)t=7,,打印t值為7,之后進(jìn)行自減操作t=6。,。因此打印的結(jié)果為7。故答案為C選項(xiàng)。38、為了降低算法的空間復(fù)雜度,要求算法盡量采用原地工作(inplace)。所謂原地工作是指A、執(zhí)行算法時(shí)所使用的額外空間固定(即不隨算法所處理的數(shù)據(jù)空間大小的變化而變化)B、執(zhí)行算法時(shí)所使用的額外空間隨算法所處理的數(shù)據(jù)空間大小的變化而變化C、執(zhí)行算法時(shí)不使用額外空間D、執(zhí)行算法時(shí)不使用任何存儲(chǔ)空間標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:算法的空間復(fù)雜度是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間,包括輸入數(shù)據(jù)所占的存儲(chǔ)空間、程序本身所占的存儲(chǔ)空間、算法執(zhí)行過(guò)程中所需要的額外空間。如果額外空間量相對(duì)于問(wèn)題規(guī)模(即輸入數(shù)據(jù)所占的存儲(chǔ)空間)來(lái)說(shuō)是常數(shù),即額外空間量不隨問(wèn)題規(guī)模的變化而變化,則稱該算法是原地工作的。故選A選項(xiàng)39、設(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)。40、C源程序中不能表示的數(shù)制是()。A、二進(jìn)制B、八進(jìn)制C、十六進(jìn)制D、十六進(jìn)制標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C語(yǔ)言中整型常量可以用十進(jìn)制數(shù)、八進(jìn)制數(shù)、十六進(jìn)制數(shù)來(lái)表示。雖然計(jì)算機(jī)只能識(shí)別二進(jìn)制數(shù),但二進(jìn)制不能用來(lái)表示整型常量。二、程序填空題(本題共1題,每題1.0分,共1分。)41、下列給定程序中,函數(shù)fun的功能是:將形參a所指數(shù)組中的前半部分元素中的值與后半部分元素中的值對(duì)換。形參11中存放數(shù)組中數(shù)據(jù)的個(gè)數(shù),若n為奇數(shù),則中間的元素不動(dòng)。例如,若a所指數(shù)組中的數(shù)據(jù)為:1,2,3,4,5,6,7,8,9,則調(diào)換后為:6,7,8,9,5,1,2,3,4。請(qǐng)?jiān)诔绦虻南庐嬀€處填入正確的內(nèi)容并將下畫線刪除,使程序得出正確的結(jié)果。注意:部分源程序給出如下。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdio.h>#defineN9voidfun(inta[],intn){inti,t,P;/*********found*********/p=(n%==0)?n/2:n/2+【1】;for(i=0;i<n/2;i++){t=a[i];/*********found*********/a[i]=a[p+【2】];/*********found*********/【3】=t;}}main(){intb[N]={1,2,3,4,5,6,7,8,9},i;printf("\nTheoriginaldata:\n");for(i=0;i<N;i++)printf("%4d",b[i]);printf("\n");fun(b,N);printf("\nThedataaftermoving:\n");for(i=0;i<N;i++)printf("%4d",b[i]);printf("\n");}標(biāo)準(zhǔn)答案:(1)1(2)i(3)a[p+i]或*(a+p+i)知識(shí)點(diǎn)解析:條件運(yùn)算符組成條件表達(dá)式的一般形式:表達(dá)式1?表達(dá)式2:表達(dá)式3。其求值規(guī)則為:如果表達(dá)式1的值為真,則以表達(dá)式2的值作為條件表達(dá)式的值,否則以表達(dá)式3的值作為整個(gè)條件表達(dá)式的值。填空1:該處是判斷數(shù)組元素的個(gè)數(shù)是奇數(shù)還是偶數(shù),為奇數(shù)時(shí)要使當(dāng)前位置加1,使p指向數(shù)組中間位置。填空2和填空3:這里是一個(gè)比較常見(jiàn)的數(shù)組位置調(diào)換程序,應(yīng)填入i和a[p+i]或*(a+p+i)。變量交換算法:如果變量a、b互換,需借助第3個(gè)變量temp完成,即temp=a;a=b;b=temp;。三、程序修改題(本題共1題,每題1.0分,共1分。)42、給定函數(shù)MODl1.c中函數(shù)fun的功能是:將一個(gè)由八進(jìn)制數(shù)字字符組成的字符串轉(zhuǎn)換為與其面值相等的十進(jìn)制整數(shù)。規(guī)定輸入的字符串最多只能包含5位八進(jìn)制數(shù)字字符。例如,若輸入:77777,則輸出將是:32767。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。1#include<stdio.h>2#include<string.h>3#inolude<stdlib.h>4intfun(char*p)5{intn;6/**********found**********/7n=*p-’o’;8p++;9while(*p!=0){10/**********found**********/11n=n*8+*p-’0’;12p++;13}14returnn;15}16main()17{chars[6];inti;intn;18printf(’’Enterastring(ocataldigits):’’);gets(s);19if(strlen(s)>5){printf(’’Error:stririgtoolonger!\n\n’’);exit(0);}20for(2=0;s[i];i++)21if{s[i]<’0’||s[i]>’7’{22{printf(’’Error:%cnotisocataldigits!\n\n’’,s[i]);exit(0);}23printf(’’Theoriginalstring:’’);puts(s);24n=fun(s);25printf(’’\n%Sisconveredtointegernumber:%d\n\n’’,s,n);26}標(biāo)準(zhǔn)答案:(1)n=*p-’0’;(2)n=n*8+*p-’0’;知識(shí)點(diǎn)解析:函數(shù)功能是實(shí)現(xiàn)八進(jìn)制到十進(jìn)制的轉(zhuǎn)換。(1)第一個(gè)標(biāo)識(shí)下面:語(yǔ)句“n=*p-’o’;”中的’o’不是數(shù)字零,而是字母’o’,根據(jù)前面的分析因此改為:“n=*p-’0’;”。(2)第二個(gè)標(biāo)識(shí)下面:語(yǔ)句“n=n*8+*p-’o’”,首先進(jìn)行同(1)相同的修改,變量P沒(méi)有定義,根據(jù)題意要求這里應(yīng)該是“*p-’0’”,所以此句改為:“n=n*8+*p-’0’;”。四、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)43、編寫函數(shù)intfun(intlim,intaa[MAX]),其功能是求出小于或等于lim的所有素?cái)?shù)并放在aa數(shù)組中,并返回所求出的素?cái)?shù)的個(gè)數(shù)。注意:部分源程序在文件PROG1.C中。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語(yǔ)句。試題程序:1#include<conio.h>2#include<stdio.h>3#include<stdlib.h>4#defineNAX1005intfun(intlim,intaa[MAX])6{78}9voidmain()10{11FILE*wf;12intlimit,i,sum;13intaa[MA×];14system(’’CLS’’);15printf(’’輸入一個(gè)整數(shù):’’);16scanf(’’%d’’,&limit);17sum=fun(limit,aa);18for(i=0;i標(biāo)準(zhǔn)答案:1intfun(intlim,intaa[MAX])2{3inti,j,k=0;4for(i=2;i<=lim;i++)/*求出小于或等于lim的全部素?cái)?shù)*/5{for(j=2;j=i)8aa[k++]=i;/*將求出的素?cái)?shù)放入數(shù)組aa中*/9}10returnk;/*返回所求出的素?cái)?shù)的個(gè)數(shù)*/11}知識(shí)點(diǎn)解析:本程序如果一個(gè)數(shù)是合數(shù),那么它的最小質(zhì)因數(shù)肯定小于等于他的平方根。使用for循環(huán)語(yǔ)句查找小于lim的所有數(shù),使用內(nèi)嵌的循環(huán)判斷語(yǔ)句判斷該數(shù)是否為素?cái)?shù)。在做這道題時(shí),需要重點(diǎn)掌握素?cái)?shù)的判定方法:for(j=2;j國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷第2套一、選擇題(本題共39題,每題1.0分,共39分。)1、下列敘述中正確的是()。A、一個(gè)算法的空間復(fù)雜度大,則其時(shí)間復(fù)雜度也必定大B、一個(gè)算法的空間復(fù)雜度大,則其時(shí)間復(fù)雜度必定小C、一個(gè)算法的時(shí)間復(fù)雜度大,則其空間復(fù)雜度必定小D、算法的時(shí)間復(fù)雜度與空間復(fù)雜度沒(méi)有直接關(guān)系標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:算法的空間復(fù)雜度是指算法在執(zhí)行過(guò)程中所需要的內(nèi)存空間,算法的時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量,兩者之間并沒(méi)有直接關(guān)系,故答案為D。2、在下列關(guān)系運(yùn)算中,不改變關(guān)系表中的屬性個(gè)數(shù)但能減少元組個(gè)數(shù)的是()。A、并B、交D、除標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:關(guān)系R與S經(jīng)交運(yùn)算后所得到的關(guān)系是由那些既在R內(nèi)又在S內(nèi)的有序組所組成,記為R(lS,交運(yùn)算不改變關(guān)系表中的屬性個(gè)數(shù)但能減少元組個(gè)數(shù)。3、設(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)用這種格式輸入字符串時(shí),空格和回車符都作為輸入數(shù)據(jù)的分隔符而不能被讀入,題目要求輸入的字符串有空格,不符合題意要求,答案為C選項(xiàng)。4、下列程序的運(yùn)行結(jié)果是()。#inc1udevoidfun(int*s,int*p){staticintt=3;*p=s[t];t一一:}voidmain(){inta[]={2,3,4,5},k,x;for(k=0;k<4;k++){fun(a,&x);printf("%d,",x);}}A、5,4,3,2,B、2,3,4,5,C、2,2,2,2,D、5,5,5,5,標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:分析fun函數(shù)程序段,可知fun函數(shù)要實(shí)現(xiàn)的功能是將s中第(t+1)個(gè)元素以前的元素逆置賦給數(shù)組p。由于fun函數(shù)定義了靜態(tài)變量t=3,因此,在主函數(shù)中調(diào)用函數(shù)fun(a,&x)時(shí),就是要將數(shù)組a中前4個(gè)元素逆置賦給數(shù)組x,最后輸出x數(shù)組。5、一個(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ù),所以入棧最早的最后出棧,所以選擇B)。6、下面程序的運(yùn)行結(jié)果是()。y=5;x=14;y=((x=3*y,x+6),X-1);printf("x=%d,y=%d",x,y);A、x=27,y=27B、x=12,y=13C、x=15,y=14D、x=y=27標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查的是逗號(hào)表達(dá)式。逗號(hào)表達(dá)式的求解步驟是先求解表達(dá)式1,然后依次求解表達(dá)式2,直到表達(dá)式N的值。整個(gè)逗號(hào)表達(dá)式的值就是最后一個(gè)表達(dá)式N的值。表達(dá)式(x=3*y,x+6)中,x=15。表達(dá)式y(tǒng)=x-1=14。7、以下能正確表述算式sin(2πr+30°)的C語(yǔ)言表達(dá)式是()。A、sin(2*3.14*r+3.14*30/180.0)B、sin(2*π*r+30)C、sin(2*3.14*r+30)D、sin(2*3.14*r+30*3.14/360.0)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:考查算術(shù)表達(dá)式的寫法,C中沒(méi)有π,需要用數(shù)值3.14代替,C中sin函數(shù)的參數(shù)為弧度,角度30轉(zhuǎn)成弧度應(yīng)為3.14*30/180。故而選A)。8、以下程序段中的變量已正確定義for(i=0;i<4;i++,i++)for(k=1;k<3;k++);printf("*");該程序段的輸出結(jié)果是()。A、*B、****C、**D、********標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:考查循環(huán)嵌套。循環(huán)嵌套執(zhí)行次數(shù)為外層循環(huán)次數(shù)*內(nèi)層循環(huán)次數(shù)。但是本題中循環(huán)次數(shù)與輸出結(jié)果沒(méi)有關(guān)系,兩層循環(huán)之后只是執(zhí)行了一個(gè)空語(yǔ)句;,然后輸出一個(gè)′*′。故而答案選A)。9、軟件生命周期可分為定義階段、開(kāi)發(fā)階段和維護(hù)階段,下面不屬于開(kāi)發(fā)階段任務(wù)的是()。A、測(cè)試B、設(shè)計(jì)C、可行性研究D、實(shí)現(xiàn)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:開(kāi)發(fā)階段包括分析、設(shè)計(jì)和實(shí)施兩類任務(wù)。其中分析、設(shè)計(jì)包括需求分析、總體設(shè)計(jì)和詳細(xì)設(shè)計(jì)3個(gè)階段,實(shí)施則包括編碼和測(cè)試兩個(gè)階段,選項(xiàng)C不屬于開(kāi)發(fā)階段。10、有以下程序:#include<stdio.h>#include<string.h>main(){chara[10]="abcd";printf("%d,%d\n",strlen(a),sizeof(a));}程序運(yùn)行后的輸出結(jié)果是()。A、7,4B、4,10C、8,8D、10,10標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在C語(yǔ)言中,strlen()用來(lái)統(tǒng)計(jì)字符串中字符的個(gè)數(shù),sizeof()是求分配給數(shù)組的存儲(chǔ)空間大小。題目中字符串a(chǎn)中字符個(gè)數(shù)為4,但由于數(shù)組a定義含有10個(gè)字符,所以所占空間大小為10。11、下列關(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、文件由字符序列組成,其類型只能是文本文件標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查文件的概念,文件是由數(shù)據(jù)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件,所以答案為C選項(xiàng)。12、以下關(guān)于long、int和short類型數(shù)據(jù)占用內(nèi)存大小的敘述中正確的是()。A、均占4個(gè)寧節(jié)B、根據(jù)數(shù)據(jù)的大小來(lái)決定所占內(nèi)存的字節(jié)數(shù)C、由用戶自己定義D、由C語(yǔ)言編譯系統(tǒng)決定標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:不同的編譯系統(tǒng)或計(jì)算機(jī)系統(tǒng)對(duì)兒類整型數(shù)所占用的字節(jié)數(shù)有不同的規(guī)定。long、int和short類型數(shù)據(jù)占用內(nèi)存大小是由選擇何種C編譯系統(tǒng)決定的。13、執(zhí)行以下程序段后,w的值為()。intw=’A’,x=14,y=15;w=((x|y)&&(w<’a’));A、一1B、NULLC、1D、0標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:因?yàn)閤=14,y=15都是非零整數(shù),因此x|y=1。又因?yàn)椤疉’+32=’a’,知w<’a’也為真,因此(x|y)&&(w<’a’)的值為1。14、有以下程序#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。15、以下不正確的定義語(yǔ)句是()。A、doublex[5]={1.0,2.0,3.0,4.0,5.0);B、inty[5l={0,1,2,3,4,5};C、charc1[]={’1’,’2’,’3’,’4’,’5’};D、charc2[]={’a’,’b’,’c’};標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查對(duì)一維數(shù)組的賦值。選項(xiàng)B)中,y[5]說(shuō)明數(shù)組中有5個(gè)元素,但卻給它賦了6個(gè)值,數(shù)組溢出所以是錯(cuò)誤的。16、有以下程序:#includeintflintt[],intn);main(){inta[4]={1,2,3,4},s;s=f(a,2);printf("%d\n",s);}intflintt[],intn){if((n>0)&&(n<5))returnt[n+1]+f(t,n-1);elsereturn0;}程序運(yùn)行后的輸出結(jié)果是()。A、4B、7C、10D、6標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題主要考查的是函數(shù)的遞歸調(diào)用,子函數(shù)f是一個(gè)遞歸函數(shù),所以主函數(shù)中執(zhí)行f(a,2)時(shí),其執(zhí)行過(guò)程是a[3]+f(a,1)=a[3]+a[2]+f(a,0)=7。17、交換兩個(gè)變量的值,不允許用臨時(shí)變量,應(yīng)該使用下列()位運(yùn)算符。A、&B、^C、‖D、~標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:按邏輯位運(yùn)算的特定作用主要有3點(diǎn):①用按位與運(yùn)算將特定位清0或保留特定位;②用按位或運(yùn)算將特定的位置設(shè)置為1;③用按位異或運(yùn)算將某個(gè)變量的特定位翻轉(zhuǎn)或交換兩個(gè)變量的值。18、下列敘述中,不屬于軟件需求規(guī)格說(shuō)明書的作用的是()。A、便于用戶,開(kāi)發(fā)人員進(jìn)行理解和交流B、反映出用戶問(wèn)題的結(jié)構(gòu),可以作為軟件開(kāi)發(fā)工作的基礎(chǔ)和依據(jù)C、作為確認(rèn)測(cè)試和驗(yàn)收的依據(jù)D、便于開(kāi)發(fā)人員進(jìn)行需求分析標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:軟件需求規(guī)格說(shuō)明書有以下幾個(gè)方面的作用:①便于用戶、開(kāi)發(fā)人員進(jìn)行理解和交流;②反映出用戶問(wèn)題的結(jié)構(gòu),可以作為軟件開(kāi)發(fā)工作的基礎(chǔ)和依據(jù):③作為確認(rèn)測(cè)試和驗(yàn)收的依據(jù)。19、以下說(shuō)法正確的是()。A、C語(yǔ)言程序運(yùn)行時(shí)可以從鍵盤上讀入用戶輸入的C源程序并附加到本程序的尾部一并執(zhí)行B、C語(yǔ)言程序運(yùn)行時(shí)可以從鍵盤上讀入用戶以二進(jìn)制輸入的指令,并執(zhí)行這些指令C、C語(yǔ)言程序運(yùn)行時(shí)可以從鍵盤上讀入用戶輸入的c源程序并逐行執(zhí)行D、C語(yǔ)言程序運(yùn)行時(shí)可以從鍵盤上讀入用戶輸入的字符或數(shù)據(jù),并依此改變程序的運(yùn)行步驟標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C語(yǔ)言運(yùn)行前,需要將C程序編譯、鏈接,生成可執(zhí)行程序文件,在運(yùn)行可執(zhí)行文件時(shí),只能從鍵盤讀入用戶輸入的字符或數(shù)據(jù),依據(jù)程序的邏輯,來(lái)改變程序運(yùn)行的步驟,選項(xiàng)D正確;不能從鍵盤讀入C源程序并附加到本程序的尾部一并執(zhí)行,選項(xiàng)A錯(cuò)誤;也不能直接讀入二進(jìn)制指令并執(zhí)行,選項(xiàng)B錯(cuò)誤;也不能讀入C源程序并逐行運(yùn)行,選項(xiàng)C錯(cuò)誤,本題答案為D。20、若變量已正確定義并賦值,則以下符合C語(yǔ)言語(yǔ)法的表達(dá)式是()。A、a=a+7;B、a=7+b+c,a++C、int(12.3%4)D、a=a+7=c+b標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:選項(xiàng)A是一個(gè)C語(yǔ)句,不是表達(dá)式;選項(xiàng)B是利用一個(gè)逗號(hào)表達(dá)式給a賦值;選項(xiàng)C中的“%”求余運(yùn)算符要求兩個(gè)運(yùn)算對(duì)象都必須是整型;選項(xiàng)D中,不能用表達(dá)式給表達(dá)式賦值,但是變量可以給自身賦值,例如:a=a+1。21、表達(dá)式:(int)((double)9/2)-9%2的值是()。A、0B、3C、4D、5標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:先將整型數(shù)據(jù)9強(qiáng)制轉(zhuǎn)換成double型,然后除以2得到的結(jié)果與double型保持一致,即為4.5,再將4.5強(qiáng)制轉(zhuǎn)換成整型數(shù)據(jù)4,然后計(jì)算9%2的值為1,最后計(jì)算4—1的值為3,所以選擇B選項(xiàng)。22、一個(gè)工作人員可以使用多臺(tái)計(jì)算機(jī),而一臺(tái)計(jì)算機(jī)可被多個(gè)人使用,則實(shí)體工作人員與實(shí)體計(jì)算機(jī)之間的聯(lián)系是()。A、一對(duì)一B、一對(duì)多C、多對(duì)多D、多對(duì)一標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:因?yàn)橐粋€(gè)人可以操作多個(gè)計(jì)算機(jī),而一臺(tái)計(jì)算機(jī)又可以被多個(gè)人使用,所以兩個(gè)實(shí)體之間是多對(duì)多的關(guān)系。23、若a、b、c、d都是int型變量且都已經(jīng)正確賦初值,則以下不正確的賦值語(yǔ)句是()。A、a+d;B、a++;C、a=b=c=d=100;D、a=(b=3)+(d=5);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C語(yǔ)言規(guī)定,賦值號(hào)的右邊可以是一個(gè)賦值表達(dá)式,因此選項(xiàng)C)、選項(xiàng)D)正確;在選項(xiàng)B)中,a++是一個(gè)自加1的表達(dá)式,a被重新賦值,因此它是一個(gè)合法的賦值表達(dá)式;選項(xiàng)A)中,a+d是一個(gè)算術(shù)表達(dá)式,雖然最后有一個(gè)分號(hào),但這個(gè)表達(dá)式中沒(méi)有賦值操作,因此它不是一條賦值語(yǔ)句。24、有以下程序#include<stdio.h>intfun(int(*s)[4],intn,intk){intm,i;m=s[0][k];for(i=1;i<n;i++)if(s[i][k]>m)m=s[i][k];returnm;}main(){inta[4][4]={{1,2,3,4},{11,12,13,14},{21,22,23,24},{31,32,33,34}};printf("%d\n",fun(a,4,0));}程序的運(yùn)行結(jié)果是A、4B、34C、31D、32標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題重點(diǎn)考察二維數(shù)組名作為實(shí)參進(jìn)行參數(shù)傳遞,在主函數(shù)中調(diào)用了fun函數(shù),實(shí)參為二維數(shù)組名a和兩個(gè)整數(shù)4、0,這樣對(duì)應(yīng)定義fun函數(shù)首部也有三種形式,這里采用了第一種形式,也就是行指針,這樣在fun函數(shù)對(duì)s[i][j]進(jìn)行操作實(shí)際上就是對(duì)主函數(shù)中的a[i][j]進(jìn)行操作,再分析fun函數(shù)的作用便可知,是求二維數(shù)組第0列中最大的那個(gè)元素。因此C選項(xiàng)正確。25、有以下程序#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的值為0,條件不成立但仍要執(zhí)行自減操作,y的值為-1,跳出循環(huán),打印y的值-1。26、有以下程序:#include<stdio.h>intfun(intx){intp;if(x==0||x==1)return3;P=x-fun(x-2);return(p);}main(){printf("%d\n",fun(9));}程序運(yùn)行后的輸出結(jié)果是()。A、4B、5C、9D、7標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查函數(shù)的遞歸調(diào)用。執(zhí)行fun(9)后,fun(9)=9-(7(-5-(3-f(1))))=7,故D選項(xiàng)正確。27、以下選項(xiàng)中關(guān)于程序模塊化的敘述錯(cuò)誤的是()。A、可采用自底向上、逐步細(xì)化的設(shè)計(jì)方法把若干獨(dú)立模塊組裝成所要求的程序B、把程序分成若干相對(duì)獨(dú)立、功能單一的模塊,可便于重復(fù)使用這些模塊C、把程序分成若干相對(duì)獨(dú)立的模塊,可便于編碼和調(diào)試D、可采用自頂向下、逐步細(xì)化的設(shè)計(jì)方法把若干獨(dú)立模塊組裝成所要求的程序標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:程序模塊化思想中,可以采用自頂向下、逐步細(xì)化的方法。所以選項(xiàng)A中“自底向上”的說(shuō)法是錯(cuò)誤的。28、面向?qū)ο蠓椒ㄖ?,繼承是指()。A、一組對(duì)象所具有的相似性質(zhì)B、一個(gè)對(duì)象具有另一個(gè)對(duì)象的性質(zhì)C、各對(duì)象之間的共同性質(zhì)D、類之間共享屬性和操作的機(jī)制標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:繼承是面向?qū)ο蟮姆椒ǖ囊粋€(gè)主要特征,是使用已有的類的定義作為基礎(chǔ)建立新類的定義技術(shù)。廣義地說(shuō),繼承是指能夠直接獲得已有的性質(zhì)和特征,而不必重復(fù)定義它們,所以說(shuō)繼承是指類之間共享屬性和操作的機(jī)制。29、設(shè)有以下程序段:inty;y=rand()%30+1;則變量y的取值范圍是()。A、0≤y≤30B、0<y≤30C、1<y<30D、1<y≤30標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:rand()產(chǎn)生隨機(jī)整數(shù),任何整數(shù)對(duì)30求余得到的整數(shù)范圍為0~29,則y的取值范圍為1≤y≤30或者0<y≤30,y是整數(shù),0<y≤30。30、函數(shù)fun的功能是在a所指的具有n個(gè)元素的數(shù)組中查找最大值并返回給調(diào)用函數(shù),函數(shù)不完整。intfun(int*a,intn){int*p,*s;for(p=a,s=a;p-a<n;p++)if(______________)s=p;return*s:}在if語(yǔ)句下劃線處應(yīng)填入的選項(xiàng)是()。A、p>sB、*p>*sC、a[p]>a[s]D、p-a>p-s標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:函數(shù)fun的功能是在形參a所指的具有n個(gè)元素的數(shù)組中查找最大值并返回。通過(guò)for循環(huán)比較,s始終指向最大值的那個(gè)元素。取指針的值,使用*p,因此比較使用*p和*s,需要找到最大值,當(dāng)*s<*p時(shí),修改指針s的指向,因此答案為B選項(xiàng)。31、某系統(tǒng)總體結(jié)構(gòu)圖如下圖所示:該系統(tǒng)總體結(jié)構(gòu)圖的深度是()。A、7B、6C、3D、2標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:可知:該樹(shù)的深度為3,例如,系統(tǒng)-功能2-功能2.1,就是最深的度數(shù)的一個(gè)表現(xiàn)。32、若已包括頭文件<stdio.h>n<string.h>,運(yùn)行下面程序的輸出結(jié)果是()。charsl[10]=’’12345’’,s2[10]=’’089’’,s3[]=’’67’’;strcat(strcpy(s1,s2),s3);puts(s1);A、08967B、0894567C、089567D、89567標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查數(shù)組的4個(gè)知識(shí)點(diǎn):①C語(yǔ)言中,二維數(shù)組或多維數(shù)組元素排列的順序是按行存放;②不同數(shù)組的元素之間可以相互賦值;③字符型數(shù)組中存放的是字符,int型數(shù)組中存放的是字符對(duì)應(yīng)的ASCII碼值,雖然在計(jì)算機(jī)內(nèi)部字符常量都是作為整型量來(lái)處理的,其對(duì)應(yīng)的整數(shù)值就是ASCII碼值,但兩者并不完全等價(jià);④數(shù)組名后的方括號(hào)內(nèi)可以為常量,也可以為常量表達(dá)式,但不可以為變量。33、閱讀以下程序#includemain(){IntCase;floatprintF;printf("請(qǐng)輸入2個(gè)數(shù):");scanf("%d%f",&Case,&printF);printf("%d%f\n",Case,printF);}以下說(shuō)法正確的是()。A、定義語(yǔ)句出錯(cuò),Case是關(guān)鍵字,不能用作用戶自定義標(biāo)識(shí)符,printF不能用作用戶自定義標(biāo)識(shí)符.B、定義語(yǔ)句出錯(cuò),Int無(wú)法被識(shí)別。C、定義語(yǔ)句無(wú)錯(cuò),scanf不能作為輸入函數(shù)使用D、定義語(yǔ)句無(wú)錯(cuò),printf不能輸出Case的值標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:C語(yǔ)言是一種大小寫敏感的語(yǔ)言,因此Int應(yīng)為int,而CaseprintF則可以使用。34、有以下程序(其中的strstr()函數(shù)頭部格式為:char*strstr(char*p1,char*p2)確定p2字符串是否在p1中出現(xiàn),并返回p2第一次出現(xiàn)的字符串首地址)#include<stdio.h>#include<string.h>char*a="you";char*b="WelcomeyoutoBeijing!";main(){char*p;p=strstr(b,a)+strlen(a)+1;printf("%s\n",p);}程序的運(yùn)行結(jié)果是A、toBeijing!B、youtoBeijing!C、WelcomeyoutoBeijing!D、Beijing!標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:調(diào)用strstr函數(shù),可知a指向的字符串在b指向的字符串中第一次出現(xiàn)的位置,并將此地址賦給指針p。strlen()函數(shù)是求字符串的實(shí)際長(zhǎng)度(不包含結(jié)束標(biāo)志),并且作為函數(shù)值返回。strstr函數(shù)返回的地址下標(biāo)值為9,加上a長(zhǎng)度3,再加1,此時(shí)p指向的地址下標(biāo)值為13,輸出"toBeijing!",A選項(xiàng)正確。35、若x,i,j和k都是int型變量,則計(jì)算表達(dá)式x=(i=4,j=16,k=32)后,x的值為()。A、4B、16C、32D、52標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查逗號(hào)表達(dá)式的運(yùn)用。x=(i=4,j=16,k=32)中的i=4,j=16,k=32構(gòu)成一個(gè)逗號(hào)表達(dá)式,整個(gè)表達(dá)式的值取最后一項(xiàng)的值,即32,所以x的值為32.36、以下程序中C的二進(jìn)制值是()。chara=2,b=4,c;c=a^b>>2A、00000011B、00010100C、00011100D、00011000標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題主要考查按位異或和右移運(yùn)算。b=4的二進(jìn)制為00000100,b>>2后為00000001,a=2的二進(jìn)制為00000010,兩者異或?yàn)?0000011。37、以下選項(xiàng)中,合法的C語(yǔ)言實(shí)數(shù)是A、3.1e0.4B、2.00E-01C、E13D、7.12E標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:實(shí)型常量:用帶小數(shù)點(diǎn)的數(shù)字表示,其值有兩種表達(dá)形式,分別為十進(jìn)制小數(shù)形式和指數(shù)形式。十進(jìn)制小數(shù)形式由數(shù)字和小數(shù)組成,必須有小數(shù)點(diǎn),且小數(shù)點(diǎn)的位置不受限制。指數(shù)形式由十進(jìn)制數(shù)加階碼標(biāo)志"e"或"E"以及階碼(只能為整數(shù),可以帶符號(hào))組成。.2e0為指數(shù)形式實(shí)數(shù),A選項(xiàng)正確。3.1e0.4,階數(shù)不是整數(shù),C選項(xiàng)錯(cuò)誤。E13階碼標(biāo)志前缺少十進(jìn)制數(shù),C選項(xiàng)錯(cuò)誤。7.12E缺少階碼,D選項(xiàng)錯(cuò)誤。38、有如下程序#include<stdio.h>main(){inti,*ptr;intarray[5]={5,3,1};for(ptr=array,i=0;i<5;i++,ptr++){if(*ptr==0)putchar(’X’);elseputchar(’A’+*ptr);}printf("\n");}程序運(yùn)行后的輸出結(jié)果是A、FDBXXB、FFFXXC、FDBBBD、ABCDE標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在對(duì)數(shù)組進(jìn)行初始化時(shí),如果對(duì)數(shù)組的全部元素賦以初值,定義時(shí)可以不指定數(shù)組長(zhǎng)度,如果被定義數(shù)組的長(zhǎng)度與初值個(gè)數(shù)不同,則數(shù)組長(zhǎng)度不能省略;如果在說(shuō)明數(shù)組時(shí)給出了長(zhǎng)度,但沒(méi)有給所有的元素賦予初始值,而只依次給前面的幾個(gè)數(shù)組元素賦予初值,那么C語(yǔ)言將自動(dòng)對(duì)余下的元素賦初值,則array={5,3,1,0,0}。程序執(zhí)行過(guò)程為:執(zhí)行for循環(huán),將數(shù)組首地址賦給指針ptr,依次遍歷每一個(gè)元素,如果數(shù)組元素為0則輸出’X’,如果不為0則按照字母表輸出字符’A’后第array[i]個(gè)字符。程序運(yùn)行后的輸出結(jié)果為:FDBXX,A選項(xiàng)正確。39、若有定義語(yǔ)句:inta[4][10],*P,*q[4];,且0≤i<4,則錯(cuò)誤的賦值是()。A、p=aB、q[i]=a[i]C、p=a[i]D、p=&a[2][1]標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:二維數(shù)組名是指向指針的指針,所以a和q都為指向指針的指針,而p為指向int類型的指針,p和a不同類型,故A項(xiàng)p=a賦值語(yǔ)句錯(cuò)誤。其余選項(xiàng)可以正確賦值,其中D項(xiàng)是用&返回整數(shù)的地址,然后復(fù)賦值p。二、程序填空題(本題共1題,每題1.0分,共1分。)40、函數(shù)fun的功能是:在有n個(gè)元素的結(jié)構(gòu)體數(shù)組std中,查找有不及格科目的學(xué)生,找到后輸出學(xué)生的學(xué)號(hào);函數(shù)的返回值是有不及格科目的學(xué)生人數(shù)。例如,主函數(shù)中給出了4名學(xué)生的數(shù)據(jù),則程序運(yùn)行的結(jié)果為:學(xué)號(hào):N1002學(xué)號(hào):N1006共有2位學(xué)生有不及格科目請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容,并把下劃線刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下的BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdio.h>typedefstruct{charnum[8];doublescore[2];/**********found**********/)[1];intfun(STUstd[],intn){inti,k=0;for(i=0;i<n;i++)/**********found**********/if(std[i].score[0]<60[2]std[i].score[1]<60){k++;printf("學(xué)號(hào):%s",std[i].num);}/**********found**********/return[3];}main(){STUstd[4]={"N1001",76.5,82.0,"N1002",53.5,73.0,"N1005",80.5,66.0,"N1006",81.0,56.0},printf("\n共有%d位學(xué)生有不及格科目\n",fun(std,4));}標(biāo)準(zhǔn)答案:(1)STU(2)||(3)k知識(shí)點(diǎn)解析:填空1:STU結(jié)構(gòu)體別名,通過(guò)min()中的語(yǔ)句可知填空2:||只要學(xué)生二門課成績(jī)有不及格的,就算不及格,因此使用或運(yùn)算填空3:k返回的是不及格的學(xué)生個(gè)數(shù),有題意可知k是累計(jì)個(gè)數(shù)的。三、程序修改題(本題共1題,每題1.0分,共1分。)41、下列給定程序中,函數(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分。)42、請(qǐng)編一個(gè)函數(shù)voidfun(inttt[M][N],intPP[N]),tt指向一個(gè)M行N列的二維數(shù)組,求出二維數(shù)組每列中最大元素,并依次放入pp所指的一維數(shù)組中。二維數(shù)組中的數(shù)已在主函數(shù)中給出。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語(yǔ)句。試題程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>#defineM3#defineN4voidfun(inttt[M][N],intpp[N]){}voidmain(){intt[M][N]={{68,32,54,12},{14,24,88,58},{42,22,44,56}};intP[N],i,j,k;system("CLS");printf("Theriginaldatais:\n");for(i=0;i<N;i++){for(j=0;j<N;j++)printf("%6d",t[i][j]);printf("\n");}fun(t,P);printf("\nTheresultis:\n");for(k=0;k<N;k++)printf("%4d",P[k]);printf("\n");}標(biāo)準(zhǔn)答案:voidfun(inttt[M][N],intpp[N]){inti,j,max;for(j=0;j<N;j++){max=tt[0][j];/*假設(shè)各列中的第一個(gè)元素最大*/for(i=0;i<M;i++)if(tt[i][j]>max)/*如果各列中的其他元素比最大值大,則將這個(gè)更大的元素看做當(dāng)前該列中最大元素*/max=tt[i][j];pp[j]=max;/*將各列的最大值依次放入pp數(shù)組中*/}}知識(shí)點(diǎn)解析:本題中函數(shù)的功能是求出二維數(shù)組中每列的最大元素。首先,假設(shè)各列中的第一個(gè)元素最大,然后利用行標(biāo)值的移動(dòng)來(lái)依次取得各列中其他元素的值,并與假設(shè)的最大值進(jìn)行比較,如果遇到更大的,則把這個(gè)更大的元素看做當(dāng)前該列中最大的元素,繼續(xù)與該列中其他元素進(jìn)行比較。國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷第3套一、選擇題(本題共40題,每題1.0分,共40分。)1、表達(dá)式:(int)((double)9/2)—(9)%2的值是()。A、0B、3C、4D、5標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:運(yùn)算符“/”和“%”的優(yōu)先級(jí)高于“—”,所以先進(jìn)行除法和求余運(yùn)算,再進(jìn)行減法運(yùn)算。強(qiáng)制類型轉(zhuǎn)換表達(dá)式的形式:(類型名)(表達(dá)式)?!?/2”結(jié)果為4,轉(zhuǎn)換成double類型再轉(zhuǎn)換成int類型結(jié)果依然為4,(9)%2的結(jié)果為1,4—1的最后結(jié)果為3。2、下列選項(xiàng)中,不屬于數(shù)據(jù)庫(kù)管理的是()。A、數(shù)據(jù)庫(kù)的建立B、數(shù)據(jù)庫(kù)的調(diào)整C、數(shù)據(jù)庫(kù)的監(jiān)控D、數(shù)據(jù)庫(kù)的校對(duì)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)管理一般包括:數(shù)據(jù)庫(kù)的建立、數(shù)據(jù)庫(kù)的調(diào)整、數(shù)據(jù)庫(kù)的重組、數(shù)據(jù)庫(kù)的安全性控制與完整性控制、數(shù)據(jù)庫(kù)的故障恢復(fù)和數(shù)據(jù)庫(kù)的監(jiān)控。3、下面函數(shù)的功能是()。sss(s,t)char*s,*t;{while(*s);while(*t)*(s++)=*(t++);returns;}A、將字符串s復(fù)制到字符串t中B、比較兩個(gè)字符串的大小C、求字符串的長(zhǎng)度D、將字符串t續(xù)接到字符串S中標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查指針變量的運(yùn)用。本題中的函數(shù)實(shí)質(zhì)上是將字符串t續(xù)接到字符串s中。4、有以下程序#includemain(){FILE*fp;inti=20,j=30,k,n;fp=fopen("dl.dat","w");fprintf(fp,"%d\n",i);fprintf(fp,"%d\n",j);fclose(fp);fp=fopen("dl.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)解析:分析程序段,百先以只寫萬(wàn)式打開(kāi)文件,利用fprintf函數(shù)將i和j的值寫入到文件d1.dat中,然后關(guān)閉文件;再以只讀方式打開(kāi)文件,利用格式化輸入函數(shù)fscanf將文件中的數(shù)據(jù)賦值給k和n,最后輸出k和n的值,分別是20和30。5、在軟件開(kāi)發(fā)中,需求分析階段可以使用的工具是()。A、N—S圖B、DFD圖C、PAD圖D、程序流程圖標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在需求分析階段可以使用的工具有數(shù)據(jù)流圖(DFD圖),數(shù)據(jù)字典(D),判定樹(shù)與判定表,所以選擇B。6、設(shè)變量已正確定義并賦值,以下正確的表達(dá)式是()。A、x=y+z+5,++yB)int(15.8%5)B、x=y*5=x+zC、x=25%5.0標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:B與D選項(xiàng)中取模運(yùn)算符%的左右兩個(gè)操作數(shù)均應(yīng)為整數(shù),所以B、D錯(cuò)誤。C選項(xiàng)中不能將x+y的值賦給表達(dá)式y(tǒng)*5,所以C錯(cuò)誤。7、軟件生命周期中的活動(dòng)不包括()。A、市場(chǎng)調(diào)研B、需求分析C、軟件測(cè)試D、軟件維護(hù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:軟件生命周期可以分為軟件定義、軟件開(kāi)發(fā)與軟件運(yùn)行維護(hù)三個(gè)階段。主要活動(dòng)階段是:可行件研究與計(jì)劃、需求分析、軟件設(shè)計(jì)、軟件實(shí)現(xiàn)、軟件測(cè)試、運(yùn)行和維護(hù),所以選擇A。8、設(shè)有定義:inta=1,b=2,c=3;,以下語(yǔ)句中執(zhí)行效果與其他三個(gè)不同的是()。A、if(a>b)c=a,a=b,b=c;B、if(a>b){c=a,a=b,b=c}C、if(a>b)c=a;a=b;b=c;D、if(a>b){c=a;a=b;b=c}標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:C語(yǔ)言中if語(yǔ)句后面只跟一條語(yǔ)句時(shí),可以省略大括號(hào)。即if語(yǔ)句僅作用于緊隨其后的那條語(yǔ)句或者是復(fù)合語(yǔ)句的內(nèi)容,所以A項(xiàng)執(zhí)行三條語(yǔ)句組成的復(fù)合語(yǔ)句;BD兩項(xiàng)執(zhí)行大括號(hào)中的三條語(yǔ)句;而C項(xiàng)只執(zhí)行c=a;。9、算法的時(shí)間復(fù)雜度是指()。A、算法的長(zhǎng)度B、執(zhí)行算法所需要的時(shí)間C、算法中的指令條數(shù)D、算法執(zhí)行過(guò)程中所需要的基本運(yùn)算次數(shù)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:算法的時(shí)間復(fù)雜度,是指執(zhí)行算法所需要的工作量,可以用算法在執(zhí)行過(guò)程中所需基本運(yùn)算的執(zhí)行次數(shù)來(lái)度量算法的工作量。10、以下關(guān)于long、int和short類型數(shù)據(jù)占用內(nèi)存大小的敘述中正確的是()。A、均占4個(gè)字節(jié)B、根據(jù)數(shù)據(jù)的大小來(lái)決定所占內(nèi)存的字節(jié)數(shù)C、由用戶自己定義D、由C語(yǔ)言編譯系統(tǒng)決定標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:不同的編譯系統(tǒng)或計(jì)算機(jī)系統(tǒng)對(duì)幾類整型數(shù)所占用的字節(jié)數(shù)有不同的規(guī)定。long、int和short類型數(shù)據(jù)占用內(nèi)存大小是由選擇何種c編譯系統(tǒng)決定的。11、在下列敘述中,錯(cuò)誤的是()。A、C語(yǔ)言中,二維數(shù)組或多維數(shù)組是按行存放的B、賦值表達(dá)式b[1][2]=a[2][3]是正確的C、chara[1];a[0]=’A’與inta[1];a[0]=’A’等價(jià)D、數(shù)組名后的方括號(hào)內(nèi)可以為常量表達(dá)式,也可以為變量標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查數(shù)組的4個(gè)知識(shí)點(diǎn):①C語(yǔ)言中,二維數(shù)組或多維數(shù)組元素排列的順序是按行存放;②不同數(shù)組的元素之間可以相互賦值;③字符型數(shù)組中存放的是字符,int型

溫馨提示

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

評(píng)論

0/150

提交評(píng)論