2021年全國計(jì)算機(jī)二級C選擇題題庫_第1頁
2021年全國計(jì)算機(jī)二級C選擇題題庫_第2頁
2021年全國計(jì)算機(jī)二級C選擇題題庫_第3頁
2021年全國計(jì)算機(jī)二級C選擇題題庫_第4頁
2021年全國計(jì)算機(jī)二級C選擇題題庫_第5頁
已閱讀5頁,還剩22頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

全國計(jì)算機(jī)二級C選取題題庫1、下列論述中對的是A)程序可以作為算法一種表達(dá)方式B)算法有窮性是指算法規(guī)模不能太大C)算法復(fù)雜度用于衡量算法控制構(gòu)造D)算法效率與數(shù)據(jù)存儲構(gòu)造無關(guān)參照答案:A算法有窮性是指操作環(huán)節(jié)有限且能在有限時(shí)間內(nèi)完畢,如果一種算法執(zhí)行耗費(fèi)時(shí)間太長,雖然最后得出了對的成果,也是沒故意義。B選項(xiàng)錯誤。一種算法復(fù)雜度高低體當(dāng)前運(yùn)營該算法所需要計(jì)算機(jī)資源多少。C選項(xiàng)錯誤。算法效率是指算法執(zhí)行時(shí)間,算法執(zhí)行時(shí)間需通過根據(jù)該算法編制程序在計(jì)算機(jī)上運(yùn)營時(shí)所消耗時(shí)間來度量,這就與算法自身設(shè)計(jì)優(yōu)劣以及詳細(xì)編程實(shí)既關(guān)于,數(shù)據(jù)存儲構(gòu)造會極大影響程序執(zhí)行時(shí)間。D選項(xiàng)錯誤。算法在實(shí)現(xiàn)時(shí)需要用品體程序設(shè)計(jì)語言來實(shí)現(xiàn),因此程序可以作為實(shí)現(xiàn)算法一種表達(dá)方式。故選A選項(xiàng)。2、某循環(huán)隊(duì)列存儲空間為Q(1:m),初始狀態(tài)為front=rear=m?,F(xiàn)通過一系列入隊(duì)操作和退隊(duì)操作后,front=m-1,rear=m,則該循環(huán)隊(duì)列中元素個(gè)數(shù)為A)m-1B)1C)mD)0參照答案:B循環(huán)隊(duì)列長度為m,由初始狀態(tài)為front=rear=m可知此時(shí)循環(huán)隊(duì)列為空。入隊(duì)運(yùn)算時(shí),一方面隊(duì)尾指針(rear)進(jìn)1(即rear+1),然后在rear指針指向位置插入新元素。特別,當(dāng)隊(duì)尾指針rear=m+1時(shí),置rear=1。退隊(duì)運(yùn)算時(shí),排頭指針(front)進(jìn)1(即front+1),然后刪除front指針指向位置上元素,當(dāng)排頭指針front=m+1時(shí),置front=1。從排頭指針front指向后一種位置直到隊(duì)尾指針rear指向位置之間所有元素均為隊(duì)列中元素,則該循環(huán)隊(duì)列中元素個(gè)數(shù)為m-(m-1)=1。故選取A選項(xiàng)。3、能從任意一種結(jié)點(diǎn)開始沒有重復(fù)地掃描到所有結(jié)點(diǎn)數(shù)據(jù)構(gòu)造是A)循環(huán)鏈表B)雙向鏈表C)二叉鏈表D)有序鏈表參照答案:A在單鏈表第一種結(jié)點(diǎn)前增長一種表頭結(jié)點(diǎn),隊(duì)頭指針指向表頭結(jié)點(diǎn),最后一種結(jié)點(diǎn)指針域值由NULL改為指向表頭結(jié)點(diǎn),這樣鏈表稱為循環(huán)鏈表。在循環(huán)鏈表中,只要指出表中任何一種結(jié)點(diǎn)位置,就可以從它出發(fā)沒有重復(fù)地掃描到表中其她所有結(jié)點(diǎn)。雙向鏈表與二叉鏈表都可以掃描到所有結(jié)點(diǎn),但是會有重復(fù)。有序鏈表如果是單鏈表狀況下,不能掃描到所有結(jié)點(diǎn)。故A選項(xiàng)對的。4、某棵樹中共有25個(gè)結(jié)點(diǎn),且只有度為3結(jié)點(diǎn)和葉子結(jié)點(diǎn),其中葉子結(jié)點(diǎn)有7個(gè),則該樹中度為3結(jié)點(diǎn)數(shù)為A)不存在這樣樹B)7C)8D)6參照答案:A樹是一種簡樸非線性構(gòu)造,直觀地來看,樹是以分支關(guān)系定義層次構(gòu)造。在樹構(gòu)造中,一種結(jié)點(diǎn)所擁有后件個(gè)數(shù)稱為該結(jié)點(diǎn)度,所有結(jié)點(diǎn)中最大度稱為樹度。一方面假設(shè)這樣樹是存在,由于只有度為3結(jié)點(diǎn)和葉子結(jié)點(diǎn),可知最后一層都為葉子結(jié)點(diǎn),倒數(shù)第二層一某些結(jié)點(diǎn)度為3,一某些結(jié)點(diǎn)為葉子結(jié)點(diǎn)。結(jié)點(diǎn)總數(shù)為25,葉子結(jié)點(diǎn)有7個(gè),則度為3結(jié)點(diǎn)有18個(gè),由于(34-1-1)/2<18<(35-1-1)/2可知,樹共有5層,前三層有度為3結(jié)點(diǎn)(34-1-1)/2=13個(gè),第四層有34-1=27個(gè)結(jié)點(diǎn),其中5個(gè)是度為3結(jié)點(diǎn),22個(gè)是葉子結(jié)點(diǎn),此時(shí)與題目給出葉子結(jié)點(diǎn)有7個(gè)相矛盾,故不存在這樣樹。故選取A選項(xiàng)。5、在最壞狀況下,二分查找法時(shí)間復(fù)雜度為A)B)C)D)參照答案:C二分法查找也稱拆半查找,能使用二分法查找線性表必要滿足兩個(gè)條件,用順序存儲構(gòu)造以及線性表有序。運(yùn)用二分法查找元素X過程如下:將X與線性表中間項(xiàng)比較,如果X值與中間項(xiàng)值相等,則查找成功,結(jié)束查找;如果X不大于中間項(xiàng)值,則在線性表前半某些以二分法繼續(xù)查找;如果X不不大于中間項(xiàng)值,則在線性表后半某些以二分法繼續(xù)查找??梢宰C明,對于長度為n有序線性表,在最壞狀況下,二分法查找需比較次,故時(shí)間復(fù)雜度為。故選取A選項(xiàng)。6、某二叉樹共有730個(gè)結(jié)點(diǎn),其中度為1結(jié)點(diǎn)有30個(gè),則葉子結(jié)點(diǎn)個(gè)數(shù)為A)不存在這樣二叉樹B)351C)1D)350參照答案:A在樹構(gòu)造中,一種結(jié)點(diǎn)所擁有后件個(gè)數(shù)稱為該結(jié)點(diǎn)度,所有結(jié)點(diǎn)中最大度稱為樹度。對任何一棵二叉樹,度為0結(jié)點(diǎn)總是比度為2結(jié)點(diǎn)多一種。如果有一棵二叉樹,結(jié)點(diǎn)總數(shù)為730,假設(shè)度為0結(jié)點(diǎn)個(gè)數(shù)為n,則有n+30+n-1=730,n=350.5,由于結(jié)點(diǎn)個(gè)數(shù)必要是整數(shù),因此不也許存在題目中這樣二叉樹。故選A選項(xiàng)。7、軟件開發(fā)中需求分析重要任務(wù)是A)定義和描述目的系統(tǒng)"做什么"B)獲取需求C)給出軟件解決方案D)需求評審參照答案:A需求分析階段工作可以分為4個(gè)方面:需求獲取、需求分析、編寫需求規(guī)格闡明書和需求評審。需求分析任務(wù)是發(fā)現(xiàn)需求、求精、建模和定義需求過程,是描述"做什么"軟件開發(fā)階段。故選A選項(xiàng)。8、軟件按功能可以分為應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于系統(tǒng)軟件是A)學(xué)生成績管理系統(tǒng)B)ERP系統(tǒng)C)辦公自動化系統(tǒng)D)UNIX系統(tǒng)參照答案:D系統(tǒng)軟件是管理計(jì)算機(jī)資源,提高計(jì)算機(jī)使用效率,為顧客提供各種服務(wù)軟件。應(yīng)用軟件是為了應(yīng)用于特定領(lǐng)域而開發(fā)軟件。選項(xiàng)A屬于系統(tǒng)軟件,選項(xiàng)B、C、D屬于應(yīng)用軟件。故選D選項(xiàng)。9、醫(yī)生可覺得病人開不同藥,而同一種藥也可由不同醫(yī)生開給病人,則實(shí)體醫(yī)生和實(shí)體藥之間聯(lián)系是A)多對多B)一對一C)多對一D)一對多參照答案:A實(shí)體集之間通過聯(lián)系來建立聯(lián)接關(guān)系分為三類:一對一聯(lián)系(1:1)、一對多聯(lián)系(1:m)、多對多聯(lián)系(m:n)。由于醫(yī)生可覺得病人開不同藥,而同一種藥也可由不同醫(yī)生開給病人,因此兩者聯(lián)系屬于多對多。故選A選項(xiàng)。10、學(xué)生選課成績表關(guān)系模式是SC(S#,C#,G),其中S#為學(xué)號,C#為課號,G為成績,檢索課號為2且成績及格學(xué)生學(xué)號表達(dá)式為A)B)C)D)參照答案:A表達(dá)針對屬性進(jìn)行投影運(yùn)算,表達(dá)針對元組進(jìn)行選取運(yùn)算,''表達(dá)交運(yùn)算,''表達(dá)并運(yùn)算。規(guī)定檢索成果為關(guān)系模式中學(xué)生學(xué)號S#,一方面在幾種屬性中選取學(xué)生學(xué)號,另一方面要在其中選取滿足條件元組,條件是課號為2且成績及格,即為"",故完整表達(dá)式為。本題選A選項(xiàng)。11、若想定義int型變量a,b,c,d并都賦值為1,如下寫法中錯誤是A)inta=b=c=d=1;B)inta=1,b=1,c=1,d=1;C)inta,b,c,d;a=b=c=d=1;D)inta,b,c,d=1;a=b=c=d;參照答案:AC語言賦值運(yùn)算符結(jié)合方向是從右向左,使用變量必要都是已經(jīng)定義了,inta=b=c=d=1;本條語句一方面執(zhí)行賦值運(yùn)算d=1,由于b并未定義,故編譯不通過,提示沒有定義標(biāo)記符b、c、d,故A項(xiàng)錯誤。答案為A選項(xiàng)。12、若有定義:charc;doubled;程序運(yùn)營時(shí)輸入:12<回車>,能把字符1輸入給變量c、數(shù)值2輸入給變量d輸入語句是A)scanf("%d%lf",&c,&d);B)scanf("%c%lf",&c,&d);C)scanf("%c%f",&c,&d);D)scanf("%d%f",&c,&d);參照答案:B%lf是針對double,如果僅用%f,輸入數(shù)據(jù)也許沒有被完全接受,數(shù)據(jù)精度也許局限性,選項(xiàng)C,D錯誤。%f重要針對float類型變量輸入。%d重要針對整型數(shù)據(jù)輸入,%c重要針對字符類型數(shù)據(jù)輸入,選項(xiàng)A錯誤。故答案為B選項(xiàng)。13、輸出語句:printf("%d\n",11+011);輸出成果是A)20B)22C)022D)021參照答案:Aprintf("%d\n",11+011)中,11為十進(jìn)制,011為八進(jìn)制形式,打印格式%d表達(dá)十進(jìn)制格式輸出,,因而,先將八進(jìn)制數(shù)轉(zhuǎn)化為十進(jìn)制,011(8)=81*1+1*80=9,相稱于printf("%d\n",11+9),故答案為20,A選項(xiàng)對的。14、如下論述對的是A)有些算法不能用三種基本構(gòu)造來表達(dá)B)C語言程序不編譯也能直接運(yùn)營C)構(gòu)造化程序三種基本構(gòu)造是循環(huán)構(gòu)造、選取構(gòu)造、順序構(gòu)造D)如果C語言程序?qū)崿F(xiàn)算法很簡樸,則計(jì)算機(jī)不進(jìn)行任何代碼轉(zhuǎn)換就能執(zhí)行程序參照答案:C算法三種基本構(gòu)造可以表達(dá)任何算法,只是不同實(shí)現(xiàn)復(fù)雜度不相似。因而選項(xiàng)A錯誤。C語言是編譯型語言,程序必要先編譯、鏈接才干運(yùn)營,因而選項(xiàng)B錯誤。C語言是高檔程序語言,計(jì)算機(jī)不能辨認(rèn)除了機(jī)器語言以外任何語言,因而C程序代碼轉(zhuǎn)換為機(jī)器語言才干在計(jì)算機(jī)上運(yùn)營。因而選項(xiàng)D錯誤。答案為C選項(xiàng)。15、若有定義:doublex;,則表達(dá)式:x=0,x+10,x++值是A)11.0B)10.0C)0.0D)1.0參照答案:CC語言中,逗號運(yùn)算符可以把兩個(gè)以上(包括兩個(gè))表達(dá)式連接成一種表達(dá)式。逗號運(yùn)算符優(yōu)先級是所有運(yùn)算符中級別最低,逗號運(yùn)算符保證左邊子表達(dá)式運(yùn)算結(jié)束后才進(jìn)行右邊子表達(dá)式運(yùn)算。也就是說,逗號運(yùn)算符是一種序列點(diǎn),其左邊所有副作用都結(jié)束后,才對其右邊子表達(dá)式進(jìn)行運(yùn)算,并以最右邊表達(dá)式值作為整個(gè)逗號表達(dá)式值。1、后置自增運(yùn)算:k++表達(dá)先運(yùn)算,后自加。2、前置自增運(yùn)算:++k表達(dá)先自加,后運(yùn)算。因而,表達(dá)式x=0,x+10,x++計(jì)算過程為一方面賦值x=0,然后將x加10,但是并不對x進(jìn)行賦值,最后計(jì)算x++,并,依照后置自增運(yùn)算計(jì)算成果,即為x=0.0。,故答案為C選項(xiàng)。16、有如下程序#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)營成果是A)a=2,b=2B)a=2,b=1C)a=1,b=1D)a=1,b=0參照答案:BC語言還提供了一種用于多分支選取switch語句,計(jì)算表達(dá)式值。并逐個(gè)與其后常量表達(dá)式值相比較,當(dāng)表達(dá)式值與某個(gè)常量表達(dá)式值相等時(shí),即執(zhí)行其后語句,然后不再進(jìn)行判斷,繼續(xù)執(zhí)行背面所有case后語句。如表達(dá)式值與所有case后常量表達(dá)式均不相似時(shí),則執(zhí)行default后語句。x=1;進(jìn)入第一層switch,y=0;進(jìn)入第二層switch,執(zhí)行a++;break;后a=1;在進(jìn)入case2,(這里case1:沒有break,)執(zhí)行了a++,b++,由于存在break,則跳出switch,得到a=2,b=1,因而答案為B選項(xiàng)。左邊所有副作用都結(jié)束后,才對其右邊子表達(dá)式進(jìn)行運(yùn)算,并以最右邊表達(dá)式值作為整個(gè)逗號表達(dá)式值。1、后置自增運(yùn)算:k++表達(dá)先運(yùn)算,后自加。2、前置自增運(yùn)算:++k表達(dá)先自加,后運(yùn)算。因而,表達(dá)式x=0,x+10,x++計(jì)算過程為一方面賦值x=0,然后將x加10,但是并不對x進(jìn)行賦值,最后計(jì)算x++,并,依照后置自增運(yùn)算計(jì)算成果,即為x=0.0。,故答案為C選項(xiàng)。17、如下程序段中變量已正擬定義for(i=0;i<4;i++,i++)for(k=1;k<3;k++);printf("*");該程序段輸出成果是A)*B)****C)**D)********參照答案:AC語言商定分號為一條語句結(jié)束。因而for(i=0;i<4;i++,i++)for(k=1;k<3;k++);是完整語句,對printf();沒有任何影響,最后printf("*"),執(zhí)行一次。因而答案為A選項(xiàng)。18、有如下程序#include<stdio.h>main(){charc;for(;(c=getchar())!='#';){if(c>='a'&&c<='z')c=c-'a'+'A';putchar(++c);}}執(zhí)行時(shí)輸入:aBcDefG##<回車>,則輸出成果是A)AbCdEFgB)ABCDEFGC)BCDEFGHD)bcdefgh參照答案:C循環(huán)作用是將輸入字符串轉(zhuǎn)化為大寫,getchar()每次讀入一種字符,putchar()每次輸出一種字符,當(dāng)遇到#字符結(jié)束。putchar(++c),表達(dá)將字符變量c加1后輸出。因而,輸入aBcDefG##,得到成果是BCDEFGH。故答案為C選項(xiàng)。19、有如下程序#include<stdio.h>intf(intx);main(){intn=1,m;m=f(f(f(n)));printf("%d\n",m);}intf(intx){returnx*2;}程序運(yùn)營后輸出成果是A)4B)2C)8D)1參照答案:C在C語言中,需要在main函數(shù)背面定義函數(shù),需要提前聲明,否則調(diào)用報(bào)錯,無法找到該函數(shù)。m=f(f(f(n))),一共調(diào)用3次f()函數(shù),f()函數(shù)是對n*2,因而,成果是n*2*2*2,得到成果為8。故答案為C選項(xiàng)20、關(guān)于地址和指針,如下論述對的是A)可以通過強(qiáng)制類型轉(zhuǎn)換讓char型指針指向double型變量B)函數(shù)指針p指向一種同類型函數(shù)f時(shí),必要寫成:p=&f;C)指針p指向一種數(shù)組f時(shí),必要寫成:p=&f;D)一種指針變量p可以指向自身參照答案:A函數(shù)指針p指向一種同類型函數(shù)f時(shí),可以寫成:p=f,而不能寫成&f,選項(xiàng)B錯誤。函數(shù)名代表函數(shù)入口地址,指針p指向一種數(shù)組f時(shí),可以寫成:p=f,也可寫成&f,數(shù)組名f,可以代表數(shù)組首地址,選項(xiàng)C錯誤。指針變量指向是地址,是個(gè)常量,不能將地址指向另一種地址,選項(xiàng)D錯誤。char型依照轉(zhuǎn)化原則可以轉(zhuǎn)化為double類型,因而答案為A選項(xiàng)。21、有如下程序#include<stdio.h>#defineN4intfun(inta[][N]){inti,j,x=0;for(i=0;i<N;i++)for(j=0;j<N;j++)if(i==j)x+=a[N-1-j][i];returnx;}main(){intx[N][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,17}},y;y=fun(x);printf("%d\n",y);}程序運(yùn)營后輸出成果是A)34B)35C)28D)59參照答案:Afun函數(shù)求矩陣反對角線元素之和。依照fun()函數(shù),當(dāng)數(shù)組行列下標(biāo)相等時(shí),對該行反對角線上元素求和。故成果為4+7+11+13=34,答案為A選項(xiàng)。22、有如下程序#include<stdio.h>#defineN3voidfun(intx[][N],int*r1,int*r2){inti,j;*r1=*r2=0;for(i=0;i<N;i++){j=N-(i+1);if(x[*r1][*r2]<x[i][j]){*r1=i;*r2=j;}}}main(){inta[N][N]={1,5,7,9,2,6,4,3,8},i,j;fun(a,&i,&j);printf("%d\n",a[i][j]);}程序運(yùn)營后輸出成果是A)8B)6C)7D)9參照答案:Cfun()獲取矩陣正反對角線元素最大值,fun()中for(i=0;i<N;i++){j=N-(i+1);//反對角線列位置if(x[*r1][*r2]<x[i][j]){*r1=i;*r2=j;}//比較正反對角線元素,使得*r1,*r2始終只在最大元素位置。}由數(shù)組元素可得,正反對角線最大元素為7。答案為C選項(xiàng)。23、對于如下函數(shù)聲明voidfun(intarray[4],int*ptr);如下論述中對的是A)array,ptr都是指針變量B)調(diào)用fun函數(shù)時(shí),實(shí)參值將逐個(gè)復(fù)制給arrayC)調(diào)用fun函數(shù)時(shí),array按值傳送,ptr按地址傳送D)array是數(shù)組,ptr是指針,它們性質(zhì)不同參照答案:Avoidfun(intarray[4],int*ptr);fun()函數(shù),第一種參數(shù)雖然是數(shù)組類型,但是會退化為指針,并且形參數(shù)組個(gè)數(shù)沒有用。第二個(gè)參數(shù)是指針,因而事實(shí)上二個(gè)形參都是指針。兩個(gè)形參都是指針,傳遞都是地址,而不是值。可知選項(xiàng)B、C、D錯誤。答案為A選項(xiàng)。24、設(shè)有定義:intx[10],*p=x,i;,若要為數(shù)組x讀入數(shù)據(jù),如下選項(xiàng)對的是A)for(i=0;i<10;i++)scanf("%d",p+i);B)for(i=0;i<10;i++)scanf("%d",*p+i);C)for(i=0;i<10;i++)scanf("%d",*(p+i));D)for(i=0;i<10;i++)scanf("%d",x[i]);參照答案:AC語言聲明scanf("<格式化字符串>",<地址表>);可知scanf()第二個(gè)參數(shù)是地址,因而,從四個(gè)答案中可以判斷,只有選項(xiàng)A是p[i]地址,其她均是變量自身。故答案為A選項(xiàng)。25、有如下程序#include<stdio.h>main(){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)營后輸出成果是A)7B)0C)3D)8參照答案:C題意記錄字符s中阿拉伯?dāng)?shù)字個(gè)數(shù)。chars[]='012xy\08s34f4w2';元素是字符型。'0'=48;而'\0'=0;因而可以計(jì)算出'\0'之前阿拉伯?dāng)?shù)字個(gè)數(shù),由字符串s可知,有3個(gè)阿拉伯?dāng)?shù)字。答案為C選項(xiàng)。26、有如下程序段charstr[4][12]={"aaa","bbb","ccc","ddd"},*p[4];inti;for(i=0;i<4;i++)p[i]=str[i];如下選項(xiàng)中不能對的引用字符串是A)*p[3]B)p[3]C)str[2]D)*p參照答案:A*p[3]p[3][0]是一種字符,不是字符串,選項(xiàng)A錯誤。p[3]和str[2]和*p分別代表了ddd,ccc,aaa。答案為A選項(xiàng)。27、有如下程序#include<stdio.h>intmul(intval){staticintinit=1;returninit*=val;}main(){inti;for(i=1;i<=5;i++)printf("%d,",mul(i));}程序運(yùn)營后輸出成果是A)1,2,6,24,120,B)1,2,3,4,5,C)1,1,1,1,1,D)1,2,4,6,8,參照答案:Astatic靜態(tài)變量只在聲明時(shí)初始化一次。mul()累乘,第一次init=1,init*=val,第二次init=1,val=2,第三次init=2,val=3,第四次init=6,val=4,第五層init=24,val=5,因而成果為1,2,6,24,120。故答案為A選項(xiàng)。28、有如下程序#include<stdio.h>voidfun(intn){staticintk=0;if(n<0){printf("-");n=-n;}k+=n%10;printf("%d,",k);if(n/10)fun(n/10);}main(){intx=-12;fun(x);printf("\n");}程序運(yùn)營后輸出成果是A)-2,3B)-1,-2,C)-2,-3,D)-2,1參照答案:Afun()函數(shù)使用了靜態(tài)變量,靜態(tài)變量只在聲明時(shí)初始化一次。一方面實(shí)參數(shù)值是-12,if判斷后輸出負(fù)號,并將n=12,計(jì)算k+=n%10k+=22,因而輸出2,,后將數(shù)值除以10,成果為1,遞歸調(diào)用fun()函數(shù),第二次調(diào)用fun(),此時(shí)n=1,k=2,計(jì)算k+=n%10k+=13,因而打印3,。故最后打印成果為-2,3,。故答案為A選項(xiàng)。29、有如下程序#include<stdio.h>structS{intn;inta[20];};voidf(structS*p){inti,j,t;for(i=0;i<p->n-1;i++)for(j=i+1;j<p->n;j++)if(p->a[i]>p->a[j]){t=p->a[i];p->a[i]=p->a[j];p->a[j]=t;}}main(){inti;structSs={10,{2,3,1,6,8,7,5,4,10,9}};f(&s);for(i=0;i<s.n;i++)printf("%d,",s.a[i]);}程序運(yùn)營后輸出成果是A)1,2,3,4,5,6,7,8,9,10,B)10,9,8,7,6,5,4,3,2,1,C)2,3,1,6,8,7,5,4,10,9,D)10,9,8,7,6,1,2,3,4,5,參照答案:A構(gòu)造體s中n代表數(shù)組實(shí)際長度,a是個(gè)定長數(shù)組。函數(shù)f(),對構(gòu)造體S內(nèi)a數(shù)組元素使用冒泡法進(jìn)行遞增排序。因而最后數(shù)組元素是一種遞增序列。故答案為A選項(xiàng)。30、有如下程序#include<stdio.h>typedefstructstu{charname[10];chargender;intscore;}STU;voidf(STUa,STU*b,STUc){*b=c=a;printf("%s,%c,%d,",b->name,b->gender,b->score);printf("%s,%c,%d,",,c.gender,c.score);}main(){STUa={"Zhao",'m',290},b={"Qian",'f',350},c={"Sun",'m',370};f(a,&b,c);printf("%s,%c,%d,",,b.gender,b.score);printf("%s,%c,%d\n",,c.gender,c.score);}程序運(yùn)營后輸出成果是A)Zhao,m,290,Zhao,m,290,Zhao,m,290,Sun,m,370B)Zhao,m,290,Zhao,m,290,Zhao,m,290,Zhao,m,290C)Zhao,m,290,Zhao,m,290,Qian,f,350,Sun,m,370D)Zhao,m,290,Zhao,m,290,Qian,f,350,Zhao,m,290參照答案:AC語言函數(shù)參數(shù)傳遞分為:1、值傳遞過程中,被調(diào)函數(shù)形參作為被調(diào)函數(shù)局部變量解決,即在內(nèi)存堆棧中開辟空間以存儲由主調(diào)函數(shù)放進(jìn)來實(shí)參值,從而成為了實(shí)參一種拷貝。值傳遞特點(diǎn)是被調(diào)函數(shù)對形參任何操作都是作為局部變量進(jìn)行,不會影響主調(diào)函數(shù)實(shí)參變量值。2、地址傳遞過程中,被調(diào)函數(shù)形參雖然也作為局部變量在堆棧中開辟了內(nèi)存空間,但是這時(shí)存儲是由主調(diào)函數(shù)放進(jìn)來實(shí)參變量地址。被調(diào)函數(shù)對形參任何操作都被解決成間接尋址,即通過堆棧中存儲地址訪問主調(diào)函數(shù)中實(shí)參變量。正由于如此,被調(diào)函數(shù)對形參做任何操作都影響了主調(diào)函數(shù)中實(shí)參變量。題設(shè)中,參數(shù)b是地址傳遞,因而會直接影響實(shí)參變量。a,c是值傳遞,傳遞是a,c拷貝,不會a,c實(shí)參產(chǎn)生影響,因而,調(diào)用函數(shù)返回,c沒有被修改,b被修改了。故答案為A選項(xiàng)。31、有如下程序#include<stdio.h>#defineSUB(x,y)(x)*(y)main(){inta=3,b=4;printf("%d\n",SUB(a++,b++));}程序運(yùn)營后輸出成果是A)15B)12C)16D)20參照答案:B#define命令是C語言中一種宏定義命令,標(biāo)記符普通使用大寫,為了區(qū)別其她標(biāo)記符,它用來將一種標(biāo)記符定義為一種字符串,該標(biāo)記符被稱為宏名,被定義字符串稱為替代文本。宏定義不進(jìn)行其她操作,僅僅只是替代標(biāo)記符。后置自增運(yùn)算:k++表達(dá)先運(yùn)算,后自加。意思是遇到k++了,先把當(dāng)前k值拿來參加運(yùn)算,背面再去管它自加。SUB(a++,b++)(a++)*(b++)3*4。故答案為B選項(xiàng)。32、有如下程序#include<stdio.h>main(){structcm{intx;inty;}a[2]={4,3,2,1};printf("%d\n",a[0].y/a[0].x*a[1].x);}程序運(yùn)營后輸出成果是A)1B)4C)0D)3參照答案:C由構(gòu)造體定義同步初始化可知,a[0].x=4,a[0].y=3,a[1].x=2,a[1].y=1,因而計(jì)算a[0].y/a[0].x*a[1].x=3/4*2=(3/4)*2=0*2=0,故答案為C選項(xiàng)。33、如下選項(xiàng)中編譯預(yù)解決命令行,對的是A)#defineE2.38B)##definePI_21.56C)#defineintINTD)#DEFINETRUE參照答案:A無參宏定義格式:#define標(biāo)記符字符串,標(biāo)記符與C語言規(guī)定相似,因而,可知選項(xiàng)B,多了#,選項(xiàng)C使用c語言核心字,選項(xiàng)D格式不對。因而答案為A選項(xiàng)。34、設(shè)有如下程序段structbook{floatprice;charlanguage;chartitle[20];}rec,*ptr;ptr=&rec;規(guī)定輸入字符串給構(gòu)造體變量rectitle成員,錯誤輸入語句是A)scanf("%s",ptr.title);B)scanf("%s",rec.title);C)scanf("%s",(*ptr).title);D)scanf("%s",ptr->title);參照答案:A"->"是指針特用,"."用于指定元素成員。ptr是指針,只能用->,因而選項(xiàng)A錯誤。*p是指定元素(rec)可以使用.運(yùn)算,因而選項(xiàng)D對的。選項(xiàng)B,rec.title代表數(shù)組title,同理選項(xiàng)C對的。答案為A選項(xiàng)。35、有如下程序#include<stdio.h>#include<string.h>structcomputer{charCPU[10];};main(){structcomputerpc1,pc2;strcpy(pc1.CPU,"3.2G");strcpy(pc2.CPU,"????");pc1=pc2;printf("%s\n",pc1.CPU);}程序運(yùn)營后輸出成果是A)?B)3.2GC)????D)?.2G參照答案:C二個(gè)類型相似構(gòu)造體,可以使用一種給另一種初始化,使它們相等。前提是右值構(gòu)造體變量所有成員所有初始化了。pc1=pc2,pc2成員值和pc1中相應(yīng)成員相等。因而pc1.CPU輸出????。答案為C選項(xiàng)。36、有如下程序#include<stdio.h

溫馨提示

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

評論

0/150

提交評論