國(guó)家二級(jí)C語(yǔ)言(數(shù)組)機(jī)試模擬試卷5(題后含答案及解析)_第1頁(yè)
國(guó)家二級(jí)C語(yǔ)言(數(shù)組)機(jī)試模擬試卷5(題后含答案及解析)_第2頁(yè)
國(guó)家二級(jí)C語(yǔ)言(數(shù)組)機(jī)試模擬試卷5(題后含答案及解析)_第3頁(yè)
國(guó)家二級(jí)C語(yǔ)言(數(shù)組)機(jī)試模擬試卷5(題后含答案及解析)_第4頁(yè)
國(guó)家二級(jí)C語(yǔ)言(數(shù)組)機(jī)試模擬試卷5(題后含答案及解析)_第5頁(yè)
已閱讀5頁(yè),還剩3頁(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ǔ)言(數(shù)組)機(jī)試模擬試卷5(題后含答案及解析)題型有:1.選擇題選擇題1.若有定義:intx[10],*pt=x;,則對(duì)x數(shù)組元素的正確引用是()。A.pt+3B.*&x[10]C.*(pt+10)D.*(x+3)正確答案:D解析:沒有A選項(xiàng)的引用形式。*與&放在一起作用抵消,但x[10]下標(biāo)10超出了數(shù)組下標(biāo)范圍,所以B選項(xiàng)錯(cuò)誤。最大只能引用到x[9],而*(pt+i)表示引用指針pt所指元素后的第i個(gè)元素,所以C選項(xiàng)錯(cuò)誤,最大只能為*(pt+9)。D選項(xiàng)正確。知識(shí)模塊:數(shù)組2.有以下程序:#inelude<stdio.h>main(){inti,s=0,t[]={1,2,3,4,5,6,7,8,9};for(i=0;i<9;i+=2)s+=*(t+i);prinff(“%d\n”,s);}程序的運(yùn)行結(jié)果是()。A.20B.25C.45D.36正確答案:B解析:統(tǒng)計(jì)1~9這9個(gè)數(shù)中的奇數(shù)和,此題考查指向數(shù)組的指針。C語(yǔ)言規(guī)定數(shù)組名代表數(shù)組的首地址,也就是第一個(gè)元素的地址,因此*(t+i)代表數(shù)組的第i+1個(gè)元素。程序的運(yùn)行結(jié)果是1+3+5+7+9=25。知識(shí)模塊:數(shù)組3.有以下程序:#include<stdio.h>main(){ints[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i;for(i=0;i<12;i++)e[s[i]]++;for(i=1;i<5;i++)prinff(“%d”,c[i]);printf(“\n”);}程序的運(yùn)行結(jié)果是()。A.2344B.4332C.1234D.1123正確答案:B解析:在for(i=0;i<12;i++)c[s[i]]++中,數(shù)組元素s[i]的值作為數(shù)組c的下標(biāo),當(dāng)退出循環(huán)時(shí),數(shù)組c的4個(gè)元素的值分別為4、3、3、2,因此B選項(xiàng)正確。知識(shí)模塊:數(shù)組4.下列定義數(shù)組的語(yǔ)句中正確的是()。A.#defineN10intx[N];B.intN=10;intx[N];C.intx[0..10];D.intx[];正確答案:A解析:數(shù)組說(shuō)明的一般形式為:類型說(shuō)明符數(shù)組名[常量表達(dá)式]。B選項(xiàng)中N是變量,不能用變量定義數(shù)組長(zhǎng)度。C選項(xiàng)中數(shù)組長(zhǎng)度是一串非法的數(shù)字。定義數(shù)組時(shí)必須為其指明長(zhǎng)度,D選項(xiàng)中的數(shù)組長(zhǎng)度為空,所以非法。知識(shí)模塊:數(shù)組5.下列選項(xiàng)中能正確定義數(shù)組的語(yǔ)句是()。A.intnum[0…2008];intnum[N];B.intnum[];intnum[N];C.intN=2008;D.#defineN2008正確答案:D解析:C語(yǔ)言不允許定義動(dòng)態(tài)數(shù)組,定義數(shù)組的大小必須為常量表達(dá)式。A選項(xiàng)錯(cuò)誤,C語(yǔ)言中的數(shù)組沒有此類型的定義方法;B選項(xiàng)錯(cuò)誤,定義數(shù)組應(yīng)指明數(shù)組大小,如果不指明數(shù)組大小,需要給定初值的個(gè)數(shù);C選項(xiàng)錯(cuò)誤,N為變量,不能用來(lái)定義數(shù)組大小。D選項(xiàng)正確。知識(shí)模塊:數(shù)組6.若要求定義具有10個(gè)int型元素的一維數(shù)組a,則以下定義語(yǔ)句中錯(cuò)誤的是()。A.#definen5inta[2*n];B.intn=10,a[n];inta[N];C.inta[5+5];D.#defineN10正確答案:B解析:一維數(shù)組的定義方式為:類型說(shuō)明符數(shù)組名[常量表達(dá)式];注意定義數(shù)組時(shí),元素個(gè)數(shù)不能是變量,因此應(yīng)該選擇B選項(xiàng)。知識(shí)模塊:數(shù)組7.設(shè)有定義:doublea[10],*s=a;,以下能夠代表數(shù)組元素a[3]的是()。A.(*s)[3]B.*(s+3)C.*s[3]D.*s+3正確答案:B解析:題中,首先定義了double型的數(shù)組a,并將數(shù)組首地址賦給指針s。s[3]能夠表示a[3],故選項(xiàng)A、C不能表示a[3];選項(xiàng)D的*s+3=a[0]+3。故本題答案為B選項(xiàng)。知識(shí)模塊:數(shù)組8.有以下程序:#include<stdio.h>main(){inti,t[][3]={9,8,7,6,5,4,3,2,1};for(i=0;i<3;i++)printf(“%d”,t[2-i][i]);}程序的運(yùn)行結(jié)果是()。A.357B.753C.369D.751正確答案:A解析:二維數(shù)組t[][3]實(shí)際上指t[3][3]={{9,8,7},{6,5,4},{3,2,1}},通過(guò)循環(huán)語(yǔ)句for語(yǔ)句可以得到i=0,t[2][0]=3、i=1,t[1][1]=5、i=2,t[0][2]=7、i=3時(shí)循環(huán)結(jié)束,即t[2][0]=3、t[1][1]=5、t[0][2]=7,因此A選項(xiàng)正確。知識(shí)模塊:數(shù)組9.下列定義語(yǔ)句中錯(cuò)誤的是()。A.intx[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};B.intx[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};C.intx[][3]={{0},{l},{1,2,3}};D.intx[][3]={1,2,3,4};正確答案:B解析:二維數(shù)組定義的一般形式是:類型說(shuō)明符數(shù)組名[常量表達(dá)式1][常量表達(dá)式2]。其中常量表達(dá)式1表示第一維下標(biāo)的長(zhǎng)度,常量表達(dá)式2衷示第二維下標(biāo)的長(zhǎng)度。如對(duì)二維數(shù)組的全部元素賦初值,則第一維的長(zhǎng)度可以不給出。但如果對(duì)x[4][]賦值,只確定行數(shù),麗不確定列數(shù),就無(wú)法正確賦值。因此B選項(xiàng)正確。知識(shí)模塊:數(shù)組10.下列定義數(shù)組的語(yǔ)句中錯(cuò)誤的是()。A.intx[2][3]={1,2,3,4,5,6};B.intx[][3]={0};C.intx[][3]={{1,2,3},{4,5,6}};D.intx[2][3]={{1,2},{3,4},{5,6}};正確答案:D解析:D選項(xiàng)中x[2][3]定義的是一個(gè)2行3列的二維數(shù)組,而在給數(shù)組元素賦值時(shí)卻賦成了3行,所以錯(cuò)誤。知識(shí)模塊:數(shù)組11.下列定義數(shù)組的語(yǔ)句中錯(cuò)誤的是()。A.intnum[][3]={{1,2},3,4,5,6};B.intnum[2][4]={{1,2},{3,4},{5,6}};C.intnum[]={1,2,3,4,5,6};D.intnum[][4]={1,2,3,4,5,6};正確答案:B解析:B選項(xiàng)中定義的數(shù)組為2行4列,而賦值時(shí)賦成了3行,所以出錯(cuò)。知識(shí)模塊:數(shù)組12.若有定義語(yǔ)句:chars[10]=“1234567\0\0”;,則strlen(s)的值是()。A.7B.8C.9D.10正確答案:A解析:strlen()函數(shù)是計(jì)算字符串長(zhǎng)度時(shí),遇到結(jié)束標(biāo)識(shí)為止,且長(zhǎng)度不包括結(jié)束標(biāo)識(shí)。本題中的字符串從第一個(gè)字符開始,遇到第一個(gè)結(jié)束標(biāo)識(shí)’\0’為止,注意’\0’不占字符串長(zhǎng)度,所以字符串長(zhǎng)度為7,因此A選項(xiàng)正確。知識(shí)模塊:數(shù)組13.有以下程序:#include<stdio.h>#include<string.h>main(){charp[20]={‘a(chǎn)’,’b’,’c’,’d’},q[]=“abc”,r[]=“abcde”;strcat(p,r);strcpy(p+strlen(q),q);prinff(“%d\n”,strlen(p));}程序的運(yùn)行結(jié)果是()。A.11B.9C.6D.7正確答案:C解析:strcpy:字符串復(fù)制函數(shù);strlen:求字符串長(zhǎng)度函數(shù)(注意:不包含字符串結(jié)束標(biāo)記字符’\0’);strcat:字符串連接函數(shù)。執(zhí)行完語(yǔ)句strcat(p,r);后,p數(shù)組中存儲(chǔ)的元素為a,b,c,d,a,b,c,d,e;執(zhí)行語(yǔ)句strcpy(p+strlen(q),q);得到的結(jié)果是將q所指向的字符串復(fù)制至p+strlen(q)開始的存儲(chǔ)位置,因?yàn)閟trlen的值為3,即p+3開始存儲(chǔ)q中的元素,所以執(zhí)行完strcpy(p+strlen(q),q)語(yǔ)句后,字符數(shù)組p[20]的存儲(chǔ)元素為a,b,c,知識(shí)模塊:數(shù)組14.有以下程序(strcat函數(shù)用于連接兩個(gè)字符串):#include<stdio.h>#include<string.h>main(){chara[20]=“ABCD\0EFG\0”,b[]=“LIK”;strcat(a,b);prinff(“%s\n”,a);}程序的運(yùn)行結(jié)果是()。A.IJKB.ABCDE\0FG\OIJKC.ABCDIJKD.EFGIJK正確答案:C解析:字符數(shù)組a中包含兩個(gè)’\0’,遇到第一個(gè)’\0’時(shí)就表示字符串a(chǎn)結(jié)束。字符串處理函數(shù)strcat(字符數(shù)組a,字符數(shù)組b),功能是連接兩個(gè)字符數(shù)組中的字符串,把字符串b連接到字符串a(chǎn)的后面,結(jié)果放在字符數(shù)組a中。連接時(shí)將字符串a(chǎn)后的’\0’取消,只在新串最后保留一個(gè)’\0’。本題相當(dāng)于將”AB-CD”和”IJK”.連接,因此C選項(xiàng)正確。知識(shí)模塊:數(shù)組15.有以下程序:charname[20];intnum;scanf(“name=%snum=%d”,name,&num);當(dāng)執(zhí)行上述程序,并從鍵盤輸入:name=Lilinun=1001<回車>后,name的值為()。A.name=Lilinum=1001B.name=LiliC.Lilinum=D.Lili正確答案:D解析:在輸入格式控制“name=%snum=%d”中,普通字符“name=num=”在輸入時(shí)要原樣輸入,而格式控制符%s和%d對(duì)應(yīng)各自的輸入項(xiàng),將輸入的數(shù)據(jù)賦給相應(yīng)的輸入項(xiàng)。本題中輸入“name=Lilinum=1001<回車>”后,將字符串Lili賦給字符數(shù)組name,整數(shù)1001賦給變量num,因此D選項(xiàng)正確。知識(shí)模塊:數(shù)組16.有以下程序:#include<stdio.h>main(){charch[]=“uvwxyz”,*pc;pc=ch;prinff(“%c\n”,*(pc+5));}程序的運(yùn)行結(jié)果是()。A.zB.0C.元素ch[5]的地址D.字符y的地址正確答案:A解析:語(yǔ)句pc=ch;使得指針變量指向字符數(shù)組ch的首地址,即指向字符’u’,則pc+5指向的是字符向后移動(dòng)5位,指向字符’z’,所以輸出的*pc+5的值即為’z’,因此A選項(xiàng)正確。知識(shí)模塊:數(shù)組17.有以下程序:#include<stdio.h>main(){chars[]={“012xy”};inti,n=0;for(i=0;s[i]!=0;i++)if(s[i]>=‘a(chǎn)’&&s[i]<=‘z’)n++;prinff(“%d\n”,n);}程序運(yùn)行結(jié)果是()。A.0B.2C.3D.5正確答案:B解析:程序首先給字符數(shù)組s[]賦值為”012xy”,for循環(huán)語(yǔ)句的功能是遍歷字符串,通過(guò)if條件語(yǔ)句對(duì)字符串中的小寫字母進(jìn)行計(jì)數(shù),字符串中小寫字母為2個(gè),即n=2,因此B選項(xiàng)正確。知識(shí)模塊:數(shù)組18.若有以下定義和語(yǔ)句:#include<stdio.h>chars1[10]=“abcd!”,*s2=“\n123\\”;prinff(“%d%d\n”,strlen(s1),strlen(s2));程序的運(yùn)行結(jié)果是()。A.107B.105C.55D.58正確答案:C解析:strlen函數(shù)返回字符串的長(zhǎng)度,求字符串長(zhǎng)度時(shí),遇到結(jié)束標(biāo)志’\0’為止,但是長(zhǎng)度不包括結(jié)束標(biāo)識(shí)。字符數(shù)組s1的后5個(gè)元素沒有賦值,都為’\0’,即”abcd!”后為’\0’,所以strlen(s1)的值為5。字符指針s2所指向的字符串中,\n為轉(zhuǎn)義字符換行符,表示1個(gè)字符,\\也為轉(zhuǎn)義字符,代表\,也是1個(gè)字符,其后為字符串結(jié)束標(biāo)識(shí)’\0’,所以strlen(s2)的值也為5,因此C選項(xiàng)正確。知識(shí)模塊:數(shù)組19.有以下程序:#include<stdio.h>main(){chars[]=“abcde”;s+=2;prinff(“%d\n”,s[0]);}程序的運(yùn)行結(jié)果是()。A.輸出字符C的ASCII碼B.程序出錯(cuò)C.輸出字符cD.輸出字符a的ASCII碼正確答案:B解析:本題重點(diǎn)考查數(shù)組名的概念。在C語(yǔ)言中,數(shù)組名類似于一個(gè)指向數(shù)組首地址的指針常量,一旦定義就不能修改其內(nèi)容。所以本題中的“s+=2”;語(yǔ)句讓數(shù)組名s的內(nèi)容加2是錯(cuò)誤的,編譯無(wú)法通過(guò),因此B選項(xiàng)正確。知識(shí)模塊:數(shù)組20.有以下程序:#include<stdio.h>voidfun(char*t,char*s){while(*t!=0)t++;while((*t++=*s++)!=0);}main(){charss[10]=“acc”,aa[10]=“bbxxyy”;fun(ss,aa);prinff(“%s,%s\n”,ss,aa);}程序的運(yùn)行結(jié)果是()。A.a(chǎn)cc,bbxxyyB.a(chǎn)ccbbxxyy,bbxxyyC.a(chǎn)ccxxyy,bbxxyyD.a(chǎn)ccxyy,bbxxyy正確答案:B解析:本題重點(diǎn)考查while循環(huán)語(yǔ)句的簡(jiǎn)單應(yīng)用。在函數(shù)。fun()中,前一個(gè)while循環(huán)的作用是:如果形參指針t所指內(nèi)容不為0,則讓t增1,直到它指向0。后一個(gè)while循環(huán)的作用是:將s所指內(nèi)容賦給t所指地址,然后兩者同時(shí)增1,直到賦給t的內(nèi)容為0。由此可見,函數(shù)fun()的作用就是將形參s所指字符串連接到形參t所指字符串末尾,相當(dāng)于庫(kù)函數(shù)中的strcat()。主函數(shù)中使用fun()將數(shù)組aa中的字符串連接到了數(shù)組ss中原有字符串之后,所以執(zhí)行完后,ss中的字符串為“accbbxxyy”。程序知識(shí)模塊:數(shù)組21.設(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])正確答案:A解析:根據(jù)題目中的定義可知道sizeof(p),計(jì)算的是數(shù)組p中所有元素所占用的字節(jié)數(shù),而不是char型數(shù)據(jù)所占的字節(jié)數(shù)。知識(shí)模塊:數(shù)組22.設(shè)有定義:chars[81];inti=0;,以下不能將一行(不超過(guò)80個(gè)字符)帶有空格的字符串正確讀入的語(yǔ)句或語(yǔ)句組是()。A.gets(s);B.while((s[i++]=getchar())!=‘\n’);s[i]=‘\0’;C.scanf(“%s”,s);D.do{scanf(“%C”,&s[i]);}while(s[i++]!=‘\n’);s[i]=‘\0’;正確答案:C解析:使用scanf()輸入字符串時(shí),空格和回車符都作為輸入數(shù)據(jù)的分隔符而不能被讀入,而應(yīng)該使用gets(s)。知識(shí)模塊:數(shù)組23.若有定義語(yǔ)句:char*s1=“OK”,*s2=“ok”;,以下選項(xiàng)中,能夠輸出“OK”的語(yǔ)句是()。A.if(stremp(s1,s2)!=0)puts(s2);B.if(stremp(s1,s2)!=0)puts(s1);C.if(strcmp(s1,s2)==1)puts(s1);D.if(strcmp(s1,s2)==0)puts(s1);正確答案:B解析:strcmp(s1,s2)是字符串比較函數(shù),比較規(guī)則是兩個(gè)字符串自左向右逐個(gè)字符相比(按照ASCII碼值大小),以第一個(gè)不相同字符的大小作為比較結(jié)果。因?yàn)椤疧K’<’ok’,所以str

溫馨提示

  • 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ù)覽,若沒有圖紙預(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)論