國家二級C語言機(jī)試(選擇題)模擬試卷45(共255題)_第1頁
國家二級C語言機(jī)試(選擇題)模擬試卷45(共255題)_第2頁
國家二級C語言機(jī)試(選擇題)模擬試卷45(共255題)_第3頁
國家二級C語言機(jī)試(選擇題)模擬試卷45(共255題)_第4頁
國家二級C語言機(jī)試(選擇題)模擬試卷45(共255題)_第5頁
已閱讀5頁,還剩67頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

國家二級C語言機(jī)試(選擇題)模擬試卷45(共9套)(共255題)國家二級C語言機(jī)試(選擇題)模擬試卷第1套一、選擇題(本題共25題,每題1.0分,共25分。)1、下列敘述中錯誤的是()。A、循環(huán)隊列有隊頭和隊尾兩個指針B、循環(huán)隊列是非線性結(jié)構(gòu)C、循環(huán)隊列中元素的動態(tài)變化由隊頭和隊尾指針共同反映D、循環(huán)隊列中元素的個數(shù)是由隊頭指針和隊尾指針共同決定標(biāo)準(zhǔn)答案:B知識點解析:循環(huán)隊列是線性結(jié)構(gòu),包含隊頭和隊尾兩個指針。循環(huán)隊列中元素的個數(shù)是由隊頭指針和隊尾指針共同決定的,元素的動態(tài)變化也是通過隊頭指針和隊尾指針來反映的。2、下列敘述中正確的是A、棧是“先進(jìn)先出"的線性表B、隊列是“先進(jìn)后出”的線性表C、循環(huán)隊列是非線性結(jié)構(gòu)D、有序線性表既可以采用順序存儲結(jié)構(gòu),也可以采用鏈?zhǔn)酱鎯Y(jié)構(gòu)標(biāo)準(zhǔn)答案:D知識點解析:本題主要考查了棧、隊列、循環(huán)隊列的概念,棧是先進(jìn)后出的線性表,隊列是先進(jìn)先出的線性表。根據(jù)數(shù)據(jù)結(jié)構(gòu)中各數(shù)據(jù)元素之間的前后件關(guān)系的復(fù)雜程度,一般將數(shù)據(jù)結(jié)構(gòu)分為兩大類型:線性結(jié)構(gòu)與非線性結(jié)構(gòu)。有序線性表既可以采用順序存儲結(jié)構(gòu),又可以采用鏈?zhǔn)酱鎯Y(jié)構(gòu)。3、結(jié)構(gòu)化程序包括的基本控制結(jié)構(gòu)是()。A、主程序與子程序B、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)與層次結(jié)構(gòu)C、順序結(jié)構(gòu)、選擇結(jié)構(gòu)與循環(huán)結(jié)構(gòu)D、以上說法都不對標(biāo)準(zhǔn)答案:C知識點解析:結(jié)構(gòu)化程序包括三種基本控制結(jié)構(gòu),分別為順序結(jié)構(gòu)、選擇結(jié)構(gòu)和重復(fù)結(jié)構(gòu)(也稱為循環(huán)結(jié)構(gòu)),所以答案選C。4、以下四個程序中,完全正確的是()。A、#includemain();{/*/programming/*/printf("programming!\n");}B、#includemain(){/*programming*/printf("programming!\n");}C、#includemain(){/*/*programming*/*/printf("programming!\n");}D、includemain(){/*programming*/printf("programming!\n");}標(biāo)準(zhǔn)答案:B知識點解析:考查C語言程序的組成部分。選項A)中main函數(shù)后面不能有分號;選項C注釋有誤,"/*…*/"為多行注釋,以"/*"開始,直到遇到"*/"結(jié)束,選項C中最后一個"*/"多余;選項D)中寫文件包含命令時,要以"#include"開始。所以答案選B)。5、下列各項中不屬于軟件設(shè)計階段任務(wù)的是()。A、制訂軟件確認(rèn)測試計劃B、數(shù)據(jù)庫設(shè)計C、軟件總體設(shè)計D、算法設(shè)計標(biāo)準(zhǔn)答案:A知識點解析:軟件設(shè)計階段的主要任務(wù)包括兩個:一是進(jìn)行軟件系統(tǒng)的可行性分析,確定軟件系統(tǒng)的建設(shè)是否值得,能否建成;二是進(jìn)行軟件的系統(tǒng)分析,了解用戶的需求,定義應(yīng)用功能,詳細(xì)估算開發(fā)成本和開發(fā)周期。6、以下程序的輸出結(jié)果是()。main(){intk=5;while(一一k)printf(’’%d’’,k一=3);printf(’’\n’’);}A、1B、0C、一1D、2標(biāo)準(zhǔn)答案:A知識點解析:本題考查while條件語句執(zhí)行過程,k的初始值為5,進(jìn)行第1次while循環(huán)后,k自減1為4,非0,執(zhí)行循環(huán)體里的printf語句,輸出1,此時k的值變?yōu)?。程序執(zhí)行第2次循環(huán)時,k自減1變?yōu)?,為假,退出循環(huán)語句。所以程序的最后結(jié)果為1。7、有以下程序:#includemain(){intn,*p=NULL;*p=&n:printf(“Input13:”);ScaRf(“%d”,&p);prinff(“outputn:”);printf(“%d\11”,P);}該程序試圖通過指針P為變量n讀入數(shù)據(jù)并輸出,但程序有多處錯誤,下列語句中正確的是()。A、intn,*p=NULL;B、*P=&n;C、scallf(“%d”,&p)D、printf(“%d\n”,P);標(biāo)準(zhǔn)答案:A知識點解析:B選項的正確寫法應(yīng)為p=&n;C選項的正確寫法應(yīng)為scanf(“%d’t,p);選項D的正確寫法應(yīng)為printf(“%d\n”,*p)。8、若有以下程序#includemain(){charc1,c2;c1=’C’+’8’-’3’;c2=’9’-’0’:printf("%c%d\n",c1,c2);}則程序的輸出結(jié)果是A、H9B、H’9’C、F’9’D、表達(dá)式不合法輸出無定值標(biāo)準(zhǔn)答案:A知識點解析:字符常量允許進(jìn)行簡單的算術(shù)運算,則’C’+5表示H,而’9’-’0’則表示數(shù)值9。9、有以下程序:#include<stdio.h>#defineS(x)4*(x)*x+1main(){intk=5,j=2;printf("%d\n",S(k+j));}程序的運行結(jié)果是()。A、33B、197C、143D、28標(biāo)準(zhǔn)答案:C知識點解析:本題考查帶參數(shù)的宏定義,s為帶參數(shù)的宏定義,運行s(k+j)為4*(k+j)*k+j+1=143,C選項正確。10、下面對“對象”概念描述正確的是A、操作是對象的動態(tài)屬性B、屬性就是對象C、任何對象都必須有繼承性D、對象是對象名和方法的封裝體標(biāo)準(zhǔn)答案:A知識點解析:①對象:對象是人們要進(jìn)行研究的任何事物,從最簡單的整數(shù)到復(fù)雜的飛機(jī)等均可看作對象,它不僅能表示具體的事物,還能表示抽象的規(guī)則、計劃或事件;②對象的狀態(tài)和行為:對象具有狀態(tài),一個對象用數(shù)據(jù)值來描述它的狀態(tài)。對象還有操作,用于改變對象的狀態(tài),對象及其操作就是對象的行為。對象實現(xiàn)了數(shù)據(jù)和操作的結(jié)合,使數(shù)據(jù)和操作封裝于對象的統(tǒng)一體中;③類:具有相同或相似性質(zhì)的對象的抽象就是類。因此,對象的抽象是類,類的具體化就是對象,也可以說類的實例是對象。因此選項A正確。11、有以下程序main(){chara[5][10]={"one","two","three","four","five");inti,j;Chart;for(i=0;i<4;i++)for(j=i+1;j<5;j++)if(a[i][0]>a[j][0]){t=a[i][0];a[i][0]=a[j][0];a[j][0]=t;)puts(a[1]);}程序運行后的輸出結(jié)果是A、fwoB、owoC、twoD、fix標(biāo)準(zhǔn)答案:A知識點解析:這個程序的執(zhí)行過程是當(dāng)i=0時,j=1,a[0][0]=0a[3][0]=f;置換a[2][0]=f,a[3][0]=t;此時,a[2][0]=Ca[1][0]=t,再置換a[2][0]=t,a[1][0]=f,;當(dāng)i=3時,j=4,a[3][0]=f=a43][0]=f;不置換;所以a[1]的結(jié)果為fwo。12、設(shè)floata[10],*s=a;以下能夠代表數(shù)組元素a[3]的是()。A、(*s)[3]B、*s[3]C、*s+3D、*(s+3)標(biāo)準(zhǔn)答案:D知識點解析:C語言中,指針可以指向一個數(shù)組,語句*s=a,使用指針變量s指向一維數(shù)組a的首地址,所以*(s+3)表示的是引用數(shù)組a[3]。13、在關(guān)系模型中,每一個二維表稱為一個A、關(guān)系B、屬性C、元組D、主碼(鍵)標(biāo)準(zhǔn)答案:A知識點解析:每個二維表代表一個關(guān)系,由表框架及表的元組組成。14、設(shè)變量均已正確定義,若要通過scanf("%d%c%d%c",&a1,&c1,&a2,&c2);語句為變量a1和a2賦數(shù)值10和20,為變量c1和c2賦字符X和Y。以下所示的輸入形式中正確的是(注:□代表空格字符)A、10□X20□YB、10□X20□YC、10X20YD、10□X□20□Y標(biāo)準(zhǔn)答案:C知識點解析:在使用scanf函數(shù)進(jìn)行輸入數(shù)據(jù)時,輸入的數(shù)據(jù)之間必須用空格、回車符、制表符(Tab鍵)等間隔符隔開,但是空格為合法的字符型數(shù)據(jù)的輸入;而按照格式符"%d%c%d%c"說明,數(shù)值型數(shù)據(jù)和字符數(shù)據(jù)輸入之間不要加入空格何隔,而字精型數(shù)據(jù)和數(shù)值型數(shù)據(jù)的輸入?yún)s可以加入任意的空格,回車和跳格。15、己知字符’A’的AScII代碼值是65,字符變量c1的值是’A’,c2的值是’D’。則執(zhí)行語句printf("%d,%d",c1,c2-2);的輸出結(jié)果是A、A,68B、A,BC、65,66D、65.68標(biāo)準(zhǔn)答案:C知識點解析:在C語言中,字符常量在內(nèi)存中占一個字節(jié),存放的是字符的ASCII碼值。所有的字符常量都作為整型量來處理。在本題中輸出語句用整型格式輸出字符時,輸出的是其ASCII碼值。因為字符’A’和’D’的ASCII碼值分別為65和68,所以c2-2=68-2=66。16、若變量已正確定義,在if(W)pfintf(”%d\11”,k);中,以下不可替代W的是A、ch=getchar(1B、a--b+cC、a<>b+cD、a++標(biāo)準(zhǔn)答案:C知識點解析:在if()語句的括號是一個合法的C語言表達(dá)式即可,如果表達(dá)式的值為0,則不執(zhí)行if語句,否則執(zhí)行if語句,而在選項C中,符號<>不是C語言的合法運算符,如果要表達(dá)a大于或小于b+c可用a!b+c或(a>b+c)‖(ab+c。所以它不是一個合法的C語言表達(dá)式。17、有以下程序#includemain(){intx=35,B;charz=’B’;B=((x)&&(z<’b’));printf("%d\n",B);}程序運行后的輸出結(jié)果是A、1B、0C、35D、66標(biāo)準(zhǔn)答案:A知識點解析:本題重點考察邏輯運算符和關(guān)系運算符的相關(guān)知識,已知變量x為整型變量,并賦值為35,變量z為字符型變量,并賦值為’B’。語句B=((x)&&(z<’b’));中,(x)的值為1,’B’的asscii碼小于’b’的asscii碼,所以(z<’b’)的值也為1,1&&1結(jié)果為1。因此A選項正確。18、以下敘述中正確的是A、結(jié)構(gòu)體變量的地址不能作為實參傳給函數(shù)B、結(jié)構(gòu)體數(shù)組名不能作為實參傳給函數(shù)C、即使是同類型的結(jié)構(gòu)體變量,也不能進(jìn)行整體賦值D、結(jié)構(gòu)體中可以含有指向本結(jié)構(gòu)體的指針成員標(biāo)準(zhǔn)答案:D知識點解析:一個結(jié)構(gòu)體變量包含若干成員,這些成員可以是數(shù)值類型、字符類型、數(shù)組類型,也可以是指針類型,甚至可以是正在定義的結(jié)構(gòu)體類型指針。用結(jié)構(gòu)體變量作實參時,采取的是“值傳遞”的方式,將結(jié)構(gòu)體變量所占的內(nèi)存單元的內(nèi)容全部順序傳遞給形參。形參也必須是同類型的結(jié)構(gòu)體變量。結(jié)構(gòu)體數(shù)組作為參數(shù)時,采取了“地址傳遞”的方式,形參須為同類型的結(jié)構(gòu)指針或者形參結(jié)構(gòu)數(shù)組。19、以下結(jié)構(gòu)體說明和變量定義中,正確的是A、typedefstructabc{intn;doublem;}ABC;ABCx,y;B、structabc{intn;doublem};structabcx,y;C、structABC{intn;dooblem;}structABCx,y;D、structabc{intn;doublem;};abcx,y;標(biāo)準(zhǔn)答案:A知識點解析:選項B中結(jié)構(gòu)體定義中每個成員后面的分號都不能省略,doublem后沒分號,因此錯誤。選項C結(jié)構(gòu)體類型定義完畢后,}外沒加分號。選項D中定義變量要加上關(guān)鍵字struct。20、設(shè)有定義:inta=64,b=8;,則表達(dá)式(a&b)||(a&&b)和(a|b)&&(a||b)的值分別為()。A、1和1B、1和0C、0和1D、0和0標(biāo)準(zhǔn)答案:A知識點解析:變量a對應(yīng)的二進(jìn)制數(shù)值為01000000,變量b對應(yīng)的二進(jìn)制數(shù)值為00001000,01000000&00001000的結(jié)果為0,0100000|00001000的結(jié)果為非0,而a&&b的值1,a||b的值為1,所以表達(dá)式"(a&b)||(a&&b)"的值為1,表達(dá)式"(a|b)&&(a||b)"的值也為1,答案選A。21、有三個關(guān)系R、S和T如下:則由關(guān)系R和S得到關(guān)系T的操作是A、自然連接B、差C、交D、并標(biāo)準(zhǔn)答案:B知識點解析:關(guān)系T中的元組是R關(guān)系中有而S關(guān)系中沒有的元組的集合,所以進(jìn)行的是差的運算。22、以下敘述中正確的是A、書寫源程序時,必須注意縮進(jìn)格式,否則程序會有編譯錯誤B、程序的主函數(shù)名除main外,也可以使用Main或_mainC、程序可以包含多個主函數(shù),但總是從第一個主函數(shù)處開始執(zhí)行D、在C程序中,模塊化主要是通過函數(shù)來實現(xiàn)的標(biāo)準(zhǔn)答案:D知識點解析:C語言的源程序中對縮進(jìn)沒有要求,所以A選項錯誤。C語言中區(qū)分大小寫,main函數(shù)不能寫成Main或_main,所以B選項錯誤。一個C程序有且只有一個主函數(shù),所以C選項錯誤。23、支持子程序調(diào)用的數(shù)據(jù)結(jié)構(gòu)是()。A、棧B、樹C、隊列D、二叉樹標(biāo)準(zhǔn)答案:A知識點解析:棧支持子程序調(diào)用。棧是一種只能在一端進(jìn)行插入或刪除的線性表,在主程序調(diào)用子函數(shù)時要首先保存主程序當(dāng)前的狀態(tài),然后轉(zhuǎn)去執(zhí)行子程序,最終把子程序的執(zhí)行結(jié)果返回到主程序中調(diào)用子程序的位置,繼續(xù)向下執(zhí)行,這種調(diào)用符合棧的特點,因此本題的答案為A。24、有以下程序:#include<stdio.h>intf(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);}程序的運行結(jié)果是()。A、7B、10C、8D、9標(biāo)準(zhǔn)答案:D知識點解析:調(diào)用f(a,b)函數(shù)返回3,調(diào)用f(a,c)函數(shù)返回6,所以外層調(diào)用f(f(a,b),f(a,c));即調(diào)用f(3,6)函數(shù)返回9。25、以下敘述正確的是()。A、charc1,*c2,*c3[10];是合法的變量定義語句B、數(shù)組說明符的一對方括號中不能使用表達(dá)式C、數(shù)組元素下標(biāo)可以是非整數(shù)D、若有定義chararray[4];則語句printf("%c",array["3"]);是合法的標(biāo)準(zhǔn)答案:A知識點解析:C語言規(guī)定定義數(shù)組時,數(shù)組的長度必須是整型常量,數(shù)組說明符的一對方括號中表達(dá)式只要是常量即合法,因此選項B錯誤。C語言規(guī)定,數(shù)組元素下標(biāo)必須是非負(fù)整數(shù),因此選項C錯誤。選項D中chararray[4]數(shù)組的長度為4,array["3"],其中"3"常量字符串,與C語言規(guī)定數(shù)組的下標(biāo)必須是非負(fù)整數(shù)不符,故答案為A選項。國家二級C語言機(jī)試(選擇題)模擬試卷第2套一、選擇題(本題共25題,每題1.0分,共25分。)1、下列敘述中正確的是A、循環(huán)隊列中的元素個數(shù)隨隊頭指針與隊尾指針的變化而動態(tài)變化B、循環(huán)隊列中的元素個數(shù)隨隊頭指針的變化而動態(tài)變化C、循環(huán)隊列中的元素個數(shù)隨隊尾指針的變化而動態(tài)變化D、循環(huán)隊列中的元素個數(shù)不會變化標(biāo)準(zhǔn)答案:A知識點解析:所謂循環(huán)結(jié)構(gòu)就是將隊列存儲空間的最后一個位置繞到第一個位置上,形成邏輯上的環(huán)狀空間,循環(huán)使用。在循環(huán)隊列中,用隊尾指針rear指向隊列中的隊尾元素,用隊頭指針front指向隊頭元素的前一個位置,因此,隊列中的元素數(shù)等于從隊頭指針front指向的后一個位置與隊尾指針rear指向位置之間的元素數(shù)量。2、下列各項中,對對象概念描述正確的是()。A、對象間的通信靠消息傳遞B、對象是名字和方法的封裝體C、任何對象必須有繼承性D、對象的多態(tài)性是指一個對象有多個操作標(biāo)準(zhǔn)答案:A知識點解析:對象之間進(jìn)行通信的構(gòu)造叫作消息,選項A正確。封裝性是指從外面看只能看到對象的外部特征,而不知道也無須知道數(shù)據(jù)的具體結(jié)構(gòu)以及實現(xiàn)操作,選項B錯誤。對象不一定必須有繼承性,選項C錯誤。多態(tài)性是指同一個操作可以是不同對象的行為,選項D錯誤。3、對軟件設(shè)計中應(yīng)遵循的準(zhǔn)則描述正確的是()。A、高耦合低內(nèi)聚B、高內(nèi)聚低耦合C、模塊獨立性僅與內(nèi)聚度相關(guān)D、內(nèi)聚與耦合無關(guān)標(biāo)準(zhǔn)答案:B知識點解析:軟件設(shè)計應(yīng)遵循的準(zhǔn)則有抽象、逐步求精和模塊化、信息隱蔽和局部化、模塊獨立性。模塊的獨立性程度是評價設(shè)計好壞的重要程度標(biāo)準(zhǔn),有兩個定性標(biāo)準(zhǔn)度量,即模塊間的耦合性和模塊內(nèi)的內(nèi)聚性。耦合性是模塊間互相連接的緊密程度的度量。一個模塊的耦合性越高則該模塊的獨立性越弱。內(nèi)聚性是指一個模塊內(nèi)部各個元素間彼此結(jié)合的緊密程度。一個模塊的內(nèi)聚性越高則該模塊的獨立性越強(qiáng)。好的軟件設(shè)計,應(yīng)盡量做到高內(nèi)聚、低耦合。4、C語言中double類型數(shù)據(jù)占字節(jié)數(shù)為A、4B、12C、8D、16標(biāo)準(zhǔn)答案:C知識點解析:double類型所占字節(jié)為8。5、有以下程序:#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);}程序運行后的輸出結(jié)果是()。A、1B、2C、3D、4標(biāo)準(zhǔn)答案:B知識點解析:本題考查switch語句。因為“a=6”,所以“a%2=0”,因此第一個switch語句,執(zhí)行“case0”,將m加1,遇到break語句跳出switch語句,輸出m值為2。6、有以下定義:inta;longb;doublex,y;則以下選項中正確的表達(dá)式是A、a%(int)(x-y)B、a=x<>yC、(a*y)%bD、y=x+y=x標(biāo)準(zhǔn)答案:A知識點解析:選項B中<>運算符不存在,選項C中double類型不能進(jìn)行取余(%)操作,要求兩個運算數(shù)必須是整數(shù),選項D中x+y=x錯誤。7、軟件是指A、程序B、程序和文檔C、算法加數(shù)據(jù)結(jié)構(gòu)D、程序、數(shù)據(jù)與相關(guān)文檔的完整集合標(biāo)準(zhǔn)答案:D知識點解析:計算機(jī)軟件是計算機(jī)系統(tǒng)中與硬件相互依存的另一部分,是包括程序、數(shù)據(jù)與相關(guān)文檔的完整集合。軟件由兩部分組成:一是機(jī)器可執(zhí)行的程序和數(shù)據(jù);二是機(jī)器不可執(zhí)行的,與軟件開發(fā)、運行、維護(hù)、使用等有關(guān)的文檔。8、若實體A和B是一對多的聯(lián)系,實體B和C是一對一的聯(lián)系,則實體A和C的聯(lián)系是()。A、一對一B、一對多C、多對一D、多對多標(biāo)準(zhǔn)答案:B知識點解析:由于B和C有一一對應(yīng)的聯(lián)系,而A和B之間有一對多的聯(lián)系,則通過關(guān)系之間的傳遞,則A和C之間也是一對多的聯(lián)系。9、下列敘述中正確的是A、對象具有封裝性B、對象標(biāo)識可以不唯一C、對象間的通信是靠方法調(diào)用D、對象是屬性名和屬性的封裝體標(biāo)準(zhǔn)答案:A知識點解析:對象的特征有:唯一性、分類性、繼承性和多態(tài)性(多形性)。對象的要素有:抽象、封裝性(信息隱藏)和共享性。對象標(biāo)識是唯一的。10、若有定義語句:chars[10]=“1234567\0\0”;,則strlen(s)的值是()。A、7B、8C、9D、10標(biāo)準(zhǔn)答案:A知識點解析:strlen()函數(shù)是計算字符串長度時,遇到結(jié)束標(biāo)識為止,且長度不包括結(jié)束標(biāo)識。本題中的字符串從第一個字符開始,遇到第一個結(jié)束標(biāo)識’\0’為止,注意’\0’不占字符串長度,所以字符串長度為7,因此A選項正確。11、下面不屬于軟件測試實施步驟的是A、集成測試B、回歸測試C、確認(rèn)測試D、單元測試標(biāo)準(zhǔn)答案:B知識點解析:軟件測試實施的步驟有單元測試、集成測試和確認(rèn)測試。12、某系統(tǒng)結(jié)構(gòu)圖如下圖所示,則該結(jié)構(gòu)圖的深度是A、1B、2C、3D、4標(biāo)準(zhǔn)答案:C知識點解析:樹中結(jié)點的層次從根開始定義起,根為第一層,根的孩子為第二層,依次累計。樹中結(jié)點的最大層次稱為樹的深度。所以由題目中系統(tǒng)結(jié)構(gòu)圖,得到該樹的深度為3,因此應(yīng)選C選項。13、有三個關(guān)系R、S和T如下:由關(guān)系R和S通過運算得到關(guān)系T,則所使用的運算為A、笛卡爾積B、交C、并D、自然連接標(biāo)準(zhǔn)答案:D知識點解析:在實際應(yīng)用中,最常用的連接是一個叫自然連接的特例。它滿足下面的條件:兩關(guān)系間有公共域;通過公共域的相等值進(jìn)行連接。通過觀察三個關(guān)系R,S,T的結(jié)果可知關(guān)系T是由關(guān)系R和S進(jìn)行自然連接得到的。14、在數(shù)據(jù)庫中,產(chǎn)生數(shù)據(jù)不一致的根本原因是A、數(shù)據(jù)冗余B、沒有嚴(yán)格保護(hù)數(shù)據(jù)C、未對數(shù)據(jù)進(jìn)行完整性控制D、數(shù)據(jù)存儲量太大標(biāo)準(zhǔn)答案:A知識點解析:在一個數(shù)據(jù)集合中重復(fù)的數(shù)據(jù)稱為數(shù)據(jù)冗余。數(shù)據(jù)冗余是指數(shù)據(jù)之間的重復(fù),也可以說是同一數(shù)據(jù)存儲在不同數(shù)據(jù)文件中的現(xiàn)象。15、有以下程序:#include<stdio.h>main(){FILE*fp;char]]str[10];fp=fopen("myfile.dat","w");fputs("abc",fp);fclose(fp);fp=fopen("myfile.dat","a+");fprintf(fp,"%d",28);rewind(fp);fscanf(fp,"%s",str);puts(str);fclose(fp);}程序的運行結(jié)果是()。A、abcB、28cC、abc28D、因類型不一致而出錯標(biāo)準(zhǔn)答案:C知識點解析:本題考查文件操作函數(shù):fprintf()函數(shù)。fprintf()函數(shù)向文件輸出,將輸出的內(nèi)容輸出到硬盤上的文件,或是相當(dāng)于在文件的設(shè)備上執(zhí)行兩次fprintf后,文件中有abe28,所以C選項正確。16、以下選項中非法的字符常量是A、’\019’B、’\65’C、’\Xff’D、’\101’標(biāo)準(zhǔn)答案:A知識點解析:本題考查字符型常量。選項A)錯誤,使用了轉(zhuǎn)義字符“\”,019以0開始表示8進(jìn)制,8進(jìn)制數(shù)字的范圍是0-7,沒有9;選項B)、C)和D)正確。17、有以下程序charfun(char*c){if(*c<=’Z’&&*c>=’A’)*c-=’A’-’a’;return*c;}main(){chars[81],*p=s;gets(s);while(*p){*p=fun(p);putchar(*p);p++;}printf("\n");}若運行時從鍵盤上輸入OPENTHEDOOR,程序的輸出結(jié)果是A、oPENtHEdOORB、openthedoorC、OPENTHEDOORD、OpenTheDoor標(biāo)準(zhǔn)答案:B知識點解析:函數(shù)fun的主要功能是判斷字符是否為大寫字符,如果是則轉(zhuǎn)換為小寫字符,主函數(shù)讀入大寫字符串,轉(zhuǎn)換成小寫。18、下面不能作為結(jié)構(gòu)化方法軟件需求分析工具的是A、系統(tǒng)結(jié)構(gòu)圖B、數(shù)據(jù)字典(DD)C、數(shù)據(jù)流程圖(DFD圖)D、判定表標(biāo)準(zhǔn)答案:A知識點解析:結(jié)構(gòu)化方法軟件需求分析工具主要有數(shù)據(jù)流圖、數(shù)據(jù)字典、判定樹和判定表。19、在C語言中,只有在使用時才占用內(nèi)存單元的變量,其存儲類型是A、extern和registerB、auto和staticC、static和registerD、auto和register標(biāo)準(zhǔn)答案:D知識點解析:在C語言中,動態(tài)變量(auto)存儲在內(nèi)存中的動態(tài)存儲區(qū),在程序運行中,只有當(dāng)調(diào)用變量所在的函數(shù)時,系統(tǒng)才臨時給變量分配內(nèi)存單元;全局變量(extem)一經(jīng)定義,系統(tǒng)為其分配固定的內(nèi)存單元;靜態(tài)變量(static),編譯系統(tǒng)為其分配固定的存儲空間;寄存器變量(register)不保存在內(nèi)存上,而是直接存儲在CPU的寄存器中。20、有以下程序#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);}程序運行后的輸出結(jié)果是A、9284B、9824C、6982D、6385標(biāo)準(zhǔn)答案:D知識點解析:本題中首先是將二維字符數(shù)組c賦值指針數(shù)組p,然后遍歷p找到兩個字符串中的偶數(shù)位置的字符并組成一個數(shù)值輸出,根據(jù)代碼執(zhí)行即可得到結(jié)果為6385。21、有以下程序#includevoidmain(){chars[]={"012xy"};inti,n=0;for(i=0;s[i]!=0;i++)ifi[s[i]>=’a’&&s[i]<=’z’)n++;printf("%d\n",n);}程序運行后的輸出結(jié)果是A、0B、3C、5D、2標(biāo)準(zhǔn)答案:D知識點解析:這段程序的功能求出字符串s中字符在小寫字符a到z之間字符的個數(shù)。在程序中字符串s的值為“012xy”,所以在字符串s中符合要求的字符的個數(shù)等于2。22、若有定義語句:doublea,*p=&a;以下敘述中錯誤的是A、定義語句中的木號是一個說明符B、定義語句中的p只能存放double類型變量的地址C、定義語句中*p=&a把變量a的地址作為初值賦給指針變量pD、定義語句中的*號是一個間址運算符標(biāo)準(zhǔn)答案:D知識點解析:在指針定義語句“doublea,*p=&a”中,指針變量p前面的*號,只是一個說明符,說明變量p是指針類型的變量。23、下面選項中的程序段,沒有編譯錯誤的是()。A、char*sp,s[10];sp="Hello";B、char*sp,s[10];s="Hello";C、charstr1[10]="computer",str2[10];str2=str1;D、charmark[];mark="PROGRAM";標(biāo)準(zhǔn)答案:A知識點解析:字符數(shù)組名為一個指針常量,在非定義狀態(tài)下,不能進(jìn)行任何賦值性操作,所以不能通過賦值操作將一個字符串的地址指給它,也不能一個字符數(shù)組的地址指給另一個字符數(shù)組名,選項B)、C)、D)錯誤;但是可以通過賦值的方式把一個字符串地址指給一個字符指針,選項A)正確;答案選A)。24、有三個關(guān)系R、S和T如下:由關(guān)系R和S通過運算得到關(guān)系T,則所使用的運算為()。A、并B、自然連接C、笛卡爾積D、交標(biāo)準(zhǔn)答案:D知識點解析:自然連接是一種特殊的等值連接,它要求兩個關(guān)系中進(jìn)行比較的分量必須是相同的屬性組,并且在結(jié)果中把重復(fù)的屬性列去掉,所以B)錯誤。笛卡爾積是用R集合中元素為第一元素,S集合中元素為第二元素構(gòu)成的有序?qū)?,所以C)錯誤。根據(jù)關(guān)系T可以很明顯的看出是從關(guān)系R與關(guān)系S中取得相同的關(guān)系組所以取得是交運算,選擇D)。25、若有定義語句:inta[2][3],*p[3];則以下語句中正確的是A、p[0]=&a[1][2];B、p[0]=a;C、p=a;D、p[1]=&a;標(biāo)準(zhǔn)答案:A知識點解析:定義語句inta[2][3],*p[3];定義了整型二維數(shù)組a[2][3]和指針數(shù)組p[3]。在C語言中,二維數(shù)組名也是一個存放地址常量的指針,其值為二維數(shù)組中第一行的地址。所以選項A中,把整型數(shù)組a[0]的指針賦給p[0]。國家二級C語言機(jī)試(選擇題)模擬試卷第3套一、選擇題(本題共25題,每題1.0分,共25分。)1、下面不屬于對象主要特征的是()。A、對象唯一性B、對象分類性C、對象多態(tài)性D、對象可移植性標(biāo)準(zhǔn)答案:D知識點解析:對象有如下一些基本特點:①標(biāo)識唯一性:指對象是可區(qū)分的,并且由對象的內(nèi)在本質(zhì)來區(qū)分,而不是通過描述來區(qū)分。②分類性:指可以將具有相同屬性和操作的對象抽象成類。③多態(tài)性:指同一個操作可以是不同對象的行為,不同對象執(zhí)行同一類操作產(chǎn)生不同的結(jié)果。④封裝性:從外面看只能看到對象的外部特征,對象的內(nèi)部對外是不可見的。⑤模塊獨立性好。2、對長度為n的線性表做快速排序,在最壞情況下,比較次數(shù)為()。A、nB、n-1C、n(n一1)D、n(n一1)/2標(biāo)準(zhǔn)答案:D知識點解析:假設(shè)線性表的長度為n,則在最壞情況下,冒泡排序需要經(jīng)過n/2遍的從前往后的掃描和n/2遍的從后往前的掃描,需要的比較次數(shù)為n(n-1)/2??焖倥判蚍ㄒ彩且环N互換類的排序方法,但由于它比冒泡排序法的速度快,因此稱為快速排序法。最壞情況下快速排序退化為冒泡排序。3、下面程序的輸出結(jié)果是()。typedefunion{longx[1];inty[4];charz[10];}M;Mt;main(){printf("%d\n",sizeof(t));}A、32B、16C、10D、4標(biāo)準(zhǔn)答案:C知識點解析:“聯(lián)合體”所占用的內(nèi)存空間為最長的成員所占用的空間。題中聯(lián)合體的z[10]成員是聯(lián)合體中占空間最長的成員。4、對于一個正常運行的C程序,以下敘述中正確的是()。A、程序的執(zhí)行總是從main函數(shù)開始,在程序的最后一個函數(shù)中結(jié)束B、程序的執(zhí)行總是從程序的第一個函數(shù)開始,在main函數(shù)結(jié)束C、程序的執(zhí)行總是從main函數(shù)開始D、程序的執(zhí)行總是從程序的第一個函數(shù)開始,在程序的最后一個函數(shù)中結(jié)束標(biāo)準(zhǔn)答案:C知識點解析:任何一個C程序都是從主函數(shù)main開始,至主函數(shù)main結(jié)束,所以選擇C選項。5、有以下程序:main(){chars口={’a’,’b’,’c’,’d’,’e’,’f’,’g’,’h’,’\0’};intp,q;p=sizeof(s);q=strlen(s);printf("%d%d\b",p,q);}程序的運行結(jié)果是()。A、9,8B、1,8C、8,9D、9,9標(biāo)準(zhǔn)答案:A知識點解析:本題統(tǒng)計字符串a(chǎn)所占存儲單元的個數(shù)和長度。s所占存儲單元的個數(shù)為9,但長度為8,不包含’\0’。6、軟件生命周期可分為定義階段,開發(fā)階段和維護(hù)階段。詳細(xì)設(shè)計屬于A、定義階段B、開發(fā)階段C、維護(hù)階段D、上述三個階段標(biāo)準(zhǔn)答案:B知識點解析:本題考查軟件生命周期的相關(guān)概念。通常,將軟件產(chǎn)品從提出、實現(xiàn)、使用維護(hù)到停止使用退役的過程稱為軟件生命周期。也就是說,軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用為止的整個時期都屬于軟件生命周期。一般包括可行性研究與需求分析、設(shè)計、實現(xiàn)、測試、交付使用以及維護(hù)等活動。還可以將軟件生命周期分為軟件定義、軟件開發(fā)及軟件運行維護(hù)三個階段。7、若有定義intx,y;并已正確給變量賦值,則以下選項中與表達(dá)式(x-y)?(x++):(y++)中的條件表達(dá)式(x—y)等價的是()。A、(x—y<0‖x-y>0)B、(x—y<0)C、(x—y>0)D、(x—y==0)標(biāo)準(zhǔn)答案:A知識點解析:條件表達(dá)式“x=表達(dá)式1?表達(dá)式2:表達(dá)式3”的含義是:先求解表達(dá)式1,若為非0(真),則求解表達(dá)式2,將表達(dá)式2的值賦給x;若表達(dá)式1的值為0(假),則求解表達(dá)式3,將表達(dá)式3的值賦給x。本題中與表達(dá)式1:(x—y)等價的是(x—y<0‖x—y>0)。8、表達(dá)式(int)((double)9/2)-9%2的值是()。A、0B、3C、4D、5標(biāo)準(zhǔn)答案:B知識點解析:先將整型數(shù)據(jù)9強(qiáng)制轉(zhuǎn)換成double型,然后除以2,得到的結(jié)果與double型保持一致,即為4.5,然后將4.5強(qiáng)制轉(zhuǎn)換成整型數(shù)據(jù)4,然后計算9%2的值為1,最后計算4-1的值為3,所以選擇B選項。9、有以下程序段intn,t=1,s=0;scanf(“%d”,&n);do{s=s++;t=t-2;}while(t!=n);為使此程序段不陷入死循環(huán),從鍵盤輸入的數(shù)據(jù)應(yīng)該是A、任意正奇數(shù)B、任意負(fù)偶數(shù)C、任意正偶數(shù)D、任意負(fù)奇數(shù)標(biāo)準(zhǔn)答案:D知識點解析:本題考查基本輸入和循環(huán)。程序代碼的功能是通過scanf給變量n賦值,在do…while循環(huán)中,s變量自增,t變量每次減2,t的初值為1,循環(huán)執(zhí)行執(zhí)行一次后t的值變成-1,然后是-3、-5…,直到t的值和n的值相同循環(huán)結(jié)束。從t的值的變化可知,t是一個變化的負(fù)奇數(shù),因此輸入的n如果是負(fù)奇數(shù),則循環(huán)能退出,否則是死循環(huán)。10、若各選項中所用變量已正確定義,函數(shù)fun中通過return語句返回一個函數(shù)值,以下選項中錯誤的程序是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知識點解析:C語言規(guī)定,函數(shù)必須先定義,后調(diào)用(雨數(shù)的返回值類型為int或char時除外)。在選項A)中,調(diào)用的子函數(shù)在調(diào)用后面定義,所以不正確。在選項B)、C)中,被調(diào)用函數(shù)在主函數(shù)之前定義,再在主函數(shù)中調(diào)用,所以是正確的;在選項D)中,存主函數(shù)中先對子函數(shù)floatfun(inti,intj)進(jìn)行了聲明,然后進(jìn)行調(diào)用。11、有三個關(guān)系R、S和T如下:則由關(guān)系R和S得到關(guān)系T的操作是A、自然連接B、差C、交D、并標(biāo)準(zhǔn)答案:B知識點解析:由三個關(guān)系R、S和T的結(jié)構(gòu)可以知道,關(guān)系T是由關(guān)系R、S經(jīng)過差運算得到的。12、表達(dá)式a+=a-=a=9的值是A、-9B、0C、18D、9標(biāo)準(zhǔn)答案:B知識點解析:第一步a=9,然后計算a-a的值,并將此值賦給a,因此此時a=0,最后計算a+a,并將此值賦給a,因此最終結(jié)果為0。13、以下選項中,合法的C語言實數(shù)是()。A、.2e0B、3.1e0.4C、E13D、7.12E標(biāo)準(zhǔn)答案:A知識點解析:科學(xué)計數(shù)法中,e/E前后必須有數(shù)字并且后面的數(shù)字必須為整數(shù),答案選A。14、以下敘述中正確的是A、每個后綴為.c的C語言源程序都應(yīng)該包含一個main函數(shù)B、在C語言程序中,main函數(shù)必須放在其他函數(shù)的最前面C、每個后綴為.c的C語言源程序都可以單獨進(jìn)行編譯D、在C語言程序中,只有main函數(shù)才可單獨進(jìn)行編譯標(biāo)準(zhǔn)答案:C知識點解析:每一個C語言的文件或函數(shù)都可以單獨編譯,但只有main函數(shù)的才可以執(zhí)行。15、以下不能輸出字符A的語句是(注:字符A的ASCII碼值為65,字符a的ASCII碼值為97)A、printf("%c\n",’a’-32);B、printf("%d\n",’A’);C、printf("%c\n",65);D、printf("%c\n",’B’-1);標(biāo)準(zhǔn)答案:B知識點解析:在選項B)的輸出函數(shù)中,大寫字符’A’以整型數(shù)據(jù)的形式輸出。16、下列選項中,能夠滿足“只要字符串s1等于字符串s2,則執(zhí)行ST”要求的是A、if(s1==s2)ST;B、if(strcpy(s1,s2)==1)ST;C、iffstrcmp(s2,s1)==0)ST;D、if(s1-s2==0)ST;標(biāo)準(zhǔn)答案:C知識點解析:在C語言中要對兩個字符串的大小進(jìn)行比較,就需要調(diào)用字符串比較函數(shù)strcmp(),如果這個函數(shù)的返回值等于0,說明兩個字符串相等。17、有以下程序intfun(intn)main(){if(n==1)return1;{intx;Elsescanf("%d",&x);x=fun(x);return(n+fun(n—1));printf("%d\n",x);}}執(zhí)行程序時,給變量x輸入10,程序的輸出結(jié)果是A、54B、65C、45D、55標(biāo)準(zhǔn)答案:D知識點解析:在C語言中函數(shù)可以遞歸調(diào)用,即直接或間接地自己調(diào)用自己。本題在函數(shù)intfun(intn)的定義中又出現(xiàn)了對函數(shù)fun的調(diào)用,所以函數(shù)fun是遞歸函數(shù)。因而在主函數(shù)中調(diào)用x=fun(x)時,當(dāng)輸入10賦給變量x時,遞歸調(diào)用的過程為:fun(10)=10+fun(9)=10+9+fun(8)=10+9++8+fun(7)=10+9++8+7+fun(6)=10+9++8+7+6+fun(6)=10+9++8+7+6+5+fun(4)=10+9++8+7+6+5+4+fun(3)=10+9++8+7+6+5+4+3+fun(2)=10+9++8+7+6+5+4+3+2+fun(1)=10+9++8+7+6+5+4+3+2+1=5518、以下敘述中正確的是A、在C語言中,預(yù)處理命令行都以”#”開頭B、預(yù)處理命令行必須位于C源程序的起始位置C、#include必須放在C程序的開頭D、C語言的預(yù)處理不能實現(xiàn)宏定義和條件編譯的功能標(biāo)準(zhǔn)答案:A知識點解析:在C語言中,凡是以“#”號開頭的行,都稱為“編譯預(yù)處理”命令行。預(yù)處理命令可以放在程序中的任何位置,其有效范圍是從定義開始到文件結(jié)束。預(yù)處理命令有宏定義、文件包含和條件編譯三類。#include<stdio.h>命令行表示程序中要引用C標(biāo)準(zhǔn)函數(shù)庫中的標(biāo)準(zhǔn)輸入輸出函數(shù)。19、下面描述中不屬于數(shù)據(jù)庫系統(tǒng)特點的是A、數(shù)據(jù)共享B、數(shù)據(jù)完整性C、數(shù)據(jù)冗余度高D、數(shù)據(jù)獨立性高標(biāo)準(zhǔn)答案:C知識點解析:數(shù)據(jù)庫系統(tǒng)的特點為高共享、低冗余、獨立性高、具有完整性等,C錯誤。20、6.程序調(diào)試的任務(wù)是A、設(shè)計測試用例B、驗證程序的正確性C、發(fā)現(xiàn)程序中的錯誤D、診斷和改正程序中的錯誤標(biāo)準(zhǔn)答案:D知識點解析:程序調(diào)試的任務(wù)是診斷和改正程序中的錯誤。21、以下選項中,不合法的C語言用戶標(biāo)識符是A、a_bB、AaBcC、a--bD、_1標(biāo)準(zhǔn)答案:C知識點解析:C語言規(guī)定,變量命名必須符合標(biāo)識符的命名規(guī)則,C選項中包含了非法字符"-",所以錯誤。標(biāo)識符由字母、數(shù)字或下劃線組成,且第一個字符必須是大小寫英文字母或者下劃線,而不能是數(shù)字。22、下列敘述中正確的是A、線性表鏈?zhǔn)酱鎯Y(jié)構(gòu)的存儲空間一般要少于順序存儲結(jié)構(gòu)B、線性表鏈?zhǔn)酱鎯Y(jié)構(gòu)與順序存儲結(jié)構(gòu)的存儲空間都是連續(xù)的C、線性表鏈?zhǔn)酱鎯Y(jié)構(gòu)的存儲空間可以是連續(xù)的,也可以是不連續(xù)的D、以上說法均錯誤標(biāo)準(zhǔn)答案:C知識點解析:線性表的順序存儲結(jié)構(gòu)具備如下兩個基本特征:(1)線性表中的所有元素所占的存儲空間是連續(xù)的;(2)線性表中各數(shù)據(jù)元素在存儲空間中是按邏輯順序依次存放的。用一組任意的存儲單元來依次存放線性表的結(jié)點,這組存儲單元既可以是連續(xù)的,也可以是不連續(xù)的,甚至是零散分布在內(nèi)存中的任意位置上的。因此C正確。23、某二叉樹的中序遍歷序列為CBADE,后序遍歷序列為CBEDA,則前序遍歷序列為()。A、CBADEB、CBEDAC、ABCDED、EDCBA標(biāo)準(zhǔn)答案:C知識點解析:二又樹的后序遍歷序列為CBEDA,由于后序遍歷最后訪問根節(jié)點,可以確定該二叉樹的根節(jié)點是A。再由中序遍歷序列為CBADE,可以得到子序列(CB)一定在左子樹中,子序列(DE)一定在右子樹中。節(jié)點C、B在中序序列和后序序列中順序未變,說明節(jié)點B是節(jié)點C的父節(jié)點;節(jié)點D、E在中序序列和后序序列中順序相反,說明節(jié)點D是節(jié)點E的父節(jié)點。因此該二叉樹的前序遍歷序列為ABCDE。24、有以下程序#include<stdio.h>main(){inti,j=0;chara[]="ab123c4d56ef7gh89";for(i=0;a[i];i++)if(a[i]>=’0’&&a[i]<=’9’)a[j++]=a[i];a[j]=’\0’;printf("%s",a);}程序運行后的輸出結(jié)果是()。A、123456789abedefghB、abcdefghC、123456789D、1234567896ef7gh89標(biāo)準(zhǔn)答案:C知識點解析:題干中定義了字符數(shù)組a,它包含數(shù)字字符和字母字符。通過for循環(huán),將a中所有的數(shù)字字符前移,舍去其他字符,并在數(shù)字字符后添加字符串結(jié)束符“\0”,for循環(huán)結(jié)束后,字符串a(chǎn)的值為123456789。故本題答案為C選項。25、若有定義語句inta[2][3],*p[3];,則以下語句中正確的是()。A、p=a;B、p[0]=a;C、p[0]=&a[1][2];D、p[1]=&a;標(biāo)準(zhǔn)答案:C知識點解析:A選項錯誤,因為p是指向一個指針數(shù)組,作為數(shù)組名,不能指向別的地方。B選項錯誤,因為p[0]是一個int指針,也就是int*;而a是一個指向指針的指針int**。C選項正確,因為p[0]是一個int*,a[1][2]是int,&a[1][2]是int*,類型吻合。D選項錯誤,因為a作為數(shù)組名,不能取地址,即使能取,p[1]是int*,&a是int***,類型不對。國家二級C語言機(jī)試(選擇題)模擬試卷第4套一、選擇題(本題共25題,每題1.0分,共25分。)1、下列敘述中正確的是()。A、能采用順序存儲的必定是線性結(jié)構(gòu)B、所有的線性結(jié)構(gòu)都可以采用順序存儲結(jié)構(gòu)C、具有兩個以上指針的鏈表必定是非線性結(jié)構(gòu)D、循環(huán)隊列是隊列的鏈?zhǔn)酱鎯Y(jié)構(gòu)標(biāo)準(zhǔn)答案:B知識點解析:所有的線性結(jié)構(gòu)都可以用數(shù)組保存,即都可以采用順序存儲結(jié)構(gòu)。而反過來不可以,完全二叉樹也能用數(shù)組保存(按層次依次存放到數(shù)據(jù)元素中),但完全二叉樹不屬于非線性結(jié)構(gòu)。雙向鏈表具有兩個以上的指針,但屬于線性結(jié)構(gòu)。循環(huán)隊列是隊列的順序存儲結(jié)構(gòu)。2、在關(guān)系運算中,查找滿足一定條件的元組,相關(guān)的運算稱為()。A、選擇B、連接C、投影D、合并標(biāo)準(zhǔn)答案:A知識點解析:從關(guān)系中找出滿足給定條件的元組的操作稱為選擇。選擇是從行的角度進(jìn)行的運算,即水平方向抽取記錄。經(jīng)過選擇運算得到的結(jié)果可以形成新的關(guān)系,其關(guān)系模式不變,但其中的元組是原關(guān)系的一個子集。3、下列描述中正確的是()。A、一個邏輯數(shù)據(jù)結(jié)構(gòu)只能有一種存儲結(jié)構(gòu)B、數(shù)據(jù)的邏輯結(jié)構(gòu)屬于線性結(jié)構(gòu),存儲結(jié)構(gòu)屬于非線性結(jié)構(gòu)C、一個邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲結(jié)構(gòu),且各種存儲結(jié)構(gòu)不影響數(shù)據(jù)處理的效率D、一個邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲結(jié)構(gòu),且各種存儲結(jié)構(gòu)影響數(shù)據(jù)處理的效率標(biāo)準(zhǔn)答案:D知識點解析:數(shù)據(jù)的邏輯結(jié)構(gòu)是指數(shù)據(jù)集合中各數(shù)據(jù)元素之間所固有的邏輯關(guān)系,數(shù)據(jù)的存儲結(jié)構(gòu)是在對數(shù)據(jù)進(jìn)行處理時,各數(shù)據(jù)元素在計算機(jī)中的存儲關(guān)系。數(shù)據(jù)的存儲結(jié)構(gòu)是指數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機(jī)中的表示,一種邏輯結(jié)構(gòu)可以表示成多種存儲結(jié)構(gòu),而采用不同的存儲結(jié)構(gòu),其數(shù)據(jù)處理的效率是不同的。4、對軟件設(shè)計中應(yīng)遵循的準(zhǔn)則描述正確的是()。A、高耦合低內(nèi)聚B、高內(nèi)聚低耦合C、模塊獨立性僅與內(nèi)聚度相關(guān)D、內(nèi)聚與耦合無關(guān)標(biāo)準(zhǔn)答案:B知識點解析:軟件設(shè)計應(yīng)遵循的準(zhǔn)則有抽象、逐步求精和模塊化、信息隱蔽和局部化、模塊獨立性。模塊的獨立性程度是評價設(shè)計好壞的重要程度標(biāo)準(zhǔn),有兩個定性標(biāo)準(zhǔn)度量,即模塊間的耦合性和模塊內(nèi)的內(nèi)聚性。耦合性是模塊間互相連接的緊密程度的度量。一個模塊的耦合性越高則該模塊的獨立性越弱。內(nèi)聚性是指一個模塊內(nèi)部各個元素間彼此結(jié)合的緊密程度。一個模塊的內(nèi)聚性越高則該模塊的獨立性越強(qiáng)。好的軟件設(shè)計,應(yīng)盡量做到高內(nèi)聚、低耦合。5、有以下程序:#include<stdio.h>main(){inti,j,x=0;for(i=0;i<2;i++){x++:for(j=0;j<=3;j++){if(j%2==0)continue;x++;}x++:}printf(″x=%d\n″,x);程序的運行結(jié)果是()。A、x=4B、x=6C、x=8D、x=12標(biāo)準(zhǔn)答案:C知識點解析:第一次循環(huán):i=0,執(zhí)行x++后x=1,執(zhí)行內(nèi)層循環(huán)j=0,由于j%2!=0時才執(zhí)行x++,即只有j取1和3時,執(zhí)行x++,此時x=1+1+1=3,跳出內(nèi)層循環(huán),執(zhí)行下一條語句x++,x=4,第二次循環(huán):x=1時,重復(fù)上述循環(huán),共執(zhí)行兩次循環(huán),故x最終結(jié)果是4*2=8。6、下列敘述中正確的是()。A、數(shù)據(jù)庫系統(tǒng)避免了一切冗余B、數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余C、數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的一致性是指數(shù)據(jù)類型一致D、數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù)標(biāo)準(zhǔn)答案:B知識點解析:數(shù)據(jù)庫系統(tǒng)共享性大,冗余度小,但只是減少了冗余,并不是避免一切冗余。數(shù)據(jù)的一致性是指在系統(tǒng)中同一數(shù)據(jù)在不同位置的出現(xiàn)應(yīng)保持相同的值,而不是數(shù)據(jù)類型的一致。數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)有更強(qiáng)的管理控制能力,而不是管理更多的數(shù)據(jù)。7、以下標(biāo)識符不是關(guān)鍵字的是()。A、breakB、charC、SwitchD、return標(biāo)準(zhǔn)答案:C知識點解析:此題考查標(biāo)識符和關(guān)鍵字的概念。需要注意的是C語言是區(qū)分大小寫的,“switch”是關(guān)鍵字,但“Switch”不是關(guān)鍵字。8、若有以下的說明和定義:fun(int*z){….}mian(){int(*x)()=fun,*y(),w[10],z;…}在必要的賦值之后,對fun函數(shù)的正確調(diào)用語句是()。A、x=x(w);B、fun(y);C、y=*(w);D、(*x)(&z);標(biāo)準(zhǔn)答案:D知識點解析:本題主要考查函數(shù)指針。定義(*x)()為函數(shù)型指針,并指向fun()函數(shù),正確的調(diào)用形式為(*x)(&z)。9、下列關(guān)于數(shù)據(jù)庫設(shè)計的敘述中,正確的是A、在需求分析階段建立數(shù)據(jù)字典B、在概念設(shè)計階段建立數(shù)據(jù)字典C、在邏輯設(shè)計階段建立數(shù)據(jù)字典D、在物理設(shè)計階段建立數(shù)據(jù)字典標(biāo)準(zhǔn)答案:A知識點解析:數(shù)據(jù)庫設(shè)計目前一般采用生命周期法,即將整個數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)分解成目標(biāo)獨立的若干階段。分別是:需求分析階段、概念設(shè)計階段、邏輯設(shè)計階段、物理設(shè)計階段、編碼階段、測試階段、運行階段、進(jìn)一步修改階段。數(shù)據(jù)字典是對系統(tǒng)中數(shù)據(jù)的詳盡描述,是各類數(shù)據(jù)屬性的清單。對數(shù)據(jù)設(shè)計來講,數(shù)據(jù)字典是進(jìn)行詳細(xì)的數(shù)據(jù)收集和數(shù)據(jù)分析所獲得的主要結(jié)果。10、下列4個程序中,完全正確的是()。A、#includemain();{/*programming*/printf("programming!\n");}B、#includemain(){/*/programming/*/printf("programming!\n");}C、#includemain(){/*/programming*/*/printf("programming!\n");}D、includemain(){/*programming*/printf("programming!\n");}標(biāo)準(zhǔn)答案:B知識點解析:選項jA)中,main()函數(shù)后面的分號是錯誤的,C語言在函數(shù)名后面不能有分號;在C語言中注釋內(nèi)容必須放在“/*”和“*/”之間,“/*”和“*/”必須成對出現(xiàn),按語法規(guī)定在注釋之間不可再嵌套“/*”和“*/”,選項C)的程序段中注釋語句之間有嵌套;C語言用#include命令行來實現(xiàn)文件包含的功能。#include命令行的形式為:#include“文件名”,選項D)中的include前面少了一個#符號。11、下面敘述中錯誤的是A、軟件測試的目的是發(fā)現(xiàn)錯誤并改正錯誤B、對被調(diào)試的程序進(jìn)行“錯誤定位”是程序調(diào)試的必要步驟C、程序調(diào)試通常也稱為DebugD、軟件測試應(yīng)嚴(yán)格執(zhí)行測試計劃,排除測試的隨意性標(biāo)準(zhǔn)答案:A知識點解析:軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。軟件測試要嚴(yán)格執(zhí)行測試計劃,排除測試的隨意性。程序調(diào)試通常也稱Debug,對被調(diào)試的程序進(jìn)行“錯誤”定位是程序調(diào)試的必要步驟。12、設(shè)有定義:intx=11,y=12,z=0;,以下表達(dá)式值不等于12的是()。A、z=(x==y)B、(z=x,y)C、z=(x,y)D、(z,x,y)標(biāo)準(zhǔn)答案:A知識點解析:考查運算符與表達(dá)式,A)中先計算(x==y),為0,將0賦值給z,表達(dá)式值為0,A)錯;選項B)、C)、D)均涉及到逗號表達(dá)式,整個逗號表達(dá)式的值為最后一個表達(dá)式的值,所以均為12。選A)。13、以下關(guān)于結(jié)構(gòu)化程序設(shè)計的敘述中正確的是A、結(jié)構(gòu)化程序使用goto語句會很便捷B、一個結(jié)構(gòu)化程序必須同時由順序、分支、循環(huán)三種結(jié)構(gòu)組成C、由三種基本結(jié)構(gòu)構(gòu)成的程序只能解決小規(guī)模的問題D、在C語言中,程序的模塊化是利用函數(shù)實現(xiàn)的標(biāo)準(zhǔn)答案:D知識點解析:C語言是結(jié)構(gòu)化程序設(shè)計語言,順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)是結(jié)構(gòu)化程序設(shè)計的三種基本結(jié)構(gòu),研究證明任何程序都可以由這三種基本結(jié)構(gòu)組成。但是程序可以包含一種或者幾種結(jié)構(gòu),不是必須包含全部三種結(jié)構(gòu)。自從提倡結(jié)構(gòu)化設(shè)計以來,goto就成了有爭議的語句。首先,由于goto語句可以靈活跳轉(zhuǎn),如果不加限制,它的確會破壞結(jié)構(gòu)化設(shè)計風(fēng)格。其次,goto語句經(jīng)常帶來錯誤或隱患。它可能跳過了某些對象的構(gòu)造、變量的初始化、重要的計算等語句。Goto語句的使用會使程序容易發(fā)生錯誤并且也不易閱讀,所以應(yīng)避免使用。由三種基本結(jié)構(gòu)構(gòu)成的程序幾乎能解決大部分問題。14、以下不合法的字符常量是A、’\’"B、’\\’C、’\018’D、’\xcc’標(biāo)準(zhǔn)答案:C知識點解析:在C語言中,一個字符常量代表ASCII字符集中的一個字符,在程序中用單引號把一個字符括起來用為字符常量。轉(zhuǎn)義字符常量也是必須括在一對單引號內(nèi),以一個反斜線開頭后跟一個特定的字符,用來代表某一個特定的ASCII字符。在選項C中,’\018’是用八進(jìn)制數(shù)來代表一個字符常量,所以其中的數(shù)字只能小于8,并不包括8。15、以下選項中不能作為C語言合法常量的是A、cd’B、0.1e+6C、"ia"D、"\011"標(biāo)準(zhǔn)答案:A知識點解析:常量指的是在程序的運行過程中,其值不能被改變的量。在C語言中,包括整型常量、實型常量、字符常量和字符串常量等類型。選項B)0.1e+6是用指數(shù)形式表示的實型常量。在C語言中,用以“e”或“E”后一個整數(shù)來表示以10為底的冪數(shù),以用這種形式表示實型常量時要注意C語言的語法規(guī)定,字母e或E之前必須要有數(shù)字,且e或E后面的指數(shù)必須為整數(shù),并且在字母e或E的前后以及數(shù)字之間不得插入空格。選項C)中用雙引號括起來表示的字符串“\a”。選項D)中’\011’表示用單引號括起來的轉(zhuǎn)義字符八制進(jìn)數(shù)011。選項A)表示的字符常量是非法的,在用單引號表示的字符常量中,只能包含一個字符,而選項A)中包含兩個字符。16、以下敘述中正確的是A、字符常量在內(nèi)存中占2個字節(jié)B、轉(zhuǎn)義字符要用雙引號括起來,以便與普通的字符常量區(qū)分開C、字符常量需要用單引號括起來D、字符常量是不能進(jìn)行關(guān)系運算的標(biāo)準(zhǔn)答案:C知識點解析:在程序中用單引號把一個字符括起來作為字符常量。轉(zhuǎn)義字符又稱反斜線字符,這些字符常量總是以一個反斜線開頭后跟一個特定的字符,用來代表某一個特定的AscIl字符,這些字符常量也必須括在一對單引號內(nèi),和整型常量一樣,字符常量也可以進(jìn)行關(guān)系運算的。17、設(shè)有宏定義:#defineIsDIV(k,n)((k%n==1)?1:0)且變量m已正確定義并賦值,則宏調(diào)用:IsDIV(m,5)&&IsDIV(m,7)為真時所要表達(dá)的是A、判斷m是否能被5和7整除B、判斷m被5或者7整除是否余1C、判斷m被5和7整除是否都余1D、判斷m是否能被5或者7整除標(biāo)準(zhǔn)答案:C知識點解析:本題考查宏定義和三目運算符。三目運算符的格式為:test?語句1:語句2其中,test可以是任何Boolean表達(dá)式。語句1,當(dāng)test是true時執(zhí)行該語句,可以是復(fù)介語句;語句2,當(dāng)test是false時執(zhí)行該語句,可以是復(fù)合語句。isDIV(k,n)要表達(dá)的是當(dāng)k除n的余數(shù)是1時表達(dá)式的值為1,否則為0,所以題中要表達(dá)的是m被5和7整除是否都余1。18、以下錯誤的定義語句是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、intxn[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ù)組定義和初始化是允許省略行下標(biāo),不允許省略列下標(biāo)。19、以下能正確定義且賦初值的語句是A、intn1=n2=10;B、charc=32;C、floatf=f+1.1;D、doublex=12.3E2.5;標(biāo)準(zhǔn)答案:B知識點解析:本題主要考查變量的定義和賦值,C語言中變量的定義形式為:類型說明符變量名=初始值;選項A)中,n1和n2只能單獨賦初值;選項B)正確,定義了一個字符變量c,初值為32;選項C錯誤,初值設(shè)置自身不能參與運算;選項D)中字母E后面的指數(shù)必須是整數(shù)。20、若有以下程序main(){inta=6,b=0,c=0;for(;a;){b+=a;a-=++c;}printf("%d,%d,%d\n",a,b,c);}則程序的輸出結(jié)果是A、1,14,3B、0,18,3C、0,14,3D、0,14,6標(biāo)準(zhǔn)答案:C知識點解析:循環(huán)體執(zhí)行三次,a初值6,第一次執(zhí)行循環(huán)體,b=6,a=5。繼續(xù)執(zhí)行循環(huán)體,b=11,a=3,第三次執(zhí)行循環(huán)體,b=14,a=0,循環(huán)退出。21、若有以下程序#include<stdio.h>main(){intb=10,a=-11;a%=b%=4;printf("%d%d\n",a,b);}則程序的輸出結(jié)果是A、12B、-1-2C、-12D、1-2標(biāo)準(zhǔn)答案:C知識點解析:對于表達(dá)式a%=b%=4為復(fù)合的賦值運算,結(jié)合性自右至左,相當(dāng)于先計算b=b%4,a=a%b;結(jié)果的符號和第一個操作數(shù)的符號相同,因此b為2,a的結(jié)果為-1.22、以下敘述中正確的是A、在算法設(shè)計時,可以把復(fù)雜任務(wù)分解成一些簡單的子任務(wù)B、在C語言程序設(shè)計中,所有函數(shù)必須保存在一個源文件中C、只要包含了三種基本結(jié)構(gòu)的算法就是結(jié)構(gòu)化程序D、結(jié)構(gòu)化程序必須包含所有的三種基本結(jié)構(gòu),缺一不可標(biāo)準(zhǔn)答案:A知識點解析:C語言的程序中,函數(shù)不一定都放在同一個源文件中,可以分別放在不同源文件中,通過#include命令來引用,所以B錯誤?結(jié)構(gòu)化程序可以包含三種基本結(jié)構(gòu)中的一種或幾種,所以C,D錯誤。23、有以下程序#include<stdio.h>#defineSUB(X,Y)(X+1)*Ymain(){inta=3,b=4;printf("%d\n",SUB(a++,b++));}程序運行后的輸出結(jié)果是A、20B、12C、16D、25標(biāo)準(zhǔn)答案:C知識點解析:宏展開的結(jié)果(a+++1)*b++,后綴自加表達(dá)式參加運算,先用a和b的初值得到表達(dá)式的值,進(jìn)行計算,然后a和b在自加。因此計算結(jié)果為16。24、下面屬于白盒測試方法的是A、等價類劃分法B、邏輯覆蓋C、邊界值分析法D、錯誤推測法標(biāo)準(zhǔn)答案:B知識點解析:白盒測試法主要有邏輯覆蓋、基本路徑測試等。邏輯覆蓋測試包括語句覆蓋、路徑覆蓋、判定覆蓋、條件覆蓋、判斷-條件覆蓋,選擇B。其余為黑盒測試法。25、有以下程序:#includemain(){charc1,c2;c1=’A’+’8’-’4’;c2=’A’+’8’-’5’;printf("%c,%d\n",c1,c2);}已知字母A的ASCII碼為65,程序運行后的輸出結(jié)果是()。A、E,68B、D,69C、E,DD、輸出無定值標(biāo)準(zhǔn)答案:A知識點解析:本題目中字符變量c1是字符’A’的ASCII碼加上4,即69所對應(yīng)的字符’E’。字符變量c2是字符’A’的ASCII碼加上3,即68所對應(yīng)的字符’D’。但是打印輸出時,c1以%c的格式輸出,所以是E,c2以%d的格式輸出,所以是68。國家二級C語言機(jī)試(選擇題)模擬試卷第5套一、選擇題(本題共25題,每題1.0分,共25分。)1、算法中,對需要執(zhí)行的每一步操作,必須給出清楚、嚴(yán)格的規(guī)定。這屬于算法的A、正當(dāng)性B、可行性C、確定性D、有窮性標(biāo)準(zhǔn)答案:C知識點解析:本題考查算法的基本特征。算法的可行性表示算法中執(zhí)行的任何步驟都是可以被分解為基本的可執(zhí)行的操作步:確定性是指算法的每一步驟必須有確切的含義;有窮性是指算法必須能在執(zhí)行有限個步驟之后終止。2、有關(guān)return語句說法不正確的是()。A、系統(tǒng)默認(rèn)的返回值類型為整型,故當(dāng)函數(shù)的返回值為int型時,在函數(shù)定義時,返回值的類型說明可以省略。B、當(dāng)函數(shù)有返回值時,凡是允許表達(dá)式出現(xiàn)的地方,都可以調(diào)用該函數(shù)。C、當(dāng)函數(shù)沒有返回值時,函數(shù)的返回值類型可以說明為void型,它表示“無類型”或“空類型”。D、函數(shù)的返回值類型必須與return語句中的表達(dá)式值的類型一致,但C語言也允許不同;這時,系統(tǒng)以函數(shù)定義時的返回值類型說明為準(zhǔn),并自動地將return語句中表達(dá)式的值轉(zhuǎn)換為函數(shù)的返回值類型。標(biāo)準(zhǔn)答案:D知識點解析:函數(shù)的返回值類型一般與return語句中的表達(dá)式值的類型一致,但C語言也允許不同;這時,系統(tǒng)以函數(shù)定義時的返回值類型說明為準(zhǔn),并自動地將return語句中表達(dá)式的值轉(zhuǎn)換為函數(shù)的返回值類型。3、下列關(guān)于二叉樹的敘述中正確的是()。A、葉子節(jié)點總是比度為2的節(jié)點少1個B、葉子節(jié)點總是比度為2的節(jié)點多1個C、葉子節(jié)點數(shù)是度為2的節(jié)點數(shù)的兩倍D、度為2的節(jié)點數(shù)是度為l的節(jié)點數(shù)的兩倍標(biāo)準(zhǔn)答案:B知識點解析:根據(jù)二義樹的性質(zhì)3:在任意一一棵二又樹中,度為0的葉子節(jié)點總是比度為2的節(jié)點多一個,所以選擇B選項。4、某系統(tǒng)結(jié)構(gòu)圖如下圖所示(n≥5)該系統(tǒng)結(jié)構(gòu)圖的最大扇出數(shù)是()。A、3B、nC、2D、n+l標(biāo)準(zhǔn)答案:B知識點解析:扇出指一個模塊直接調(diào)用的其他模塊數(shù)。本題中第二層有n(n≥5)個模塊,模塊“某系統(tǒng)”直接調(diào)用這n個模塊,故最大扇出數(shù)是n。5、表達(dá)式3.6-5/2+1.2+5%2的值是A、4.8B、3.3C、3.8D、4.3標(biāo)準(zhǔn)答案:C知識點解析:表達(dá)式的計算過程為:3.6-5/2+1.2+5%2=3.6.2+1.2+1=3.8。此題要注意5/2的結(jié)果是2,而不2.5,因為除法運算符兩邊的數(shù)值類型均為整型,故運算結(jié)果的數(shù)值類型也被認(rèn)定為整型。6、以下程序的輸出結(jié)果是()。#include<stdio.h>intm=13;intfun(intx,inty){intm=2;retum(x*y-m);}main(){inta=7,b=6;printf(’’%d’’,fun(a,b)/m);}A、1B、3C、7D、10標(biāo)準(zhǔn)答案:B知識點解析:本題考查的是函數(shù)調(diào)用時的參數(shù)的作用域。在函數(shù)調(diào)用時,當(dāng)全局變量和局部變量的名稱相同時,在局部變量的作用域內(nèi),局部變量起作用,因而在fun函數(shù)內(nèi)m的應(yīng)該等于2,main中的m為13,所以返回值為7×6-2=40,而fun(a,b)/m值為40/13=3。7、“軟件系統(tǒng)總體結(jié)構(gòu)圖,下面描述中錯誤的是A、深度等于控制的層數(shù)B、扇入是一個模塊直接調(diào)用的其他模塊數(shù)C、扇出是一個模塊直接調(diào)用的其他模塊數(shù)D、原子模塊一定是結(jié)構(gòu)圖中位于葉子結(jié)點的模塊標(biāo)準(zhǔn)答案:B知識點解析:系統(tǒng)結(jié)構(gòu)圖是對軟件系統(tǒng)結(jié)構(gòu)的總體設(shè)計的圖形顯示。在需求分析階段,已經(jīng)從系統(tǒng)開發(fā)的角度出發(fā),把系統(tǒng)按功能逐次分割成層次結(jié)構(gòu),使每一部分完成簡單的功能且各個部分之間又保持一定的聯(lián)系,這就是功能設(shè)計。在設(shè)計階段,基于這個功能的層次結(jié)構(gòu)把備個部分組合起來成為系統(tǒng)。8、有以下程序:#include<stdio.h>main(){intm=1,n=2,*p=&m,*q=&n,*r;r=p:p=q:q=r;printf("%d,%d,%d,%d\n",m,n,*p,*q);}程序的運行結(jié)果是()。A、2,1,1,2B、1,2,1,2C、2,1,2,1D、1,2,2,1標(biāo)準(zhǔn)答案:D知識點解析:intm=1,n=2,*p=&m,*q=&n,*r;即指針變量p指向m,指針變量q指向n,r=p;p=q;q=r;即通過指針變量r,將指針p和指針q的指向交換,因此最后輸出1,2,2,1。9、己知字符’A’的ASCII代碼值是65,字符變量c1的值是’A’,c2的值是’D’。則執(zhí)行語句printff"%d,%d",c1,c2-2);的輸出結(jié)果是A、A,68B、A,BC、65,66D、65,68標(biāo)準(zhǔn)答案:C知識點解析:在C語言中,字符常量在內(nèi)存中占一個字節(jié),存放的是字符的ASCII碼值。所有的字符常量都作為整型量來處理。在本題中輸出語句用整型格式輸出字符時,輸出的是其ASCII碼值。因為字符’A’和’D’的ASClI碼值分別為65和68,昕以c2-2=68-2=66。10、以下敘述中正確的是A、charca[3][5]={"A","BB","CCC"};是不合語法的B、字符串?dāng)?shù)組,是指數(shù)組中的每個元素都是一個存放字符串的一維數(shù)組C、charca[][5]={"A","BB","CCC"};是不合語法的D、char*ca[3]={"A","BB","CCC"};是不合語法的標(biāo)準(zhǔn)答案:B知識點解析:字符串?dāng)?shù)組,也就是二維字符數(shù)組,其中每個元素為一個字符串,選項B)的說法正確。選項A)和C)對于ca的定義是正確的。選項D)定義一個指針數(shù)組,可以保存多個字符串的首地址。11、在黑盒測試方法中,設(shè)計測試用例的主要根據(jù)是()。A、程序內(nèi)部邏輯B、程序外部功能C、程序數(shù)據(jù)結(jié)構(gòu)D、程序流程圖標(biāo)準(zhǔn)答案:B知識點解析:黑盒測試是對軟件已經(jīng)實現(xiàn)的功能是否滿足需求進(jìn)行測試和驗證,黑盒測試完全不考慮程序內(nèi)部的邏輯結(jié)構(gòu)和內(nèi)部特性,只根據(jù)程序的需求和功能規(guī)格說明,檢查程序的功能是否符合它的功能說明,所以本題選擇B)。12、設(shè)變量已正確定義,以下不能統(tǒng)計出一行中輸入字符個數(shù)(不包含回車符)0的程序段是A、n=0;while((ch=getchar())!=’\n’)n++;B、n=0;while(getchar()!=’\n’)n++;C、for(n=0;getchar()!=’\n’;n++);D、n=0;for(ch=getchar();ch!=’\n’;n++);標(biāo)準(zhǔn)答案:D知識點解析:本題主要考查循環(huán)的使用。選項A中,首先把輸入的字符放到ch變量中,然后判斷ch是否為回車符,如果不是則n增加,循環(huán)結(jié)束條件是輸入的是回車符;選項B中,直接判斷getchar函數(shù)的返回值是否是回車符,如果不是則n增加,輸入回車符循環(huán)結(jié)束;選項C使用for循環(huán),n的初值為0,每次循環(huán)n增加1,循環(huán)的結(jié)束條件是輸入回車符;選項D中for循環(huán)的初始條件ch值為輸入的字符,只有一次輸入,不能統(tǒng)計輸入的字符數(shù),如果第一次輸入的不是回車符循環(huán)不能結(jié)束。13、有以下程序main(){intij,x=0;for(i=0;i<2;i++){x++;for(j=0;j<=3;j++){if(j%2)continue;x++;}x++;}printf("x=%d\n"x);}程序執(zhí)行后的輸出結(jié)果是A、x=4B、x=6C、x=12D、x=8標(biāo)準(zhǔn)答案:D知識點解析:在第1次外層for循環(huán)中,首先x++得到x=1。進(jìn)入到內(nèi)層for循環(huán),只有循環(huán)變量j的值為奇數(shù)時,變量x的值才自加1,所以在內(nèi)層for循環(huán)執(zhí)行過程中,變量x的值自加兩次,當(dāng)退出內(nèi)層for循環(huán)時,x=3,然后執(zhí)行x++,得到x=4。在進(jìn)入執(zhí)行第2次外層for循環(huán)中,首先x++得到x=5。進(jìn)入到內(nèi)層for循環(huán),只有循環(huán)變量j的值為奇數(shù)時,變量x的值才自加1,所以在內(nèi)層for循環(huán)執(zhí)行過程中,變量x的值自加1兩次,當(dāng)退出內(nèi)層for循環(huán)時,x=7,然后執(zhí)行x++,得到x=8,所以打印輸出變量x的值為8。14、有以下結(jié)構(gòu)體說明、變量定義和賦值語句structSTD{charname[10];intage;charsex;}s[5],*ps;ps=&s[0];則以下scanf函數(shù)調(diào)用語句有錯誤的是A、scanf("%d",&s[0].a(chǎn)ge);B、scanf("%c",&(ps->sex));C、scanf("%s",s[0].name);D、scanf("%d",ps->age);標(biāo)準(zhǔn)答案:D知識點解析:程序段定義了結(jié)構(gòu)體變量數(shù)組s[5]和指針變量ps,然后ps指向數(shù)組s[5]中的第一個元素,因而ps->age引用s[0].a(chǎn)ge。因為在輸入scanf()函數(shù)中,第2個參數(shù)應(yīng)該表示為地址變量,而選項A)表示的值,而不是一個地址值。15、有以下程序#}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(chǎn),a.b,a.c);}structAfStructAt){t.a(chǎn)=1002;strcpy(t.b,”ChangRong”);t.C=1202.0;returnt;}程序運行后的輸出結(jié)果是A、1002,ZhangDa,1202.0B、1002,ChangRong,1202.0C、1001,ChangRong,1098.0D、1001,ZhangDa,1098.0標(biāo)準(zhǔn)答案:B知識點解析:在主函數(shù)中定義結(jié)構(gòu)體A的變量a,并對其賦初值,再調(diào)用函數(shù)f(a),在函數(shù)f(a)中對結(jié)構(gòu)體變量a的各個成員重新進(jìn)行了賦值操作,并把其值返回在屏幕上輸出。16、有以下程序#includevoidfun(char*t,char*S){while(*t!=0)t++;while((*t++=*s++

溫馨提示

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

評論

0/150

提交評論