




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
國家二級C語言機(jī)試(選擇題)模擬試卷24(共9套)(共270題)國家二級C語言機(jī)試(選擇題)模擬試卷第1套一、選擇題(本題共40題,每題1.0分,共40分。)1、下列敘述中正確的是()。A、在棧中,棧中元素隨棧底指針與棧頂指針的變化而動(dòng)態(tài)變化B、在棧中,棧頂指針不變,棧中元素隨棧底指針的變化而動(dòng)態(tài)變化C、在棧中,棧底指針不變,棧中元素隨棧頂指針的變化而動(dòng)態(tài)變化D、以上說法都不正確標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:棧是先進(jìn)后出的數(shù)據(jù)結(jié)構(gòu),在整個(gè)過程中,棧底指針不變,入棧與出棧操作均由棧頂指針的變化來操作,所以選擇C選項(xiàng)。2、以下敘述正確的是A、C語言程序是由過程和函數(shù)組成的B、C語言函數(shù)可以嵌套調(diào)用,例如:fun(fun(x))C、C語言函數(shù)不可以單獨(dú)編譯D、C語言中除了main函數(shù),其他函數(shù)不可作為單獨(dú)文件形式存在標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在C語言中,允許函數(shù)的嵌套調(diào)用,即遞歸調(diào)用。在C語言中不存在過程的概念,在C語言中函數(shù)允許單獨(dú)編譯,可以作為單獨(dú)的文件形式存在。3、對下列二叉樹進(jìn)行中序遍歷的結(jié)果是A、ACBDFEGB、ACBDFGEC、ABDCGEFD、FCADBEG標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查二叉樹的遍歷,中序遍歷首先遍歷左子樹,然后訪問根節(jié)點(diǎn),最后遍歷又子樹,選A。4、以下選項(xiàng)中可用作C程序合法實(shí)數(shù)的是A、3.0e0.2B、E9C、.1e0D、9.12E標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:C程序的合法實(shí)數(shù)有兩種表示形式,一種是小數(shù)形式,另一種是指數(shù)形式,對于用指數(shù)形式表示的實(shí)數(shù)來說,需要灃意的是字*e或E之前必須要有數(shù)字,且字*e或E后面的指數(shù)必須為整數(shù)。5、結(jié)構(gòu)化程序設(shè)計(jì)中,下面對goto語句使用描述正確的是()。A、禁止使用goto語句B、使用goto語句程序效率高C、應(yīng)避免濫用goto語句D、以上說法都不對標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:結(jié)構(gòu)化程序設(shè)計(jì)中,應(yīng)盡量避免使用GOTO語句,但不是禁止使用,所以選擇C。6、程序流程圖中帶有箭頭的線段表示的是()。A、圖元關(guān)系B、數(shù)據(jù)流C、控制流D、調(diào)用關(guān)系標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在數(shù)據(jù)流圖中,用標(biāo)有名字的箭頭表示數(shù)據(jù)流。在程序流程圖中,用標(biāo)有名字的箭頭表示控制流。所以選擇C。7、有以下程序#includemain(){inta=3;printf("%dkn",(a+=a-=a*a));}程序運(yùn)行后的輸出結(jié)果是A、9B、0C、3D、-12標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:對于表達(dá)式a+=a-=a*a相當(dāng)于a=a-(a*a),然后計(jì)算a=a+a,a的初值為3,則表達(dá)式的值為-12。8、有以下程序:#include<stdio.h>main(){inta=6,b=7,m=1;switch(a%2){case0:m++;break;case1:m++:switch(b%2){defaut:m++;case0:m++;break;}}printf(’’%d\n’’,m);}程序運(yùn)行后的輸出結(jié)果是()。A、1B、2C、3D、4標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查switch語句。因?yàn)椤癮=6”,所以“a%2=0”,因此第一個(gè)switch語句,執(zhí)行“case0”,將m加1,遇到break語句跳出switch語句,輸出m值為2。9、設(shè)棧的存儲(chǔ)空間為S(1:50),初始狀態(tài)為top=0?,F(xiàn)經(jīng)過一系列正常的入棧與退棧操作后,top=51,則棧中的元素個(gè)數(shù)為A、不可能B、50C、0D、1標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:棧是向上增長的,每次壓入一個(gè)元素,棧的TOP指針向上移動(dòng)一位,即top-1。對于這個(gè)題目,由于top初始值等于0,此時(shí)入棧一個(gè)元素,top值減1,即0-1=-1,發(fā)生下溢錯(cuò)誤,所以選項(xiàng)A正確。10、以下選項(xiàng)中,當(dāng)x為大于1的奇數(shù)時(shí),值為0的表達(dá)式是A、x/2B、x%2=0C、x%21=0D、x%2=1標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:因?yàn)閤的值為大于1的奇數(shù),所以x除以2的余數(shù)等于1。所以選項(xiàng)B等于關(guān)系表達(dá)式的結(jié)果為假,即等于0。11、有以下稗宇:#includemain(){inta=1,b=2,c=3,x;x=(a^b.&c:printf(“%d\n”,x);}程序的運(yùn)行結(jié)果是()。A、3B、1C、2D、0標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查位運(yùn)算符以及相關(guān)運(yùn)算。^為按位或,&為按位與,那么a^b為3,再與c按位與仍然為3,所以答案為A選項(xiàng)。12、以下不合法的數(shù)值常量是()。A、8.0E0.5B、1e1C、011D、Oxabcd標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:A選項(xiàng)中E后面的指數(shù)必須為整型數(shù)據(jù),所以錯(cuò)誤。C選項(xiàng)中011表示的是八進(jìn)制常量,0xabcd表示的是十六進(jìn)制常量。13、以下選項(xiàng)中不能作為C語言合法常量的是()。A、O.1e+6B、’cd’C、’’\a’’D、’\011’標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:要想表示字符串常量,應(yīng)該用雙引號(hào)表示,即’’ed’’,單引號(hào)用于表示字符常量,所以B選項(xiàng)中的表示方法錯(cuò)誤。14、若有定義:inta,b;通過語句scanf(’’%d;%d’,&a,&b);能把整數(shù)3賦給變量a,5賦給變量b的輸入數(shù)據(jù)是A、3.5B、35C、3;5D、35標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在采用scanf這個(gè)函數(shù)輸入數(shù)據(jù)時(shí),要嚴(yán)格遵守其輸入的規(guī)則定義。本題此函數(shù)定義的規(guī)則是,存兩個(gè)整數(shù)之間加分號(hào)輸入。15、下列敘述中錯(cuò)誤的是A、循環(huán)隊(duì)列空的條件是隊(duì)頭指針與隊(duì)尾指針相同B、若二叉樹沒有葉子結(jié)點(diǎn),則為空二叉樹C、帶鏈棧的棧底指針是隨棧的操作而動(dòng)態(tài)變化的D、若帶鏈隊(duì)列中只有一個(gè)元素,則隊(duì)頭指針與隊(duì)尾指針必定相同標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:初始化建空隊(duì)時(shí),令front=rear=0,當(dāng)隊(duì)空時(shí):front=rear;當(dāng)隊(duì)滿時(shí):front=rear亦成立。因此,只憑等式front=rear無法判斷隊(duì)空還是隊(duì)滿。有兩種方法處理上述問題:①另設(shè)一個(gè)標(biāo)志位以區(qū)別隊(duì)列是空還是滿;②少用一個(gè)元素空間,約定以“隊(duì)列頭指針front在隊(duì)尾指針rear的下一個(gè)位置上”作為隊(duì)列“滿”狀態(tài)的標(biāo)志。即:隊(duì)空時(shí):front=rear;隊(duì)滿時(shí):(rear+1)%maxsize=front。所以選項(xiàng)A正確。16、以下程序:#include<stdio.h>#include<string.h>rnain(){Charstr[]=’’abcd\n\123\xab’’;printf(’’%d’’,strlen(str));}運(yùn)行后的輸出結(jié)果是()。A、10B、9C、7D、14標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查字符串的長度,需注意轉(zhuǎn)義字符串,例如,“\n”表示換行,為一個(gè)長度,“\123”表示3位八進(jìn)制數(shù)123表示的字符,為一個(gè)長度,“\xab”表示二位十六進(jìn)制數(shù)ab表示的字符,也為一個(gè)長度。17、在學(xué)生管理的關(guān)系數(shù)據(jù)庫中,存取一個(gè)學(xué)生信息的數(shù)據(jù)單位是A、文件B、數(shù)據(jù)庫C、字段D、記錄標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查關(guān)系數(shù)據(jù)庫中,數(shù)據(jù)單位的相關(guān)概念。文件是指存儲(chǔ)在外部介質(zhì)上的數(shù)據(jù)的集合。數(shù)據(jù)庫是存儲(chǔ)在計(jì)算機(jī)存儲(chǔ)設(shè)備上,結(jié)構(gòu)化的相關(guān)數(shù)據(jù)集合。它不僅包括描述事物的數(shù)據(jù)本身,而且還包括相關(guān)事物之間的聯(lián)系。在數(shù)據(jù)庫中,表的“行”稱為“記錄”,“列”稱為“字段”。由此可得,題中存取一個(gè)學(xué)生信息的數(shù)據(jù)單位為記錄。18、在下列關(guān)系運(yùn)算中,不改變關(guān)系表中的屬性個(gè)數(shù)但能減少元組個(gè)數(shù)的是A、并B、交C、投影D、笛卡兒乘積標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:關(guān)系R與S經(jīng)交運(yùn)算后所得到的關(guān)系是由那些既在R內(nèi)又在S內(nèi)的有序組所組成,記為R∩S。形式定義如下:R∩S≡{t∈R∧t∈S}=R-(R-s)。所以不改變關(guān)系表中的屬性個(gè)數(shù),但能減少元組個(gè)數(shù)的是關(guān)系表之間的交操作。19、有以下程序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)退出。20、有三個(gè)關(guān)系R、S和T如下:由關(guān)系R和S通過運(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。21、若函數(shù)調(diào)用時(shí)的實(shí)參為變量時(shí),以下關(guān)于函數(shù)形參和實(shí)參的敘述中正確的是A、形參只是形式上的存在,不占用具體存儲(chǔ)單元B、函數(shù)的形參和實(shí)參分別占用不同的存儲(chǔ)單元C、同名的實(shí)參和形參占同一存儲(chǔ)單元D、函數(shù)的實(shí)參和其對應(yīng)的形參共占同一存儲(chǔ)單元標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在C語言中,函數(shù)的實(shí)參單元與形參單元在內(nèi)存中分配不同的存儲(chǔ)單元。在調(diào)用函數(shù)時(shí),給形參分配臨時(shí)存儲(chǔ)單元,并將實(shí)參對應(yīng)的值傳遞給形參,在被調(diào)用函數(shù)中對形參存儲(chǔ)單元中的值進(jìn)行運(yùn)算,最后通過return語句把函數(shù)值返回調(diào)用函數(shù)。當(dāng)調(diào)用結(jié)束后,形參單元被釋放,實(shí)參單元仍保留并維持原值。22、以下選項(xiàng)中不能用作C程序合法常量的是A、1.234B、’\123’C、123D、\x7G標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查C語言中的常量。選項(xiàng)A)錯(cuò)誤,多了逗號(hào);選項(xiàng)B)是字符常量:選項(xiàng)C)是整型常量;選項(xiàng)D)是字符常量。23、以下敘述中錯(cuò)誤的是A、預(yù)處理命令行的最后不能以分號(hào)表示結(jié)束B、C程序?qū)︻A(yù)處理命令行的處理是在程序執(zhí)行的過程中進(jìn)行的C、#defineMAX是合法的宏定義命令行D、在程序中凡是以“#”開始的語句行都是預(yù)處理命令行標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:預(yù)處理命令行是以“#”開始的語句,預(yù)處理命令行的最后不能以分號(hào)表示結(jié)束,預(yù)處理命令行。其中宏定義的字符替換的定義格式為:#define標(biāo)識(shí)符字符串,預(yù)處理命令行是在系統(tǒng)劉源程序進(jìn)行編譯之前進(jìn)行處理的,不是在程序執(zhí)行的過程中。24、數(shù)據(jù)庫管理系統(tǒng)是A、操作系統(tǒng)的一部分B、在操作系統(tǒng)支持下的系統(tǒng)軟件C、一種編譯系統(tǒng)D、一種操作系統(tǒng)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫的結(jié)構(gòu),它是一種系統(tǒng)軟件,負(fù)責(zé)數(shù)據(jù)庫中的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護(hù)、控制及保護(hù)和數(shù)據(jù)服務(wù)等。25、以下敘述中正確的是A、在scanf函數(shù)的格式串中,必須有與輸入項(xiàng)一一對應(yīng)的格式轉(zhuǎn)換說明符B、只能在printf函數(shù)中指定輸入數(shù)據(jù)的寬度,而不能在scanf函數(shù)中指定輸入數(shù)據(jù)占的寬度C、scanf函數(shù)中的字符串,是提示程序員的,輸入數(shù)據(jù)時(shí)不必管它D、復(fù)合語句也被稱為語句塊,它至少要包含兩條語句標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:輸入函數(shù)的調(diào)用格式:scanf(格式控制,輸入項(xiàng)1,輸入項(xiàng)2,…)格式控制的主要作用是指定輸入時(shí)的數(shù)據(jù)轉(zhuǎn)換格式,格式串中,必須含有與輸入項(xiàng)一一對應(yīng)的格式轉(zhuǎn)換說明符選項(xiàng)A)正確,在scanf。函數(shù)的格式字符前可以加入一個(gè)正整數(shù)指定輸入數(shù)據(jù)所占的寬度.但不可以用實(shí)數(shù)指定小數(shù)位的寬度,選項(xiàng)B)錯(cuò)誤,scanf函數(shù)中的格式控制字符串是為了輸入數(shù)據(jù)用的,無論其中有什么字符,也不會(huì)輸出到屏幕上,因此若想在屏幕上輸出提示信息,應(yīng)該首先使用printf函數(shù)輸出,選項(xiàng)C)錯(cuò)誤,復(fù)合語句還可以是空語句昵,并沒有規(guī)定語句條數(shù),選項(xiàng)D)錯(cuò)誤。26、有以下程序:#include<stdio.h>yoidfun(char*c){while(*c){if(*c>=a’a’&&*c<=’z’)*c=*c=*(*’a’-’A’);C++;}}yoidmain(){chars[81];gets(s);fun(s);puts(s);}當(dāng)執(zhí)行程序時(shí)從鍵盤上輸入HelloBeijing<回車>,則程序的輸出結(jié)果是A、HELLOBEIJINGB、HelloBeijingC、helloBeijingD、hELLOBeijing標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:子函數(shù)*fun的功能是把小寫字*轉(zhuǎn)換成人寫字*,所以程序的輸出結(jié)果為選項(xiàng)A。27、有以下程序main(){inti=5;do{if(i%3=1)if(i%5==2){printf("*%d",i);break;}i++;}while(i!=0);printf("\n"),}程序的運(yùn)行結(jié)果是A、*3*5B、*5C、*7D、*2*6標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:由于循環(huán)變量i的初值等于5,所以第一、二次進(jìn)入do…while循環(huán)語句時(shí),條件語句if(i%3==1),if(i%5==2){printf(“*%d”,i);break;不執(zhí)行,只執(zhí)行i++語句。當(dāng)i=7時(shí),滿足條件語句if(i%3==1),if(i%5==2){printf("*%d,"i);break;},所以輸出*7,結(jié)束循環(huán)。28、若變量己正確定義,有以下程序段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知識(shí)點(diǎn)解析:do…while循環(huán)的執(zhí)行過程如下:①執(zhí)行do后面的循環(huán)體中的語句。②計(jì)算while后一對圓括號(hào)中表達(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后面括號(hào)中表達(dá)式i++的值,其值為0,所以循環(huán)結(jié)束。此時(shí)變量i的值經(jīng)過自加已經(jīng)變?yōu)閘,所以再次輸出i的值“1”。29、有以下程序main(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case1:b++;break;}case2:a++;b++;break;case3:a++;b++;}printf("a=%d,b=%d\n",a,b);}程序的運(yùn)行結(jié)果是A、a=2,b=2B、a=1,b=1C、a=1,b=0D、a=2,b=1標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查的是用switch語句實(shí)現(xiàn)多分支選擇結(jié)構(gòu),首先進(jìn)入第一個(gè)switch(x)判斷,進(jìn)入ease1中進(jìn)行嵌套判斷,如果switch(y)也成立,a自加1,遇到break,退出嵌套,接著執(zhí)行case2,a自加為2,b自加為1,遇到break,結(jié)束循環(huán),此時(shí)a=2,b=1。30、程序流程圖中帶有箭頭的線段表示的是()。A、圖元關(guān)系B、數(shù)據(jù)流C、控制流D、調(diào)用關(guān)系標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在數(shù)據(jù)流圖中,用標(biāo)有名字的箭頭表示數(shù)據(jù)流。在程序流程圖中,用標(biāo)有名字的箭頭表示控制流。所以選擇C)。31、下列條件語句中,輸出結(jié)果與其他語句不同的是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)答案:A知識(shí)點(diǎn)解析:選項(xiàng)B、C、D這三條語句都是在變量不等于0的情況下,輸出x;等于0的情況下輸出y,而選項(xiàng)A則正好相反。32、有以下程序#includevoidf(int*q){inti=0;for(;i<5;i++)(*q)++;}main(){inta[5]={1,2,3,4,5},i;f(a);for(i=0;i<5;i++)printf("%d,",a[i]);}程序運(yùn)行后的輸出結(jié)果是()。A、6,2,3,4,5,B、2,2,3,4,5,C、1,2,3,4,5,D、2,3,4,5,6,標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:函數(shù)f的功能是循環(huán)執(zhí)行語句"(*q)++;"五次,而該語句的執(zhí)行過程是獲取指針p指向的數(shù)據(jù)并自加,由于指針p沒有移動(dòng),所以每次獲取的都是數(shù)組a第一個(gè)元素的值,自加五次之后,值為6,數(shù)組的其他元素沒有變化,所以答案選A。33、假定已建立以下鏈表結(jié)構(gòu),且指針p和q已指向如圖所示的節(jié)點(diǎn):則以下選項(xiàng)中可將q所指節(jié)點(diǎn)從鏈表中刪除并釋放該節(jié)點(diǎn)的語句組是A、p=q->next;free(q);B、p=q;free(q);C、(*p).next=(*q).next;flee(p);D、p->next=-q>next;free(q);標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查了在線性鏈表刪除一個(gè)節(jié)點(diǎn)的方法,要?jiǎng)h除q所指向的節(jié)點(diǎn),只需要把q所指向的節(jié)點(diǎn)的前一個(gè)節(jié)點(diǎn)中的后繼指針指向q所指向的節(jié)點(diǎn)的下一個(gè)節(jié)點(diǎn)即可,即p->next=q->next。再釋放q所指向的節(jié)點(diǎn),即free(q)。34、有下列程序:#include<stdio.h>#defineN5#defineMN+1#definef(x)(x*M)main(){inti1,i2;i1=f(2);i2=f(1+1);printf("%d%d\n",i1,i2);}程序的運(yùn)行結(jié)果是A、127B、1212C、1111D、117標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在本題中,定義了3個(gè)宏定義語句,分別是:#defineN5、#defineMN+5和#definef(x)(x*M),所以根據(jù)C語言的宏替換規(guī)則,我們可知,f(2)=2*N+1=2*5+1=11,f(1+1)=1+1*N+1=1+1*5+1=7。35、若變量已正確定義for(x=0,y=0;(y!=99&&x<4);x++)則以上for循環(huán)A、執(zhí)行3次B、執(zhí)行4次C、執(zhí)行無限次D、執(zhí)行次數(shù)不定標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題重點(diǎn)考察for語句的循環(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)語句,當(dāng)有一個(gè)條件不成立時(shí),均結(jié)束循環(huán),因此循環(huán)4次,B選項(xiàng)正確。36、以下結(jié)構(gòu)體類型說明和變量定義中正確的是A、structREC;{intn;charc;};RECt1,t2;B、typedefstruct{intn;charc;}REC;RECt1,t2;C、typedefstructREC;{intn=0;charc=’A’;}t1,t2;D、struct{intn;charc;}REC;RECt1,t2;標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查結(jié)構(gòu)體的相關(guān)知識(shí),選項(xiàng)A中structREC后面不能有分號(hào),C選項(xiàng)中typedefstructREC的后面也不能有分號(hào),選項(xiàng)D中REC已經(jīng)是結(jié)構(gòu)體變量,不能當(dāng)做結(jié)構(gòu)體類型來使用。37、以下選項(xiàng)中合法的標(biāo)識(shí)符是A、1__B、1-1C、1_1D、_11標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C語言中的標(biāo)識(shí)符由下劃線、字母和數(shù)字組成,且必須以下劃線或字母開始,所以只有D選項(xiàng)正確。38、若有以下程序#include#includetypedefstructstu{charname[10],gender;intscore;}STU;voidf(char*p){strcpy(p,"Qian");}main(){STUa={"Zhao",’m’,290},b;b=a;f();b.gender=’f’;b.score=350;printf("%s,%c,%d,",,a.gender,a.score);printf("%s,%c,%d\n",,b.gender,b.score);}則程序的輸出結(jié)果是A、Zhao,m,290,Qian,f,350B、Zhao,m,290,Zhao,m,290C、Qian,f,350,Qian,f,350D、Zhao,m,290,Zhao,f,350標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查結(jié)構(gòu)體的相關(guān)操作以及傳值、傳址的區(qū)別,該題中調(diào)用f函數(shù)后,b的name會(huì)重新賦值為Qian,選項(xiàng)A正確。39、以下敘述中正確的是A、數(shù)組下標(biāo)的下限是1B、數(shù)組下標(biāo)的下限由數(shù)組中第一個(gè)非零元素的位置決定C、數(shù)組下標(biāo)的下限由數(shù)組中第一個(gè)被賦值元素的位置決定D、charc1,c2,*c3,c4[40];是合法的變量定義語句標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:數(shù)組下標(biāo)的下限是0。因此D選項(xiàng)正確。40、數(shù)據(jù)庫管理系統(tǒng)是A、操作系統(tǒng)的一部分B、在操作系統(tǒng)支持下的系統(tǒng)軟件C、一種編譯系統(tǒng)D、一種操作系統(tǒng)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫的機(jī)構(gòu),它是一種系統(tǒng)軟件,負(fù)責(zé)數(shù)據(jù)庫中數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護(hù)、控制及保護(hù)和數(shù)據(jù)服務(wù)等。是一種在操作系統(tǒng)之上的系統(tǒng)軟件。國家二級C語言機(jī)試(選擇題)模擬試卷第2套一、選擇題(本題共40題,每題1.0分,共40分。)1、下列敘述中正確的是()。A、棧與隊(duì)列都只能順序存儲(chǔ)B、循環(huán)隊(duì)列是隊(duì)列的順序存儲(chǔ)結(jié)構(gòu)C、循環(huán)鏈表是循環(huán)隊(duì)列的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)D、以上說法都不對標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:棧和隊(duì)列都可以采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),選項(xiàng)A)錯(cuò)誤。隊(duì)列的順序存儲(chǔ)結(jié)構(gòu)一般采用循環(huán)隊(duì)列的形式,所以循環(huán)隊(duì)列是隊(duì)列的順序存儲(chǔ)結(jié)構(gòu),選項(xiàng)B正確,選項(xiàng)C)錯(cuò)誤。答案選B)。2、已知大寫字母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知識(shí)點(diǎn)解析:由題意可知,小寫字符a和大寫字符A的ASCⅡ代碼相差為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’。3、若變量已正確定義并賦值,則錯(cuò)誤的賦值語句是()。A、a+a+1:B、a=sizeof(double);C、a=d‖c;D、a+1=a:標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:賦值號(hào)“=”的左邊必須是一個(gè)變量名。4、軟件設(shè)計(jì)中劃分模塊的一個(gè)準(zhǔn)則是()。A、低內(nèi)聚低耦合B、高內(nèi)聚低耦合C、低內(nèi)聚高耦合D、高內(nèi)聚高耦合標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:一般較優(yōu)秀的軟件設(shè)計(jì),應(yīng)盡量做到高內(nèi)聚,低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨(dú)立性。5、在結(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)聚性是對一個(gè)模塊內(nèi)部各個(gè)元素間彼此結(jié)合的緊密程度的度量。耦合性是對模塊間互相連接的緊密程度的度量。在結(jié)構(gòu)化程序設(shè)計(jì)中,模塊劃分應(yīng)遵循高內(nèi)聚、低耦合的原則,即減弱模塊之間的耦合性和提高模塊內(nèi)聚性,有利于提高軟件模塊的獨(dú)立性。6、以下不正確的轉(zhuǎn)義字符是()。A、’\\’B、’\d’C、’\s’D、’088’標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:“’\\’”是反斜線符,“’\d’”是整型變量轉(zhuǎn)義字符,“’\s’”是字符串型轉(zhuǎn)義字符,C語言中沒有規(guī)定“’088’”為轉(zhuǎn)義字符。7、關(guān)于C程序的編譯和運(yùn)行,以下敘述中錯(cuò)誤的是()。A、C語言源代碼程序通過編譯、鏈接步驟之后才能形成一個(gè)可執(zhí)行文件B、用C語言編寫的程序是以ASCⅡ代碼形式存放在一個(gè)文本文件中C、C語言中的所有語句都將被轉(zhuǎn)換成二進(jìn)制的機(jī)器指令D、C語言源程序經(jīng)編譯后生成后綴為.obj的目標(biāo)程序標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:C語言中的某些語句并不會(huì)被轉(zhuǎn)換成二進(jìn)制機(jī)器指令,如宏定義命令,在預(yù)編譯之后替換到代碼中,該命令本身也就不存在了,不會(huì)轉(zhuǎn)換成二進(jìn)制的機(jī)器指令。C語言編寫的源程序就是以ASCⅡ的形式存放在文本文件中的。C源程序經(jīng)過C編譯程序編譯之后生成一個(gè)后綴為.obj的二進(jìn)制文件(稱為目標(biāo)文件),然后由稱為“鏈接程序”的軟件,因此.obj文件與C語言提供的各種庫函數(shù)鏈接起來生成一個(gè)后綴為.EXE的可執(zhí)行文件。8、下列條件語句中,輸出結(jié)果與其他語句不同的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)答案:A知識(shí)點(diǎn)解析:選項(xiàng)B)、C)、D)這三條語句都是存變量不等于0的情況下,輸出x;等于0的情況下輸出y,而選項(xiàng)A)則正好相反。9、設(shè)有定義語句intx[6]={2,4,6,8,5,7),*p=x,i;要求依次輸出x數(shù)組6個(gè)元素中的值不能完成此操作的語句是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來輸出數(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)先級比++要求,因此,因此*p++表示先取出p指向的元素的值,然后p再++指向下一個(gè)元素,滿足要求:選項(xiàng)D中(*p)++表示先取出p指向的元素的值,然后該值++,p沒有增加,每次循環(huán)都*p取出的x[0]的值,不滿足要求。10、若變量已正確定義為int型,要通過語句scanf("%d,%d,%d",&a,&b,&c);給a賦值1、給b賦值2、給c賦值3,以下輸入形式中錯(cuò)誤的是(注:□代表一個(gè)空格符)A、□□□1,2,3B、1,□□□2,□□□3C、1,2,3D、1□2□3標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題主要考查scanf函數(shù)的輸入格式問題。scanf函數(shù)的一般形式為:scanf(格式控制字符串,地址1,地址2,…);格式控制字符串是由雙撇號(hào)括起來的字符串,它主要由兩種類型的字符組成:①格式說明符由“%”和格式字符組成,如%c,%d,%s,%f等。其作用是將輸入的數(shù)據(jù)轉(zhuǎn)換為指定的格式,賦給scanf的二個(gè)參量(是地址1)所指定的內(nèi)存單元(可能一次使用多個(gè))中。格式說明以“%”字符為標(biāo)志;②普通字符,是需要用戶在輸入時(shí)原樣輸入的字符。在本題中格式控制字符串為“%d,%d,%d”,表示按十進(jìn)制輸入三個(gè)數(shù)據(jù)。要求在輸入數(shù)據(jù)時(shí),兩個(gè)數(shù)據(jù)間一定以一個(gè)逗號(hào)“,”作為間隔符。11、一個(gè)教師講授多門課程,一門課程由多個(gè)教師講授。則實(shí)體教師和課程間的聯(lián)系是A、1:1聯(lián)系B、1:m聯(lián)系C、m:1聯(lián)系D、m:n聯(lián)系標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:一個(gè)教師可講授多門課程,一門課程可由多個(gè)教師講授,則實(shí)體教師和課程的聯(lián)系是多對多的聯(lián)系。12、若有以下函數(shù)首部intfun(doublex[10],int*n)則下面針對此函數(shù)的函數(shù)聲明語句中正確的是A、intfun(double,int);B、intfun(double*,int*);C、intfun(double*x,intn);D、intfun(doublex,int*n);標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:函數(shù)聲明的一般形式為:類型說明符被調(diào)函數(shù)名(類型形參,類型形參…);或?yàn)椋侯愋驼f明符被調(diào)函數(shù)名(類型,類型…);由于函數(shù)首部為intfun(doublex[10],int*n),因此B選項(xiàng)正確。13、已知大寫字母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知識(shí)點(diǎn)解析:由題意可知,小寫字符a和大寫字符A的ASCⅡ代碼相差為32,所以選項(xiàng)C)能將大寫字符C的ASCⅡ代碼轉(zhuǎn)換為小寫字符c的ASCⅡ代碼;選項(xiàng)D)和C)左側(cè)的表達(dá)式都是大寫字符C與大寫字符A的差與’a’的ASCⅡ代碼的和就是小寫字符c的ASCⅡ代碼。而選項(xiàng)A)中應(yīng)該是加上’a’,而不是減去’a’。14、有以下程序#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,這樣對應(yīng)定義fun函數(shù)首部也有三種形式,這里采用了第一種形式,也就是行指針,這樣在fun函數(shù)對s[i][j]進(jìn)行操作實(shí)際上就是對主函數(shù)中的a[i][j]進(jìn)行操作,再分析fun函數(shù)的作用便可知,是求二維數(shù)組第0列中最大的那個(gè)元素。因此C選項(xiàng)正確。15、以下定義數(shù)組的語句中錯(cuò)誤的是A、intnum[][3]={{1,2),3,4,5,6};B、intnum[]={1,2,3,4,5,6};C、intnum[][4]={1,2,3,4,5,6};D、intnum[2][4]={{1,2},{3,4},{5,6}};標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在選項(xiàng)D的數(shù)組定義中,賦值號(hào)左邊定義了一個(gè)2行4列的二維數(shù)組,而在右邊定義了一個(gè)3行2列的二維數(shù)組。16、有以下程序:#include<stdio.h>#defineSUB(a)(a)-(a)main(){Inta=2,b=3,c=5,d;d=SUB(a+b)*c;printf("%d\n",d);}程序的運(yùn)行結(jié)果是()。A、0B、-12C、-20D、10標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查宏定義。宏定義只是做簡單的替換,本題中SUB(a+b)*c=(a+b)-(a+b)*c=-20,所以C選項(xiàng)正確。17、以下敘述中正確的是A、a表示一個(gè)字符常量B、’\0’表示字符0C、表達(dá)式:’a>’b’的結(jié)果是“假”D、’\’’’是非法的標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:字符常量可以參加關(guān)系運(yùn)算,按照其存儲(chǔ)的ASCII碼值進(jìn)行比較,’a’>’b’不成立,值為假。而’\0’表示NULL,ASCII碼值為0。18、以下敘述中正確的是A、C程序書寫格式嚴(yán)格,要求一行內(nèi)只能寫一個(gè)語句B、C程序書寫格式自由,一個(gè)語句可以寫在多行上C、C程序中的注釋只能出現(xiàn)在程序的開始位置和語句的后面D、用C語言編寫的程序只能放在一個(gè)程序文件中標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題主要考查的是C語言結(jié)構(gòu)中的源程序書寫格式這個(gè)知識(shí)點(diǎn),在C浯言中注釋部分對程序的運(yùn)行結(jié)果不產(chǎn)生任何影響,它可以出現(xiàn)在任意位置:C語言書寫自由,一行內(nèi)可以寫多個(gè)語句,一個(gè)語句可以寫在多行上;由于C語言編寫的程序有很好的移植性,可以放在多個(gè)程序文件中。19、設(shè)有定義:inta=2,b=3,c=4;,則以下選項(xiàng)中值為0的表達(dá)式是A、(!a==1)&(!b==0)B、(a<b)&!c||1C、a&bD、a||(b+b)||(c-a)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題主要考查邏輯運(yùn)算。選項(xiàng)A中,(!a==1)中!運(yùn)算優(yōu)先級比==高,因此!a為假,然后在和1比較是否相等,因此整個(gè)表達(dá)式的結(jié)果為假,(!a==1)和(!b==0)是與的關(guān)系,前面的表達(dá)式為假,整個(gè)表達(dá)式結(jié)果就是假(0);選項(xiàng)B中a<b為真,!c值為假,(a<b)&!c值為假,(a<b)&!c‖1為真:選項(xiàng)C中a&b的值為2;選項(xiàng)D中a的值為真,表達(dá)式的結(jié)果為真。20、以下選項(xiàng)中不合法的標(biāo)識(shí)符是A、FORB、&aC、printD、_00標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:合法的標(biāo)識(shí)符要滿足組成字符為a~z以及A~z,數(shù)字字符0到9和下劃線,其中數(shù)字不開頭,不能是關(guān)鍵字。選項(xiàng)B中,&不屬于組成字符,是錯(cuò)誤的。21、以下選項(xiàng)中有語法錯(cuò)誤的是A、charstr[3][10];str[1]="guest";B、charstr[][10]={"guest"};C、char*str[3];str[1]="guest";D、char*str[]={"guest"};標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查字符數(shù)組的定義和使用。選項(xiàng)A定義了一個(gè)二維字符數(shù)組,第二句是直接給字符數(shù)組賦值錯(cuò)誤,C語言中不能直接給字符數(shù)組賦值;選項(xiàng)B、C)和D)都是正確的。22、設(shè)有以下語句typedefstructTT{charc;inta[4];}CIN;則下面敘述中正確的是A、TT是struct類型的變量B、可以用TT定義結(jié)構(gòu)體變量C、CIN是structTT類型的變量D、可以用CIN定義結(jié)構(gòu)體變量標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C語言允許用typedef說明一種新的類型名,說明新類型名的語句為一般形式為:typedef。類型名標(biāo)識(shí)符在此,“類型名”必須是此語句之前已有定義的類型標(biāo)識(shí)符。“標(biāo)識(shí)符”是一個(gè)用戶定義標(biāo)識(shí)符,用作新的類型名。typedef語句的作用僅僅是用“標(biāo)識(shí)符”來代表已存在的“類型名”,并未產(chǎn)生新的數(shù)據(jù)類型,原有類型名依然有效。在本題中用typedef定義CIN為TT的一種新的類型名.因而可以用它定義一個(gè)結(jié)構(gòu)體變量。23、以下選項(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)的值為不定值,但絕對不是0,算術(shù)運(yùn)算符的優(yōu)先級高于關(guān)系運(yùn)算符的優(yōu)先級,所以當(dāng)x為大于1的奇數(shù)時(shí),B選項(xiàng)的值為假,即0?C選項(xiàng)的值為真,即1,D選項(xiàng)的值為真,即1,選項(xiàng)B正確。24、有以下程序main(){inti;for(i=1;i<=40;i++){if(i++%5==0)if(++i%8==0)printf("%d",i);}printf("\n");}執(zhí)行后的輸出結(jié)果是A、24B、5C、32D、40標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在for循環(huán)體中,先判斷自變量i能否被5整除,然后自加兩次,最后判斷i能否被8整除。當(dāng)for循環(huán)執(zhí)行到第30次時(shí),i的值為30能被5整除,然后i經(jīng)過兩次自加1運(yùn)算,值變?yōu)?2,能被8整除,故執(zhí)行“printf("%d",i);”語句,即輸出32。25、在關(guān)系數(shù)據(jù)庫中,描述全局?jǐn)?shù)據(jù)邏輯結(jié)構(gòu)的是A、內(nèi)模式B、用戶模式C、概念模式D、物理模式標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:概念模式也稱為模式或邏輯模式,概念模式是數(shù)據(jù)庫中全體數(shù)據(jù)的整體邏輯結(jié)構(gòu)和特征的描述,概念模式通常還包含有訪問控制、保密定義和完整性檢查等方面的內(nèi)容,以及概念/物理之間的映射。26、以下敘述中正確的是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知識(shí)點(diǎn)解析:字符串?dāng)?shù)組,也就是二維字符數(shù)組,其中每個(gè)元素為一個(gè)字符串,選項(xiàng)B)的說法正確。選項(xiàng)A)和C)對于ca的定義是正確的。選項(xiàng)D)定義一個(gè)指針數(shù)組,可以保存多個(gè)字符串的首地址。27、若有以下程序#includeintf(intm){staticintn=0;inta=2;n++;a++;returnn+m+a;}main(){intk;for(k=0;k<4;k++)printf("%d,",f(k));}則程序的輸出結(jié)果是A、3,5,7,9,B、4,7,10,13,C、4,5,6,7,D、4,6,8,10,標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查靜態(tài)局部變量以及自增運(yùn)算符,靜態(tài)局部變量在函數(shù)調(diào)用結(jié)束后,并不釋放,仍然保留它的值,本題中,k為0時(shí),returnn+m+a之前,n為1,a為局部變量是3,m為0,所以第一個(gè)返回值為4。k為1,在函數(shù)返回值之前,靜態(tài)局部變量為2,局部變量a仍然為3,m為1,所以結(jié)果是6,依此類推答案為D。28、有以下程序#includefunc(intn)voidmain(){staticintnum=1;{func(3);func(4);printf("\n");}num=num+n;printf("%d",num);}程序運(yùn)行后的輸出是A、45B、35C、48D、34標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在函數(shù)func(intn)中定義了局部靜態(tài)變量num,其初始值等于l,所以在主函數(shù)中執(zhí)行func(3),輸出4,此時(shí)靜態(tài)變量num的值等于4,當(dāng)退出函數(shù)func(3)時(shí),其值不會(huì)丟失,所以當(dāng)在執(zhí)行func(4)時(shí),輸出8。29、設(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)解析:語句*s=a,使用指針變量s指向一維數(shù)組a的首地址,所以*(s+3)表示的是引用數(shù)組a[3]。30、數(shù)據(jù)字典(DD)所定義的對象都包含于A、數(shù)據(jù)流圖(DFD圖)B、程序流程圖C、軟件結(jié)構(gòu)圖D、方框圖標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在數(shù)據(jù)流圖中,對所有元素都進(jìn)行了命名,所有名字的定義集中起來就構(gòu)成了數(shù)據(jù)字典。因此選A,而B,C,D都不符合。31、有以下程序#include<stdio.h>intfun(chars[]){char*p=s;while(*P!=0)p++;return(p-s);}main(){printf("%d\n",fun("0ABCDEF"));}程序運(yùn)行后的輸出結(jié)果是A、6B、7C、1D、0標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:函數(shù)fun的主要功能是計(jì)算字符串中實(shí)際字符的個(gè)數(shù),因此主函數(shù)中調(diào)用fun得到結(jié)果為7。32、以下敘述中正確的是A、書寫源程序時(shí),必須注意縮進(jìn)格式,否則程序會(huì)有編譯錯(cuò)誤B、程序的主函數(shù)名除main外,也可以使用Main或_mainC、程序可以包含多個(gè)主函數(shù),但總是從第一個(gè)主函數(shù)處開始執(zhí)行D、在C程序中,模塊化主要是通過函數(shù)來實(shí)現(xiàn)的標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C語言的源程序中對縮進(jìn)沒有要求,所以A選項(xiàng)錯(cuò)誤。C語言中區(qū)分大小寫,main函數(shù)不能寫成Main或_main,所以B選項(xiàng)錯(cuò)誤。一個(gè)C程序有且只有一個(gè)主函數(shù),所以C選項(xiàng)錯(cuò)誤。33、有以下程序(說明:字*A的ASCII碼值是65)voidfun(char*s){while(*s){if(*s%2)printf("%c",*s);s++;}}main(){chara[]="BYTE";fun(a);printf("\n");}程序運(yùn)行后的輸出結(jié)果是A、BTB、YEC、YTD、BY標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:程序只輸出字母ASCII值為奇數(shù)的字母,根據(jù)字母B,Y,T,E的ASCII值的奇偶性相應(yīng)輸出。34、設(shè)有定義語句:char*aa[2]={"abcd","ABCD"};則以下敘述正確的是A、aa數(shù)組的兩個(gè)元素只能存放含有4個(gè)字符的一維數(shù)組的首地址B、aa數(shù)組的值分別是字符串"abcd"和"ABCD"C、aa是指針變量,它指向含有兩個(gè)元素的字符型數(shù)組D、aa[0]存放了字符串"abcd"的首地址標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:題目中char*aa[2],定義了指針教組aa,有兩個(gè)元素,aa[0]存放"abcd"地址,而aa[1]存放"ABCD"地址。35、若有以下定義intx[10],*pt=x;則對x數(shù)組元素的正確引用是()。A、*(x+3)B、*&x[10]C、*(pt+10)D、pt+3標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:數(shù)組x[10]下標(biāo)的最大值為9,不能引用下標(biāo)大于9的數(shù)組元素,選項(xiàng)B)、C)錯(cuò)誤;指針pt指向數(shù)組x的首地址,所以pt+3與&x[3]等價(jià),為數(shù)組第四個(gè)元素的地址,不是引用數(shù)組元素的值,選項(xiàng)D)錯(cuò)誤。所以答案選A)。36、以下敘述中正確的是A、break語句不能用于提前結(jié)束for語句的本層循環(huán)B、continue語句使得整個(gè)循環(huán)終止C、使用break語句可以使流程跳出switch語句體D、在for語句中,continue與break的效果是一樣的,可以互換標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:用break語句可以使程序流程跳出switch語句體,也可用break語句在循環(huán)結(jié)構(gòu)中終止循環(huán)體,從而提前結(jié)束循環(huán),而continue語句的作用是結(jié)束本次循環(huán),即跳過本次循環(huán)體中continue語句后面的語句,立刻進(jìn)行下一次的循環(huán)條件判斷,可以理解為僅結(jié)束本次循環(huán)。37、以下敘述中正確的是A、在包含文件中,不得再包含其他文件B、#include命令行不能出現(xiàn)在程序文件的中間C、在一個(gè)程序中,允許使用任意數(shù)量的#include命令行D、雖然包含文件被修改了,包含該文件的源程序也可以不重新進(jìn)行編譯和連接標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:#include文件包含命令,使用時(shí)應(yīng)注意以下5個(gè)規(guī)則:①包含文件的#include命令行通常應(yīng)書寫在所用源程序文件的開頭,故有時(shí)也把包含文件稱作“頭文件”。頭文件名可以由用戶指定,其后綴不一定用“.h”;②包含文件中,一般包含有一些公用的#define命令行、外部說明或?qū)?庫)函數(shù)的原型說明;③當(dāng)包含文件修改后,對包含該文件的源程序必須重新進(jìn)行編譯連接;④在一個(gè)程序中,允許有任意多個(gè)#include命令行;⑤在包含文件中還可以包含其他文件。38、有以下程序#include<stdio.h>main(){intn,*p=NULL;*p=&n;printf("Inputn:");scanf("%d",&p);printf("outputn:");orintf("%d\n",p:}該程序、試圖通過指針p為變量n讀入數(shù)據(jù)并輸出,但程序有多處錯(cuò)誤,以下語句正確的是A、intn,*p=NULL;B、*p=&n;C、scanf("%d",&p)D、printf("%d\n",p);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:選項(xiàng)A)表示在程序中,聲明定義變量語句“intn,*p=NULL;”定義了整型變量n和指針變量p,并且指針變量p初始化為空。其他的語句都是錯(cuò)誤的。其中選項(xiàng)B),&n的地址應(yīng)存放到指針變量p中,而選項(xiàng)C)中數(shù)據(jù)輸入項(xiàng)錯(cuò)誤,選項(xiàng)D)輸出地址信息。39、以下選項(xiàng)中合法的變量是A、5aB、_10_C、A%D、sizeof標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:變量的命名要符合標(biāo)識(shí)符的命名規(guī)則,即由下劃線、字母或數(shù)字組成,且必須以下劃線或字母開始,也不能和關(guān)鍵字相同,所以選擇B。40、有以下程序#include#includestructA{inta;charb[10];doublec;};voidf(structAt);main(){structAa={1001,"ZhangDa",1098.0};f(a);printf("%d,%s,%6.1f\n",a.a,a.b,a.c);}voidf(structAt){t.a=1002;strcpy(t.b,"ChangRong");t.c=1202.0;}程序運(yùn)行后的輸出結(jié)果是A、1002,ZhangDa,1202.0B、1002,ChangRong,1202.0C、1001,ChangRong,1098.0D、1001,ZhangDa,1098.0標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查結(jié)構(gòu)體的相關(guān)操作以及傳值、傳址的區(qū)別,該題中調(diào)用f函數(shù)后,會(huì)生成參數(shù)a的一個(gè)副本,而不會(huì)改變a的值,所以a值維持原值,選項(xiàng)D正確。國家二級C語言機(jī)試(選擇題)模擬試卷第3套一、選擇題(本題共25題,每題1.0分,共25分。)1、下列敘述中正確的是A、有一個(gè)以上根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是非線性結(jié)構(gòu)B、只有一個(gè)根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是線性結(jié)構(gòu)C、循環(huán)鏈表是非線性結(jié)構(gòu)D、雙向鏈表是非線性結(jié)構(gòu)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在數(shù)據(jù)結(jié)構(gòu)中,樹這類的數(shù)據(jù)結(jié)構(gòu)只有一個(gè)根結(jié)點(diǎn),但它不是線性結(jié)構(gòu)。2、設(shè)棧的順序存儲(chǔ)空間為S(1:m),初始狀態(tài)為top=0。現(xiàn)經(jīng)過一系列正常的入棧與退棧操作后,top=m+1,則棧中的元素個(gè)數(shù)為()。A、0B、mC、不可能D、m+1標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:棧為空時(shí),棧頂指針top=0,經(jīng)過入棧和退棧運(yùn)算,指針始終指向棧頂元素。初始狀態(tài)為top=0,當(dāng)棧滿top=m,無法繼續(xù)入棧,top值不可能為m+1。3、下列敘述中錯(cuò)誤的是()。A、循環(huán)鏈表中有一個(gè)表頭結(jié)點(diǎn)B、循環(huán)鏈表是循環(huán)隊(duì)列的存儲(chǔ)結(jié)構(gòu)C、循環(huán)鏈表的表頭指針與循環(huán)鏈表中最后一個(gè)結(jié)點(diǎn)的指針均指向表頭結(jié)點(diǎn)D、循環(huán)鏈表實(shí)現(xiàn)了空表與非空表運(yùn)算的統(tǒng)一標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:循環(huán)鏈表是指在單鏈表的第一個(gè)結(jié)點(diǎn)前增加一個(gè)表頭結(jié)點(diǎn),隊(duì)頭指針指向表頭結(jié)點(diǎn),最后一個(gè)結(jié)點(diǎn)的指針域的值由NULL改為指向表頭結(jié)點(diǎn)。循環(huán)鏈表是線性表的一種鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),循環(huán)隊(duì)列是隊(duì)列的一種順序存儲(chǔ)結(jié)構(gòu)。4、若運(yùn)行時(shí)給變量x輸入12,則以下程序的運(yùn)行結(jié)果是()。main(){intx,y;scanf(’’%d’’,&x);y=x>127x+10:x-12;printf(’’%d\n’’,y);}A、0B、22C、12D、10標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查三目條件運(yùn)算符“?:”。表達(dá)式“x>127x+10:x-12”即,如果x>12成立,則x+10的值即為此表達(dá)式的值,否則x-12即為此表達(dá)式的值。因?yàn)閤=12,所以x>12不成立,所以執(zhí)行“y=x-12=0”。5、在具有2n個(gè)結(jié)點(diǎn)的完全二叉樹中,葉子結(jié)點(diǎn)個(gè)數(shù)為()。A、nB、n+1C、n-1D、n/2標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:由二叉樹的定義可知,樹中必定存在度為0的結(jié)點(diǎn)和度為2的結(jié)點(diǎn),設(shè)度為0結(jié)點(diǎn)有a個(gè),根據(jù)度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總比度為2的結(jié)點(diǎn)多一個(gè),得度為2的結(jié)點(diǎn)有a-1個(gè)。再根據(jù)完全二叉樹的定義,度為1的結(jié)點(diǎn)有0個(gè)或1個(gè),假設(shè)度1結(jié)點(diǎn)為0個(gè),a+0+a-1=2n,得2a=2n-1,由于結(jié)點(diǎn)個(gè)數(shù)必須為整數(shù),假設(shè)不成立;當(dāng)度為1的結(jié)點(diǎn)為1個(gè)時(shí),a+1+a-1=2n,得a=n,即葉子結(jié)點(diǎn)個(gè)數(shù)為n。6、在數(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知識(shí)點(diǎn)解析:E—R圖轉(zhuǎn)換成關(guān)系模型數(shù)據(jù)則是把圖形分析出來的聯(lián)系反映到數(shù)據(jù)庫中,即設(shè)計(jì)出表,所以屬于邏輯設(shè)計(jì)階段。7、在學(xué)校里,教師可以講授不同的課程,同一課程也可由不同教師講授,則實(shí)體教師與實(shí)體課程間的聯(lián)系是()。A、一對多B、一對一C、多對一D、多對多標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:一個(gè)教師可以講授不同的課程,同一課程也可由不同教師講授,則實(shí)體教師與實(shí)體課程間的聯(lián)系是多對多。8、下列敘述中,不屬于軟件需求規(guī)格說明書的作用的是()。A、便于用戶,開發(fā)人員進(jìn)行理解和交流B、反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù)C、作為確認(rèn)測試和驗(yàn)收的依據(jù)D、便于開發(fā)人員進(jìn)行需求分析標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:軟件需求規(guī)格說明書有以下幾個(gè)方面的作用:①便于用戶、開發(fā)人員進(jìn)行理解和交流;②反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù);③作為確認(rèn)測試和驗(yàn)收的依據(jù)。9、下面屬于黑盒測試方法的是()。A、邊界值分析法B、基本路徑測試C、條件覆蓋D、條件-分支覆蓋標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:黑盒測試方法主要有等價(jià)類劃分法、邊界值分析法、錯(cuò)誤推測法、因果圖等,答案選A。10、下列描述中正確的是A、軟件測試應(yīng)該由程序開發(fā)者來完成B、程序經(jīng)調(diào)試后一般不需要再測試C、軟件維護(hù)只包括對程序代碼的維護(hù)D、以上三種說法都不對標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:為了達(dá)到好的測試效果,應(yīng)該由獨(dú)立的第三方進(jìn)行測試工作。因?yàn)閺男睦韺W(xué)角度講,程序人員或設(shè)計(jì)方在測試自己的程序時(shí),要采取客觀的態(tài)度是會(huì)不同程度地存在障礙的,所以選項(xiàng)A)錯(cuò)誤。在程序調(diào)試時(shí),修改了一個(gè)錯(cuò)誤的同時(shí)可能引入了新的錯(cuò)誤,解決的辦法是在修改了錯(cuò)誤之后,必須進(jìn)行回歸測試,所以選項(xiàng)B)錯(cuò)誤。所謂軟件維護(hù),就是將交付的軟件投入運(yùn)行,并在運(yùn)行使用中不斷地維護(hù),根據(jù)新提出的需求進(jìn)行必要而且可能的擴(kuò)充和刪改,所以選項(xiàng)C)錯(cuò)誤。11、我們所寫的每條C語句,經(jīng)過編譯最終都將轉(zhuǎn)換成二進(jìn)制的機(jī)器指令。關(guān)于轉(zhuǎn)換以下說法錯(cuò)誤的是()。A、一條C語句對應(yīng)轉(zhuǎn)換成一條機(jī)器指令B、一條C語句可能會(huì)被轉(zhuǎn)換成多條機(jī)器指令C、一條C語句可能會(huì)被轉(zhuǎn)換成零條機(jī)器指令D、某種類型和格式的C語句被轉(zhuǎn)換成機(jī)器指令的條數(shù)是固定的標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:每條可執(zhí)行的C語句會(huì)依據(jù)其類型和格式轉(zhuǎn)換成一條或者多條機(jī)器指令,非可執(zhí)行語句:注釋語句或者宏定義語句不會(huì)被轉(zhuǎn)換成機(jī)器指令,而且相同類型和格式的C語句轉(zhuǎn)換成機(jī)器指令的條數(shù)是相同的,所以答案選A。12、有以下程序:#include#includemain(){charstr[][20]={t.One*World”,”O(jiān)ne*Dream!”;,*P=str[1];prinff(“%d,”,strlen(P));prinff(“%s\n”,P);}程序的運(yùn)行結(jié)果是()。A、10,One*Dream!B、9,One*Dream!C、9,One*WorldD、10,One*World標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:p是指向二維字符數(shù)組第二行one*Dream!的數(shù)組指針,所以長度是10,打印輸出的也是該字符串。13、軟件測試的目的是A、發(fā)現(xiàn)程序中的錯(cuò)誤B、發(fā)現(xiàn)并改正程序中的錯(cuò)誤C、設(shè)計(jì)和執(zhí)行測試用例D、診斷程序中的錯(cuò)誤標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:軟件測試的目的是為了發(fā)現(xiàn)程序中的錯(cuò)誤,而軟件調(diào)試是為了更正程序中的錯(cuò)誤。14、若有定義語句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)存單元之中的。15、若變量已正確定義為int型,要通過語句scanf("%d,%d,%d",&a,&b,&c);給a賦值1、給b賦值2、給c賦值3,以下輸入形式中錯(cuò)誤的是(注:□代表一個(gè)空格符)A、□□□1,2,3B、1,□□□2,□□□3C、1,2,3D、1□2□3標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題主要考查scanf函數(shù)的輸入格式問題。scanf函數(shù)的一般形式為:scanfi(格式控制字符串,地址1,地址2,...);格式控制字符串是由雙撇號(hào)括起來的字符串,它主要由兩種類型的字符組成:①格式說明符由“%”和格式字符組成,如%c,%d,%s,%f等。其作用是將輸入的數(shù)據(jù)轉(zhuǎn)換為指定的格式,賦給scanf的二個(gè)參量(是地址1)所指定的內(nèi)存單元(可能一次使用多個(gè))中。格式說明以“%”字符為標(biāo)志。②普通字符,是需要用戶在輸入時(shí)原樣輸入的字符。在本題中格式控制字符串為“%d,%d,%d”,表示按十進(jìn)制輸入三個(gè)數(shù)據(jù)。要求在輸入數(shù)據(jù)時(shí),兩個(gè)數(shù)據(jù)間一定以一個(gè)逗號(hào)“,”作為間隔符。16、有以下程序#includemain(){inta1,a2;charc1,c2;scanf("%d%c%d%c",&a1,&c1,&a2,&c2);printf("%d,%c,%d,%c",a1,c1,a2,c2);}若想通過鍵盤輸入,使得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語句。scanf()函數(shù)是格式化輸入函數(shù),它從標(biāo)準(zhǔn)輸入設(shè)備(鍵盤)讀取輸入的信息。其調(diào)用格式為:scanf("<格式化字符串>",<地址表>)格式化字符串包括以下3類不同的字符。①格式化說明符:格式化說明符與前面用的printf()函數(shù)中的格式說明符基本相同。②空白字符:空白字符會(huì)使scanf()函數(shù)在讀操作中略去輸入中的一個(gè)或多個(gè)空白字符。③非空白字符:一個(gè)非空白字符會(huì)使scanf()函數(shù)在讀入時(shí)剔除掉與這個(gè)非空白字符相同的字符。由于在scanf函數(shù)中,幾個(gè)變量之間沒有任何問隔,所以輸入的時(shí)候,也同樣不應(yīng)該有間隔。17、若有定義:inta,b;通過語句scanf("%d;%d",&a,&b);能把整數(shù)3賦給變量a,5賦給變量b的輸入數(shù)據(jù)是()。A、35B、3,5C、3;5D、35標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:輸入數(shù)據(jù)的格式必須與scanf()的格式控制串完全匹配,所以輸入時(shí)必須在3和5之間輸入";"。18、以下敘述中正確的是A、continue語句的作用是:使程序的執(zhí)行流程跳出包含它的所有循環(huán)B、break語句只能用在循環(huán)體內(nèi)和switch語句體內(nèi)C、在循環(huán)體內(nèi)使用break語句和continue語句的作用相同D、break語句只能用于switch語句體中標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:只能在循環(huán)體內(nèi)和switch語句體內(nèi)使用break語句。continue語句的作用是結(jié)束本次循環(huán),即跳過本次循環(huán)體中continue語句后面的語句,立刻進(jìn)行下一次的循環(huán)條件判斷,可以理解為僅結(jié)束本次循環(huán)。而break語句可以使程序流程跳出switch語句體,也可用break語句在循環(huán)結(jié)構(gòu)中終止循環(huán)體。19、定義學(xué)生、教師和課程的關(guān)系模式S(S#,Sn,Sd,Dc,Sa)(其屬性分別為學(xué)號(hào)、姓名、所在系、所在系的系主任、年齡);C(C#,Cn,P#)(其屬性分別為課程號(hào)、課程名、先修課);SC(S#,C#,G)(其屬性分別為學(xué)號(hào)、課程號(hào)和成績),則該關(guān)系為A、第二范式B、第一范式C、第三范式D、BCNF范式標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在關(guān)系模式S(S#,Sn,Sd,Dc,Sa)中把學(xué)號(hào)S#設(shè)置為主鍵,則其它列姓名、所在系、所在系的系主任、年齡都依賴主鍵學(xué)號(hào)S#。在C(C#,Cn,P#)中將C#課程號(hào)設(shè)置為主鍵,則課程名、先修課都依賴主鍵C#。在SC(S#,C#,G)中,將S#,C#設(shè)置為主鍵,則G成績依賴于主鍵S#,C#。所以該關(guān)系模式是第二范式。選擇A選項(xiàng)。20、有以下程序(strcat函數(shù)用以連接兩個(gè)字符串)#include#includemain(){chara[20]="ABCD\0EFG\0",b[]="IJK";strcat(a,b);printf("%s\n",a);}程序運(yùn)行后的輸出結(jié)果是()。A、ABCDIJKB、ABCDE\0FG\0IJKC、IJKD、EFGIJK標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:strcat(字符數(shù)組,字符串)函數(shù)的功能是把"字符串內(nèi)容"連接到"字符數(shù)組"中的字符串尾端,而字符串的尾端用結(jié)束標(biāo)記?\0?標(biāo)識(shí),所以語句"strcat(a,b);"執(zhí)行完畢之后,在字符?D?后面連接數(shù)組b中的字符串。答案選A。21、以下敘述中正確的是A、打開一個(gè)已存在的文件并進(jìn)行了寫操作后,原有文件中的全部數(shù)據(jù)必定被覆蓋B、在一個(gè)程序中當(dāng)對文件進(jìn)行了寫操作后,必須先關(guān)閉該文件然后再打開,才能讀到第1個(gè)數(shù)據(jù)C、C語言中的文件是流式文件,因此只能順序存取數(shù)據(jù)D、當(dāng)對文件的讀(寫)操作完成之后,必須將它關(guān)閉,否則可能導(dǎo)致數(shù)據(jù)丟失標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在C語言中,有兩種對文件的存取方式;順序存取和直接存取;如果以“a”的方式對一個(gè)已打開的文件進(jìn)行寫操作后,則原有文件中內(nèi)容將保存,新的數(shù)據(jù)寫在原有內(nèi)容之后。如果以“a+”的方式為讀和寫而打開一個(gè)文件,則既可以對文件進(jìn)行讀,也可以對文件進(jìn)行寫,而且在讀和寫操作之間不必關(guān)閉文件,可以從頭開始讀。當(dāng)對文件的讀(寫)操作完成之后,必須將它關(guān)閉。22、若各選項(xiàng)中所用變量已正確定義,函數(shù)fun中通過return語句返回一個(gè)函數(shù)值,以下選項(xiàng)中錯(cuò)誤的程序是()。A、main(){……x=fun(2,10);……}floatfun(inta,intb){……}B、floatfun(inta,intb){……}main(){……x=fun(i,j);……}C、floatfun(int,int);main(){……x=fun(2,10);……}floatfun(inta,intb){……}D、main(){floatfun(inti,intj);……x=fun(i,j);……}floatfun(inta,intb){……}標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:被調(diào)函數(shù)的定義要在調(diào)用語句之前,若不是,則在調(diào)用語句之前要對被調(diào)函數(shù)進(jìn)行聲明,選項(xiàng)A)缺少對被調(diào)函數(shù)fun()的聲明語句,答案選A)。23、下列條件語句中,輸出結(jié)果與其他語句不同的是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)答案:A知識(shí)點(diǎn)解析:選項(xiàng)B、C、D這三條語句都是在變量不等于0的情況下,輸出x;等于0的情況下輸出y,而選項(xiàng)A則正好相反。24、若有以下程序段charstr[4][12]={"aaa","bbbb","ccccc","dddddd"},*strp[4];inti;for(i=0;i<4;i++)strp[i]=str[i];則以下錯(cuò)誤引用字符串的選項(xiàng)是(其中0≤k<4)()。A、strpB、str[k]C、strp[k]D、*strp標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:指針strp為一個(gè)指針數(shù)組,str為一個(gè)二維數(shù)組名。語句"strp[i]=str[i];"將str數(shù)組中第i+1個(gè)字符串的首地址賦值給strp[i],所以str[i]與strp[i]、*(strp+i)、*(str+i)等價(jià),選項(xiàng)B)、C)、D)正確,而strp為指針數(shù)組所占內(nèi)存的首地址,不能引用字符串,所以答案選A)。25、下面不屬于軟件測試實(shí)施步驟的是A、集成測試B、回歸測試C、確認(rèn)測試D、單元測試標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:軟件測試主要包括單元測試、集成測試、確認(rèn)測試和系統(tǒng)測試。國家二級C語言機(jī)試(選擇題)模擬試卷第4套一、選擇題(本題共25題,每題1.0分,共25分。)1、若變量都己正確說明,則以下程序段輸出結(jié)果為()。#includemain(){chara=’a’;intb=2:printf(a>b?"***a=%d":"###b=%d",a,b);}A、***a=3B、###b=3C、***a=3##b=5D、全部錯(cuò)誤標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查printf函數(shù)的格式和三目運(yùn)算符“?:”的使用。printf函數(shù)中格式說明符之前插入的任何字符都原樣輸出。本題中“a>b”為真,所以返回“***a=97”。2、對于循環(huán)隊(duì)列,下列敘述中正確的是A、隊(duì)頭指針是固定不變的B、隊(duì)頭指針一定大于隊(duì)尾指針C、隊(duì)頭指針一定小于隊(duì)尾指針D、隊(duì)頭指針可以大于隊(duì)尾指針,也可以小于隊(duì)尾指針標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:所謂循環(huán)隊(duì)列,就是將隊(duì)列存儲(chǔ)空間的最后一個(gè)位置繞到第一個(gè)位置,形成邏輯上的環(huán)狀空間,供隊(duì)列循環(huán)使用。在循環(huán)隊(duì)列中,用隊(duì)尾指針rear指向隊(duì)列中的隊(duì)尾元素,用隊(duì)頭指針front指向隊(duì)頭元素的前一個(gè)位置。循環(huán)隊(duì)列的主要操作是:入隊(duì)運(yùn)算和退隊(duì)運(yùn)算。每進(jìn)行一次入隊(duì)運(yùn)算,隊(duì)尾指針就進(jìn)一。每進(jìn)行一次退隊(duì)運(yùn)算,隊(duì)頭指針就進(jìn)一。當(dāng)rear或front等于隊(duì)列的長度加1時(shí),就把rear或front值置為1。所以在循環(huán)隊(duì)列中,隊(duì)頭指針可以大于隊(duì)尾指針,也可以小于隊(duì)尾指針。3、若有以下程序段:structst{intn;int*m;};inta=2,b=3,c=5;structsts[3]=({101,&a},{102,&c},{103,&b}};main(){structst*p;p=s;…}則以下表達(dá)式中值為5的是()。A、(p++)->mB、*(p++)->mC、(*p)-mD、*(H_p)->m標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查如何通過指針引用數(shù)組元素。首先定義了一個(gè)結(jié)構(gòu)體,然后定義了一個(gè)結(jié)構(gòu)體變量s[3],并賦了初值。在主程序中,定義了一個(gè)指向結(jié)構(gòu)體變量s的指針p,要使表達(dá)式的值為5,就應(yīng)該引用s[1].m的值,使指針p指向s[1],++p可以實(shí)現(xiàn)將p指針加1,指向s[1]。4、下列敘述中正確的是()。A、在鏈表中,如果每個(gè)結(jié)點(diǎn)有兩個(gè)指針域,則該鏈表一定是非線性結(jié)構(gòu)B、在鏈表中,如果有兩個(gè)結(jié)點(diǎn)的同一個(gè)指針域的值相等,則該鏈表一定是非線性結(jié)構(gòu)C、在鏈表中,如果每個(gè)結(jié)點(diǎn)有兩個(gè)指針域,則該鏈表一定是線性結(jié)構(gòu)D、在鏈表中,如果有兩個(gè)結(jié)點(diǎn)的同一個(gè)指針域的值相等,則該鏈表一定是線性結(jié)構(gòu)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:判斷一個(gè)非空的數(shù)據(jù)結(jié)構(gòu)是否為線性結(jié)構(gòu)必須滿足以下兩個(gè)條件:①有且只有一個(gè)根結(jié)點(diǎn);②每一個(gè)結(jié)點(diǎn)最多有一個(gè)前件,也最多有一個(gè)后件。選項(xiàng)B)中,如果有兩個(gè)結(jié)點(diǎn)的同一個(gè)指針域的值相等,則說明至少有一個(gè)結(jié)點(diǎn)有兩個(gè)前件,不符合線性結(jié)構(gòu)的定義,所以答案選B)。5、下面屬于白盒測試方法的是()。A、等價(jià)類劃分法B、判定一條件覆蓋C、因果圖法D、錯(cuò)誤推測法(猜錯(cuò)法)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:白盒測試法主要有邏輯覆蓋、基本路徑測試等。其中,邏輯覆蓋又包括語句覆蓋、路徑覆蓋、判定覆蓋、條件覆蓋、判斷一條件覆蓋。黑盒測試方法主要有等價(jià)類劃分法、邊界值分析法、錯(cuò)誤推測法和因果圖等。6、若有以下程序,編譯時(shí)出現(xiàn)錯(cuò)誤,你認(rèn)為出錯(cuò)的是#includemain(){inta=0,b=0,c=0,d;c=(a+=b,,b+=a);/*第4行*/d=c;;/*第5行*/;/*第6行*/printf("%d,%d,%d\n",a,b,c);/*第7行*/}A、第4行B、第5行C、第6行D、第7行標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:第4行出錯(cuò),在第4行括號(hào)中兩個(gè)逗號(hào)不可以為空。單獨(dú)的分號(hào)為C語言的空語句,是編譯程序可以識(shí)別并且編譯的,因此第5、6行都是正確的。7、在黑盒測試方法中,設(shè)計(jì)測試用例的主要根據(jù)是()。A、程序內(nèi)部邏輯B、程序外部功能C、程序數(shù)據(jù)結(jié)構(gòu)D、程序流程圖標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:黑盒測試是對軟件已經(jīng)實(shí)現(xiàn)的功能是否滿足需求進(jìn)行測試和驗(yàn)證,黑盒測試完全不考慮程序內(nèi)部的邏輯結(jié)構(gòu)和內(nèi)部特性,只根據(jù)程序的需求和功能規(guī)格說明,檢查程序的功能是否符合它的功能說明,所以本題選擇B。8、設(shè)一棵樹的度為3,其中度為3,2,1的結(jié)點(diǎn)個(gè)數(shù)分別為4,1,3。則該棵樹中的葉子結(jié)點(diǎn)數(shù)為A、10B、11C、12D、不可能有這樣的樹標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:因?yàn)槿我豢脴渲?結(jié)點(diǎn)總數(shù)=總分支數(shù)目+1,所以:n0+4+1+3=(n0*0+3*4+2*1+1*3)+1,計(jì)算結(jié)果n0=10。其中,n0表示葉子結(jié)點(diǎn)。所以選項(xiàng)A正確。9、學(xué)生和課程的關(guān)系模式定義為:S(S#,Sn,Sd,Dc,Sa)(其屬性分別為學(xué)號(hào)、姓名、所在系、所在系的系主任、年齡);C(C#,Cn,P#)(其屬性分別為課程號(hào)、課程名、先選課);SC(S#,C#,G)(其屬性分別學(xué)號(hào)、課程號(hào)和成績)。關(guān)系中包含對主屬性傳遞依賴的是()。A、S#→SdB、S#→Sd,(S#,C#)→GC、S#→Sd,Sd→DcD、C#→P#,(S#,C#)→G標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:關(guān)系SC的主屬性為(S#、C#),但在SC中S#(學(xué)號(hào))單獨(dú)就可以決定Sd(所在系),Sd(所在系)可決定Dc(所在系的系主任),故對主屬性傳遞依賴的是S#→Sd,Sd→Dc。10、sizeof(char)是()。A、一種函數(shù)調(diào)用B、一個(gè)整型表達(dá)式C、一個(gè)字符型表達(dá)式D、一個(gè)不合法的表達(dá)式標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:“sizeof(char)”是一個(gè)C語言的關(guā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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國小型超濾主機(jī)數(shù)據(jù)監(jiān)測研究報(bào)告
- 2025至2030年中國多層共擠塑料片材機(jī)數(shù)據(jù)監(jiān)測研究報(bào)告
- 2025至2030年中國四板大立柜數(shù)據(jù)監(jiān)測研究報(bào)告
- 2025至2030年中國光學(xué)攝影器材數(shù)據(jù)監(jiān)測研究報(bào)告
- 2025至2030年中國中速電腦凹版印刷機(jī)數(shù)據(jù)監(jiān)測研究報(bào)告
- 2025至2030年中國七水硫酸鎂數(shù)據(jù)監(jiān)測研究報(bào)告
- 2025年中國顆粒活性炭濾芯市場調(diào)查研究報(bào)告
- 2025年中國鉻酐市場調(diào)查研究報(bào)告
- 2025年中國聚氨酯束狀超細(xì)纖維合成革市場調(diào)查研究報(bào)告
- 2025年中國精紡女裝面料市場調(diào)查研究報(bào)告
- 拉線的制作詳細(xì)
- 律師報(bào)價(jià)函(訴訟)
- 新生兒沐浴評分標(biāo)準(zhǔn)
- 潛水作業(yè)指導(dǎo)書
- (完整版)設(shè)計(jì)管理
- 感謝對手閱讀附答案
- 材料性能學(xué)(第2版)付華課件0-緒論-材料性能學(xué)
- GB/T 8012-2000鑄造錫鉛焊料
- 第一課 第一章 AutoCAD 2012概述入門
- 2023年湖南省普通高中學(xué)業(yè)水平考試數(shù)學(xué)版含答案
- 超市店長考核方案(實(shí)例)
評論
0/150
提交評論