




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷27(共9套)(共255題)國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷第1套一、選擇題(本題共25題,每題1.0分,共25分。)1、下列敘述中正確的是A、棧是一種先進(jìn)先出的線性表B、隊(duì)列是一種后進(jìn)先出的線性表C、棧與隊(duì)列都是非線性結(jié)構(gòu)D、以上三種說(shuō)法都不對(duì)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:棧是先進(jìn)后出的線性表,隊(duì)列是先進(jìn)先出的線性表,二者均為線性結(jié)構(gòu)。2、以下選項(xiàng)中不屬于C語(yǔ)言標(biāo)識(shí)符的是A、用戶標(biāo)識(shí)符B、關(guān)鍵字C、常量D、預(yù)定義標(biāo)識(shí)符標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:C語(yǔ)言的標(biāo)識(shí)符可分為以下3類:①關(guān)鍵字。C語(yǔ)言預(yù)先規(guī)定了一批標(biāo)識(shí)符,它們?cè)诔绦蛑卸即碇潭ǖ暮x,不能另作他用。這些字符稱為關(guān)鍵字。例如,int、dotlble、if、else、while、for等。②預(yù)定義標(biāo)識(shí)符。即預(yù)先定義并具有特定含義的標(biāo)識(shí)符。③用戶標(biāo)識(shí)符。由用戶根據(jù)需要定義的標(biāo)識(shí)符稱為用戶標(biāo)識(shí)符,又稱自定義標(biāo)識(shí)符,一般用來(lái)給變量、函數(shù)、數(shù)組等命名。3、下列關(guān)于二叉樹的敘述中,正確的是A、葉子結(jié)點(diǎn)總是比度為2的結(jié)點(diǎn)少一個(gè)B、葉子結(jié)點(diǎn)總是比度為2的結(jié)點(diǎn)多一個(gè)C、葉子結(jié)點(diǎn)數(shù)是度為2的結(jié)點(diǎn)數(shù)的兩倍D、度為2的結(jié)點(diǎn)數(shù)是度為1的結(jié)點(diǎn)數(shù)的兩倍標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:由二叉樹的性質(zhì)可以知道在二叉樹中葉子結(jié)點(diǎn)總是比度為2的結(jié)點(diǎn)多一個(gè)。4、執(zhí)行以下程序段后,s的值為()。inta[]={1,2,3,4,5,6,7,8,9},s=0,k;for(k=0;k<8;k+=2)s+=*(a+k);prinff(“%d\n”,s);A、13B、16C、17D、45標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:數(shù)組元素為:a[0]=1,a[1]=2…a[8]=9。k=0時(shí),s=s+*(a+k)=0+1=1;k=2時(shí),s=1+*(a+2)=l=3=4;k=4時(shí),s=4+5=9;k=6時(shí),s=9+7=16。5、以下正確的字符串常量是A、’abc’B、OlympicGamesC、""D、\\\標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:字符串常量是由雙引號(hào)括起來(lái)的一串字符。在C語(yǔ)言中,以一個(gè)反斜線開頭后跟一個(gè)特定的字符,用來(lái)代表一個(gè)特定的ASCII字符。利用兩個(gè)’\\’表示一個(gè)反斜杠,因此選項(xiàng)D)的表示無(wú)法確認(rèn)表示幾個(gè)反斜杠。6、建立表示學(xué)生選修課程活動(dòng)的實(shí)體聯(lián)系模型,其中的兩個(gè)實(shí)體分別是()。A、學(xué)生和學(xué)號(hào)B、課程和課程號(hào)C、課程和成績(jī)D、學(xué)生和課程標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:實(shí)體是概念世界中的基本單位,是客觀存在并可以相互區(qū)別的事物。要建立表示學(xué)生選修課程活動(dòng)的實(shí)體聯(lián)系模型,能互相區(qū)別并可以聯(lián)系起來(lái)的實(shí)體是學(xué)生和課程。7、有以下程序:#include<stdio.h>charf(charx){returnx*x%10+′0′;}main(){chara;intb=0;for(a=0;a<5;a+=1){b=f(a);putchar(b);}}則程序的輸出結(jié)果是()。A、014916B、01234C、01496D、00000標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:該題目中x*x%10,即x和x相乘后,結(jié)果再對(duì)10求余操作。主函數(shù)中通過(guò)for語(yǔ)句使變量a從0到4進(jìn)行取值,當(dāng)a=0時(shí),調(diào)用函數(shù)f后,返回值為0,賦給b,并且進(jìn)行字符輸出;當(dāng)a=1時(shí),返回值為1賦給b,并且進(jìn)行字符輸出;當(dāng)a=2時(shí),返回值為4賦給b,并且進(jìn)行字符輸出;當(dāng)a=3時(shí),返回值為9賦給b,并且進(jìn)行字符輸出;當(dāng)a=4時(shí),返回值為6賦給b,并且進(jìn)行字符輸出。故C選項(xiàng)正確。8、以下選項(xiàng)中,合法的一組C語(yǔ)言數(shù)值常量是()。A、12.0Xa234.5e0B、028.5e-3-0xfC、.1774e1.50abcD、0x8A10,0003.e5標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C語(yǔ)言中,八進(jìn)制整型常量的開頭數(shù)字是0,十六進(jìn)制整型常量的開頭數(shù)字是0x或0X。C語(yǔ)言中的實(shí)型常量有兩種表示形式:小數(shù)形式,表示的實(shí)型常量必須要有小數(shù)點(diǎn);指數(shù)形式,以e或E后跟一個(gè)整數(shù)來(lái)表示以10為底數(shù)的冪數(shù),且規(guī)定字母e或E之前必須要有數(shù)字,且e或E后面的指數(shù)必須為整數(shù)。B選項(xiàng)中028錯(cuò)誤,八進(jìn)制中沒(méi)有數(shù)字8。C選項(xiàng)中4e1.5中e后面的指數(shù)不是整數(shù)。D選項(xiàng)中10,000數(shù)字之間不能有逗號(hào)。9、下列描述中錯(cuò)誤的是()。A、在數(shù)據(jù)庫(kù)系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)必須與邏輯結(jié)構(gòu)一致B、數(shù)據(jù)庫(kù)技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的共享問(wèn)題C、數(shù)據(jù)庫(kù)設(shè)計(jì)是指在已有數(shù)據(jù)庫(kù)管理系統(tǒng)的基礎(chǔ)上建立數(shù)據(jù)庫(kù)D、數(shù)據(jù)庫(kù)系統(tǒng)需要操作系統(tǒng)的支持標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在數(shù)據(jù)庫(kù)系統(tǒng)中,物理獨(dú)立性是指數(shù)據(jù)的物理結(jié)構(gòu)(包括存儲(chǔ)結(jié)構(gòu)、存取方式等)的改變。如存儲(chǔ)設(shè)備的更換、物理存儲(chǔ)的更換、存取方式改變等都不影響數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu),從而不致引起應(yīng)用程序的變化。10、有以下程序main(){intx=1,y=0;if(!x)y++;elseif(x=0)if(x)y+=2;elsey+=3;printf("%dha",y);}程序運(yùn)行后的輸出結(jié)果是A、2B、0C、1D、3標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:x=1,if和elseif的條件都不滿足,故y值不改變輸出。11、若在定義語(yǔ)句:inta,b,c,*p=&c;接著執(zhí)行以下選項(xiàng)中的語(yǔ)句,則能正確執(zhí)行的語(yǔ)句是A、scanf(’’%d%d%dtt,a,b,c);B、scanf(’’%dt.,a,b,c);C、scanf(’’%d’’,p);D、scanf(’’%d’’,&p);標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:程序語(yǔ)句inta,b,c,*p=&c;定義了三個(gè)整型變量a,b,c,和一個(gè)整型指針變量p,并且把變量c的地址賦給p。scanf函數(shù)的一般形式為”scanf(“格式控制字符串”,地址列表)”,其中的地址列表應(yīng)當(dāng)是存放輸入數(shù)據(jù)變量的地址。12、有以下程序段inta,b,c;a=10;b=50;c=30;if(a>b)a=b,b=c;c=a;printf(’’a=%db=%dc=%d\n’’,a,b,c);程序的輸出結(jié)果是A、a=10b=50c=30B、a=10b=30c=10C、a=10b=50c=10D、a=50b=30c=50標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題的程序段首先定義三個(gè)整型變量a,b,c,并且其初始值分別等于10,50,30,然后判斷a>b是否成立,如果條件成立,則把b的值賦給a,把c的值賦給b。由a和b的初始值可知,此條件表達(dá)式不成立,所以a和b的值保持不變。再執(zhí)行下一條語(yǔ)句,把a(bǔ)的值賦給c,所以c的當(dāng)前值等于10,最后由輸出語(yǔ)句輸出變量a,b,c的當(dāng)前值,分別為10,50.10。13、以下關(guān)于retum語(yǔ)句的敘述中正確的是A、一個(gè)自定義函數(shù)中必須有一條return語(yǔ)句B、一個(gè)自定義函數(shù)中可以根據(jù)不同情況設(shè)置多條return語(yǔ)句C、定義成void類型的函數(shù)中可以有帶返回值的return語(yǔ)句D、沒(méi)有return語(yǔ)句的自定義函數(shù)在執(zhí)行結(jié)束時(shí)不能返回到調(diào)用處標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:return語(yǔ)句主要用于返回函數(shù)的值。在一個(gè)自定義函數(shù)中,可以根據(jù)不同的情況設(shè)置多條return語(yǔ)句返回函數(shù)的值。14、數(shù)據(jù)庫(kù)設(shè)計(jì)過(guò)程不包括A、概念設(shè)計(jì)B、邏輯設(shè)計(jì)C、物理設(shè)計(jì)D、算法設(shè)計(jì)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)設(shè)計(jì)的四個(gè)階段是:需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)和物理設(shè)計(jì)。15、以下選項(xiàng)中,合法的一組C語(yǔ)言數(shù)值常量是A、12.0Xa234.5e0B、028.5e-3-0xfC、.1774e1.50abcD、0x8A10.0003.e5標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:八進(jìn)制數(shù)其開頭必須是數(shù)字“0”,其數(shù)字包括0~7,而在選項(xiàng)B)中,028是錯(cuò)誤的。浮點(diǎn)數(shù)據(jù)的指數(shù)形式表示常量中,C語(yǔ)言規(guī)定字母e或E之前必須要有數(shù)字,且e或E之后的指數(shù)必須為整數(shù),而選項(xiàng)C)中4e1.5是錯(cuò)誤的。在選項(xiàng)D)中,整型數(shù)據(jù)10,000的表示形式是錯(cuò)誤的。16、學(xué)校的每個(gè)社團(tuán)都有一名團(tuán)長(zhǎng),且一個(gè)同學(xué)可同時(shí)擔(dān)任多個(gè)社團(tuán)的團(tuán)長(zhǎng),則實(shí)體團(tuán)長(zhǎng)和實(shí)體社團(tuán)間的聯(lián)系是A、一對(duì)多B、多對(duì)多C、多對(duì)一D、一對(duì)一標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:一對(duì)多關(guān)系是關(guān)系數(shù)據(jù)庫(kù)中兩個(gè)表之間的一種關(guān)系,該關(guān)系中第一個(gè)表中的單個(gè)行可以與第二個(gè)表中的一個(gè)或多個(gè)行相關(guān),但第二個(gè)表中的一個(gè)行只可以與第一個(gè)表中的一個(gè)行相關(guān)。本題中,一個(gè)團(tuán)長(zhǎng)可以對(duì)應(yīng)多個(gè)社團(tuán),一個(gè)社團(tuán)只有一個(gè)團(tuán)長(zhǎng),因此是一對(duì)多關(guān)系。17、以下敘述中正確的是A、整型常量和實(shí)型常量都是數(shù)值型常量B、常量的類型不能從字面形式上區(qū)分,需要根據(jù)類型名來(lái)決定C、預(yù)定義的標(biāo)識(shí)符是C語(yǔ)言關(guān)鍵字的一種,不能另作它用D、只能在函數(shù)體內(nèi)定義變量,其他地方不允許定義變量標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:整型常量和文型常量都是數(shù)值型常量,選項(xiàng)A)正確;常量的類型可以從字面上區(qū)分,比如整型常量不能有小數(shù)點(diǎn),組成字符為0~9等,選項(xiàng)B)錯(cuò)誤;預(yù)定義標(biāo)識(shí)符,即預(yù)先定義并具有特定含義的標(biāo)識(shí)符,可以另作他用,不過(guò)更改了原有的含義,選項(xiàng)C)錯(cuò)誤;變量可以定義在程序中任何的地方,屬于不同的變量,選項(xiàng)D)錯(cuò)誤。18、若變量x、y己正確定義并賊值,以下符合C語(yǔ)言語(yǔ)法的表達(dá)式是A、++x,y=x-B、x+1=yC、x=x+10=x+yD、double(x)/10標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:用逗號(hào)將表達(dá)式連接起來(lái)的式子稱為逗號(hào)表達(dá)式。其表達(dá)式的一般形式為:表達(dá)式1,表達(dá)式2,……,表達(dá)式n。最后一個(gè)表達(dá)式的值就是此逗號(hào)表達(dá)式的值。所以選項(xiàng)A)為C語(yǔ)言中的逗號(hào)表達(dá)式。賦值表達(dá)式的左側(cè)只能是變量,不能是常量或表達(dá)式。強(qiáng)制類型轉(zhuǎn)換表達(dá)式的形式為:(類型名)(表達(dá)式),其中(類型名)稱為強(qiáng)制類型轉(zhuǎn)換運(yùn)算符,數(shù)據(jù)類型兩邊的圓括號(hào)不能省略。19、設(shè)有定義:intk=0;以下選項(xiàng)的四個(gè)表達(dá)式中與其他三個(gè)表達(dá)式的值不相同的是A、++kB、k+=1C、k++D、k+1標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:++k,先使得k的值自增1后再使用,k++是先取得k的值再將k的值自增1,所以C選項(xiàng)中表達(dá)式的值為0,而其他三個(gè)表達(dá)式的值均為1,所以選擇C?20、若有以下程序main(){inta=-2,b=0;do{++b;}while(a++);printf("%d,%d\n",a,b);}則程序的輸出結(jié)果是A、0,2B、1,2C、1,3D、2,3標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:由于a的初始值等于-2,所以while循環(huán)語(yǔ)言執(zhí)行三次結(jié)束,第一次a=-2,b=1,然后判斷循環(huán)條件a++非零,執(zhí)行第二次循環(huán)體a=-1,b=2,判斷循環(huán)條件非零,執(zhí)行循環(huán)體a=0,b=3,判斷循環(huán)條件為0,此時(shí)變量a的值等于1。21、與數(shù)學(xué)表達(dá)式x≥y≥z對(duì)應(yīng)的C語(yǔ)言表達(dá)式是A、(x>=y>=z)B、(x>=y)&&(y>=z)C、(x>=y)!(y>=z)D、(x>=y)||(y>=x)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:若要表示x大于等于y,同時(shí)y大于等于z,需要用邏輯與表達(dá)式連接。22、以下敘述中正確的是A、對(duì)于變量而言,“定義”和“說(shuō)明”這兩個(gè)詞實(shí)際上是同一個(gè)意思B、在復(fù)合語(yǔ)句中不能定義變量C、全局變量的存儲(chǔ)類別可以是靜態(tài)類D、函數(shù)的形式參數(shù)不屬于局部變量標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:用static說(shuō)明符說(shuō)明全局變量時(shí),此變量可稱作靜態(tài)全局變量。靜態(tài)全局變量只限于本編譯單位使用,不能被其他編譯單位所引用。在一個(gè)函數(shù)內(nèi)部定義的變量(包括形參)是局部變量,它只在本函數(shù)范圍內(nèi)有效。不同函數(shù)中可以使用相同名字的局部變量,它們代表不同的對(duì)象,互不影響。在函數(shù)內(nèi)部復(fù)合語(yǔ)句中也可以定義變量,這些變量都是局部變量,只在本復(fù)合語(yǔ)句中有效。23、有以下程序段charname[20];intnum;scanf("name=%snum=%d",name,&num);當(dāng)執(zhí)行上述程序段,并從鍵盤輸入:name=Lilinum=1001<回車>后,name的值為A、name=Lilinum=1001B、name=LiliC、Lilinum=D、Lili標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在輸入格式控制"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)正確。24、若有定義typedefint*T;Ta[10];則a的定義與下面哪個(gè)語(yǔ)句等價(jià)A、int(*a)[10];B、int*a[10];C、int*a;D、inta[10];標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查typedef的使用方法,typedef對(duì)已存在的類型使用一個(gè)新的名字,其中本題中int*用T來(lái)代替,所以定義Ta[10];就相當(dāng)于是int*a[10];選項(xiàng)B正確。25、以下敘述中正確的是()。A、當(dāng)對(duì)文件的讀(寫)操作完成之后,必須將它關(guān)閉,否則可能導(dǎo)致數(shù)據(jù)丟失B、打開一個(gè)已存在的文件并進(jìn)行了寫操作后,原有文件中的全部數(shù)據(jù)必定被覆蓋C、在一個(gè)程序中當(dāng)對(duì)文件進(jìn)行了寫操作后,必須先關(guān)閉該文件然后再打開,才能讀到第1個(gè)數(shù)據(jù)D、C語(yǔ)言中的文件是流式文件,因此只能順序存取數(shù)據(jù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:B)選項(xiàng)中打開一個(gè)已存在的文件并進(jìn)行了寫操作后,原有文件中的全部數(shù)據(jù)不一定被覆蓋,也可以對(duì)源文件進(jìn)行追加操作等。C選項(xiàng)中在一個(gè)程序中當(dāng)對(duì)文件進(jìn)行了寫操作后,不用先關(guān)閉該文件然后再打開,才能讀到第1個(gè)數(shù)據(jù),可以用fseek()函數(shù)進(jìn)行重新定位即可。D選項(xiàng)中,C語(yǔ)言中的文件可以進(jìn)行隨機(jī)讀寫。國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷第2套一、選擇題(本題共25題,每題1.0分,共25分。)1、以下敘述中正確的是A、程序必須包含所有三種基本結(jié)構(gòu)才能成為一種算法B、如果算法非常復(fù)雜,則需要使用三種基本結(jié)構(gòu)之外的語(yǔ)句結(jié)構(gòu),才能準(zhǔn)確表達(dá)C、只有簡(jiǎn)單算法才能在有限的操作步驟之后結(jié)束D、我們所寫的每條C語(yǔ)句,經(jīng)過(guò)編譯最終都將轉(zhuǎn)換成二進(jìn)制的機(jī)器指令標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C語(yǔ)句構(gòu)成了函數(shù),函數(shù)構(gòu)成的程序,經(jīng)過(guò)編譯轉(zhuǎn)換成二進(jìn)制代碼后可以運(yùn)行,算法是指為解決某個(gè)特定問(wèn)題而采取的確定且有限的步驟,可以利用代碼來(lái)描述算法,而算法+數(shù)據(jù)結(jié)構(gòu)才是程序,結(jié)構(gòu)化的程序由順序結(jié)構(gòu)、循環(huán)結(jié)構(gòu)和選擇結(jié)構(gòu)三種基小結(jié)構(gòu)組成。由這三種基本結(jié)構(gòu)組成的算法可以解決任何復(fù)雜的問(wèn)題,反之則不一定,所有算法必須在有限步驟后結(jié)束。2、以下描述中,不是線性表順序存儲(chǔ)結(jié)構(gòu)特征的是()。A、可隨機(jī)訪問(wèn)B、需要連續(xù)的存儲(chǔ)空間C、不便于插入和刪除D、邏輯相鄰的數(shù)據(jù)物理位置上不相鄰標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:線性表的順序存儲(chǔ)是用一片連續(xù)的空間來(lái)存放數(shù)據(jù)元素,其特點(diǎn)是邏輯上相鄰的元素在物理位置上也相鄰。數(shù)據(jù)元素之間邏輯上的先后關(guān)系自動(dòng)隱含在物理位置的相鄰元素之中,因此不需要另外開辟空間來(lái)保存元素之間的關(guān)系。3、下面描述中,不屬于軟件危機(jī)表現(xiàn)的是A、軟件過(guò)程不規(guī)范B、軟件開發(fā)生產(chǎn)率低C、軟件質(zhì)量難以控制D、軟件成本不斷提高標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:軟件危機(jī)主要表現(xiàn)在以下6個(gè)方面:①軟件需求的增長(zhǎng)得不到滿足。②軟件開發(fā)成本和進(jìn)度無(wú)法控制。③軟件質(zhì)量難以保證。④軟件不可維護(hù)或維護(hù)程度非常低。⑤軟件的成本不斷提高。⑥軟件開發(fā)生產(chǎn)率的提高趕不上硬件的發(fā)展和應(yīng)用需求的增長(zhǎng)。4、在進(jìn)行邏輯設(shè)計(jì)時(shí),將E-R圖中實(shí)體之間聯(lián)系轉(zhuǎn)換為關(guān)系數(shù)據(jù)庫(kù)的()。A、元組B、關(guān)系C、屬性D、屬性的值域標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:E-R模型與關(guān)系模型間的轉(zhuǎn)換關(guān)系如下表所示。5、有以下程序main(){inta=-2,b=0;while(a++&&++b);printf(’’%d,%d\n’’,a,b);)程序運(yùn)行后輸出結(jié)果是A、0,3B、1,2C、1,3D、0,2標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:循環(huán)體為空,共執(zhí)行2次。第一次變量a初值為-2,b初值為0,表達(dá)式a++&&++b值為l,同時(shí)a的值為-1,b的值為1,第二次循環(huán)條件判斷以后,a的值為0,b的值2,執(zhí)行循環(huán)體空,第三次判斷條件表達(dá)式值為0,不執(zhí)行循環(huán)體,而a的值為1,但是表達(dá)式a++的值為0,因此不計(jì)算表達(dá)式++b的值,b的值仍為2。6、設(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;標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:使用scanf()輸入字符串時(shí),空格和回車符都作為輸入數(shù)據(jù)的分隔符而不能被讀入,而應(yīng)該使用gets(s)。7、下面不屬于對(duì)象基本特點(diǎn)的是A、標(biāo)識(shí)唯一性B、可復(fù)用性C、多態(tài)性D、封裝性標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:對(duì)象有下列一些基本特點(diǎn),即標(biāo)識(shí)唯一性、分類性、多態(tài)性、封裝性和模塊獨(dú)立性。所以選項(xiàng)B正確。8、以下敘述中正確的是A、函數(shù)調(diào)用時(shí),不必區(qū)分函數(shù)名稱的大小寫B(tài)、調(diào)用函數(shù)時(shí),函數(shù)名必須與被調(diào)用的函數(shù)名完全一致C、函數(shù)名允許用數(shù)字開頭D、在函數(shù)體中只能出現(xiàn)一次return語(yǔ)句標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在標(biāo)準(zhǔn)C中,函數(shù)的定義形式為:函數(shù)返回值的類型名函數(shù)名(類型名形式參數(shù)1,類型名形式參數(shù)2,…){說(shuō)明部分語(yǔ)句部分}需要說(shuō)明的是函數(shù)名和形式參數(shù)都是由用戶命名的標(biāo)識(shí)符,在同一程序中,函數(shù)名必須惟一,形式參數(shù)名只要在同一函數(shù)中惟一即可,與其他函數(shù)中的變量可以同名。return語(yǔ)句的作用是返回函數(shù)的值,在函數(shù)中可以出現(xiàn)多個(gè)或者沒(méi)有。9、下面選項(xiàng)中關(guān)于編譯預(yù)處理的敘述正確的是A、凡是以#}號(hào)開頭的行,都被稱為編譯預(yù)處理命令行B、預(yù)處理命令行必須使用分號(hào)結(jié)尾C、預(yù)處理命令行不能出現(xiàn)在程序的最后一行D、預(yù)處理命令行的作用域是到最近的函數(shù)結(jié)束處標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在C語(yǔ)言中,凡是以“#”號(hào)開頭的行,都稱為編譯預(yù)處理命令行。這些預(yù)處理命令組成的預(yù)處理命令行必須在一行的開頭以“#”號(hào)開始,每行的末尾不能用“;”號(hào)結(jié)束,以區(qū)別于c語(yǔ)句、定義和說(shuō)明語(yǔ)句。根據(jù)需要,命令行可以出現(xiàn)在程序的任何一行的開始部位,其作用一直持續(xù)到源文件的末尾。10、若有定義語(yǔ)句charc=’\101’;則變量c在內(nèi)存中占A、2個(gè)字節(jié)B、3個(gè)字節(jié)C、1個(gè)字節(jié)D、4個(gè)字節(jié)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:每個(gè)字符變量被分配一個(gè)字節(jié)的內(nèi)存空間,因此只能存放一個(gè)字符。字符值是以ASCII碼的形式存放在變量的內(nèi)存單元之中的。11、有以下程序#includeintfun(inta,intb){if==0)returna;elsereturn(fun(--a,--b));}main(){printf("%d\n",fun(4,2));}程序的運(yùn)行結(jié)果是A、1B、2C、3D、4標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:由程序可知函數(shù)fun(inta,intb)是一個(gè)遞歸函數(shù)。所以當(dāng)主函數(shù)中調(diào)用fun(4,2)時(shí),其執(zhí)行過(guò)程如下:fun(4,2)->fun(3,1)->fun(2,0),其返回值為2。12、以下選項(xiàng)中,當(dāng)x為大于1的奇數(shù)時(shí),值為0的表達(dá)式是A、x/2B、x%2==0C、x%2!=0D、x%2==1標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:A選項(xiàng)的值為不定值,但絕對(duì)不是0,算術(shù)運(yùn)算符的優(yōu)先級(jí)高于關(guān)系運(yùn)算符的優(yōu)先級(jí),所以當(dāng)x為大于1的奇數(shù)時(shí),B選項(xiàng)的值為假,即0?C選項(xiàng)的值為真,即1,D選項(xiàng)的值為真,即1,選項(xiàng)B正確。13、有以下程序main(){inta=3;do{printf("%d,",a-=2);}while(!(-a);printf("\n");}程序運(yùn)行后的輸出結(jié)果是A、1,B、1,-2,C、3,0,D、1,0標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:循環(huán)體執(zhí)行兩次。首先輸出a=1,然后判斷表達(dá)式!(--A,a為0,循環(huán)條件表達(dá)式值為1,執(zhí)行第二次循環(huán)體,輸出a=-2。判斷循環(huán)條件表達(dá)式值為0,循環(huán)退出。14、有以下程序#includemain(){intx=8;for(;x>0;x--){if(x%3){printf("%d,",x--);continue;)pfintf("%d,",--x);}}程序的運(yùn)行結(jié)果是A、8,7,5,2,B、9,7,6,4,C、7,4,2,D、8,5,4,2,標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:“x--”表示先執(zhí)行程序,再令x的值減1;而“--x”表示令x的值減1,再執(zhí)行程序。x=8時(shí),x%3為非0值,執(zhí)行語(yǔ)句{prinf("%d,",x--);continue;},輸出“8,”,此時(shí)經(jīng)過(guò)x--,x的值變?yōu)?,跳出此次循環(huán);執(zhí)行x--,x=6,x%3=0,后面語(yǔ)句不執(zhí)行,執(zhí)行語(yǔ)句printf("%d,",--x);,輸出“5,”;執(zhí)行for語(yǔ)句中的x--,得到x=4,判斷x%3,輸出“4,”,執(zhí)行兩次x--后,x=2,執(zhí)行{printf("%d,",x--);continue;}后,輸出“2,”;然后執(zhí)行兩次x--后,x=0,不符合“x>0”,循環(huán)全部結(jié)束。15、若以下選項(xiàng)中的變量a,b,y均已正確定義并賦值,則語(yǔ)法正確的switch語(yǔ)句是A、switch(a*a+b*b){default:break;case3:y=a+b;break;case2:y=a-b;break;}B、switch(a+b){case1:case3:y=a+b;break;case0:case4:y=a-b;}C、switch(a+9){casea:y=a-b;caseb:y=a+b;}D、switcha*b{case10:y=a+b;default:y=a-b;}標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:使用switch語(yǔ)句直接處理多個(gè)分支,其一般形式為:switch(表達(dá)式){case常量表達(dá)式1:語(yǔ)句1;break;case常量表達(dá)式a:語(yǔ)句n;break;default:語(yǔ)句n+1;break;}switch.語(yǔ)句的執(zhí)行流程是:首先計(jì)算switch后面圓括號(hào)中表達(dá)式的值,然后用此值依次與各個(gè)case的常量表達(dá)式比較,若圓括號(hào)中表達(dá)式的值與基個(gè)case后面的常量表達(dá)式的值相等,就執(zhí)行此case后面的語(yǔ)句,執(zhí)行后遇break語(yǔ)句就退出switch語(yǔ)句;若圓括號(hào)中表達(dá)式的值與所有case后面的常量表達(dá)式都不等,則執(zhí)行default后面的語(yǔ)句n+1,然后退出switch語(yǔ)句。對(duì)于選項(xiàng)B),case語(yǔ)句和常量之間沒(méi)有空格,而選項(xiàng)C)中的case后面為變量,選項(xiàng)D)中switch后面沒(méi)給出圓括號(hào)。16、若有以下程序main(){inta=6,b=0,c=0;for(;a&&(b==0);){b+=a;a-=c++;}printf("%d,%d,%d\n",a,b,c);}則程序的輸出結(jié)果是A、6,0,0B、5,6,0C、6,6,1D、5,6,1標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:循環(huán)條什a&&(b==0),a非零同時(shí)b==0則執(zhí)行循環(huán)體,否則退出。循環(huán)體執(zhí)行一次,此時(shí)b=6,a=6,c=1。17、有以下程序#includeintf(intx,inty){return((y-x)*x);}main(){inta=3,b=4,c=5,d;d=f(f(a,b),f(a,c));printf("%d\n",d);}程序運(yùn)行后的輸出結(jié)果是()A、9B、10C、8D、7標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:考查函數(shù)的返回值。d=f(f(a,b),f(a,c))=f((b-a)*a,(c-a)*a)=f(3,6)=(6-3)*3=9,所以答案選A。18、若有語(yǔ)句:char*line[5];,以下敘述中正確的是A、定義line是一個(gè)數(shù)組,每個(gè)數(shù)組元素是一個(gè)基類型為char的指針變量B、定義line是一個(gè)指針變量,該變量可以指向一個(gè)長(zhǎng)度為5的字符型數(shù)組C、定義line是一個(gè)指針數(shù)組,語(yǔ)句中的*號(hào)稱為間址運(yùn)算符D、定義line是一個(gè)指向字符型函數(shù)的指針標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查指針數(shù)組的定義。本題中l(wèi)ine是一個(gè)指針數(shù)組,有5個(gè)元素,每個(gè)元素都是一個(gè)指針變量。19、若有以下程序#include<stdio.h>main(){inta=1,b=2,c=3,d=4,r=0;if(a!=1);elser=1;if(b==2)r+=2;else;if(c!=3)r+=3;else;if(d==4)r+=4;printf("%d\n",r);}則程序的輸出結(jié)果是A、10B、6C、7D、3標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:程序代碼中有四條并列的if語(yǔ)句,第一條if表達(dá)式a!=1不成立,執(zhí)行else分支,r=1;第二條if表達(dá)式b==2成立,執(zhí)行r+=2,r=3;第三條if語(yǔ)句c!=3不成立,執(zhí)行else分支,分支為空語(yǔ)句;第四條if分支d==4成立,執(zhí)行該if分支語(yǔ)句,r+=4,r=7。20、設(shè)有定義doublea[10],*s=a;以下能夠代表數(shù)組元素a[3]的是A、(*s)[3]B、*s[3]C、*s+3D、*(s+3)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:語(yǔ)句*s=a,使用指針變量s指向一維數(shù)組a的首地址,所以*(s+3)表示的是引用數(shù)組a[3]。21、若變量已正確定義for(x=0,y=0;(y!=99&&x<4);x++)則以上for循環(huán)A、執(zhí)行3次B、執(zhí)行4次C、執(zhí)行無(wú)限次D、執(zhí)行次數(shù)不定標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題重點(diǎn)考察for語(yǔ)句的循環(huán)次數(shù),for(x=0,y=0;(y!=99&&x<4);x++),y!=99&&x<4即循環(huán)條件當(dāng)y不等于99以及x<4時(shí),執(zhí)行循環(huán)語(yǔ)句,當(dāng)有一個(gè)條件不成立時(shí),均結(jié)束循環(huán),因此循環(huán)4次,B選項(xiàng)正確。22、有以下程序#includemain(){chara=’H’;a=(a>=’A’&&a<=’Z’)?(a+32):a;printf("%c\n",a);}程序運(yùn)行后的輸出結(jié)果是A、HB、hC、AD、a標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:條件運(yùn)算符構(gòu)成的選擇結(jié)構(gòu)的一般形式為:表達(dá)式1?表達(dá)式2:表達(dá)式3。其求值規(guī)則為:如果表達(dá)式1的值為真,則以表達(dá)式2的值作為條件表達(dá)式的值,否則以表達(dá)式2的值作為整個(gè)條件表達(dá)式的值。該題目中首先給字符變量a賦值為’H’。語(yǔ)句a=(a>=’A’&&a<=’Z’).(a+32):a;即將大寫字母變?yōu)樾懽帜?。因此B選項(xiàng)正確。23、下列關(guān)于棧敘述正確的是A、算法就是程序B、設(shè)計(jì)算法時(shí)只需要考慮數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)C、設(shè)計(jì)算法時(shí)只需要考慮結(jié)果的可靠性D、以上三種說(shuō)法都不對(duì)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:算法是指解題方案的準(zhǔn)確而完整的描述,算法不等于程序,也不等于計(jì)算方法,所以A)錯(cuò)誤。設(shè)計(jì)算法時(shí)不僅要考慮對(duì)數(shù)據(jù)對(duì)象的運(yùn)算和操作,還要考慮算法的控制結(jié)構(gòu)。24、在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是A、可行性分析報(bào)告B、軟件需求規(guī)格說(shuō)明書C、概要設(shè)計(jì)說(shuō)明書D、集成測(cè)試計(jì)劃標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:A錯(cuò)誤,可行性分析階段產(chǎn)生可行性分析報(bào)告。C錯(cuò)誤,概要設(shè)計(jì)說(shuō)明書是總體設(shè)計(jì)階段產(chǎn)生的文檔。D錯(cuò)誤,集成測(cè)試計(jì)劃是在概要設(shè)計(jì)階段編寫的文檔。B正確,需求規(guī)格說(shuō)明書是后續(xù)工作如設(shè)計(jì)、編碼等需要的重要參考文檔。25、有以下程序#includeintfun(int(*s)[4],intn,intk){intm,i;m=s[0][k];for(i=1;i<n;i++)if(s[i][k]>m)m=s[i][k];returnm;}main(){inta[4][4]={{1,2,3,4},{11,12,13,14},{21,22,23,24},{31,32,33,34}};printf("%d\n",fun(a,4,0));}程序的運(yùn)行結(jié)果是A、4B、34C、31D、32標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題重點(diǎn)考察二維數(shù)組名作為實(shí)參進(jìn)行參數(shù)傳遞,在主函數(shù)中調(diào)用了fun函數(shù),實(shí)參為二維數(shù)組名a和兩個(gè)整數(shù)4、0,這樣對(duì)應(yīng)定義fun函數(shù)首部也有三種形式,這里采用了第一種形式,也就是行指針,這樣在fun函數(shù)對(duì)s[i][j]進(jìn)行操作實(shí)際上就是對(duì)主函數(shù)中的a[i][j]進(jìn)行操作,再分析fun函數(shù)的作用便可知,是求二維數(shù)組第0列中最大的那個(gè)元素。因此C選項(xiàng)正確。國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷第3套一、選擇題(本題共40題,每題1.0分,共40分。)1、以下敘述中正確的是A、程序必須包含所有三種基本結(jié)構(gòu)才能成為一種算法B、如果算法非常復(fù)雜,則需要使用三種基本結(jié)構(gòu)之外的語(yǔ)句結(jié)構(gòu),才能準(zhǔn)確表達(dá)C、只有簡(jiǎn)單算法才能在有限的操作步驟之后結(jié)束D、我們所寫的每條C語(yǔ)句,經(jīng)過(guò)編譯最終都將轉(zhuǎn)換成二進(jìn)制的機(jī)器指令標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C語(yǔ)句構(gòu)成了函數(shù),函數(shù)構(gòu)成的程序,經(jīng)過(guò)編譯轉(zhuǎn)換成二進(jìn)制代碼后可以運(yùn)行,算法是指為解決某個(gè)特定問(wèn)題而采取的確定且有限的步驟,可以利用代碼來(lái)描述算法,而算法+數(shù)據(jù)結(jié)構(gòu)才是程序,結(jié)構(gòu)化的程序由順序結(jié)構(gòu)、循環(huán)結(jié)構(gòu)和選擇結(jié)構(gòu)三種基本結(jié)構(gòu)組成。由這三種基本結(jié)構(gòu)組成的算法可以解決任何復(fù)雜的問(wèn)題,反之則不一定,所有算法必須在有限步驟后結(jié)束。2、在深度為7的滿二叉樹中,葉子結(jié)點(diǎn)的個(gè)數(shù)為A、32B、31C、64D、63標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:所謂滿二叉樹是指這樣的一種二叉樹:除最后一層外,每一層上的所有結(jié)點(diǎn)都有兩個(gè)子結(jié)點(diǎn)。也就是在滿二叉樹中,每一層上的結(jié)點(diǎn)數(shù)都是最大結(jié)點(diǎn)數(shù),即在滿二叉樹的第k層上有2k-1個(gè)結(jié)點(diǎn),且深度為m的滿二叉樹有2m-1個(gè)結(jié)點(diǎn)。對(duì)于深度為7的滿二叉樹,葉子結(jié)點(diǎn)所在的是第7層,一共有27-1=64個(gè)葉子結(jié)點(diǎn)。全部結(jié)點(diǎn)共27-1=127個(gè)。3、對(duì)長(zhǎng)度為n的線性表做快速排序,在最壞情況下,比較次數(shù)為()。A、nB、n-1C、n(n一1)D、n(n一1)/2標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:假設(shè)線性表的長(zhǎng)度為n,則在最壞情況下,冒泡排序需要經(jīng)過(guò)n/2遍的從前往后的掃描和n/2遍的從后往前的掃描,需要的比較次數(shù)為n(n-1)/2??焖倥判蚍ㄒ彩且环N互換類的排序方法,但由于它比冒泡排序法的速度快,因此稱為快速排序法。最壞情況下快速排序退化為冒泡排序。4、以下程序的輸出結(jié)果是()。#include<stdio.h>main(){inti;for(i=1;i<=5;i++){if(i%2)printf("*");elsecontinue;printf("#");}printf("$\n");}A、#*#*$B、*#*#$C、*#*#*#$D、*#*#*#$標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查對(duì)continue語(yǔ)句功能的了解,由于循環(huán)體中有if語(yǔ)句存在,所以在循環(huán)過(guò)程中將會(huì)有選擇地執(zhí)行continue語(yǔ)句,遇到continue語(yǔ)句時(shí),將會(huì)跳過(guò)循環(huán)體后半部分,提前結(jié)束本次循環(huán),進(jìn)入下一循環(huán)的條件判斷。本題中,當(dāng)i值為奇數(shù)時(shí),表達(dá)式i%2值為1,輸出*#,否則無(wú)輸出。5、數(shù)據(jù)庫(kù)(DB)、數(shù)據(jù)庫(kù)系統(tǒng)(DBS)和數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)之間的關(guān)系是()。A、DBS就是DB,也就是DBMSB、DBS包括DB和DBMSC、DB包括DBS和DBMSD、DBMS包括DB和DBS標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)(DB)是指長(zhǎng)期存儲(chǔ)在計(jì)算機(jī)內(nèi)的、有組織的、可共享的數(shù)據(jù)集合;數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)是用來(lái)管理數(shù)據(jù)及數(shù)據(jù)庫(kù)的系統(tǒng);數(shù)據(jù)庫(kù)系統(tǒng)(DBS)是由數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)管理系統(tǒng)、數(shù)據(jù)庫(kù)管理員、硬件等在一起的總稱。因此DBS包括DB和DBMS。6、有以下定義語(yǔ)句,編譯時(shí)會(huì)出現(xiàn)編譯錯(cuò)誤的是A、chara=’\n’;B、chara="aa";C、chara=’a’;D、chara=’\x2d’;標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在選項(xiàng)B中,由兩個(gè)字符aa組成一個(gè)字符串賦給一個(gè)字符變量a時(shí)會(huì)出錯(cuò)。7、關(guān)于C語(yǔ)言標(biāo)識(shí)符,以下敘述中錯(cuò)誤的是()。A、標(biāo)識(shí)符可全部由數(shù)字組成B、標(biāo)識(shí)符可全部由下畫線組成C、標(biāo)識(shí)符可全部由小寫字母組成D、標(biāo)識(shí)符可全部由大寫字母組成標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C語(yǔ)言標(biāo)識(shí)符只能由字母、數(shù)字、下畫線構(gòu)成,且只能以字母、下畫線開頭,故選項(xiàng)A不正確。8、有以下程序:#includemain(){charx=2,y=2,z;z=(Y<<1)&(x>>1);prinff(“%d\n”,z);}程序的輸出結(jié)果是()。A、1B、0C、4D、8標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查位運(yùn)算<<和&。y<<1為4,x>>1為1,二者與運(yùn)算后為0,故B選項(xiàng)正確。9、面向?qū)ο蠓椒ㄖ校^承是指A、一組對(duì)象所具有的相似性質(zhì)B、一個(gè)對(duì)象具有另一個(gè)對(duì)象的性質(zhì)C、各對(duì)象之間的共同性質(zhì)D、類之間共享屬性和操作的機(jī)制標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:面向?qū)ο蠓椒ㄖ?,繼承是使用已有的類定義作為基礎(chǔ)建立新類的定義技術(shù)。廣義地說(shuō),繼承是指能夠直接獲得已有的性質(zhì)和特征,而不必重復(fù)定義它們。10、有以下程序#includemain(){inta1,a2;charc1,c2;scanf("%d%c%d%c",&a1,&c1,&a2,&c2);printf("%d,%c,%d,%c",a1,c1,a2,c2);}若想通過(guò)鍵盤輸入,使得a1的值為12,a2的值為34,c1的值為字符a,c2的值為字符b,程序輸出結(jié)果是:12,a,34,b則正確的輸入格式是(以下□代表空格,代表回車)A、12□a□34□bB、12,a,34,bC、12a34bD、12□a34□b標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查scanf語(yǔ)句。scanf()函數(shù)是格式化輸入函數(shù),它從標(biāo)準(zhǔn)輸入設(shè)備(鍵盤)讀取輸入的信息。其調(diào)用格式為:scanf("<格式化字符串>",<地址表>)格式化字符串包括以下3類不同的字符;①格式化說(shuō)明符:格式化說(shuō)明符與前面用的printf()函數(shù)中的格式說(shuō)明符基本相同。②空白字符:空白字符會(huì)使scanf()函數(shù)在讀操作中略去輸入中的一個(gè)或多個(gè)空白字符。③非空白字符:一個(gè)非空白字符會(huì)使scanf()函數(shù)在讀入時(shí)剔除掉與這個(gè)非空白字符相同的字符。由于在scanf函數(shù)中,幾個(gè)變量之間沒(méi)有任何間隔,所以輸入的時(shí)候,也同樣不應(yīng)該有間隔。11、有以下程序段inta,b,c;a=10;b=50;c=30;if(a>b)a=b,b=c;c=a;printf("a=%db=%dc=%d\n",a,b,c);程序的輸出結(jié)果是A、a=10b=50c=30B、a=10b=30c=10C、a=10b=50c=10D、a=50b=30c=50標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題的程序段首先定義三個(gè)整型變量a,b,c,并且其初始值分別等于10,50,30,然后判斷a>b是否成立,如果條件成立,則把b的值賦給a,把c的值賦給b。由a和b的初始值可知,此條件表達(dá)式不成立,所以a和b的值保持不變。再執(zhí)行下一條語(yǔ)句,把a(bǔ)的值賦給c,所以c的當(dāng)前值等于10,最后由輸出語(yǔ)句輸出變量a,b,c的當(dāng)前值,分別為lO,50,10。12、在帶鏈隊(duì)列中,經(jīng)過(guò)一系列正常的操作后,如果front=rear,則隊(duì)列中的元素個(gè)數(shù)為A、0或1B、0C、1D、隊(duì)列滿標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:隊(duì)列是一種特殊的線性表,特殊之處在于它只允許在表的前端(front)進(jìn)行刪除操作,而在表的后端(rear)進(jìn)行插入操作,和棧一樣,隊(duì)列是一種操作受限制的線性表。進(jìn)行插入操作的端稱為隊(duì)尾,進(jìn)行刪除操作的端稱為隊(duì)頭。隊(duì)列的鏈?zhǔn)酱鎯?chǔ)也稱為鏈隊(duì)列。為了便于操作,可給鏈隊(duì)列添加1個(gè)頭結(jié)點(diǎn),并令頭指針指向頭結(jié)點(diǎn)。隊(duì)列為空的判斷條件是頭指針和尾指針的值相同,且均指向頭結(jié)點(diǎn)。當(dāng)隊(duì)列為空(0)或1時(shí),front=rear。13、設(shè)有定義語(yǔ)句intx[6]={2,4,6,8,5,7),*p=x,i;要求依次輸出x數(shù)組6個(gè)元素中的值不能完成此操作的語(yǔ)句是A、for(i=0;i<6;i++)printf("%2d",*(p++));B、for(i=0;i<6;i++)printf("%2d",*(p+i));C、for(i=0;i<6;i++)printf("%2d",*p++);D、for(i=0;i<6;i++)printf("%2d",(*p)++);標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:指針p指向數(shù)組x,因此可以使用p來(lái)輸出數(shù)組x的值。選項(xiàng)A中,*(p++)表示先取出p指向的元素的值,然后p++指向下一個(gè)元素,滿足要求;選項(xiàng)B中*(p+i)每次i的值發(fā)生變化,(p+i)指向x數(shù)組的x[i]元素,因此*(p+i)是取出數(shù)組x的x[i]元素的值,滿足要求;選項(xiàng)C和選項(xiàng)A相比,少了括號(hào),由于.運(yùn)算符的優(yōu)先級(jí)比++要求,因此,因此*p++表示先取出p指向的元素的值,然后p再++指向下一個(gè)元素,滿足要求:選項(xiàng)D中(*p)++表示先取出p指向的元素的值,然后該值++,p沒(méi)有增加,每次循環(huán)都*p取出的x[0]的值,不滿足要求。14、在結(jié)構(gòu)化程序設(shè)計(jì)中,模塊劃分的原則是A、各模塊應(yīng)包括盡量多的功能B、各模塊的規(guī)模應(yīng)盡量大C、各模塊之間的聯(lián)系應(yīng)盡量緊密D、模塊內(nèi)具有高內(nèi)聚度、模塊間具有低耦合度標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:內(nèi)聚性是對(duì)一個(gè)模塊內(nèi)部各個(gè)元素間彼此結(jié)合的緊密程度的度量。耦合性是對(duì)模塊間互相連接的緊密程度的度量。在結(jié)構(gòu)化程序設(shè)計(jì)中,模塊劃分應(yīng)遵循高內(nèi)聚、低耦合的原則,即減弱模塊之間的耦合性和提高模塊內(nèi)聚性,有利于提高軟件模塊的獨(dú)立性。15、軟件調(diào)試的目的是A、發(fā)現(xiàn)錯(cuò)誤B、改正錯(cuò)誤C、改善軟件的性能D、驗(yàn)證軟件的正確性標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:軟件調(diào)試的任務(wù)是診斷和改正程序中的錯(cuò)誤。程序調(diào)試活動(dòng)由兩部分組成,一是根據(jù)錯(cuò)誤的跡象確定程序中的錯(cuò)誤的確切性質(zhì)、原因和位置。二是對(duì)程序進(jìn)行修改,排除這個(gè)錯(cuò)誤。16、表達(dá)式:(int)((double)9/2)一9%2的值是()。A、5B、4C、3D、2標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:C語(yǔ)言的計(jì)算過(guò)程與常規(guī)相似,這個(gè)表達(dá)式的計(jì)算過(guò)程為,首先求出9除以2的商等于4,再把其強(qiáng)制轉(zhuǎn)化為實(shí)型數(shù)據(jù)為4.0,然后再?gòu)?qiáng)制轉(zhuǎn)4,減去9對(duì)2求余數(shù)1,得到其結(jié)果等于3。17、若有以下定義和語(yǔ)句:#includechars1[10]=“abcd!”,*s2="\n123\\";prinff(“%d%d\n”,strlen(s1),strlen(s2));程序的運(yùn)行結(jié)果是()。A、107B、105C、55D、58標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:strlen函數(shù)返回字符串的長(zhǎng)度,求字符串長(zhǎng)度時(shí),遇到結(jié)束標(biāo)志‘\0’為止,但是長(zhǎng)度不包括結(jié)束標(biāo)識(shí)。字符數(shù)組s1的后5個(gè)元素沒(méi)有賦值,都為‘\0’,即”abed!”后為‘\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)正確。18、以下程序段的輸出結(jié)果是()。main(){inta=0,b=0,c=0,d=0;if(a=1)b=1;c=2;elsed=3;printf(’’%d,%d,%d,%d\n’’,a,b,c,d);}A、1,2,3,4B、0,0,1,2C、編譯有錯(cuò)D、0,1,2,0標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:if語(yǔ)句執(zhí)行一條語(yǔ)句,若需要多條語(yǔ)句時(shí),則應(yīng)該使用復(fù)合語(yǔ)句用{}括起來(lái)。因此題目“if(a=1)b=1;c=2;elsed=3;”,if分支有兩條語(yǔ)句,沒(méi)構(gòu)成復(fù)合語(yǔ)句。19、下面函數(shù)的功能是()。sss(s,t)char*s,*t;{while(*s);while(*t)*(s++)=*(t++);returns;}A、將字符串S復(fù)制到字符串t中B、比較兩個(gè)字符串的大小C、求字符串的長(zhǎng)度D、將字符串t續(xù)接到字符串S中標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查指針變量的運(yùn)用。本題中的函數(shù)實(shí)質(zhì)上是將字符串t續(xù)接到字符串s中。20、有以下程序(strcat函數(shù)用以連接兩個(gè)字符串)#inolude#includemain(){chara[20]="ABCD\0EFG\0",b[]="TJK";streat(a,b);printf("%s\n",a);}程序運(yùn)行后的輸出結(jié)果是A、ABCDE\0FG\0IJKB、ABCDIJKC、IJKD、EFGIJK標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在字符串中字符’\0’表示字符串的結(jié)束標(biāo)忐,所以字符串a(chǎn)和b相連接的結(jié)果為ABCDIJK。21、C語(yǔ)言中的標(biāo)識(shí)符分為關(guān)鍵字、預(yù)定義標(biāo)識(shí)符和用戶標(biāo)識(shí)符,以下敘述正確的是A、關(guān)鍵字可用作用戶標(biāo)識(shí)符,但失去原有含義B、在標(biāo)識(shí)符中大寫字母和小寫字母被認(rèn)為是相同的字符C、用戶標(biāo)識(shí)符可以由字母和數(shù)字任意順序組成D、預(yù)定義標(biāo)識(shí)符可用作用戶標(biāo)識(shí)符,但失去原有含義標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:預(yù)定義標(biāo)識(shí)符是C語(yǔ)言中的標(biāo)識(shí)符,在C語(yǔ)言中也有特定的含義,如函數(shù)printf、scanf、sin等和編譯預(yù)處理命令名(如define和include)。預(yù)定義標(biāo)識(shí)符可以作為用戶標(biāo)識(shí)符使用,只是這樣會(huì)失去系統(tǒng)規(guī)定的原義:22、有以下程序#includemain(){intx,y,z;x=y=1;z=x++,y++,++y;printf("%d,%d,%d\n",x,y,z);)程序運(yùn)行后的輸出結(jié)果是A、2,3,1B、2,3,2C、2,3,3D、2,2,1標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在程序中,整型變量x、y的初值都為1,賦值語(yǔ)句z=x++,y++,++y右邊的“x++,y++,++y”是一個(gè)逗號(hào)表達(dá)式,所以逗號(hào)表達(dá)式的值為++y的值。執(zhí)行逗號(hào)表達(dá)式“x++,y++,++y”后,x的值為2,y的值為3,z取逗號(hào)表達(dá)式的值,為1。23、設(shè)有定義:struet{charmark[12];intnum1;doublenum2;}t1,t2;,若變量均已正確賦初值,則下列語(yǔ)句中錯(cuò)誤的是()。A、t1=t2;B、t2.num1=t1.num1;C、t2.mark=t1.mark;D、t2.num2=t1.num2;標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查結(jié)構(gòu)體變量的引用。C選項(xiàng)中mark為結(jié)構(gòu)體中的數(shù)組,不能直接賦值,所以C選項(xiàng)錯(cuò)誤。24、若在定義語(yǔ)句:inta,b,c,*p=&c;接著執(zhí)行以下選項(xiàng)中的語(yǔ)句,則能正確執(zhí)行的語(yǔ)句是A、scanf("%d%d%d",a,b,c);B、scanf("%d",a,b,c);C、scanf("%d",p);D、scanf("%d",&p);標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:程序語(yǔ)句inta,b,c,*p=&c;定義了三個(gè)整型變量a,b,c,和一個(gè)整型指針變量p,并且把變量c的地址賦給p。scanf函數(shù)的一般形式為“scanf(“格式控制字符串”,地址列表)”,其中的地址列表應(yīng)當(dāng)是存放輸入數(shù)據(jù)變量的地址。25、以下函數(shù)的功能是()。voidfun(char*a,char*b){while((*b=*a)!=’\0’){a++;b++;}}A、使指針a指向b所指字符串B、檢查a和b所指字符串中是否有’0\’C、將a所指字符串賦給b所指空間D、將a所指字符串和b所指字符串進(jìn)行比較標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:題目中在while語(yǔ)句的條件中是把字符*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ǔ)空間,選項(xiàng)C正確。26、有以下程序,程序運(yùn)行后的輸出結(jié)果是main(){intx=35,B;charz=’B’;B=((x)&&(z<’b’));printf("%d\n",B);}A、0B、35C、1D、66標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:表達(dá)式((x)&&(z<’b’)),x為35非零,考慮表達(dá)式z<’b’,成立,則B的值為1。27、若以下選項(xiàng)中的變量a,b,y均己正確定義并賦值,則語(yǔ)法正確的switch語(yǔ)句是A、switch(a*a+b*b){default:break;case3:y=a+b;break;case2:y=a-b;break;}B、switch(a+b){case1:case3:y=a+b;break;case0:case4:y=a-b;}C、switch(a+9){casea:y=a-b:caseb:y=a+b:}D、switcha*b{case10:y=a+b;default:y=a-b;}標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:使用switch語(yǔ)句直接處理多個(gè)分支,其一般形式為:switch(表達(dá)式){case常量表達(dá)式1:語(yǔ)句1:break;case常量表達(dá)式n:語(yǔ)句n:break;defauh:語(yǔ)句n+1;break;}switch語(yǔ)句的執(zhí)行流程是:首先計(jì)算switch后面圓括號(hào)中表達(dá)式的值,然后用此值依次與各個(gè)case的常量表達(dá)式比較,若圓括號(hào)中表達(dá)式的值與某個(gè)case后面的常量表達(dá)式的值相等,就執(zhí)行此case后面的語(yǔ)句,執(zhí)行后遇break語(yǔ)句就退出switch語(yǔ)句;若圓括號(hào)中表達(dá)式的值與所有case后面的常量表達(dá)式都不等,則執(zhí)行default后面的語(yǔ)句n+1,然后退出switch語(yǔ)句。對(duì)于選項(xiàng)B),case語(yǔ)句和常量之問(wèn)沒(méi)有空格,而選項(xiàng)C)中的case后面為變量.選項(xiàng)D)中switch后面沒(méi)給出圓括號(hào)。28、以下函數(shù)的功能是:通過(guò)鍵盤輸入數(shù)據(jù),為數(shù)組中的所有元素賦值。#include#defineN10voidfun(intx[N]){inti=0;while(iA、x+iB、x[i+1]C、x+(i++)D、x[++i]標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查數(shù)組和scanf函數(shù)的使用。程序通過(guò)、while循環(huán)來(lái)給數(shù)組元素賦值,賦值語(yǔ)句通過(guò)調(diào)用scanf函數(shù)來(lái)實(shí)現(xiàn)。scanf函數(shù)從鍵盤接收數(shù)據(jù),第二個(gè)參數(shù)是數(shù)據(jù)保存的地址.因此選項(xiàng)B和選項(xiàng)D不是地址,錯(cuò)誤。選項(xiàng)A和選項(xiàng)C是地址,但是選項(xiàng)A的i值不會(huì)發(fā)生變化,循環(huán)體內(nèi)每次都是給同一個(gè)元素賦值,不滿足要求,選項(xiàng)C正確。29、有以下定義和語(yǔ)句:structworkers{intnum;charname[20];charc;struct{intday;intmonth;intyear;}s;);structworkersw,*pw;pw=&w;能給W中year成員賦1980的語(yǔ)句是A、w.year=1980;B、pw->year=1980;C、w.S.year=1980;D、*pw.year=1980;標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題主要考查的是結(jié)構(gòu)體變量的嵌套定義,也就是說(shuō)一個(gè)結(jié)構(gòu)體變量也可以是一個(gè)結(jié)構(gòu)體。在本題中works這個(gè)結(jié)構(gòu)體中包含了結(jié)構(gòu)體s。所以對(duì)結(jié)構(gòu)體變量w中year成員的引用是w.s.year。30、以下結(jié)構(gòu)體說(shuō)明和變量定義中,正確的是A、typedefstructabc{intn;doublem;}ABC;ABCx,y;B、structabc{intn;doublem);structabcx,y;C、structABC{intn;doublem;}structABCx,y;D、structabc{intn;doublem;};abcx,y;標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:選項(xiàng)B中結(jié)構(gòu)體定義中每個(gè)成員后面的分號(hào)都不能省略,doublem后沒(méi)分號(hào),因此錯(cuò)誤。選項(xiàng)C結(jié)構(gòu)體類型定義完畢后,}外沒(méi)加分號(hào)。選項(xiàng)D中定義變量要加上關(guān)鍵字struct。31、有以下程序#include<stdio.h>main(){intk=4,m=1,p;fun(inta,intb){intstaticm=0,i=2:p=fun(k,m);i:i+m+1;printf("%d,",p);m=i+a+b;p=fun(k,m);returnm;}printf("%d\n",p);}程序運(yùn)行后的輸出結(jié)果是A、8,17B、7,16C、8,8D、7,17標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查了靜態(tài)變量以及局部變量的同名問(wèn)題。主函數(shù)中調(diào)用fun函數(shù)兩次,第一次調(diào)用fun(4,1),形參a和b接收以后,i值為3,m的值為8,調(diào)用結(jié)束返回8存放到p中并且輸出p的值為8,除了靜態(tài)變量m和i。變量a,b撤銷。第二次調(diào)用fun(4,1),接收實(shí)參值以后,i為3+8+1,而m為12+4+1,即輸出函數(shù)值17。32、有以下程序#includemain(){charb[4][10];inti;for(i=0;i<4;i++)scanf("%s",b[i]);printf("%s%s%s%s\n",b[0],b[1],b[2],b[3]);}執(zhí)行時(shí)若輸入:Figflowerisred.<回車>則輸出結(jié)果是()。A、Figflowerisred.B、Figflowerisred.C、Figflowerisred.D、Figflowerisred.標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:scanf()輸入字符串的時(shí)候,空格和回車符均為分隔符,所以不能記錄空格,即b[1]="Fig",b[2]="flower",b[2]="is",b[3]="red.",所以輸出結(jié)果為選項(xiàng)A33、有以下程序:#includeintb=2:intfun(int*k){b=*k+b;retum(b);}main(){intat[10]={1,2,3,4,5,6,7,8),i;for(i=2;i<4;i++){b=fun(&a[i])+b;printf("%d",b);}printf("\n");}程序運(yùn)行后的輸出結(jié)果是A、810B、1028C、1012D、1016標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:i=2時(shí),fun(&a[2])返回值是b=b+a[1]=2+3=5,b=b+b=5+5=10;i=3時(shí),fun(&a【3】)返回值是b=b+a[3]=10+4=14,b=b+b=14+14=28。34、有以下程序#includevoidfunc(intn){staticintnum=1;num+=n;printf("%d",num);}main(){func(3);func(4);printf("\n");}程序運(yùn)行后的輸出是()。A、48B、45C、35D、34標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:func()有一個(gè)靜態(tài)變量num,靜態(tài)變量的初始化只進(jìn)行一次,其值在程序運(yùn)行過(guò)程中一直存在。調(diào)用func(3)時(shí)num被初始化為1,語(yǔ)句"num+=n;"計(jì)算得num值為4,輸出結(jié)果為4;調(diào)用func(4)時(shí)num為上一次計(jì)算的結(jié)果4,再次計(jì)算num=8,輸出結(jié)果為8,。答案選A。35、設(shè)有定義charstr[]="Hello";則語(yǔ)句printf("%d%d",sizeof(str),strlen(str));的輸出結(jié)果是A、5,5B、6,6C、6,5D、5,6標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查sizeof和strlen對(duì)字符串的處理不同之處,sizeof求出字符串的字符個(gè)數(shù),包括結(jié)尾符。Strlen求出字符串的實(shí)際字符,不包括結(jié)尾符。所以答案為6,5,C選項(xiàng)正確。36、以下關(guān)于typedef的敘述錯(cuò)誤的是A、typedef只是將已存在的類型用一個(gè)新的名字來(lái)代表B、用typedef可以為各種類型說(shuō)明一個(gè)新名,但不能用來(lái)為變量說(shuō)明一個(gè)新名C、用typedef可以增加新類型D、用typedef為類型說(shuō)明一個(gè)新名,通??梢栽黾映绦虻目勺x性標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:C語(yǔ)言允許用typedef說(shuō)明一種新的類型名,其一般形式為:typedef類型名標(biāo)識(shí)符;在此“類型名”必須是在此語(yǔ)句之前已有定義的類型標(biāo)識(shí)符?!皹?biāo)識(shí)符”是一個(gè)用戶定義標(biāo)識(shí)符,用作新的類型名。Typedef語(yǔ)句的作用僅僅是用“標(biāo)識(shí)符”來(lái)代表已存在的“類型名”,并未產(chǎn)生新的數(shù)據(jù)類型,原來(lái)的類型名依然有效,這樣可以增加程序的可讀性。37、有以下程序#include<stdio.h>structtt{intx;structtt*y;)*p;structtta[41={20,a+1,15,a+2,30,a+3,17,a};main(){inti;p=a;for(i=1;i<=2;i++){printf("%d,",p->x);p=p->y;}}程序的運(yùn)行結(jié)果是A、20,15,B、30,17C、15,30,D、20,30,標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:程序定義了結(jié)構(gòu)體類型tt,其成員包括一個(gè)整型數(shù)據(jù)x和指向其自身結(jié)構(gòu)的指針變量y。程序在定義結(jié)構(gòu)體數(shù)組a的同時(shí)對(duì)其進(jìn)行了初始化。其元素a[0]的成員y被賦值為元素a[1]的地址,a[1].y被賦值為a[2]的地址,a[2].y被賦予a[3]的地址,a[3].y被賦予a[0]的地址。這就形成了一個(gè)單向的循環(huán)鏈表,每個(gè)元素的指針成員都指向下一個(gè)元素的地址。在主函數(shù)中,通過(guò)一個(gè)for循環(huán)語(yǔ)句,輸出該鏈表前2個(gè)節(jié)點(diǎn)數(shù)值成員的值,即a[0].x和a[1].x。38、有以下程序#include<stdio.h>#include"string.h"typedefstruct{charname[9];charsex;floatscore[2];}STU;voidf(STUa){STUb={"Zhao",’m’,85.0,90.0};inti;strcpy(a.name,b.name);a.sex=b.sex;for(i=0;i<2;i++)a.score[i]=b.score[i];}程序的運(yùn)行結(jié)果是A、Qian,m,85,90B、Zhao,m,85,90C、Zhao,f,95,92D、Qian,f,95,92標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查在結(jié)構(gòu)體中函數(shù)的實(shí)參和形參的傳遞,調(diào)用f(c)后,實(shí)參傳向形參,進(jìn)行f()函數(shù)功能的實(shí)現(xiàn),但程序中沒(méi)有返回語(yǔ)句,故形參不能將值傳回實(shí)參,它們值的傳遞具有不可逆性,所與printf輸出的還是c中實(shí)參的值。39、有以下程序voidfun1(char*p){char*q;q=p;while(*q!=’\0’){(*q)++;q++;}}main(){chara[]={"Program"},*p;p=&a[3];fun1(p);printf("%s\n",a);}程序執(zhí)行后的輸出結(jié)果是A、PrphsbnB、ProhsbnC、ProgsbnD、Program標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在函數(shù)voidfun1(char*p)中,語(yǔ)句(*q)++的功能是q所指的字符加1,變成其后面的字符;q++就是指針q指向下一個(gè)字符的位置。所以在主函數(shù)中,語(yǔ)句p=&a[3]的作用是使指針p指向字符數(shù)組a[]中的第四個(gè)字符的位置,即p指向字符’g’;然后調(diào)用函數(shù)fun1(p)后,字符’g’變成’h’,字符’r’變成’s’,字符’a’變成’b’,字符’m’變成’n’,因而字符數(shù)組a[]中的內(nèi)容就成“Prohsbn”。40、面向?qū)ο蠓椒ㄖ?,繼承是指A、一組對(duì)象所具有的相似性質(zhì)B、一個(gè)對(duì)象具有另一個(gè)對(duì)象的性質(zhì)C、各對(duì)象之間的共同性質(zhì)D、類之間共享屬性和操作的機(jī)制標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:繼承是面向?qū)ο蟮姆椒ǖ囊粋€(gè)主要特征,是使用已有的類的定義作為基礎(chǔ)建立新類的定義技術(shù)。廣義的說(shuō),繼承是指能夠直接獲得已有的性質(zhì)和特征,而不必重復(fù)定義它們,所以說(shuō)繼承是指類之間共享屬性和操作的機(jī)制。國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷第4套一、選擇題(本題共25題,每題1.0分,共25分。)1、下列敘述中正確的是A、循環(huán)隊(duì)列中的元素個(gè)數(shù)隨隊(duì)頭指針與隊(duì)尾指針的變化而動(dòng)態(tài)變化B、循環(huán)隊(duì)列中的元素個(gè)數(shù)隨隊(duì)頭指針的變化而動(dòng)態(tài)變化C、循環(huán)隊(duì)列中的元素個(gè)數(shù)隨隊(duì)尾指針的變化而動(dòng)態(tài)變化D、循環(huán)隊(duì)列中的元素個(gè)數(shù)不會(huì)變化標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:所謂循環(huán)結(jié)構(gòu)就是將隊(duì)列存儲(chǔ)空間的最后一個(gè)位置繞到第一個(gè)位置上,形成邏輯上的環(huán)狀空間,循環(huán)使用。在循環(huán)隊(duì)列中,用隊(duì)尾指針rear指向隊(duì)列中的隊(duì)尾元素,用隊(duì)頭指針front指向隊(duì)頭元素的前一個(gè)位置,因此,隊(duì)列中的元素?cái)?shù)等于從隊(duì)頭指針front指向的后一個(gè)位置與隊(duì)尾指針rear指向位置之間的元素?cái)?shù)量。2、某圖書集團(tuán)數(shù)據(jù)庫(kù)中有關(guān)系模式R(書店編號(hào),書籍編號(hào),庫(kù)存數(shù)量,部門編號(hào),部門負(fù)責(zé)人),其中要求(1)每個(gè)書店的每種書籍只在該書店的一個(gè)部門銷售;(2)每個(gè)書店的每個(gè)部門只有一個(gè)負(fù)責(zé)人;(3)每個(gè)書店的每種書籍只有一個(gè)庫(kù)存數(shù)量。則關(guān)系模式R最高是()。A、1NFB、2NFC、3NFD、BCNF標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:由題可知關(guān)系模式R有三個(gè)函數(shù)依賴:(書店編號(hào),書籍編號(hào))→部門編號(hào)(書店編號(hào),部門編號(hào))→負(fù)責(zé)人(書店編號(hào),書籍編號(hào))→庫(kù)存數(shù)量由此可知,(書店編號(hào),書籍編號(hào))可以唯一標(biāo)識(shí)關(guān)系模式R中的每個(gè)元組,因此屬于關(guān)系模式的主鍵。在此關(guān)系模式中,每個(gè)屬性都是不可再分的,R屬于1NF,且“書店編號(hào)”和“書籍編號(hào)”單獨(dú)之一都不能決定其他非主屬性,所以R屬于2NF;但(書店編號(hào),書籍編號(hào))可以決定“部門編號(hào)”,“部門編號(hào)”又可決定“部門負(fù)責(zé)人”,存在傳遞依賴,所以不屬于3NF,更不是BCNF。3、若有定義語(yǔ)句:intm[][3]={1,2,3,4,5,6,7};,則與該語(yǔ)句等價(jià)的是()。A、intm[][3]={{1,2,3},{4,5},{6,7}};B、intm[][3]={{1,2},{3,4},{5,6,7}};C、intm[][3]={{1,2,3},{4,5,6},{7}};D、intm[][3]={{1},{2,3,4},{5,6,7}};標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:考查二維數(shù)組的初始化。初始化二維數(shù)組的時(shí)候,若給數(shù)組的全部元素均賦初值,此時(shí)第一維的元素個(gè)數(shù)可以不指定,部分賦值時(shí),最后一行元素不寫完整,此時(shí)數(shù)組第一維元素個(gè)數(shù)仍然可以不指定。題中為按行給數(shù)組m賦值,最后一行只有部分賦初值,答案選C。4、有以下程序main(){inti,j;for(i=1;i<4;i++){for(j=i;j<4;j++)printf("%d*%d=%d",i,j,i*j);printf("\n");}}A、1*1=11*2=21*3=32*1=22*2=43*1=3B、1*1=11*2=22*2=41*3=32*3=63*3=9C、1*1=11*2=21*3=32*2=42*3=63*3=9D、1*1=12*1=22*2=43*1=33*2=63*3=9標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:外層for循環(huán)的自變量i從1開始,每次循環(huán)后增1,直到i等于3結(jié)束。對(duì)于外層循環(huán)自變量i的每一個(gè)值,內(nèi)層循環(huán)的自變量j每次從i開始,每次循環(huán)后增1,直到j(luò)等于3結(jié)束。所以在每次外循環(huán)開始后,內(nèi)層循環(huán)在一行先打印i*i=兩個(gè)乘數(shù)的積,然后回車換行,下次循環(huán)從下一行開始打印輸出結(jié)果。5、設(shè)有定義:doublea[10],*s=a;,以下能夠代表數(shù)組元素a[3]的是()。A、(*s)[3]B、*(s+3)C、*s[3]D、*s+3標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:題中,首先定義了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)。6、下面不屬于軟件測(cè)試實(shí)施步驟的是A、集成測(cè)試B、回歸測(cè)試C、確認(rèn)測(cè)試D、單元測(cè)試標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:軟件測(cè)試實(shí)施的步驟有單元測(cè)試、集成測(cè)試和確認(rèn)測(cè)試。7、有三個(gè)關(guān)系R、S和T如下:由關(guān)系R和S通過(guò)運(yùn)算得到關(guān)系T,則所使用的運(yùn)算為A、并B、自然連接C、笛卡爾積D、交標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:關(guān)系R與S經(jīng)交運(yùn)算后所得到的關(guān)系是由那些既在R內(nèi)又在S內(nèi)的有序組組成的,記為R∩S。8、有兩個(gè)關(guān)系R和T如下:則由關(guān)系R得到關(guān)系T的操作是A、選擇B、投影C、交D、并標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:由關(guān)系R和T所包含的元素可知,關(guān)系R經(jīng)過(guò)選擇操作就可以得到關(guān)系T。9、C語(yǔ)言中的標(biāo)識(shí)符分為關(guān)鍵字、預(yù)定義標(biāo)識(shí)符和用戶標(biāo)識(shí)符,以下敘述正確的是A、關(guān)鍵字可用作用戶標(biāo)識(shí)符,但失去原有含義B、在標(biāo)識(shí)符中大寫字母和小寫字母被認(rèn)為是相同的字符C、用戶標(biāo)識(shí)符可以由字母和數(shù)字任意順序組成D、預(yù)定義標(biāo)識(shí)符可用作用戶標(biāo)識(shí)符,但失去原有含義標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:預(yù)定義標(biāo)識(shí)符是C語(yǔ)言中的標(biāo)識(shí)符,在C語(yǔ)言中也有特定的含義,如函數(shù)printf、scanf、sin等和編譯預(yù)處理命令名(如define和include)。預(yù)定義標(biāo)識(shí)符可以作為用戶標(biāo)識(shí)符使用,只是這樣會(huì)失去系統(tǒng)規(guī)定的原義:10、若有定義語(yǔ)句:intx=12,y=8,z;在其后執(zhí)行語(yǔ)句z=0.9+x/y;則z的值為A、1.9B、1C、2D、2.4標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:由于x,y,z都是整型數(shù)據(jù),所以x除以y的值為整型數(shù)值1,1和0.9相加得到1.9,再轉(zhuǎn)換為整型數(shù)1賦給整型變量z。11、以下C語(yǔ)言用戶標(biāo)識(shí)符中,不合法的是A、_1B、AaBcC、a_bD、a--b標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查用戶標(biāo)識(shí)符,C語(yǔ)言中,用戶標(biāo)識(shí)符只能由字母、下劃線和數(shù)組組成,且必須以字母或者下劃線開始。選項(xiàng)A)、B)和C)都是正確的,選項(xiàng)D)中的case是C語(yǔ)言關(guān)鍵字,不能作為用戶標(biāo)識(shí)符,是錯(cuò)誤的。12、設(shè)有某函數(shù)的說(shuō)明為int*func(inta[10],intn);則下列敘述中,正確的是A、說(shuō)明中的a[10]寫成a[]或*a效果完全一樣B、形參a對(duì)應(yīng)的實(shí)參只能是數(shù)組名C、func的函數(shù)體中不能對(duì)a進(jìn)行移動(dòng)指針(如a++)的操作D、只有指向10個(gè)整數(shù)內(nèi)存單元的指針,才能作為實(shí)參傳給a標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:函數(shù)func為返回值為指針的函數(shù),有兩個(gè)形參,形參數(shù)組a為指針變量,保存實(shí)參數(shù)組的首地址,其元素個(gè)數(shù)由實(shí)參數(shù)組決定,因此說(shuō)明中的a[10]寫成a[]或*a效果完全一樣。13、有如下程序段:intx=12;doubley=3.141593;printf("%d%8.6f",x,y);其輸出結(jié)果是A、123.141593B、12,3.141593C、123.1415930D、123.141593標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查printf語(yǔ)句。primf()函數(shù)是格式化輸出函數(shù),一般用于向標(biāo)準(zhǔn)輸出設(shè)備按規(guī)定格式輸出信息。在編寫程序時(shí)經(jīng)常會(huì)用到此函數(shù)。printf()函數(shù)的調(diào)用格式為:printf("<格式化字符串>",<參量表>)。其中,“格式化字符串”包括兩部分內(nèi)容:一部分是正常字符,這些字符將按原樣輸出;另一部分是格式化規(guī)定字符,以“%”開始,后跟一個(gè)或幾個(gè)規(guī)定字符,用來(lái)確定輸出內(nèi)容格式。格式化字符串的格式是:%[標(biāo)志][輸出最小寬度][精度][長(zhǎng)度]格式字符①標(biāo)志:標(biāo)志字符為-、+、空格等,其意義如下所示:-:結(jié)果左對(duì)齊,右邊填空格;+:輸出符號(hào)(正號(hào)或負(fù)號(hào));空格:輸出值為正時(shí)冠以空格,為負(fù)時(shí)冠以負(fù)號(hào)。②輸出最小寬度:用十進(jìn)制整數(shù)來(lái)表示輸出的最少位數(shù)(包括小數(shù)點(diǎn)在內(nèi)至少要輸出這么多位)。若實(shí)際位數(shù)多于定義的寬度,則按實(shí)際位數(shù)輸出;若實(shí)際位數(shù)少于定義的寬度,則右對(duì)齊,左邊留空;有負(fù)號(hào),左對(duì)齊,右邊留空;表示寬度的數(shù)字以0開始,則右對(duì)齊,左邊留空。③精度:精度格式符以“.”開頭,后跟十進(jìn)制整數(shù)。它的意義是:如果輸出數(shù)字,則表示小數(shù)的位數(shù),若實(shí)際位數(shù)大于所定義的精度數(shù),則四舍五入,若不足則補(bǔ)0;如果輸出的是字符,則表示輸出字符的個(gè)數(shù),若實(shí)際位數(shù)大于所定義的精度數(shù),則截去超過(guò)的部分;④長(zhǎng)度:長(zhǎng)度格式符為h和l兩種,b表示按短整型量輸出,l表示按長(zhǎng)整型量輸出。14、有以下程序#includemain(){inta=3;do{printf("%d,",a-=2);}while(!(--a));printf("\n");}程序運(yùn)行后的輸出結(jié)果是()。A、1,-2,B、1,C、3,0,D、1,0標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:循環(huán)條件是表達(dá)式"!(--a)",即當(dāng)--a為0時(shí),循環(huán)才會(huì)繼續(xù)進(jìn)行。該程序中do-while循環(huán)了兩次,第一次循環(huán)輸出a-=2的值,即1。之后判定循環(huán)條件為真,進(jìn)入第二次循環(huán)輸出值-2,判定循環(huán)條件為"?。?3)",為假,結(jié)束循環(huán),所以輸出的結(jié)果為選項(xiàng)A)。15、有以下程序#includeintf(intn);main(){inta=3,s;s=f(a);s=s+f(a);printf("%d\n",s);}intf(intn){staticinta=1;n+=a++;returnn;}程序運(yùn)行后的輸出結(jié)果是A、9B、8C、7D、10標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在主函數(shù)中第一次調(diào)用f(a)時(shí),得到變量s的值等于4,
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO/IEC 14888-4:2024 EN Information security - Digital signatures with appendix - Part 4: Stateful hash-based mechanisms
- 2025年充電樁充電設(shè)備生產(chǎn)許可證申請(qǐng)與審批合同
- 2025年度新能源汽車充電樁建設(shè)與運(yùn)營(yíng)服務(wù)合同-@-3
- 2024 年度中國(guó)汽車行業(yè)爭(zhēng)議解決報(bào)告
- 2025年度小時(shí)工維修養(yǎng)護(hù)服務(wù)合同范本
- 2025年度知識(shí)產(chǎn)權(quán)保險(xiǎn)產(chǎn)品代理與服務(wù)合同
- 2025年心電遙測(cè)監(jiān)護(hù)儀項(xiàng)目合作計(jì)劃書
- 英語(yǔ)-黑龍江省大慶市實(shí)驗(yàn)中學(xué)2024-2025學(xué)年高一上學(xué)期階段考試
- 2025年瀝青試驗(yàn)儀器項(xiàng)目合作計(jì)劃書
- 2025年度走讀生戶外活動(dòng)安全責(zé)任承諾協(xié)議范本
- 羽毛球教案18課時(shí)
- 鏈家新人成長(zhǎng)手冊(cè)10
- 成人重癥患者人工氣道濕化護(hù)理專家共識(shí) 解讀
- 2-3-分子生物學(xué)與基因工程
- 新版蘇教版六年級(jí)數(shù)學(xué)上冊(cè)全冊(cè)解析
- 焦煤集團(tuán)5MW10MWh儲(chǔ)能技術(shù)方案
- JT-T-617.7-2018危險(xiǎn)貨物道路運(yùn)輸規(guī)則第7部分:運(yùn)輸條件及作業(yè)要求
- JTT 1499-2024 公路水運(yùn)工程臨時(shí)用電技術(shù)規(guī)程(正式版)
- 樹木吊裝施工專項(xiàng)施工方案
- 2024遼寧大連中遠(yuǎn)海運(yùn)川崎船舶工程限公司招聘73人公開引進(jìn)高層次人才和急需緊缺人才筆試參考題庫(kù)(共500題)答案詳解版
- 2024年上海市法院系統(tǒng)輔助文員招聘筆試參考題庫(kù)附帶答案詳解
評(píng)論
0/150
提交評(píng)論