國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷37(共255題)_第1頁(yè)
國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷37(共255題)_第2頁(yè)
國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷37(共255題)_第3頁(yè)
國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷37(共255題)_第4頁(yè)
國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷37(共255題)_第5頁(yè)
已閱讀5頁(yè),還剩66頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷37(共9套)(共255題)國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷第1套一、選擇題(本題共40題,每題1.0分,共40分。)1、若有說明:typedefstruct{inta;charc;}w;則以下敘述正確的是()。A、編譯后系統(tǒng)為w分配5個(gè)字節(jié)B、編譯后系統(tǒng)為w分配6個(gè)字節(jié)C、編譯后系統(tǒng)為w分配58個(gè)字節(jié)D、編譯后系統(tǒng)不為w分配存儲(chǔ)空間標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:w是一個(gè)自定義類型,而不是變量,故編譯后系統(tǒng)不為w分配存儲(chǔ)空間。當(dāng)使用w定義變量時(shí)才會(huì)為其定義的變量分配存儲(chǔ)空間。2、設(shè)某二叉樹的后序序列為CBA,中序序列為ABC,則該二叉樹的前序序列為A、BCAB、CBAC、ABCD、CAB標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:二叉樹的前序遍歷順序?yàn)槭紫仍L問根結(jié)點(diǎn),再依次訪問左結(jié)點(diǎn)和右結(jié)點(diǎn)。中序遍歷的順序?yàn)槭紫仍L問左結(jié)點(diǎn),然后依次訪問根結(jié)點(diǎn)和右結(jié)點(diǎn)。后序遍歷首先遍歷左子樹,然后遍歷右子樹,最后訪問根結(jié)點(diǎn)。根據(jù)后序可以很快確定根結(jié)點(diǎn),然后可以查看根在中序中位置,將中序分為左右兩部分,左邊和右邊兩顆樹,在按照上述方式遞推出確定左子樹的根和右子樹。本題根據(jù)后序,可以確定A為根結(jié)點(diǎn);根據(jù)B在中序中的位置,可以確定A沒有左子樹,BC為A的右子樹,C為B的右子樹。本題的具體二叉樹如下:因此,這棵二叉樹的前序是ABC,選項(xiàng)C正確。3、對(duì)長(zhǎng)度為n的線性表進(jìn)行順序查找,在最壞情況下所需要的比較次數(shù)為A、log2nB、n/2C、nD、n+1標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在進(jìn)行順序查找過程中,如果被查的元素是線性表中的最后一個(gè)元素,或者被查元素根本不在線性表中,則為了查找這個(gè)元素需要與線性表中的所有元素進(jìn)行比較,這是順序查找的最壞情況,需要比較的次數(shù)為n次。4、以下選項(xiàng)中,值為1的表達(dá)式是A、1一’0’B、’1’-0C、1-’\0’D、’\0’-’0’標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在C程序中,字符量可參與任何整數(shù)運(yùn)算。字符參與運(yùn)算時(shí),首先要將字符轉(zhuǎn)換為其對(duì)應(yīng)的ASCII碼值再參與整數(shù)運(yùn)算。字符’1’對(duì)應(yīng)的ASCII碼值是49,字符’0’對(duì)應(yīng)的ASCII碼值是48,字符’\0’是字符串結(jié)束標(biāo)識(shí)符NULL,其對(duì)應(yīng)的ASCII碼值是0。5、數(shù)據(jù)庫(kù)系統(tǒng)的核心是()。A、數(shù)據(jù)模型B、數(shù)據(jù)庫(kù)管理系統(tǒng)C、數(shù)據(jù)庫(kù)D、數(shù)據(jù)庫(kù)管理員標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)是數(shù)據(jù)庫(kù)的機(jī)構(gòu),它是一種系統(tǒng)軟件,負(fù)責(zé)數(shù)據(jù)庫(kù)中的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護(hù)、控制及保護(hù)和數(shù)據(jù)服務(wù)等。所以,數(shù)據(jù)庫(kù)管理系統(tǒng)是數(shù)據(jù)庫(kù)系統(tǒng)的核心。6、下列排序法中,每經(jīng)過一次元素的交換會(huì)產(chǎn)生新的逆序的是A、快速排序B、冒泡排序C、簡(jiǎn)單插入排序D、簡(jiǎn)單選擇排序標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:冒泡排序只交換相鄰元素,但不是每次移動(dòng)都產(chǎn)生新的逆序。簡(jiǎn)單插入排序的元素移動(dòng)不會(huì)產(chǎn)生新的逆序??焖倥判蛎恳淮谓粨Q移動(dòng)都會(huì)產(chǎn)生新的逆序,因?yàn)楫?dāng)不會(huì)有新的逆序產(chǎn)生時(shí),本輪比較結(jié)束。故選項(xiàng)A正確。7、if語(yǔ)句的基本形式是:if(表達(dá)式)語(yǔ)句,以下關(guān)于’’表達(dá)式’’值的敘述中正確的是A、必須是整數(shù)值B、必須是正數(shù)C、可以是任意合法的數(shù)值D、必須是邏輯值標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在if語(yǔ)句中,表達(dá)式可以是任意合法的數(shù)值。當(dāng)其值為非零時(shí),執(zhí)行if語(yǔ)句,為0時(shí)執(zhí)行else語(yǔ)句。8、若在定義語(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ù)變量的地址。9、有以下程序:#include#defineS(x)x*xvoidmain(){intk-5,j=2;prinff(“%d,%d\n”,S(k+j+2),S(+k+2));}程序的運(yùn)行結(jié)果是()。A、21.18B、81,81C、21,21D、18.18標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:帶參數(shù)的宏的調(diào)用格式:宏名(實(shí)參表),替換過程是:用宏調(diào)用提供的實(shí)參字符串,直接替換宏定義命令行中相應(yīng)形參字符串,非形參字符保持不變。S(k+j+2)被s換成k+j+2*k+j+2,計(jì)算時(shí)先計(jì)算2:I:k,結(jié)果為21;s(j+k+2)被s換成j+k+2*j+k+2,計(jì)算時(shí)先計(jì)算2冰j,結(jié)果為18。程序的運(yùn)行結(jié)果是21,18。10、十進(jìn)制整數(shù)設(shè)為整數(shù)類I,則下面屬于類I的實(shí)例的是A、一518B、0.518C、518E-2D、.518標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:整數(shù)的全體構(gòu)成整數(shù)集,整數(shù)集是一個(gè)數(shù)環(huán)。在整數(shù)系中,零和正整數(shù)統(tǒng)稱為自然數(shù)。-1、-2、-3、…、-n、…(n為非零自然數(shù))為負(fù)整數(shù)。則正整數(shù)、零與負(fù)整數(shù)構(gòu)成整數(shù)系。整數(shù)不包括小數(shù)、分?jǐn)?shù)。本題中,選項(xiàng)A是正確的,選項(xiàng)B是小數(shù),選項(xiàng)C是科學(xué)計(jì)數(shù),也是小數(shù),選項(xiàng)D是小數(shù)。11、軟件生命周期是指()。A、軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程B、軟件從需求分析、設(shè)計(jì)、實(shí)現(xiàn)到測(cè)試完成的過程C、軟件的開發(fā)過程D、軟件的運(yùn)行維護(hù)過程標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程稱為軟件生命周期。也就是說,軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用為止的整個(gè)時(shí)期都屬于軟件生命周期。12、以下錯(cuò)誤的定義語(yǔ)句是A、intx[4][3]={{1,2,3),{1,2,3},{1,2,3},{1,2,3}};B、intx[][3]={{0),{1},{1,2,3}};C、intx[][3]={1,2,3,4};D、intx[4砌={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:一維數(shù)組定義和初始化是允許省略行下標(biāo),不允許省略列下標(biāo)。13、設(shè)intx=0,*p;下列賦值語(yǔ)句正確的是()。A、*p=x;B、p=NULL;C、p=x;D、*p=NULL;標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:定義指針變量時(shí),必須將指針變量初始化為NULL(為空),否則,如果不賦給它地址,系統(tǒng)會(huì)隨機(jī)給它分配一個(gè)地址.以致出現(xiàn)錯(cuò)誤的運(yùn)算結(jié)果。14、下列敘述中正確的是()。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知識(shí)點(diǎn)解析:在實(shí)際應(yīng)用中,隊(duì)列的順序存儲(chǔ)結(jié)構(gòu)一般采用循環(huán)隊(duì)列的形式。15、關(guān)于結(jié)構(gòu)體函數(shù)的敘述中正確的是()。A、即使是同類型的結(jié)構(gòu)體變量。也不能進(jìn)行整體賦值B、結(jié)構(gòu)體數(shù)組名不能作為實(shí)參傳給函數(shù)C、結(jié)構(gòu)體變量的地址不能作為實(shí)參傳給函數(shù)D、結(jié)構(gòu)體中可以含有指向本結(jié)構(gòu)體的指針成員標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C語(yǔ)言中的結(jié)構(gòu)體變量包含若干成員,這些成員可以是所有變量類型,甚至可以是正在定義的結(jié)構(gòu)體類型指針。用結(jié)構(gòu)體變量作實(shí)參時(shí),取的是“值傳遞”的方式,將結(jié)構(gòu)體變量所占的內(nèi)存單元的內(nèi)容全部順序傳遞給形參。形參也必須是同類型的結(jié)構(gòu)體變量。結(jié)構(gòu)體數(shù)組作為參數(shù)時(shí),采取了“地址傳遞”的方式,形參須為同類型的結(jié)構(gòu)指針或者形參結(jié)構(gòu)數(shù)組。16、以下敘述中正確的是A、當(dāng)用scanf從鍵盤輸入數(shù)據(jù)時(shí),每行數(shù)據(jù)在沒按下回車鍵(Enter鍵)前,可以任意修改B、花括號(hào)對(duì){}只能用來表示函數(shù)的開頭和結(jié)尾,不能用于其他目的C、空語(yǔ)句就是指程序中的空行D、復(fù)合語(yǔ)句在語(yǔ)法上包含多條語(yǔ)句,其中不能定義局部變量標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:當(dāng)使用scanf函數(shù)從鍵盤輸入數(shù)據(jù)時(shí),每行數(shù)據(jù)在未按F回車鍵之前,可以任意修改。但按下回車鍵后,scanf函數(shù)即接受了這一行數(shù)據(jù),不能再修改。選項(xiàng)A正確,對(duì)于選項(xiàng)B,{}還可以表明復(fù)合語(yǔ)句的開頭結(jié)尾,或者循環(huán)體的開頭結(jié)尾等,選項(xiàng)B錯(cuò)誤,而空語(yǔ)句為;,不是空行,選項(xiàng)C錯(cuò)誤,在復(fù)合語(yǔ)句中可以定義變量為局部變量,選項(xiàng)D錯(cuò)誤。17、以下程序的輸出結(jié)果是()。#includemain(){inta=2,b;b=a<<2;printf(’’%d\n’’,b);}A、2B、4C、8D、16標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:表達(dá)式a<<2,把a(bǔ)向左移動(dòng)2位,相當(dāng)于擴(kuò)大4倍。即2×2倍。18、有以下程序#include#includevoidfun(chars[][10],intn){chart;intij;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知識(shí)點(diǎn)解析:函數(shù)fun(chars[][10],intn)通過兩重for循環(huán)語(yǔ)句,比較二維字符數(shù)組s[][10]的每個(gè)字符串的首字符大小,如果前一個(gè)字符串首字符大于后一個(gè)字符串的首字符,則交換這兩個(gè)字符串的首字符。在主函數(shù)中,語(yǔ)句fun(ss,5)的作用是對(duì)二維字符數(shù)組ss[5][10]的5個(gè)字符串的首字符進(jìn)行從小到大的排序,不影響各個(gè)字符串另外的字符。所以排序結(jié)束后,5個(gè)字符串的第一個(gè)字符依次變?yōu)閍、a、b、b和x:最后輸出第1個(gè)和第4個(gè)字符串。19、以下敘述中錯(cuò)誤的是A、可以用typedef將已存在的類型用一個(gè)新的名字來代表B、可以通過typedef增加新的類型C、用typedef定義新的類型名后,原有類型名仍有效D、用typedef可以為各種類型起別名,但不能為變量起別名標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:C語(yǔ)言允許用typedef說明一利新類型名。typedef類型名標(biāo)識(shí)符:其中“類型名”必須是在此語(yǔ)句之前己定義的類型標(biāo)識(shí)符;“標(biāo)識(shí)符”是一個(gè)用戶定義標(biāo)識(shí)符,用作新的類型名;typedef語(yǔ)句的作用僅僅是用“標(biāo)識(shí)符”來代表已存在的“類型名”,并未產(chǎn)生新的數(shù)據(jù)類型,原有類型名依然有效。20、用樹型結(jié)構(gòu)表示實(shí)體之間聯(lián)系的模型是A、層次模型B、關(guān)系模型C、網(wǎng)狀模型D、運(yùn)算模型標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:層次模型的基本結(jié)構(gòu)是樹形結(jié)構(gòu),這種結(jié)構(gòu)方式在現(xiàn)實(shí)世界中很普遍,它們自頂向下、層次分明。21、有以下程序structS{inta,b;}data[2]={10,100,20,200};main(){structSp=data[1];printf(”%dkn”,++(p.a(chǎn)));}程序運(yùn)行后的輸出結(jié)果是A、11B、20C、21D、10標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在題目中定義了結(jié)構(gòu)體s類型的數(shù)組變量data,并對(duì)其賦初值。在程序中定義了指向結(jié)構(gòu)體s類型的變量p,并把數(shù)組data的第二個(gè)元素data[1]的值賦給它,所以此時(shí)成員變量p.a(chǎn)的值等于20,在輸出時(shí)分別加1,所以輸入結(jié)果為選項(xiàng)A。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知識(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ǔ)空間。23、已定義以下函數(shù)intfun(int*p){return*p;}fun函數(shù)返回值是A、不確定的值B、一個(gè)整數(shù)C、形參p中存放的值D、形參p的地址值標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:由函數(shù)intfun(int*p){retum*p}的定義可知,返回值為整型指針變量p所指向的數(shù)據(jù)。24、若有以下函數(shù)首部intfun(doublex[10],intn)則下面針對(duì)此函數(shù)的函數(shù)聲明語(yǔ)句中正確的是A、intfun(double,int);B、intfun(double*x,intn);C、intfun(double*,int*);D、intfun(doublex,int*n);標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:函數(shù)說明的一般形式為:類型名函數(shù)名(參數(shù)類型1,參數(shù)類型2,……)。因?yàn)楹瘮?shù)intfun(doublex[10],int*n)的第1個(gè)形式參數(shù)是一個(gè)雙精度型的一維數(shù)組,第2個(gè)參數(shù)是一個(gè)整型指針,并返回一個(gè)整型值。一維數(shù)組的名字表示的是一維數(shù)組的地址。25、有以下函數(shù)intfun(char*x,char*y){intn=0:while((*x==*y)&&*x!=’\0’){x++;y++;n++;}returnn;)函數(shù)的功能是A、查找x和Y所指字符串中是否有’\0’B、統(tǒng)計(jì)X和Y所指字符串中最前面連續(xù)相同的字符個(gè)數(shù)C、將v所指字符串賦給x所指存儲(chǔ)空間D、統(tǒng)計(jì)X和Y所指字符串中相同的字符個(gè)數(shù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在while循環(huán)中的判斷表達(dá)式為(*x=*y)&&*x!=’\0’,所以只要字符串x與y的當(dāng)前字符不相等時(shí),循環(huán)就結(jié)束。26、有以下程序fun(intx,inty)main(){staticintm=0,i=2;{intj=l,m=1,k;i+=m+1;m=i+x+y;returnm;k=fun(j,m);printf("%d,",k);}k=fun(j,m);printf("%d\n",k);}執(zhí)行后的輸出結(jié)果是A、5,5B、5,11C、11,11D、11,5標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:子函數(shù)fun(intx,inty),將變量m和i聲明為局部靜態(tài)變量,因此第1次調(diào)用主函數(shù)后,局部靜態(tài)變量m和i的值為5和3,第1次函數(shù)調(diào)用結(jié)束時(shí),它們的值不釋放保持不變,所以第2次調(diào)用時(shí),局部靜態(tài)變量m和i的初始值分別為5和3,即在執(zhí)行“i+=m+1”時(shí),i的值為9,因此最終m的值為11。27、下面選項(xiàng)中的程序段,沒有編譯錯(cuò)誤的是A、char*sp,s[10];sp="Hello";B、char*sp,s[10];s="Hello";C、charstrl[10]="computer",str2[10];str2=str1;D、charmark[1];mark="PROGRAM";標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:選項(xiàng)B)中數(shù)組名為常量,不能賦值,選項(xiàng)C)字符數(shù)組之間無法完成賦值操作,選項(xiàng)D)和選項(xiàng)B)相同,無法對(duì)數(shù)組進(jìn)行賦值。28、有以下程序#includevoidfun(char*c,intd{*c=*c+1;d=d+1;printf("%c,%c,",*c,d);}main(){charb=’a’,a=’A’;fun(&b,a);printf("%c,%c\n",b,a);}程序運(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知識(shí)點(diǎn)解析:本題中fun函數(shù)的參數(shù)傳遞方式,形參c是傳地址,形參d是傳值,所以在主函數(shù)中,執(zhí)行fun時(shí),把變量b的地址傳給了c,把a(bǔ)的值傳遞給了d,經(jīng)過運(yùn)算,輸出的值為b,B。在主函數(shù)的輸出語(yǔ)句中,輸出變量b的值為b,變量a的值為A。29、下面結(jié)構(gòu)體的定義語(yǔ)句中,錯(cuò)誤的是A、structord{intx;inty;intz;};structorda;B、structord{intx;inty;intz;}structorda;C、structord{intx;inty;intz;}a;D、struct{intx;inty;intz;)a;標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在選項(xiàng)B)中,由于在定義完結(jié)構(gòu)體后缺少分號(hào)“;”,所以這是一條不完整的語(yǔ)句,因而是錯(cuò)誤的。30、有三個(gè)關(guān)系R、S和T如下:則由關(guān)系R和S得到關(guān)系T的操作是A、自然連接B、交C、投影D、并標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:關(guān)系R和關(guān)系S有公共域,關(guān)系T是通過公共域的等值進(jìn)行連接的結(jié)果,符合自然連接,選A。31、有以下程序#includemain(){charc[2][5]={"6938","8254"},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=c[i];for(i=0;i<2;i++)for(j=0;p[i][j]>0;j+=2)s=10*s+p[i][j]-’0’;printf("%d\n",s);}程序運(yùn)行后的輸出結(jié)果是()。A、6385B、9824C、6982D、9284標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:第一個(gè)for循環(huán)將數(shù)組中每個(gè)字符串的首地址賦值給了指針數(shù)組p的元素,所以p[i][j]與c[i][j]等價(jià)。第二個(gè)嵌套for循環(huán)中外層循環(huán)i從0到1,內(nèi)層循環(huán)j為偶數(shù)且從0遞增,語(yǔ)句"s=10*s+p[i][j]-?0?;"用一個(gè)整數(shù)s記錄數(shù)組c中列下標(biāo)為偶數(shù)的所有數(shù)字,并按照其先后順序放置于整數(shù)s的不同位上,所以計(jì)算得到的結(jié)果為6385,答案選A。32、若有以下程序#include<stdio.h>intk=7,m=5;voidf(int**s){int*t=&k;s=&t;*s=&m;printf("%d,%d,%d,",k,*t,**s);}main(){inti=3,*p=&i,**r=&p;f(r);printf("%d,%d,%d\n",i,*p,**r);}則程序的輸出結(jié)果是A、7,5,7,3,3,3,B、7,5,7,3,5,7,C、7,5,5,3,3,3,D、7,7,5,3,3,3,標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查二級(jí)指針作為函數(shù)的參數(shù),可以通過函數(shù)調(diào)用來改變主函數(shù)中一級(jí)指針的指向。主函數(shù)中指針變量p指向i,r指向p,調(diào)用f函數(shù),形參指針s指向p,流程轉(zhuǎn)到f函數(shù)執(zhí)行,指針變量t指向k,s指向t,此時(shí)更改了s的指向,s指向了t,更改了s指向的地址空間內(nèi)容為m的地址,同時(shí)t也指向變量m,因此**s的值為m的值,*t為m的值,k為7。流程返回到主函數(shù),沒有對(duì)主函數(shù)空間的數(shù)據(jù)和指向作出更改,因此全部為3。33、下面選項(xiàng)中關(guān)于位運(yùn)算的敘述正確的是()。A、位運(yùn)算的對(duì)象只能是整型或字符型數(shù)據(jù)B、位運(yùn)算符都需要兩個(gè)操作數(shù)C、左移運(yùn)算的結(jié)果總是原操作數(shù)據(jù)2倍D、右移運(yùn)算時(shí),高位總是補(bǔ)0標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:取反運(yùn)算符"~"為單目運(yùn)算符,選項(xiàng)B)錯(cuò)誤;左移運(yùn)算的結(jié)果總是原操作數(shù)據(jù)2^n倍,n為"<<"右邊移動(dòng)的位數(shù),選項(xiàng)C)錯(cuò)誤;右移運(yùn)算正數(shù)高位補(bǔ)0,負(fù)數(shù)高位補(bǔ)1,選項(xiàng)D)錯(cuò)誤;答案選A)。34、有以下程序#include#includetypedefstruct{charname[10];charsex;intage;}STU;voidfun(STUt){strcpy(,"Tong");t.age++;}main(){STUs[2]={"Hua",’m’,18,"Qin",’f’,19};fun(s[1]);printf("%s,%d,%s,%d\n",s[0].name,s[0].age,s[1].name,s[1].age);}程序運(yùn)行后的輸出結(jié)果是()。A、Hua,18,Qin,19B、Hua,18,Tong,20C、Tong,19,Qin,19D、Hua,19,Tong,19標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:結(jié)構(gòu)體變量名作為函數(shù)參數(shù)是值傳遞,形參數(shù)據(jù)的改變不會(huì)影響到實(shí)參數(shù)據(jù),所以函數(shù)調(diào)用結(jié)束后數(shù)組s中的數(shù)據(jù)沒有變化,輸出結(jié)果為選項(xiàng)A)。35、某二叉樹共有12個(gè)結(jié)點(diǎn),其中葉子結(jié)點(diǎn)只有1個(gè)。則該二叉樹的深度為(根結(jié)點(diǎn)在第1層)A、3B、6C、8D、12標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:二叉樹中,度為0的節(jié)點(diǎn)數(shù)等于度為2的節(jié)點(diǎn)數(shù)加1,即n2=n0-1,葉子節(jié)點(diǎn)即度為0,n0=1,則n2=0,總節(jié)點(diǎn)數(shù)為12=n0+n1+n2=1+n1+0,則度為1的節(jié)點(diǎn)數(shù)n1=11,故深度為12,選D。36、有以下程序#includestructSTU{charname[9];charsex;intscore[2];};voidf(structSTUa[]){structSTUb={"Zhao",’m’,85,90};a[1]=b;}main(){structSTUc[2]={{"Qian",’f’,95,92},{"Sun",’m’,98,99}};f(C);printf("%s,%c,%d,%d,",c[0].name,c[0].sex,c[0].score[0],c[0].score[1]);printf("%s,%c,%d,%d\n",c[1].name,c[1].sex,c[1].score[0],c[1].score[1]);}程序運(yùn)行后輸出結(jié)果是A、Qian,f,95,92,Sun,m,98,99B、Qian,f,95,92,Zhao,m,85,90C、Zhao,m,85,90,Sun,m,98,99D、Zhao,m,85,90,Qian,f,95,92標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查把數(shù)組名作為函數(shù)參數(shù),執(zhí)行f函數(shù)后,結(jié)構(gòu)體數(shù)組c的第二個(gè)元素被改寫,c[1].name為Zhao,選項(xiàng)B正確。37、若有以下程序#includevoidsp(int*a){intb=2;*a=*a*2;printf("%d,",*a);a=&b;*a=*a*2;printf("%d,",*a);}main(){intk=3;sp(&k);printf("%d\n",k);}則程序的輸出結(jié)果是A、6,12,12B、6,4,3C、6,4,6D、9,4,9標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:首先在主函數(shù)中給整型變量k賦值為3,調(diào)用sp函數(shù),將變量k的地址作為實(shí)參傳遞給形參指針變量a;在sp函數(shù)中,*a=*a*2;即結(jié)果為6,通過printf()函數(shù)輸出。整型變量b的地址賦給指針變量a,再執(zhí)行*a=*a*2;,即結(jié)果為4,通過printf()函數(shù)輸出。返回主函數(shù),輸出k的值6。因此C選項(xiàng)正確。38、以下敘述中正確的是A、語(yǔ)句inta[8]={0};是合法的B、語(yǔ)句inta[]={0};是不合法的,遺漏了數(shù)組的大小C、語(yǔ)句chara[2]={"A","B"};是合法的,定義了一個(gè)包含兩個(gè)字符的數(shù)組D、語(yǔ)句chara[3];a="AB";是合法的,因?yàn)閿?shù)組有三個(gè)字符空間的容量,可以保存兩個(gè)字符標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:B選項(xiàng)中,如給全部元素賦值,則在數(shù)組說明中,可以不給出數(shù)組元素的個(gè)數(shù);C選項(xiàng)中,chara[2]={"A","B"};不合法,應(yīng)為chara[2]={’A’,’B’};;D選項(xiàng)中,用字符串方式賦值比用字符逐個(gè)賦值要多占1個(gè)字節(jié),在該選項(xiàng)中應(yīng)為3個(gè)字節(jié)。因此A選項(xiàng)正確。39、sizeof(double)是A、一個(gè)整型表達(dá)式B、一個(gè)雙精度型表達(dá)式C、一個(gè)不合法的表達(dá)式D、一種函數(shù)調(diào)用標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:sizeof是C語(yǔ)言中的一個(gè)操作符(operator),不是函數(shù)調(diào)用,簡(jiǎn)單的說其作用就是返回一個(gè)對(duì)象或者類型所占的內(nèi)存字節(jié)數(shù)。所以選擇A40、有以下程序:#includevoidfun(inta,intb){intt;t=a;a=b;b=t;}main(){intc[10]={1,2,3,4,5,6,7,8,9,0},i;for(i=0;i<10;i+=2)fun(c[i],c[i+1]);for(i=0;i<10;i++)printf("%d,",c[i]);printf("\n");}程序的運(yùn)行結(jié)果是()。A、1,2,3,4,5,6,7,8,9,0,B、2,1,4,3,6,5,8,7,0,9,C、0,9,8,7,6,5,4,3,2,1,D、0,1,2,3,4,5,6,7,8,9,標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:函數(shù)調(diào)用中發(fā)生的數(shù)據(jù)傳送是單向的。即只能把實(shí)參的值傳送給形參,而不能把形參的值反向地傳送給實(shí)參。因此在函數(shù)調(diào)用過程中,形參的值發(fā)生改變,而實(shí)參中的值不會(huì)變化,所以數(shù)組c中的元素的值并沒有變化,選擇A。國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷第2套一、選擇題(本題共40題,每題1.0分,共40分。)1、算法的有窮性是指A、算法程序的運(yùn)行時(shí)間是有限的B、算法程序所處理的數(shù)據(jù)量是有限的C、算法程序的長(zhǎng)度是有限的D、算法只能被有限的用戶使用標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:算法的有窮性,是指算法必須能在有限的時(shí)間內(nèi)做完,即算法必須能在執(zhí)行有限個(gè)步驟之后終止。2、設(shè)R是一個(gè)2元關(guān)系,有3個(gè)元組,S是一個(gè)3元關(guān)系,有3個(gè)元組。如T=R×S,則T的元組的個(gè)數(shù)為()。A、6B、8C、9D、12標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:R為n元關(guān)系,有p個(gè)元組S為m元關(guān)系,有q個(gè)元組。兩個(gè)關(guān)系笛卡兒積是一個(gè)n+m元的關(guān)系,元組個(gè)數(shù)是q×p。所以T的元組的個(gè)數(shù)為9個(gè)。3、以下選項(xiàng)中合法的標(biāo)識(shí)符是A、1.1B、11C、11D、1標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查標(biāo)識(shí)符定義。合法標(biāo)識(shí)符的要求是由下劃線、英文大小寫字母利數(shù)字組成的字符串,且第一個(gè)字符必須是字母或下劃線。4、冒泡排序在最壞情況下的比較次數(shù)是A、n(n+1)/2B、nlog2nC、n(n-1)/2D、n/2標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:對(duì)n個(gè)結(jié)點(diǎn)的線性表采用冒泡排序,在最壞情況下,冒泡排序需要經(jīng)過n/2遍的從前往后的掃描和rd2遍的從后往前的掃描,需要的比較次數(shù)為n(n-1)/2。5、在黑盒測(cè)試方法中,設(shè)計(jì)測(cè)試用例的根據(jù)是()。A、數(shù)據(jù)結(jié)構(gòu)B、模塊間的邏輯關(guān)系C、程序調(diào)用規(guī)則D、軟件要完成的功能標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:黑盒測(cè)試方法也稱功能測(cè)試或數(shù)據(jù)驅(qū)動(dòng)測(cè)試。黑盒測(cè)試是對(duì)軟件已經(jīng)實(shí)現(xiàn)的功能是否滿足需求進(jìn)行測(cè)試和驗(yàn)證。它完全不考慮程序內(nèi)部的邏輯結(jié)構(gòu)和內(nèi)部特征,只依據(jù)程序的需求和功能規(guī)格說明,檢查程序的功能是否符合它的功能要求。6、如果定義floata[10],x;,則以下敘述中正確的是()。A、語(yǔ)句a=&x;是非法的B、表達(dá)式a+1是非法的C、三個(gè)表達(dá)式a[1]、*(a+1)、*&a[1]表示的意思完全不同D、表達(dá)式*&a[1]是非法的,應(yīng)該寫成*(&(a[1]))標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:數(shù)組名表示該數(shù)組的首地址,是一個(gè)地址常量,不能對(duì)它重新賦值,選項(xiàng)A正確。但是可以把數(shù)組名看作一個(gè)指針常量,則表達(dá)式a+1表示的是數(shù)組中第二個(gè)元素的地址,選項(xiàng)B錯(cuò)誤。表達(dá)式a[1]、*(a+1)、*&a[1]都指的是數(shù)組a中第二個(gè)元素的值,選項(xiàng)C錯(cuò)誤。[]運(yùn)算符的優(yōu)先級(jí)高于*、&,取值*和取址&運(yùn)算符優(yōu)先級(jí)相等,是同一優(yōu)先級(jí)的運(yùn)算符,運(yùn)算次序由結(jié)合方向所決定,*&a[1]在運(yùn)算符優(yōu)先級(jí)和結(jié)合性上沒有問題,并且取值*和取址&運(yùn)算符互逆,*&a[1]和a[1]等價(jià),相當(dāng)于求得數(shù)組a第二個(gè)元素的值,選項(xiàng)D錯(cuò)誤。故正確答案為A。7、以下敘述中正確的是A、由&&構(gòu)成的邏輯表達(dá)式與由‖構(gòu)成的邏輯表達(dá)式都有“短路”現(xiàn)象B、C語(yǔ)言的關(guān)系表達(dá)式:0C、邏輯“非”(即運(yùn)算符!)的運(yùn)算級(jí)別是最低的D、邏輯“或”(即運(yùn)算符‖)的運(yùn)算級(jí)別比算術(shù)運(yùn)算要高標(biāo)準(zhǔn)答案:A知識(shí)點(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)算。8、表達(dá)式a+=a一=a=9的值是()。A、18B、一9C、0D、9標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:首先計(jì)算a=9,然后計(jì)算a一=9,即a=a一9,結(jié)果為0,然后計(jì)算a+=0,即a=a+0,所以最終結(jié)果為0。9、某帶鏈隊(duì)列初始狀態(tài)為front=rear=NULL。經(jīng)過一系列正常入隊(duì)與退隊(duì)操作后,front=10,rear=5。該隊(duì)列中的元素個(gè)數(shù)為A、不確定B、5C、4D、6標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:循環(huán)隊(duì)列用數(shù)組A[0:m-1]存放其元素值,已知其頭尾指針分別是front和rear,則當(dāng)前隊(duì)列的元素個(gè)數(shù)是(rear-front+m)%m=(5-10+m)%m=(m-5)%m。因?yàn)楸绢}中的m值不確定,所以(m-5)%m的值不能確定。所以選項(xiàng)A正確。10、若變量已正確定義,以下選項(xiàng)中非法的表達(dá)式是A、a!=4‖’b’B、’a’%4C、’a’=1/2*(x=y=20,x*3)D、’A’+32標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:賦值表達(dá)式左邊應(yīng)為變量,選項(xiàng)C中左邊為字符常量,因此非法,其余表達(dá)式均為合法的表達(dá)式。11、以下選項(xiàng)中,沒有編譯錯(cuò)誤的是()。A、charstr3[]={’d’,’e’,’b’,’u’,’g’,’\0’};B、charstrl[5]=“pass”,str2[6];str2=strl:C、charname[10];name=“china”;D、charstr4[];str4=“helloworld”;標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:B選項(xiàng)中,不能直接將字符數(shù)組名直接賦值給另一個(gè)字符數(shù)組名。C選項(xiàng)賦值錯(cuò)誤,不能將一個(gè)字符串常量賦值給一個(gè)字符指針。D選項(xiàng)定義str4時(shí)需要定義其長(zhǎng)度。故A選項(xiàng)正確。12、有以下程序#includemain(){intx;scanf("%d",&x);if(x<=3);elseif(x!=10)printf("%d\n",x);}程序運(yùn)行時(shí),輸入的值在哪個(gè)范圍才會(huì)有輸出結(jié)果A、不等于10的整數(shù)B、大于3或等于10的整數(shù)C、小于3的整數(shù)D、大于3且不等10的整數(shù)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:題目中,雖然else和第二個(gè)if不在同一行上,但等價(jià)于在同一行上,因此,程序的意思是當(dāng)x大十3且不等于10時(shí)打印出來。13、在E-R圖中,用來表示實(shí)體的圖形是A、矩形B、橢圓形C、菱形D、三角形標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在E一R圖中,用矩形表示實(shí)體集,在矩形內(nèi)寫上該實(shí)體集的名字;用橢圓形表示屬性;用菱形(內(nèi)部寫上聯(lián)系名)表示聯(lián)系。14、下列說法不正確的是()。A、int*ptr;//指針指向整形數(shù)據(jù)B、char*ptr;//指針的類型是字符型指針C、int**ptr;//指針的類型是雙重指針D、int(*ptr)[3];//是一個(gè)指針數(shù)組,數(shù)組共有三個(gè)元素,而三個(gè)元素是int型指針標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:int(*ptr)[3]是一個(gè)數(shù)組指針,指針指向一個(gè)有3個(gè)int型變量的數(shù)組。15、若下列選項(xiàng)中的各變量均為整型且已有值,其中不正確的賦值語(yǔ)句是()。A、++i;B、nl=(n2/(n3=2));C、k=i=j;D、a=b+c=2;標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查賦值表達(dá)式。賦值表達(dá)式的一般形式是:變量名=表達(dá)式。C語(yǔ)言規(guī)定,不能給變量表達(dá)式賦值。16、數(shù)據(jù)流圖(DFD)中的有向箭頭(→)表示A、數(shù)據(jù)流B、控制流C、輸入流D、輸出流標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:數(shù)據(jù)流圖(DataFlowDiagram):簡(jiǎn)稱DFD,它從數(shù)據(jù)傳遞和加工角度,以圖形方式來表達(dá)系統(tǒng)的邏輯功能、數(shù)據(jù)在系統(tǒng)內(nèi)部的邏輯流向和邏輯變換過程,是結(jié)構(gòu)化系統(tǒng)分析方法的主要表達(dá)工具及用于表示軟件模型的一種圖示方法。數(shù)據(jù)流程圖中有以下幾種主要元素:→:數(shù)據(jù)流。數(shù)據(jù)流是數(shù)據(jù)在系統(tǒng)內(nèi)傳播的路徑,因此由一組成分固定的數(shù)據(jù)組成;□:數(shù)據(jù)源或宿(“宿”表示數(shù)據(jù)的終點(diǎn))。代表系統(tǒng)之外的實(shí)體;○:對(duì)數(shù)據(jù)的加工(處理)。加工是對(duì)數(shù)據(jù)進(jìn)行處理的單元,它接收一定的數(shù)據(jù)輸入,對(duì)其進(jìn)行處理,并產(chǎn)生輸出;:數(shù)據(jù)存儲(chǔ)。表示信息的靜態(tài)存儲(chǔ)。17、優(yōu)化數(shù)據(jù)庫(kù)系統(tǒng)查詢性能的索引設(shè)計(jì)屬于數(shù)據(jù)庫(kù)設(shè)計(jì)的()。A、需求分析B、概念設(shè)計(jì)C、邏輯設(shè)計(jì)D、物理設(shè)計(jì)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)物理設(shè)計(jì)的主要目標(biāo)是對(duì)數(shù)據(jù)庫(kù)內(nèi)部物理結(jié)構(gòu)作調(diào)整并選擇合理的存取路徑,以提高數(shù)據(jù)庫(kù)訪問速度及有效利用存儲(chǔ)空間,答案選D。18、數(shù)據(jù)庫(kù)設(shè)計(jì)的四個(gè)階段是:需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)和A、編碼設(shè)計(jì)B、測(cè)試階段C、運(yùn)行階段D、物理設(shè)計(jì)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)設(shè)計(jì)目前一般采用生命周期法,即把整個(gè)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的開發(fā)分解成目標(biāo)獨(dú)立的四個(gè)階段。它們分別是需求分析階段、概念設(shè)計(jì)階段、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段。19、下列描述中錯(cuò)誤的是A、在數(shù)據(jù)庫(kù)系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)必須與邏輯結(jié)構(gòu)一致B、數(shù)據(jù)庫(kù)技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的共享問題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)用程序的變化。20、有兩個(gè)關(guān)系R和S如下:由關(guān)系R通過運(yùn)算得到關(guān)系S,則所使用的運(yùn)算為A、選擇B、投影C、插入D、連接標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:一個(gè)關(guān)系R通過投影運(yùn)算后仍為一個(gè)關(guān)系R′,R′是由R中投影運(yùn)算所指出的那些域的列所組成的關(guān)系。所以題目中關(guān)系S是由關(guān)系R經(jīng)過投影運(yùn)算所得(選擇運(yùn)算主要是對(duì)關(guān)系R中選擇由滿足邏輯條件的元組所組成的一個(gè)新關(guān)系)。21、若有定義語(yǔ)句inta[2][3],*p[3];,則以下語(yǔ)句中正確的是()。A、p=a;B、p[0]=a;C、p[0]=&a[1][2];D、p[1]=&a;標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:A選項(xiàng)錯(cuò)誤,因?yàn)閜是指向一個(gè)指針數(shù)組,作為數(shù)組名,不能指向別的地方。B選項(xiàng)錯(cuò)誤,因?yàn)閜[0]是一個(gè)int指針,也就是int*;而a是一個(gè)指向指針的指針int**。C選項(xiàng)正確,因?yàn)閜[0]是一個(gè)int*,a[1][2]是int,&a[1][2]是int*,類型吻合。D選項(xiàng)錯(cuò)誤,因?yàn)閍作為數(shù)組名,不能取地址,即使能取,p[1]是int*,&a是int***,類型不對(duì)。22、以下選項(xiàng)中,值為1的表達(dá)式是A、1-’0’B、’1’-0C、1-’\0’D、’\0’-’0’標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在C程序中,字符量可參與任何整數(shù)運(yùn)算。字符參與運(yùn)算時(shí),首先要將字符轉(zhuǎn)換為其對(duì)應(yīng)的ASCII碼值再參與整數(shù)運(yùn)算。字符“’1’”對(duì)應(yīng)的ASCII碼值是49,字符’0’對(duì)應(yīng)的ASCII碼值是48,字符“’\0’”是字符串結(jié)束標(biāo)識(shí)符NuLL,其對(duì)應(yīng)的ASCII碼值是0。23、有以下程序intfun(intx[],intn){staticintsum=0,i;for(i=0;i<n;i++)sum+=x[i];retumsum;}main(){inta[]-{1,2,3,4,5),b[]={6,7,8,9),s=0;s=fun(a,5)+fun(b,4);printf(’’%d\n’’,s);}A、50B、45C、60D、55標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在函數(shù)intfun(intx[],intn)的定義中,變量sum使川rstatic修飾符,這說明了變量sum為一個(gè)靜態(tài)局部變量。由于在整個(gè)程序運(yùn)行期問,靜態(tài)局部變量在內(nèi)存中的靜態(tài)存儲(chǔ)區(qū)中占據(jù)著永久的存儲(chǔ)單元。即使退出函數(shù)之后,下次再進(jìn)入該函數(shù)時(shí),靜態(tài)局部變量繼續(xù)使用原來存儲(chǔ)單元中原來的值。函數(shù)intfun(intx[]intn)的功能是求出數(shù)組各個(gè)元素的和。所以在主函數(shù)中,調(diào)用函數(shù)Fun(a,5)后,變量sum=1+2+3+4+5=15,當(dāng)再次調(diào)用Fun(b,4)后,變量sum=15+6+7+8+9=45,所以s=15+45=60。24、設(shè)fp為指向某二進(jìn)制文件的指針,且已讀到此文件末尾,則函數(shù)feof(fp)的返回值為()。A、0B、’\0’C、非0值D、NULL標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查文件的定位。feof函數(shù)的用法是從輸入流讀取數(shù)據(jù),如果到達(dá)文件末尾(遇文件結(jié)束符),eof函數(shù)值為非零值,否則為0,所以C選項(xiàng)正確。25、若有定義:inta;floatb;doublec;,程序運(yùn)行時(shí)輸入:a=1,b=2,c=3<回車>,能把值1輸入給變量a、值2輸入給變量b、值3輸入給變量c的輸入語(yǔ)句是()。A、scanf("a=%d,b=%f,c=%lf",&a,&b,&c);B、scanf("%d%f%lf",&a,&b,&c);C、scanf("a=%d,b=%lf,c=%lf",&a,&b,&c);D、scanf("a=%d,b=%f,c=%f",&a,&b,&c);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:考查scanf的格式輸入。如果程序調(diào)試的時(shí)候有普通的字符,那么若要程序調(diào)試通則需要在scanf的""內(nèi)原樣帶有相同的字符,變量a、b、c的數(shù)據(jù)類型分別為int、float、double,對(duì)應(yīng)的格式控制符分別為%d、%f和%lf,答案選A。26、有以下程序#includetypedefstruct{intb,p;}A;voidf(Ac)/*注意:C是結(jié)構(gòu)變量名*/{intj;c.b+=1;c.p+=2;}main(){i;Aa={1,2);f(a);printf("%d,%dha",a.b,a.p);}程序運(yùn)行后的輸出結(jié)果是A、2,4B、1,2C、1,4D、2,3標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在C語(yǔ)言中,數(shù)據(jù)只能從實(shí)參單向傳遞給形參,稱為“按值”傳遞。也就是說,當(dāng)簡(jiǎn)單變量作為實(shí)參時(shí),用戶不可能在函數(shù)中政變對(duì)應(yīng)實(shí)參的值。所以本題中在main()函數(shù)f(a)語(yǔ)句中結(jié)構(gòu)體實(shí)參a作為值,傳遞給函數(shù)f(Ac)中的形參c:這種值傳遞的方式不會(huì)對(duì)實(shí)參a產(chǎn)生任何影響,所以結(jié)構(gòu)體實(shí)參a的值不會(huì)發(fā)生變化。27、有以下程序,程序運(yùn)行后的輸出結(jié)果是#includemain(){intx,y,z;x=y=1;z=x++,y++,++y;printf("%d,%d,%d\n",x,y,z);}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。28、有以下程序#includemain()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知識(shí)點(diǎn)解析:本題中fun函數(shù)的參數(shù)傳遞方式,形參c是傳地址,形參d是傳值,所以在主函數(shù)中,執(zhí)行fun時(shí),把變量b的地址傳給了c,把a(bǔ)的值傳遞給了d,經(jīng)過運(yùn)算,輸出的值為b,B。在主函數(shù)的輸出語(yǔ)句中,輸出變量b的值為b,變量a的值為A。29、下列選項(xiàng)中,能夠滿足“只要字符串s1等于字符串s2,則執(zhí)行ST”要求的是A、if(s1==s2)ST;B、if(strcpy(s1,s2)==1)ST;C、if(strcmp(s2,s1)==0)ST;D、if(s1-s2=0)ST;標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在C語(yǔ)言中要對(duì)兩個(gè)字符串的大小進(jìn)行比較,就需要調(diào)用字符串比較函數(shù)strcmp(),如果這個(gè)函數(shù)的返回值等于0,說明兩個(gè)字符串相等。30、有以下程序#include<stdio.h>voidmain(){chars[]={"012xy"};inti,n=0;for(i=0;s[i]!=0:i++)if(s[i]>=’a’&&s[i]<=’Z’)n++;printf("%d\n",n);}程序運(yùn)行后的輸出結(jié)果是A、0B、3C、5D、2標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:這段程序的功能求出字符串s中字符在小寫字符a到z之間字符的個(gè)數(shù)。在程序中字符串s的值為“012xy”,所以在字符串s中符合要求的字符的個(gè)數(shù)等于2。31、有下列程序:main(){inti,s=0,t[]={1,2,3,4,5,6,7,8,9};for(i=0;i<9;i+=2)s+=*(t+i);printf("%d\n",s);}程序執(zhí)行后的輸出結(jié)果是A、20B、45C、36D、25標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題在主函數(shù)中定義了一維整型數(shù)組t[]={1,2,3,4,5,6,7,8,9};然后在for循環(huán)語(yǔ)句中自變量i從0開始,每次自加2,執(zhí)行s+=*(t+i)語(yǔ)句,因?yàn)镃語(yǔ)言規(guī)定數(shù)組名代表數(shù)組的首地址,也就是第一個(gè)元素的地址。因此*(t+i)代表數(shù)組的第i+1個(gè)元素。所以程序運(yùn)行的結(jié)果是1+3+5+7+9_25,即變量s的值等于25。32、以下敘述中正確的是A、一條語(yǔ)句只能定義一個(gè)數(shù)組B、數(shù)組說明符的一對(duì)方括號(hào)中只能使用整型常量,而不能使用表達(dá)式C、每個(gè)數(shù)組包含一組具有同一類型的變量,這些變量在內(nèi)存中占有連續(xù)的存儲(chǔ)單元D、在引用數(shù)組元素時(shí),下標(biāo)表達(dá)式可以使用浮點(diǎn)數(shù)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:數(shù)組的定義格式:類型說明符數(shù)組名[整型常量表達(dá)式],…;可以同時(shí)定義多個(gè)類型相同的數(shù)組,之間以逗號(hào)分隔開,數(shù)組的類型表明了數(shù)組中元素的數(shù)據(jù)類型,數(shù)組中所有元素的類型相同,數(shù)組經(jīng)過定義以后就可使用,編譯程序?qū)?duì)其分配一片連續(xù)的存儲(chǔ)空間進(jìn)行連續(xù)存儲(chǔ)。C語(yǔ)言中只能單個(gè)引用數(shù)組元素而不能一次引用整個(gè)數(shù)組。引用格式為:數(shù)組名[下標(biāo)],引用元素時(shí),需要注意下標(biāo)只能為整型常量或整型表達(dá)式。33、設(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]。34、有以下程序#includevoidfun(char*p){++p;printf("%s\n",*p);)main(){char*a[]=("Morning","Afternoon","Evening","Night");fun(a);}程序的運(yùn)行結(jié)果是A、fternoonB、MorningC、orningD、Afternoon標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在程序中,指針的指針變量a和p都是指向字符串的指針。執(zhí)行fun(a)語(yǔ)句時(shí),p指向的是字符串?dāng)?shù)組a的第一個(gè)字符串“Morning”,p自加1之后,*p指向了字符串?dāng)?shù)組a的第2個(gè)字符串“Afternoon”。35、下面不屬于軟件需求分析階段主要工作的是A、需求變更申請(qǐng)B、需求分析C、需求評(píng)審D、需求獲取標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:需求分析階段的工作可概括為4個(gè)方面:①需求獲取。②需求分析。③編寫需求規(guī)格說明書。④需求審評(píng)。36、有以下程序#include<stdio.h>#include<string.h>StructA{inta;charb[10];doublec;};structAf(structAt);main(){structAa={1001,"ZhangDa",1098.0};a=f(a);printf("%d,%s,%6.1f\n",a.a,a.b,a.c);}structAf(StructAt){t.a=1002;strcpy(t.b,"ChangRong");t.c=1202.0;returnt;}程序運(yùn)行后的輸出結(jié)果是A、1002,ZhangDa,1202.0B、1002,ChangRong,1202.0C、1001,ChangRong,1098.0D、1001,ZhangDa,1098.0標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在主函數(shù)中定義結(jié)構(gòu)體A的變量a,并對(duì)其賦初值,再調(diào)用函數(shù)f(a),在函數(shù)f(a)中對(duì)結(jié)構(gòu)體變量a的各個(gè)成員重新進(jìn)行了賦值操作,并把其值返回在屏幕上輸出。37、有以下程序:#includeintf(intx);main(){intn=1,m;m=f(f(f(n)));printf("%d\n",m);}intf(intx){returnx*2;}程序運(yùn)行后的輸出結(jié)果是()。A、8B、2C、4D、1標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:第一次調(diào)用m=f(f(f(1))),第二次為m=f(f(2)),第三次為m=f(4),即返回值為8。38、若有以下程序#includemain(){inti,j=0;chara[]="Howareyou!";for(i=0;a[i];i++)if(a[i]!=’’)a[j++]=a[i];a[j]=’\0’;printf("%s\n",a);}則程序的輸出結(jié)果是A、Hay!B、HowareyouC、Howareyou!D、Howareyou!標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:主函數(shù)中首先定義字符數(shù)組a[]="Howareyou!";執(zhí)行for循環(huán)語(yǔ)句,語(yǔ)句if(a[i]!=’’)a[j++]=a[i];其功能是將字符數(shù)組中的空格去掉。因此C選項(xiàng)正確。39、以下敘述中正確的是A、語(yǔ)句inta[4][3]={{1,2},{4,5}};是錯(cuò)誤的初始化形式B、語(yǔ)句inta[4][3]={1,2,4,5};是錯(cuò)誤的初始化形式C、語(yǔ)句inta[][3]={1,2,4,5};是錯(cuò)誤的初始化形式D、在邏輯上,可以把二維數(shù)組看成是一個(gè)具有行和列的表格或矩陣標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:二維數(shù)組在初始化時(shí),可以省略第1維,但是不可以省略第2維??梢詾椴糠?jǐn)?shù)組元素初始化。B選項(xiàng)、C選項(xiàng)和A選項(xiàng)內(nèi)的初始化都沒有錯(cuò)誤。因此D選項(xiàng)正確40、有以下程序#includemain(){intk=5;while(--k)printf("%d",k-=3);printf("\n");}執(zhí)行后的輸出結(jié)果是A、1B、2C、4D、死循環(huán)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:--k先自減在使用,所以第一次判斷條件即為while(4),條件為真執(zhí)行打印k的值k=4-3,結(jié)果為1,第二次判斷條件即為while(0),條件為假,結(jié)束循環(huán),打印回車換行符。所以選擇A選項(xiàng)。國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷第3套一、選擇題(本題共25題,每題1.0分,共25分。)1、下列描述中正確的是A、一個(gè)邏輯數(shù)據(jù)結(jié)構(gòu)只能有一種存儲(chǔ)結(jié)構(gòu)B、數(shù)據(jù)的邏輯結(jié)構(gòu)屬于線性結(jié)構(gòu),存儲(chǔ)結(jié)構(gòu)屬于非線性結(jié)構(gòu)C、一個(gè)邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲(chǔ)結(jié)構(gòu),且各種存儲(chǔ)結(jié)構(gòu)不影響數(shù)據(jù)處理的效率D、一個(gè)邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲(chǔ)結(jié)構(gòu),且各種存儲(chǔ)結(jié)構(gòu)影響數(shù)據(jù)處理的效率標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)是指數(shù)據(jù)集合中各數(shù)據(jù)元素之間所固有的邏輯關(guān)系;數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是在對(duì)數(shù)據(jù)進(jìn)行處理時(shí),各數(shù)據(jù)元素在計(jì)算機(jī)中的存儲(chǔ)關(guān)系。數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是指數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的表示,一種邏輯結(jié)構(gòu)可以表示成多種存儲(chǔ)結(jié)構(gòu);而采用不同的存儲(chǔ)結(jié)構(gòu),其數(shù)據(jù)處理的效率是不同的。2、某二叉樹共有12個(gè)結(jié)點(diǎn),其中葉子結(jié)點(diǎn)只有1個(gè)。則該二叉樹的深度為(根結(jié)點(diǎn)在第1層)A、3B、6C、8D、12標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:根據(jù)二叉樹的性質(zhì),度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)。題目中的二叉樹的葉子結(jié)點(diǎn)為1,因此度為2的結(jié)點(diǎn)的數(shù)目為0,故該二叉樹為12層,每層只有一個(gè)結(jié)點(diǎn)。3、下面對(duì)軟件測(cè)試描述錯(cuò)誤的是()。A、嚴(yán)格執(zhí)行測(cè)試計(jì)劃,排除測(cè)試的隨意性B、隨機(jī)地選取測(cè)試數(shù)據(jù)C、軟件測(cè)試的目的是發(fā)現(xiàn)錯(cuò)誤D、軟件測(cè)試是保證軟件質(zhì)量的重要手段標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:軟件測(cè)試的準(zhǔn)則如下:①所有測(cè)試都應(yīng)追溯到需求。②嚴(yán)格執(zhí)行測(cè)試計(jì)劃,排除測(cè)試的隨意性。③充分注意測(cè)試中的群集現(xiàn)象。④程序員應(yīng)避免檢查自己的程序。⑤窮舉測(cè)試不可能。⑥妥善保存測(cè)試計(jì)劃、測(cè)試用例、出錯(cuò)統(tǒng)計(jì)和最終分析報(bào)告,為維護(hù)提供方便。4、設(shè)有定義:“l(fā)ongx=123450L;”,則以下能夠正確輸出變量x的是()。A、printf("x=%d\n",x);B、printf("x=%id\n",x);C、printf("x=%dL\n",x);D、printf("x=%ld\n",x);標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C語(yǔ)言規(guī)定,輸出long型數(shù)值的格式符為%ld。5、軟件詳細(xì)設(shè)計(jì)產(chǎn)生的圖如下,該圖是A、N-S圖B、PAD圖C、程序流程圖D、E-R圖標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查程序流程圖的概念,流程圖直觀地描述了程序的具體步驟。6、若有以下程序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。7、有以下程序:#include<stdio.h>#defineN3voidfun(inta[][N],intb[]){inti,j;for(i=0;i<=2;i++){intmax=a[i][0];for(j=i;j<=2;j++)if(max<a[i][j])max=a[i][j];b[i]=max;}}main(){intx[N][N]={1,2,3,4,5,6,7,8,9},y[N],i;fun(x,y);for(i=0;i<=2;i++){printf(″%d,″,y[i]);}printf(″\n″);}程序運(yùn)行后的輸出結(jié)果是()。A、2,4,8,B、3,6,9,C、3,5,7,D、1,3,5,標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:fun函數(shù)功能是把數(shù)組a的每一行的最大值賦給b,a的第一行的最大值是3,第二行的最大值是6,第三行的最大值是9,所以答案是3,6,9,。8、以下選項(xiàng)中合法的標(biāo)識(shí)符是()。A、_11B、1-1C、1_1D、1__標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C語(yǔ)言規(guī)定,標(biāo)識(shí)符由字母(A~Z,a~z)、數(shù)字(0~9)或者下劃線(_)組成,并且第一個(gè)字符必須為字母或者下劃線,答案選A。9、設(shè)有定義:intx=2;以下表達(dá)式中,值不為6的是A、2*x,x+=2B、x++,2*xC、x*=(1+x)D、x*=x+1標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查逗號(hào)表達(dá)式。逗號(hào)表達(dá)式的求解過程是:先求解表達(dá)式1,再求解表達(dá)式2,整個(gè)逗號(hào)表達(dá)式的值是表達(dá)式2的值,因此,選項(xiàng)A)中值為4;選項(xiàng)B)中,值為6。選項(xiàng)C)中x*=x+1等價(jià)于x=x*(x+1),所以等于6;選項(xiàng)D)與選項(xiàng)C)等價(jià),結(jié)果也為6。10、設(shè)有定義:intx[2][3];則以下關(guān)于二維數(shù)組X的敘述錯(cuò)誤的是A、數(shù)組x可以看作是由x[0]和x[1]兩個(gè)元素組成的一維數(shù)組B、可以用x[0]=0;的形式為數(shù)組所有元素賦初值0C、元素x[0]可看作是由3個(gè)整型元素組成的一維數(shù)組D、x[0]和x[1]是數(shù)組名,分別代表一個(gè)地址常量標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:二維數(shù)組的元素在內(nèi)存中占一系列連續(xù)的存儲(chǔ)單元。數(shù)組元素在內(nèi)存中的排列順序是先存放第0行的元素,再存放第1行的元素……稱這種存放順序?yàn)榘葱写娣???梢园岩粋€(gè)二維數(shù)組看成是一個(gè)一維數(shù)組,每個(gè)數(shù)組元素又是包含有若干個(gè)元素的一維數(shù)組。另外在給二維數(shù)組賦初值時(shí)可以不用含花括號(hào)對(duì)。例如,inta[4][3]={1,2,4,5};在編譯時(shí),系統(tǒng)將按a數(shù)組元素在內(nèi)存中排列的順序,將花括號(hào)內(nèi)的數(shù)據(jù)一一對(duì)應(yīng)地賦給各個(gè)元素,若數(shù)據(jù)不足,系統(tǒng)將給后面的元素自動(dòng)補(bǔ)初值0。以上將給a數(shù)組第一行的元素和第二行的第一個(gè)元素依次賦予1、2、4、5,其他元素的初值都為0。11、以下關(guān)于宏的敘述中正確的是A、宏定義必須位于源程序中所有語(yǔ)句之前B、宏名必須用大寫字母表示C、宏調(diào)用比函數(shù)調(diào)用耗費(fèi)時(shí)間D、宏替換沒有數(shù)據(jù)類型限制標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查宏替換的規(guī)則。宏替換分為簡(jiǎn)單的字符替換和帶參數(shù)的宏替換兩類。使用宏時(shí)應(yīng)注意以下幾點(diǎn):①宏定義儀儀是符號(hào)替換,不是賦值語(yǔ)句,因此不做語(yǔ)法檢查;②為了區(qū)別程序中其他的標(biāo)識(shí)符,宏名的定義通常用大寫字母,但不是必須用大寫:③雙引號(hào)中出現(xiàn)的宏名不替換;④使用宏定義可以嵌套,即后定義的宏中可以使用先定義的宏。12、以下敘述中正確的是A、不能用字符串常量對(duì)字符數(shù)組名進(jìn)行整體賦值操作B、字符串常量’’Hello’’會(huì)被隱含處理成一個(gè)無名字符型數(shù)組,它有5個(gè)元素C、charstr[7]=’’string!’’;在語(yǔ)法上是合法的,運(yùn)行也是安全的D、char*str;str=’’Hello’’;與charstr[];str=’’Hello’’;效果是一樣的標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:字符數(shù)組僅僅可以采用定義時(shí)初始化以及輸入得到數(shù)據(jù),在程序其他部分不允許對(duì)其進(jìn)行賦值。字符串常量中除了實(shí)際字符之外還有結(jié)束標(biāo)志,選項(xiàng)B錯(cuò)誤,而選項(xiàng)C中,沒有空間存放字符串結(jié)束標(biāo)志,因此運(yùn)行是不安全的。選項(xiàng)D中第一個(gè)str為指針,可以賦值,而后面的為數(shù)組,在程序中賦值出錯(cuò)。13、程序段:intx=12;doubley=3.141593;printf("%d%8.6f",x,y);的輸出結(jié)果是A、123.141593B、123.141593C、12,3.141593D、123.1415930標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查格式化輸出函數(shù)printf。在printf函數(shù)調(diào)用里面首先輸入整型變量x的值12,然后按照“%8.6f”格式輸出double類型變量y的值,“%8.6f”表示輸出8位,小數(shù)點(diǎn)后輸出6位。14、設(shè)有定義:doublea,b,c;若要求通過輸入分別給a、b、c輸入1、2、3,輸入形式如下(注:此處□代表一個(gè)空格)□□1.0□□2.0□□3.0則能進(jìn)行正確輸入的語(yǔ)句是A、scanf("%1f%1f%1f’,a,b,c);B、scanf("%f%f%f’,&a,&b,&c);C、scanf("%1f%1f%1f’,&a,&b,&c);D、scanf("%5.11f%5.11f%5.1f",&a,&b,&c);標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:輸入格式scanf(格式控制,輸入項(xiàng)1,輸入項(xiàng)2,…),其中在scanf。函數(shù)的格式字符前可以加入一個(gè)正整數(shù)指定輸入數(shù)據(jù)所占的寬度,但不可以用實(shí)數(shù)指定小數(shù)位的寬度。輸入double型數(shù)據(jù),格式控制必須用%1f。(或%1e)。否則。數(shù)據(jù)不能正確輸入。由于輸入是一個(gè)字符流,scanf函數(shù)從這個(gè)字符流中按照格式控制指定的格式解析出相應(yīng)數(shù)據(jù),送到指定地址的變量中。15、在數(shù)據(jù)庫(kù)設(shè)計(jì)中,將E-R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過程屬于A、邏輯設(shè)計(jì)階段B、需求分析階段C、概念設(shè)計(jì)階段D、物理設(shè)計(jì)階段標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)的設(shè)計(jì)階段包括需要分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)和物理設(shè)計(jì),其中將E-R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過程屬于邏輯設(shè)計(jì)階段。16、以下結(jié)構(gòu)體類型說明和變量定義中正確的是A、typedefstruct{intn;charc;}REC;RECt1,t2;B、structREC;{intn;charc;};RECt1,t2;C、typedefstructREC;{intn=0;charc=’A’;}t1,t2;D、struct{intn;charc;}REC;RECt1,t2;標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:定義結(jié)構(gòu)體類型的一般形式為:struct結(jié)構(gòu)體名{成員列:表};struct結(jié)構(gòu)體名后不能加“;”號(hào),所以選項(xiàng)B)、C)錯(cuò)誤,選項(xiàng)D)中定義無名稱的結(jié)構(gòu)體類型同時(shí)定義結(jié)構(gòu)體變量形式應(yīng)為structt1,t2;選項(xiàng)A)為用戶自定義類型,其為正確的定義形式。17、有三個(gè)關(guān)系R,S和T如下圖所示:則由關(guān)系R和S得到關(guān)系T的運(yùn)算是A、并B、投影C、交D、選擇標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:關(guān)系并運(yùn)算是指,設(shè)有兩個(gè)關(guān)系R和S,它們具有相同的結(jié)構(gòu)。R和S的并是由屬于R或?qū)儆赟的元組組成的集合。所以對(duì)于本題關(guān)系R和S具有相同的結(jié)構(gòu),并且關(guān)系T的元組是由屬于R或?qū)儆赟的元組組成的集合。因此選項(xiàng)A正確。18、以下關(guān)于函數(shù)的敘述中正確的是A、每個(gè)函數(shù)都可以被其他函數(shù)調(diào)用(包括main函數(shù))B、每個(gè)函數(shù)都可以被單獨(dú)編譯C、每個(gè)函數(shù)都可以單獨(dú)運(yùn)行D、在一個(gè)函數(shù)內(nèi)部可以定義另一個(gè)函數(shù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題主要考查函數(shù)的定義和使用。選項(xiàng)A)錯(cuò)誤,main函數(shù)可以調(diào)用其他函數(shù),但是其他函數(shù)不能調(diào)用main函數(shù);選項(xiàng)B)正確;選項(xiàng)C)錯(cuò)誤,只有main函數(shù)可以單獨(dú)運(yùn)行,其他函數(shù)只能被調(diào)用;選項(xiàng)D)錯(cuò)誤,C語(yǔ)言中不能在函數(shù)內(nèi)部定義函數(shù)。19、若有以下程序typedefstructstu{charname[10],gender;intscore;}STU;voidf(STUa,STUb){b=a:printff("%s,%c,%d,",b.name,b.gender,b.score);}main(){STUa={"Zhao",’m’,290},b=["Qian",’f’,350};f(a,b);printf("%s,%c,%d\n",b.name,b.gender,b.score);}則程序的輸出結(jié)果是A、Zhao,m,290,Zhao,m,290B、Zhao,m,290,Qian,f,350C、Qian,f,i350,Qian,f,350D、Zhao,m,290,Zhao,f,350標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:函數(shù)f(STUa,STUb)的主要功能是為把結(jié)構(gòu)體變量a的值存放到b中,然后輸出b中各個(gè)成員的值。主函數(shù)中調(diào)用函數(shù)f(a,b),輸出賦值以后b的數(shù)據(jù),實(shí)際為a{"Zhao",’m’,290}的數(shù)據(jù),函數(shù)調(diào)用結(jié)束,形參a和b撤銷,流程到主函數(shù)輸出b{"Qian",’f’,350}的數(shù)據(jù)。20、有以下程序main(){inta=1,b=2,c=3,d=0;if(a==1&&b++==2)if(b!=2||c--!=3)printf("%d,%d,%d\n",a,b,c);elseprintf("%d,%d,%d\n",a,b,c);elseprintf("%d,%d,%d\n",a,b,c);}程序運(yùn)行后的輸出結(jié)果是A、1,3,2B、1,2,3C、1,3,3D、3,2,1標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:a,b,c,d初始值分別為1,2,3,0。嵌套的if語(yǔ)句中,第一個(gè)if中,表達(dá)式a==1&&b++==2值為1,執(zhí)行嵌套的if分支,此時(shí)b=3,b!=2成立,由于運(yùn)算符是||,不管后面一個(gè)表達(dá)式的值是不是1,其整個(gè)表達(dá)式的值總是1,c--!=3表達(dá)式不執(zhí)行,最后打印出a,b,c的值是1,3,3。21、有以下程序#includevoidfun(char*c,intd){*c=*c+1;d=d+1;printf("%c,%c,",*c,d);}main(){charb=’a’,a=’A’;fun(&b,a);printf("%c,%c\n",b,a);}程序運(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知識(shí)點(diǎn)解析:計(jì)算字符常量時(shí)一般使用其ASCII碼進(jìn)行運(yùn)算?!痑’+1=’b’,fun()中的第一個(gè)參數(shù)為地址傳參,形參的變化會(huì)影響實(shí)參的變化,所以兩次輸出的b值都為字符’b’;第二個(gè)參數(shù)為值傳參,形參變化不會(huì)影響實(shí)參,所以在函數(shù)fun()體內(nèi)輸出字符’B’,函數(shù)fun()體外輸出結(jié)果為字符’A’,所以答案選A。22、有下列程序:#includemain(){FILE*fp;inta[10]={1,2,3},i,n;fp=fopen("d1.dat","w");for(i=0;i<3;i++)fprintf(fp,"%d",a[i]);fprintf(fp,"\n");fclose(fp);fp=open("d1.dat","r");fscanf(fp,"%d",&n);fclose(fp);printf("%d\n",n);}程序的運(yùn)行結(jié)果是A、12300B、123C、1D、321標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查以讀和寫的方式打開文件對(duì)文件內(nèi)容操作的不同,fp=fopen("d1.dat","w");以可寫的方式為輸出建立新文本文件,調(diào)用printf,輸出“123”,fp=fopen("d1,dat","r");以只讀的方式打開文本文件,不能對(duì)文件內(nèi)容進(jìn)行操作。23、有以下程序#includemain(){inti,x[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++)printf("%d",x[i][2-i]);printf("\n");}程序的輸出結(jié)果是A、1、5、0B、3、5、7C、1、4、7D、3、6、9標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:程序首先初始化二維數(shù)組x[3][3],然后通過3次for循環(huán),輸出x[0][2]、x[1][1]和x[2][0]的值,即3、5、7。因此B選項(xiàng)正確。24、在數(shù)據(jù)管理技術(shù)發(fā)展的三個(gè)階段中,數(shù)據(jù)共享最好的是()。A、人工管理階段B、文件系統(tǒng)階段C、數(shù)據(jù)庫(kù)系統(tǒng)階段D、三個(gè)階段相同標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:數(shù)據(jù)管理發(fā)展至今已經(jīng)歷了三個(gè)階段:人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫(kù)系統(tǒng)階段。其中最后一個(gè)階段結(jié)構(gòu)簡(jiǎn)單,使用方便邏輯性強(qiáng)物理性少,在各方面的表現(xiàn)都最好,一直占據(jù)數(shù)據(jù)庫(kù)領(lǐng)域的主導(dǎo)地位,所以選擇C)。25、下列條件語(yǔ)句中,輸出結(jié)果與其他語(yǔ)句不同的是A、if(a!=0)printf("%d\n",x);elseprintf("%d\n",y);B、if(a==0)printf("%d\n",y);elseprintf("%d\n",x);C、if(a==0)printf("%d\n",x);elseprintf("%d\n",y);D、if(a)printf("%d\n",x);elseprintf("%d\n",y);標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:A,B,D選項(xiàng)的含義均為:a的值如果為0時(shí)打印y的值,否則打印x的值。但是C選項(xiàng)的含義是:a的值為0時(shí)打印x的值,不為0時(shí)打印y的值,與其他選項(xiàng)正好相反。國(guó)家二級(jí)C語(yǔ)言機(jī)試(選擇題)模擬試卷第4套一、選擇題(本題共25題,每題1.0分,共25分。)1、以下敘述中錯(cuò)誤的是A、C程序經(jīng)過編譯、連接步驟之后才能形成一個(gè)真正可執(zhí)行的二進(jìn)制機(jī)器指令文件B、用C語(yǔ)言編寫的程序稱為源程序,它以ASCII代碼形式存放在一個(gè)文本文件中C、C語(yǔ)言中的每條可執(zhí)行語(yǔ)句和非執(zhí)行語(yǔ)句最終都將被轉(zhuǎn)換成二進(jìn)制的機(jī)器指令D、C語(yǔ)言源程序經(jīng)編譯后生成后綴為.obj的目標(biāo)程序標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:C語(yǔ)言中的非執(zhí)行語(yǔ)句例如宏定義命令,在預(yù)編譯之后替換到代碼中,該命令本身也就不存在了,不會(huì)轉(zhuǎn)換成二進(jìn)制的機(jī)器指令。由高級(jí)語(yǔ)言編寫的程序稱為“源程序”,把由二進(jìn)制代碼表示的程序稱為“目標(biāo)程序”。C語(yǔ)言編寫的源程序就是一ASCII的形式存放在文本文件中的。C源程序經(jīng)過C編譯程序編譯之后生成一個(gè)后綴為.obj的二進(jìn)制文件(稱為目標(biāo)文件),然后由稱為“連接程序”(Link)的軟件,把此.obj文件與c語(yǔ)言提供的各種庫(kù)函數(shù)連接起采生成一個(gè)后綴為.EXE的可執(zhí)行文件。2、下列敘述中正確的是A、棧是一種先進(jìn)先出的線性表B、隊(duì)列是一種后進(jìn)先出的線性表C、棧與隊(duì)列都是非線性結(jié)構(gòu)D、棧與隊(duì)列都是線性結(jié)構(gòu)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:棧是先進(jìn)后出,隊(duì)列是先進(jìn)先出。棧和隊(duì)列都是一種線性表,屬于線性結(jié)構(gòu)。3、某二叉樹中有n個(gè)度為2的結(jié)點(diǎn),則該二叉樹中的葉子結(jié)點(diǎn)數(shù)為A、n+1B、n-1C、2nD、n/2標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在任意一棵二叉樹中,度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)。所以該二叉樹的葉子結(jié)點(diǎn)數(shù)等于n+1。4、某二叉樹有5個(gè)度為2的結(jié)點(diǎn),則該二叉樹中的葉子結(jié)點(diǎn)數(shù)是A、10B、8C、6D、4標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:根據(jù)二叉樹的性質(zhì),在任意二叉樹中,度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)。5、以下選項(xiàng)中能表示合法常量的是A、’\007’’B、1.5E2.0C、’\’D、1.2標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:選項(xiàng)D,1200中間不能有逗號(hào),否則編譯時(shí)會(huì)認(rèn)為是1或出錯(cuò)。選項(xiàng)B,2.0

溫馨提示

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

評(píng)論

0/150

提交評(píng)論