國(guó)家二級(jí)(C語言)機(jī)試模擬試卷39(共303題)_第1頁
國(guó)家二級(jí)(C語言)機(jī)試模擬試卷39(共303題)_第2頁
國(guó)家二級(jí)(C語言)機(jī)試模擬試卷39(共303題)_第3頁
國(guó)家二級(jí)(C語言)機(jī)試模擬試卷39(共303題)_第4頁
國(guó)家二級(jí)(C語言)機(jī)試模擬試卷39(共303題)_第5頁
已閱讀5頁,還剩87頁未讀, 繼續(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語言)機(jī)試模擬試卷39(共9套)(共303題)國(guó)家二級(jí)(C語言)機(jī)試模擬試卷第1套一、選擇題(本題共40題,每題1.0分,共40分。)1、軟件測(cè)試的目的是()。A、評(píng)估軟件可靠性B、發(fā)現(xiàn)并改正程序中的錯(cuò)誤C、改正程序中的錯(cuò)誤D、發(fā)現(xiàn)程序中的錯(cuò)誤標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:軟件測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程,測(cè)試要以查找錯(cuò)誤為中心,而不是為了演示軟件的正確功能。不是為了評(píng)估軟件或改正錯(cuò)誤。2、閱讀以下程序#include<stdio.h>main(){IntCase;floatprintF;printf("請(qǐng)輸入2個(gè)數(shù):");scanf(,"%d%f",&Case,&printF);printf("%d%f\n",Case,printF);}以下說法正確的是()。A、定義語句出錯(cuò),Case是關(guān)鍵字,不能用作用戶自定義標(biāo)識(shí)符,printF不能用作用戶自定義標(biāo)識(shí)符B、定義語句出錯(cuò),Int無法被識(shí)別C、定義語句無錯(cuò),scanf不能作為輸入函數(shù)使用D、定義語句無錯(cuò),printf不能輸出Case的值標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:C語言是一種大小寫敏感的語言,因此Int應(yīng)為int,而CaseprintF則可以使用。3、以下程序的輸出結(jié)果是()。#includemain(){inta=4,b=3,c=2,d=1;printf("d",aA、1B、3C、2D、4標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:條件表達(dá)式的格式為:"a?b:c",它的功能是:當(dāng)a為真時(shí),表達(dá)式的值等于b的值;當(dāng)a為假時(shí),表達(dá)式的值等于c的值。因?yàn)闂l件運(yùn)算符的結(jié)合方向?yàn)椤白杂蚁蜃蟆?。因此,?dāng)表達(dá)式中嵌套使用條件表達(dá)式時(shí),應(yīng)先計(jì)算右邊的條件表達(dá)式,再計(jì)算左邊的條件表達(dá)式。題中應(yīng)先計(jì)算“d4、若有定義:inta;floatb;doublec;,程序運(yùn)行時(shí)輸入:123<回車>,能把1輸入給變量a、把2輸入給變量b、把3輸入給變量c的輸入語句是()。A、scanf("%d%f%lf",&a,&b,&c);B、scanf("%d%f%lf",&a,&b,&c);C、scanf("%d%lf%lf",&a,&b,&c);D、scanf("%d%f%f",&a,&b,&c);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在scanf()函數(shù)中,a變量為整數(shù)用%d格式字符串,a變量為單精度數(shù)用%f格式字符串,a變量為雙精度數(shù)用%1f格式字符串,只有A選項(xiàng)正確。5、下列敘述中止確的是()。A、循環(huán)隊(duì)列行隊(duì)頭和隊(duì)尾兩個(gè)指針,因此,循環(huán)隊(duì)列是菲線性結(jié)構(gòu)B、在循環(huán)隊(duì)列中,只需要隊(duì)頭指針就能反映隊(duì)列中元素的動(dòng)態(tài)變化情況C、在循環(huán)隊(duì)列中,只需要隊(duì)尾指針就能反映隊(duì)列中元素的動(dòng)態(tài)變化情況D、循環(huán)隊(duì)列中元素的個(gè)數(shù)是由隊(duì)頭指針和隊(duì)尾指針共同決定的標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:循環(huán)隊(duì)列有隊(duì)頭和隊(duì)尾兩個(gè)指針,但是循環(huán)隊(duì)列仍是線性結(jié)構(gòu)的,所以A錯(cuò)誤;在循環(huán)隊(duì)列中只需要隊(duì)頭指針與隊(duì)尾兩個(gè)指針來共同反映隊(duì)列中元素的動(dòng)態(tài)變化情況,所以B與C錯(cuò)誤。6、以下()不屬于對(duì)象的基本特征。A、繼承性B、封裝性C、分類性D、多態(tài)性標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:對(duì)象具有特征:標(biāo)識(shí)惟一性,指對(duì)象是可區(qū)分的;分類性,指可以將具有相同屬性和操作的對(duì)象抽象成類:多態(tài)性,指同一個(gè)操作可以是不同對(duì)象的行為;封裝性,從外面看只能看到對(duì)象的外部特征,而不知道也無需知道數(shù)據(jù)的具體結(jié)構(gòu)以及實(shí)現(xiàn)操作的算法;模塊獨(dú)立性好,對(duì)象是面向?qū)ο蟮能浖幕灸K,對(duì)象內(nèi)部各種元素彼此結(jié)合得很緊密,內(nèi)聚性強(qiáng)。7、以下敘述中錯(cuò)誤的是()。A、算法正確的程序可以有零個(gè)輸入B、算法正確的程序最終一定會(huì)結(jié)束C、算法正確的程序可以有零個(gè)輸出D、算法正確的程序?qū)τ谙嗤妮斎胍欢ㄓ邢嗤慕Y(jié)果標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:算法的特征:①有窮性。一個(gè)算法(對(duì)任何合法的輸入)在執(zhí)行有窮步后能夠結(jié)束,并且在有限的時(shí)間內(nèi)完成。②確定性。算法中的每一步都有確切的含義。③可行性。算法中的操作能夠用已經(jīng)實(shí)現(xiàn)的基本運(yùn)算執(zhí)行有限次來實(shí)現(xiàn)。④輸入:一個(gè)算法有零個(gè)或者多個(gè)輸入,零個(gè)輸入就是算法本身確定了初始條件。⑤輸出:一個(gè)算法有一個(gè)或者多個(gè)輸出,以反映出數(shù)據(jù)加工的結(jié)果。所以C選項(xiàng)錯(cuò)誤。8、設(shè)有兩行定義語句:intscanf;floatcase;則以下敘述正確的是()。A、第2行語句不合法B、兩行定義語句都合法C、第1行語句不合法D、兩行定義語句都不合法標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查用戶標(biāo)識(shí)符,用戶自己定義的標(biāo)識(shí)符不能與關(guān)鍵字相同,并且盡量避免和預(yù)定義標(biāo)識(shí)符相同。本題中scanf為預(yù)定義標(biāo)識(shí)符,可以作為用戶標(biāo)識(shí)符;case為關(guān)鍵字,不能作為用戶標(biāo)識(shí)符,故而答案選A)。9、設(shè)有定義:intk=0;,下列選項(xiàng)的4個(gè)表達(dá)式中與其他3個(gè)表達(dá)式的值不相同的是()。A、k++B、k+=1C、++kD、k+1標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:因?yàn)轭}中有語句“intk=0;”,所以選項(xiàng)B、C、D都是對(duì)k的值加1,選項(xiàng)A的語句k++表示先利用k的值進(jìn)行運(yùn)算,然后k的值才加1。10、C語言編譯程序的功能是()。A、執(zhí)行一個(gè)C語言編寫的源程序B、把C源程序翻譯成ASCII碼C、把C源程序翻譯成機(jī)器代碼D、把C源程序與系統(tǒng)提供的庫函數(shù)組合成一個(gè)二進(jìn)制執(zhí)行文件標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:編譯程序的功能是將“高級(jí)語言”翻譯為“機(jī)器語言”。每條C語言語句,經(jīng)過編譯最終都將轉(zhuǎn)換成二進(jìn)制的機(jī)器指令。11、以下能正確表述算式sin(2πr+30°)的C語言表達(dá)式是()。A、sin(2*3.14*r+3.14*30/180.0)B、sin(2*π*r+30)C、sin(2*3.14*r+30)D、sin(2*3.14*r+30*3.14/360.0)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:考查算術(shù)表達(dá)式的寫法,C中沒有π,需要用數(shù)值3.14代替,C中sin函數(shù)的參數(shù)為弧度,角度30轉(zhuǎn)成弧度應(yīng)為3.14*30/180。故而選A)。12、定義結(jié)構(gòu)體數(shù)組structstu{intnum;charname[20];}x[5]={1,"ZHAO",2,"QIAN",3,"SUN",4,"LEE",5,"ZHOU");for(i=1;i<5;i++)printf("%d%c",x[i].hum,x[i].name[2]);程序執(zhí)行后的輸出結(jié)果是()。A、2A3N4E50B、1H213U4EC、1A2N3E40D、1A2N3E40標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題主要考查結(jié)構(gòu)體數(shù)組。x[i].num是結(jié)構(gòu)體x[i]中的num成員,x[i].name[2]是結(jié)構(gòu)體x[i]中name成員的第3個(gè)元素。第一次循環(huán),i=1,輸出x[1].num,x[1].name[2]的值,即2A:第二次循環(huán),i=2,輸出x[2]num,x[2].name[2]的值,即3N:第三次循環(huán),i=3,輸出x[3].num,x[3].name[2]的值,即4E;第四次循環(huán),i=4,輸出x[4].num,x[4].nanlc[2]的值,即50。13、結(jié)構(gòu)化程序的三種基本控制結(jié)構(gòu)是()。A、順序、選擇和重復(fù)(循環(huán))B、過程、子程序和分程序C、順序、選擇和調(diào)用D、調(diào)用、返回和轉(zhuǎn)移標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:結(jié)構(gòu)化程序設(shè)計(jì)中三種基本控制結(jié)構(gòu)為順序、選擇和重復(fù)(循環(huán)),故正確答案為A。14、以下程序運(yùn)行后的輸出結(jié)果是()。#includemain()voidreverse(inta[],intn){intb[10]={10,9,8,7,6,5,4,3,2,1};inti,s=0;{inti,t;reverse(b,10);fbr(i=0;iA、27B、6C、25D、30標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查函數(shù)調(diào)用時(shí)的參數(shù)傳遞。函數(shù)reverse將數(shù)組b進(jìn)行了逆置,此時(shí)b[10]={10,9,8,7,6,5,4,3,2,1},后面for語句的功能是將b中的后3個(gè)數(shù)累加,并將結(jié)果放在s中,最后將s輸出,結(jié)果s=1+2+3=6。15、以下有關(guān)宏的描述不正確的是()。A、宏定義不做語法檢查B、雙引號(hào)中出現(xiàn)的宏名不進(jìn)行替換C、宏名無類型D、宏名必須用大寫字母表示標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查宏的使用規(guī)則:①字符替換格式:#define標(biāo)識(shí)符字符串,標(biāo)識(shí)符稱為宏名,無類型;②雙引號(hào)中出現(xiàn)的宏名不替換;③宏名的定義通常用大寫字母,但不是必須用大寫;④宏定義不是賦值語句,不做語法檢查。16、設(shè)文件指針fp已定義,執(zhí)行語句fp=fopen("file","w");后,以下針對(duì)文本文件file操作敘述的選項(xiàng)中正確的是()。A、只能寫不能讀B、寫操作結(jié)束后可以從頭開始讀C、可以在原有內(nèi)容后追加寫D、可以隨意讀和寫標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:考查文件操作函數(shù)fopen的基礎(chǔ)知識(shí),以"w"方式打開文件,只能寫不能讀。選項(xiàng)A正確。17、有以下程序#include<stdio.h>voidfun2(chara,charB){printf("%c%c",a,b);}chara=’A’,b=’B’;voidfun1(){a=’C’;b=’D’;}main(){fun1();printf("%c%c",a,b);fun2(’E’,’F’);}程序的運(yùn)行結(jié)果是A、ABEFB、CDEFC、ABCDD、CDAB標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考察的是變量的作用范圍。如果在同一個(gè)源文件中,外部變量與局部變量同名,則在局部變量的作用范圍內(nèi),外部變量被"屏蔽",即不起作用。本題中,在fun1()和main()函數(shù)內(nèi)訪問的是全局變量a和b,在fun2()函數(shù)中訪問的是形參變量a和b。所以,main()函數(shù)中的printf()函數(shù)輸出的是在fun1()函數(shù)中被改變的全局變量a和b的值CD,而fun2()函數(shù)中輸出的是傳遞給它的實(shí)參值EF。因此B選項(xiàng)正確。18、以下敘述中錯(cuò)誤的是()。A、gets函數(shù)用于從終端讀入字符串B、getchar函數(shù)用于從磁盤文件讀入字符C、fputs函數(shù)用于把字符串輸出到文件D、fwrite函數(shù)用于以二進(jìn)制形式輸出數(shù)據(jù)到文件標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題號(hào)考查字符處理函數(shù)和文件操作函數(shù)數(shù),屬于基礎(chǔ)知以,其中B選項(xiàng)gelchar函數(shù)是用于從終端讀入一個(gè)字符。19、以下敘述中錯(cuò)誤的是()。A、gets函數(shù)用于從終端讀入字符串B、getchar函數(shù)用于從磁盤文件讀入字符C、fputs函數(shù)用于把字符串輸出到文件D、fwrite函數(shù)用于以二進(jìn)制形式輸出數(shù)據(jù)到文件標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查字符處理函數(shù)和文件操作函數(shù),屬于基礎(chǔ)知識(shí),其中B選項(xiàng)getchar函數(shù)是用于從終端讀入一個(gè)字符。20、對(duì)序線性表(23,29,34,55,60,70,78)用二分法查找值為60的元素時(shí),需要比較次數(shù)為()。A、1B、2C、3D、4標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:根據(jù)二分法查找法需要兩次:①首先將60與表中間的元素55進(jìn)行比較,由于60大于55,所以在線性表的后半部分查找。②第二次比較的元素是后半部分的中間元素,將60與表中間的元素70進(jìn)行比較,由于60小于70,所以在線性表的前半部分查找。③第三次比較的元素是前半部分的中間元素,即60,這時(shí)兩者相等,即查找成功。21、有兩個(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)解析:關(guān)系S是由關(guān)系R的第1、2列的元組組成,這是對(duì)關(guān)系R進(jìn)行投影運(yùn)算的結(jié)果。選擇運(yùn)算是對(duì)行的操作,投影運(yùn)算是對(duì)列的操作。投影是指將對(duì)象轉(zhuǎn)換為一種新形式的操作,該形式通常只包含那些將隨后使用的屬性。22、下列敘述中正確的是()。A、算法就是程序B、設(shè)計(jì)算法時(shí)只需要考慮數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)C、設(shè)計(jì)算法時(shí)只需要考慮結(jié)果的可靠性D、以上三種說法都不對(duì)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:算法是指解題方案的準(zhǔn)確而完整的描述,算法不等于程序,也不等于計(jì)算方法,所以A錯(cuò)誤。設(shè)計(jì)算法時(shí)不僅要考慮對(duì)數(shù)據(jù)對(duì)象的運(yùn)算和操作,還要考慮算法的控制結(jié)構(gòu)。23、以下關(guān)于C語言的敘述中正確的是()。A、預(yù)處理命令通常位于函數(shù)體外面,但也可以位于函數(shù)體中間B、C語言中的變量定義須在其他語句之前C、在C語言程序的書寫中,一個(gè)語句必須單占一行D、—個(gè)C語言源程序可以由一個(gè)或多個(gè)源文件組成,每個(gè)源文件可由自己的ma1n函數(shù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:源程序中可以有預(yù)處理命令(inc1ude命令僅為其中的一種)。C語言中的變量可以在使用之前的任何位置進(jìn)行定義。C語言程序的書寫中,多個(gè)語句可以位于一行,但為了增強(qiáng)可讀性,一般每行只有一條語句。一個(gè)C語言源程序可以由一個(gè)或多個(gè)源文件組成,但僅可以有一個(gè)main函數(shù)。24、下列關(guān)于類、對(duì)象、屬性和方法的敘述中,錯(cuò)誤的是()。A、類是對(duì)一類具有相同的屬性和方法對(duì)象的描述B、屬性用于描述對(duì)象的狀態(tài)C、方法用于表示對(duì)象的行為D、基于同一個(gè)類產(chǎn)生的兩個(gè)對(duì)象不可以分別設(shè)置自己的屬性值標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:類是對(duì)一類具有相同的屬性和方法對(duì)象的描述,屬性用于描述對(duì)象的狀態(tài),方法用于表示對(duì)象的行為,基于同一個(gè)類產(chǎn)生的兩個(gè)對(duì)象是可以分別設(shè)置自己的屬性值。25、C源程序中不能表示的數(shù)制是()。A、二進(jìn)制B、八進(jìn)制C、十進(jìn)制D、十六進(jìn)制標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C語言中整型常量可以用十進(jìn)制、八進(jìn)制數(shù)、十六進(jìn)制數(shù)來表示。雖然計(jì)算機(jī)只能識(shí)別二進(jìn)制數(shù),但二進(jìn)制不能用源程序表示。26、軟件設(shè)計(jì)中模塊劃分應(yīng)遵循的準(zhǔn)則是()。A、低內(nèi)聚低耦合B、高內(nèi)聚低耦合C、低內(nèi)聚高耦合D、高內(nèi)聚高耦合標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:軟件設(shè)計(jì)中,模塊劃分應(yīng)遵循高內(nèi)聚低耦合的準(zhǔn)則,答案選C)。27、若函數(shù)調(diào)用時(shí)的實(shí)參為變量時(shí),以下關(guān)于函數(shù)形參和實(shí)參的敘述中正確的是()。A、函數(shù)的形參和實(shí)參分別占用不同的存儲(chǔ)單元B、形參只是形式上的存在,不占用具體存儲(chǔ)單元C、同名的實(shí)參和形參占同一存儲(chǔ)單元D、函數(shù)的實(shí)參和其對(duì)應(yīng)的形參共占同一存儲(chǔ)單元標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題重點(diǎn)考察的是函數(shù)的形參和實(shí)參。在定義函數(shù)時(shí)函數(shù)名后面括弧中的變量名稱為“形式參數(shù)”(簡(jiǎn)稱形參),在主調(diào)函數(shù)中調(diào)用一個(gè)函數(shù)時(shí),函數(shù)名后面括弧中的參數(shù)(可以是一個(gè)表達(dá)式)稱為“實(shí)際參數(shù)”(簡(jiǎn)稱實(shí)參)。C語言規(guī)定,實(shí)參變量對(duì)形參變量的數(shù)據(jù)傳遞是“值傳遞”,即單向傳遞,只由實(shí)參傳給形參,而不能由形參傳回來給實(shí)參。在內(nèi)存中,實(shí)參單元與形參單元是不同的單元。因此A選項(xiàng)正確。28、下列敘述中正確的是()。A、順序存儲(chǔ)結(jié)構(gòu)的存儲(chǔ)空間一定是連續(xù)的,鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的存儲(chǔ)空間不一定是連續(xù)的B、順序存儲(chǔ)結(jié)構(gòu)只針對(duì)線性結(jié)構(gòu),鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)只針對(duì)非線性結(jié)構(gòu)C、順序存儲(chǔ)結(jié)構(gòu)能存儲(chǔ)有序表,鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)不能存儲(chǔ)有序表D、鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)比順序存儲(chǔ)結(jié)構(gòu)節(jié)省存儲(chǔ)空間標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:順序存儲(chǔ)結(jié)構(gòu)中,所有元素在物理上連續(xù),所以存儲(chǔ)空間一定連續(xù);鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中,所有元素在邏輯上連續(xù),存儲(chǔ)空間不一定連續(xù)。線性表可以采用順序存儲(chǔ)結(jié)構(gòu),也可采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu);順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)都是既可用于線性結(jié)構(gòu),也可以用于非線性結(jié)構(gòu)。采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),不僅要存儲(chǔ)元素的值,還需附加字段表示元素間的邏輯關(guān)系,因此,鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)需要更多的存儲(chǔ)空間。29、有以下程序(strcat函數(shù)用以連接兩個(gè)字符串):#include#includemain(){chara[20]="ABCD\0EFG\0",b[]="UK";strcat(a,b);printf("%s\n",a);}程序運(yùn)行后的輸出結(jié)果是()。A、UKB、ABCDE\OFG\OUKC、ABCDIJKD、EFGIJK標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:字符數(shù)組a中包含兩個(gè)’\0’,遇到第一個(gè)’\0’時(shí)就表示字符串a(chǎn)結(jié)束。字符串處理函數(shù)strcat(字符數(shù)組a,字符數(shù)組B)的功能是連接兩個(gè)字符數(shù)組中的字符串,把字符串b連接到a的后面,結(jié)果放在字符數(shù)組a中。連接時(shí)將字符串a(chǎn)后的’\0’取消,只在新串最后保留一個(gè)’\0’。本題相當(dāng)于將“ABcD”和“IJK”連接。因此C選項(xiàng)正確。30、數(shù)據(jù)庫(DB)、數(shù)據(jù)庫系統(tǒng)(DBS)和數(shù)據(jù)庫管理系統(tǒng)(DBMS)之間的關(guān)系是()。A、DB包括DBS和DBMSB、DBMS包括DB和DBSC、DBS包括DB和DBMSD、DBS、DB和DBMS相互獨(dú)立標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:數(shù)據(jù)庫(DB)是指長(zhǎng)期存儲(chǔ)在計(jì)算機(jī)內(nèi)的、有組織的、可共享的數(shù)據(jù)集合。數(shù)據(jù)庫管理系統(tǒng)(DBMS)是數(shù)據(jù)庫的機(jī)構(gòu),它是一個(gè)系統(tǒng)軟件,負(fù)責(zé)數(shù)據(jù)庫中的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護(hù)、數(shù)據(jù)控制及保護(hù)和數(shù)據(jù)服務(wù)等。數(shù)據(jù)庫系統(tǒng)(DBS}由如下幾部分組成:數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫管理員、硬件平臺(tái)、軟件平臺(tái),這些構(gòu)成了一個(gè)以數(shù)據(jù)庫管理系統(tǒng)為核心的完整的運(yùn)行實(shí)體。數(shù)據(jù)庫系統(tǒng)包括數(shù)據(jù)庫與數(shù)據(jù)庫管理系統(tǒng),故C選項(xiàng)正確。31、有以下程序:#include<stdio.h>intfun(inta){intb=2;staticintc=2;b++:c--;return(a+b+c);}main(){intk,a=2;for(k=0;k<3;k++)printf("%d",fun(a));printf("\n");}執(zhí)行后的輸出結(jié)果是()。A、678B、666C、654D、456標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:由于main函數(shù)for循環(huán)中k的取值為0,1,2,所以for循環(huán)三次調(diào)用fun()函數(shù),每次調(diào)用函數(shù)fun,形參a的值為2(實(shí)參a傳入),局部變量b始化為2(fun函數(shù)中初始化),靜態(tài)局部變量c,保留上一次函數(shù)調(diào)用結(jié)束后的值,所以第一次調(diào)用fun(),形參a=2,b=2,c=2,然后執(zhí)行b自增1,c字減1,返回值為:2+3+1=6;第二次調(diào)用fun(),形參a=2,b=2,c=1,然后執(zhí)行b自增1,c自減1,返回值為:2+3+0=5;第三次調(diào)用fun(),形參a=2,b=2,c=0,然后執(zhí)行b自增1,c自減1,返回值為:2+3-1=4,所以結(jié)果為:654,答案為C。32、下列敘述中正確的是()。A、循環(huán)隊(duì)列有隊(duì)頭和隊(duì)尾兩個(gè)指針,因此,循環(huán)隊(duì)列是非線性結(jié)構(gòu)B、在循環(huán)隊(duì)列中,只需要隊(duì)頭指針就能反映隊(duì)列中元素的動(dòng)態(tài)變化情況C、在循環(huán)隊(duì)列中,只需要隊(duì)尾指針就能反映隊(duì)列中元素的動(dòng)態(tài)變化情況D、循環(huán)隊(duì)列中元素的個(gè)數(shù)是由隊(duì)頭指針和隊(duì)尾指針共同決定標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:循環(huán)隊(duì)列有隊(duì)頭和隊(duì)尾兩個(gè)指針,但是循環(huán)隊(duì)列仍是線性結(jié)構(gòu)的,所以A)錯(cuò)誤;在循環(huán)隊(duì)列中只需要隊(duì)頭指針與隊(duì)尾兩個(gè)指針來共同反映隊(duì)列中元素的動(dòng)態(tài)變化情況,所以B)與C)錯(cuò)誤。33、在下列敘述中,錯(cuò)誤的是()。A、C語言中,二維數(shù)組或多維數(shù)組是按行存放的B、賦值表達(dá)式b[1][2]=a[2][3]是正確的C、chara[1];a[0]=’A’與inta[1];a[0]=’A’等價(jià)D、數(shù)組名后的方括號(hào)內(nèi)可以為常量表達(dá)式,也可以為變量標(biāo)準(zhǔn)答案:B知識(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]。34、在以下選項(xiàng)中,按照C語言規(guī)定,不能出現(xiàn)在標(biāo)識(shí)符中的是()。A、大寫字母B、下劃線C、數(shù)字字符D、連接符標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:按照C語言規(guī)定,標(biāo)識(shí)符由字母、數(shù)字和下劃線組成,且開頭必須是字母或下劃線,所以選項(xiàng)D不合法。35、有以下程序:#include〈stdio.h〉voidmain(){inti,*p=NULL;*p=&i;printf(’’Inputi:’’);scanf(’’%d’’,&p);printf(’’outputi:’’);printf(’’%d\n’’,p);}該程序試圖通過指針p為變量i讀入數(shù)據(jù)并輸出,但程序有多處錯(cuò)誤,以下語句正確的是()。A、*p=&i;B、inti,*p=NULL;C、scanf(’’%d’’,&p)D、printf(’’%d\n’’,p);標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:分析題意,選項(xiàng)A的正確寫法應(yīng)該是p=&i;選項(xiàng)C的正確寫法應(yīng)該是scanf(’’%d’’,p);選項(xiàng)D的正確寫法應(yīng)該是printf(’’%d\n’’,*p)。36、若函數(shù)中有定義語句:inta;,則()。A、系統(tǒng)將自動(dòng)給a賦初值0B、這時(shí)a中的值是和隨機(jī)數(shù)C、系統(tǒng)將自動(dòng)給a賦初值-1D、這a中無任何值標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查變量賦值基本概念。在聲明一個(gè)變量后,如果未顯式的塒其進(jìn)行賦值,則它的值是一個(gè)隨機(jī)值。37、下面不能作為軟件需求分析工具的是A、PAD圖B、數(shù)據(jù)字典(DD)C、數(shù)據(jù)流程圖(DFD圖)D、判定樹標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:需求分析方法可以分為結(jié)構(gòu)化分析方法和面向?qū)ο蟮姆治龇椒?,結(jié)構(gòu)化分析工具包括:數(shù)據(jù)流圖(DFD)、數(shù)據(jù)字典(DD)、結(jié)構(gòu)化英語、判定表和判定樹等。PAD圖是過程設(shè)計(jì)工具,所以A選項(xiàng)正確。38、有如下程序#include<stdio.h>int*sum(intdata){staticintinit=0;init+=data;return&init;}main(){inti,*p;for(i=1;i<=4;i++)sum(i);p=sum(0);printf("%d\n",*p);}程序運(yùn)行后的輸出結(jié)果是A、15B、0C、1D、10標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:static變量又稱為靜態(tài)變量,編譯時(shí),將其分配在內(nèi)存的靜態(tài)存儲(chǔ)區(qū)中,在整個(gè)程序運(yùn)行期間都不釋放這些存儲(chǔ)單元,即使退出函數(shù),下次再進(jìn)入該函數(shù)時(shí),靜態(tài)局部變量仍使用原來的存儲(chǔ)單元,值是上一次函數(shù)調(diào)用結(jié)束時(shí)的值。若定義時(shí)未賦初值,在編譯時(shí),系統(tǒng)自動(dòng)賦初值為0;若定義時(shí)賦初值,則僅在編譯時(shí)賦初值一次,程序運(yùn)行后不再給變量賦初值。程序執(zhí)行過程為:執(zhí)行for循環(huán),i=1,調(diào)用函數(shù)sum(1),data=1,init=0,init=init+data=1;i=2,調(diào)用函數(shù)sum(2),data=2,init=1,init=init+data=3;i=3,調(diào)用函數(shù)sum(3),data=3,init=3,init=init+data=6;i=4,調(diào)用函數(shù)sum(4),data=4,init=6,init=init+data=10;i=5退出for循環(huán)。調(diào)用函數(shù)sum(0),data=0,init=10,init=init+data=10,返回指向init的指針,輸出init=10。D選項(xiàng)正確。39、有如下程序#include<stdio.h>main(){inti,array[5]={3,5,10,4};for(i=0;i<5;i++)printf("%d,",array[i]&3);printf("\n");}程序運(yùn)行后的輸出結(jié)果是A、3,1,2,0,0,B、3,5,10,4,0,C、3,3,3,3,0,D、3,2,2,2,0,標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在對(duì)數(shù)組進(jìn)行初始化時(shí),如果在說明數(shù)組時(shí)給出了長(zhǎng)度,但沒有給所有的元素賦予初始值,而只依次給前面的幾個(gè)數(shù)組元素賦予初值,那么C語言將自動(dòng)對(duì)余下的元素賦初值0,則array={3,5,10,4,0}。按位與運(yùn)算"&",當(dāng)參加運(yùn)算的兩個(gè)二進(jìn)制數(shù)的對(duì)應(yīng)位都為1,則該位的結(jié)果為1,否則為0。將數(shù)組元素與3=11B按位與,即3&3=3,5&3=1,10&3=2,4&3=0,0&3=0。For循環(huán)輸出與運(yùn)算結(jié)果:3,1,2,0,0,A選項(xiàng)正確。40、下列敘述中正確的是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)答案:C知識(shí)點(diǎn)解析:一個(gè)非空的數(shù)據(jù)結(jié)構(gòu)如果滿足以下兩個(gè)條件:有且只有一個(gè)根節(jié)點(diǎn);每一個(gè)節(jié)點(diǎn)最多有一個(gè)前件,也最多有一個(gè)后件,稱為線性結(jié)構(gòu)。雙向鏈表節(jié)點(diǎn)有兩個(gè)指針域,指向前一個(gè)節(jié)點(diǎn)的指針和指向后一個(gè)節(jié)點(diǎn)的指針,也是線性結(jié)構(gòu),A選項(xiàng)錯(cuò)誤。如果有兩個(gè)節(jié)點(diǎn)的同一個(gè)指針域的值相等,說明一個(gè)節(jié)點(diǎn)有兩個(gè)前件,屬于非線性結(jié)構(gòu),B選項(xiàng)正確,D選項(xiàng)正確。非線性結(jié)構(gòu)主要是指樹形結(jié)構(gòu)和網(wǎng)狀結(jié)構(gòu),可以滿足每個(gè)節(jié)點(diǎn)有兩個(gè)指針域的條件,C選項(xiàng)正確。二、程序填空題(本題共1題,每題1.0分,共1分。)41、給定程序中,函數(shù)fun的功能是:調(diào)用隨機(jī)函數(shù)產(chǎn)生20個(gè)互不相同的整數(shù)放在形參a所指數(shù)組中(此數(shù)組在主函數(shù)中已置0)。請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:部分源程序在文件BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!【試題源程序】#include#include#defineN20voidfun(int*a){inti,x,n=0;X=rand()%20;/***********found**********/while(n<<【1】){for(i=0;i<n;i++)/***********found**********/if(x==a[i])【2】;/***********found**********/if(i==【3】){a[n]=x;n++;}X=rand()%20;}}main(){intx[N]={0},i;fun(x);printf("Theresult:\n");for(i=0;i<N;i++){printf("%4d",x[i]);if((i+1)%5==0)printf("\n");}printf("\n\n");}標(biāo)準(zhǔn)答案:【1】N或20【2】break【3】n知識(shí)點(diǎn)解析:填空【1】:變量n用于存儲(chǔ)數(shù)組的最大下標(biāo),while語句對(duì)數(shù)組進(jìn)行賦值,數(shù)組的容量為20,因此循環(huán)條件應(yīng)為n<20或n<N。填空【2】:通過一個(gè)for循環(huán)判斷x是否與數(shù)組中已存的元素重復(fù),若重復(fù)則跳出for循環(huán)。填空【3】:若for循環(huán)是由break語句結(jié)束的,則x與數(shù)組中的元素重復(fù),此時(shí)i小于n;若for循環(huán)是因?yàn)檠h(huán)變量i遞增到某值,而不再滿足循環(huán)條件結(jié)束的,說明x的值與數(shù)組中的元素不重復(fù),則此時(shí)i的值等于n。三、程序修改題(本題共1題,每題1.0分,共1分。)42、給定程序MODI1.C中函數(shù)fun的功能是:求整數(shù)x的y次方的低3位值。例如,整數(shù)5的6次方為15625,此值的低3位值為625。請(qǐng)改正函數(shù)fun中指定部位的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!1#include<stdio.h>2longfun(intx,inty,long*p)3{inti;4longt=1;5/**********found**********/6for(i=1;i<y;i++)7t=t*x;8*p=t;9/**********found**********/10t=t/1000;11returnt;12}13main()14{longt,r;intx,y;15printf(’’\nTnputxandy:’’);scanf(’’%1d%1d’’,&x,&y);16t=fun(x,y,&r);17printf(’’\n\nx=%d,y=%d,r=%1d,1ast=%1d\n\n’’,x,y,r,t);18}標(biāo)準(zhǔn)答案:(1)for(i=1;i<=y;i++)(2)t=t%1000;知識(shí)點(diǎn)解析:函數(shù)的功能是求整數(shù)x的y次方的低3位值。(1)第一個(gè)標(biāo)識(shí)下的“for(i=1;i<y;i++)”說明進(jìn)行了y-1次方,而不是y次方,所以將“for(i=1;i<y;i++)”改為“for(i=1;i<=y;i++)”。(2)題目中要求截取前面求得結(jié)果的低三位,因此,第二個(gè)標(biāo)識(shí)下“t=t/1000;”應(yīng)該改為“t=t%1000;”。四、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)43、請(qǐng)編寫函數(shù)fun,其功能是:計(jì)算并輸出當(dāng)x<0.97時(shí)下列多項(xiàng)式的值,直到|Sn-Sn-1|<0.000001為止。例如,在主函數(shù)中從鍵盤給x輸入0.21后,輸出為:s=1.100000。注意:部分源程序在文件PROG1.C中。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語句。1#include<stdio.h>2#iclude<math.h>3doublefun(doublex)4{5}6NONO()7{/*請(qǐng)?jiān)诖撕瘮?shù)內(nèi)打開文件,輸入測(cè)試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/8FILE*rf,*wf;inti;doubles,x;9rf=fopen(’’in.dat’’,’’r’’”);10wf=fopen(’’out.dat’’,’’w’’);11for(i=0;i<10;i++){12fscanf(rf,’’%1f’’,&x);13s=fun(x);14fprintf(wf,’’%1f\n’’,s);15}16fclose(rf);fclose(wf);17}18main()19{doublex,s;20printf(’’Input:x:’’);scanf(’’%1f’’,&x);21s=fun(x);22printf(’’s=%f\n’’,s);23NONO();}標(biāo)準(zhǔn)答案:1intn=1;/*循環(huán)計(jì)數(shù)*/2doublesn=1;/*累計(jì)數(shù)*/3doublexn=1,xn1=0;/*x的n值,以及x的n-1值;*/4while(fabs(xn-xn1)>=0.000001)/*絕對(duì)值是否滿足條件*/5{6xn=xn*x*(0.5-n+1)/n;/*表達(dá)式分解以后xn=(xn-i)*x*(0.5-n+i)/n*/7n+=1;8sn+=xn;}/*sn累加上xn*/9return(sn);知識(shí)點(diǎn)解析:(1)根據(jù)題干中給出的數(shù)列,推出每一項(xiàng)分子是在前一項(xiàng)分子的基礎(chǔ)上乘以(0.5-n+1)*x,分母則為階乘,也就是在前一項(xiàng)分母的基礎(chǔ)上乘以n。(2)在循環(huán)中求得每一項(xiàng),然后對(duì)其進(jìn)行累加求和。國(guó)家二級(jí)(C語言)機(jī)試模擬試卷第2套一、程序填空題(本題共1題,每題1.0分,共1分。)1、使用VC++2010打開考生文件夾下blank1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件blank1.c。在此程序中,函數(shù)fun的作用是:統(tǒng)計(jì)整型變量m中各數(shù)字出現(xiàn)的次數(shù),并存放到數(shù)組a中,其中:a[0]存放0出現(xiàn)的次數(shù),a[1]存放1出現(xiàn)的次數(shù),…,a[9]存放9出現(xiàn)的次數(shù)。例如,若m為14579233,則輸出結(jié)果應(yīng)為:0,1,1,2,1,1,0,1,0,1,請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下的BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdio.h>voidfun(intm,inta[10]){inti,for(i=0;i<10;i++)/*********found*********/【1】=0;while(m>0){/*********found*********/i=【2】;a[i]++;/*********found*********/m=【3】;}}main(){intm,a[10],i,printf("請(qǐng)輸入一個(gè)整數(shù):");scanf("%d",&m),fun(m,a);for(i=0;i<10,i++)printf("%d,",a[i]);printf("\n"),}標(biāo)準(zhǔn)答案:(1)a[i](2)m%10(3)m/10知識(shí)點(diǎn)解析:數(shù)組a各元素初始化為0,用求余和整除相結(jié)合的方法得到數(shù)字的每一位數(shù)字,并用它做為數(shù)組a的下標(biāo),相應(yīng)元素加1。填空1:數(shù)組a的10個(gè)元素賦值為0。填空2:m%10可得到數(shù)m的最后一位數(shù)字。填空3:m/10可使數(shù)字截短,即去掉最后一位。二、程序修改題(本題共1題,每題1.0分,共1分。)2、使用VC++20lO打開考生文件夾下modi1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件modi1.c。在此程序中,函數(shù)fun的功能是求矩陣(二維數(shù)組)a[N][N]中每行的最小值,結(jié)果存放到數(shù)組b中。假如:若a=則結(jié)果應(yīng)為1,5,9,13,請(qǐng)改正函數(shù)fun中指定部位的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要敵動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#inclucle<stdio.h>#defineN4voidfun(inta[][N],intb[]){inti,j;for(i=0,i<N;i++){/*********found*********/b[i]=a[0][0];/*********found*********/for(j=1;j<N-1;j++)/*********found*********/if(b[i]<a[i][j])b[i]=a[i][j];}}main(){inta[N][N]={{1,4,3,2),{8,6,5,7},{11,10,12,9},{13,16,14,15}},b[N];inti,fun(a,b);for(i=0;i<N;i++)printf("%d,",b[i]);printf("\n");}標(biāo)準(zhǔn)答案:(1)b[i]=a[i][0];(2)for(j=1;ja[i][j])知識(shí)點(diǎn)解析:數(shù)組b存放每行的最小值,針對(duì)二維數(shù)組使用二層循環(huán),在第一層循環(huán)的開始將每行的第1個(gè)數(shù)賦給數(shù)組b相應(yīng)的元素,在第二層循環(huán)中,數(shù)組b中的元素依次與本行中的每個(gè)元素進(jìn)行比較,找到一行中的最小值存入數(shù)組b。(1)b[i]存放二級(jí)數(shù)組a每一行中第1個(gè)元素值,表示為a[i][0]。(2)每行元素的第1個(gè)值要和這一行中的每個(gè)元素進(jìn)行比較,條件j三、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)3、使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,請(qǐng)編寫函數(shù)fun,其功能是:將一組得分中,去掉一個(gè)最高分和一個(gè)最低分,然后求平均值,并通過函數(shù)返回。函數(shù)形參a指向存放得分的數(shù)組,形參n中存放得分個(gè)數(shù)(n>2)。例如,若輸入9.98.57.68.59.39.58.97.88.68.4十個(gè)得分,則輸出結(jié)果為:8.687500。注意:部分源程序存在PROG1.C中,請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語句。試題程序:#include<stdio.h>voidNONO();doublefun(doublea[],intn){}main()fdoubleb[10],r,inti;printf("輸入10個(gè)分?jǐn)?shù)放入b數(shù)組中:");for(i=0,i<10;i++)scanf("%1f",&b[i]);printf("輸入的10個(gè)分?jǐn)?shù)是:");for(i=0;i<10;i++)printf("%4.11f",b[i]);printf("\n");r=fun(b,10);printf("去掉最高分和最低分后的平均分:%f\n",r),NONO();}voidNONO(){/*本函數(shù)用于打開文件,輸入數(shù)據(jù)。調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/FILE*fp,*wf,inti,j;doubleb[10],r,fp=fopen("in.dat","r");wf=fopen("out.dat","w");for(i=0;i<10;i++){for(j=0;j<i0;j++){fscanf(fp,"%1f",&b[j]);}r=fun(b,10);fprintf(wf,"%f\n",r);}fclose(fp);fclose(wf);}標(biāo)準(zhǔn)答案:doublefun(doublea[],intn){doublesum=0,max,min;inti;max=min=a[0];for(i=0;ia[i])min=a[i];}sum=sum-max-min;return(sum/(n-2));}知識(shí)點(diǎn)解析:設(shè)定三個(gè)變量sum存放合值,max存放最大值,min存放最小值。max和min都賦為數(shù)組中第一個(gè)元素的值。利用循環(huán)將數(shù)組中元素累加到sum中,并找出最大值和最小值,sum值減去最大值和最小值。函數(shù)返回sum除以元素個(gè)數(shù)-2得平均值。國(guó)家二級(jí)(C語言)機(jī)試模擬試卷第3套一、選擇題(本題共39題,每題1.0分,共39分。)1、以下選項(xiàng)中敘述正確的是()。A、函數(shù)體必須由{開始B、C程序必須由main語句開始C、C程序中的注釋可以嵌套D、C程序中的注釋必須在一行里完成標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:函數(shù)體是函數(shù)首部下面的花括號(hào)內(nèi)的部分,所以函數(shù)休必須由{開始,A項(xiàng)正確。一個(gè)源程序文件可以包括預(yù)處理命令、全局聲明、函數(shù)定義,程序總是從main函數(shù)開始執(zhí)行的,不是rflain語句,B項(xiàng)錯(cuò)誤。C程序中允許兩種注釋,以//開頭的單行注釋;以/*開始,以*/結(jié)束的塊式注釋,D項(xiàng)錯(cuò)誤。函數(shù)可以嵌套,注釋不能嵌套,C項(xiàng)錯(cuò)誤。2、下列方法中,不屬于軟件調(diào)試方法的是()。A、回溯法B、強(qiáng)行排錯(cuò)法C、集成測(cè)試法D、原因排除法標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:軟件調(diào)試主要采用以下三種方法:強(qiáng)行排錯(cuò)法:作為傳統(tǒng)的調(diào)試方法,其過程可概括為設(shè)置斷點(diǎn)、程序暫停、觀察程序狀態(tài)、繼續(xù)運(yùn)行程序?;厮莘ǎ涸摲椒ㄟm合于小規(guī)模程序的排錯(cuò)、即一旦發(fā)現(xiàn)了錯(cuò)誤,先分析錯(cuò)誤征兆,確定最先發(fā)現(xiàn)“癥狀”的位置。原因排除法:原因排除法是通過演繹和歸納,以及二分法來實(shí)現(xiàn)。3、下列定義變量的語句中錯(cuò)誤的是()。A、int_int;B、doubleint_;C、charFor;D、floatUS$;標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C語言規(guī)定,變量的標(biāo)識(shí)符只能由字母、數(shù)字和下劃線3種字符組成,且首字符必須為字母或下劃線。在C語言中大寫字母和小寫字母被認(rèn)為是兩個(gè)不同的字符。選項(xiàng)A定義的變量標(biāo)識(shí)符int和選項(xiàng)B定義的變量標(biāo)識(shí)符int與C語言的關(guān)鍵字int是不同的,是正確的變量標(biāo)識(shí)。選項(xiàng)C定義的變量標(biāo)識(shí)符For與C語言中的關(guān)鍵字for是兩個(gè)不同的標(biāo)識(shí)符,所以選項(xiàng)C是正確的,而選項(xiàng)D包含有特殊字符$,因而其不符合C語言的變量命名規(guī)定。4、若運(yùn)行時(shí)給變量x輸入12,則以下程序的運(yùn)行結(jié)果是()。main(){intx,y;scanf(’’%d’’,&x);y=x>127x+10:x-12;printff(’’%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、以下敘述中正確的是()。A、語句chara[2]={"a","b"};是合法的,定義了一個(gè)包含兩個(gè)字符的數(shù)組B、語句inta[]={0};是不合法的,遺漏了數(shù)組的大小C、語句inta[8]={0};是合法的D、語句chara[3];a="ab";是合法的,因?yàn)閿?shù)組有三個(gè)字符空間的容量,可以保存兩個(gè)字符標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:考查一維數(shù)組以及字符數(shù)組的初始化。初始化的時(shí)候可以只給數(shù)組的前面一部分元素設(shè)定初值,故C正確。字符數(shù)組中的每個(gè)元素為一個(gè)字符,需要用單引號(hào),選項(xiàng)A錯(cuò)。若對(duì)數(shù)組全部元素賦初值時(shí),可以不指定數(shù)組元素的個(gè)數(shù),選項(xiàng)B錯(cuò)。定義字符數(shù)組時(shí)可以將字符串直接賦給該字符數(shù)組,其他情況則不可以,選項(xiàng)D錯(cuò)。答案選C。6、下列程序的輸出結(jié)果是()。#includemain()voidfun(int*a,int*b){inta=1,b=2,*x=&a,*y=&b;{int*k;fun(x,y);k=a;a=b;b:k;)printf("%d%d",a,b);}A、21B、12C、編譯出錯(cuò)D、00標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查函數(shù)調(diào)用時(shí)的參數(shù)傳遞。分析題目可知函數(shù)的形參是指向?qū)崊⒌闹羔?,但main()函數(shù)中調(diào)用fun()函數(shù)時(shí),實(shí)參是指針變量x、y(分別為指向a和b的指針),a、b的值在函數(shù)調(diào)用前后未發(fā)生變化,因而a=1,b=2,即輸出12。7、結(jié)構(gòu)化程序所要求的基本結(jié)構(gòu)不包括()。A、順序結(jié)構(gòu)B、GOTO跳轉(zhuǎn)C、選擇(分支)結(jié)構(gòu)D、重復(fù)(循環(huán))結(jié)構(gòu)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:1966年B0ehm和Jacopini證明了程序設(shè)計(jì)語言僅僅使用順序、選擇和重復(fù)三種基本控制結(jié)構(gòu)就足以表達(dá)出各種其他形式結(jié)構(gòu)的程序設(shè)計(jì)方法。8、有以下定義:structdata{inti;charc;doubled;}x;以下敘述中錯(cuò)誤的是()。A、x的內(nèi)存地址與x.i的內(nèi)存地址相同B、structdata是一個(gè)類型名C、初始化時(shí),可以對(duì)x的所有成員同時(shí)賦初值D、成員i、c和d占用的是同一個(gè)存儲(chǔ)空間標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:i、c、d是結(jié)構(gòu)體變量x中的三個(gè)不同的成員,占用不同的存儲(chǔ)空間。9、設(shè)變量均已正確定義,若要通過scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);語句為變量a1和a2賦數(shù)值10和20,為變量c1和c2賦字符X和Y。下列所示的輸入形式中正確的是(注:口代表空格字符)()。A、10□X□20□YB、10□X20□YC、10口X20YD、10X20□Y標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在使用scanf函數(shù)進(jìn)行輸入數(shù)據(jù)時(shí),輸入的數(shù)據(jù)之間必須用空格、回車符、制表符(Tab鍵)等間隔符隔開。10、有以下程序#includemain(){inta=1,b=0;printf("%d,",b=a+b);printf("%d\n",a=2*b);}程序運(yùn)行后的輸出結(jié)果是()。A、1,2B、1,0C、3,2D、0,0標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:考查數(shù)據(jù)的輸入,printf("%d,",b=a+b);先計(jì)算b=a+b,得出b=1,再輸出b值。語句printf("%d\n",a=2*b);先計(jì)算a=2*b,得出a=2,再輸出a值。所以輸出結(jié)果為A)。11、下面程序的輸出結(jié)果是()。Typedefunion{longx[1];inty[4];charz[10];}M;Mt:main(){printf(’’%d\n",sizeof[t));}A、32B、26C、lOD、4標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:“聯(lián)合體”所占用的內(nèi)存空間為最長(zhǎng)的成員所占用的空間。題中聯(lián)合體的z[10]成員是聯(lián)合體中占空間最長(zhǎng)的成員。12、以下程序中函數(shù)sort的功能是對(duì)a數(shù)組中的數(shù)據(jù)進(jìn)行由大到小的排序voidsort(inta[],intn){inti,j,t;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;sort(&aa[3],5);for(i=0;j<10;i++)ptintf(’’%d,’’,aa[i]);printf(’’\n’’);}程序運(yùn)行后的輸出結(jié)果是()。A、1,2,3,4,5,6,7,8,9,10,B、10,9,8,7,6,5,4,3,2,1,C、1,2,3,8,7,6,5,4,9,10,D、1,2,10,9,8,7,6,5,4,3,標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:程序中sort函數(shù)的功能是對(duì)數(shù)組中的數(shù)據(jù)進(jìn)行從大到小的排序。主函數(shù)main中調(diào)用函數(shù)“sort(&aa[3],5);”,使得數(shù)組aa中從第4個(gè)元素開始的5個(gè)元素進(jìn)行從大到小的排序,數(shù)組aa中的元素變?yōu)椋?,2,3,8,7,6,5,4,9,10。并輸出這些元素。13、以下敘述中不正確的是()。A、在不同的函數(shù)中可以使用相同的名字的變量B、函數(shù)中的形式參數(shù)是局部變量C、在一個(gè)函數(shù)內(nèi)定義的變量只在本函數(shù)范圍內(nèi)有效D、在一個(gè)函數(shù)內(nèi)的復(fù)合語句中定義的變量在本函數(shù)范圍內(nèi)有效標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是變量的作用范圍。選項(xiàng)D)中,在一個(gè)函數(shù)的復(fù)合語句中定義的變量是局部變量,只在定義此變量的復(fù)合語句內(nèi)有效,并不是在整個(gè)函數(shù)體內(nèi)都有效。14、有以下程序:#includemain(){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);}程序運(yùn)行后的輸出結(jié)果是()。A、1,2,1,2B、1,2,2,1C、2,1,2,1D、2,1,1,2標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:程序中定義了兩個(gè)整型變量,然后用兩個(gè)指針分別指向這兩個(gè)整型變量,交換指針,那么原來指向第一個(gè)整數(shù)的指針將指向第二個(gè)整數(shù),原來指向第二個(gè)整數(shù)的指針將指向第一個(gè)整數(shù)。15、有以下程序:#include<stdio.h>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、25C、45D、36標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:統(tǒng)計(jì)1~9九個(gè)數(shù)中的奇數(shù)和,此題考察指向數(shù)組的指針。C語言規(guī)定數(shù)組名代表數(shù)組的首地址,也就是第一個(gè)元素的地址。因此*(t+i)代表數(shù)組的第i+1個(gè)元素。程序運(yùn)行的結(jié)果是1+3+5+7+9=25。16、以下敘述中正確的是()。A、在C語言中,預(yù)處理命令行都以"#"開頭B、預(yù)處理命令行必須位于C源程序的起始位置C、#include必須放在C程序的開頭D、C語言的預(yù)處理不能實(shí)現(xiàn)宏定義和條件編譯的功能標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C語言中,凡是以"#"開頭的都被稱為編譯預(yù)處理行,選項(xiàng)A)正確;預(yù)處理行可以放在C源程序的任何位置,習(xí)慣放在起始位置,選項(xiàng)B)錯(cuò)誤;語句"#include"必須放在使用文件stdio.h中相關(guān)方法的語句之前,但是不一定非要放在C程序開頭,選項(xiàng)C)錯(cuò)誤;預(yù)處理包括宏定義、文件包含和條件編譯等,選項(xiàng)D)錯(cuò)誤;答案選A)。17、下列選項(xiàng)中,不能作為合法常量的是()。A、12340B、1.234e0.4C、12340D、1.234標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:用指數(shù)形式表示的實(shí)型常量需注意兩點(diǎn):①e或E后面的指數(shù)必須是整數(shù);②指數(shù)必須是不超過數(shù)據(jù)表示范圍的正負(fù)整數(shù),并且在e或E前必須有數(shù)字。18、當(dāng)變量c的值不為2、4、6時(shí),值也為"真"的表達(dá)式是A、(c>=2&&c<=6)&&(c%2!=1)B、(c==2)||(c==4)||(c==6)C、(c>=2&&c<=6)&&!(c%2)D、(c>=2&&c<=6)||(c!=3)||(c!=5)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:邏輯或運(yùn)算符中只要有一個(gè)運(yùn)算量為真結(jié)果就是真,當(dāng)c>=2&&c<=6條件不成立時(shí)c的值肯定不是2、3、4、5、6,所以c!=3,與c!=5均成立。所以D選項(xiàng)的結(jié)果一定為真。19、請(qǐng)閱讀以下程序:#include#includevoidfun(intb[]){staticinti=0;do{b[i]+=b[i+1];}while(++i<2);}main(){intk,a[5]={1,3,5,4,9);fun(a);for(k=0;k<5;k++)printf("%d",a[k]);)上面程序的輸出是()。A、13579B、48579C、48549D、48999標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查的是for循環(huán)以及while循環(huán)。fun函數(shù)中定義了靜態(tài)變量i=0,fun(a)使得a[0]=a[0]+a[1]=4,a[1]=a[1]+a[2]=8,此時(shí)i的值變?yōu)?,++i<2不成立,所以do-while循環(huán)結(jié)束,輸出數(shù)組a的各元素即得到48549。20、有以下程序#includetypedefstruct{intb,p;}A;voidf(Ac)/*注意:c是結(jié)構(gòu)變量名*/{intj;c.b+=1;c.p+=2;}main(){inti;Aa={1,2};f(a);printf("%d,%d\n",a.b,a.p);}程序運(yùn)行后的輸出結(jié)果是()。A、1,2B、2,4C、1,4D、2,3標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:暫無解析21、有以下程序:#includeintfun(intX){intP;if(x==0||x==1)return(3);P=x—fun(x一2);returnP;}main(){printf(“%d\n”,fun(7));}程序執(zhí)行后的輸出結(jié)果是()。A、2B、3C、7D、0標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:因?yàn)閒un(intx)是一個(gè)遞歸函數(shù),所以主函數(shù)中fun(7)經(jīng)過3次遞歸調(diào)用,其過程可以描述為“fun(7)=7一fun(5)=7一(5一fun(3))=7一(5一(3一fun(1)))=7一(5一(3—3))=7—5=2”,所以最后輸出結(jié)果為2。因此A選項(xiàng)正確。22、下列關(guān)于二叉樹的敘述中,正確的是()。A、葉子結(jié)點(diǎn)總是比度為2的結(jié)點(diǎn)少一個(gè)B、葉子結(jié)點(diǎn)總是比度為2的結(jié)點(diǎn)多一個(gè)C、葉子結(jié)點(diǎn)數(shù)是度為2的結(jié)點(diǎn)數(shù)的兩倍D、度為2的結(jié)點(diǎn)數(shù)是度為1的結(jié)點(diǎn)數(shù)的兩倍標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:根據(jù)二叉樹的基本性質(zhì)3:在任意一棵二叉樹中,度為0的葉子結(jié)點(diǎn)總是比度為2的結(jié)點(diǎn)多一個(gè)。所以選擇B。23、有以下程序:#includemain(){intx,a=1,b=1;while(1){seanf(“%d”,&x);if(x>0){a*=x;break;}if(X<0){b*=x;continue;}prinff(“%d,%d\n”,a,b);}}程序運(yùn)行時(shí)輸入:一1—2012<回車>,則輸出結(jié)果是()。A、1,2B、2,2C、一1,1D、一2,1標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:分析程序結(jié)構(gòu),在while循環(huán)中,輸入x的值后,若x的值大于0,將a的值累乘x,執(zhí)行break語句跳出循環(huán);若x的值小于0,將b的值累乘x,執(zhí)行continue,進(jìn)行下一個(gè)循環(huán);當(dāng)x的值等于0時(shí),打印a、b的值,進(jìn)入下一個(gè)循環(huán);所以當(dāng)輸入一1、一2后,b累乘為2;輸入0后,打印a、b的值為1,2,再輸入1,a累乘跳出循環(huán),程序運(yùn)行結(jié)束;輸出結(jié)果為1,2,故答案為A。24、有以下程序:#includeintml(intx,inty){if(x<=y)return2*x+1;elseretumy;}intm2(intx,inty){if(x<=y)retum2*y+1;elsereturnx:}main(){inti,t1=10,t2=0;for(i=1;i<=4;i++){t1=m1(i,t1);t2=m2(i,t2);}prinff(“t1=%dt2=%d\n”,t1,t2);}程序運(yùn)行后的輸出結(jié)果是()。A、t1=9t2=4B、t1=4t2=9C、t1=9t2=9D、t1=1t2=4標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:由程序可知,main函數(shù)的for循環(huán)中i的取值為1、2、3、4。tl初值為10,t2初值為0,當(dāng)i=1時(shí),傳入函數(shù)m1參數(shù)為:1、10,因?yàn)?<10,所以函數(shù)ml的返回值為2×1+1=3;傳入函數(shù):m2的參數(shù)為1、0,因?yàn)?>0,所以返回值為1;即第一輪循環(huán)后,tl=3,t2=1。當(dāng)i_2時(shí),傳入函數(shù)m1的參數(shù)為2、3,因?yàn)?<3,所以函數(shù)返回值為2×2+1=5;傳入函數(shù)m2的參數(shù)為2、1,因?yàn)?>1,所以函數(shù)返回值為2;即第二輪循環(huán)后,t1=5,t2=2;當(dāng)i=3時(shí),傳入函數(shù)ml的參數(shù)為3、5,因?yàn)?<5,所以返回值為2×3+1=7;傳入函數(shù)m2的參數(shù)為3、2,因?yàn)?>2,所以返回值為3;即第三輪循環(huán)后,tl=7,t2=3;當(dāng)i=4時(shí),傳入函數(shù)m1的參數(shù)為4、7,因?yàn)?<7,所以函數(shù)返回值為2×4+1=9,傳入函數(shù)m2的參數(shù)為4、3,因?yàn)?>3,所以函數(shù)返回值為4,即第四輪循環(huán)后,t1=9,t2=4。故答案選A(仔細(xì)分析可以發(fā)現(xiàn),對(duì)于m1函數(shù),由于第一次1<10,導(dǎo)致后面每次參數(shù)x都是i,而參數(shù)y都是2×i一1,返回值都是2×i+1;同理,對(duì)于m2函數(shù),由于第一次1>0,導(dǎo)致后面每次參數(shù)x都是i,而y都是i一1,返回值都是i,所以最終結(jié)果為t1=2×4+1,t2=4)。25、有以下程序:#includestruetord{intx,y;}dt[2]={1,2,3,4};main(){struetord*p=dt:printf("%d,",++(P->x));printf("%d\n",++(P->Y));}程序運(yùn)行后的輸出結(jié)果是()。A、3.4B、4,1C、2,3D、1,2標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查結(jié)構(gòu)體數(shù)組的相關(guān)操作。dt為結(jié)構(gòu)體數(shù)組,那么指針p指向了結(jié)構(gòu)體數(shù)組的一個(gè)元素,所以p->x為1,p->y為2,因此結(jié)果為2,3選項(xiàng)C正確。26、若有定義語句charc=’\101’;則變量c在內(nèi)存中占A、1個(gè)字節(jié)B、2個(gè)字節(jié)C、3個(gè)字節(jié)D、4個(gè)字節(jié)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考察字符變量的存儲(chǔ)空間,每個(gè)字符變量被分配一個(gè)字節(jié)的內(nèi)存空間。因此A選項(xiàng)正確。27、以下敘述中正確的是A、在C程序中的八進(jìn)制和十六進(jìn)制,可以是浮點(diǎn)數(shù)B、整型變量可以分為int型、short型、long型和unsigned型四種C、八進(jìn)制數(shù)的開頭要使用英文字母o,否則不能與十進(jìn)制區(qū)分開D、英文大寫字母X和英文小寫字母x都可以作為二進(jìn)制數(shù)字的開頭字符標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:C程序中的實(shí)型常量只有十進(jìn)制一種數(shù)制,所以A錯(cuò)誤,八進(jìn)制數(shù)以0打頭,所以C錯(cuò)誤,C語言中整數(shù)只有十進(jìn)制,八進(jìn)制,十六進(jìn)制三種沒有二進(jìn)制數(shù)制,所以D錯(cuò)誤。28、下面不能作為結(jié)構(gòu)化方法軟件需求分析工具的是A、系統(tǒng)結(jié)構(gòu)圖B、數(shù)據(jù)字典(DD)C、數(shù)據(jù)流程圖(DFD圖)D、判定表標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:結(jié)構(gòu)化方法軟件需求分析工具主要有數(shù)據(jù)流圖、數(shù)據(jù)字典、判定樹和判定表。29、在關(guān)系模型中,每一個(gè)二維表稱為一個(gè)A、關(guān)系B、屬性C、元組D、主碼(鍵)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:關(guān)系模型采用二維表來表示,即每個(gè)二維表稱為一個(gè)關(guān)系。30、下面不屬于軟件需求分析階段主要工作的是A、需求變更申請(qǐng)B、需求分析C、需求評(píng)審D、需求獲取標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:需求分析階段的工作可概括為4個(gè)方面:①需求獲取。②需求分析。③編寫需求規(guī)格說明書。④需求審評(píng)。31、有以下程序:#includemain(){inti=3,j=5,*p=&i,*q=&j,**r;r=&q;i++;(*q)++;printf(’’%d,%d,%d,%d,%d\n’’,i,j,*P,*q,**r);}執(zhí)行后的輸出結(jié)果是()。A、4,6,4,6,6B、5,3,5,3,5C、4,6,4,6,4D、4,6,4,4,6標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查指針及指針的指針,(*q)是對(duì)其指向的地址空間的存儲(chǔ)值的引用,所以(*q)++等同于j++;同時(shí),r指向的具體數(shù)值也會(huì)發(fā)生變化。32、有以下程序:#include#includemain(){inti,len;charb[]=’’WelcometoChina!’’;len=strlen(b);for(i=0;i<len;i++)if(b[i]==’’){strcpy(b,b+i+1);i=0;}pfintf(’’%s\n’’,b);}程序運(yùn)行后的輸出結(jié)果是()。A、toChina!B、WelcomeC、WelcometoChina!D、China標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:for循環(huán)的功能是遍歷字符串的每個(gè)字符,如果碰到字符串中的空格,則用空格后面的字符串覆蓋原有字符串,并重置循環(huán)變量。因此本題的答案是China。33、以下關(guān)于fclose(fp)函數(shù)的敘述正確的是A、當(dāng)程序中對(duì)文件的所有寫操作完成之后,必須調(diào)用fclose(fp)函數(shù)關(guān)閉文件B、當(dāng)程序中對(duì)文件的所有寫操作完成之后,不一定要調(diào)用fclose(fp)函數(shù)關(guān)閉文件C、只有對(duì)文件進(jìn)行輸入操作之后,才需要調(diào)用fclose(fp)函數(shù)關(guān)閉文件D、只有對(duì)文件進(jìn)行輸出操作之后,才能調(diào)用fclose(fp)函數(shù)關(guān)閉文件標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:對(duì)一個(gè)文件操作完成后,要將該文件關(guān)閉,"關(guān)閉"就是使文件指針變量不再指向該文件。程序編寫者應(yīng)該在程序終止之前關(guān)閉所有文件,如果不關(guān)閉,文件將會(huì)丟失數(shù)據(jù)。因?yàn)椋谙蛭募憯?shù)據(jù)時(shí),是先將數(shù)據(jù)輸出到緩沖區(qū),待緩沖區(qū)充滿后才正式輸出給文件。如果當(dāng)數(shù)據(jù)未充滿緩沖區(qū)而程序結(jié)束運(yùn)行,就會(huì)將緩沖區(qū)中的數(shù)據(jù)丟失。用fclose函數(shù)關(guān)閉文件,可以避免這個(gè)問題,它先把緩沖區(qū)中的數(shù)據(jù)輸出到磁盤文件,然后才釋放文件指針變量。所以對(duì)文件的所有寫操作完成之后必須要關(guān)閉文件,A選項(xiàng)正確,B選項(xiàng)錯(cuò)誤。只要對(duì)文件進(jìn)行操作后,都要調(diào)用fclose文件關(guān)閉文件,C、D選項(xiàng)錯(cuò)誤。34、對(duì)于長(zhǎng)度為n的線性表,在最壞情況下,下列各排序法所對(duì)應(yīng)的比較次數(shù)中正確的是()。A、冒泡排序?yàn)閚(n一1)/2B、簡(jiǎn)單插入排序?yàn)閚C、希爾排序?yàn)閚D、快速排序?yàn)閚/2標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在最壞情況下,冒泡排序所需要的比較次數(shù)為n(n—1)/2;簡(jiǎn)單插入排序所需要的比較次數(shù)為n(n-1)/2;希爾排序所需要的比較次數(shù)為O(n1.5);堆排序所需要的比較次數(shù)為O(nlog2n)。35、有如下程序#include<stdio.h>main(){intx=0x13;if(x=0x18)printf("T");printf("F");printf("\n");}程序運(yùn)行后的輸出結(jié)果是A、TFB、TC、FD、TFT標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:x=0x18為賦值表達(dá)式,十六進(jìn)制數(shù)0x18非0,即x非0,if條件成立輸出T,之后再輸出F與回車符。程序運(yùn)行后的輸出結(jié)果是TF,A選項(xiàng)正確。36、設(shè)x=021,y=012,則z=x|y的值是()。A、1B、0C、00011011D、11000010標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題主要考查按位或運(yùn)算。按位或是對(duì)兩個(gè)運(yùn)算對(duì)象相應(yīng)的位進(jìn)行邏輯或運(yùn)算,其運(yùn)算規(guī)則和邏輯或相同,兩個(gè)運(yùn)算對(duì)象只要有一個(gè)是1,則結(jié)果為1。37、以下程序段中,循環(huán)次數(shù)不超過10的是A、inti=10;do{i=i+1;}while(i<0);B、inti=5;do{i+=1;}while(i>0);C、inti=1;do{i+=2;}while(i!=10);D、inti=6;do{i-=2;}while(i!=1);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:do…while循環(huán)語句一般形式為:do{循環(huán)體}while(表達(dá)式),執(zhí)行過程為:首先執(zhí)行循環(huán)體,之后判斷表達(dá)式,成立(非0)則再一次執(zhí)行循環(huán)體,不成立(0)則退出循環(huán)。A選項(xiàng),執(zhí)行函數(shù)體i=11,判斷條件11<0不成立,退出循環(huán),循環(huán)次數(shù)為1,不超過10次,A選項(xiàng)正確。B選項(xiàng)執(zhí)行函數(shù)體i=6,判斷條件為i>0,由于執(zhí)行函數(shù)體時(shí)i在增加,i>0一直成立,程序陷入無限循環(huán),循環(huán)次數(shù)大于10,B選項(xiàng)錯(cuò)誤。C選項(xiàng)執(zhí)行函數(shù)體i=3,判斷條件為i!=10,由于函數(shù)體中i每次增加2,所以永遠(yuǎn)不可能等于10,故程序會(huì)陷入無限循環(huán),循環(huán)次數(shù)大于10,C選項(xiàng)錯(cuò)誤。D選項(xiàng)執(zhí)行函數(shù)體i=4,判斷條件為i!=1,由于函數(shù)體中i每次減少2,所以永遠(yuǎn)不可能等于1,故程序會(huì)陷入無限循環(huán),循環(huán)次數(shù)大于10,D選項(xiàng)錯(cuò)誤。38、有以下程序#include<stdio.h>structtt{intx;structtt*y;}s[3]={1,0,2,0,3,0};main(){structtt*p=s+1;p->y=s;printf("%d,",p->x);p=p->y;printf("%d\n",p->x);}程序運(yùn)行后的輸出結(jié)果是A、2,3B、2,1C、1,2D、3,1標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:結(jié)構(gòu)體tt是一個(gè)遞歸定義,類似于鏈表,通過成員變量y鏈接起來。p=s+1指向s[1]。p->y指向s[2],但現(xiàn)在p->y=s,因此s[2]=s[0],此時(shí)s[]={1.0,2.0,1.0},而p在s[1]位置,因此p->x為2,p=p->y,p指向s[2],因此p->x=1,故打印結(jié)果為2,1。答案為B選項(xiàng)。39、有以下程序:#include<stdio.h>main(){ints,t,A=10;doubleB=6;s=sizeof(A);t=sizeof(B);printf("%d,%d\n",s,t);}在VC6.0平臺(tái)上編譯運(yùn)行,程序運(yùn)行后的輸出結(jié)果是()。A、10,6B、4,4C、2,4D、4,8標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C語言中利用sizeof()函數(shù)判斷數(shù)據(jù)類型長(zhǎng)度,在VC6.0平臺(tái)中,整型int占有4個(gè)字節(jié),double型數(shù)據(jù)占有8個(gè)字節(jié)。二、程序填空題(本題共1題,每題1.0分,共1分。)40、下列給定程序的功能是調(diào)用fun函數(shù)建立班級(jí)通信錄。通信錄中記錄每位學(xué)生的編號(hào)、姓名和電話號(hào)碼。班級(jí)人數(shù)和學(xué)生信息從鍵盤讀入,每個(gè)人的信息作為一個(gè)數(shù)據(jù)塊寫到名為myfile5.dat的二進(jìn)制文件中。請(qǐng)?jiān)诔绦虻南庐嬀€處填入正確的內(nèi)容并將下畫線刪除,使程序得出正確的結(jié)果。注意:部分源程序給出如下。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdio.h>#include<stdlib.h>#defineN5typedefstruer{intnum;charname[10];chartel[10];}STYPE;voidcheck();/*********found*********/intfun(【1】*std){/*********found*********/【2】*fp;inti;if((fp=fopen("myfile5.dat","wb"))==NULL)return(0);printf("\noutputdatatofile!\n");for(i=0;i<N;i++)/*********found*********/fwrite(&std[i],sizeof(STYPE),1,【3】);fclose(fp);return(1);}main(){STYPEs[10]={{1,"aaaaa","111111"},{1,"bbbbb","222222"),{1,"ccccc","333333"),{1,"ddddd","444444"},{1,"eeeee","555555"});intk;k=fun(s);if(k==1){printf("Succeed!");check();)elseprintf("Fail!”);}voidcheck(){FILE*fP;inti;STYPEs[10];if((fp=fopen("myfile5.dat","rb"))==NULL){printf("Fail!\n");exit(0);)printf("\nReadfileandoutputtoscreen:\n");printf("\nnumnametelkn");for(i=0;i<N;i++)(fread(&s[i],sizeof(STYPE),1,fp);printf("%6d%S%s\n",s[i].num,s[i].name,s[i].tel);}fclose(fp);}標(biāo)準(zhǔn)答案:(1)STYPE(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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)論