版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
國家二級C語言機(jī)試(選擇題)模擬試卷4(共9套)(共240題)國家二級C語言機(jī)試(選擇題)模擬試卷第1套一、選擇題(本題共25題,每題1.0分,共25分。)1、設(shè)棧的存儲(chǔ)空間為S(1:m),初始狀態(tài)為top=m+1。經(jīng)過一系列入棧與退棧操作后,top=m?,F(xiàn)又在棧中退出一個(gè)元素后,棧頂指針top值為()。A、0B、m-1C、m+1D、產(chǎn)生??斟e(cuò)誤標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:棧的順序存儲(chǔ)空間為S(1:m),初始狀態(tài)top=m+1,所以這個(gè)棧是m在棧底(也可理解為開口向下的棧)。經(jīng)過一系列入棧與退棧操作后top=m,則棧中有1個(gè)元素,若現(xiàn)在又退出一個(gè)元素,那么棧頂指針下移一位,回到m+1的位置。2、C語言程序的模塊化通過以下哪個(gè)選項(xiàng)來實(shí)現(xiàn)A、變量B、程序行C、函數(shù)D、語句標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:用函數(shù)作為程序模塊以實(shí)現(xiàn)C程序的模塊化,程序有多個(gè)函數(shù)構(gòu)成,每個(gè)函數(shù)可以實(shí)現(xiàn)一個(gè)具體的功能,實(shí)現(xiàn)程序的模塊化設(shè)計(jì)。3、有以下程序:#includevoidfun(char(*P)[6]){int1;for(i=0;i<4;i++)printf(“%c”,P[i][i]);prinff(“\n”);}main(){charS[6][6]={.“ABCD”,“abcde”,“12345”,“FGHIJ”,“fghij”,“54321”};fun(s);}程序的運(yùn)行結(jié)果是()。A、AalFB、Ab3IC、ABCDD、fghij標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:函數(shù)fun的功能是輸出s[i][i],所以結(jié)果會(huì)輸出s[0][0]、s[1][1]、s[2][2],即Ab31。4、耦合性和內(nèi)聚性是對模塊獨(dú)立性度量的兩個(gè)標(biāo)準(zhǔn)。下列敘述中正確的是()。A、提高耦合性降低內(nèi)聚性有利于提高模塊的獨(dú)立性B、降低耦合性提高內(nèi)聚性有利于提高模塊的獨(dú)立性C、耦合性是指一個(gè)模塊內(nèi)部各個(gè)元素間彼此結(jié)合的緊密程度D、內(nèi)聚性是指模塊間互相連接的緊密程度標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:耦合性是反映模塊間互相連接的緊密程度,內(nèi)聚性是指一個(gè)模塊內(nèi)部各個(gè)元素間彼此接合的緊密程序。提高模塊的內(nèi)聚性,降低模塊的耦合性是有利于提高模塊的獨(dú)立性。5、以下選項(xiàng)中能用作數(shù)據(jù)常量的是()。A、115LB、0118C、1.5e1.5D、0115標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:A選項(xiàng)中115L表示115是長整型數(shù)據(jù),合法。B選項(xiàng)是八進(jìn)制常量的表示方法,但是在八進(jìn)制中不能含有數(shù)字8,所以B選項(xiàng)錯(cuò)誤。C選項(xiàng)中e后面應(yīng)該是整數(shù),而不能是小數(shù)1.5,所以C選項(xiàng)錯(cuò)誤。D選項(xiàng)中八進(jìn)制常量應(yīng)該是數(shù)字“O”開始,而不是字母“0”開始。6、結(jié)構(gòu)化程序設(shè)計(jì)中,下面對goto語句使用描述正確的是A、禁止使用goto語句B、使用goto語句程序效率高C、應(yīng)避免濫用goto語句D、goto語句確實(shí)一無是處標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:濫用goto語句確實(shí)有害,應(yīng)盡量避免:完全避免使用goto語句并非是明智的方法,有些地方使用goto語句會(huì)使程序流程更清楚、效率更高;爭論的焦點(diǎn)不應(yīng)該放在是否取消goto語句,而應(yīng)該放在用在什么程序結(jié)構(gòu)上。7、以下選項(xiàng)中不合法的標(biāo)識符是()。A、&aB、FORC、printD、_00標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:C語言中標(biāo)識符南字母、下劃線、數(shù)寧組成,且開頭必須是寧母或下劃線。另外,關(guān)鍵字不能作為標(biāo)識符。因?yàn)镃語言中區(qū)分大小寫,所以B選項(xiàng)中的“FOR”可以作為標(biāo)識符來用。A選項(xiàng)中含有非法字符&,所以其不合法。8、設(shè)一棵樹的度為3,其中沒有度為2的結(jié)點(diǎn),且葉子結(jié)點(diǎn)數(shù)為5。該樹中度為3的結(jié)點(diǎn)數(shù)為A、1B、2C、3D、不可能有這樣的樹標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:樹的度是指一棵樹中,最大的結(jié)點(diǎn)的度稱為樹的度。本題中樹的度為3,那么樹中最少有一個(gè)結(jié)點(diǎn)的度為3。而樹中沒有度為2的結(jié)點(diǎn),葉子結(jié)點(diǎn)數(shù)為5,度為1的結(jié)點(diǎn)下面只有一個(gè)葉子結(jié)點(diǎn)。因此,該樹中含2個(gè)度為3的結(jié)點(diǎn)滿足題目要求。9、當(dāng)變量c的值不為2、4.6時(shí),值為“真”的表達(dá)式是()。A、(c>=2&&c<=6)&&(c%21=1)B、(c==2)||(c==4)||(c==6)C、(c>=2&&c<=6)&&!(c%2)D、(c>=2&&c<=6)||(c!=3)||(c!=5)標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:邏輯或運(yùn)算符中只要有一個(gè)運(yùn)算量為真,結(jié)果就是真,當(dāng)c>=2&&c<=6條件不成立時(shí),c的值肯定不是2、3、4、5、6,所以c!=3與c!=5均成立,所以D選項(xiàng)的結(jié)果一定為真。10、下列條件語句中,輸出結(jié)果與其他語句不同的是()。A、if(a!=0)pfintf("%d\n",x);elsepfintf("%d\n",y);B、if(a==0)pfintf("%d\n",y);elseprintf("%d\n",x);C、if(a==0)pfintf("%d\n",x);elsepnnff("%d\n",y);D、if(a)pfintf("%d\n",x);elseprintf("%d\n",y);標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:A、B、D選項(xiàng)的含義均為:a的值如果為0,打印y的值,否則打印x的值。而C選項(xiàng)的含義是:a的值為0時(shí)打印x的值,不為0時(shí)打印y的值,與其他選項(xiàng)正好相反。11、正確的結(jié)構(gòu)體類型說明和變量定義是()。A、typedefstructf{intn;charc;}STR;STRt1,t2;B、structSTR;{intn;charC;};STRt1,t2;C、typedefstmctSTR;{intn=0;charc=’A’;}t1,t2;D、struct{intn;charc;}STR;STRt1,t2;標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:定義結(jié)構(gòu)體類型的一般形式為:struct結(jié)構(gòu)體名{成員列表};struct結(jié)構(gòu)體名后不能加“:”號。但定義完之后要在句末加分號,所以選項(xiàng)B、C有誤,選項(xiàng)D中定義無名稱的結(jié)構(gòu)體類型同時(shí)定義結(jié)構(gòu)體變量形式應(yīng)為“stmctt1,t2;”。選項(xiàng)A為用戶自定義類型,其為正確的定義形式。12、若有以下程序,則程序的輸出結(jié)果是#includemain(){charc1,c2;el=’C’+’8’-’3’;c2=’9’-’0’;printf("%c%d\n",c1,c2);}A、H9B、H’9’C、F’9’D、表達(dá)式不合法輸出無定值標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:字符常量允許進(jìn)行簡單盼算術(shù)運(yùn)算,則’C’+5表示H,而’9’-’0’則表示數(shù)值9。13、學(xué)生選修課程的關(guān)系模式為SC(S#,Sn,Sd,Sa,C#,G)(其屬性分別為學(xué)號、姓名、所在系、年齡、課程號和成績);C(C#,Cn,P#)(其屬性分別為課程號、課程名、先選課)。關(guān)系模式中包含對主屬性部分依賴的是A、S#→SdB、(S#,C#)→GC、C#→CnD、C#→P#標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:在關(guān)系模式SC(S#,Sn,Sd,Sa,C#,G)(其屬性分別為學(xué)號、姓名、所在系、年齡、課程號和成績)中,主鍵為(S#,C#)。則存在S#Sd,即學(xué)號就可以決定非主屬性Sd。所以非主屬性Sd部分依賴主鍵(S#,C#)中S#。所以選項(xiàng)A正確。14、下列敘述中正確的是A、數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余B、經(jīng)規(guī)范化后的數(shù)據(jù)庫系統(tǒng)避免了一切冗余C、數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù)D、數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的一致性是指數(shù)據(jù)類型一致標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:暫無解析15、若有定義語句:chars[10]="1234567\0\0";則strlen(s)的值是A、8B、7C、9D、10標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:字符串長度函數(shù)strlen(s)表示計(jì)算出以s為起始地址的字符串的長度,并作為函數(shù)值返回。這個(gè)長度值不包括串尾的結(jié)束標(biāo)志,’\0’。16、對于一個(gè)正常運(yùn)行的C程序,以下敘述中正確的是A、程序的執(zhí)行總是從程序的第一個(gè)函數(shù)開始,在main函數(shù)結(jié)束B、程序的執(zhí)行總是從main函數(shù)開始,在程序的最后一個(gè)函數(shù)中結(jié)束C、程序的執(zhí)行總是從程序的第一個(gè)函數(shù)開始,在程序的最后一個(gè)函數(shù)中結(jié)束D、程序的執(zhí)行總是從main函數(shù)開始標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:一個(gè)C語言源程序無論包括了多少函數(shù),在正常情況下總是從main函數(shù)開始執(zhí)行,從main函數(shù)結(jié)束。17、有以下程序#include<stdio.h>voidmain(){charb,c;inti;b=’a’;c=’A’;for(i=0;i<6;i++){if(i%2)putchar(i+b);elseputchar(i+c);}printf("\n");}程序運(yùn)行后的輸出結(jié)果是A、ABCDEFB、aBcDeFC、abcdefD、AbCdEf標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:循環(huán)變量i從0依次遞增到5,依次輸出字母A,b,C,d,E,f。18、若函數(shù)調(diào)用時(shí)的實(shí)參為變量時(shí),以下關(guān)于函數(shù)形參和實(shí)參的敘述中正確的是()。A、函數(shù)的形參和實(shí)參分別占用不同的存儲(chǔ)單元B、形參只是形式上的存在,不占用具體存儲(chǔ)單元C、同名的實(shí)參和形參占同一存儲(chǔ)單元D、函數(shù)的實(shí)參和其對應(yīng)的形參共占同一存儲(chǔ)單元標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:函數(shù)傳參過程中,其實(shí)是把實(shí)參的數(shù)據(jù)復(fù)制一份傳給形參,實(shí)參和形參都是局部變量,在程序運(yùn)行到相應(yīng)的定義語句的時(shí)候才分配存儲(chǔ)空間,所以兩者占用不同的存儲(chǔ)單元,所以答案選A。19、設(shè)有定義:inta;floatb;執(zhí)行scanf("%2d%f",&a,&b);語句時(shí),若從鍵盤輸入876543.0則a和b的值分別是A、876和543.0B、87和6.0C、87和543.0D、76和543.0標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:在輸入函數(shù)scanf的輸入格式符%2d%f中,2d表示輸入的數(shù)據(jù)的寬度為2,所以當(dāng)從鍵盤輸入876543.0<CR>時(shí),這時(shí)把輸入數(shù)字串的前兩位87賦給變量a,然后將緊接著將6按照格式控制符%f的形式賦給變量b,所以b的值為6.000000。20、若有定義語句:doublea,*p=&a;以下敘述中錯(cuò)誤的是A、定義語句中的*號是一個(gè)說明符B、定義語句中的P只能存放double類型變量的地址C、定義語句中*p=&a把變量a的地址作為初值賦給指針變量PD、定義語句中的*號是一個(gè)間址運(yùn)算符標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:在指針定義語句doublea,*p=&a中,指針變量p前面的*號,只是一個(gè)說明符,說明變量p是指針類型的變量。21、下面結(jié)構(gòu)體的定義語句中,錯(cuò)誤的是A、structord{intx;inty;intz;);structorda;B、structord{intx;inty;intz;)structorda;C、structord{intx;inty;intz;}a;D、stmct{intx;inty;intz;)a;標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:在選項(xiàng)B中,由于在定義完結(jié)構(gòu)體后缺少分號“;”,所以這是一條不完整的語句,因而是錯(cuò)誤的。22、下列函數(shù)的功能是voidfun(char*a,char*b){while((*b=*a)!=’\0’){a++;b++;}}A、使指針b指向a所指字符串B、將a所指字符串和b所指字符串進(jìn)行比較C、將a所指字符串賦給b所指空間D、檢查a和b所指字符串中是否有’\0’標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:在while語句的條件中是把字符*a的值賦給字符*b,然后再判斷字符*b的值是否等于字符串的結(jié)束字符(’\0’),當(dāng)不等于結(jié)束字符(’\0’)時(shí),把字符指針變量a,b分別加1,指它們的下一個(gè)字符,直到字符串a(chǎn)的結(jié)束。這樣程序執(zhí)行的結(jié)果就是把字符串a(chǎn)賦給了b所指的存儲(chǔ)空間。23、下列敘述中正確的是A、兩個(gè)連續(xù)的單引號(’’)是合法的字符常量B、可以對字符串進(jìn)行關(guān)系運(yùn)算C、兩個(gè)連續(xù)的雙引號("")是合法的字符串常量D、空字符串不占用內(nèi)存,其內(nèi)存空間大小是0標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:兩個(gè)連續(xù)的雙引號:"",是一個(gè)字符串常量,稱為“空串”。24、若有以下定義intx[10],*pt=x;則對x數(shù)組元素的正確引用是A、*(x+3)B、*&x[10]C、*(pt+10)D、pt+3標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:本題考查指針的調(diào)用。x代表x[10]數(shù)組的首地址指針,pt是指向x[10]數(shù)組的首地址的指針,即兩者指向同一內(nèi)存單元。*(x+3)等同于x[3]。25、下面關(guān)于位運(yùn)算符的敘述,正確的是()。A、&表示"按位與"的運(yùn)算B、#表示"按位異或"的運(yùn)算C、||表示"按位或"的運(yùn)算D、~表示"按位異或"的運(yùn)算標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:以#開頭的語句為編譯預(yù)處理命令行,||為邏輯或運(yùn)算符,~表示按位取反運(yùn)算符,答案選A。國家二級C語言機(jī)試(選擇題)模擬試卷第2套一、選擇題(本題共40題,每題1.0分,共40分。)1、數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是指A、存儲(chǔ)在外存中的數(shù)據(jù)B、數(shù)據(jù)所占的存儲(chǔ)空間量C、數(shù)據(jù)在計(jì)算機(jī)中的順序存儲(chǔ)方式D、數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的表示標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:在對數(shù)據(jù)進(jìn)行處理時(shí),各數(shù)據(jù)元素在計(jì)算機(jī)中的存儲(chǔ)關(guān)系,即為數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)。2、若有以下程序段doublex=5.16894;printf("%f\n",(int)(x*1000+0.5)/(double)1000);則程序段的輸出結(jié)果是A、5.175000B、5.169000C、5.170000D、5.168000標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:(int)(x*1000+0.5)/(double)1000表達(dá)式功能,保存數(shù)據(jù)x的后三何小數(shù),把第四四舍五入。3、sizeof(double)是A、一個(gè)雙精度型表達(dá)式B、一個(gè)整型表達(dá)式C、一個(gè)不合法的表達(dá)式D、一種函數(shù)調(diào)用標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:sizeof關(guān)鍵字為C語言的運(yùn)算符,用于測試()內(nèi)類型其變量所占內(nèi)存,表達(dá)式結(jié)果返回卜進(jìn)制整數(shù),因此為整型表達(dá)式,表明變量所占的內(nèi)存字節(jié)數(shù)。4、對長度為n的線性表作快速排序,在最壞情況下,比較次數(shù)為A、nB、n-1C、n(n-1)D、n(n-1)/2標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:假設(shè)線性表的長度為n,則在最壞情況下,冒泡排序需要經(jīng)過n/2遍的從前往后的掃描和n/2遍的從后往前的掃描,需要的比較次數(shù)為n(n-1)/2??焖倥判蚍ㄒ彩且环N互換類的排序方法,但由于它比冒泡排序法的速度快,因此,稱為快速排序法。5、設(shè)二叉樹的前序序列與中序序列均為ABCDEFGH,則該二叉樹的后序序列為A、HGFEDCBAB、ABCDEFGHC、ABCDHGFED、DCBAHGFE標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:前序遍歷(DLR)是二叉樹遍歷的一種,也叫做先根遍歷、先序遍歷、前序周游,可記做根芹右;中序遍歷(LDR)是二叉樹遍歷的一種,也叫做中根遍歷、中序周游,可記做左根右;后序遍歷(LRD)是二叉樹遍歷的一種,也叫做后根遍歷、后序周游,可記做左右根。根據(jù)題中前序和中序序列均為ABCDEFGH,可畫出二義樹,該二叉樹是一個(gè)子結(jié)點(diǎn)全部在右側(cè)二義樹,然后根據(jù)后序遍歷方法,可得出后序遍歷為HGFEDCBA。6、若有如下說明,且int類型占兩個(gè)字節(jié),則正確的敘述為()。structstfinta;intb[2];}a;A、結(jié)構(gòu)體變量a與結(jié)構(gòu)體成員a同名,定義是合法的B、程序只在執(zhí)行到該結(jié)構(gòu)體時(shí)才為結(jié)構(gòu)體st分配存儲(chǔ)單元C、程序運(yùn)行時(shí)為結(jié)構(gòu)體st分配8字節(jié)存儲(chǔ)單元D、類型名structst可以通過extern關(guān)鍵字提前引用標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:本題主要考查結(jié)構(gòu)體的用法:①結(jié)構(gòu)體變量a與結(jié)構(gòu)體成員a同名,定義合法;②在程序編譯的時(shí)候結(jié)構(gòu)的定義并不會(huì)使系統(tǒng)為該結(jié)構(gòu)分配內(nèi)存空間,只有在說明結(jié)構(gòu)變量時(shí)才分配內(nèi)存空間;③inta占2個(gè)字節(jié),intb[2]占4個(gè)字節(jié),共6個(gè):④類型名“structst”不可以通過extern關(guān)鍵字提前引用。7、在數(shù)據(jù)庫管理系統(tǒng)提供的數(shù)據(jù)語言中,負(fù)責(zé)數(shù)據(jù)模式定義的是()。A、數(shù)據(jù)定義語言B、數(shù)據(jù)管理語言C、數(shù)據(jù)操縱語言D、數(shù)據(jù)控制語言標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:在數(shù)據(jù)庫管理系統(tǒng)提供的數(shù)據(jù)語言中,數(shù)據(jù)定義語言負(fù)責(zé)數(shù)據(jù)模式定義的功能,答案選A。8、軟件系統(tǒng)總體結(jié)構(gòu)圖的作用是A、描述軟件系統(tǒng)結(jié)構(gòu)的圖形工具B、描述軟件系統(tǒng)的控制流C、描述軟件系統(tǒng)的數(shù)據(jù)流D、描述軟件系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:軟件系統(tǒng)總體結(jié)構(gòu)圖的作用是描述軟件系統(tǒng)結(jié)構(gòu)的圖形工具。9、下列敘述中錯(cuò)誤的是()。A、一個(gè)C語言程序只能實(shí)現(xiàn)一種算法B、C程序可以由多個(gè)程序文件組成C、C程序可以由一個(gè)或多個(gè)函數(shù)組成D、一個(gè)C函數(shù)可以單獨(dú)作為一個(gè)C程序文件存在標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:一個(gè)C程序可以有一個(gè)或多個(gè)程序文件,也可以有一個(gè)或多個(gè)函數(shù),所以一個(gè)C語言程序可以實(shí)現(xiàn)多種算法。答案選A。10、已定義以下函數(shù)intfun(int*P){return*P;}fun函數(shù)的返回值是()。A、一個(gè)整數(shù)B、不確定的值C、形參P中存放的值D、形參P的地址值標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:返回值為指針變量指向的數(shù)據(jù),該數(shù)據(jù)已被定義為整型,因此A選項(xiàng)正確。11、以下選項(xiàng)中,能用作用戶標(biāo)識符的是()。A、_0_B、8_8C、voidD、unsigned標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:考查用戶標(biāo)識符。C語言規(guī)定,標(biāo)識符由字母(A~Z,a~z)、數(shù)字(0~9)或者下劃線(_)組成,并且第一個(gè)字符必須為字母或者下劃線。用戶自定義的標(biāo)識符不能與關(guān)鍵字相同,而且盡量避免與預(yù)定義標(biāo)識符相同。選項(xiàng)B)不能以數(shù)字開始;選項(xiàng)C)、D)為C語言關(guān)鍵字,不能作為用戶標(biāo)識符。答案選A)。12、以下選項(xiàng)中合法的標(biāo)識符是A、1-1B、1_1C、_11D、1__標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:本題考查標(biāo)識符定義。合法標(biāo)識符的要求是由下劃線、英文大小寫字母和數(shù)字組成的字符串,且第一個(gè)字符必須是字母或下劃線。13、以下敘述中正確的是A、標(biāo)識符的長度不能任意長,最多只能包含16個(gè)字符B、語言中的關(guān)鍵字不能作變量名,但可以作為函數(shù)名C、用戶自定義的標(biāo)識符必須“見名知義”,如果隨意定義,則會(huì)出編譯錯(cuò)誤D、標(biāo)識符總是由字母、數(shù)字和下劃線組成,且第一個(gè)字符不得為數(shù)字標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:標(biāo)識符就是C語言中的變量名、函數(shù)名、數(shù)組名、文件名、類型名等。C語言合法標(biāo)識符的命名規(guī)則是:①標(biāo)識符由字母、數(shù)字和下劃線組成;②第一個(gè)字符必須為字母或下劃線;⑨大寫字母與小寫字母被認(rèn)為是兩個(gè)不同的字符;④C語言規(guī)定了一個(gè)標(biāo)識符允許的字符個(gè)數(shù),為32,超過的字符將不被識別。C語言的標(biāo)識符可分為以下3類:①關(guān)鍵字,不能用于為自定義標(biāo)識符命名。②預(yù)定義標(biāo)識符。③用戶標(biāo)識符。由用戶根據(jù)需要定義的標(biāo)識符稱為用戶標(biāo)識符,又稱自定義標(biāo)識符,一般用來給變量、函數(shù)、數(shù)組等命名,一般做到見名知義,但是沒有特殊規(guī)定。14、已知大寫字母A的ASCII碼是65,小寫字母a的ASCII碼是97。以下不能將變量c中的大寫字母轉(zhuǎn)換為對應(yīng)小寫字母的語句是A、c=(’A’+C)26-’a’B、c=C+32C、c=C-’A’+’a’D、c=(C一’A’)%26+’a’標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:由題意可知,小寫字符a和大寫字符A的ASCII代碼相差為32,所以選項(xiàng)C能將大寫字符C的ASCII代碼轉(zhuǎn)換為小寫字符c的ASCII代碼;選項(xiàng)D和C左側(cè)的表達(dá)式都是大寫字符C與大寫字符A的差與’a’的ASCII代碼的和就是小寫字符c的ASCII代碼。而選項(xiàng)A中應(yīng)該是加上’a’,而不是減去’a’。15、設(shè)文件指針fp已定義,執(zhí)行語句fp=fopen("file","w");后,下列針對文本文件file操作敘述的選項(xiàng)中正確的是()。A、只能寫不能讀B、寫操作結(jié)束后可以從頭開始讀C、可以在原有內(nèi)容后追加寫D、可以隨意讀和寫標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:考查文件操作函數(shù)fopen的基礎(chǔ)知識。以w方式打開文件時(shí)只能寫不能讀。16、讀取二進(jìn)制文件的函數(shù)調(diào)用形式為:fread(buffer,size,count,fp);,其中buffer代表的是()。A、一個(gè)內(nèi)存塊的字節(jié)數(shù)B、一個(gè)整型變量,代表待讀取的數(shù)據(jù)的字節(jié)數(shù)C、一個(gè)文件指針,指向待讀取的文件D、一個(gè)內(nèi)存塊的首地址,代表讀入數(shù)據(jù)存放的地址標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:fread(void*buffer,sizetsize,sizetcount,F(xiàn)ILE*stream)的功能是從一個(gè)文件流中讀數(shù)據(jù),讀取count個(gè)元素,每個(gè)元素size字節(jié),如果調(diào)用成功,返回count。buffer用于接收數(shù)據(jù)的內(nèi)存地址,大小至少是size*count字節(jié);size是單個(gè)元素的大小,單位是字節(jié);count是元素的個(gè)數(shù),每個(gè)元素是size字節(jié);stream是輸入流。17、以下能正確定義字符串的語句是A、charstr="\x43":B、charstr[]="\0";C、charstr=";D、charstr[]={’\064’};標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:字符串常量是用一對雙括號括起來的一串字符。它用字符數(shù)組來存放,不用一對大括號對括起來。18、設(shè)有表示學(xué)生選課的三張表,學(xué)生S(學(xué)號,姓名,性別,年齡,身份證號),課程C(課號,課名),選課SC(學(xué)號,課號,成績),則表SC的關(guān)鍵字(鍵或碼)為A、課號,成績B、學(xué)號,成績C、學(xué)號,課號D、學(xué)號,姓名,成績標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:關(guān)鍵字是指屬性或?qū)傩缘慕M合,其值能夠唯一地標(biāo)識一個(gè)元組,而在SC中學(xué)號和課號的組合可以對元組進(jìn)行唯一的標(biāo)識。19、C語言中double類型數(shù)據(jù)占字節(jié)數(shù)為A、4B、12C、8D、16標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:double類型所占字節(jié)為8。20、以下函數(shù)按每行8個(gè)輸出數(shù)組中的數(shù)據(jù):voidfun(int*w,intn){inti;for(i=0;iA、if(i%8==0)printf("\n");B、if(i/8==0)continue;C、if(i/8==0)printf("\n");D、if(i%8==0)continue;標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:本題考查判斷語句與循環(huán)語句。欲使每行輸出8個(gè)數(shù)據(jù),則必然使用取余運(yùn)算,當(dāng)i%8==0時(shí)先輸出一個(gè)換行符再輸出字符。選項(xiàng)D中,continue語句的作用是停止執(zhí)行本次循環(huán)位于continue后面的語句,而進(jìn)入下一次循環(huán)。21、有以下程序#includevoidmain(){intc=0,k;for(k=1;k<3;k++)switch(k){default:c+=k;case2:c++;break;case4:c+=2;break;}printf("%d\n",c);}A、9B、7C、5D、3標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:在這段程序中,整型變量c的初始值賦為0,在第一次執(zhí)行for循環(huán)語句時(shí),因?yàn)榇藭r(shí)變量k的值等于1,所以在switch語句中首先執(zhí)行default語句,給變量c的值加1,因?yàn)樵赿efault語句后面沒有break語句,所以就會(huì)接著執(zhí)行case2這條語句,再給變量c的值加1,其值變?yōu)?,這時(shí)退出switch語句塊,進(jìn)入第二次for循環(huán),此時(shí)k的值等于2,就會(huì)執(zhí)行switch語句塊中的case2這條語句,再給變量c的值加1,這時(shí)變量c的值就是3,此時(shí)退出switch語句塊,循環(huán)變量k的值加1,成為3,此時(shí)已不再滿足循環(huán)條件,執(zhí)行程序中的最后一條語句,把變量c的值在屏幕上輸出。22、有以下程序#include#includevoidfun(chars[][10],intn){chart;inti,j;for(i=0;is[j][0]){t=s[i][0];s[i][0]=s[j][0];s[j][0]=t;}}main(){charss[5][10]={"bcc","bbcc","xy","aaaacc","aabcc");fun(ss,5);printf("%s,%s\n",ss[0],ss[4]};}程序的運(yùn)行結(jié)果是A、aaaacc,xyB、bcc,aabccC、xy,aaaaccD、aabcc,bcc標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:函數(shù)fun(chars[][10],intn)通過兩重for循環(huán)語句,比較二維字符數(shù)組s[][10]的每個(gè)字符串的首字符大小,如果前一個(gè)字符串首字符大于后一個(gè)字符串的首字符,則交換這兩個(gè)字符串的首字符。在豐函數(shù)中,語句fun(ss,5)的作用是對二維字符數(shù)組ss[5][10]的5個(gè)字符串的首字符進(jìn)行從小到大的排序,不影響各個(gè)字符串另外的字符。所以排序結(jié)束后,5個(gè)字符串的第一個(gè)字符依次變?yōu)閍、a、b、b和x;最后輸出第1個(gè)和第4個(gè)字符串。23、若有以下程序,則程序的輸出結(jié)果是#ineludemain(){inta=0,b=0,c=0;c=(a-=++a),(a+=b,b+=4);printf("%d,%d,%d\n",a,b,c);)A、0,4,4B、1,4,1C、0,4,0D、1,4,4標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:表達(dá)式c=(a-=++a),(a+=b,b+=4)相當(dāng)于逗號表達(dá)式,首先計(jì)算c=(a-=++a),其中(a-=++a)等價(jià)于a=a-(++a),得到a的值0,c的值為0,在計(jì)算(a+=b,b+=4)時(shí),a和b的初值為0,計(jì)算以后,a為0,b為4。24、有以下程序#includeintfun(){staticintx=1;x*=2:returnx;)main(){inti,s=1;for(i=1;i<=3;i++)s*=fun();pfintf("%d\n",s);}程序運(yùn)行后的輸出結(jié)果是A、0B、10C、30D、64標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:本題考查了靜態(tài)局部變量,該局部變量的值在函數(shù)調(diào)用結(jié)束后如果不消失而保留原值。函數(shù)fun的功能返回2的乘方,主函數(shù)fun函數(shù)調(diào)用3次,因此第一次s累乘2,第二次累乘4,第三次累乘8,即為2*4*8,值為64。25、有以下程序fun(intx)main(){intp;{if(x==0||x==1)return(3);printf("%d\n",fun(7));p=x-fun(x-2);}returnp;}執(zhí)行后的輸出結(jié)果是A、3B、7C、0D、2標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:因?yàn)樵诤瘮?shù)fun(intx)中,如果參數(shù)x等于0或等于1時(shí),返回值為“3”。否則“p=x-fun(x-2)”這是一個(gè)遞歸函數(shù)t所以在主函數(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。26、以下敘述中正確的是A、對于變量而言,“定義”和“說明”這兩個(gè)詞實(shí)際上是同一個(gè)意思B、在復(fù)合語句中不能定義變量C、全局變量的存儲(chǔ)類別可以是靜態(tài)類D、函數(shù)的形式參數(shù)不屬于局部變量標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:用static說明符說明全局變量時(shí),此變量可稱作靜態(tài)全局變量。靜態(tài)全局變量只限于本編譯單位使用,不能被其他編譯單位所引用。在一個(gè)函數(shù)內(nèi)部定義的變量(包括形參)是局部變量,它只在本函數(shù)范圍內(nèi)有效。不同函數(shù)中可以使用相同名字的局部變量,它們代表不同的對象,互不影響。在函數(shù)內(nèi)部復(fù)合語句中也可以定義變量,這些變量都是局部變量,只在本復(fù)合語句中有效。27、以下數(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知識點(diǎn)解析:二維數(shù)組的初始化有以下幾種形式:①分行進(jìn)行初始化;②不分行的初始化;③部分?jǐn)?shù)組元素初始化;④省略第一維的定義,不省略第二維的定義。在選項(xiàng)A中賦值號左邊定義了一個(gè)3行2列的二維數(shù)組,而右邊用2行3列的數(shù)字進(jìn)行賦初值。所以出現(xiàn)了邊界的越界溢出而出錯(cuò)。28、有以下程序#include<stdio.h>#defineN4voidfun(inta[][N],intb[]){inti;for(i=0;i<N;i++)b[i]=a[i][i]-a[i][N-1-i];}voidmain(){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")A、-12,-3,0,0,B、-3,-1,1,3,C、0,1,2,3,D、-3,-3,-3,-3,標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:fun函數(shù)的功能足求出二維數(shù)組a中第i行第i個(gè)元素與第N-1-i元素的差,賦給b[i]。在主函數(shù)中,把實(shí)參二維數(shù)組x和一維數(shù)組y傳遞給形參a和b,最后輸出一維數(shù)組y中元素的值。29、若有走義語句:doublex[5]={1.0,2.0,3.o,4.0,5.0),*p=x;則錯(cuò)誤引用x數(shù)組元素的是A、*pB、x[5]C、*(p+1)D、*x標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:本題考查數(shù)組和指向數(shù)組的指針。x是一個(gè)一維double類型的數(shù)組,長度為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]的值。30、有以下程序#includeinta=1,b=2;voidfun1(inta,intb){printf("%d%d",a,b);}voidfun2(){a=3;b=4;}main(){fun1(5,6);fun2();printf("%d%d\n",a,b);}程序運(yùn)行后的輸出結(jié)果是()。A、5634B、3456C、1256D、5612標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:在一個(gè)源文件中如果外部變量和局部變量同名,則在該局部變量的作用域內(nèi),該外部變量會(huì)被"屏蔽",所以函數(shù)fun1()輸出的為局部變量a、b的值:56;fun2()改變的是全局變量a、b的值,輸出結(jié)果為34,答案選A。31、有如下程序#includevoidconvert(charch){if(ch<’D’)convert(ch+1);printf("%c",ch);}main(){convert(’A’);printf("\n");}程序運(yùn)行后的輸出結(jié)果是()。A、DCBAB、ABCDC、AD、ABCDDCBA標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:函數(shù)conver()的作用是輸出ASCII碼在字母′D′到字母ch之間的字符,答案選A)。32、有以下程序#include#includestructA{inta;charb[10];doublec;};voidf(structAt);main(){structAa={1001,"ZhangDa",1098.0};f(a);printf("%d,%s,%6.1f\n",a.a(chǎn),a.b,a.c);}voidf(structAt){t.a(chǎn)=1002;strcpy(t.b,"ChangRong");t.c=1202.0;}程序運(yùn)行后的輸出結(jié)果是A、1002,ChangRong,1202.0B、1001,ChangRong,1098.0C、1001,ZhangDa,1098.0D、1002,ZhangDa,1202.0標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:本題主要考查是的函數(shù)調(diào)用時(shí)參數(shù)之間的傳遞問題。在C語言中參數(shù)之間的傳遞是傳值,也就是把實(shí)參的值復(fù)制一份傳遞給形參,而實(shí)參的值不發(fā)生變化。所以對于本題來說,在主函數(shù)中執(zhí)行f(a),把結(jié)構(gòu)體變量a的值復(fù)制一份傳遞給形參變量t,而實(shí)參變量a的值保持不變。33、若有以下程序#includeint*f(int*s,int*t){intk;if(*s<*t){k=*s;*s=*t;*t=k;}returns;}main(){inti=3,j=5,*p=&i,*q=&j,*r;r=f(p,q);printf("%d,%d,%d,%d,%d\n",i,j,*p,*q,*r);}則程序的輸出結(jié)果是()。A、5,3,5,3,5B、3,5,5,3,5C、3,5,3,5,5D、5,3,3,5,5標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:考查指針與函數(shù)。該函數(shù)進(jìn)行的是地址傳參,形參和實(shí)參指向的變量的值保持一致。函數(shù)f()中,如果(*s<*t)則將指針s、t中指向的變量的數(shù)據(jù)進(jìn)行交換,s指向的地址中存放的是值較大的數(shù)據(jù)。函數(shù)調(diào)用結(jié)束后,p、q指向的值發(fā)生了改變,r和p的指向保持一致,所以答案選A。34、有以下程序#include<stdio.h>main()voidfun(char*c,intd){charb=’a’,a=’A’;{*c=*c+1;d=d+1;fun(&b,a);printf("%c,%c\n",b,a);printf("%c,%c,",*c,d);}}程序運(yùn)行后的輸出結(jié)果是A、b,B,b,AB、b,B,B,AC、a,B,B,aD、a,B,a,B標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:本題中fun函數(shù)的參數(shù)傳遞方式,形參c是傳地址,形參d是傳值,所以在主函數(shù)中,執(zhí)行脅時(shí),把變量b的地址傳給了c,把a(bǔ)的值傳遞給了d,經(jīng)過運(yùn)算,輸出的值為b.B。在主函數(shù)的輸出語句中,輸出變量b的值為b,變量a的值為A。35、有以下程序段TypedefstructNODE{inthum;structNODE*next;}OLD;以下敘述中正確的是A、以上的說明形式非法B、NODE是一個(gè)結(jié)構(gòu)體類型C、OLD是一個(gè)結(jié)構(gòu)型類型D、OLD是一個(gè)結(jié)構(gòu)變量標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:本題考查結(jié)構(gòu)體和typedf類型定義。本題的聲明代碼相當(dāng)于兩部分,首先定義structNODE,然后是一typedef定義OLD類型,因此OLD是結(jié)構(gòu)體類型。選項(xiàng)C正確,其他選項(xiàng)錯(cuò)誤。36、以下敘述中錯(cuò)誤的是A、函數(shù)的返回值類型不能是結(jié)構(gòu)體類型,只能是簡單類型B、只要類型相同,結(jié)構(gòu)體變量之間可以整體賦值C、可以通過指針變量來訪問結(jié)構(gòu)體變量的任何成員D、函數(shù)可以返回指向結(jié)構(gòu)體變量的指針標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:函數(shù)的返回值類型可以是結(jié)構(gòu)體類型。結(jié)構(gòu)體變量之間可以相互復(fù)制。37、在關(guān)系模型中,每一個(gè)二維表稱為一個(gè)A、關(guān)系B、屬性C、元組D、主碼(鍵)標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:關(guān)系模型采用二維表來表示,即每個(gè)二維表稱為一個(gè)關(guān)系。38、有三個(gè)關(guān)系R,S和T如下:則由關(guān)系R和S得到關(guān)系T的操作是A、選擇B、差C、交D、并標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:關(guān)系T中的元素與關(guān)系R和關(guān)系S中不同元素的總和,因此為并操作。39、下列與隊(duì)列結(jié)構(gòu)有關(guān)聯(lián)的是A、函數(shù)的遞歸調(diào)用B、數(shù)組元素的引用C、多重循環(huán)的執(zhí)行D、先到先服務(wù)的作業(yè)調(diào)度標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:隊(duì)列的修改是依先進(jìn)先出的原則進(jìn)行的,D正確。40、以下敘述中正確的是A、復(fù)合語句在語法上包含多條語句,其中不能定義局部變量B、花括號對{}只能用來表示函數(shù)的開頭和結(jié)尾,不能用于其他目的C、空語句就是指程序中的空行D、當(dāng)用scanf從鍵盤輸入數(shù)據(jù)時(shí),每行數(shù)據(jù)在沒按下回車鍵(Enter鍵)前,可以任意修改標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:復(fù)合語句可以包含多條語句,在其中可以定義局部變量,所以A錯(cuò)誤?;ɡㄌ枌}不僅用來表示函數(shù)的開頭和結(jié)尾,也可以用于表示復(fù)合語句,所以B錯(cuò)誤。C語言中的語句必須以分號";"結(jié)束,所以空語句表示為";",不是空行,所以C錯(cuò)誤。國家二級C語言機(jī)試(選擇題)模擬試卷第3套一、選擇題(本題共25題,每題1.0分,共25分。)1、深度為5的完全二叉樹的結(jié)點(diǎn)數(shù)不可能是()。A、15B、16C、17D、18標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:對于滿二叉樹,葉子結(jié)點(diǎn)的數(shù)目等于2n-1,n為深度,這里就是24=16。2、下列敘述中正確的是()。A、二分查找法只適用于順序存儲(chǔ)的有序線性表B、二分查找法適用于任何存儲(chǔ)結(jié)構(gòu)的有序線性表C、二分查找法適用于有序循環(huán)鏈表D、二分查找法適用于有序雙向鏈表標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:二分查找法(又稱對分查找法)只適用于順序存儲(chǔ)的有序表。在此所說的有序表是指線性表的中元素按值非遞減排列(即從小到大,但允許相鄰元素值相等)。3、以下程序運(yùn)行后的輸出結(jié)果是()。#include<stdio.h>main(){inti=0,j=0,k=0,x=35;if(i)x--;elseif(j);if(k)x=3;elsex=4;prinff("%d\n",x);}A、4B、34C、3D、35標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:本題是兩個(gè)并列的if語句。當(dāng)inti=0;j=0,k=0,x=35時(shí),i的邏輯值為0,故第一個(gè)if語句的條件為假,執(zhí)行else操作。又因j=0,故第二條if語句if(j)的條件仍為假,不執(zhí)行任何操作。接著順序執(zhí)行至if(k)語句,由于k=0,此if語句的條件仍為假,執(zhí)行其后的else語句,x=4,故最后x的值為4。4、設(shè)某棵樹的度為3,其中度為3、2、1的結(jié)點(diǎn)個(gè)數(shù)分別為3、0、4。則該樹中的葉子結(jié)點(diǎn)數(shù)為A、7B、8C、6D、不可能有這樣的樹標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:樹的度是指一棵樹中,最大的結(jié)點(diǎn)的度稱為“樹的度”。根據(jù)題目可知本樹中沒有度為2的結(jié)點(diǎn)。樹的總結(jié)點(diǎn)=(度1*個(gè)數(shù)+度2*個(gè)數(shù)…)+1,這里我們設(shè)總結(jié)點(diǎn)數(shù)為n,那么n=3*3+2*0+1*4+1=14。樹的葉子結(jié)點(diǎn)數(shù)等于總結(jié)點(diǎn)減去所有度不為0的結(jié)點(diǎn),也就是14.3-4=7。5、下列排序方法中,最壞情況下比較次數(shù)最少的是A、冒泡排序B、簡單選擇排序C、直接插入排序D、堆排序標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:冒泡排序、簡單選擇排序和直接插入排序法在最壞的情況下比較次數(shù)為:n(n-1)/2。而堆排序法在最壞的情況下需要比較的次數(shù)為O(nlog2n)。其中堆排序的比較次數(shù)最少。6、表達(dá)式3.6-5/2+1.2+5%2的值是A、4.8B、3.3C、3.8D、4.3標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:表達(dá)式的計(jì)算過程為:3.6-5/2+1.2+5%2=3.6.2+1.2+1=3.8。此題要注意5/2的結(jié)果是2,而不2.5,因?yàn)槌ㄟ\(yùn)算符兩邊的數(shù)值類型均為整型,故運(yùn)算結(jié)果的數(shù)值類型也被認(rèn)定為整型。7、下列選項(xiàng)中不符合良好程序設(shè)計(jì)風(fēng)格的是A、源程序要文檔化B、數(shù)據(jù)說明的次序要規(guī)范化C、避免濫用goto語句D、模塊設(shè)計(jì)要保證高耦合、高內(nèi)聚標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:一般來講,程序設(shè)計(jì)風(fēng)格是指編寫程序時(shí)所表現(xiàn)出的特點(diǎn)、習(xí)慣和邏輯思路。程序設(shè)計(jì)風(fēng)格總體而言應(yīng)該強(qiáng)調(diào)簡單和清晰,程序必須是可以理解的??梢哉J(rèn)為,著名的“清晰第一、效率第二”的論點(diǎn)已成為當(dāng)今主導(dǎo)的程序設(shè)計(jì)風(fēng)格。良好的程序設(shè)計(jì)風(fēng)格主要應(yīng)注重和考慮下列幾個(gè)因素:①源程序文檔化,包括下列三個(gè)方面:A)符號的命名應(yīng)具有一定的含義;B)正確的注釋能夠幫助讀者理解程序;C)視覺組織,可以在程序中利用空格、空行、縮進(jìn)等技巧使程序?qū)哟吻逦?。②?shù)據(jù)說明的方法,包括下列三個(gè)方面:A)數(shù)據(jù)說明的次序規(guī)范化;B)說明語句中變量安排有序化;C)使用注釋來說明復(fù)雜數(shù)據(jù)的結(jié)構(gòu)。③語句的結(jié)構(gòu)應(yīng)該簡單直接,不應(yīng)該為提高效率而把語句復(fù)雜化。④輸入和輸出方式和風(fēng)格應(yīng)盡可能方便用戶的使用。8、以下關(guān)于邏輯運(yùn)算符兩側(cè)運(yùn)算對象的敘述中正確的是A、只能是整數(shù)0或非0整數(shù)B、可以是結(jié)構(gòu)體類型的數(shù)據(jù)C、可以是任意合法的表達(dá)式D、只能是整數(shù)0或1標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:邏輯運(yùn)算符兩側(cè)的運(yùn)算對象叮以是任意合法的表達(dá)式。邏輯表達(dá)式的運(yùn)算結(jié)果或者為1(“真”),或者為0(“假”)。9、有以下程序main(){chara,b,c,d;Scanf("%C%c",&a,&b);c=getchar();d=getchar();printf("%c%c%c%c\n",a,b,c,d);}當(dāng)執(zhí)行程序時(shí),按下列方式輸入數(shù)據(jù)(從第1列開始,代表回車,注意:回車也是一個(gè)字符)1234則輸出結(jié)果是A、12B、1234C、123D、1234標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:scanf和getchar函數(shù)分別從鍵盤上讀入一個(gè)字符,因此輸入12空格34,則變量a中存放的為1,b中存放2,c中存放空格,d中存放3。10、不合法的C語言常量是()。A、3,141B、’314’C、314D、’\x7G’’標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:選項(xiàng)A錯(cuò)誤,多了逗號;選項(xiàng)B是字符常量;選項(xiàng)C是整型常量;選項(xiàng)D是字符常量。11、有以下函數(shù):intaaa(char*s){char*t=s:while(*t++);t一一:return(t—s);}以下關(guān)于aalt函數(shù)功能敘述正確的是()。A、將串s復(fù)制到串tB、比較兩個(gè)串的大小C、求字符串s的長度D、求字符串s所占字節(jié)數(shù)標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:本題重點(diǎn)考查的知識點(diǎn)是while循環(huán)語句的應(yīng)用。aaa.()函數(shù)中,首先定義了一個(gè)字符指針t指向形參s,然后通過一個(gè)while循環(huán)讓指針t不斷遞增,直到t指向字符串結(jié)束標(biāo)識處。當(dāng)t指向結(jié)束標(biāo)識處時(shí),由了后綴++運(yùn)算符的原因,它還會(huì)被再遞增1,所以接下來的t一語句讓它回到束標(biāo)識處。最后返回t—s,s還是指向字符串第一個(gè)字符處,而t指向了字符串結(jié)尾,故返回值為字符串的長度值,因此C選項(xiàng)正確。12、若有以下程序:#include<stdio.h>voidfun(inta[],intn){inti,j,t;for(i=1;i<n;i+=2)for(j=i+2;j<n;j+=2)if(a[i]>a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){intc[10]={10,9,8,7,6,5,4,3,2,1},i;fun(c,10);for(i=0;i<10;i++)printf(″%d,″,c[i]);printf(″\n″);}則程序的輸出結(jié)果是()。A、1,10,3,8,5,6,7,4,9,2,B、10,9,8,7,6,5,4,3,2,1,C、2,9,4,7,6,5,8,3,10,1,D、10,1,8,3,6,5,4,7,2,9,標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:該題首先對一維數(shù)組進(jìn)行初始化,c[0]到c[9]依次賦值為10到1。fun(c,10);語句調(diào)用fun函數(shù),fun函數(shù)的功能是將一維數(shù)組偶數(shù)位元素的數(shù)值由小到大排序,最后將排好序的新的一維數(shù)組進(jìn)行輸出、故D選項(xiàng)正確。13、若有代數(shù)式(其中e僅代表自然對數(shù)的底數(shù),不是變量),則以下能夠正確表示該代數(shù)式的C語言表達(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知識點(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ù)的絕對值。D選項(xiàng)中pow(x,n)參數(shù)順序錯(cuò)誤。14、下面選項(xiàng)中合法的字符常量是A、XB、’abc’C、’X’D、’\’標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:在程序中用單引號把一個(gè)字符括起來作為字符常量。但是為了表示字符“\”要用兩個(gè)“\\”表示一個(gè)反斜杠。15、有以下函數(shù):intfun(char*x,char*y){intn=0;while((*x==*y)&&*x!=’\0’){x++;y++;n++:}returnn:}函數(shù)的功能是()。A、將y所指字符串賦給x所指存儲(chǔ)空間B、查找x和y所指字符串中是否有’\0’C、統(tǒng)計(jì)x和y所指字符串中最前面連續(xù)相同的字符個(gè)數(shù)D、統(tǒng)計(jì)x和y所指字符串中相同的字符個(gè)數(shù)標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:本題中由循環(huán)條件可知,遇到’\0’或x與y所指的字符的值不等中的一個(gè)條件時(shí)就結(jié)束,所以功能是統(tǒng)計(jì)x和y所指字符串中最前面連續(xù)相同的字符個(gè)數(shù)。16、設(shè)有定義:intk=1,m=2;floatf=7;,則以下選項(xiàng)中錯(cuò)誤的表達(dá)式是A、k=k>=kB、-k++C、k%int(0D、k>=f=m標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:本題考查了賦值表達(dá)式,在賦值表達(dá)式中,等號的左邊必須是變量,等號右邊可以是變量、表達(dá)式或者常量。選項(xiàng)A)是一個(gè)賦值表達(dá)式;選項(xiàng)B)是一個(gè)表達(dá)式:選項(xiàng)C)是計(jì)算余數(shù)表達(dá)式;選項(xiàng)D)錯(cuò)誤,等號的左邊不是變量。17、以下選項(xiàng)中不能作為c語言合法常量的是A、’cd’B、0.1e+6C、\aD、’\011’標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:常量指的是在程序的運(yùn)行過程中,其值不能被改變的量。在C語言中,包括整型常量、實(shí)型常量、字符常量和字符串常量等類型。選項(xiàng)B)0.1e+6是用指數(shù)形式表示的實(shí)型常量。在C語言中,用以“e”或“E”后一個(gè)整數(shù)來表示以10為底的冪數(shù)。以用這種形式表示實(shí)型常量時(shí)要注意C語言的語法規(guī)定,字母e或E之前必須要有數(shù)字,且e或E后面的指數(shù)必須為整數(shù),并且在字母e或E的前后以及數(shù)字之間不得插入空格。選項(xiàng)C)中用雙引號括起來表示的字符串“\a”。選項(xiàng)D)中’\011’表示用單引號括起來的轉(zhuǎn)義字符八制進(jìn)數(shù)011。選項(xiàng)A)表示的字符常量是非法的,在用單引號表示的字符常量中,只能包含一個(gè)字符,而選項(xiàng)A)中包含兩個(gè)字符。18、以下敘述中正確的是A、由&&構(gòu)成的邏輯表達(dá)式與由||構(gòu)成的邏輯表達(dá)式都有“短路”現(xiàn)象B、C語言的關(guān)系表達(dá)式:0<xC、邏輯“非”(即運(yùn)算符!)的運(yùn)算級別是最低的D、邏輯“或”(即運(yùn)算符||)的運(yùn)算級別比算術(shù)運(yùn)算要高標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:邏輯表達(dá)式的運(yùn)算比較復(fù)雜,有短路現(xiàn)象,也就是首先計(jì)算“邏輯與”或者“邏輯或”運(yùn)算的第一個(gè)運(yùn)算量的值,根據(jù)表達(dá)式的值決定是否進(jìn)行第二個(gè)量的值的計(jì)算?!斑壿嬇c”和“邏輯或”運(yùn)算低于關(guān)系運(yùn)算和算術(shù)運(yùn)算。但是“邏輯非”運(yùn)算卻高于算術(shù)運(yùn)算。19、有以下程序#includemain(){inta=0,b=0;/*給a賦值a=10;b=20;給b賦值*/printf("a+b=%d\n",a+b);/*輸出計(jì)算結(jié)果*/}程序運(yùn)行后的輸出結(jié)果是A、出錯(cuò)B、a+b=30C、a+b=10D、a+b=0標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:注釋語句可以在一行也可以在多行,用/*……*/或//表示,。它不參與程序的運(yùn)行,所以a與b的值仍然為0,所以打印的結(jié)果為a+b=0。20、有以下程序#includemain(){inti=1,k=0;for(;i<6;){switch(i%3){case0:k++;case1:k++;break;case2:k++;continue;}i+=1;}printf("%d\n",k);}程序的運(yùn)行情況是()。A、形成無限循環(huán)B、輸出6C、輸出5D、輸出4標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:break語句用于循環(huán)體,可以跳出當(dāng)前層循環(huán),continue語句的作用則是跳過當(dāng)前循環(huán)層余下未執(zhí)行的語句,繼續(xù)執(zhí)行下一次循環(huán)。在該程序中當(dāng)i為2的時(shí)候執(zhí)行語句"case2:k++;continue;"跳過了i自加語句"i+=1;",所以i值不再變化,程序陷入死循環(huán),答案選A。21、有下列程序:inta=4;intf(intn){intt=0;staticinta=5;if(n%2){inta=6;t+=a++;}else{inta=7;t+=a++;}returnt+a++;}main(){ints=a,i=0;for(;i<2;i++)s+=f(i);printf("%d\n",s);}程序運(yùn)行后的輸出結(jié)果是A、28B、24C、32D、36標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:程序中定義了全局整型變量a=4。在intf(intn)函數(shù)中定義了局部靜態(tài)整型變量并進(jìn)行了初始化即staticinta=5。在intf(intn)函數(shù)中對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)語句,而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++;這兩條語句,這時(shí)t=6,a=6(靜態(tài)局部變量第一次循環(huán)后其值加1值不釋放,執(zhí)行第二次循環(huán)量,其值仍有效),所以f(1)的返回值等于12。再在主函數(shù)中執(zhí)行s+=f(1)語句,即16+12=28。22、有以下程序#includeintfun1(doublea){return(int)(a*=a);}intfun2(doublex,doubley){doublea=0,b=0;a=fun1(x);b=fun1(y);return(int)(a+b);}main(){doublew;w=fun2(1.1,2.0);printf("%4.2f",w);}程序執(zhí)行后輸出結(jié)果是()。A、5.00B、5C、5.21D、0.0標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:考查函數(shù)的嵌套調(diào)用。w=fun2(1.1,2.0)=(int)(a+b)=(int)(fun1(1.1)+fun1(2.0))=(int)(1.1*1.1+2.0*2.0)=5,所以答案選A。23、若變量已正確定義,有以下程序段i=0;doprintf("%d,",i);while(i++);printf("%d\n",i);其輸出結(jié)果是A、0,0B、1,1C、0,1D、程序進(jìn)入無限循環(huán)標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:do…while循環(huán)的執(zhí)行過程如下:①執(zhí)行do后面的循環(huán)體中的語句。②計(jì)算while后一對圓括號中表達(dá)式的值。當(dāng)值為非0時(shí),轉(zhuǎn)去執(zhí)行步驟①;當(dāng)值為0時(shí),執(zhí)行步驟③。③退出do…while循環(huán)。對于本題變量i的初始值等于“0”,接著執(zhí)行do后面的循環(huán)體中的語句,輸出變量i的值0。再判斷while后面括號中表達(dá)式i++的值,其值為0,所以循環(huán)結(jié)束。此時(shí)變量i的值經(jīng)過自加已經(jīng)變?yōu)?,所以再次輸出i的值“1”。24、有以下程序voidfun(char*s){chara[10];main(){char*p="PROGRAM";strcpy(a,"STRING");fun(p);s=a;}printf("%s\n",p);}程序運(yùn)行后的輸出結(jié)果是(此處□代表空格)A、STRING□□□□B、PROGRAMC、STRING□□□D、STRING標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:函數(shù)fun的主要功能是把字符串"STRING",存放到字符數(shù)組a中,s指向該字符串,函數(shù)調(diào)用結(jié)束以后,釋放s和a指向的空間。主函數(shù)調(diào)用fun(p),并不能更改D的值,因此p的指向沒有改變。25、C語言主要是借助以下哪種手段來實(shí)現(xiàn)程序模塊化A、定義函數(shù)B、定義常量和外部變量C、使用豐富的數(shù)據(jù)類型D、使用三種基本結(jié)構(gòu)語句標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:C語言程序的模塊化通過函數(shù)來體現(xiàn),所以選擇A。國家二級C語言機(jī)試(選擇題)模擬試卷第4套一、選擇題(本題共25題,每題1.0分,共25分。)1、下列敘述中正確的是A、循環(huán)隊(duì)列是隊(duì)列的一種鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)B、循環(huán)隊(duì)列是隊(duì)列的一種順序存儲(chǔ)結(jié)構(gòu)C、循環(huán)隊(duì)列是非線性結(jié)構(gòu)D、循環(huán)隊(duì)列是一種邏輯結(jié)構(gòu)標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:本題主要考查循環(huán)隊(duì)列的概念,循環(huán)隊(duì)列作為隊(duì)列的一種也應(yīng)該是線性結(jié)構(gòu)。隊(duì)列是一種邏輯結(jié)構(gòu),而循環(huán)隊(duì)列是一種順序存儲(chǔ)結(jié)構(gòu)的隊(duì)列。2、下列敘述中正確的是A、線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)與順序存儲(chǔ)結(jié)構(gòu)所需要的存儲(chǔ)空間是相同的B、線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)所需要的存儲(chǔ)空間一般要多于順序存儲(chǔ)結(jié)構(gòu)C、線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)所需要的存儲(chǔ)空間一般要少于順序存儲(chǔ)結(jié)構(gòu)D、以上都不正確標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:線性表的存儲(chǔ)分為順序存儲(chǔ)和鏈?zhǔn)酱鎯?chǔ)。在順序存儲(chǔ)中,所有元素所占的存儲(chǔ)空間是連續(xù)的。而在鏈?zhǔn)酱鎯?chǔ)的方式中,將存儲(chǔ)空間的每一個(gè)存儲(chǔ)結(jié)點(diǎn)分為兩部分,一部分用于存儲(chǔ)數(shù)據(jù)元素的值,稱為數(shù)據(jù)域;另一部分用于存儲(chǔ)下一個(gè)元素的存儲(chǔ)序號,稱為指針域。所以線性表的鏈?zhǔn)酱鎯?chǔ)方式比順序存儲(chǔ)方式的存儲(chǔ)空間要大一些。3、設(shè)有定義:longx=745321L,則能正確輸出變量x的語句是()。A、printf("x=%d\n",x);B、printf("x=%LD\n",x);C、printf("x=%d1\n",x);D、printf("x=%1d\n",x);標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:本題考查C語言中長整型數(shù)據(jù)的輸出。在題中格式控制符只有采用格式字符%1d,且必須是小寫字母d,才能表示輸出長整型數(shù)據(jù)x。4、在最壞情況下()。A、快速排序的時(shí)間復(fù)雜度比冒泡排序的時(shí)間復(fù)雜度要小B、快速排序的時(shí)間復(fù)雜度比希爾排序的時(shí)間復(fù)雜度要小C、希爾排序的時(shí)間復(fù)雜度比直接插入排序的時(shí)間復(fù)雜度要小D、快速排序的時(shí)間復(fù)雜度與希爾排序的時(shí)間復(fù)雜度是一樣的標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:在最壞情況下,快速排序、冒泡排序和直接插入排序所需要的比較次數(shù)為O(n2),希爾排序所需要的比較次數(shù)為O(n1.5),所以答案選C。5、下面程序的輸出是()。main(){inti=9;for(;i>0;i--){if(i%3==0){printf("%d",--i);continue;}}}A、741B、852C、963D、875421標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:本題考查continue的應(yīng)用。程序中for循環(huán)體內(nèi)有一個(gè)continue語句,它的功能是提前結(jié)束本次循環(huán)體(即循環(huán)體的后半部分不執(zhí)行了),直接來到下一次循環(huán)的條件判斷。本題中,當(dāng)i值為3的倍數(shù)(9,6,3)時(shí),表達(dá)式i%3值為0,輸出--i(8,5,2),否則無輸出。第6次循環(huán)結(jié)束后,i--使i得0,此時(shí)i>0為假,循環(huán)結(jié)束。6、若有定義語句:chars[10]="1234567\0\0";,則strlen(s)的值是A、7B、8C、9D、10標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:本題考查字符串?dāng)?shù)組和字符串函數(shù)。數(shù)組s有7個(gè)數(shù)字,然后跟著結(jié)束符“\0”,因此數(shù)組s的長度為7。7、若有定義:doublea=22;inti=0,k=18;,則不符合C語言規(guī)定的賦值語句是()。A、i=(a+k)<=(i+k);B、i=a%11;C、a=a++,i++D、i=!a;標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:取模運(yùn)算符“%”、二元運(yùn)算符具有左結(jié)合性,參與運(yùn)算的量均為整型。B選項(xiàng)中的a變量是double實(shí)型,不符合規(guī)定。8、下列敘述中正確的是A、對象標(biāo)識具有唯一性B、屬性是對象的動(dòng)態(tài)屬性C、任何對象都必須有多態(tài)性D、對象是對象屬性和方法的封裝體標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:每個(gè)對象都有自身唯一的標(biāo)識,通過這種標(biāo)識,可找到相應(yīng)的對象。在對象的整個(gè)生命期中,它的標(biāo)識都不改變,不同的對象不能有相同的標(biāo)識。9、有以下程序#includeintfun(inta,intb){if(b==0)returna;elsereturn(fun(--a,--b));}main(){printf("%dha",fun(4,2));)程序的運(yùn)行結(jié)果是A、1B、2C、3D、4標(biāo)準(zhǔn)答案:B知識點(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、以下關(guān)于C語言數(shù)據(jù)類型使用的敘述中錯(cuò)誤的是A、若要保存帶有多位小數(shù)的數(shù)據(jù),可使用雙精度類型B、若要處理如“人員信息”等含有不同類型的相關(guān)數(shù)據(jù),應(yīng)自定義結(jié)構(gòu)體類型C、若只處理“真”和“假”兩種邏輯值,應(yīng)使用邏輯類型D、整數(shù)類型表示的自然數(shù)是準(zhǔn)確無誤差的標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:在C語言中沒有定義邏輯類型,而是用0代表假,用非零代表真。11、以下關(guān)于retum語句的敘述中正確的是A、一個(gè)自定義函數(shù)中必須有一條return語句B、一個(gè)自定義函數(shù)中可以根據(jù)不同情況設(shè)置多條return語句C、定義成yoid類型的函數(shù)中可以有帶返回值的return語句D、沒有retum語句的自定義函數(shù)在執(zhí)行結(jié)束時(shí)不能返回到調(diào)用處標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:retum語句土要用于返回函數(shù)的值。在一個(gè)自定義函數(shù)中,可以根據(jù)不同的情況設(shè)置多條retum語句返回函數(shù)的值。12、以下敘述中錯(cuò)誤的是A、C程序在運(yùn)行過程中所有計(jì)算都以二進(jìn)制方式進(jìn)行B、所有C程序都需要編譯鏈接無誤后才能運(yùn)行C、C程序在運(yùn)行過程中所有計(jì)算都以十進(jìn)制方式進(jìn)行D、C程序中字符變量存放的是字符的ASCII值標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:計(jì)算機(jī)程序都是編譯為二進(jìn)制的代碼,計(jì)算機(jī)才會(huì)執(zhí)行。13、以下選項(xiàng)中表示一個(gè)合法的常量是(說明:符號□表示空格)A、123E0.2B、2.7e□C、0999□D、0Xab標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:本題考查C語言中的常量。選項(xiàng)A字母E后面必須是整型數(shù),浮點(diǎn)數(shù)錯(cuò)誤:選項(xiàng)B字母e后面沒有整型數(shù):選項(xiàng)C以0開始表示8進(jìn)制數(shù),8進(jìn)制數(shù)沒有9;選項(xiàng)D是一個(gè)正確的16進(jìn)制常數(shù)。14、以下合法的字符型常量是A、’\x13’B、’\081’C、’65’D、’/n’標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:本題考查字符型常量。選項(xiàng)A)正確,使用了轉(zhuǎn)義字符“\”,x13表示16進(jìn)制的13;選項(xiàng)B)同樣使用了轉(zhuǎn)義字符,但081錯(cuò)誤,以0開始表示8進(jìn)制,8進(jìn)制數(shù)字的范圍是0.7,沒有8;選項(xiàng)C)錯(cuò)誤,65是一個(gè)字符串,不是字符;選項(xiàng)D)錯(cuò)誤,換行符是“\n”。15、有以下程序#includemain(){inta=5,b=1,t;t=(a<<2)|b;printf("%d\n",t);}程序運(yùn)行后的輸出結(jié)果是()。A、1B、11C、6D、21標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:本題考查位運(yùn)算,以及按位或操作,將a左移一位相當(dāng)于是將a乘以了4,所以a<<2等于20,二進(jìn)制表示為00010100,與b按位或得到00010101,即21,所以選項(xiàng)D正確。16、有以下程序#includeintfun(char*s){char*p=s;while(*p!=0)p++;return(p-s);}main(){printf("%d\n",fun("goodbey!"));}程序的輸出結(jié)果是A、6B、8C、0D、7標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:函數(shù)fun的主要功能是計(jì)算字符串中實(shí)際字符的個(gè)數(shù),因此"goodbey!"含有字符為8,返回值為8。17、以下敘述中正確的是A、函數(shù)名代表該函數(shù)的入口地址B、所有函數(shù)均不能接受函數(shù)名作為實(shí)參傳入C、函數(shù)體中的語句不能出現(xiàn)對自己的調(diào)用D、如果函數(shù)帶有參數(shù),就不能調(diào)用自己標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:函數(shù)形、實(shí)參傳遞的時(shí)候,要求對應(yīng)位置類型一致即可,如果實(shí)參為函數(shù)名,可以定義相應(yīng)的形參為指向函數(shù)的指針變量來獲得該函數(shù)的入口地址,因此選項(xiàng)B)錯(cuò)誤的,在C語言中允許進(jìn)行遞歸調(diào)用,即自己調(diào)用自己,選項(xiàng)C)和選項(xiàng)D)是錯(cuò)誤的。18、以下程序的主函數(shù)中調(diào)用了其前面定義的fun函數(shù)#include<stdio.h>……main(){doublea[15],k;k=fun(a);}則以下選項(xiàng)中錯(cuò)誤的fun函數(shù)首部是A、doublefun(doublea[15])B、doublefun(double*a)C、doublefun(doublea[])D、doublefun(doublea)標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:本題考查函數(shù)的定義和調(diào)用。根據(jù)對fun函數(shù)的調(diào)用可知,fun函數(shù)的返回值為double類型的,輸入?yún)?shù)是一個(gè)double類型的地址(指針),因此選項(xiàng)D)錯(cuò)誤。19、有下列程序:#include/*fun函數(shù)的功能是將a所指數(shù)組元素從大到小排序*/voidfun(int*a,intn)main(){intt,i,j;{intc[10]={1,2,3,4,5,6,7,8,9,0),j;for(i=0;iA、1,2,3,4,9,8,7,6,5,0,B、0,9,8,7,6,5,1,2,3,4,C、0,9,8,7,6,5,4,3,2,1,D、1,2,3,4,5,6,7,8,9,0,標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:fun()函數(shù)的功能是對數(shù)組a[]的元素從大到小進(jìn)行排序。所以在主函數(shù)執(zhí)行fun(c+4,6)語句時(shí),將從數(shù)組c的第5個(gè)元素開始的后6個(gè)元素進(jìn)行從大到小排序。排序之后,數(shù)組c的內(nèi)容變?yōu)閧1,2,3,4,9,8,7,6,5,0}。20、有以下程序#include<stdio.h>intfuna(inta,intb){retuma+b;}intfunb(inta,intb){returna-b;}intsss(int(*t)(),intx,inty){retum((*t)(x,y));}main(){intx;X=SSS(funa,9,3);x+=sss(funb,8,3);printf("%d\n",x);}程序運(yùn)行后的輸出結(jié)果是A、17B、23C、24D、22標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:函數(shù)funa的功能計(jì)算兩個(gè)數(shù)據(jù)的和,funb的功能計(jì)算兩個(gè)數(shù)據(jù)的差,函數(shù)sss中利用指向函數(shù)的指針作為函數(shù)的參數(shù),可以在調(diào)用的時(shí)候,根據(jù)接收的函數(shù)地址來決定調(diào)用那一個(gè)函數(shù)。主函數(shù)中調(diào)用x=sss(funa,9,3),將funa函數(shù)的地址傳遞給t,因此sss函數(shù)成為求兩個(gè)數(shù)據(jù)的和12,繼續(xù)將funb函數(shù)地址傳給t,求兩個(gè)數(shù)據(jù)差為5,和s累加后結(jié)果為17。21、以下敘述中正確的是A、charca[3][5]={"A","BB","CCC"};是不合語法的B、字符串?dāng)?shù)組,是指數(shù)組中的每個(gè)元素都是一個(gè)存放字符串的一維數(shù)組C、charca[][5]={"A","BB","CCC"};是不合語法的D、char*ca[3]={"A","BB","CCC"};是不合語法的標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:字符串?dāng)?shù)組,也就是二維字符數(shù)組,其中每個(gè)元素為一個(gè)字符串,選項(xiàng)B)的說法正確。選項(xiàng)A)和C)對于ca的定義是正確的。選項(xiàng)D)定義一個(gè)指針數(shù)組,可以保存多個(gè)字符串的首地址。22、在數(shù)據(jù)庫設(shè)計(jì)中,將E-R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過程屬于()。A、需求分析階段B、概念設(shè)計(jì)階段C、邏輯設(shè)計(jì)階段D、物理設(shè)計(jì)階段標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:E-R圖轉(zhuǎn)換成關(guān)系模型數(shù)據(jù)則是把圖形分析出來的聯(lián)系反映到數(shù)據(jù)庫中,即設(shè)計(jì)出表,所以屬于邏輯設(shè)計(jì)階段。23、有以下程序:#includemain(){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、3C、7D、8標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:本題中遇到"\"字符循環(huán)結(jié)束,所以只統(tǒng)計(jì)"\"之前的數(shù)字字符,所以為3。24、數(shù)據(jù)庫設(shè)計(jì)過程不包括A、概念設(shè)計(jì)B、邏輯設(shè)計(jì)C、物理設(shè)計(jì)D、算法設(shè)計(jì)標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:數(shù)據(jù)庫設(shè)計(jì)過程主要包括需求分析、、概念結(jié)構(gòu)設(shè)計(jì)、邏輯結(jié)構(gòu)分析、數(shù)據(jù)庫物理設(shè)計(jì)、數(shù)據(jù)庫實(shí)施、數(shù)據(jù)庫運(yùn)行和維護(hù)階段。答案為D選項(xiàng)。25、若有以下程序段structst{intn;structst*next;};structsta[3]={5,&a[1],7,&a[2],9,’\0’},*p;p=&a[0];則以下選項(xiàng)中值為6的表達(dá)式是A、p->nB、(*p).nC、p->n++D、++(p->n)標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:本題考查結(jié)構(gòu)體變量的引用,其中a為定義的結(jié)構(gòu)體數(shù)組,D選項(xiàng)中p->n為5,++(p->n)為6,所以D選項(xiàng)正確。國家二級C語言機(jī)試(選擇題)模擬試卷第5套一、選擇題(本題共25題,每題1.0分,共25分。)1、下列數(shù)據(jù)結(jié)構(gòu)中,屬于非線性結(jié)構(gòu)的是A、循環(huán)隊(duì)列B、帶鏈隊(duì)列C、二叉樹D、帶鏈棧標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:根據(jù)數(shù)據(jù)結(jié)構(gòu)中各數(shù)據(jù)元素之間的前后件關(guān)系的復(fù)雜程度,一般將數(shù)據(jù)結(jié)構(gòu)分為兩大類:線性結(jié)構(gòu)和非線性結(jié)構(gòu)。循環(huán)隊(duì)列、帶鏈隊(duì)列和帶鏈棧都是線性結(jié)構(gòu),而二叉樹是非線性結(jié)構(gòu)。2、設(shè)有定義:doublex=2.12;,則以下各項(xiàng)中不能完整輸出變量x值的語句是()。A、prinff(″x=%5.0f\n″,x);B、printf(″x=%f\n″,x);C、printf(″x=%lf\n″,x);D、printf(″x=%0.5f\n″,x);標(biāo)準(zhǔn)答案:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年人力資源管理專業(yè)知識題庫含答案詳解
- 2026年律師執(zhí)業(yè)考試模擬卷民商法方向
- 汽車維修與保養(yǎng)知識考試題2026年版
- 2026年人力資源管理師職稱評審人才測評與選聘能力測試題
- 2026年廣東南華工商職業(yè)學(xué)院單招職業(yè)傾向性測試模擬測試卷附答案
- 2026年廣西國際商務(wù)職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性考試題庫及答案1套
- 2026年語言學(xué)習(xí)基礎(chǔ)知識點(diǎn)題庫如英語法語等
- 2026年智慧城市交通規(guī)劃題庫城市交通建設(shè)與安全保障
- 2026年天然氣泄漏緊急處理程序考試題
- 2026年商業(yè)策劃師認(rèn)證題庫企業(yè)戰(zhàn)略規(guī)劃與執(zhí)行
- 2025年道路運(yùn)輸安全員兩類人員試題庫及答案
- 高溫熔融金屬冶煉安全知識培訓(xùn)課
- 遼寧中考數(shù)學(xué)三年(2023-2025)真題分類匯編:專題06 幾何與二次函數(shù)壓軸題 解析版
- 湖南省5年(2021-2025)高考物理真題分類匯編:專題11 近代物理(原卷版)
- 保密協(xié)議書 部隊(duì)
- 螺桿泵知識點(diǎn)培訓(xùn)課件
- 辦美國簽證邀請函
- T-CCTASH 003-2025 散貨機(jī)械抓斗的使用要求
- 康復(fù)醫(yī)學(xué)科進(jìn)修匯報(bào)
- 工作票 操作票培訓(xùn)課件
- 地方高校數(shù)字經(jīng)濟(jì)微專業(yè)建設(shè)的優(yōu)化與突破
評論
0/150
提交評論