國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷7(共340題)_第1頁(yè)
國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷7(共340題)_第2頁(yè)
國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷7(共340題)_第3頁(yè)
國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷7(共340題)_第4頁(yè)
國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷7(共340題)_第5頁(yè)
已閱讀5頁(yè),還剩96頁(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ī)試模擬試卷7(共9套)(共340題)國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷第1套一、選擇題(本題共39題,每題1.0分,共39分。)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、有以下程序:#includemain(){intx=1,y=0,a=0,b=0;switch(x){ease1:switch(y){ease0:a++;break;case1:b++;break;}ease2:a++;b++;break;ease3:a++;h++;}printf(“a=%d,b=%d\n”,a,b);}程序運(yùn)行后的輸出結(jié)果是()。A、a=2,b=2B、a=2,b=1C、a=1,b=1D、a=1,b=0標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:case常量表達(dá)式只是起語(yǔ)句標(biāo)號(hào)作用,并不是該處進(jìn)行條件判斷。在執(zhí)行switch語(yǔ)句時(shí),根據(jù)switch的表達(dá)式,找到與之匹配的case語(yǔ)句,就從此case子句執(zhí)行下去,不在進(jìn)行判斷,直到碰到break或函數(shù)結(jié)束為止。所以執(zhí)行內(nèi)層switch(y)時(shí)只執(zhí)行了a++,此時(shí)a的值為1。然后執(zhí)行外層case2語(yǔ)句的a+十;b++;a為2,b為1。所以結(jié)果為B。4、以下程序的輸出結(jié)果是()。#includemain(){inta=8,b=6,m=1;switch(a%4){case0:m++;break;case1:m++:switch(b%3){default:m++;case0:m++:break;}}printf(“%d\11”,m);}A、1B、2C、3D、4標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查switch語(yǔ)句。因?yàn)閍=8,a%4=0,所以執(zhí)行case0后面的語(yǔ)句,將m加1,遇到break語(yǔ)句跳出SWitch。5、若輸入bcdefgh、m、abcdefg,以下程序的輸出結(jié)果為()。#include#includemain(){inti;charstring[20],str[3][20];for(i=O;i<3;i++)gets(str[i]);if(strcmp(str[0],str[1])>0)strcpy(string,str[0]);elsestrcpy(string,str[1]);iffstrcmp(str[2],string)>0)strcpy(string,str[2]);printf("/os",string);}A、bcdefghB、mC、abcdefgD、bcdefgh或abcdefg標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查字符比較函數(shù)和字符復(fù)制函數(shù):strcmp(s1,s2);函數(shù)功能:比較字符串str1和str2比較的是字符的ASCII碼的值,當(dāng)str1str2,返回值為正數(shù)。6、己知函數(shù)的調(diào)用形式:fread(buffer,size,count,fp);其中buffer代表的是()。A、一個(gè)整型變量,代表要讀入的數(shù)據(jù)項(xiàng)總數(shù)B、一個(gè)文件指針,指向要讀的文件C、一個(gè)指針,是指向的輸入數(shù)據(jù)放在內(nèi)存中的起始位置D、一個(gè)存儲(chǔ)區(qū),存放要讀的數(shù)據(jù)項(xiàng)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:數(shù)據(jù)塊輸入/輸出函數(shù)的調(diào)用形式為:ffead(buffer,size,count,fp))。ffead函數(shù)參數(shù)說(shuō)明:“buffer”是一個(gè)指針,對(duì)fread來(lái)說(shuō),它是讀入數(shù)據(jù)的存放地址;“size”是要讀寫(xiě)的字節(jié)數(shù);“count”是要進(jìn)行讀寫(xiě)多少個(gè)size字節(jié)的數(shù)據(jù)項(xiàng);“fp”是指文件型指針。7、設(shè)變量x和y均已正確定義并賦值,以下if語(yǔ)句中,在編譯時(shí)將產(chǎn)生錯(cuò)誤信息的是()。A、it(x++);B、if(x>y&&y!=0);C、ifi(x>y)x-elsey++;D、if(y<0){;}elsex++;標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:選項(xiàng)C)中,if(x>y)后面的“x一”是一個(gè)表達(dá)式而不是一個(gè)語(yǔ)句,所以在編譯時(shí)會(huì)產(chǎn)生錯(cuò)誤信息。8、若有定義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á)式:x=表達(dá)式17表達(dá)式2:表達(dá)式3的含義是:先求解表達(dá)式1,若為非0(真),則求解表達(dá)式2,將表達(dá)式2的值賦給x。若表達(dá)式1的值為0(假),則求解表達(dá)式3,將表達(dá)式3的值賦給x。在本題中與表達(dá)式1:(x-y)等價(jià)的是(x-y<0||x-y>0)。9、數(shù)據(jù)結(jié)構(gòu)中,與所使用的計(jì)算機(jī)無(wú)關(guān)的是數(shù)據(jù)的()。A、存儲(chǔ)結(jié)構(gòu)B、物理結(jié)構(gòu)C、邏輯結(jié)構(gòu)D、線性結(jié)構(gòu)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)反映的是數(shù)據(jù)元素之間的邏輯關(guān)系,與使用的計(jì)算機(jī)無(wú)關(guān)。10、以下關(guān)于long、int和short類(lèi)型數(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ì)幾類(lèi)整型數(shù)所占用的字節(jié)數(shù)有不同的規(guī)定。long、int和short類(lèi)型數(shù)據(jù)占用內(nèi)存大小是由選擇何種c編譯系統(tǒng)決定的。11、有以下程序:#include<stdio.h>main(){intx[3][2]={0},i;for(i=0;i<3;i++)scanf("%d",x[i]);printf("%3d%3d%3d\n",x[0][0],x[0][1],x[1][0]);}若運(yùn)行時(shí)輸入:246<回車(chē)>,則輸出結(jié)果為()。A、204B、200C、240D、246標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題中輸入的3個(gè)數(shù)據(jù)2,4,6分別賦值給了x[0][0],x[1][0],x[2][0]。x[0][1]仍為初始時(shí)的0,所以打印輸出時(shí)的結(jié)果為A)選項(xiàng)。12、若已定義:inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0≤i≤9,則對(duì)a數(shù)組元素不正確的引用是()。A、a[p-a]B、*(&a[i])C、p[i]D、a[10]標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查對(duì)一維數(shù)組的引用。對(duì)于已定義的數(shù)組a[M],數(shù)組元素的正確引用必須滿足下標(biāo)小于M且為正整數(shù)。選項(xiàng)D中下標(biāo)值出現(xiàn)溢出。13、有以下程序:#include<stdio.h>structS{intn;inta[20];};voidf(int*a,intn){int1;for(i=0;i<n-1;i++)a[i]+=i;}main(){inti;struetSs={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、2,3,1,6,8,7,5,4,10,9,B、3,4,2,7,9,8,6,5,11,10,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)解析:題目中定義了一個(gè)結(jié)構(gòu)體類(lèi)型s,然后定義了一個(gè)結(jié)構(gòu)體變量s并初始化,執(zhí)行f函數(shù)后,將s中元素a的每個(gè)元素都加上i,這里需要注意最后一個(gè)元素沒(méi)有加i,所以最終答案為C選項(xiàng)。14、若有代數(shù)式,(其中e僅代表自然對(duì)數(shù)的底數(shù),不是變量),則下列能夠正確表示該代數(shù)式的C語(yǔ)言表達(dá)式是()。A、sqrt(abs(n^x+e^x))B、sqrt(fabs(pow(n,x)+pow(x,e)))C、sqrt(fabs(pow(n,x)+exp(x)))D、sqrt(fabs(pow(x,n)+exp(x)))標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:n和e的x冪次方,要分別調(diào)用C語(yǔ)言的數(shù)學(xué)庫(kù)函數(shù)doublepow(n,x)和doubleexp(x),因?yàn)檫@兩個(gè)函數(shù)的返回值都為double型,對(duì)兩者的和計(jì)算絕對(duì)值,調(diào)用庫(kù)函數(shù)doublefabs(pow(n,x)+exp(x)),求出和的絕對(duì)值,再調(diào)用開(kāi)平方函數(shù)doublesqrt(fabs(pow(n,x)+exp(x))),這樣計(jì)算出的結(jié)果就是題干中表達(dá)式的值。15、有下列程序,其中%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)解析:“%u”格式符表示以十進(jìn)制形式輸出無(wú)符號(hào)整形變量。本題中無(wú)符號(hào)整形變量x=0xFFFF表示的是十六進(jìn)制無(wú)符號(hào)整型變量的最大值65535,所以最后輸出的結(jié)果為65535。16、以下敘述中正確的是()。A、C語(yǔ)言比其他語(yǔ)言高級(jí)B、C語(yǔ)言可以不用編譯就能被計(jì)算機(jī)識(shí)別執(zhí)行C、C語(yǔ)言以接近英語(yǔ)國(guó)家的自然語(yǔ)言和數(shù)學(xué)語(yǔ)言作為語(yǔ)言的表達(dá)形式D、C語(yǔ)言出現(xiàn)的最晚,具有其他語(yǔ)言的一切優(yōu)點(diǎn)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是C語(yǔ)言的基本特點(diǎn)。C語(yǔ)言是一種高級(jí)編程語(yǔ)言,但并不是比其他語(yǔ)言高級(jí);C語(yǔ)言源程序必須經(jīng)過(guò)編譯生成目標(biāo)文件才能被計(jì)算機(jī)識(shí)別執(zhí)行;C語(yǔ)言出現(xiàn)比較晚,它既有優(yōu)點(diǎn)也有缺點(diǎn),而并不是具有其他一切語(yǔ)言的優(yōu)點(diǎn)。17、設(shè)有以下語(yǔ)句:inta=1,b=2,c;13=a^(b<<2);執(zhí)行后,c的值為()。A、7B、9C、8D、6標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:b為2,二進(jìn)制為00000010,執(zhí)行左移兩位操作后為00001000,然后與a00000001做異或操作結(jié)果為00001001,即十進(jìn)制的9。18、若有定義和語(yǔ)句:inta,b;scanf("%d,%d,",&a,&b);以下選項(xiàng)中的輸入數(shù)據(jù),不能把值3賦給變量a、5賦給變量b的是()。A、3,5B、3,5C、3,5,D、3,5,4標(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)。19、已定義以下函數(shù):intfun(int*p){return*p;}fun函數(shù)的返回值是()。A、一個(gè)整數(shù)B、不確定的值C、形參P中存放的值D、形參P的地址值標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:返回值為指針變量指向的數(shù)據(jù),該數(shù)據(jù)已被定義為整型。因此A選項(xiàng)正確。20、有以下程序:#include<stdio.h>voidfun(char*a,char*b){while(*a==’*’)a++;while(*b=*a){b++;a++;}}main(){char*s="*****a*b****".t[80];fun(s,t);puts(t);}程序的運(yùn)行結(jié)果是()。A、a*b****B、a*bC、*****a*bD、ab標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:注意兩個(gè)while,第一個(gè)是判斷相等“==”,第二個(gè)是賦值“=”,第一個(gè)循環(huán)終止的條件是指針指向的字符不為“*”,就會(huì)在遇到字符“a”時(shí)停止,第二個(gè)循環(huán)把a(bǔ)指針?biāo)傅膬?nèi)容依次賦給了b指針指向的內(nèi)容,直到字符串結(jié)束時(shí)終止。所以結(jié)果就是字符串的后半段,選項(xiàng)A正確。21、以下敘述正確的是()。A、只能在循環(huán)體內(nèi)和switch語(yǔ)句體內(nèi)使用break語(yǔ)句B、contiune語(yǔ)句的作用是結(jié)束整個(gè)循環(huán)的執(zhí)行C、在循環(huán)體內(nèi)使用break語(yǔ)句或continue語(yǔ)句的作用相同D、從多層循環(huán)嵌套中退出時(shí),只能使用goto語(yǔ)句標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查循環(huán)的4個(gè)知識(shí)點(diǎn):①break語(yǔ)句可以出現(xiàn)在循環(huán)體內(nèi)及switch語(yǔ)句體內(nèi),不能用于其他的語(yǔ)句;②continue語(yǔ)句的作用是結(jié)束本次循環(huán),即跳過(guò)循環(huán)體中下面尚未執(zhí)行的語(yǔ)句,而接著轉(zhuǎn)去判定循環(huán)條件是否成立,從而確定下一次循環(huán)是否繼續(xù)執(zhí)行,也就是說(shuō)執(zhí)行contiune語(yǔ)句不會(huì)使整個(gè)循環(huán)終止;③在循環(huán)體內(nèi)使用break語(yǔ)句會(huì)使循環(huán)提前終止;④從多層循環(huán)嵌套中退出時(shí),可以使用goto語(yǔ)句或者break語(yǔ)句。22、以下關(guān)于函數(shù)的敘述中正確的是()。A、函數(shù)形參的類(lèi)型與返回值的類(lèi)型無(wú)關(guān)B、函數(shù)必須要有形參C、函數(shù)必須要有返回值D、函數(shù)調(diào)用必須傳遞實(shí)參標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:暫無(wú)解析23、以下選項(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ò)誤的。24、結(jié)構(gòu)化程序所要求的基本結(jié)構(gòu)不包括()。A、順序結(jié)構(gòu)B、GOTO跳轉(zhuǎn)C、選擇(分支)結(jié)構(gòu)D、重復(fù)(循環(huán))結(jié)構(gòu)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:1966年Boehm和Jacopini證明了程序設(shè)計(jì)語(yǔ)言僅僅使用順序、選擇和重復(fù)三種基本控制結(jié)構(gòu)就足以表達(dá)出各種其他形式結(jié)構(gòu)的程序設(shè)計(jì)方法。25、以下關(guān)于return語(yǔ)句的敘述中正確的是()。A、一個(gè)自定義函數(shù)中必須有一條return語(yǔ)句B、一個(gè)自定義函數(shù)中可以根據(jù)不同情況設(shè)置多條return語(yǔ)句C、定義成void類(lèi)型的函數(shù)中可以有帶返回值的return語(yǔ)句D、沒(méi)有return語(yǔ)句的自定義函數(shù)在執(zhí)行結(jié)束時(shí)不能返回到調(diào)用處標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在函數(shù)中允許有多個(gè)return語(yǔ)句,但每次調(diào)用只能有一個(gè)return語(yǔ)句被執(zhí)行,因此只能返回一個(gè)函數(shù)值。定義成void類(lèi)型的函數(shù),不允許從該函數(shù)取得返回值,也不允許使用return語(yǔ)句,C選項(xiàng)描述錯(cuò)誤。沒(méi)有return語(yǔ)句的函數(shù)在執(zhí)行到函數(shù)的最后一條語(yǔ)句后會(huì)自動(dòng)返回到調(diào)用處,A、D選項(xiàng)描述錯(cuò)誤。因此B選瑣正確。26、有如下程序:#includestruetpair{intfirst,second;};struetpairget_min_max(int*array,intlen){inti;struetpairres;res.first=array[0];res.second=array[0];for(i=1;i<len;i++){if(array[i]<res.first)res.first=array[i];if(array[i]>res.second)res.second=array[i]:}returnres;}main(){intarray[5]={9,1,3,4};struetpairmin_max=get_min_max(array,5)printf("min=%d,max=%d\n",min_max.first,min_max.second);}程序運(yùn)行后的輸出結(jié)果是()。A、min=1,max=9B、min=0,max=9C、min=1,max=4D、min=0,max=4標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在對(duì)數(shù)組進(jìn)行初始化時(shí),如果在說(shuō)明數(shù)組時(shí)給出了長(zhǎng)度,但沒(méi)有給所有的元素賦予初始值,那么C語(yǔ)言將自動(dòng)對(duì)余下的元素賦初值0,則array[5]={9,1,3,4,0}。程序的執(zhí)行過(guò)程為:調(diào)用函數(shù)get_min_max(array,5),將數(shù)組array的首地址傳入函數(shù),定義結(jié)構(gòu)體變量res,并為其成員賦值。for循環(huán)查找數(shù)組array的最小值0,將其賦值給res的成員first,查找數(shù)組最大值9,并將其賦值給res的成員second。最后返回結(jié)構(gòu)體變量res,則min_max=res。輸出min_max.first=0,min_max.second=9。27、為了建立如圖所示的存儲(chǔ)結(jié)構(gòu)(即每個(gè)結(jié)點(diǎn)含兩個(gè)域,data是數(shù)據(jù)域,next是指向結(jié)點(diǎn)的指針域)則在()處填入的選項(xiàng)是()。strucflink{chardata;_______}node;A、structlink*next;B、linknext;C、link*next;D、strucflinknext;標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:存儲(chǔ)結(jié)構(gòu)用鏈?zhǔn)酱鎯?chǔ)。鏈?zhǔn)浇Y(jié)構(gòu)每個(gè)節(jié)點(diǎn)有個(gè)指針域,指針域指向下一個(gè)鏈?zhǔn)浇Y(jié)構(gòu)的節(jié)點(diǎn),因此指針域的結(jié)構(gòu)應(yīng)該是該結(jié)構(gòu)形式,因此應(yīng)定義為structlink*next,故答案為A選項(xiàng)。struct是結(jié)構(gòu)體的說(shuō)明符,不能省略。28、以下敘述中正確的是()。A、int*p1;int**p2;int*p3;都是合法的定義指針變量的語(yǔ)句B、指針變量只能通過(guò)求地址運(yùn)算符(&)來(lái)獲得地址值C、語(yǔ)句p=NULL;與p=\0;是等價(jià)的語(yǔ)句D、語(yǔ)句p=NULL;執(zhí)行后,指針p指向地址為0的存儲(chǔ)單元標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:暫無(wú)解析29、有以下程序:#includemain(){chars[][6]={-.a(chǎn)bed“,”abe”,“ab”};inti;for(i-0;i<3;i++)puts(s[i]);}}執(zhí)行后的輸出結(jié)果是()。A、abedabeabB、aaaC、abedbedcD、dabc標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:程序初始化一個(gè)二維數(shù)組,其中每個(gè)元素都是一個(gè)字符數(shù)組,for循環(huán)中使用字符串輸出函數(shù)puts()打印二維數(shù)組中的每個(gè)元素,puts()接受字符數(shù)組名當(dāng)做參數(shù),將該字符數(shù)組存儲(chǔ)的字符串打印出來(lái),程序中s[0]存儲(chǔ)的字符串是“abcd”,s[1]存儲(chǔ)的字符串是“abc”,s[2]存儲(chǔ)的字符串是“ab”,所以程序輸出為:abcd、abc、ab,答案選A。30、有以下程序:#include<stdio.h>nlain(){FILE*fp;inti,a[6]={1,2,3,4,5,6},k;fp=fopen("datadat","w+b");fwite(&a[0],sizeof(int),1,fp);for(i=1;i<6;i++){fseek(fp,0L,0);fwrite(&a[i],sizeof(int),1,fp);}fseek(fp,0L,0);fread(&k,sizeof(int),1,fp);felose(fp);printf("%d\n",k);}程序運(yùn)行后的輸出結(jié)果是()。A、123456B、21C、6D、654321標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:首先使用fopen函數(shù)以只寫(xiě)方式打開(kāi)文件datAdat,返回文件指針fp然后通過(guò)調(diào)用Write函數(shù),將起始地址為&a[0]、單位長(zhǎng)度為sizeof(int)的一個(gè)元素寫(xiě)入文件,即寫(xiě)入a[0];接著for循環(huán)從數(shù)組a的第二個(gè)元素起,每次首先使用fseek()函數(shù)將指針fp定位到文件datAtdat的開(kāi)始位置,寫(xiě)入起始地址&a[i]、單位長(zhǎng)度為sizeof(int)的一個(gè)元素,即寫(xiě)入a[i];此時(shí)數(shù)組元素按照逆序?qū)懭胛募?54321,盾環(huán)結(jié)束后,使用fseek()函數(shù)再將指針fp定位到文件開(kāi)始位置,調(diào)用fread()函數(shù),從fp所指位置讀取單化長(zhǎng)度為sizeo(int)的一個(gè)元素到變量k中,即k=6,最后調(diào)用fclose()函數(shù)關(guān)閉文件,輸出k的值6,故答案為C。31、有以下程序#include<stdio.h>voidfun(char*p,intn){charb[6]="abcde";inti;for(i=0,p=b;i<n;i++)p[i]=b[i];}main(){chara[6]="ABCDE";fun(a,5);printf("%s\n",a);}程序運(yùn)行后的輸出結(jié)果是A、abcdeB、ABCDEC、edcbaD、EDCBA標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查數(shù)組名作為函數(shù)參數(shù),執(zhí)行f函數(shù)時(shí),傳進(jìn)去的a指針被重新指向了b,所以原本a數(shù)組的地址內(nèi)容不變,所以輸出結(jié)果為ABCDE,答案為B選項(xiàng)。32、有以下程序#include<stdio.h>voidfun(int*s){staticintj=0;dos[j]+=s[j+1];while(++j<2);}main(){inti,a[10]={1,2,3,4,5};for(i=1;i<3;i++)fun(a);for(i=1;i<5;i++)printf("%d",a[i]);printf("\n");}程序運(yùn)行后的輸出結(jié)果是A、34756B、5745C、5795D、35745標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題主要考查do…while語(yǔ)句,執(zhí)行fun函數(shù)后,a數(shù)組里面的元素變?yōu)?5745,輸出后四個(gè)字符,所以結(jié)果為5745,選項(xiàng)B正確。33、在C語(yǔ)言中,變量的隱含存儲(chǔ)類(lèi)別是()。A、autoB、staticC、extemD、無(wú)存儲(chǔ)類(lèi)別標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C語(yǔ)言中,變量的隱含存儲(chǔ)類(lèi)型為auto。34、若輸入bcdefgh、m、abcdefg,以下程序的輸出結(jié)果為()。#include<stdio.h>#include<string.h>main(){inti;charstring[20],str[3][20];for(i=O;i<3;i++)gets(str[i]);if(strcmp(str[0],str[1])>0)strcpy(string,str[0]);elsestrcpy(string,str[1]);if(strcmp(str[2],string)>0)strcpy(string,str[2]);printf("%s",string);}A、bcdefghB、mC、abcdefgD、bcdefgh或abcdefg標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查字符比較函數(shù)和字符復(fù)制函數(shù):strcmp(s1,s2);函數(shù)功能:比較字符串str1和str2比較的是字符的ASCII碼的值,當(dāng)str1<str2時(shí),返回值為負(fù)數(shù);當(dāng)str1=str2時(shí),返回0;當(dāng)str1>str2,返回值為正數(shù)。35、下列敘述中錯(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)敘述正確。36、若有定義:doublea,b,c;能正確給a,b,c輸入數(shù)據(jù)的語(yǔ)句是A、scanf("%lf%lf%lf"&a,&b,&c)B、scanf("%f%f%f",&a,&b,&c);C、scanf("%lf%lf%lf",a,b,c);D、scanf("%lf%lf%lf",&a,&b,&c);標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:%lf,%le是針對(duì)double的,如果僅用%f,輸入的數(shù)據(jù)可能不完全接收,數(shù)據(jù)的精度可能不足。%f主要針對(duì)float類(lèi)型的變量的輸入,因此選項(xiàng)B錯(cuò)誤。根據(jù)題目格式可知A,C錯(cuò)誤。故答案為D選項(xiàng)。37、有以下程序#include<stdio.h>main(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case1:b++;break;}case2:a++;b++;break;case3:a++;b++;}printf("a=%d,b=%d\n",a,b);}程序的運(yùn)行結(jié)果是A、a=2,b=2B、a=2,b=1C、a=1,b=1D、a=1,b=0標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:C語(yǔ)言還提供了一種用于多分支選擇的switch語(yǔ)句,計(jì)算表達(dá)式的值。并逐個(gè)與其后的常量表達(dá)式值相比較,當(dāng)表達(dá)式的值與某個(gè)常量表達(dá)式的值相等時(shí),即執(zhí)行其后的語(yǔ)句,然后不再進(jìn)行判斷,繼續(xù)執(zhí)行后面所有case后的語(yǔ)句。如表達(dá)式的值與所有case后的常量表達(dá)式均不相同時(shí),則執(zhí)行default后的語(yǔ)句。x=1;進(jìn)入第一層switch,y=0;進(jìn)入第二層switch,執(zhí)行a++;break;后a=1;在進(jìn)入case2,(這里case1:沒(méi)有break,)執(zhí)行了a++,b++,由于存在break,則跳出switch,得到a=2,b=1,因此答案為B選項(xiàng)。左邊所有副作用都結(jié)束后,才對(duì)其右邊的子表達(dá)式進(jìn)行運(yùn)算,并以最右邊表達(dá)式值作為整個(gè)逗號(hào)表達(dá)式的值。1、后置自增運(yùn)算:k++表示先運(yùn)算,后自加。2、前置自增運(yùn)算:++k表示先自加,后運(yùn)算。因此,表達(dá)式x=0,x+10,x++的計(jì)算過(guò)程為首先賦值x=0,然后將x加10,但是并不對(duì)x進(jìn)行賦值,最后計(jì)算x++,并,根據(jù)后置自增運(yùn)算的計(jì)算結(jié)果,即為x=0.0。,故答案為C選項(xiàng)。38、下列敘述中正確的是A、算法復(fù)雜度是指算法控制結(jié)構(gòu)的復(fù)雜程度B、算法復(fù)雜度是指設(shè)計(jì)算法的難度C、算法的時(shí)間復(fù)雜度是指設(shè)計(jì)算法的工作量D、算法的復(fù)雜度包括時(shí)間復(fù)雜度與空間復(fù)雜度標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:算法的復(fù)雜度是指運(yùn)行該算法所需要的計(jì)算機(jī)資源的多少,所需的資源越多,該算法的復(fù)雜度越高;反之,所需資源越少,復(fù)雜度越低。算法復(fù)雜度包括算法的時(shí)間復(fù)雜度和算法的空間復(fù)雜度,算法的時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量,算法空間復(fù)雜度指執(zhí)行這個(gè)算法所需要的內(nèi)存空間。故選擇D選項(xiàng)39、若變量已正確定義并賦初值,以下合法的賦值語(yǔ)句是A、k=(m==n);B、k=-m-nC、k=int(m+n);D、k=m*n=1;標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:m,n的變量類(lèi)型未知,但題目中已定義和賦值。選項(xiàng)B的-m-n對(duì)于整型與浮點(diǎn)數(shù)類(lèi)型可以這樣操作,但若變量為字符類(lèi)型,則錯(cuò)誤。選項(xiàng)C,編譯類(lèi)型錯(cuò)誤,強(qiáng)制轉(zhuǎn)化使用錯(cuò)誤。選項(xiàng)D,m*n是常量,只能用作表達(dá)式的右值,不能作為左值。故答案為A選項(xiàng)。二、程序填空題(本題共1題,每題1.0分,共1分。)40、給定程序中,函數(shù)fun的功能是:對(duì)形參SS所指字符串?dāng)?shù)組中的M個(gè)字符串按長(zhǎng)度由短到長(zhǎng)進(jìn)行排序。SS所指字符串?dāng)?shù)組中共有M個(gè)字符串,且串長(zhǎng)#include#defineM5#defineN20voidfun(char(*ss)[N]){inti,j,k,n[M];chart[N];for(i=0;in[j])___2____;if(k!=i){Strcpy(t,ss[i]);strcpy(ss[i],ss[k]);/**********found***********/strcpy(ss[k],____3_____);n[k]=n[i];}}}main(){charss[M][N]={“shanghai”,“guangzhou”,“beijing”,“tianjing”,“cchongqing”);inti;printf(“\nTheoriginalstringsare:\n”);for(i=0;i標(biāo)準(zhǔn)答案:(1)i+1(2)k=j(3)t知識(shí)點(diǎn)解析:函數(shù)fun的功能是用是選擇排序?qū)個(gè)字符串由短到長(zhǎng)進(jìn)行排序。第一空:由審題分析可知,外循環(huán)i=0時(shí),內(nèi)循環(huán)變量從i+1到M-1(下標(biāo)從0開(kāi)始),從M—1個(gè)字符串中再挑出一個(gè)最短的字符串,故第一空處應(yīng)為“i+1”。第二空:k記錄最短字符串的下標(biāo),內(nèi)循環(huán)開(kāi)始前k賦初值i,內(nèi)循環(huán)從剩下的M-i個(gè)字符串里面找最短的,比較k字符串和j字符串的長(zhǎng)度大小,如果n[k]>n[j],則把j賦給k,即第二空處應(yīng)為“k=j”。第三空:if(k!=i)說(shuō)明找到了新的更短的字符串,那么把它和第i個(gè)字符串交換,因此第三空處應(yīng)為“t”。三、程序修改題(本題共1題,每題1.0分,共1分。)41、下列給定程序中,函數(shù)fun的功能是:計(jì)算并輸出下列級(jí)數(shù)的前N項(xiàng)和SN,直到SN+1的值大于q為止,q的值通過(guò)形參傳入。例如,若q的值為50.0,則函數(shù)值應(yīng)為49.394948。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<conio.h>#include<stdio.h>doublefun(doubleq){intn;doubles,t,n=2;s=2.0;while(s<=q){t=S;/**********found***********/s=s+(n+1)/n;n++;}printf(“n=%d\n”,n);/**********found***********/returnS;}main(){printf(“%f\n”,fun(50));}標(biāo)準(zhǔn)答案:(1)s=s+(double)(n+1)/n;(2)returnt:知識(shí)點(diǎn)解析:(1)在C語(yǔ)言中,整數(shù)除以整數(shù)得出的結(jié)果也是整數(shù),因此此處要轉(zhuǎn)換數(shù)據(jù)類(lèi)型。(2)觀察while循環(huán),如果返回變量是8.那么返回的是大于q的值,而題中所要返回的是小于q的值,所以應(yīng)該返回變量t。四、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)42、編寫(xiě)函數(shù)fun,其功能是:求Fibonaeci數(shù)列中大于t的最小的數(shù),結(jié)果由函數(shù)返回。Fibonacei數(shù)列F(n)的定義為:F(0)=0,F(xiàn)(1)=1F(n)=F(n—1)+F(n一2)例如,當(dāng)t=1000時(shí),函數(shù)值為1597。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。試題程序:#include<conio.h>#include<math.h>#include<stdio.h>intfun(intt){}main(){intn;n=1000;printf(“n=%d,f=%d\n”,n,fun(n));}標(biāo)準(zhǔn)答案:intfun(intt){intf0=0,f1=1,f,do{/*根據(jù)Fibonacci數(shù)列的定義求數(shù)值*/f=f0+f1;f0=f1;f1=f;}while(f<t);/*如果求的數(shù)值小于t則繼續(xù)*/returnf;}知識(shí)點(diǎn)解析:根據(jù)所給數(shù)列定義不難發(fā)現(xiàn),該數(shù)列最終的結(jié)果是由兩個(gè)數(shù)列之和組成,所以可以在循環(huán)內(nèi)部始終把f看成是前兩項(xiàng)之和,而f0始終代表第n一2項(xiàng),f1代表第n—1項(xiàng)。退出循環(huán)時(shí)得到的數(shù)f,就是大于指定數(shù)的最小的數(shù)。國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷第2套一、選擇題(本題共40題,每題1.0分,共40分。)1、有以下定義:structdata{inti;charc;doubled;}x;以下敘述中錯(cuò)誤的是()。A、x的內(nèi)存地址與x.i的內(nèi)存地址相同B、structdata是一個(gè)類(lèi)型名C、初始化時(shí),可以對(duì)x的所有成員同時(shí)賦初值D、成員i、c和d占用的是同一個(gè)存儲(chǔ)空間標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:變量i、c、d是結(jié)構(gòu)體變量x中三個(gè)不同的成員,占用不同的存儲(chǔ)空間。2、設(shè)x和Y都是int類(lèi)型,且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)。3、如果進(jìn)棧序列為A,B,C,D,則可能的出棧序列是()。A、C,A,D,BB、B,D,C,AC、C,D,A,BD、任意順序標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:棧的操作原則為后進(jìn)先出。選項(xiàng)B)中出棧順序可按“A進(jìn),B進(jìn),B出,C進(jìn),D進(jìn),D出,C出,A出”實(shí)現(xiàn)。4、若有“doublea;”,則正確的輸入語(yǔ)句是()。A、scanf("%1f",a);B、scanf("%f",&a);C、scanf("%1f",&a)D、scanf("%1e",a);標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:scanf函數(shù)的調(diào)用形式是:scanf("格式字符串",輸入項(xiàng)地址表)。其中,“格式字符串”是要輸入的變量的格式符;“輸入項(xiàng)地址表”是要輸入的變量的地址。a是double型數(shù)據(jù),格式字符串可以用%1f,%f是浮點(diǎn)型。題中定義變量a為雙精度型變量,雙精度變量的格式符為“if”;變量的地址用取地址符“&”加變量名表示,變量a的地址為“&a”。5、有以下程序:#inc1udeintfun(intx,inty){if(x!=y)return(y);elsereturn((x+y)/2);}main(){inta=4,b=5,c=6;printf("%d\n",fun(2*a,fun(b,c)));}程序運(yùn)行后的輸出結(jié)果是()。A、3B、6C、8D、12標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:fun(b,c)即fun(5,6),5!—6,所以返回6;fun(2*a,6)即fun(8,6),8!—6,所以返回6。6、C語(yǔ)言中允許用外部說(shuō)明來(lái)指定變量、函數(shù)和其他標(biāo)識(shí)符的特征,這里所說(shuō)的外部指的是()。A、冠以關(guān)鍵字externB、位置在函數(shù)體外部C、作用范圍是全程的D、位置在函數(shù)的外部標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C語(yǔ)言中允許用位置在函數(shù)外部的說(shuō)明來(lái)指定變量、函數(shù)和其他標(biāo)識(shí)符的特征。7、下面不屬于軟件測(cè)試實(shí)施步驟的是()。A、集成測(cè)試B、回歸測(cè)試C、確認(rèn)測(cè)試D、單元測(cè)試標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:軟件測(cè)試的過(guò)程一般按照四個(gè)步驟進(jìn)行,即單元測(cè)試、集成測(cè)試、驗(yàn)收測(cè)試(確認(rèn)測(cè)試)和系統(tǒng)測(cè)試,所以答案選擇B8、有兩個(gè)關(guān)系R、S如下:由關(guān)系R通過(guò)運(yùn)算得到關(guān)系S,則所使用的運(yùn)算為()。A、選擇B、投影C、插入D、連接標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:投影運(yùn)算是指對(duì)于關(guān)系內(nèi)的域指定可引入新的運(yùn)算。本題中S是在原有關(guān)系R的內(nèi)部進(jìn)行的,是由R中原有的那些域的列所組成的關(guān)系。所以選擇B。9、閱讀下面程序,程序執(zhí)行后的結(jié)果為()。#inc1ude"stdio.h"main(){char*str="abcdefghijklmnopq";while(*str++!=’e’);printf("%c\n",*str);}A、fB、aC、eD、q標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查的是取內(nèi)容運(yùn)算符“*”和自加運(yùn)算符“++”的優(yōu)先級(jí)問(wèn)題。由于“++”的優(yōu)先級(jí)高于“*”,所以題干中“*str++!=’e’”,即“*(str++)!=’e’”,當(dāng)str指向字符“’e"’時(shí),while循環(huán)的條件不成立,但“str”已經(jīng)進(jìn)行了自加指向了字符“’f’”,所以“*str”輸出字符“’f’”。10、以下不能用于描述算法的是()。A、文字?jǐn)⑹鯞、程序語(yǔ)句C、偽代碼和流程圖D、E-R圖標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:算法的描述有偽代碼、流程圖、N-S結(jié)構(gòu)圖等。E-R是實(shí)體聯(lián)系模型。所以選擇D選項(xiàng)。11、下列關(guān)于棧的敘述中,正確的是()。A、棧頂元素最先能被刪除B、棧頂元素最后才能被刪除C、棧底元素永遠(yuǎn)不能被刪除D、棧底元素最先能被刪除標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:棧是“先進(jìn)后出”的數(shù)據(jù)結(jié)構(gòu),因此棧頂元素最后入棧卻最先被刪除,棧底元素最先入棧卻最后被刪除,答案為A。12、設(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){e=a;a=b;b:c;}標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:由于a小于b,所以所有選項(xiàng)中的條件都為假,c選項(xiàng)中實(shí)際執(zhí)行了a=b;b=c;兩個(gè)操作。而A、B、D選項(xiàng)由于條件不成立,所以什么也沒(méi)有做,所以選擇C選項(xiàng)。13、C語(yǔ)言中允許用外部說(shuō)明來(lái)指定變量、函數(shù)和其他標(biāo)識(shí)符的特征,這里所說(shuō)的外部指的是()。A、冠以關(guān)鍵字externB、位置在函數(shù)體外部C、作用范圍是全程的D、位置在函數(shù)的外部標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C語(yǔ)言中允許用位置在函數(shù)外部的說(shuō)明來(lái)指定變量、函數(shù)和其他標(biāo)識(shí)符的特征。14、以下數(shù)據(jù)結(jié)構(gòu)中,屬于非線性數(shù)據(jù)結(jié)構(gòu)的是()。A、棧B、線性表C、隊(duì)列D、二叉樹(shù)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:二叉樹(shù)屬于非線性結(jié)構(gòu)。棧是一種特殊的線性表,這種線性表只能在固定的一端進(jìn)行插入和刪除操作;隊(duì)列可看作是插入在一端進(jìn)行,刪除在另一端進(jìn)行的線性表。15、在C語(yǔ)言中,以下說(shuō)法不正確的是()。A、在C程序中,整數(shù)和實(shí)數(shù)都能被準(zhǔn)確無(wú)誤地表示出來(lái)B、在C程序中,任何一個(gè)變量名都代表存儲(chǔ)器中的一個(gè)位置C、靜態(tài)變量的生存期與整個(gè)程序的運(yùn)行期相同D、C語(yǔ)言中,任何變量都必須先聲明才能進(jìn)行引用標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查C語(yǔ)言的基本概念。變量的實(shí)質(zhì)就是在內(nèi)存中占據(jù)一定的存儲(chǔ)單元,存儲(chǔ)單元里存放的是該變量的值,變量的值可以根據(jù)需要進(jìn)行修改;整數(shù)在允許的范圍內(nèi)可以準(zhǔn)確的表示出來(lái),但不可能表示無(wú)限度的實(shí)數(shù)。16、設(shè)有宏定義:#defineIsDIV(k,n)((k%n==1):1:0)且變量m已正確定義并賦值,則宏調(diào)用:IsDIV(m,5)&&IsDIV(m,7)為真時(shí)所要表達(dá)的是A、判斷m是否能被5和7整除B、判斷m被5和7整除是否都余2C、判斷m被5或者7整除是否余1D、判斷m是否能被5或者7整除標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:暫無(wú)解析17、若有以下定義,則對(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è)元素。18、在下列關(guān)系運(yùn)算中,不改變關(guān)系表中的屬性個(gè)數(shù)但能減少元組個(gè)數(shù)的是()。A、并B、交C、投影D、除標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:關(guān)系R與s經(jīng)交運(yùn)算后所得到的關(guān)系是由那些既在R內(nèi)又在S內(nèi)的有序組所組成,記為R∩S,交運(yùn)算不改變關(guān)系表中的屬性個(gè)數(shù)但能減少元組個(gè)數(shù)。19、在下列關(guān)系運(yùn)算中,不改變關(guān)系表中的屬性個(gè)數(shù)但能減少元組個(gè)數(shù)的是()。A、并B、交C、投影D、除標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:關(guān)系R與S經(jīng)交運(yùn)算后所得到的關(guān)系是由那些既在R內(nèi)又在S內(nèi)的有序組所組成,記為RnS,交運(yùn)算不改變關(guān)系表中的屬性個(gè)數(shù)但能減少元組個(gè)數(shù)。20、有以下程序:#includevoidfun(char*c,intd){*c=*c+1;d+=1;printf("%c,%c",*c,d);}main(){chara=’F’,b=’f’;fun(&b,a);printf("%c,%c\n",a,b);)程序的輸出結(jié)果為()。A、g,GF,gB、g,F(xiàn)F,gC、G,fF,GD、f,gf,g標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是函數(shù)參數(shù)的傳遞。main函數(shù)中首先調(diào)用fun函數(shù),fun函數(shù)的功能是使字符c的ASCII碼值加1并輸出,使d加1并輸出對(duì)應(yīng)的字符;fim(&b,a)輸出“g,G”,但是由于fun函數(shù)的第一個(gè)參數(shù)進(jìn)行的是地址傳遞,而第二個(gè)參數(shù)進(jìn)行的是值傳遞,所以main函數(shù)中的printf函數(shù)輸出“F,g”。21、下列關(guān)于線性鏈表的敘述中,正確的是()。A、各數(shù)據(jù)結(jié)點(diǎn)的存儲(chǔ)空間可以不連續(xù),但它們的存儲(chǔ)順序與邏輯順序必須一致B、各數(shù)據(jù)結(jié)點(diǎn)的存儲(chǔ)順序與邏輯順序可以不一致,但它們的存儲(chǔ)空間必須連續(xù)C、進(jìn)行插入與刪除時(shí),不需要移動(dòng)表中的元素D、以上說(shuō)法均不正確標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:一般來(lái)說(shuō),在線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中,各數(shù)據(jù)結(jié)點(diǎn)的存儲(chǔ)序號(hào)是不連續(xù)的,并且各結(jié)點(diǎn)在存儲(chǔ)空間中的位置關(guān)系與邏輯關(guān)系也不一致。線性鏈表中數(shù)據(jù)的插入和刪除都不需要移動(dòng)表中的元素,只需改變結(jié)點(diǎn)的指針域即可。22、有以下程序:#includeintfun(int(*s)[4],intn,intk){intm,i;m=s[0][k];for(i=1;im)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ì)8[i][j]進(jìn)行操作實(shí)際上就是對(duì)主函數(shù)中的a[i][j]進(jìn)行操作,再分析fun函數(shù)的作用便可知,是求二維數(shù)組第0列中最大的那個(gè)元素。因此C選項(xiàng)正確。23、使用白盒測(cè)試方法時(shí),設(shè)計(jì)測(cè)試用例應(yīng)根據(jù)()。A、程序的內(nèi)部邏輯B、程序的復(fù)雜結(jié)構(gòu)C、程序的功能D、使用說(shuō)明書(shū)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:白盒測(cè)試允許測(cè)試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)信息來(lái)設(shè)計(jì)或選擇測(cè)試用例,對(duì)程序所有的邏輯路徑進(jìn)行測(cè)試。24、有以下結(jié)構(gòu)體說(shuō)明、變量定義和賦值語(yǔ)句:structSTD{charname[10];intage;charsex;}s[5],*ps;ps=&s[0];則以下scanf函數(shù)調(diào)用語(yǔ)句有錯(cuò)誤的是()。A、scanf(’’%s’’,s[0].name);B、scanf(’’%d’’,&s[0].a(chǎn)ge);C、scanf(’’%c’’,&(ps->SeX));D、scanf(’’%d’’,ps->age);標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查結(jié)構(gòu)體的相關(guān)知識(shí),題目中需要輸入一個(gè)變量,scanf要求參數(shù)為指針,而D選項(xiàng)中ps->age為一個(gè)變量,不是指針,所以錯(cuò)誤。25、若變量均已正確定義并賦值,以下合法的C語(yǔ)言賦值語(yǔ)句是()。A、x=y==5;B、x=n%2.5;C、x+n=i;D、x=5=4+l:標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:B選項(xiàng)中運(yùn)算符“%”的前后必須為整數(shù),C選項(xiàng)中不能將變量賦給表達(dá)式x+n,D選項(xiàng)中不能將表達(dá)式4+1賦給常量5。26、下列敘述中正確的是()。A、數(shù)據(jù)庫(kù)系統(tǒng)可以解決數(shù)據(jù)冗余和數(shù)據(jù)獨(dú)立性問(wèn)題,而文件系統(tǒng)不能B、數(shù)據(jù)庫(kù)系統(tǒng)能夠管理各種類(lèi)型的文件,而文件系統(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ū)別不僅在于管理的文件類(lèi)型與數(shù)據(jù)量的多少。數(shù)據(jù)庫(kù)系統(tǒng)具有高度的物理獨(dú)立性和一定的邏輯獨(dú)立性,而文件系統(tǒng)獨(dú)立性較好。故本題答案為A選項(xiàng)。27、有以下程序:#include<stdio.h>nlain(){FILE*fp;inti,a[6]={1,2,3,4,5,6},k;fp=fopen("datadat","w+b");fwite(&a[0],sizeof(int),1,fp);for(i=1;i<6;i++){fseek(fp,0L,0);fwrite(&a[i],sizeof(int),1,fp);}fseek(fp,0L,0);fread(&k,sizeof(int),1,fp);felose(fp);printf("%d\n",k);}程序運(yùn)行后的輸出結(jié)果是()。A、123456B、21C、6D、654321標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:首先使用fopen函數(shù)以只寫(xiě)方式打開(kāi)文件datAdat,返回文件指針fp然后通過(guò)調(diào)用Write函數(shù),將起始地址為&a[0]、單位長(zhǎng)度為sizeof(int)的一個(gè)元素寫(xiě)入文件,即寫(xiě)入a[0];接著for循環(huán)從數(shù)組a的第二個(gè)元素起,每次首先使用fseek()函數(shù)將指針fp定位到文件datAtdat的開(kāi)始位置,寫(xiě)入起始地址&a[i]、單位長(zhǎng)度為sizeof(int)的一個(gè)元素,即寫(xiě)入a[i];此時(shí)數(shù)組元素按照逆序?qū)懭胛募?54321,盾環(huán)結(jié)束后,使用fseek()函數(shù)再將指針fp定位到文件開(kāi)始位置,調(diào)用fread()函數(shù),從fp所指位置讀取單化長(zhǎng)度為sizeo(int)的一個(gè)元素到變量k中,即k=6,最后調(diào)用fclose()函數(shù)關(guān)閉文件,輸出k的值6,故答案為C。28、有以下程序:#include<stdio.h>voidfun(int*s,intn1,intn2){inti,j,t;i_nl;j=n2;while(i<j){t=s[i];s[i]=s[j];s[j]=t;i++;j--;}}main(){inta[10]={1,2,3,4,5,6,7,8,9,0},k;fun(a,0,3);fun(a,4,9);fun(a,0,9);for(k=0;k<10;k++)printf(’’%d’’,a[k]);printf(’’\n’’);}程序運(yùn)行后的輸出結(jié)果是()。A、4321098765B、5678901234C、0987654321D、0987651234標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:該程序首先給一維數(shù)組賦值,然后三次調(diào)用fun函數(shù),其中:fun(a,0,3);功能是將一維數(shù)組中第1個(gè)元素和第4個(gè)元素互換,第2個(gè)元素和第3個(gè)元素互換;其中fun(a,4,9);功能是將一維數(shù)組中第5個(gè)元素和第10個(gè)元素互換,第6個(gè)和第9個(gè)元素互換,第7個(gè)元素和第8個(gè)元素互換;其中fun(a,0,9);功能是將一維數(shù)組中第1個(gè)元素和第10個(gè)元素互換,第2個(gè)元素和第9個(gè)元素互換……依此類(lèi)推。因此B選項(xiàng)正確。29、下列不合法的用戶標(biāo)識(shí)符是()。A、j2_KEYB、DoubleC、4dD、_8_標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在C語(yǔ)言程序中,合法標(biāo)識(shí)符的命名規(guī)則是:標(biāo)識(shí)符可以由字*、數(shù)字和下劃線組成,并且第一個(gè)字符必須是字*或下劃線。30、以下關(guān)于C語(yǔ)言數(shù)值常量的選項(xiàng)中,合法的是()。A、12.0Xa234.5e0B、028.5e一3一0xfC、.1774e1.50abcD、0x8A10,0003.e5標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C語(yǔ)言中八進(jìn)制整型常量的開(kāi)頭是數(shù)字0,十六進(jìn)制整型常量的數(shù)字開(kāi)頭是0x;但八進(jìn)制不能有8或9,所以選項(xiàng)B錯(cuò),C選項(xiàng)中2e1.2中e后面的指數(shù)不是整數(shù),D選項(xiàng)中3.e5小數(shù)點(diǎn)后面缺少數(shù)字,另外。也不用用逗號(hào)作為千分位分隔符。31、有以下程序#include<stdio.h>intfun(chars[]){char*p=s;while(*p!=0)p++;return(p-s);}main(){printf("%d\n",fun("0ABCDEF"));}程序運(yùn)行后的輸出結(jié)果是A、1B、6C、7D、0標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查字符串作為函數(shù)參數(shù)以及while語(yǔ)句,本題中傳入字符串OABCDEF,然后執(zhí)行fun后,就得到了該字符串中字符的個(gè)數(shù),不包括結(jié)尾符,該字符串有7個(gè)字符,所以答案為C。32、有以下程序:#includemain(){unsignedchara=8,c;c=a>>3;printf(’’%d\n’’,c);}程序運(yùn)行后的輸出結(jié)果是()。A、16B、1C、32D、0標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:無(wú)符號(hào)整型變量a的值為8,二進(jìn)制表示為00001000,右移3位后為00000001,即十進(jìn)制的1,所以輸出1。33、若inta=3,b=2,c=1;則賦值表達(dá)式有誤的是()。A、a=(b+4)=1;B、a=b=c+3;C、a=(b=2)+cD、a=2+(b=c=3);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:不能給表達(dá)式賦值。34、若在程序中變量均已定義成int類(lèi)型,且已賦大于1的值,則下列選項(xiàng)中能正確表示代數(shù)式的表達(dá)式是A、1.0/a/b/cB、1/(a*b*c)C、1.0/a*b*cD、1/a/b/(double)c標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:由于abc均大于1,所以表達(dá)式1/abc小于1,需要用浮點(diǎn)類(lèi)型表示。若要計(jì)算表達(dá)式值,需要使其自動(dòng)轉(zhuǎn)化成浮點(diǎn)類(lèi)型,所以A選項(xiàng)正確。B選項(xiàng)由于變量與常量均為整型,不會(huì)自動(dòng)轉(zhuǎn)換為浮點(diǎn)類(lèi)型,B選項(xiàng)錯(cuò)誤。C選項(xiàng)表示表達(dá)式bc/a,故錯(cuò)誤。D選項(xiàng),由于算數(shù)運(yùn)算法結(jié)合性自左向右,先計(jì)算1/a,結(jié)果為0,之后的計(jì)算無(wú)論是否轉(zhuǎn)換數(shù)據(jù)類(lèi)型結(jié)果均為0,D選項(xiàng)錯(cuò)誤。35、下列說(shuō)法正確的是()。A、int(**def)[10];----def指向一個(gè)指針,該指針指向10個(gè)整型變量構(gòu)成的數(shù)組B、int*(*gh[10]);---gh指向一個(gè)指針,該指針指向10個(gè)整型變量構(gòu)成的數(shù)組C、int*(*gh[10]);---gh是一個(gè)指針,指向由10個(gè)指向整型變量的指針構(gòu)成的數(shù)組D、A,C均正確標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:int*(*gh[10]);---gh是一個(gè)指針,指向由10個(gè)指向整型變量的指針構(gòu)成的數(shù)組,int(**def)[10];--def指向一個(gè)指針,該指針指向10個(gè)整型變量構(gòu)成的數(shù)組。36、有如下程序#include<stdio.h>intconvert(int*data){return(*data)++;}main(){intdata=56;convert(&data);printf("%d,",data);data=convert(&data);printf("%d,\n",data);}程序運(yùn)行后的輸出結(jié)果是A、56,57,B、57,58,C、57,57,D、55,57,標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:convert函數(shù)每次都定義了一個(gè)指針*data,再將指針變量*data對(duì)應(yīng)地址的值進(jìn)行加一處理,再返回加1前的值作為結(jié)果,因此答案為C選項(xiàng)。37、有以下程序#include<stdio.h>intk=5;voidf(int*s){s=&k;*s=7;}main(){intm=3;f(&m);printf("%d,%d\n",m,k);}程序運(yùn)行后的輸出結(jié)果是A、3,5B、7,7C、5,7D、3,7標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:函數(shù)f()的功能是定義一個(gè)整型的指針變量s,指向全局變量k,然后修改s指向地址中的值為7,因此f()函數(shù)只是修改全局變量k的值為7,與main()函數(shù)中臨時(shí)變量m無(wú)關(guān),因此最后輸出為3,7,答案為D選項(xiàng)。38、以下是正確C語(yǔ)言實(shí)型常量的是A、.e-1B、e-1C、-1eD、0.1標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:所謂常量是指在程序運(yùn)行的過(guò)程中,其值不能被改變的量。在C語(yǔ)言中,有整型常量、實(shí)型常量、字符常量和字符串常量等類(lèi)型。實(shí)型常量有兩種表示形式:十進(jìn)制小數(shù)形式、指數(shù)形式。指數(shù)形式中e后面的指數(shù)必須是整數(shù),階碼標(biāo)志e之前需要有數(shù)字,由此可知選項(xiàng)A,B,C錯(cuò)誤。答案為D選項(xiàng)39、若有定義:doublea,b,c;能正確給a,b,c輸入數(shù)據(jù)的語(yǔ)句是A、scanf("%lf%lf%lf"&a,&b,&c)B、scanf("%f%f%f",&a,&b,&c);C、scanf("%lf%lf%lf",a,b,c);D、scanf("%lf%lf%lf",&a,&b,&c);標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:%lf,%le是針對(duì)double的,如果僅用%f,輸入的數(shù)據(jù)可能不完全接收,數(shù)據(jù)的精度可能不足。%f主要針對(duì)float類(lèi)型的變量的輸入,因此選項(xiàng)B錯(cuò)誤。根據(jù)題目格式可知A,C錯(cuò)誤。故答案為D選項(xiàng)。40、有以下程序:#include<stdio.h>unsignedfun(unsignednum){unsignedk=1:do{k*=num%10;num/=10;}while(num);returnk;}main(){unsignedn=26;printf("%d\n",fun(n));}程序運(yùn)行后的輸出結(jié)果是()。A、12B、10C、16D、8標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:程序首先執(zhí)行main函數(shù),執(zhí)行printf(”%d\n”,fun(n));即輸出表達(dá)式fun(6)的值,為了計(jì)算該表達(dá)式,需要調(diào)用函數(shù)func。此時(shí)main將n中的26作為實(shí)參傳遞給fun的num,即num值為26,接著執(zhí)行d0—while語(yǔ)句。第1次循環(huán).執(zhí)行k*=num%10,即k=k*(num%10)=1*(26%10)=6;執(zhí)行num/=10.即num=num/10=26/10=2;while后面循環(huán)條件為num,此時(shí)num為2,是非0值,即表示循環(huán)條件成立,繼續(xù)執(zhí)行循環(huán)體。此時(shí)k為6,num為2,執(zhí)行d0—while中的語(yǔ)句后,k為12,num為0。由于while后面循環(huán)條件為num,此時(shí)num為0,表示循環(huán)條件不成立,結(jié)束循環(huán),執(zhí)行returnk,即返回至main函數(shù)中的被調(diào)用處,執(zhí)行main函數(shù),執(zhí)行printf語(yǔ)句,輸出結(jié)果為12。二、程序填空題(本題共1題,每題1.0分,共1分。)41、給定程序中,函數(shù)fun的功能是:計(jì)算形參x所指數(shù)組中N個(gè)數(shù)的平均值(規(guī)定所有數(shù)均為正數(shù)),作為函數(shù)值返回;并將大于平均值的數(shù)放在形參Y所指數(shù)組中,在主函數(shù)中輸出。例如,有10個(gè)正數(shù):4630324061745154826,平均值為:30.500000主函數(shù)中輸出:4632404548請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下的BLANKl.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include#include#defineN10doublefun(doublex[],double*y){inti,j;doubleav;/**********found**********/av=____1____;/**********found**********/for(2=0;iav)y[____3____]=x[i];y[j]=一1;returnav;}main(){inti;doublex[N],y[N];for(i=0;i=0;i++)printf("%5.1f",y[i]);printf("\n");}標(biāo)準(zhǔn)答案:(1)0(2)x[i]/N(3)j++知識(shí)點(diǎn)解析:第一空:“returnav;”可知變量av保存了平均值,故第一空處av初始化應(yīng)為0,即第一空處應(yīng)填“0”。第二空:“for(i=0;iav)y[__3__]=x[i];”是將x[i]保存在y所指的數(shù)組中,i是循環(huán)變量,i初始化為0,故y[]的計(jì)數(shù)變量為j,故第三空處應(yīng)為“j++”。三、程序修改題(本題共1題,每題1.0分,共1分。)42、給定程序MODI1.C是建立一個(gè)帶頭結(jié)點(diǎn)的單向鏈表,并用隨機(jī)函數(shù)為各結(jié)點(diǎn)賦值。函數(shù)fun的功能是將單向鏈表結(jié)點(diǎn)(不包括頭結(jié)點(diǎn))數(shù)據(jù)域?yàn)榕紨?shù)的值累加起來(lái),并且作為函數(shù)值返回。請(qǐng)改正函數(shù)fun中指定部位的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!1#include<stdio.h>2#include<stdlib.h>3typedefstructaa4{intdata;structaa*next;}NODE;5intfun(NODE*h)6{intsum=0;7NODE*p;8/**********found**********/9p=h;10while(p)11{if(p->data%2==0)12sum+=p->data;13/**********found**********/14p=h->next;15}16returnsum;17}18NODE*creatlink(intn)19(NODE*h,*p,*s;20inti;21h=p=(NODE*)malloc(sizeof(NODE));22for(i=1;i<=n;i++)23{s=(NODE*)malloc(sizeof(NODE));24s->data=rand()%16;25s->next=p->next;26p->next=s;27p=p->next;28}29p->next=NULL;30returnh;31}32outlink(NODE*h,F(xiàn)ILE*pf)33{NODE*p;34p=h->next;35fprintf(Pf,’’in\nTHELIST:in\nHEAD’’);36while(p)37{fprintf(pf,’’->%d’’,p->data);p=p->next;}38fprintf(pf,’’in’’);39}40outresult(ints,F(xiàn)ILE*pf)41{fprintf(pf,’’\nThesumofevennumbers:%d\n’’,s);}42main()43{NODE*head;inteven;44head=creatlink(12);45head->data=9000;46outlink(head,stdout);47even=fun(head);48printf(’’\nTheresult:in’’);outresult(even,stdout);49}標(biāo)準(zhǔn)答案:(1)p=h->next;(2)p=p->next;知識(shí)點(diǎn)解析:(1)根據(jù)題干中求得除了頭結(jié)點(diǎn)之外的結(jié)點(diǎn)數(shù)據(jù)域中的數(shù)據(jù)值,頭指針h,工作指針p指向頭結(jié)點(diǎn)的下一個(gè)結(jié)點(diǎn),所以第一個(gè)標(biāo)識(shí)下的“p=h;”指向頭結(jié)點(diǎn)應(yīng)該改為指向下一個(gè)結(jié)點(diǎn)“p=h->next;”。(2)工作指針p,利用p實(shí)現(xiàn)對(duì)鏈表的遍歷,p表示指向鏈表的當(dāng)前結(jié)點(diǎn),所以指向下一個(gè)結(jié)點(diǎn)應(yīng)該是“p=p->next;”。四、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)43、編寫(xiě)函數(shù)fun,它的功能是計(jì)算:s作為函數(shù)值返回。在C語(yǔ)言中可調(diào)用log(n)函數(shù)求ln(n)。log函數(shù)的引用說(shuō)明是:doublelog(doublex)。例如,若m的值為:20,fun函數(shù)值為:6.506583。注意:部分源程序在文件PROG1.C中。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。1#include<math.h>2#include<stdio.h>3doublefun(intm)4{56}7main()8{9voidNONO();10printf(’’%f\n’’,fun(20));11NONO();12}13voidNONO()14{/*本函數(shù)用于打開(kāi)文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/15FILE*fp,*wf;16inti,n;17doubles;18fp=fopen(’’in.dat’’,’’r’’);19wf=fopen(’’out.dat’’,’’w’’);20for(i=0;i<10;i++){21fscanf(fp,’’%d’’,&n);22s=fun(n);23fprintf(wf,’’%f\n’’,s);24}25fclose(fp);26fclose(wf);27}標(biāo)準(zhǔn)答案:1doubles=0.0;2inti;3for(i=1;i<=m;i++)s+=log(1.0*i);4s=sqrt(s);5returns;知識(shí)點(diǎn)解析:(1)調(diào)用log(n)函數(shù)求ln(n)。(2)對(duì)調(diào)用log(n)進(jìn)行累加求和,求得根號(hào)里的內(nèi)容。(3)最后調(diào)用C語(yǔ)言的庫(kù)函數(shù)sqrt計(jì)算(2)中求得值的平方根。國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷第3套一、選擇題(本題共39題,每題1.0分,共39分。)1、以下選項(xiàng)中可用做C程序合法實(shí)數(shù)的是()。A、3.0e0.2B、.1eoC、E9D、9.12E標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:A選項(xiàng)中e后面的指數(shù)必須為整數(shù),所以錯(cuò)誤。C語(yǔ)言規(guī)定,E之前必須要有數(shù)字,所以C選項(xiàng)錯(cuò)誤。E后面必須要有數(shù)字,且必須為整數(shù),所以D選項(xiàng)錯(cuò)誤。2、以下敘述中正確的是()。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)解析:A)正確,charc1,c2,*c3,c4[40]表示定義了兩個(gè)字符變量c1、c2,一個(gè)字符指針c3,一個(gè)字符數(shù)組c4。數(shù)組的下限永遠(yuǎn)為0,選項(xiàng)B)、C)、D)錯(cuò),答案選A)。3、下列敘述中正確的是()。A、在棧中,棧中元素隨棧底指針與棧頂指針的變化而變化B、在棧中,棧頂指針不變,棧中元素隨棧底指針的變化而變化C、在棧中,棧底指針不變,棧中元素隨棧頂指針的變化而變化D、以上說(shuō)法均不對(duì)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:棧是“先進(jìn)后出”的數(shù)據(jù)結(jié)構(gòu),在整個(gè)過(guò)程中,棧底指針不變,入棧與出棧操作均由棧頂指針來(lái)操作,所以選擇C。4、下列程序的輸出結(jié)果是()。#includevoidfun(int*a,int*b){int*k;k=a;a=b;b=k;}main(){inta=1,b=2,*x=&a,/y=&b;fun(x,y);printf("%d%d",a,b);}A、21B、l2C、編譯出錯(cuò)D、00標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查函數(shù)調(diào)用時(shí)的參數(shù)傳遞。分析題目可知fun函數(shù)的形參是指向?qū)崊⒌闹羔?,但main()函數(shù)中調(diào)用flm()函數(shù)時(shí),實(shí)參是指針變量x、y(分別為指向a和b的指針),a、b的值在函數(shù)調(diào)用前后未發(fā)生變化,因而a=1,b=2,即輸出12。5、下列二維數(shù)組初始化語(yǔ)句中,正確且與語(yǔ)句inta[][3]={1,2,3,4,5}等價(jià)的是()。A、inta[2][]={{1,2,3},{4,5}};B、inta[][3]={1,2,3,4,5,0};C、inta[][3]={{1,0},{2,0},{3,0)};D、inta[2][]={{1,2,3},{4,5,6}};標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是二維數(shù)組的初始化。題干中數(shù)組a的第二個(gè)下標(biāo)為3,由此可知數(shù)組a是一個(gè)2行3列的數(shù)組,初始化時(shí)未賦初值的元素的值自動(dòng)為0,所以與選項(xiàng)B是等價(jià)的,最后一個(gè)元素的值為0。6、設(shè)q1和q2是指向一個(gè)int型一維數(shù)組的指針變量,k為float型變量,下列不能正確執(zhí)行的語(yǔ)句是()。A、k=*q

溫馨提示

  • 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)論