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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

國(guó)家二級(jí)C語(yǔ)言機(jī)試(函數(shù)和數(shù)組)模擬試卷2(共4套)(共107題)國(guó)家二級(jí)C語(yǔ)言機(jī)試(函數(shù)和數(shù)組)模擬試卷第1套一、選擇題(本題共25題,每題1.0分,共25分。)1、以下程序的輸出結(jié)果是()。#include#includemain(){chara[10]=’’abc’’,b[10]=’’012’’,c[10]=’’xyz’’;strcpy(a+1,b+2);puts(strcat(a,c+1));}A、12yzB、a2yzC、abcyzD、abyz標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:程序執(zhí)行C語(yǔ)言庫(kù)函數(shù)“strcpy(a+1,b+2)”后,字符數(shù)組a的值為“a2”,再進(jìn)行字符串的連接“strcat(a,c+1)”,此時(shí)字符數(shù)組a的值為“a2yz”。2、關(guān)于子函數(shù)調(diào)用的敘述中正確的是()。A、實(shí)用的C語(yǔ)言源程序總是由一個(gè)或多個(gè)函數(shù)組成B、不同函數(shù)的形式參數(shù)不能使用相同名稱的標(biāo)識(shí)符C、在C語(yǔ)言的函數(shù)內(nèi)部,可以定義局部嵌套函數(shù)D、用戶自己定義的函數(shù)只能調(diào)用庫(kù)函數(shù)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C語(yǔ)言源程序可以由一個(gè)或多個(gè)源文件組成,每個(gè)源文件包含一個(gè)或多個(gè)函數(shù),這些函數(shù)可以是自定義函數(shù),也可以是庫(kù)函數(shù),各個(gè)函數(shù)之間沒有主從關(guān)系。3、設(shè)intfun(int*p){return*p;},則此函數(shù)返回值是()。A、NULLB、一個(gè)整數(shù)C、形參p中存放的值D、形參p的地址值標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:由題目中的定義可知,返回值為整型指針變量p所指向的數(shù)據(jù)。4、關(guān)于函數(shù)調(diào)用的敘述中錯(cuò)誤的是()。A、C程序必須由一個(gè)或一個(gè)以上的函數(shù)組成B、函數(shù)形參的值也可以傳回給對(duì)應(yīng)的實(shí)參C、若函數(shù)有返回值,必須通過return語(yǔ)句返回D、函數(shù)調(diào)用可以作為一個(gè)獨(dú)立的語(yǔ)句存在標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:一個(gè)C程序中可以包含任意多個(gè)不同名的函數(shù),但只有一個(gè)主函數(shù),即main()函數(shù)。一個(gè)C程序總是從主函數(shù)開始執(zhí)行。函數(shù)的值通過return語(yǔ)句返回,return語(yǔ)句中的表達(dá)式的值就是所求的函數(shù)值。在C語(yǔ)言中。數(shù)據(jù)只能從實(shí)參單向傳遞給形參,稱為“按值”傳遞。也就是說,用戶不可能在函數(shù)中改變對(duì)應(yīng)實(shí)參的值(指針作為實(shí)參的除外)。5、關(guān)于voidfun()的敘述中正確的是()。A、fun函數(shù)無(wú)返回值B、fun函數(shù)的返回值是NULLC、fun函數(shù)的返回值是無(wú)值型的指針類型D、指針fun指向一個(gè)函數(shù),該函數(shù)無(wú)返回值標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題主要考查函數(shù)的聲明,voidfun()即表示fun函數(shù)沒有輸入?yún)?shù),函數(shù)返回void表示函數(shù)無(wú)返回值。6、關(guān)于靜態(tài)變量的敘述中錯(cuò)誤的是()。A、C程序函數(shù)的形參不可以說明為static型變量B、C程序函數(shù)中定義的賦有初值的靜態(tài)變量,每調(diào)用一次函數(shù),賦一次初值C、C程序函數(shù)中定義的自動(dòng)變量,系統(tǒng)不自動(dòng)賦確定的初值D、在C程序的同一函數(shù)中,各復(fù)合語(yǔ)句內(nèi)可以定義變量,其作用域僅限本復(fù)合語(yǔ)句內(nèi)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在函數(shù)定義的靜態(tài)變量,只需要賦值一次,即可保存初始值,不需要每次調(diào)用時(shí)都賦初始值。7、以下程序的輸出結(jié)果是()。#includeintfun(intx,inty){if(x==y)returnx;return((x+y)/2);}main(){inta=4,b=5,c=6;printf(’’%d\n’’,fun(2*a,fun(b,e)));A、12B、6C、3D、1標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:首先看里面的fun(b,c),傳參5,6,得到返回值為5(11/2=5類型相同相除得同類型的),再計(jì)算外面的fun(8,5)輸出就是6;故答案為B項(xiàng)。8、以下程序的輸出結(jié)果是()。#includedoublef(doublex);doublef(doublex){returnx*x+1;}main(){doublea=0;inti;for(i=0;i<30;i+=10)a+f((double)i);prinff(’’%5.0f\n’’,a);}A、1401B、53C、503D、404標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:題目中函數(shù)f的作用是對(duì)形參x求平方再加1,所以在主函數(shù)中,循環(huán)第一次執(zhí)行后變量a的值等于1,第二次執(zhí)行后,變量a的值等于102,第三次執(zhí)行后,變量a的值等于503。9、若執(zhí)行調(diào)用語(yǔ)句:n=fun(3);,則函數(shù)fun總共被調(diào)用的次數(shù)是()。intfun(intk){if(k<1)return0;elseif(k==1)return1;elsereturnfun(k一1)+1;}A、1B、2C、3D、4標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:考查了函數(shù)的遞歸調(diào)用,當(dāng)執(zhí)行調(diào)用語(yǔ)句n=fun(3)時(shí),返回n=fun(2)+1,再執(zhí)行fun(2),返回n=fun(1)+1+1,而fun(1)等于1,所以最后n的值等于3。10、以下程序的輸出結(jié)果是()。(strcat函數(shù)用以連接兩個(gè)字符串)#include#includemain(){chara[20]=’’ABCD\0EFG\0’’,b[]==’’IJK’’;strcat(a,b);printf(’’%s\n’’,a);}A、\OFG\OIJKB、ABCDIJKC、UKD、EFG標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在字符串中字符’’\0’’表示字符串的結(jié)束標(biāo)志是系統(tǒng)自動(dòng)加上的,所以字符串a(chǎn)和b相連接的結(jié)果為ABCDIJK。11、以下程序的輸出結(jié)果是()。fun(intx)main(){intp;{if(x==0‖x==1)return(3);printf(’’%d\n’’,fun(7));p=x一fun(x一2);}returnp;}A、4B、3C、0D、2標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查遞歸調(diào)用。因?yàn)樵诤瘮?shù)fun(x)中,如果參數(shù)x等于0或等于1時(shí),返回值為“3”。否則’’p=x—fun(x一2)’’這是一個(gè)遞歸函數(shù),所以在主函數(shù)調(diào)用fun(7)的時(shí)候,其過程為:fun(7)=7一fun(5)=7一(5一fun(3))=7一(5一(3一fun(1)))=7一(5一(3—3))=7—5=2,所以最后的輸出結(jié)果為2。12、關(guān)于全局變量作用域的敘述中正確的是()。A、所有文件的所有范圍B、所在程序的全部范圍C、所在函數(shù)的全部范圍D、由具體定義位置和extern說明來(lái)決定范圍標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在C語(yǔ)言中,全局變量的作用范圍最大,其有效范圍從定義變量的位置開始到本源文件結(jié)束。如果需要在其他源文件中使用該全局變量,則可以在其他源文件中使用extern關(guān)鍵字來(lái)聲明該全局變量,這樣該全局變量的作用域就被擴(kuò)展到以extern聲明了該全局變量的位置開始到此源文件結(jié)束。13、關(guān)于變量的定義和說明的敘述中正確的是()。A、對(duì)于變量而言,“定義”和“說明”這兩個(gè)詞實(shí)際上是同一個(gè)意思B、在復(fù)合語(yǔ)句中不能定義變量C、全局變量的存儲(chǔ)類別可以是靜態(tài)類D、函數(shù)的形式參數(shù)不屬于局部變量標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:C語(yǔ)言的關(guān)鍵字static說明符說明全局變量時(shí),此變量可稱作靜態(tài)全局變量。靜態(tài)全局變量只限于本編譯單位使用,不能被其他編譯單位所引用。在一個(gè)函數(shù)內(nèi)部定義的變量(包括形參)是局部變量,它只在本函數(shù)范圍內(nèi)有效。不同函數(shù)中可以使用相同名字的局部變量,它們代表不同的對(duì)象,互不影響。在函數(shù)內(nèi)部復(fù)合語(yǔ)句中也可以定義變量,這些變量都是局部變量,只在本復(fù)合語(yǔ)句中有效。14、以下程序的輸出結(jié)果是()。intf(intm)main(){intn=0;{staticintn=0;printf(’’%d,’’,f(++n));n+=m;returnn;}printf(’’%d\n,’’,f(++n));}A、3,2B、1,2C、2,3D、3,1標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:由于變量n為靜態(tài)局部變量,所以在主函數(shù)中第一次調(diào)用函數(shù)f后,變量n的值等于1。當(dāng)?shù)诙握{(diào)用函數(shù)f時(shí),在函數(shù)f的內(nèi)部靜態(tài)局部變量n的值仍然保留等于1,所以返回函數(shù)值等于2。15、inta=4;intf(intn)main(){intt=0;staticinta=5;{ints=a,i=0;if(n%2){inta=6;t+=a++;}for(;i<2;i++)s+=f(i);else{inta=7;t+=a++;}printf(’’%d\n’’,s);retumt+a++;}}A、28B、30C、32D、34標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查變量作用域。程序中首先定義了全局整型變量a=4。在intf(intn)函數(shù)中定義了局部靜態(tài)整型變量并進(jìn)行了初始化即staticinta=5,在intf(intn)函數(shù)中對(duì)n是否是偶數(shù)進(jìn)行判斷,如果n是奇數(shù),則函數(shù)的返回值為11,局部靜態(tài)整型變量a=6;如果n是偶數(shù),則函數(shù)的返回值為12,局部靜態(tài)整型變量a=6。所以在main()函數(shù)中循環(huán)首先執(zhí)行s+=f(0)語(yǔ)句,而f(0)返回值12,所以第一次循環(huán)結(jié)束s的值等于4+12=16;第二次開始執(zhí)行f(1)時(shí),在f(1)中執(zhí)行“if(n%2){inta=6;t+=a++;}”和“returnt+a++;”這兩條語(yǔ)句。這時(shí)t=6,a=6(靜態(tài)局部變量第一次循環(huán)后其值加1不釋放,執(zhí)行二次循環(huán)量,其值仍有效),所以f(1)的返回值等于12。再在主函數(shù)中執(zhí)行s+=f(1)語(yǔ)句,即16+12=28。16、若char*line[5];,則以下敘述中正確的是()。A、定義line是一個(gè)數(shù)組,每個(gè)數(shù)組元素是一個(gè)基類型為char的指針變量B、定義line是一個(gè)指向字符型函數(shù)的指針C、定義line是一個(gè)指針數(shù)組,語(yǔ)句中的,一c號(hào)稱為間址運(yùn)算符D、定義line是一個(gè)指針變量,該變量可以指向一個(gè)長(zhǎng)度為5的字符型數(shù)組標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查指針數(shù)組的定義。本題中l(wèi)ine是一個(gè)指針數(shù)組用來(lái)存放指針變量,有5個(gè)元素。每個(gè)元素都是一個(gè)指針變量。17、若有定義語(yǔ)句:floatx[5]={1.0,2.0,3.0,4.0,5.0},*p=x;則錯(cuò)誤引用x數(shù)組元素的是()。A、*PB、x[5]C、*(p+1)D、*x標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:x是一個(gè)一維float類型的數(shù)組,長(zhǎng)度為5,下標(biāo)范圍是0~4,指針p指向數(shù)組x。選項(xiàng)A中*p是取數(shù)組首元素x[0]的值;選項(xiàng)B下標(biāo)超出范圍;選項(xiàng)C中*(p+1)表示x[1]的地址,因此*(p+1)是取x[1]元素值;選項(xiàng)D中,數(shù)組名x本身代表數(shù)組的首地址,因此*x表示取元素x[0]的值。18、合法定義一維數(shù)組的是()。A、inta[5]={0,1,2,3,4,5};B、chara[]一{1,2,3,4,5};C、chara={’A’,’B’,’C’};D、inta[5]=’’0123’’標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查一維數(shù)組的定義,C語(yǔ)言中一維數(shù)組的定義必須使用[]說明長(zhǎng)度,長(zhǎng)度可以省略。選項(xiàng)A定義的數(shù)組長(zhǎng)度為5,元素個(gè)數(shù)為6,超過數(shù)組長(zhǎng)度,錯(cuò)誤;選項(xiàng)B正確,編譯器會(huì)根據(jù)初始化元素的個(gè)數(shù)自動(dòng)計(jì)算數(shù)組的長(zhǎng)度。選項(xiàng)C中沒有使用“[]”,不能定義一維數(shù)組;選項(xiàng)D中數(shù)組元素的初始化必須使用大括號(hào)。19、不合法的數(shù)組定義是()。A、inta[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};B、inta[][3]={{0},{1},{1,2,3}};C、inta[][3]={1,2,3,4};D、inta[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:二維數(shù)組定義和初始化是允許省略行下標(biāo),不允許省略列下標(biāo),因此inta[4][]的定義有誤。20、設(shè)intx[2][3];則以下關(guān)于二維數(shù)組x的敘述錯(cuò)誤的是()。A、數(shù)組x可以看作是由x[0]和x[1]兩個(gè)元素組成的一維數(shù)組B、可以用x[0]=0;的形式為數(shù)組所有元素賦初值0C、元素x[0]可看作是由3個(gè)整型元素組成的一維數(shù)組D、x[0]和x[1]是數(shù)組名,分別代表一個(gè)地址常量標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:C語(yǔ)言中二維數(shù)組的元素在內(nèi)存中占一系列連續(xù)的存儲(chǔ)單元。數(shù)組元素在內(nèi)存中的排列順序是先存放第0行的元素,再存放第1行的元素……稱這種存放順序?yàn)榘葱写娣拧?梢园岩粋€(gè)二維數(shù)組看成是一個(gè)一維數(shù)組,每個(gè)數(shù)組元素又是包含有若干個(gè)元素的一維數(shù)組。另外在給二維數(shù)組賦初值時(shí)可以不用含花括號(hào)對(duì)。例如,inta[4][3]={1,2,4,5};在編譯時(shí),系統(tǒng)將按a數(shù)組元素在內(nèi)存中排列的順序,將花括號(hào)內(nèi)的數(shù)據(jù)一一對(duì)應(yīng)地賦給各個(gè)元素,若數(shù)據(jù)不足,系統(tǒng)將給后面的元素自動(dòng)補(bǔ)初值0。以上將給a數(shù)組第一行的元素和第二行的第一個(gè)元素依次賦予1、2、4、5,其他元素的初值都為0。21、關(guān)于字符數(shù)組定義中存在語(yǔ)法錯(cuò)誤的是()。A、charss[][20]={’’right’’};B、char*ss[6];ss[1]=’’right?’’;C、char*ss[]={’’right?’’};D、charss[6][20];ss[1]=’’right?’’;標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查字符數(shù)組,選項(xiàng)D中定義了二維數(shù)組ss,可以用于存儲(chǔ)字符串,但是字符串的存儲(chǔ)不能通過賦值,僅可以初始化或者輸入得到,而選項(xiàng)C和A不同,選項(xiàng)B為指針數(shù)組,對(duì)于指針變量可以保存常量字符串的地址。22、關(guān)于字符數(shù)組的定義中有語(yǔ)法錯(cuò)誤的是()。A、charstr[3][10];str[1]=’’guest’’;B、charstr[][10]={’’guest’’};C、char*str[3];str[1]=’’guest’’;D、char*str[]={’’guest’’};標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查字符數(shù)組的定義和使用。選項(xiàng)A定義了一個(gè)二維字符數(shù)組,第二句是直接給字符數(shù)組賦值,錯(cuò)誤。C語(yǔ)言中不能直接給字符數(shù)組賦值;選項(xiàng),B、C和D都是正確的。23、下列能正確進(jìn)行字符串賦值的是()。A、chars[5]={’’ABCDE’’);B、chars[5]={’A’,’B’,’C’,’D’,’E’};C、char*s;s=’’ABCDE’’;D、char*s;printf(’’%s’’,s);標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:字符串存儲(chǔ)要有結(jié)束符“\0”且要占用一個(gè)空間其大小是一個(gè)字符,選項(xiàng)A、B的空間不夠:printf用來(lái)輸出字符,不能輸入字符串。24、若有以下程序段charstr[4][12]={’’an’’,’’bbb’’,’’ccccc’’,’’d’’),*strp[4];inti;for(i=0;i<4;i++)strp[i]=str[i];不能正確引用字符串的選項(xiàng)是()。A、strpB、str[0]C、strp[3]D、*strp標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:*strp是含有4個(gè)元素的指針數(shù)組,分別保存了二維數(shù)組str中的4個(gè)字符串的首地址,因此strp為二級(jí)地址,不能保存字符串的首地址,*strp或者strp[0]中存放了字符串“aa”的首地址。所以不能正確引用字符串的為選項(xiàng)A。25、關(guān)于字符串的敘述中正確的是()。A、charca[3][5]={’’Aa’’,’’BBb’’,’’CCc’’);是不合語(yǔ)法的B、字符串?dāng)?shù)組,是指數(shù)組中的每個(gè)元素都是一個(gè)存放字符串的一維數(shù)組C、charca[][5]={’’A’’,’’BB’’,’’CCC’’);是不合語(yǔ)法的D、char*ca[3]={’’A’’,’’BB’’,’’CCC’’};是不合語(yǔ)法的標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:字符串?dāng)?shù)組每個(gè)元素為一個(gè)字符串,選項(xiàng)B的說法正確。選項(xiàng)A和C對(duì)于ca的定義是正確的。選項(xiàng)D定義一個(gè)指針數(shù)組,可以保存多個(gè)字符串的首地址。國(guó)家二級(jí)C語(yǔ)言機(jī)試(函數(shù)和數(shù)組)模擬試卷第2套一、選擇題(本題共28題,每題1.0分,共28分。)1、下面是有關(guān)C語(yǔ)言字符數(shù)組的描述,其中錯(cuò)誤的是A、不可以用賦值語(yǔ)句給字符數(shù)組名賦字符串B、可以用輸入語(yǔ)句把字符串整體輸入給字符數(shù)組C、字符數(shù)組中的內(nèi)容不一定是字符串D、字符數(shù)組只能存放字符串標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查字符數(shù)組。選項(xiàng)A、B)和C)都是正確的,字符數(shù)組存放其他數(shù)據(jù)。2、以下選項(xiàng)中有語(yǔ)法錯(cuò)誤的是A、charstr[3][10];str[1]="guest";B、charstr[][10]={"guest"};C、char*str[3];str[1]="guest";D、char*str[]={"guest"};標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查字符數(shù)組的定義和使用。選項(xiàng)A定義了一個(gè)二維字符數(shù)組,第二句是直接給字符數(shù)組賦值錯(cuò)誤,C語(yǔ)言中不能直接給字符數(shù)組賦值;選項(xiàng)B、C)和D)都是正確的。3、下列敘述中正確的是A、兩個(gè)連續(xù)的單引號(hào)(")是合法的字符常量B、可以對(duì)字符串進(jìn)行關(guān)系運(yùn)算C、兩個(gè)連續(xù)的雙引號(hào)("")是合法的字符串常量D、空字符串不占用內(nèi)存,其內(nèi)存空間大小是0標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:兩個(gè)連續(xù)的雙引號(hào):"",是一個(gè)字符串常量,稱為“空串”。4、以下選項(xiàng)中,能正確進(jìn)行字符串賦值的是A、chars[5]={’A’,’B’,’C’,’D’,’E’};B、chat*s="ABCDE";C、chars[4][5]={"ABCDE"};D、char*s;gets(s);標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:對(duì)于選項(xiàng)A字符串中無(wú)法存放字符串結(jié)束標(biāo)志’\0’,選項(xiàng)C每行僅僅存放5個(gè)字符,同樣的不能存放字符串結(jié)束標(biāo)志,選項(xiàng)D中指針變量s沒有實(shí)際的內(nèi)存空間,無(wú)法存放輸入的字符串。因此正確的選項(xiàng)為B),相當(dāng)于char*s:s="ABCDE",把字符串常量的首地址存放到指針變量中存儲(chǔ)。5、有以下程序#includeintfun(chars[]){char*p=s;while(*p!=0)p++;return(p-s):}main(){printf("%d\n",fun("0ABCDEF"));}程序運(yùn)行后的輸出結(jié)果是A、6B、7C、1D、0標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:函數(shù)fun的主要功能是計(jì)算字符串中實(shí)際字符的個(gè)數(shù),因此主函數(shù)中調(diào)用fun得到結(jié)果為7。6、若有以下程序段charstr[4][12]={"aa,bbb","ccccc","d"},*strp[4];inti;for(i=0;i<4;i++)strp[i]=str[i];不能正確引用字符串的選項(xiàng)是A、strpB、str[0]C、strp[3]D、*strp標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:程序段中定義指針數(shù)組*strp,含有4個(gè)元素,for循環(huán)strp分別保存了二維數(shù)組str中的4個(gè)字符串的首地址,因此strp為二級(jí)地址,不能保存字符串的首地址,*strp或者strp[0]中存放了字符串"aa"的”首地址,所以不能正確引用字符串的為選項(xiàng)A。7、以下敘述中正確的是A、下面的語(yǔ)句用賦初值方式來(lái)定義字符串,其中,“’\0’”是必須的charstr1[]={’s’,’t’,’r’,’1’,’\0’};B、有定義語(yǔ)句:charstr1[]="str1";,數(shù)組str1將包含4個(gè)元素C、字符串常量“str1”的類型是:字符串?dāng)?shù)據(jù)類型D、字符數(shù)組的每個(gè)元素可存放一個(gè)字符,并且最后一個(gè)元素必須是“’\0’”字符標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:選項(xiàng)B中除了字符串中實(shí)際字符之外,還要存儲(chǔ)字符串結(jié)束標(biāo)志,應(yīng)為5個(gè)元素。在C語(yǔ)言中沒有字符串?dāng)?shù)據(jù)類型,因此選項(xiàng)C不正確,選項(xiàng)D字符數(shù)組不一定必須存放字符串,因此沒有規(guī)定最后一個(gè)元素為字符串結(jié)束標(biāo)志。8、以下敘述中正確的是A、charca[3][5]={"A","BB","CCC"};是不合語(yǔ)法的B、字符串?dāng)?shù)組,是指數(shù)組中的每個(gè)元素都是一個(gè)存放字符串的一維數(shù)組C、charca[][5]={"A","BB","CCC"};是不合語(yǔ)法的D、char*ca[3]={"A","BB","CCC"};是不合語(yǔ)法的標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:字符串?dāng)?shù)組,也就是二維字符數(shù)組,其中每個(gè)元素為一個(gè)字符串,選項(xiàng)B的說法正確。選項(xiàng)A和C)對(duì)于ca的定義是正確的。選項(xiàng)D定義一個(gè)指針數(shù)組,可以保存多個(gè)字符串的首地址。9、以下敘述中正確的是A、函數(shù)調(diào)用“str1en(s);”會(huì)返回字符串s實(shí)際占用內(nèi)存的大小(以字節(jié)為單位)B、兩個(gè)字符串可以用關(guān)系運(yùn)算符進(jìn)行大小比較C、當(dāng)拼接兩個(gè)字符串時(shí),結(jié)果字符串占用的內(nèi)存空間是兩個(gè)原串占用空間的和D、C語(yǔ)言本身沒有提供對(duì)字符串進(jìn)行整體操作的運(yùn)算符標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C語(yǔ)言中沒有運(yùn)算符可以處理字符串,要調(diào)用“string”庫(kù)中的函數(shù)來(lái)處理字符串,其中str1en函數(shù)主要測(cè)試字符串中實(shí)際字符的個(gè)數(shù),比實(shí)際占用的內(nèi)存至少要少一個(gè)。Strcat(s1,s2)函數(shù)用于連接兩個(gè)字符串,是把字符串s2連接到s1的后面。10、以下敘述中正確的是A、不能用字符串常量對(duì)字符數(shù)組名進(jìn)行整體賦值操作B、字符串常量“Hello”會(huì)被隱含處理成一個(gè)無(wú)名字符型數(shù)組,它有5個(gè)元素C、“charstr[7]="string!";”在語(yǔ)法上是合法的,運(yùn)行也是安全的D、“char*str;str="Hello";”與“charstr[];str="Hello";”效果是一樣的標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:字符數(shù)組僅僅可以采用定義時(shí)初始化以及輸入得到數(shù)據(jù),在程序其他部分不允許對(duì)其進(jìn)行賦值。字符串常量中除了實(shí)際字符之外還有結(jié)束標(biāo)志,選項(xiàng)B錯(cuò)誤,而選項(xiàng)C中,沒有空間存放字符串結(jié)束標(biāo)志,因此運(yùn)行是不安全的。選項(xiàng)D中第一個(gè)str為指針,可以賦值,而后面的為數(shù)組,在程序中賦值出錯(cuò)。11、以下敘述中正確的是A、語(yǔ)句“charstr[10]="string!";”和“charstr[10]={"string!"};”并不等價(jià)B、對(duì)于一維字符數(shù)組,不能使用字符串常量來(lái)賦初值C、對(duì)于字符串常量“string!”,系統(tǒng)已自動(dòng)在最后加入了“’\0’”字符,表示串結(jié)尾D、在語(yǔ)句charstr[]="string!";中,數(shù)組str的大小等于字符串的長(zhǎng)度標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在C語(yǔ)言中,字符串是借助于字符型一維數(shù)組來(lái)存放的,可以借助在定義時(shí)初始化以及輸入來(lái)把字符串存入數(shù)組,并規(guī)定以字符’\0’作為“字符串結(jié)束標(biāo)志”?!?’是一個(gè)轉(zhuǎn)義字符,稱為空值,它的ASCII碼值為0?!?’作為標(biāo)志占甩存儲(chǔ)空間,但不計(jì)入字符串的實(shí)際長(zhǎng)度。在C語(yǔ)言中,系統(tǒng)在每個(gè)字符串的最后自動(dòng)加入一個(gè)字符(’\0’)作為字符串的結(jié)束標(biāo)志。12、設(shè)有定義charstr[]="Hello";則語(yǔ)句printf("%d%d",sizeof(str),str1en(str));的輸出結(jié)果是A、66B、65C、55D、56標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:sizeof主要用于測(cè)試變量所占的實(shí)際內(nèi)存,而str1en函數(shù)主要測(cè)試字符串中實(shí)際字符的個(gè)數(shù),字符串"Hello"占有內(nèi)存6個(gè)字節(jié),而字符串中共有5個(gè)字符。13、設(shè)有定義語(yǔ)句:char*aa[2]={"abcd","ABCD"};則以下敘述正確的是A、aa數(shù)組的兩個(gè)元素只能存放含有4個(gè)字符的一維數(shù)組的首地址B、aa數(shù)組的值分別是字符串"abcd"和"ABCD"C、aa是指針變量,它指向含有兩個(gè)元素的字符型數(shù)組D、aa[0]存放了字符串"abcd"的首地址標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:題目中char*aa[2],定義了指針數(shù)組aa,有兩個(gè)元素,aa[0]存放"abcd"地址,而aa[1]存放"ABCD"地址。14、以下選項(xiàng)中,沒有編譯錯(cuò)誤的是A、charstr3[]={’d’,’e’,’b’,’u’,’g’,’\0’};B、charstr1[5]="pass",str2[6];str2=str1;C、charname[10];name="china";D、charstr4[];str4="helloworld";標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:選項(xiàng)A是定義了字符數(shù)組str3[].并對(duì)其賦初值。選項(xiàng)B中語(yǔ)句str2=str1非法,字符數(shù)組小能直接賦值。選項(xiàng)C,D)和選項(xiàng)B一致。15、有以下程序main(){chara[5][10]={"one","two","three","four","five"};inti,j;chart;for(i=0;i<4;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、fwoB、owoC、twoD、fix標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:這個(gè)程序的執(zhí)行過程是當(dāng)i=0時(shí),j=1,a[0][0]=0a[3][0]=t置換a[2][0]=f,a[3][0]=t;此時(shí),a[2][0]=ea[1][0]=t,再置換a[2][0]=t,a[1][0]=f,;當(dāng)i=3時(shí),i=4,a[3][0]=f=a43][0]=f;不置換;所以a[1]的結(jié)果為fwo。16、設(shè)有定義:chars[81];inti=0;以下不能將一行(不超過80個(gè)字符)帶有空格的字符串正確讀入的語(yǔ)句或語(yǔ)句組是A、while((s[i++]=getchar())!=’\n’);s[i]=’\0’;B、scantf("%s",s);C、gets(s);D、do{scanf("%c",&s[i]);}while(s[i++]!=’\n’);s[i]=’\0’;標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查標(biāo)準(zhǔn)輸入輸出函數(shù)和循環(huán)語(yǔ)句。gets(s)函數(shù)的作用是將輸入的字符讀入字符串s,直到遇到回車。而scanf()函數(shù)接收字符串時(shí)的結(jié)束標(biāo)志為回車或者空格。17、設(shè)有定義:charp[]={’1’,’2’,’3’},*q=p;以下不能計(jì)算出一個(gè)char型數(shù)據(jù)所占字節(jié)數(shù)的表達(dá)式是A、sizeof(p)B、sizeof(char)C、sizeof(*q)D、sizeof(p[0])標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:選項(xiàng)A計(jì)算的是p[]字符數(shù)組首地址所占的內(nèi)存字節(jié)數(shù),返回值數(shù)組中所有元素占有的空間。*q和p[0]分別表示數(shù)組p中下標(biāo)為0的字符元素,選項(xiàng)B和D)都可以計(jì)算char型數(shù)據(jù)占有的字節(jié)數(shù)。18、有以下程序#include#includevoidmain(){charstr[][20]={"One*World","One*Dream!"},*p=str[1];printf("%d,",str1en(p));printf("%s\n",p);}程序運(yùn)行后的輸出結(jié)果是A、9,One*Dream!B、10,One*Dream!C、9,One*WorldD、10,One*World標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在主函數(shù)中定義了二組字符數(shù)組str,并對(duì)它賦初值。定義字符指針p,并把字符串str[]的地址賦給它。所以這時(shí)字符指針p指向字符串“One+Dream!”,然后在兩個(gè)輸出語(yǔ)句中,分別輸出這個(gè)字符串的長(zhǎng)度10和字符串本身。19、有以下程序#includevoidmain(){chars[]="012xy\08s34f4w2";inti,n=0;for(i=0;s[i]!=0;i++)if(s[i]>=’0’&&s[i]<=’9’)n++;printf("%d\n",n);}程序運(yùn)行后的輸出結(jié)果是A、0B、7C、3D、8標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在主函數(shù)中的for循環(huán)語(yǔ)句中,當(dāng)s[i]的值不等于0~9之間的數(shù)字時(shí),+結(jié)束循環(huán)語(yǔ)句的執(zhí)行。由字符數(shù)組s的初值可以得到for循環(huán)語(yǔ)句執(zhí)行了三次,所以變量n的值等于3。20、以下不能將s所指字符串正確復(fù)制到t所指存儲(chǔ)空間的是A、for(i=0;t[i]=s[i];i++);B、while(*t=*s){t++;s++;}C、for(i=0j=0;t[i++]=s[j++];);D、do{*t++=*s++;}while(*s);標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在選項(xiàng)D中,不能把s所指字符串的結(jié)束標(biāo)志符賦給字符串t。21、下列語(yǔ)句組中,正確的是A、char*s;s="Olympic";B、chars[7];s="Olympic";C、char*s;s={"Olympic"};D、chars[7];s={"Olympic"};標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:選項(xiàng)A中定義了指針變量s,通過賦值語(yǔ)句保存字符串常量的地址,而字符數(shù)組絕對(duì)不能賦值,而只能初始化或者輸入。22、有以下程序main(){charch[]="uvwxyz",*pc;pc=ch;printf("%c\n",*(pc+5));}程序運(yùn)行后的輸出結(jié)果是A、0B、元素ch[5]的地址C、zD、字符y的地址標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在程序中語(yǔ)句pc=ch;的功能是字符指針pc指向字符串?dāng)?shù)組ch[]的地址,而*(ps+5)表示字符串?dāng)?shù)組ch[]中第6個(gè)字符z。23、有以下程序#includevoidmain(){chars[]={"012xy"};inti,n=0;for(i=0;s[i]!=0;i++)ifi[s[i]>=’a’&&s[i]<=’z’)n++;printf("%d\n",n);}程序運(yùn)行后的輸出結(jié)果是A、0B、3C、5D、2標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:這段程序的功能求出字符串s中字符在小寫字符a到z之間字符的個(gè)數(shù)。在程序中字符串s的值為“012xy”,所以在字符串s中符合要求的字符的個(gè)數(shù)等于2。24、以下能正確定義字符串的語(yǔ)句是A、charstr="\x43";B、charstr[]="\0";C、charstr=";D、charstr[]={’\064’};標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:字符串常量是用一對(duì)雙括號(hào)括起來(lái)的一串字符。它用字符數(shù)組來(lái)存放,不用一對(duì)大括號(hào)對(duì)括起來(lái)。25、以下關(guān)于字符串的敘述中正確的是A、兩個(gè)字符串中的字符個(gè)數(shù)相同時(shí)才能進(jìn)行字符串大小的比較B、可以用關(guān)系運(yùn)算符對(duì)字符串的大小進(jìn)行比較C、空串比空格打頭的字符串小D、C語(yǔ)言中有字符串類型的常量和變量標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:C語(yǔ)言本身并沒有設(shè)置一種類型來(lái)定義字符串變量,卻允許使用“字符串常量”。字符串常量是由雙引號(hào)括起來(lái)的一串字符。任意兩個(gè)字符串的大小比較要調(diào)用字符串比較函數(shù)strcmp(s1,s2)來(lái)進(jìn)行,其比較的方法是依次對(duì)s1和s2中對(duì)應(yīng)位置上的字符兩兩進(jìn)行比較,當(dāng)出現(xiàn)第一對(duì)不相同的字符時(shí),即由這兩個(gè)字符決定所在串的大小(比較字符大小的依據(jù)是其ASCII碼值)。26、若要求從鍵盤讀入含有空格字符的字符串,應(yīng)使用函數(shù)A、getc()B、gets()C、getchar()D、scanf()標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:scanf()語(yǔ)句中用“空格”間隔不同的字符串,空格將被全部忽略掉,所以用scanf()函數(shù)不能輸入空格;getchar()函數(shù)用于輸入字符,其調(diào)用形式為:ch=getchar(),getchar()函數(shù)從終端讀入一個(gè)字符作為函數(shù)值,把讀入的一個(gè)字符賦給變量ch。在輸入時(shí),空格、回車符都將用于字符讀入,而且只有在用戶敲入Enter鍵時(shí),讀入才開始執(zhí)行。gets()函數(shù)的調(diào)用形式為:gets(stradr),其中str_adr是存放輸入字符串的起始地址,可以是字符數(shù)組名、字符數(shù)組元素的地址或字符指針變量。gcts()函數(shù)用來(lái)從終端鍵盤讀入字符串(包括空格符),直到讀入一個(gè)換行符為止。getc()函數(shù)的調(diào)用形式為:ch=getc(pf)其中pf是文件指針。函數(shù)的功能是從pf指定的文件中讀入一個(gè)字符,并把它作為函數(shù)值返回。27、有以下程序,執(zhí)行后的結(jié)果是#includeMain(){chars[]="abcde";s+=2;printf("%d\n",s[0]);}A、輸出字符c的ASCII碼B、輸出字符CC、輸出字符a的ASCII碼D、程序出錯(cuò)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:因?yàn)樽址麛?shù)組s[]中的數(shù)組名s表示的是一個(gè)地址常量。所以語(yǔ)句“s+=2;”不能將指針在當(dāng)前位置的基礎(chǔ)上再向后移動(dòng)兩位。因而程序編譯時(shí)出錯(cuò)。28、有下列程序,程序執(zhí)行后的輸出結(jié)果是fun(charP[][10]){intn=0,i;for(i=0;i<7;i++)if(p[i][0]==’T’)n++;returnn;}main(){charstr[][10]={"Mon","Tue","Wed","Thu","Fri","Sat","Sun"};printf("%d\n",fun(str));}A、1B、3C、0D、2標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題在主函數(shù)中定義了一個(gè)字符二維數(shù)組str[][10],并用{"Mon","Tue","Wed","Thu","Fri","Sat","Sun"}初始化。函數(shù)fun(charp[][10])的功能是統(tǒng)計(jì)出p[1[10]中p[i][0]等于字符’T’的個(gè)數(shù)。所以fun(str)的功能是統(tǒng)計(jì)一周七天中英文名稱首字母為“T”的個(gè)數(shù)。因?yàn)樽址癟ue”和“Thu”的首字符是“T”,所以n=2。國(guó)家二級(jí)C語(yǔ)言機(jī)試(函數(shù)和數(shù)組)模擬試卷第3套一、選擇題(本題共26題,每題1.0分,共26分。)1、下列敘述中正確的是A、兩個(gè)連續(xù)的單引號(hào)(")是合法的字符常量B、可以對(duì)字符串進(jìn)行關(guān)系運(yùn)算C、兩個(gè)連續(xù)的雙引號(hào)("")是合法的字符串常量D、空字符串不占用內(nèi)存,其內(nèi)存空間大小是0標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:兩個(gè)連續(xù)的雙引號(hào):"",是一個(gè)字符串常量,稱為“空串”。2、以下選項(xiàng)中,能正確進(jìn)行字符串賦值的是A、chars[5]={’A’,’B’,’C’,’D’,’E’};B、char*s="ABCDE";C、chars[4][5]={"ABCDE"};D、char*s;gets(s);標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:對(duì)于選項(xiàng)A)字符串中無(wú)法存放字符串結(jié)束標(biāo)志’\0’,選項(xiàng)C)每行僅僅存放5個(gè)字符,同樣的不能存放字符串結(jié)束標(biāo)志,選項(xiàng)D)中指針變量s沒有實(shí)際的內(nèi)存空間,無(wú)法存放輸入的字符串。因此正確的選項(xiàng)為B),相當(dāng)于char*s:s="ABCDE",把字符串常量的首地址存放到指針變量中存儲(chǔ)。3、有以下程序#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、6B、7C、1D、0標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:函數(shù)fun的主要功能是計(jì)算字符串中實(shí)際字符的個(gè)數(shù),因此主函數(shù)中調(diào)用fun得到結(jié)果為7。4、若有以下程序段charstr[4][12]={"aa","bbb",”ccccc","d"},*strp[4];inti:for(i=0;i<4;i++)strp[i]=str[i];不能正確引用字符串的選項(xiàng)是A、strpB、str[0]C、strp[3]D、*strp標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:程序段中定義指針數(shù)組*strp,含有4個(gè)元素,for循環(huán)strp分別保存了二維數(shù)組str中的4個(gè)字符串的首地址,因此strp為二級(jí)地址,不能保存字符串的首地址,*strp或者strp[0]中存放了字符串"aa"的首地址。所以不能正確引用字符串的為選項(xiàng)A)。5、以下敘述中正確的是A、下面的語(yǔ)句用賦初值方式來(lái)定義字符串,其中,“’\0’"是必須的charstr1[]={’s’,’t’,’r’,’1’,’\0’);B、有定義語(yǔ)句:charstr1[]="str1";,數(shù)組str1將包含4個(gè)元素C、字符串常量“str1”的類型是:字符串?dāng)?shù)據(jù)類型D、字符數(shù)組的每個(gè)元素可存放一個(gè)字符,并且最后一個(gè)元素必須是“’\0’”字符標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:選項(xiàng)B)中除了字符串中實(shí)際字符之外,還要存儲(chǔ)字符串結(jié)束標(biāo)志,應(yīng)為5個(gè)元素。在c語(yǔ)言中沒有字符串?dāng)?shù)據(jù)類型,因此選項(xiàng)C)不正確,選項(xiàng)D)字符數(shù)組不一定必須存放字符串,因此沒有規(guī)定最后一個(gè)元素為字符串結(jié)束標(biāo)志。6、以下敘述中正確的是A、charca[3][5]={"A","BB","CCC"};是不合語(yǔ)法的B、字符串?dāng)?shù)組,是指數(shù)組中的每個(gè)元素都是一個(gè)存放字符串的一維數(shù)組C、charca[][5]={"A","BB","CCC"};是不合語(yǔ)法的D、char*ca[3]={"A","BB","CCC"};是不合語(yǔ)法的標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:字符串?dāng)?shù)組,也就是二維字符數(shù)組,其中每個(gè)元素為一個(gè)字符串,選項(xiàng)B)的說法正確。選項(xiàng)A)和C)對(duì)于ca的定義是正確的。選項(xiàng)D)定義一個(gè)指針數(shù)組,可以保存多個(gè)字符串的首地址。7、以下敘述中正確的是A、函數(shù)調(diào)用“strlen(s);”會(huì)返回字符串s實(shí)際占用內(nèi)存的大小(以字節(jié)為單位)B、兩個(gè)字符串可以用關(guān)系運(yùn)算符進(jìn)行大小比較C、當(dāng)拼接兩個(gè)字符串時(shí),結(jié)果字符串占用的內(nèi)存空間是兩個(gè)原串占用空間的和D、C語(yǔ)言本身沒有提供對(duì)字符串進(jìn)行整體操作的運(yùn)算符標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C語(yǔ)言中沒有運(yùn)算符可以處理字符串,要調(diào)用“string”庫(kù)中的函數(shù)來(lái)處理字符串,其中strlen函數(shù)主要測(cè)試字符串中實(shí)際字符的個(gè)數(shù),比實(shí)際占用的內(nèi)存至少要少一個(gè)。Strcat(s1,s2)函數(shù)用于連接兩個(gè)字符串,是把字符串s2連接到s1的后面。8、以下敘述中正確的是A、不能用字符串常量對(duì)字符數(shù)組名進(jìn)行整體賦值操作B、字符串常量“Hello”會(huì)被隱含處理成一個(gè)無(wú)名字符型數(shù)組,它有5個(gè)元素C、“charstr[7]=”string!”;”在語(yǔ)法上是合法的,運(yùn)行也是安全的D、“char*str;str="Hello";”與“charstr[];str="Hello";”效果是一樣的標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:字符數(shù)組僅僅可以采用定義時(shí)初始化以及輸入得到數(shù)據(jù),在程序其他部分不允許對(duì)其進(jìn)行賦值。字符串常量中除了實(shí)際字符之外還有結(jié)束標(biāo)志,選項(xiàng)B)錯(cuò)誤,而選項(xiàng)C)中,沒有空間存放字符串結(jié)束標(biāo)志,因此運(yùn)行是不安全的。選項(xiàng)D)中第一個(gè)str為指針,可以賦值,而后面的為數(shù)組,在程序中賦值出錯(cuò)。9、以下敘述中正確的是A、語(yǔ)句“charstr[10]="string!";”和“charstr[10]={"string!"};”并不等價(jià)B、對(duì)于一維字符數(shù)組,不能使用字符串常量來(lái)賦初值C、對(duì)于字符串常量"string!",系統(tǒng)已自動(dòng)在最后加入了“’\0’”字符,表示串結(jié)尾D、在語(yǔ)句charstr[]="string!";中,數(shù)組str的大小等于字符串的長(zhǎng)度標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在C語(yǔ)言中,字符串是借助于字符型一維數(shù)組來(lái)存放的,可以借助在定義時(shí)初始化以及輸入來(lái)把字符串存入數(shù)組,并規(guī)定以字符’\0’作為“字符串結(jié)束標(biāo)志”。’\0’是一個(gè)轉(zhuǎn)義字符,稱為空值,它的ASCII碼值為0?!?’作為標(biāo)志占用存儲(chǔ)空間,但不計(jì)入字符串的實(shí)際長(zhǎng)度。在C語(yǔ)言中,系統(tǒng)在每個(gè)字符串的最后自動(dòng)加入一個(gè)字符(’\0’)作為字符串的結(jié)束標(biāo)志。10、設(shè)有定義charstr[]="Hello";則語(yǔ)句printf("%d%d",sizeof(str),strlen(str));的輸出結(jié)果是A、66B、65C、55D、56標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:sizeof主要用于測(cè)試變量所占的實(shí)際內(nèi)存,而strlen函數(shù)主要測(cè)試字符串中實(shí)際字符的個(gè)數(shù),字符串"Hello"占有內(nèi)存6個(gè)字節(jié),而字符串中共有5個(gè)字符。11、設(shè)有定義語(yǔ)句:char*aa[2]={"abcd","ABCD"};則以下敘述正確的是A、aa數(shù)組的兩個(gè)元素只能存放含有4個(gè)字符的一維數(shù)組的首地址B、aa數(shù)組的值分別是字符串"abcd"和"ABCD"C、aa是指針變量,它指向含有兩個(gè)元素的字符型數(shù)組D、aa[0]存放了字符串"abcd"的首地址標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:題目中char*aa[2],定義了指針教組aa,有兩個(gè)元素,aa[0]存放"abcd"地址,而aa[1]存放"ABCD"地址。12、以下選項(xiàng)中,沒有編譯錯(cuò)誤的是A、charstr3[]={’d’,’e’,’b’,’u’,’g’,’\0’};B、charstrl[5]="pass",str2[6];str2=str1;C、charname[10];name="china";D、charstr4[];str4="helloworld";標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:選項(xiàng)A)是定義了字符數(shù)組str3[]并對(duì)其賦初值。選項(xiàng)B)中語(yǔ)句str2=str1非法,字符數(shù)組不能直接賦值。選項(xiàng)C),D)和選項(xiàng)B)一致。13、有以下程序main(){chara[5][10]={"one","two","three","four","five"};inti,j;chart:for(i=0;i<4;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、fwoB、owoC、twoD、fix標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:這個(gè)程序的執(zhí)行過程是當(dāng)i=0時(shí),j=1,a[0][0]=0<a[1][0]=t;不置換;當(dāng)i=1時(shí),j=2,a[1][0]=t=a[2][0]=t;不置換;當(dāng)i=2時(shí),j=3,a[2][0]=t>a[3][0]=f;置換a[2][0]=f,a[3][0]=t;此時(shí),a[2][0]=f,a[1][0]=t,再置換a[2][0]=t,a[1][0]=f,;當(dāng)i=3時(shí),j=4,a[3][0]=f=a43][0]=f;不置換;所以a[1]的結(jié)果為fwo。14、設(shè)有定義:chars[81];inti=0;以下不能將一行(不超過80個(gè)字符)帶有空格的字符串正確讀入的語(yǔ)句或語(yǔ)句組是A、while((s[i++]=getchar())!=’\n’);s[i]=’\0’;B、scanf("%s",s);C、gets(s);D、do{scanf("%c",&s[i]);}while(s[i++]!=’\n’);s[i]=’\0’;標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查標(biāo)準(zhǔn)輸入輸出函數(shù)和循環(huán)語(yǔ)句。gets(s)函數(shù)的作用是將輸入的字符讀入字符串s,直到遇到回車。而scanf()函數(shù)接收字符串時(shí)的結(jié)束標(biāo)志為回車或者空格。15、設(shè)有定義:charp[]={’1’,’2’,’3’),*q=p;以下不能計(jì)算出一個(gè)char型數(shù)據(jù)所占字節(jié)數(shù)的表達(dá)式是A、sizeof(p)B、sizeof(char)C、sizeof(*q)D、sizeof(p[0])標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:選項(xiàng)A)計(jì)算的是p[]字符數(shù)組首地址所占的內(nèi)存字節(jié)數(shù),返回值數(shù)組中所有元素占有的空間。*q和p[0]分別表示數(shù)組p中下標(biāo)為0的字符元素,選項(xiàng)B)和D)都可以計(jì)算char型數(shù)據(jù)占有的字節(jié)數(shù)。16、有以下程序#include<stdio.h>#include<string.h>voidmain(){charstr[][20]={"One*World","One*Dream!"},*p=str[1];printf("%d,",strlen(p));printf("%s\n",p);}程序運(yùn)行后的輸出結(jié)果是A、9,One*Dream!B、10,One*Dream!C、9,One*WorldD、10,One*World標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在主函數(shù)中定義了二維字符數(shù)組str,并對(duì)它賦初值。定義字符指針p,并把字符串str[1]的地址賦給它。所以這時(shí)字符指針p指向字符串“One*Dream!”,然后在兩個(gè)輸出語(yǔ)句中,分別輸出這個(gè)字符串的長(zhǎng)度10和字符串本身。17、有以下程序#include<stdio.h>voidmain(){chars[]="012xy\08s34f4w2";inti,n=0;for(i=0;s[i]!=0;i++)if(s[i]>=’0’&&s[i]<=’9’)n++;printf("%d\n",n);}程序運(yùn)行后的輸出結(jié)果是A、0B、7C、3D、8標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在主函數(shù)中的for循環(huán)語(yǔ)句中,當(dāng)s[i]的值不等于0~9之間的數(shù)字時(shí),結(jié)束循環(huán)語(yǔ)句的執(zhí)行。由字符數(shù)組s的初值可以得到for循環(huán)語(yǔ)句執(zhí)行了三次,所以變量n的值等于3。18、以下不能將s所指字符串正確復(fù)制到t所指存儲(chǔ)空間的是A、for(i=0;t[i]=s[i];i++);B、while(*t=*s){t++;s++;}C、for(i=0,j=0;t[i++]=s[j++];);D、do{*t++=*s++;}while(*s);標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在選項(xiàng)D)中,不能把s所指字符串的結(jié)束標(biāo)志符賦給字符串t。19、下列語(yǔ)句組中,正確的是A、char*s;s="Olympic";B、chars[7];s="Olympic";C、char*s;s={"Olympic");D、chars[7];s={"Olympic"};標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:選項(xiàng)A)中定義了指針變量s,通過賦值語(yǔ)句保存字符串常量的地址,而字符數(shù)組絕對(duì)不能賦值,而只能初始化或者輸入。20、有以下程序main(){charch[]="uvwxyz",*pc;pc=ch;printf("%c\n",*(pc+5));}程序運(yùn)行后的輸出結(jié)果是A、0B、元素ch[5]的地址C、zD、字符y的地址標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在程序中語(yǔ)句pc=ch;的功能是字符指針pc指向字符串?dāng)?shù)組ch[]的地址,而*(ps+5)表示字符串?dāng)?shù)組ch[]中第6個(gè)字符z。21、有以下程序#include<stdio.h>voidmain(){chars[]={"012xy"};inti,n=0;for(i=0;s[i]!=0;i++)if(s[i]>=’a’&&s[i]<=’z’)n++;printf("%d\n",n);}程序運(yùn)行后的輸出結(jié)果是A、0B、3C、5D、2標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:這段程序的功能求出字符串s中字符在小寫字符a到z之間字符的個(gè)數(shù)。在程序中字符串s的值為“012xy”,所以在字符串s中符合要求的字符的個(gè)數(shù)等于2。22、以下能正確定義字符串的語(yǔ)句是A、charstr="\x43";B、charstr[]="\0";C、charstr=";D、charstr[]={’\064’};標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:字符串常量是用一對(duì)雙括號(hào)括起來(lái)的一串字符。它用字符數(shù)組來(lái)存放,不用一對(duì)大括號(hào)對(duì)括起來(lái)。23、以下關(guān)于字符串的敘述中正確的是A、兩個(gè)字符串中的字符個(gè)數(shù)相同時(shí)才能進(jìn)行字符串大小的比較B、可以用關(guān)系運(yùn)算符對(duì)字符串的大小進(jìn)行比較C、空串比空格打頭的字符串小D、C語(yǔ)言中有字符串類型的常量和變量標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:C語(yǔ)言本身并沒有設(shè)置一種類型來(lái)定義字符串變量,卻允許使用“字符串常量”。字符串常量是由雙引號(hào)括起來(lái)的一串字符。任意兩個(gè)字符串的大小比較要調(diào)用字符串比較函數(shù)strcmp(s1,s2)來(lái)進(jìn)行,其比較的方法是依次對(duì)s1和s2中對(duì)應(yīng)位置上的字符兩兩進(jìn)行比較,當(dāng)出現(xiàn)第一對(duì)不相同的字符時(shí),即由這兩個(gè)字符決定所在串的大小(比較字符大小的依據(jù)是其ASCII碼值)。24、若要求從鍵盤讀入含有空格字符的字符串,應(yīng)使用函數(shù)A、getc()B、gets()C、getchar()D、scanf()標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:scanf()語(yǔ)句中用“空格”間隔不同的字符串,空格將被全部忽略掉,所以用scanf()函數(shù)不能輸入空格;getchar()函數(shù)用于輸入字符,其調(diào)用形式為:ch=getchar(),getchar()函數(shù)從終端讀入一個(gè)字符作為函數(shù)值,把讀入的一個(gè)字符賦給變量ch。在輸入時(shí),空格、回車符都將用于字符讀入,而且只有在用戶敲入Enter鍵時(shí),讀入才開始執(zhí)行。gets()函數(shù)的調(diào)用形式為:gets(stradr),其中stradr是存放輸入字符串的起始地址,可以是字符數(shù)組名、字符數(shù)組元素的地址或字符指針變量。gets()函數(shù)用來(lái)從終端鍵盤讀入字符串(包括空格符),直到讀入一個(gè)換行符為止。getc()函數(shù)的調(diào)用形式為:ch=getc(pf)其中pf是文件指針。函數(shù)的功能是從pf指定的文件中讀入一個(gè)字符,并把它作為函數(shù)值返回。25、有以下程序,執(zhí)行后的結(jié)果是#include<stdio.h>main(){chars[]="abcde";s+=2;printf("%d\n",s[0]);}A、輸出字符C的ASCII碼B、輸出字符cC、輸出字符a的ASCII碼D、程序出錯(cuò)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:因?yàn)樽址麛?shù)組s[]中的數(shù)組名s表示的是一個(gè)地址常量。所以語(yǔ)句“s+=2;”不能將指針在當(dāng)前位置的基礎(chǔ)上再向后移動(dòng)兩位。因而程序編譯時(shí)出錯(cuò)。26、有下列程序,程序執(zhí)行后的輸出結(jié)果是fun(charP[][10]){intn=0,i;for(i=0;i<7;i++)if(p[i][0]==’T’)n++;returnn;}main(){charstr[][10]={"Mon","Tue","Wed","Thu","Fri","Sat,"Sun"};printf("%d\n",fun(str));}A、1B、3C、0D、2標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題在主函數(shù)中定義了一個(gè)字符二維數(shù)組str[][10],并用{"Mon","Tue","Wed","Tbu","Fri","Sat","Sun"}初始化。函數(shù)fun(charp[][10])的功能是統(tǒng)計(jì)出p[][10]中p[i][0]等于字符’T’的個(gè)數(shù)。所以fun(str)的功能是統(tǒng)計(jì)一周七天中英文名稱首字母為“T”的個(gè)數(shù)。因?yàn)樽址癟ue”和“Thu”的首字符是“T”,所以n=2。國(guó)家二級(jí)C語(yǔ)言機(jī)試(函數(shù)和數(shù)組)模擬試卷第4套一、選擇題(本題共28題,每題1.0分,共28分。)1、有以下程序(strcpy為字符串復(fù)制函數(shù),strcat為字符串連接函數(shù))#include#includemain(){chara[10]="abc",b[10]="012”,c[10]="xyz";strcpy(a+1,b+2);puts(strcat(a,c+1));}程序運(yùn)行后的輸出結(jié)果是A、bc2yzB、a2yzC、a12xyzD、12yz標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:程序執(zhí)行“strcpy(a+1,b+2)”后,字符數(shù)組a的值為“a2”,再進(jìn)行字符串的連接“strcatq(a,c+1)”,此時(shí)字符數(shù)組a的值為“a2yz”。2、若各選項(xiàng)中所用變量已正確定義,函數(shù)fun中通過return語(yǔ)句返回一個(gè)函數(shù)值,以下選項(xiàng)中錯(cuò)誤的程序是A、main(){……x=fun(2,10);……}floatfun(inta,intb){……}B、floatfun(inta,intb){……)main(){……x=fun(i,j);……)C、floatfun(int,int);main(){……x=fun(2,10);……}floatfun(inta,intb){……)D、main(){floatfun(inti,intj);……x=fun(i,j);……}floatfun(inta,intb){……}標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C語(yǔ)言規(guī)定,函數(shù)必須先定義,后調(diào)用(函數(shù)的返回值類型為int或char時(shí)除外)。在選項(xiàng)A中,調(diào)用的子函數(shù)在調(diào)用后面定義,所以不正確。在選項(xiàng)B、C)中,被調(diào)用函數(shù)在主函數(shù)之前定義,再在主函數(shù)中調(diào)用,所以是正確的;在選項(xiàng)D中,在主函數(shù)中先對(duì)子函數(shù)floatfun(inti,intj)進(jìn)行了聲明,然后進(jìn)行調(diào)用。3、以下敘述中正確的是A、用戶自己定義的函數(shù)只能調(diào)用庫(kù)函數(shù)B、不同函數(shù)的形式參數(shù)不能使用相同名稱的標(biāo)識(shí)符C、在C語(yǔ)言的函數(shù)內(nèi)部,可以定義局部嵌套函數(shù)D、實(shí)用的C語(yǔ)言源程序總是由一個(gè)或多個(gè)函數(shù)組成標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:一個(gè)C語(yǔ)言源程序可以由一個(gè)或多個(gè)源文件組成,每個(gè)源文件可由一個(gè)或多個(gè)函數(shù)組成,這些函數(shù)可以是自定義函數(shù),也可以是庫(kù)函數(shù),各個(gè)函數(shù)之間沒有主從關(guān)系,不能嵌套定義函數(shù)。4、若有定義語(yǔ)句:chars[10]="1234567\0\0";則str1en(s)的值是A、8B、7C、9D、10標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:字符串長(zhǎng)度函數(shù)str1en(、s)表示計(jì)算出以s為起始地址的字符串的長(zhǎng)度。并作為函數(shù)值返回。這個(gè)長(zhǎng)度值不包括串尾的結(jié)束標(biāo)志’\0’。5、有以下程序#includemain(){charp[20]={’a’,’b’,’c’,’d’},q[]="abc",r[]="abcde";strcat(p,r);strcpy(p+str1en(q),q);printf("%d\n",str1en(p));}程序運(yùn)行后的輸出結(jié)果是A、9B、11C、6D、7標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:字符串連接函數(shù)strcat(p,r)的功能是把字符數(shù)組p[]和r[]連接起來(lái),此時(shí)字符數(shù)組p[]的有效字符長(zhǎng)度為9,再執(zhí)行strcpy(p+str1en(q),q)字符串復(fù)制函數(shù),把字符數(shù)組q[]復(fù)制到字符數(shù)組p[]從p[3]開始到p[5]數(shù)組位置中,由于字符數(shù)組q[]中的內(nèi)容為字符串“abc”復(fù)制時(shí)把字符串結(jié)束標(biāo)志’\null’也復(fù)制到字符數(shù)組p[]中,這時(shí)字符函數(shù)str1en(p)返回字符數(shù)組p[]的有效字符長(zhǎng)度為6。6、若有定義語(yǔ)句:char*s1="OK",*s2="ok";以下選項(xiàng)中,能夠輸出"OK"的語(yǔ)句是A、if(strcmp(s1,s2)!=0)puts(s1);B、if(strcmp(s1,s2)!=0)puts(s2);C、if(strcmp(s1,s2)==1)puts(s1);D、if(strcmp(s1,s2)==0)puts(s1);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:字符串比較函數(shù)strcmp的功能是對(duì)s1和s2所指字符串進(jìn)行比較。如果s1s2,返回正數(shù),所以對(duì)于本題來(lái)說,能夠輸出“OK”的語(yǔ)句是選項(xiàng)A所指的語(yǔ)句。7、有以下程序,程序中庫(kù)函數(shù)islower(ch)用以判斷ch中的字母是否為小寫字母#include#includevoidfun(char*p){inti=0;while(p[i]){if(p[i]==’’&&islower(p[i-1]))p[i一1]=p[i-1]-’a’+’A’;i++;}}main(){chars1[100]="abcdEFG!";fun(s1);printf("%s\n",s1);}程序運(yùn)行后的輸出結(jié)果是A、AbCdEFg!B、abcdEFG!C、abcdEFg!D、aBcDEFG!標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:函數(shù)fun(char.p)的功能是如果p[i]指向的字符為空字符并且其前一個(gè)字符是小寫字母,則把小與字母變成大字母,所以在主函數(shù)中,執(zhí)行fun(s1)后,小寫字母b,d都改成大字母。8、若有以下定義和語(yǔ)句chars1[10]="abcd!",*s2="\n123\\";printf("%d%d\n",str1en(s1),str1en(s2));則輸出結(jié)果是A、105B、107C、55D、58標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題要注意的是轉(zhuǎn)義字符的問題,在字符串s2中,有兩個(gè)轉(zhuǎn)義字符,分別是回車換行符和反斜線。所以其字符串長(zhǎng)度等于5。9、有以下程序#includeintfun(inta,intb)main(){if(b==0)returna;{printf("%d\n",fun(4,2));}elsereturn(fun(--a,--b));}程序的運(yùn)行結(jié)果是A、1B、2C、3D、4標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:由程序可知函數(shù)fun(inta,intb)是一個(gè)遞歸函數(shù)。所以當(dāng)主函數(shù)中調(diào)用fun(4,2)時(shí),其執(zhí)行過程如下:fun(4,2)->fun(3,1)->fun(2,0),其返回值為2。10、下列選項(xiàng)中,能夠滿足“只要字符串s1等于字符串s2,則執(zhí)行ST”要求的是A、if(s1==s2)ST;B、if(strcpy(s1,s2)==1)ST;C、iffstrcmp(s2,s1)==0)ST;D、if(s1-s2==0)ST;標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在C語(yǔ)言中要對(duì)兩個(gè)字符串的大小進(jìn)行比較,就需要調(diào)用字符串比較函數(shù)strcmp(),如果這個(gè)函數(shù)的返回值等于0,說明兩個(gè)字符串相等。11、若有以下說明和定義uniondt{inta;charb;doublec;}data;以下敘述中錯(cuò)誤的是A、data的每個(gè)成員起始地址都相同B、變量data所占內(nèi)存字節(jié)數(shù)與成員C所占字節(jié)數(shù)相等C、程序段:data.a(chǎn)=5;printf("%f\n",data.c);輸出結(jié)果為5.000000D、data可以作為函數(shù)的實(shí)參標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題主要考查聯(lián)合的定義和使用。選項(xiàng)A聯(lián)合中每個(gè)成員起始地址都是一樣的,正確;選項(xiàng)B聯(lián)合的長(zhǎng)度等于長(zhǎng)度最長(zhǎng)成員的長(zhǎng)度,在data中,成員c是double類型,長(zhǎng)度為8個(gè)字節(jié)最長(zhǎng),因此data所占用字節(jié)數(shù)和成員c長(zhǎng)度一致。選項(xiàng)C整型和double類型的存儲(chǔ)格式不一致,整數(shù)5在內(nèi)存中的存儲(chǔ)格式和浮點(diǎn)數(shù)5存儲(chǔ)格式不一樣,因此data.c輸出不會(huì)是5.000000;選項(xiàng)D聯(lián)合和結(jié)構(gòu)體都可以作為函數(shù)實(shí)參。12、以下關(guān)于函數(shù)的敘述中正確的是A、每個(gè)函數(shù)都可以被其他函數(shù)調(diào)用(包括main函數(shù))B、每個(gè)函數(shù)都可以被單獨(dú)編譯C、每個(gè)函數(shù)都可以單獨(dú)運(yùn)行D、在一個(gè)函數(shù)內(nèi)部可以定義另一個(gè)函數(shù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題主要考查函數(shù)的定義和使用。選項(xiàng)A錯(cuò)誤,main函數(shù)可以調(diào)用其他函數(shù),但是其他函數(shù)不能調(diào)用main函數(shù);選項(xiàng)B正確;選項(xiàng)C錯(cuò)誤,只有main函數(shù)可以單獨(dú)運(yùn)行,其他函數(shù)只能被調(diào)用;選項(xiàng)D錯(cuò)誤,C語(yǔ)言中不能在函數(shù)內(nèi)部定義函數(shù)。13、在C語(yǔ)言中,函數(shù)返回值的類型最終取決于A、函數(shù)定義時(shí)在函數(shù)首部所說明的函數(shù)類型B、return語(yǔ)句中表達(dá)式值的類型C、調(diào)用函數(shù)時(shí)主調(diào)函數(shù)所傳遞的實(shí)參類型D、函數(shù)定義時(shí)形參的類型標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C語(yǔ)言中函數(shù)的返回值類型是由定義函數(shù)時(shí)在函數(shù)首部所聲明的類型確定的。14、當(dāng)用戶要求輸入的字符串中含有空格時(shí),應(yīng)使用的輸入函數(shù)是A、scanf()B、getchar()C、gets()D、getc()標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查基本輸入輸出函數(shù)。選項(xiàng)A中的scanf函數(shù)接收輸入字符串時(shí)會(huì)把空格當(dāng)成結(jié)束符;選項(xiàng)B中的getchar是讀取輸出的一個(gè)字符,不能用作字符串輸入;選項(xiàng)C中的gets滿足要求;選項(xiàng)D沒有g(shù)etc函數(shù)。15、avg函數(shù)酌功能是求整型數(shù)組中的前若干個(gè)元素的平均值,設(shè)數(shù)組元素個(gè)數(shù)最多不超過10,則下列函數(shù)說明語(yǔ)句錯(cuò)誤的是A、intavg(int*a,intn);B、intavg(inta[10],imn);C、intavg(inta[],intn);D、intavg(inta,intn);標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查函數(shù)的定義。題目要求計(jì)算數(shù)組的平均值,因此函數(shù)必須獲取數(shù)組的地址(指針),即函數(shù)必須要有一個(gè)指針類型的參數(shù),選項(xiàng)D中函數(shù)參數(shù)都是整型,錯(cuò)誤。16、以下敘述中正確的是A、函數(shù)名代表該函數(shù)的入口地址B、所有函數(shù)均不能接受函數(shù)名作為實(shí)參傳入C、函數(shù)體中的語(yǔ)句不能出現(xiàn)對(duì)自己的調(diào)用D、如果函數(shù)帶有參數(shù),就不能調(diào)用自己標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:函數(shù)形、實(shí)參傳遞的時(shí)候,要求對(duì)應(yīng)位置類型一致即可,如果實(shí)參為函數(shù)名,可以定義相應(yīng)的形參為指向函數(shù)的指針變量來(lái)獲得該函數(shù)的入口地址,因此選項(xiàng)B錯(cuò)誤的,在C語(yǔ)言中允許進(jìn)行遞歸調(diào)用,即自己調(diào)用自己,選項(xiàng)C和選項(xiàng)D是錯(cuò)誤的。17、以下敘述中正確的是A、函數(shù)既可以直接調(diào)用自己,也可以間接調(diào)用自己B、任何情況下都不能用函數(shù)名作為實(shí)參C、函數(shù)的遞歸調(diào)用不需要額外開銷,所以效率很高D、簡(jiǎn)單遞歸不需要明確的結(jié)束遞歸的條件標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:一個(gè)C語(yǔ)言源程序可以由一個(gè)或多個(gè)源文件組成,每個(gè)源文件可由一個(gè)或多個(gè)函數(shù)組成,各函數(shù)之間是平行的,除了主函數(shù)外,函數(shù)之間可以相互調(diào)用,甚至C語(yǔ)言中的函數(shù)可以直接或間接地自己調(diào)用自己,稱之為遞歸調(diào)用,該調(diào)用主要用于把要解決的問題轉(zhuǎn)化為一個(gè)新的問題,而這個(gè)新問題的解決方法仍與原來(lái)的解法相同,只是所處理的對(duì)象有規(guī)律地遞增或遞減,可以應(yīng)用這個(gè)轉(zhuǎn)化過程使問題得到解決,同時(shí)為了有效使用遞歸調(diào)用必定要有一個(gè)明確的結(jié)束遞歸的條件。而每次進(jìn)行遞歸調(diào)用時(shí)候,需要利用棧保存現(xiàn)場(chǎng)信息,因此并不會(huì)提高效率,選項(xiàng)C和選項(xiàng)D不正確。函數(shù)名表名了函數(shù)的入口地址,如果函數(shù)的形參為指向函數(shù)的指針變量,那么對(duì)應(yīng)的實(shí)參必須為函數(shù)名,因此函數(shù)名可以為函數(shù)的參數(shù),選項(xiàng)B錯(cuò)誤。18、以下關(guān)于return語(yǔ)句的敘述中正確的是A、一

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論