國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷47(共303題)_第1頁(yè)
國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷47(共303題)_第2頁(yè)
國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷47(共303題)_第3頁(yè)
國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷47(共303題)_第4頁(yè)
國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷47(共303題)_第5頁(yè)
已閱讀5頁(yè),還剩88頁(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ī)試模擬試卷47(共9套)(共303題)國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷第1套一、選擇題(本題共40題,每題1.0分,共40分。)1、下列敘述中正確的是()。A、循環(huán)隊(duì)列有隊(duì)頭和隊(duì)尾兩個(gè)指針,因此,循環(huán)隊(duì)列是非線性結(jié)構(gòu)B、在循環(huán)隊(duì)列中,只需要隊(duì)頭指針就能反映隊(duì)列中元素的動(dòng)態(tài)變化情況C、在循環(huán)隊(duì)列中,只需要隊(duì)尾指針就能反映隊(duì)列中元素的動(dòng)態(tài)變化情況D、循環(huán)隊(duì)列中元素的個(gè)數(shù)是由隊(duì)頭指針和隊(duì)尾指針共同決定標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:循環(huán)隊(duì)列有隊(duì)頭和隊(duì)尾兩個(gè)指針,但是循環(huán)隊(duì)列仍是線性結(jié)構(gòu)的,所以A錯(cuò)誤;在循環(huán)隊(duì)列中只需要隊(duì)頭指針與隊(duì)尾指針來(lái)共同反映隊(duì)列中元素的動(dòng)態(tài)變化情況,所以B與C錯(cuò)誤。2、有以下程序:#inc1udemain()fintx;scanf("%d",&x);if(x<=0);elseif(x!=5)printf("%d\n",x);}程序運(yùn)行時(shí),輸入的值在哪個(gè)范圍才會(huì)有輸出結(jié)果()。A、不等于5的整數(shù)B、大于0且不等5的整數(shù)C、大于0或等于5的整數(shù)D、小于5的整數(shù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:題目中,雖然else和第二個(gè)if不在同一行上,但等價(jià)于在同一行上,因此,程序的意思是當(dāng)x大于0且不等于5時(shí)將其打印出來(lái)。3、有以下程序:#includevoidfun(inta[],intn){inti,t;for(i=0;iA、321678B、876543C、1098765D、345678標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題中的函數(shù)fun()的功能是將數(shù)組k中前5個(gè)元素倒序,所以返回后數(shù)組k中的元素排列是5,4,3,2,1,6,7,8,9,10。所以打印輸出k[2]到k[7]元素的值,即321678,所以選擇A。4、在數(shù)據(jù)庫(kù)管理技術(shù)的發(fā)展中,數(shù)據(jù)獨(dú)立性最高的是()。A、人工管理B、文件系統(tǒng)C、數(shù)據(jù)庫(kù)系統(tǒng)D、數(shù)據(jù)模型標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在人工管理階段,數(shù)據(jù)無(wú)法共享,冗余度大,不獨(dú)立,完全依賴程序;在文件系統(tǒng)階段,數(shù)據(jù)共享性差;在數(shù)據(jù)庫(kù)系統(tǒng)階段,共享性好,獨(dú)立性高。5、以下選項(xiàng)中,合法的一組C語(yǔ)言數(shù)值常量是()。A、028.5e-3-0nxfB、12OXa23-0nxfC、.1774c1.5-0nxfD、0x8A10,000-0nxf標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:八進(jìn)制數(shù)開(kāi)頭必須是數(shù)字“0”,其數(shù)字包括0~7,而在選項(xiàng)A中,028是錯(cuò)誤的。浮點(diǎn)數(shù)據(jù)的指數(shù)形式表示常量中,C語(yǔ)言規(guī)定字母e或E之前必須要有數(shù)字,且e或E之后的指數(shù)必須為整數(shù),而選項(xiàng)C中4e1.5是錯(cuò)誤的。在選項(xiàng)D中,整型數(shù)據(jù)10,000的表示形式是錯(cuò)誤的。所以本題的答案為選項(xiàng)B。6、設(shè)變量x和y均已正確定義并賦值,以下if語(yǔ)句中,在編譯時(shí)將產(chǎn)生錯(cuò)誤信息的是()A、if(x++);B、if(x>y&&y!=0);C、if(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ò)誤信息。7、有以下程序:#include<stdio.h>intfun(intn){if(n)returnfun(n-1)+n;elsereturn0;}main(){printf("%d\n",fun(3));}程序的運(yùn)行結(jié)果是()。A、4B、5C、6D、7標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:fun函數(shù)是一個(gè)遞歸函數(shù),n=3,返回f(3-1)+3=f(2)+3=f(1)+2+3=f(0)+1+2+3=0+6=6。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á)式。條件表達(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),選A9、若語(yǔ)句“t=fun(fun(x,y,a),(a+b,a+c),x+y+z);”對(duì)fun函數(shù)的調(diào)用正確,則fun函數(shù)的形參個(gè)數(shù)為()。A、3B、4C、5D、6標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查函數(shù)調(diào)用時(shí)的參數(shù)個(gè)數(shù)。在函數(shù)調(diào)用時(shí),實(shí)參必須和形參的個(gè)數(shù)、類型一一對(duì)應(yīng)。但函數(shù)的計(jì)算結(jié)果只有一個(gè)值,因而fun函數(shù)的參數(shù)個(gè)數(shù)為3。10、有以下程序:#include<stdio.h>voidswap(char*x,char*y){chart;t=*x;*x=*y;*y=t;}main(){char*s1="abc",*s2="123";swap(s1,s2);printf("%s,%s\n",s1,s2);}程序執(zhí)行后的輸出結(jié)果是()。A、321,cbaB、abc,123C、123,abcD、1bc,a23標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:字符串是一個(gè)特殊的數(shù)組,所以按照數(shù)組的規(guī)則,s1應(yīng)該指向的是數(shù)組的首地址,即"abc"的第一個(gè)字符的地址。s2指向的是"123"的第一個(gè)字符的地址。調(diào)用swap函數(shù)之后交換的是兩個(gè)字符串的第一個(gè)字符’a’和’1’的內(nèi)容,所以打印輸出為D)。11、下列敘述中正確的是()。A、可以用關(guān)系運(yùn)算符比較字符串的大小B、空字符串不占用內(nèi)存,其內(nèi)存空間大小是0C、兩個(gè)連續(xù)的單引號(hào)是合法的字符常量D、兩個(gè)連續(xù)的雙引號(hào)是合法的字符串常量標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:A項(xiàng)錯(cuò)誤,關(guān)系運(yùn)算符不能比較字符串大小,可以用函數(shù)庫(kù)中的字符串比較函數(shù)來(lái)比較字符串的大??;B項(xiàng)錯(cuò)誤,空字符串占用一個(gè)字節(jié)的內(nèi)存;C項(xiàng)錯(cuò)誤,字符常量是用單引號(hào)把一個(gè)字符括起來(lái)。D項(xiàng)正確,兩個(gè)連續(xù)的雙引號(hào)是一個(gè)字符串常量,稱為空串。12、在軟件生命周期中,能準(zhǔn)確地確定軟件系統(tǒng)必須做什么和必須具備哪些功能的階段是()。A、需求分析B、詳細(xì)設(shè)計(jì)C、軟件設(shè)計(jì)D、概要設(shè)計(jì)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:軟件生命周期的主要活動(dòng)階段為:可行性研究和計(jì)劃制定、需求分析、軟件設(shè)計(jì)、軟件實(shí)現(xiàn)、軟件測(cè)試、運(yùn)行和維護(hù)。其中需求分析是對(duì)開(kāi)發(fā)軟件提出的需求進(jìn)行分析并給出詳細(xì)定義,即準(zhǔn)確地確定軟件系統(tǒng)的功能,編寫軟件規(guī)格說(shuō)明書及初步的用戶手冊(cè),提交評(píng)審。13、有以下程序#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。14、設(shè)有定義:structcomplex{intreal,unreal;}datal={1,8},data2;則以下賦值語(yǔ)句中錯(cuò)誤的是()。A、data2=(2,6);B、data2:datal;C、data2.real=datal.rea1;D、data2.real=datal.unreal;標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:A)選項(xiàng)中可以在聲明變量的同事為data2賦值,但是data2=(2,6);應(yīng)寫作data2={2,6}。所以選擇A。15、若a是數(shù)值類型,則邏輯表達(dá)式(a==1)||(al=1)的值是()。A、1B、0C、2D、不知道a的值,不能確定標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:邏輯或”ll”要求只要兩邊的運(yùn)算對(duì)象有一個(gè)非零,結(jié)果就為真。雖然不知道a的值,但是若a為1,則左邊運(yùn)算對(duì)象為1;若a的值不是1,則右邊運(yùn)算對(duì)象的值為1,所以總能保證一邊非零,所以結(jié)果為真,即1。16、若有“chars[3][3]={"AAA","BBB","CCC");”說(shuō)明語(yǔ)句,則與它等價(jià)的語(yǔ)句是()。A、char**s={"AAA","BBB","CCC"};B、char*s[3]={"AAA","BBB","CCC"};C、chars[][5]={"AAA","BBB","CCC"};D、chars[][3]={"AAA","BBB","CCC”};標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:二維字符數(shù)組在定義時(shí)可省略第一維的維數(shù),根據(jù)初始化有3個(gè)字符串,所以選項(xiàng)D)中數(shù)組有3行,與已知說(shuō)明語(yǔ)句等價(jià)。17、執(zhí)行下列程序時(shí)輸入“456<空格>789<空格>123<回車>”,輸出結(jié)果是()。#include<stdio.h>main(){charm[80];intc,i;scanf(’’%c’’,&c);scanf(’’%d’’,&i);scanf(’’%s’’,&m);printf(’’%c,%d,%s\n’’,c,i,m);}A、456,789,123B、4,789,123C、4,56,789,123D、4,56,789標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:scanf函數(shù)中的“%c”表示通過(guò)鍵盤只讀入一個(gè)字符型的數(shù)據(jù),“&c”表示將該數(shù)據(jù)賦值給c,所以c=4。另外,以“%d”格式讀入數(shù)據(jù)時(shí),只有遇到空格或者換行等間隔時(shí)符才停止讀入,所以i=56,m=789。18、設(shè)變量n已正確定義并賦值,以下不能實(shí)現(xiàn)自然數(shù)1到n累加求和的程序段是()。A、intsum=1,i=0;while(i<=n){i++;sum+=i;}B、intsum=0,i=1;while(i<=n){sum+=i;i++;}C、intsum=0,i=0;while(i<n){i++;sum+=i;}D、intsum=1,i=1;while(i<n){i++;sum+=i;}標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:選項(xiàng)A中,sum初值為1,i初值為0;當(dāng)i<=n成立時(shí),執(zhí)行while()循環(huán),首先i自增1,此時(shí)1的值為1,然后sum累加i,此時(shí)turn的值為1+1=2,所以選項(xiàng)A計(jì)算了2次1,不滿足題意,選項(xiàng)B、C、D都正確,本題答案為A。19、若x=4,y=5,則x&y的結(jié)果是()。A、0B、4C、3D、5標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題主要考查按位與運(yùn)算的知識(shí)點(diǎn)。按位與是對(duì)兩個(gè)運(yùn)算量相應(yīng)的位進(jìn)行邏輯與,“&”的規(guī)則與邏輯與“&&”相同。x=4的二進(jìn)制為00000100,y=5的二進(jìn)制為00000101,x&v=00000100,轉(zhuǎn)化為十進(jìn)制即為4。20、與數(shù)學(xué)表達(dá)式x≥y≥z對(duì)應(yīng)的C語(yǔ)言表達(dá)式是()。A、(x>=y)||(y>=x)B、(x>=y>=z)C、(x>=y)!(y>=z)D、(x>=y)&&(y>=z)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查關(guān)系表達(dá)式和邏輯表達(dá)式。y大于等于x同時(shí)y小于等于z,因此x<=y和y<=z是邏輯與的關(guān)系。因此D選項(xiàng)正確。21、下列不合法的用戶標(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è)字符必須是字母或下劃線。22、有以下程序:#includemin(){inta[]={2,3,5,4},i;for(i=0;i<4;i++)switch(i%2){case0:switch(a[i]%2){case0:a[i]++;break;case1:a[i]--;}break;case1:a[i]=0;}for(i=0;i<4;i++)printf("%d",a[i]);printf("\n");}程序運(yùn)行后的輸出結(jié)果是()。A、0304B、2050C、3344D、3040標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:第一次循環(huán)i為0,i%2為0,執(zhí)行switch(a[0]%2)中的case0語(yǔ)句,a[0]++,a[0]的值變成3;第二次循環(huán)i的值為1。i%2為1,執(zhí)行easel:a[i]=0;所以a[1]的值變成0;第三次循環(huán)i的值為2,i%2為0,執(zhí)行switch(a[2]%2)中的case1語(yǔ)句,a[2]一一,a[2]的值變成4;第四次循環(huán)i的值為3,i%2為l,執(zhí)行casel:a[i]=0;所以a[3]的值變成0。23、有以下程序:#includemain(){charch[]=“uvwxyz”,*pc;pc=eh;printf(“%e\n”,*(pc+5));}程序運(yùn)行后的輸出結(jié)果是()。A、zB、0C、元素eh[5]的地址D、字符y的地址標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:語(yǔ)句pc=ch;使得指針變量指向字符數(shù)組ch的首地址,即指向字符‘u’。則pc+5指向的是字符向后移動(dòng)5位,指向字符‘z’。所以輸出的*pc+5的值即為‘z’。因此A選項(xiàng)正確。24、在長(zhǎng)度為n的有序線性表中進(jìn)行二分查找,最壞情況下需要比較的次數(shù)是()。A、O(n)B、O(n2)C、O(log2n)D、O(nlog2n)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:二分查找的最壞情況需要不斷的二分直至無(wú)法再分。對(duì)于有序的線性表,二分查找法只需比較log2n次。25、以下敘述中正確的是()。A、C語(yǔ)言規(guī)定必須用main作為主函數(shù)名,程序?qū)拇碎_(kāi)始執(zhí)行B、可以在程序中由用戶指定任意一個(gè)函數(shù)作為主函數(shù),程序?qū)拇碎_(kāi)始執(zhí)行C、C語(yǔ)言程序?qū)脑闯绦蛑械谝粋€(gè)函數(shù)開(kāi)始執(zhí)行D、main的各種大小寫拼寫形式都可以作為主函數(shù)名,如MAIN,Main等標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C語(yǔ)言中的主函數(shù)只能是main()函數(shù),不能任意指定,所以B選項(xiàng)錯(cuò)誤。C語(yǔ)言從主函數(shù)main()開(kāi)始,到主函數(shù)main()結(jié)束,所以C選項(xiàng)錯(cuò)誤。主函數(shù)必須寫成小寫的main,不能混淆大小寫,所以D選項(xiàng)錯(cuò)誤。26、若有代數(shù)式(其中e僅代表自然對(duì)數(shù)的底數(shù),不是變量),則以下能夠正確表示該代數(shù)式的C語(yǔ)言表達(dá)式是()。A、sqrt(fabs(pow(n,x)+exp(x)))B、sqrt(fabs(pow(n,x)+pow(x,e)))C、sqrt(abs(n∧x+e∧x))D、sqrt(fabs(pow(x,n)+exp(x)))標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:B選項(xiàng)中函數(shù)pow(x,e)錯(cuò)誤應(yīng)該直接使用exp(x)函數(shù)。C選項(xiàng)中函數(shù)abs(n∧x+e∧x)錯(cuò)誤,應(yīng)該使用fabs()返回浮點(diǎn)數(shù)的絕對(duì)值。D選項(xiàng)中pow(x,n)參數(shù)順序錯(cuò)誤。27、設(shè)有如下函數(shù)定義:intg(intk){if(k<1)return0;elseif(k==1)return1;elsereturng(k一1)+1;}若執(zhí)行調(diào)用語(yǔ)句m=g(3);,則函數(shù)g總共被調(diào)用的次數(shù)是()。A、2B、3C、4D、5標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:將3代入將執(zhí)行g(shù)(2),將2代入將執(zhí)行g(shù)(1),將1代入將直接返回1,所以總共調(diào)用了3次。28、有以下程序#include<stdio.h>main(){chara[5][10]={"one","two","three","four","five"};inti,j;chart;for(i=0;i<2;i++)for(j=i+1;j<5;j++)if(a[i][0]>a[j][0]){t=a[i][0];a[i][0]=a[j][0];a[j][0]=t;}puts(a[1]);}程序運(yùn)行后的輸出結(jié)果是A、owoB、fwoC、twoD、fix標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:考查二維數(shù)組元素的引用。當(dāng)i為0時(shí),代碼處理結(jié)果為第一個(gè)字符串的第一個(gè)字符與第四個(gè)字符串的第一個(gè)字符調(diào)換,當(dāng)i為1時(shí),代碼處理結(jié)果為第而個(gè)字符串的第一個(gè)字符與第五個(gè)字符串的第一個(gè)字符調(diào)換,所以a[1]為fwo29、有以下程序#include<stdio.h>main(){inta,b;for(a=0;a<3;a++){scanf("%d",&b);switch(b){case1:printf("%d,",++b);case2:printf("%d,",++b);default:printf("%d,",++b);}}}執(zhí)行時(shí)輸入:123<回車>,則輸出結(jié)果是A、2,3,4,3,4,4,B、2,3,4,C、2,2,2,3,3,4,D、2,3,4,3,4,5,4,5,6標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題執(zhí)行過(guò)程為,輸入1,匹配case1,執(zhí)行++b得b=2輸出2,再執(zhí)行下一個(gè)case2的語(yǔ)句++b得b=3輸出3,繼續(xù)執(zhí)行default的語(yǔ)句++b得b=4,輸出4;輸入2,執(zhí)行case2,輸出3,執(zhí)行default輸出4;輸入3,執(zhí)行default輸出4。A選項(xiàng)正確。30、有以下程序:#include#defineN4voidfun(inta[][N]int,b[]){inti;for(i=0;i<N;i++)b[i]=a[i][N一1一i]一a[i][i];}main(){intx[N][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},y[N],i;fun(x,y);for(i=0;i<N;i++)printf(’’%d,’’,y[i]);printf(’’\n’’);}程序運(yùn)行后的輸出結(jié)果是()。A、一3,一1,1,3B、一12,一3,0,0C、3,1,一1,一3D、一3,一3,一3,一3標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:仔細(xì)分析子函數(shù)的功能是以數(shù)組反對(duì)角線上的元素減去同行上對(duì)角線上的元素。31、設(shè)有關(guān)鍵碼序列(Q,G,M,Z,A,N,B,P,X,H,Y,S,T,L,K,E),采用堆排序法進(jìn)行排序,經(jīng)過(guò)初始建堆后關(guān)鍵碼值B在序列中的序號(hào)是()。A、1B、3C、7D、9標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:建堆的算法:首先將要排序的所有關(guān)鍵碼放到一棵完全二叉樹(shù)的各個(gè)結(jié)點(diǎn)中(這時(shí)的二叉樹(shù)不具備堆的特性),然后,從i=[n/2](n為結(jié)點(diǎn)的個(gè)數(shù))的結(jié)點(diǎn)Ki開(kāi)始,逐步把以K[n/2],K[n/2]-1,K[n/2]-2,…為根的子樹(shù)成堆,直到以K1為根的樹(shù)排成堆,就完成了建堆過(guò)程。此題中,n=16,i=[16/2]=8,即從第8個(gè)結(jié)點(diǎn)開(kāi)始,建堆完成后如下圖:所以經(jīng)過(guò)初始建堆后關(guān)鍵碼值B在序列中的序號(hào)是3。32、有以下程序#include<stdio.h>main(){char*s="120119110";intn0,n1,n2,nn,i;n0=n1=n2=nn=i=0;do{switch(s[i++]){default:nn++;case’0’:n0++;case’1’:n1++;case’2’:n2++;}}while(s[i]);printf("n0=%d,n1=%d,n2=%d,nn=%d\n",n0,n1,n2,nn);}程序的運(yùn)行結(jié)果是A、n0=3,n1=8,n2=9,nn=1B、n0=2,n1=5,n2=1,nn=1C、n0=2,n1=7,n2=10,nn=1D、n0=4,n1=8,n2=9,nn=1標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題執(zhí)行過(guò)程為,s[0]=’1’,匹配case’1’,n1=1,n2=1;s[1]=’2’,匹配case’2’,n2=2;s[2]=’0’,匹配case’0’,n0=1,n1=2,n2=3;s[3]=’1’,匹配case’1’,n1=3,n2=4;s[4]=’1’,匹配case’1’,n1=4,n2=5;s[5]=’9’,匹配default,nn=1,n0=2,n1=5,n2=6;s[6]=’1’,匹配case’1’,n1=6,n2=7;s[7]=’1’,匹配case’1’,n1=7,n2=8;s[8]=’0’,匹配case’0’,n0=3,n1=8,n2=9;s[9]=’\0’,退出循環(huán)。輸出n0,n1,n2,nn為3,8,9,1,A選項(xiàng)正確。33、將E-R圖轉(zhuǎn)換為關(guān)系模式時(shí),E-R圖中的屬性可以表示為A、屬性B、鍵C、關(guān)系D、域標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:采用E-R方法得到的全局概念模型是對(duì)信息世界的描述,并不適用于計(jì)算機(jī)處理,為了適合關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)的處理,必須將E-R圖轉(zhuǎn)換成關(guān)系模式。下表為E-R模型和關(guān)系模型的對(duì)照表。由表中可知A選項(xiàng)正確。34、下列敘述中正確的是A、結(jié)點(diǎn)中具有兩個(gè)指針域的鏈表一定是二叉鏈表B、結(jié)點(diǎn)中具有兩個(gè)指針域的鏈表可以是線性結(jié)構(gòu),也可以是非線性結(jié)構(gòu)C、二叉樹(shù)只能采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)D、循環(huán)鏈表是非線性結(jié)構(gòu)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:具有兩個(gè)指針域的鏈表可能是雙向鏈表,A選項(xiàng)錯(cuò)誤。雙向鏈表是線性結(jié)構(gòu),二叉樹(shù)為非線性結(jié)構(gòu),二者結(jié)點(diǎn)中均有兩個(gè)指針域,B選項(xiàng)正確。二叉樹(shù)通常采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),也可采用其他結(jié)構(gòu),C選項(xiàng)錯(cuò)誤。循環(huán)鏈表是線性結(jié)構(gòu),D選項(xiàng)錯(cuò)誤。35、有如下程序#include<stdio.h>main(){inti;for(i=0;i<5;i++)putchar(’Z’-i);}程序運(yùn)行后的輸出結(jié)果是A、’X’’Y’’Z’’W’’V’B、VWXYZC、ZYXWVD、’ABCDE’標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:putchar表示輸出單個(gè)字符,putchar(’Z’-i)表示輸出’Z’轉(zhuǎn)換成ASCII碼后減去i后再轉(zhuǎn)化成字符型數(shù)輸出,在for循環(huán)中,i=0,1,2,3,4時(shí),執(zhí)行循環(huán)體,因此答案為C選項(xiàng)。36、有以下程序#include<stdio.h>intf(intx,inty){return((y-x)*x);}main(){inta=3,b=4,c=5,d;d=f(f(a,b),f(a,c));printf("%d\n",d);}程序運(yùn)行后的輸出結(jié)果是A、8B、10C、9D、7標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:f(a,b)=f(3,4)=(4-3)*3=3;f(a,c)=f(3,5)=(5-3)*3=6;f(3,6)=(6-3)*3=9;因此,d=f(f(a,b),f(a,c))=9,答案為C選項(xiàng)。37、軟件生命周期是指A、軟件的定義和開(kāi)發(fā)階段B、軟件的需求分析、設(shè)計(jì)與實(shí)現(xiàn)階段C、軟件的開(kāi)發(fā)階段D、軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過(guò)程標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:通常把軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用、維護(hù)到停止使用、退役的過(guò)程稱為軟件生命周期。選項(xiàng)A、B、C選項(xiàng)均為生命周期的一部分。故選D選項(xiàng)38、下列程序的輸出結(jié)果是()。#include<stdio.h>voidmain(){inta=0,b=1,c=2;if(++a>0‖++b>0)++c;printf("%d,%d,%d",a,b,c);}A、0,1,2B、1,2,3C、1,1,3D、1,2,2標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查if語(yǔ)句。先判斷if語(yǔ)句的條件是否成立,因?yàn)椤?+a=1>0”,所以條件成立,又因?yàn)槭沁M(jìn)行邏輯或運(yùn)算,在己知其中一個(gè)運(yùn)算對(duì)象為真的情況下,不必判斷另外一個(gè)運(yùn)算對(duì)象的真假,即不進(jìn)行抖b操作,就可以直接得出整個(gè)表達(dá)式的值為邏輯1,執(zhí)行下面的++c。39、有三個(gè)關(guān)系R,S和T如下:其中關(guān)系T由關(guān)系R和S通過(guò)某種操作得到,該操作為()。A、選擇B、投影C、交D、并標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:選擇和投影操作對(duì)單個(gè)關(guān)系進(jìn)行操作,選擇運(yùn)算是對(duì)行的操作,投影運(yùn)算是對(duì)列的操作,運(yùn)算結(jié)果是一個(gè)關(guān)系。交和并運(yùn)算要求參與運(yùn)算的表具有相同的屬性,交運(yùn)算的結(jié)果是兩個(gè)表的公共部分,并運(yùn)算的結(jié)果包含兩個(gè)表的所有元素。40、下列關(guān)于return語(yǔ)句的敘述中,正確的是()。A、一個(gè)自定義函數(shù)中必須有一條return語(yǔ)句B、一個(gè)自定義函數(shù)中可以根據(jù)不同情況設(shè)置多條return語(yǔ)句C、定義成void類型的函數(shù)中可以有帶返回值的return語(yǔ)句D、沒(méi)有return語(yǔ)句的自定義函數(shù)在執(zhí)行結(jié)束時(shí)不能返回到調(diào)用處標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:一個(gè)自定義函數(shù)中可以沒(méi)有retnrn語(yǔ)句,沒(méi)有rcturn語(yǔ)句的自定義函數(shù)執(zhí)行完函數(shù)體結(jié)束時(shí),自動(dòng)返回到函數(shù)調(diào)用處,并帶回不確定的值;定義成void類型的函數(shù)中不能有帶返回值的return語(yǔ)句;所以選項(xiàng)A、C、D錯(cuò)誤。一個(gè)自定義函數(shù)中可以根據(jù)不同情況設(shè)置多條return語(yǔ)句,根據(jù)程序執(zhí)行流程,選擇執(zhí)行其中一條return語(yǔ)句帶值返回。故B選項(xiàng)正確。二、程序填空題(本題共1題,每題1.0分,共1分。)41、函數(shù)fun的功能是:輸出a所指數(shù)組中的前n個(gè)數(shù)據(jù),要求每行輸出5個(gè)數(shù)。請(qǐng)?jiān)诔绦虻南庐嬀€處填入正確的內(nèi)容并把下畫線刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下的BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:1#include<stdio.h>2#include<stdlib.h>3voidfun(int*a,intn)4{inti;5for(i=0;i<n;i++)6{7/*********found*********/8if(【1】==0)9/*********found*********/10printf(’’【2】’’);11/*********found*********/12printf(’’%d’’,【3】);13}14}15main()16{inta[100]={0},i,n;17n=22;18for(i=0;i<n;i++)19a[i]=rand()%21;20fun(a,n);21printf(’’\n’’);22}標(biāo)準(zhǔn)答案:(1)i%5(2)\n(3)a[i]知識(shí)點(diǎn)解析:填空1:每行輸出5個(gè)數(shù),即當(dāng)下標(biāo)值能整除5時(shí)換行。填空2:輸出換行符’\n’。填空3:輸出數(shù)組元素。三、程序修改題(本題共1題,每題1.0分,共1分。)42、給定程序MODI1.C中函數(shù)fun的功能是:應(yīng)用遞歸算法求形參a的平方根。求平方根的迭代公式如下:例如,a為2時(shí),平方根值為:1.414214。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。#include#include/**********found**********/doublefun(doublea,dounlex0){doublex1,y;x1=(x0+a/x0)/2.0;/**********found**********/if(fabs(x1-x0)>0.00001)y=fun(a,x1);elsey=xl;returny;}main(){doublex;printf("Enterx:");scanf("%1f",&x);printf("Thesquarerootof%1fis%]f\n",x,fun(x,1.0));}標(biāo)準(zhǔn)答案:(1)doublefun(doublea,doublex0)(2)if(fabs(x1一x0)>0.00001)知識(shí)點(diǎn)解析:(1)主函數(shù)中“fun(x,1.0)”,x是double型變量,1.0是浮點(diǎn)數(shù),可知fun有兩個(gè)double型參數(shù),而第一標(biāo)識(shí)下“dounle”不是C語(yǔ)言關(guān)鍵字,所以應(yīng)將“doublefun(doublea,dounlex0)”改為“doublefun(doublea,doublex0)”。(2)第二個(gè)標(biāo)識(shí)下的if語(yǔ)句是判斷進(jìn)行遞歸運(yùn)算的條件,第二標(biāo)識(shí)下變量xo沒(méi)有定義,根據(jù)題意,這里是判斷x1和x0的差值的絕對(duì)值是否比0.00001大,所以第二個(gè)標(biāo)識(shí)下“if(fabs(x1—x0)>0.00001)”改為“if(fabs(x1-x0)>0.00001)”。四、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)43、請(qǐng)編寫函數(shù)fun,函數(shù)的功能是查找x在s所指數(shù)組中下標(biāo)的位置,并作為函數(shù)值返回,若X不存在,則返回-1。注意:部分源程序在文件PROG1.C文件中,請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語(yǔ)句。試題程序:1#include<stdio.h>2#include<stdlib.h>3#defineN154voidNONO();5intfun(int*s,intx)6{78}9main()10{inta[N]={29,13,5,22,10,9,3,18,22,25,14,15,2,7,27},i,x,index;11printf(’’a數(shù)組中的數(shù)據(jù):\n’’);12for(i=0;i標(biāo)準(zhǔn)答案:1intfun(int*s,intx)2{inti;3for(i=0;i知識(shí)點(diǎn)解析:要找出數(shù)組中指定數(shù)據(jù)的下標(biāo),首先定義變量i用于存放數(shù)組下標(biāo),然后使用循環(huán)語(yǔ)句對(duì)數(shù)組進(jìn)行遍歷,依次取出一個(gè)數(shù)組元素與指定的數(shù)進(jìn)行比較,若相等,則返回該元素的下標(biāo),否則繼續(xù)判斷下一個(gè)元素,直到數(shù)組結(jié)束。若數(shù)組結(jié)束時(shí)仍沒(méi)有找到與指定數(shù)相等的元素,則返回-1。國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷第2套一、程序填空題(本題共1題,每題1.0分,共1分。)1、使用VC++2010打開(kāi)考生文件夾下blank1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件blank1.C。在此程序中,函數(shù)fun的功能是將a和b所指的兩個(gè)字符串分別轉(zhuǎn)換成面值相同的整數(shù),并進(jìn)行相加作為函數(shù)值返回,規(guī)定字符串中只含9個(gè)以下數(shù)字字符。例如,主函數(shù)中輸入字符串"32486"和"12345",在主函數(shù)中輸出的函數(shù)值為44831。請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:部分源程序在文件BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdio.h>#include<string.h>#include<ctype.h>#defineN9longctod(char*s)(longd=0;while(*S)if(isdigit(*s)){/*********found******/d=d*10+*s-【1】;/******found******/【2】}returnd;}longfun(char*a,char*b){/******found******/return【3】;}main()fchars1[N],s2[N];do{printf("Inputstrings1:");gets(s1);)while(strlen(s1)>N);do{printf("Inputstrings2:");gets(s2),)while(strlen(s2)>N);printf("Theresultis:%id\n",fun(s1,s2));}標(biāo)準(zhǔn)答案:(1)’O’(2)s++或++s(3)ctod(a)+ctod(h)知識(shí)點(diǎn)解析:填空1:isdigt(*s)這個(gè)函數(shù)表示檢查*s是否是數(shù)字(0~9),d=d*10+*s-?表示的是要把字符串分別轉(zhuǎn)換成面值相同的整數(shù),因此本空應(yīng)該填寫’0’。填空2:*s所代表的字符串中字符需要一個(gè)一個(gè)的字符進(jìn)行轉(zhuǎn)換成整數(shù),因此此空應(yīng)該填寫s++或++s。填空3:題目要求把轉(zhuǎn)換后的字符進(jìn)行相加后作為函數(shù)的返回值,因此本空應(yīng)該填寫ctod(a)+ctod(b)。二、程序修改題(本題共1題,每題1.0分,共1分。)2、使用VC++2010打開(kāi)考生文件夾下modil中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件modil.C。在此程序中,fun函數(shù)的功能是:分別統(tǒng)計(jì)字符串中大寫字母和小寫字母的個(gè)數(shù)。例如,給字符串s輸入:AAaaBBbbl23CCcccd。則應(yīng)輸出:upper=6,lower=8。請(qǐng)改正程序中的錯(cuò)誤,使它得出正確的結(jié)果。注意:部分源程序在文件MODI1.C中,不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdio.h>/******found******/voidfun(char*s,inta,intb){while(*S){if(*s>=’A’&&*S<=’Z’)/******found******/*a=a+1;if(*S>=’a’&&*s<=’z’)/******found******/*b=b+1;s++:}}main(){chars[100];intupper=0,lower=0;printf{"\nPleaseastring:");gets(S);fun(S,&upper,&lower);printf("\nupper=%dlower=%d\n",upper,lower);}標(biāo)準(zhǔn)答案:(1)voidfun(char*s,int*a,int*b)(2)*a=*a+1;(3)*b=*b+1;知識(shí)點(diǎn)解析:(1)由主函數(shù)中調(diào)用fun函數(shù)的語(yǔ)句fun(s,&upper,&lower)可知,函數(shù)的后兩個(gè)變量為指針的形式,所以用*a和*b。(2)*a的作用是用來(lái)記錄大寫字母的個(gè)數(shù),此處的作用是對(duì)*a累加1,所以此處應(yīng)改為*a=*a+1。(3)禮的作用是用來(lái)記錄小寫字母的個(gè)數(shù),此處的作用是對(duì)*b累加1,所以此處應(yīng)改為*b=*b+1。三、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)3、使用VC++2010打開(kāi)考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,請(qǐng)編一個(gè)函數(shù)floatfun(doubleh),該函數(shù)的功能是:使變量h中的值保留兩位小數(shù),并對(duì)第三位進(jìn)行四舍五入(規(guī)定h中的值為正數(shù))。例如,若h值為1234.567,則函數(shù)返回1234.570000;若h值為1234.564,則函數(shù)返回1234.560000。注意:部分源程序在文件PROG1.C中。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語(yǔ)句。試題程序:#include<stdio.h>#include<conio.h>#include<stdlib.h>floatfun(floath){}voidmain(){FILE*wf;floata;system("CLS");printf("Entera:");Scanf("%f",&a);printf("Theoriginaldatais:");printf("%f\n\n",a);printf("Theresult:%f\n",fun(a));/*****************/wf=fopen("out.dat","w");fprintf(wf,"%f",fun(8.32533));fclose(wf);/*****************/}標(biāo)準(zhǔn)答案:floatfun(floath){inttmp=(int)(h*1000+5)/10;/*單精度數(shù)h乘以1000后再加5,相當(dāng)于對(duì)h中的第三位小數(shù)進(jìn)行四舍五入,除以10后將其賦給一個(gè)長(zhǎng)整型數(shù)時(shí)就把第三位小數(shù)后的數(shù)全部截去*/return(float)tmp/100.0;/*除以100,保留2位小數(shù)*/}知識(shí)點(diǎn)解析:注意:本題要求對(duì)h的值真正進(jìn)行四舍五入運(yùn)算,而不是為了輸出,即不能用prinff("%7.2f",h)來(lái)直接得到結(jié)果。四舍五入算法:如果要求精確到小數(shù)點(diǎn)后面的第n位,則需要對(duì)第n+1位進(jìn)行運(yùn)算。方法是將該小數(shù)乘以10的n+1次方后加5,然后除以10并強(qiáng)制轉(zhuǎn)換變量類型為整型,再將該數(shù)除以10的n次方,同時(shí)強(qiáng)制轉(zhuǎn)換類型為浮點(diǎn)型。代碼實(shí)現(xiàn)如下:intt;/*定義整型變量t*/t=(int)(h*10n+1+5)/10;/*對(duì)h進(jìn)行操作,得到值浮點(diǎn)型,t取值時(shí)取整數(shù)部分。10n+1為要擴(kuò)大的倍數(shù)*/h=(float)t/10";/*將t縮小10"倍,并轉(zhuǎn)換成浮點(diǎn)型*/國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷第3套一、選擇題(本題共40題,每題1.0分,共40分。)1、在長(zhǎng)度為n的有序線性表中進(jìn)行二分查找,最壞情況下需要比較的次數(shù)是()。A、O(n)B、O(n2)C、O(log2n)D、O(nlog2n)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:二分查找的最壞情況是不斷的二分直至無(wú)法再分時(shí),仍然沒(méi)有查找成功。對(duì)于有序的線性表,二分查找法只需比較log2n次。2、下列關(guān)于棧和隊(duì)列的描述中,正確的是()。A、棧是先進(jìn)先出B、隊(duì)列是先進(jìn)后出C、隊(duì)列允許在隊(duì)頭刪除元素D、棧在棧頂刪除元素標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:棧實(shí)際也是線性表,只不過(guò)是一種特殊的線性表。棧是只能在表的一端進(jìn)行插入和刪除運(yùn)算的線性表,通常稱插入、刪除的這一端為棧頂,另一端為棧底。隊(duì)列是只允許在一端刪除,在另一端插入的順序表,允許刪除的一端叫做隊(duì)頭,允許插入的一端叫做隊(duì)尾。3、設(shè)有表示學(xué)生選課的三張表,學(xué)生S(學(xué)號(hào),姓名,性別,年齡,身份證號(hào)),課程C(課號(hào),課名),選課SC(學(xué)號(hào),課號(hào),成績(jī)),則表SC的關(guān)鍵字(鍵或碼)為()。A、課號(hào),成績(jī)B、學(xué)號(hào),成績(jī)C、學(xué)號(hào),課號(hào)D、學(xué)號(hào),姓名,成績(jī)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:學(xué)號(hào)是學(xué)生表S的主鍵,課號(hào)是課程表C的主鍵,所以選課表SC的關(guān)鍵字就應(yīng)該是與前兩個(gè)表能夠直接聯(lián)系且能唯一定義的學(xué)號(hào)和課號(hào),所以選擇C4、若有以下定義(設(shè)int類型變量占2個(gè)字節(jié))inti=8,j=9;則以下語(yǔ)句:printf(’’i=%%d,j=%%%d\n’’,i,j);輸出的結(jié)果是()。A、i=8,j=9B、i=%d,j=%8C、i=%d,j=%dD、8,9標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查printf函數(shù)的格式。printf函數(shù)中格式說(shuō)明符之前插入的任何字符都按原樣輸出。對(duì)于printf函數(shù),有兩個(gè)%說(shuō)明,第一個(gè)%后面的內(nèi)容要按原樣輸出。5、下列數(shù)組定義中錯(cuò)誤的是()。A、intX[][3]={0};B、intx[2][3]={{1,2),{3,4},{5,6}};C、intX[][3]={{1,2,3},{4,5,6}};D、intx[2][3]={1,2,3,4,5,6};標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:二維數(shù)組的初始化有以下幾種形式:①分行進(jìn)行初始化;②不分行的初始化;③部分?jǐn)?shù)組元素初始化;④省略第一維的定義,不省略第二維的定義。在選項(xiàng)B)中賦值號(hào)左邊定義了一個(gè)2行3列的二維數(shù)組,而右邊用3行2列的數(shù)字進(jìn)行賦初值。所以出現(xiàn)了邊界的越界溢出錯(cuò)誤。6、設(shè)已有定義:floatX;,則以下對(duì)指針變量P進(jìn)行定義且賦初值的語(yǔ)句中正確的是()。A、int*P=(float)X;B、float*P=&x;C、floatP=&x;D、float*P=1024;標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:指針是用來(lái)存放地址的變量,用(類型名+指針變量名)的形式定義。賦值時(shí)應(yīng)將某個(gè)變量地址即&x賦給指針變量,所以選擇B。7、下列二維數(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。8、有以下程序:#include<stdio.h>intfun(intx[],intn){staticintsum=0,i;for(i=0;i<n;i++)sum+=x[i];returnsum;}main(){inta[]={1,2,3,4,5},b[]={6,7,8,9},s=0;s=fun(a,5)+fun(b,4);printf("%d\n",s);}程序執(zhí)行后的輸出結(jié)果是()。A、55B、50C、45D、60標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:內(nèi)部靜態(tài)變量是始終存在的,當(dāng)函數(shù)被調(diào)用退出后,內(nèi)部靜態(tài)變量會(huì)保存數(shù)據(jù),再次調(diào)用該函數(shù)時(shí),以前調(diào)用時(shí)的數(shù)值仍然保留著。fun(a,5)的值是15,再次調(diào)用后sum=15,所以fun(b,4)=45,s:45+15=60。因此D選項(xiàng)正確。9、定義結(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[i]中name成員的第3個(gè)元素。第一次循環(huán),i=1,輸出x[1].num,x[l].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。10、兩個(gè)或兩個(gè)以上的模塊之間關(guān)聯(lián)的緊密程度稱為()。A、耦合度B、內(nèi)聚度C、復(fù)雜度D、連接度標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:耦合度是模塊間互相連接的緊密程度的度量;內(nèi)聚度是一個(gè)模塊內(nèi)部各個(gè)元素間彼此結(jié)合的緊密程度的度量。11、檢查軟件產(chǎn)品是否符合需求定義的過(guò)程稱為()。A、確認(rèn)測(cè)試B、需求測(cè)試C、驗(yàn)證測(cè)試D、路徑測(cè)試標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:確認(rèn)測(cè)試的任務(wù)是驗(yàn)證軟件的功能和性能,以及其他特性是否滿足需求規(guī)格說(shuō)明中確定的各種需求。12、有如下程序段:intx=12:doubley=3.141593;printf("%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。13、若有說(shuō)明inta[3][4];則a數(shù)組元素的非法引用是()。A、a[0][2*1]B、a[1][3]C、a[4-2][0]D、a.[0][4]標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是數(shù)組元素的引用。對(duì)于已定義的數(shù)組a[M][N],數(shù)組元素的正確引用必須滿足行下標(biāo)小于M,列下標(biāo)小于N且為正整數(shù)。此題中,選項(xiàng)D中列下標(biāo)值出現(xiàn)溢出。14、以下選項(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ō)法是錨誤的。15、對(duì)長(zhǎng)度為n的線性表排序,在最壞情況下,比較次數(shù)不是n(n-1)/2的排序方法是()。A、快速排序B、冒泡排序C、直接插入排序D、堆排序標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在最壞的情況下,堆排序需要比較的次數(shù)為O(nlog2n),所以選擇D)。16、下面程序的運(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=x-1=14”。17、if語(yǔ)句的基本形式為:if(表達(dá)式)語(yǔ)句,其中“表達(dá)式”()。A、可以是任意合法的表達(dá)式B、必須是邏輯表達(dá)式C、必須是邏輯表達(dá)式或關(guān)系表達(dá)式D、必須是關(guān)系表達(dá)式標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查if表達(dá)式。if(表達(dá)式)中的表達(dá)式可以為任何合法的表達(dá)式,一般情況下為邏輯、條件表達(dá)式,需要注意的是,當(dāng)?shù)忍?hào)(==)誤寫為賦值號(hào)(=)時(shí)不會(huì)報(bào)錯(cuò)的,但是其值恒為1。18、有以下程序:#include<stdio.h>#defineN4voidfun(inta[][N],intb[]){inti;for(i=0;i<N;i++)b[i]=a[i][i];}main(){intx[][N]={{1,2,3},{4},{5,6,7,8},{9,10}},y[N],i;fun(x,y);for(i=0;i<N;i++)printf("%d,",y[i]);printf("\n");}程序運(yùn)行后的輸出結(jié)果是()。A、1,0,7,0,B、1,2,3,4,C、1,4,5,9,D、3,4,8,10,標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:該程序首先在定義變量時(shí),對(duì)二維數(shù)組a[]N]進(jìn)行賦值操作;調(diào)用函數(shù)fun,函數(shù)fun的功能是將二維數(shù)組中的a[0][0]、a[1][1]、a[2][2]和a[3][3]賦值給一維數(shù)組,最后將一維數(shù)組元素1,0,7,0,輸出。19、有以下程序#includevoidfun(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、71B、43C、34D、00標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:函數(shù)m1()返回兩個(gè)參數(shù)中較小的數(shù)值,函數(shù)m2()返回兩個(gè)參數(shù)中較大的數(shù)值,函數(shù)fun()返回兩個(gè)參數(shù)之和,所以fun(m1(x,y),m2(y,z))=fun(m1(2,3),m2(3,1))=fun(2,3)=5,答案選A)。20、已有定義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ù)的格式?!埃?x”表示以十六進(jìn)制無(wú)符號(hào)形式輸出整型數(shù)據(jù)?!?”表示指定輸出數(shù)據(jù)的寬度為8位。。21、有以下程序:#include<stdio.h>main(){inti,j;for(i=3;i>=1;i--){for(j=1;j<=2;j++)printf("%d",i+j);printf("\n");}}程序運(yùn)行后的輸出結(jié)果是()。A、432543B、453423C、233445D、233423標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:第一次執(zhí)行外循環(huán),i的值為3,第一次執(zhí)行內(nèi)循環(huán)j的值為1,j<=2條件成立,打印i+j的值,即4;第二次執(zhí)行內(nèi)循環(huán)j的值為2,j<=2條件成立,打印i+j的值,即5:再判斷條件不成立,打印回車換行符,跳出內(nèi)循環(huán)。第二次執(zhí)行外循環(huán),i的值為2,內(nèi)循環(huán)的執(zhí)行同第一次一樣,所以打印3和4,打印回車換行,結(jié)束內(nèi)循環(huán)。第三次執(zhí)行外循環(huán)i的值為1,同理內(nèi)循環(huán)中打印2和3,打印回車換行符,結(jié)束內(nèi)循環(huán)。22、有以下程序:#includevoidf(int*q){inti=0;for(;i<5;i++)(*q)++;}main(){inta[5]={1,2,3,4,5},i;f(a);for(i=0;i<5;i++)printf(“%d,”,a[i]);}程序運(yùn)行后的輸出結(jié)果是()。A、6,2,3,4,5,B、2,2,3,4,5,C、1,2,3,4,5,D、2,3,4,5,6,標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查的是函數(shù)的地址調(diào)用,將數(shù)組名作為數(shù)組首地址進(jìn)行傳遞,然后取首個(gè)數(shù)組元素值進(jìn)行加1運(yùn)算,循環(huán)5次。因此A選項(xiàng)正確。23、若已定義:inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0≤1≤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)溢出。24、支持子程序調(diào)用的數(shù)據(jù)結(jié)構(gòu)是()。A、棧B、樹(shù)C、隊(duì)列D、二叉樹(shù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在高級(jí)語(yǔ)言中,函數(shù)的調(diào)用是通過(guò)棧來(lái)實(shí)現(xiàn)的。在進(jìn)行函數(shù)調(diào)用時(shí),系統(tǒng)將所需的信息壓入棧中,如函數(shù)的局部變量、返回值等。25、有以下程序#inc1udemain(){intb[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=0;for(i=0;i<3;i++)for(j=2j>=i;j——)=—b[i]D];printf("%d\n",t);}程序運(yùn)行后的輸出結(jié)果是()。A、4B、3C、8D、9標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:這道題主要考查的是二維數(shù)組的有關(guān)知識(shí)。在兩層for循環(huán)語(yǔ)句中,累加上三角元素,所以程序執(zhí)行的過(guò)程為“t=b[0][0]+b[0][1]+b[0][2]+b[1][1]+b[1][2]+b[2][2]=8”。26、設(shè)q1和q2是指向一個(gè)int型一維數(shù)組的指針變量,k為float型變量,下列不能正確執(zhí)行的語(yǔ)句是()。A、k=*q1*(*q2);B、q1=k;C、q1=q2;D、k=*q1+*q2;標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查指針變量的賦值操作。選項(xiàng)A是將指針q1和q2所指向的變量值相乘,然后賦給k;選項(xiàng)B中,float型數(shù)據(jù)和指針型數(shù)據(jù)之間不能進(jìn)行賦值運(yùn)算;選項(xiàng)C中,是兩個(gè)指針變量之間的賦值;選項(xiàng)D中,是兩個(gè)指針型變量所指向的兩個(gè)int型數(shù)據(jù)相加。27、有以下程序:#includeintfun(inta,intb){if(b==0)returna;elsereturn(fun(--a,--b));}main(){printf("%d/n",fun(4,2));}程序運(yùn)行的結(jié)果是()。A、1B、2C、3D、4標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:fun函數(shù)是一個(gè)遞歸函數(shù),其功能是:當(dāng)b的值為零時(shí),返回此時(shí)a的值;否則,返回fun(--a,--b),即將a和b的值分別減1后返回fun(a,b)。當(dāng)b不斷遞減時(shí),a也不斷遞減,直到b為零。執(zhí)行過(guò)程為:執(zhí)行fun(4,2),b=2,返回fun(3,1),此時(shí)b=1,返回fun(2,0),b=0,返回a的值2。28、有以下結(jié)構(gòu)體說(shuō)明、變量定義和賦值語(yǔ)句:struetSTD{charname[10];intage;charsex;}s[5],*ps;ps=&s[0];則以下scanf函數(shù)調(diào)用語(yǔ)句有錯(cuò)誤的是()。A、scanf(“%s”,s[0].name);B、seanf(“%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ò)誤。29、若程序中有宏定義行:#defineN100更哼以下敘述中正確的是()。A、宏定義行中定義了標(biāo)識(shí)符N的值為整數(shù)100B、在編譯程序?qū)源程序進(jìn)行預(yù)處理時(shí)用100替換標(biāo)識(shí)符NC、上述宏定義行實(shí)現(xiàn)將100賦給標(biāo)識(shí)符ND、在運(yùn)行時(shí)用100替換標(biāo)識(shí)符N標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查預(yù)編譯相關(guān)知識(shí)。宏定義在編譯程序時(shí)做了一個(gè)簡(jiǎn)單的替換,所以選項(xiàng)B正確。30、C語(yǔ)言程序的模塊化通過(guò)以下哪個(gè)選項(xiàng)來(lái)實(shí)現(xiàn)()。A、函數(shù)B、變量C、程序行D、語(yǔ)句標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:暫無(wú)解析31、有以下程序#includemain(){ints[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i;for(i=0;i<12;i++)c[s[i]]++;for(i=1;i<5;i++)printf("%d",c[i]);printf("\n");}程序的運(yùn)行結(jié)果是()。A、4332B、2344C、1234D、1123標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:暫無(wú)解析32、以下敘述中正確的是A、字符串?dāng)?shù)組,是指數(shù)組中的每個(gè)元素都是一個(gè)存放字符串的一維數(shù)組B、charca[3][5]={"A","BB","CCC"};是不合語(yǔ)法的C、charca[][5]={"A","BB","CCC"};是不合語(yǔ)法的D、char*ca[3]={"A","BB","CCC"};是不合語(yǔ)法的標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查字符串?dāng)?shù)組的相關(guān)知識(shí),選項(xiàng)B、C、D都是合語(yǔ)法的。33、關(guān)于分支語(yǔ)句if(E)printf(’’%d\n’’,k);中,不可以替代E的表達(dá)式是()。A、a<>b+cB、ch=getchar()C、a==b+cD、a++標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在數(shù)學(xué)上有時(shí)候會(huì)使用<>表示不等于,但在C語(yǔ)言中沒(méi)有這種表達(dá)方式,所以A的表達(dá)式有誤,其它選項(xiàng)均可以替代E,用來(lái)進(jìn)行條件判斷。34、下列敘述中錯(cuò)誤的是()。A、一個(gè)C語(yǔ)言程序只能實(shí)現(xiàn)一種算法B、C語(yǔ)言程序可以由多個(gè)程序文件組成C、C語(yǔ)言程序可以由一個(gè)或多個(gè)函數(shù)組成D、一個(gè)C語(yǔ)言函數(shù)可以單獨(dú)作為一個(gè)C語(yǔ)言程序文件存在標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在C語(yǔ)言程序中可以自選編制多種算法,因此選項(xiàng)A的敘述錯(cuò)誤。C語(yǔ)言中可以由多個(gè)文件組成,并通過(guò)引用的方式連接在一起編譯并運(yùn)行,每個(gè)文件可以包含一個(gè)或多個(gè)函數(shù),因此選項(xiàng)B和D的敘述沒(méi)有錯(cuò)誤;C語(yǔ)言可以包含多個(gè)函數(shù),所以選項(xiàng)C的敘述也沒(méi)有錯(cuò)誤。35、下列敘述中正確的是A、棧與隊(duì)列都只能順序存儲(chǔ)B、循環(huán)隊(duì)列是隊(duì)列的順序存儲(chǔ)結(jié)構(gòu)C、循環(huán)鏈表是循環(huán)隊(duì)列的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)D、棧是順序存儲(chǔ)結(jié)構(gòu)而隊(duì)列是鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:棧是所有的插入與刪除都限定在表的同一端進(jìn)行的線性表;隊(duì)列是指允許在一端進(jìn)行插入,而在另一端進(jìn)行刪除的線性表,二者均即可以順序存儲(chǔ)也可以鏈?zhǔn)酱鎯?chǔ)。為了充分地利用數(shù)組的存儲(chǔ)空間,把數(shù)組的前端和后端連接起來(lái),形成一個(gè)環(huán)形的表,稱為循環(huán)隊(duì)列,因此循環(huán)隊(duì)列是隊(duì)列的一種順序存儲(chǔ)結(jié)構(gòu),B選項(xiàng)正確。36、有兩個(gè)關(guān)系R,S如下,由關(guān)系R和S得到關(guān)系T,則所使用的操作為A、并B、自然連接C、差D、交標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:常用的擴(kuò)充運(yùn)算有交、除、連接及自然連接等。并:RS是將S中的記錄追加到R后面。自然連接:去掉重復(fù)屬性的等值連接。差:R-S結(jié)果是屬于R但不屬于S的記錄組成的集合。交:RS結(jié)果是既屬于R又屬于S的記錄組成的集合。并:RS的結(jié)果集為T,所以A選項(xiàng)正確。37、有以下程序#include<stdio.h>main(){inta=-2,b=2;for(;++a&&--b;);printf("%d,%d\n",a,b);}程序運(yùn)行后的輸出結(jié)果是A、0,1B、0,0C、1,-1D、0,2標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:for(;++a&&--b;);for循環(huán)的1,3表達(dá)式缺省項(xiàng),判斷條件為++a&&--b;a=-2,b=2;,第一次執(zhí)行了++a和--b,,表示為真,循環(huán)條件成立,第二次執(zhí)行++a為0,由于&&運(yùn)算符,當(dāng)?shù)谝粋€(gè)條件為假時(shí),不執(zhí)行第二個(gè)條件,所以b=1,發(fā)生短路,--b不執(zhí)行了。因此a,b的最終值0,1。故答案為A選項(xiàng)。38、有以下程序#include<stdio.h>#defineSUB(x,y)(x)*(y)main(){inta=3,b=4;printf("%d\n",SUB(a++,b++));}程序運(yùn)行后的輸出結(jié)果是A、15B、12C、16D、20標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:#define命令是C語(yǔ)言中的一個(gè)宏定義命令,標(biāo)識(shí)符一般使用大寫,為了區(qū)分其他標(biāo)識(shí)符,它用來(lái)將一個(gè)標(biāo)識(shí)符定義為一個(gè)字符串,該標(biāo)識(shí)符被稱為宏名,被定義的字符串稱為替換文本。宏定義不進(jìn)行其他操作,僅僅只是替換標(biāo)識(shí)符。后置自增運(yùn)算:k++表示先運(yùn)算,后自加。意思是遇到k++了,先把當(dāng)前的k的值拿來(lái)參加運(yùn)算,后面再去管它的自加。SUB(a++,b++):(a++)*(b++):3*4。故答案為B選項(xiàng)。39、有以下程序:#include<stdio.h>#defineN4voidfun(inta[][N],intb[]){inti;for(i=0;i<N;i++)b[i]=a[i][i]-a[i][N-1-i];}main(){intx[N][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},y[N],i;fun(x,y);for(i=0;i<N;i++)printf("%d,",y[i]);printf("\n");}程序運(yùn)行后的輸出結(jié)果是()。A、-3,-1,1,3,B、-12,-3,0,0,C、0,1,2,3,D、-3,-3,-3,-3,標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題中由fun函數(shù)可知,b[0]=a[0][0]-a[0][3]=1-4=-3,b[1]=a[1][1]-[1][2]=6-7=-1,b[2]=a[2][2]-[2][1]=11-10=1,b[3]=a[3][3]-[3][1]=16-13=3。所以主函數(shù)中打印y數(shù)組元素的值為A)選項(xiàng)。40、已知: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)滿足要求。二、程序填空題(本題共1題,每題1.0分,共1分。)41、下列給定程序中,函數(shù)fun的功能是:把形參a所指數(shù)組中的偶數(shù)按原順序依次存放到a[0]、a[1]、a[2]…中,把奇數(shù)從數(shù)組中刪除,偶數(shù)的個(gè)數(shù)通過(guò)函數(shù)值返回。例如,若a所指數(shù)組中的數(shù)據(jù)最初排列為:9、1、4、2、3、6、.5、8、7,刪除奇數(shù)后a所指數(shù)組中的數(shù)、據(jù)為:4、2、6、8,返回值為4。請(qǐng)?jiān)谙聞澗€處填人正確的內(nèi)容并將下劃線刪除,使程序得出正確的結(jié)果。注意:部分源程序給出如下。不得增行或刪行。也不得更改程序的結(jié)構(gòu)!試題程序:#inchde#defineN9intfunonta[],intn){inti,j;j=0;for(i=0;i標(biāo)準(zhǔn)答案:(1)a[i]%2(2)a[i](3)j知識(shí)點(diǎn)解析:填空1:if語(yǔ)句用來(lái)判斷數(shù)組元素是否為偶數(shù),模2為0的數(shù)為偶數(shù),所以填入a[i]%2。填空2:保存為偶數(shù)的數(shù)組元素。填空3:通過(guò)return語(yǔ)句將偶數(shù)個(gè)數(shù)作為函數(shù)值返回。三、程序修改題(本題共1題,每題1.0分,共1分。)42、給定程序MODI1.C中函數(shù)fun的功能足:從n(形參)個(gè)學(xué)生的成績(jī)中統(tǒng)計(jì)出低于平均分的學(xué)生人數(shù),此人數(shù)由函數(shù)值返回,平均分存放在形參aver所指的存儲(chǔ)單元中。例如,若輸入8名學(xué)生的成績(jī):80.5607290.59851.58864則低于平均分的學(xué)生人數(shù)為:4(平均分為:75.5625)。請(qǐng)改正程序中的錯(cuò)誤,使它能統(tǒng)計(jì)出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include#defiFieN20intfun(float*s,intn,float*aver){floatave,t=0.0;intcount=0,k,i;for(k=0;k標(biāo)準(zhǔn)答案:(1)t+=s[k];(2)*aver=ave;知識(shí)點(diǎn)解析:(1)根據(jù)題目要求求出平均分,首先要求總分,要把所有學(xué)生成績(jī)相加再求平均分,因此第一個(gè)標(biāo)識(shí)下面的“t=s[k];”應(yīng)改為“t+=s[k];”。(2)根據(jù)題目可知,比較的結(jié)果中高于平均分的分?jǐn)?shù)ave放入指針aver所指的地址單元中,而變量Ave沒(méi)有定義,因此第二標(biāo)識(shí)下應(yīng)將“*aver=Ave;”改為“*aver=ave;”。四、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)43、編寫函數(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。注意:部分源程序在文件PROGl.C中。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語(yǔ)句。#include#includedoublefun(intm){}msin(){voidNONO();printf("%f\n",fun(20));NONO();}voidNONO(){/*本函數(shù)用于打開(kāi)文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/FILE*fp,*wf;inti,n;doubles;fp=fopen("in.dat","r");wf=fopen("out.dat","w");for(i=0;i<10;i++){fscanf(fp,"%d",&n);s=fun(n);fprintf(wf,"%f\n",s);}fclose(fp);fclose(wf);}標(biāo)準(zhǔn)答案:doubles=0.0;inti;for(i=1;i<=m;i++)s+=log(1.0*i);s=sqrt(s);returns;知識(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ī)試模擬試卷第4套一、程序填空題(本題共1題,每題1.0分,共1分。)1、使用VC++2010打開(kāi)考生文件夾下blank1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件blank1.c。在此程序中,函數(shù)fun的功能是:將形參std所指結(jié)構(gòu)體數(shù)組中年齡最大者的數(shù)據(jù)作為函數(shù)值返回,并在main函數(shù)中輸出。請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:部分源程序給出如下。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdio.h>typedefstruct{charname[10];intage;}STD;STDfun(STDstd[],intn){STDmax;inti;/*********found*********/max=【1】;for(i=1;i<n;i++)/*********found*********/if(max.a(chǎn)ge<【2】)max=std[i];returnmax;}main(){STDstd[5]={"aaa",17,"bbb",16,"ccc",18,"ddd

溫馨提示

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