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

下載本文檔

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

文檔簡(jiǎn)介

國(guó)家二級(jí)(C語(yǔ)言)筆試模擬試卷1(共9套)(共557題)國(guó)家二級(jí)(C語(yǔ)言)筆試模擬試卷第1套一、公共基礎(chǔ)選擇題(本題共10題,每題1.0分,共10分。)1、循環(huán)鏈表的主要優(yōu)點(diǎn)是A、不再需要頭指針了B、從表中任一結(jié)點(diǎn)出發(fā)都能訪問(wèn)到整個(gè)鏈表C、在進(jìn)行插入、刪除運(yùn)算時(shí),能更好的保證鏈表不斷開D、已知某個(gè)結(jié)點(diǎn)的位置后,能夠容易的找到它的直接前件標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:循環(huán)鏈表就是將單向鏈表中最后一個(gè)結(jié)點(diǎn)的指針指向頭結(jié)點(diǎn),使整個(gè)鏈表構(gòu)成一個(gè)環(huán)形,這樣的結(jié)構(gòu)使得從表中的任一結(jié)點(diǎn)出發(fā)都能訪問(wèn)到整個(gè)鏈表。2、棧底至棧頂依次存放元素A、B、C、D,在第五個(gè)元素E入棧前,棧中元素可以出棧,則出棧序列可能是A、ABCEDB、DCBEAC、DBCEAD、CDABE標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:棧操作原則上“后進(jìn)先出”,棧底至棧頂依次存放元素A、B、C、D,則表明這4個(gè)元素中D是最后進(jìn)棧,B、C處于中間,A最早進(jìn)棧。所以出棧時(shí)一定是先出D,再出C,最后出A。3、對(duì)長(zhǎng)度為n的線性表進(jìn)行順序查找,在最壞情況下所需要的比較次數(shù)為A、log2nB、n/2C、nD、n+1標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:對(duì)于長(zhǎng)度為n的有序線性表,在最壞情況下,二分查找只需要比較log2n次,而順序查找需要比較n次。4、在結(jié)構(gòu)化程序設(shè)計(jì)思想提出之前,在程序設(shè)計(jì)中曾強(qiáng)調(diào)程序的效率。與程序的效率相比,人們更重視程序的A、安全性B、一致性C、可理解性D、合理性標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:結(jié)構(gòu)化程序設(shè)計(jì)方法設(shè)計(jì)出的程序具有明顯的優(yōu)點(diǎn)。其一,程序易于理解、使用和維護(hù);其二,提交了編程工作的效率,降低了軟件開發(fā)成本。其中,人們更重視前者。5、模塊獨(dú)立性是軟件模塊化所提出的要求,衡量模塊獨(dú)立性的度量標(biāo)準(zhǔn)則是模塊的A、抽象和信息隱蔽B、局部化和封裝化C、內(nèi)聚性和耦合性D、激活機(jī)制和控制方法標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:模塊的獨(dú)立程序是評(píng)價(jià)設(shè)計(jì)好壞的重要度量標(biāo)準(zhǔn)。衡量軟件的模塊獨(dú)立性使用耦合性和內(nèi)聚性兩個(gè)定性的度量標(biāo)準(zhǔn)。6、軟件開發(fā)的結(jié)構(gòu)化生命周期方法將軟件生命周期劃分成A、定義、開發(fā)、運(yùn)行維護(hù)B、設(shè)計(jì)階段、編程階段、測(cè)試階段C、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編程調(diào)試D、需求分析、功能定義、系統(tǒng)設(shè)計(jì)標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過(guò)程稱為軟件生命周期。它可以分為軟件定義、軟件開發(fā)及軟件運(yùn)行維護(hù)3個(gè)階段。7、在軟件工程中,白箱測(cè)試法可用于測(cè)試程序的內(nèi)部結(jié)構(gòu)。此方法將程序看做是A、路徑的集合B、循環(huán)的集合C、目標(biāo)的集合D、地址的集合標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:軟件的白盒測(cè)試方法是把測(cè)試對(duì)象看做一個(gè)打開的盒子,它允許測(cè)試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)信息,設(shè)計(jì)或選擇測(cè)試用例,對(duì)程序所有邏輯路徑進(jìn)行測(cè)試。8、在數(shù)據(jù)管理技術(shù)發(fā)展過(guò)程中,文件系統(tǒng)與數(shù)據(jù)庫(kù)系統(tǒng)的主要區(qū)別是數(shù)據(jù)庫(kù)系統(tǒng)具有A、特定的數(shù)據(jù)模型B、數(shù)據(jù)無(wú)冗余C、數(shù)據(jù)可共享D、專門的數(shù)據(jù)管理軟件標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:在文件系統(tǒng)中,相互獨(dú)立的記錄其內(nèi)部結(jié)構(gòu)的最簡(jiǎn)單形式是等長(zhǎng)同格式記錄的集合,易造成存儲(chǔ)空間大量浪費(fèi),不方便使用。而在數(shù)據(jù)庫(kù)系統(tǒng)中,數(shù)據(jù)是結(jié)構(gòu)化的,這種結(jié)構(gòu)化要求在描述數(shù)據(jù)時(shí)不僅描述數(shù)據(jù)本身,還要描述數(shù)據(jù)間的關(guān)系,這正是通過(guò)采用特定的數(shù)據(jù)模型來(lái)實(shí)現(xiàn)的。9、數(shù)據(jù)庫(kù)設(shè)計(jì)包括兩個(gè)方面的設(shè)計(jì)內(nèi)容,它們是A、概念設(shè)計(jì)和邏輯設(shè)計(jì)B、模式設(shè)計(jì)和內(nèi)模式設(shè)計(jì)C、內(nèi)模式設(shè)計(jì)和物理設(shè)計(jì)D、結(jié)構(gòu)特性設(shè)計(jì)和行為特性設(shè)計(jì)標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)設(shè)計(jì)包括數(shù)據(jù)庫(kù)概念設(shè)計(jì)和數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)兩個(gè)方面的設(shè)計(jì)內(nèi)容。10、實(shí)體是信息世界中廣泛使用的一個(gè)術(shù)語(yǔ),它用于表示A、有生命的事物B、無(wú)生命的事物C、實(shí)際存在的事物D、一切事物標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:實(shí)體是客觀存在且可以相互區(qū)別的事物。實(shí)體可以是具體的對(duì)象,如一個(gè)學(xué)生,也可以是一個(gè)抽象的事件,如一次出門旅游等。因此,實(shí)體既可以是有生命的事物,也可以是無(wú)生命的事物,但它必須是客觀存在的,而且可以相互區(qū)別。二、選擇題(1分)(本題共10題,每題1.0分,共10分。)11、能將高級(jí)語(yǔ)言程序轉(zhuǎn)換成目標(biāo)語(yǔ)言程序的是______。A、調(diào)試程序B、解釋程序C、編譯程序D、編輯程序標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:用高級(jí)語(yǔ)言編寫的程序稱為“源程序”,而計(jì)算機(jī)只能識(shí)別和執(zhí)行由0和1組成的二進(jìn)制指令,所以高級(jí)語(yǔ)言必須先用—種稱為“編譯程序”的軟件,把源程序翻譯成二進(jìn)制形式的“目標(biāo)程序”。12、______是構(gòu)成C語(yǔ)言程序的基本單位。A、函數(shù)B、過(guò)程C、子程序D、子例程標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:C程序是由函數(shù)構(gòu)成的?!獋€(gè)C源程序至少包含—個(gè)main函數(shù),也可以包含—個(gè)main函數(shù)和若干個(gè)其他函數(shù),因此,函數(shù)是C程序的基本單位。13、可以在C語(yǔ)言中用做用戶標(biāo)識(shí)符的是______。A、voiddefineWORDB、as_b3_123IfC、for-abccasD、2cDoSIG標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:C語(yǔ)言規(guī)定,標(biāo)識(shí)符只能由字母、數(shù)字和下劃線三種符號(hào)組成,而且第—個(gè)字符必須是字母或下劃線。另外還需要注意的是關(guān)鍵字不能作標(biāo)識(shí)符。選項(xiàng)A中void,C中for都為關(guān)鍵字,D中2c以字母開頭。14、若有以下類型說(shuō)明語(yǔ)句:charw;intx;flooaty,z;則表達(dá)式w*x+z-y的結(jié)果為______類型。A、floatB、charC、intD、double標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:在進(jìn)行運(yùn)算時(shí),不同類型的數(shù)據(jù)參加運(yùn)算,需要先將其轉(zhuǎn)換成同—類型的數(shù)據(jù),然后再進(jìn)行運(yùn)算。轉(zhuǎn)換的順序由低到高為:char,short→int→unsigned→long→double←float,故結(jié)果為float型。15、main(){floatx=123.456;printf("%-5.2f\n",x);}以上程序輸出的結(jié)果是______。A、123.4B、123.5C、123.45D、123.46標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:f格式符,用來(lái)輸出實(shí)數(shù),以小數(shù)形式式輸出?!?-m.nf”的含義是:輸出數(shù)據(jù)共占m列,其中n位小數(shù),如果輸出位數(shù)小于m,則右端補(bǔ)空恪。如果總長(zhǎng)度大于列數(shù),則按實(shí)際情況四舍五入輸出。16、下面語(yǔ)句的輸出結(jié)果,是______。printh("%d\n",strlen("\t\"\065\xff\n"));A、14B、8C、5D、輸出項(xiàng)不合法,無(wú)正常輸出標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:在C語(yǔ)言中,以“\”開頭的字符均為轉(zhuǎn)義字符,其中“\”后可跟1~3位八進(jìn)制熟或在“\”后跟字母x及1~2位十六進(jìn)制數(shù),以此來(lái)代表—個(gè)特定的字符。17、下列程序的輸出結(jié)果,是______。main(){inta=0,b=0,c=0;if(++a>0||++b>0)++c;printf("\na=%d,b=%d,c=%d",a,b,c);}A、a=0,b=0,c=0B、a=1,b=1,c=1C、a=1,b=0,c=1D、a=0,b=1,c=1標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:“||”是或運(yùn)算,它有個(gè)“短路”的特點(diǎn)需特別注意,當(dāng)“||”運(yùn)算符左邊的表達(dá)式的值為真時(shí),則程序就不再對(duì)“||”右邊的表達(dá)式的值進(jìn)行運(yùn)算,而是使得整個(gè)表達(dá)式的值直接為真。18、下列程序的輸出結(jié)果是______。main(){inti;for(i=1;i+1;i++){if(i>4){printf("%d",i++);break;}}printf("%d",i++);}A、55B、56C、程序錯(cuò)誤,沒有輸出D、循環(huán)條件永遠(yuǎn)為真,死循環(huán)標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:本程序中有個(gè)for循環(huán),但注意到for循環(huán)的條件是“i+1”,也就是只要i+1的值為真(非零值均為真),就執(zhí)行循環(huán)。當(dāng)i=1的時(shí)候,i+1的值為真,判斷if條件不成立,執(zhí)行i++,輸出i的值為5。19、下列程序的輸出結(jié)果是______。#defineA100main(){inti=0,sun=0;do{if(i==(i/2)*2)continue;sum+i;}while(++i<A);printf("%d\n",sun);}A、2500B、2050C、4D、0標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:本題程序的功能是求1到99之間(包括1和99)所有奇數(shù)之和。程序中的while循環(huán)的終止條件為++i=100,在while循環(huán)體內(nèi),如果i是偶數(shù),則執(zhí)行continue,跳過(guò)這一次循環(huán),執(zhí)行下—次循環(huán),否則求和。最后輸出的值是1到99之間(包括1和99)所有奇數(shù)之和(1+99)*50/2=2500。20、下列程序的輸出結(jié)果是______。main(){inti=3;switch(i){case1:case2:printf("%d",i);case3:case4:break;default:printh("OK";}}A、0B、3C、OKD、沒有任何輸出標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:在題中,i的值為3,由于“case3:”后面沒有break語(yǔ)句,所以繼續(xù)向下執(zhí)行“case4:”后面的語(yǔ)句,由于“case4:”后面的語(yǔ)句為break強(qiáng)行退出switch語(yǔ)句,所以,本題沒有任何輸出。三、選擇題(2分)(本題共30題,每題1.0分,共30分。)21、設(shè)x,y和z都是int型變量,且x=3,y=4,z=5,則下面表達(dá)式中,值為0的表達(dá)式是A、x&&yB、x<=yC、x||++y&&y-zD、!(x<y&&!z||1)標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:該題考查邏輯與“&&”和邏輯或“||”以及邏輯非“!”符號(hào)的用法。選項(xiàng)A)即3&&4為真,選項(xiàng)B)即3<=4為真,選項(xiàng)C)是一個(gè)邏輯或與邏輯與的混合運(yùn)算,只要執(zhí)行了邏輯或左半部分,程序?qū)⒅苯油V箞?zhí)行邏輯或右半部分程序,因?yàn)閤的值為真,此時(shí)選項(xiàng)C)變?yōu)?&&-1為真。選項(xiàng)D)不用計(jì)算,括號(hào)內(nèi)邏輯或右邊的值為1,因而括號(hào)內(nèi)的值為1,再進(jìn)行邏輯非運(yùn)算得0。22、下列程序段中,不能正確賦值的是A、char*p,ch;p=&ch;scanf("%c,&p")B、char*p;p=(char*)malloc(1)scanf("%c",p);C、char*p*p=getchar();D、char*p,ch;p=&ch;*p=getchar();標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:本題考查了字符的輸入函數(shù)getchar和利用scanf函數(shù)輸入一個(gè)字符。用scanf輸入字符時(shí),格式說(shuō)明字符應(yīng)該為%c。本題選項(xiàng)C)因?yàn)橹羔榩沒有賦初值,所以是一個(gè)不定值,不能直接將getchar讀入的字符賦給指針p所指向的字符,所以選項(xiàng)C錯(cuò)誤。23、下列函數(shù)的運(yùn)行結(jié)果是main(){inti=2,p;intj,k;j=i;k=++i;p=f(j,k);printf("%d",p);}intf(inta,intb){intc;if(a>b)c=1;elseif(a==b)c=0;elsec=-1;return(c);}A、-1B、1C、2D、編譯出錯(cuò),無(wú)法運(yùn)行標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:函數(shù)調(diào)用相當(dāng)于f(2,3),程序運(yùn)算應(yīng)得結(jié)果為“-1”。24、現(xiàn)有格式化輸入語(yǔ)句,scanf("x=%d,sumy=%d,linez=%dL",&x,&y,&z),現(xiàn)在已知在輸入數(shù)據(jù)后,x,y,z的值分別是12,34,45則下列的數(shù)據(jù)是正確的輸入格式的是A、12,34,45B、x=12,y=34,z=45C、x=12C,sumy=34,z=45D、x=12,sumy=34,linez=45標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:若在scarf的格式化控制串中插入了其他字符,則在輸入時(shí)要求按一一對(duì)應(yīng)的位置原樣輸入這些字符。格式化輸入函數(shù)必須嚴(yán)格按照雙引號(hào)里面的格式進(jìn)行輸入。在格式化輸出函數(shù)中,格式控制串中除了合法的格式說(shuō)明外,可以包含任意的合法字符。25、有以下程序#include<stdlib.h>structNODE{intnum;structNODE*next;};main(){structNODE*p,*q,*r;p=(structNODE*)malloc(sizeof(structNODE));q=(structNODE*)malloc(sizeof(structNODE));r=(structNODE*)malloc(sizeof(structNODE));p->num=10;q->num=20;r->num=30;p->next=q;q->next=r;printf("%d\n",p->num+q->next->num);}程序運(yùn)行后的輸出結(jié)果是A、10B、20C、30D、40標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:該題中考查的是簡(jiǎn)單的單鏈表,下圖就是賦完值后的示意圖:容易看到p->num=10,而q->next就是r,所以q->next->num=30,故答案為40。26、設(shè)有以下說(shuō)明語(yǔ)句structex{intX;floaty;charz;}example;則下面的敘述中不正確的是A、struct結(jié)構(gòu)體類型的關(guān)鍵字B、example是結(jié)構(gòu)體類型名C、x,y,z都是結(jié)構(gòu)體成員名D、structex是結(jié)構(gòu)體類型名標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:本題中,structex是結(jié)構(gòu)體類型名,example是結(jié)構(gòu)體變量名。27、若fp是指向某文件的指針,且已讀到文件末尾,則庫(kù)函數(shù)feof(fp)的返回值是A、EOFB、-1C、1D、NULL標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:EOF是文本文件的文件結(jié)束標(biāo)志,NULL是打開文件錯(cuò)誤的時(shí)候返回值。foef(fp)用來(lái)判斷文件位置指針是否在文件末尾,文本文件和二進(jìn)制文件均可以使用此函數(shù)。如果遇到文件結(jié)束就返回1,否則返回0。28、在位運(yùn)算中,操作數(shù)右移一位,其結(jié)果相當(dāng)于A、操作數(shù)乘以2B、操作數(shù)除以2C、操作數(shù)乘以4D、操作數(shù)除以4標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:右移運(yùn)算符“>>”是雙目運(yùn)算符。其功能是把“>>”左邊的運(yùn)算數(shù)的各二進(jìn)位全部右移若干位,“>>”右邊的數(shù)指定移動(dòng)的位數(shù)。例如:設(shè)a=15,a>>2表示把000001111右移為00000011(+進(jìn)制3)。應(yīng)該說(shuō)明的是,對(duì)于有符號(hào)數(shù),在右移時(shí),符號(hào)位將隨同移動(dòng)。當(dāng)為正數(shù)時(shí),最高位補(bǔ)0,而為負(fù)數(shù)時(shí),符號(hào)位為1,最高位是補(bǔ)0或是補(bǔ)1取決于編譯系統(tǒng)的規(guī)定。TurboC和很多系統(tǒng)規(guī)定為補(bǔ)1,右移1位相當(dāng)于除以2。29、運(yùn)行下面程序,若從鍵盤輸入字母“b”,則輸出結(jié)果是charc;c=getchar();if(c>=’a’&&c<=’u’)c=c+4;elseif(c>=’v’&&c<=’z’)c=c-21;elseprintf("inputerror!\n");putchar(c);A、gB、wC、fD、d標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:本題考查了對(duì)字符的輸入、輸出操作及算術(shù)和關(guān)系運(yùn)算。因?yàn)閎>=’a’并且b<=’u’,所以執(zhí)行第一個(gè)if語(yǔ)句,c=c+4,c的值為字符’f’。30、設(shè)有程序段intk=10;while(k=0)k=k-1;則下面描述中正確的是A、while循環(huán)執(zhí)行10次B、循環(huán)是無(wú)限循環(huán)C、循環(huán)體語(yǔ)句一次也不執(zhí)行D、循環(huán)體語(yǔ)句執(zhí)行一次標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:本題中,首先將0賦給k,表達(dá)式變?yōu)?,跳出循環(huán),沒有執(zhí)行循環(huán)體語(yǔ)句。解答本題的關(guān)鍵是掌握while語(yǔ)句。31、請(qǐng)閱讀以下程序:main(){inta=5,b=0,c=0;if(a=b+c)printf(”"***\n");elseprintf("$$$\n");}以上程序A、有語(yǔ)法錯(cuò)不能通過(guò)編譯B、可以通過(guò)編譯但不能通過(guò)連接C、輸出***D、輸出$$$標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:解答本題時(shí),先判斷if語(yǔ)句,因?yàn)閍=b+c不成立,則執(zhí)行else語(yǔ)句。32、執(zhí)行下面的程序后,a的值為main(){inta,b;for(a=1,b=1;a<=100;a++){if(b>=20)break;if(b%3==1){b+=3;continue;}b-=5;}}A、7B、8C、9D、10標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:本題主要考查了循環(huán)語(yǔ)句中break和continue語(yǔ)句的使用。break語(yǔ)句的作用是結(jié)束本層循環(huán),而continue語(yǔ)句的作用是結(jié)束本次循環(huán)直接進(jìn)入到下次循環(huán)。33、有以下程序:fun(inti,intj){i++;j++;returni+j;}main(){inta=1,b=2,c=3;c+=fun(a,b)+a;printf("%d,%d,%d\n",a,b,c);}A、1,2,9B、2,3,10C、1,2,10D、2,3,9標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:本題主要考查了函數(shù)的調(diào)用作為表達(dá)式來(lái)使用,同時(shí)函數(shù)調(diào)用是按值傳遞的,函數(shù)中對(duì)形參的操作并不能影響到實(shí)參。函數(shù)fun(1,2)的返回值為5,而實(shí)參a的值保持不變?nèi)詾?,所以c+=fun(1,2)+1執(zhí)行后,c=3+5+1=9。34、下列程序的輸出結(jié)果是#include"stdio.h"#defineN3#defineM3voidfun(inta[M][N]){printf("%d\n",*(a[1]+2));}main(){inta[M][N];inti,j;for(i=0;i<M;i++)for(j=0;j<N;j++)a[i][j]=i+j-(i-j);fun(a);}A、3B、4C、5D、6標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:若有以下定義:inta[3][4],i,j;且當(dāng)0<=i<3,0<=j<4,則可以有以下幾種方式來(lái)引用數(shù)組中的第i行,第j列的元素:a[i][j],*(a[i]+j),*(*(a+i)+j),(*(a+i))[j],*(&a[0][0]+4*i+j)。35、若有說(shuō)明:inta[3][4]={0};則下面正確的敘述是A、只有元素a[0][0]可得到初值0B、此說(shuō)明語(yǔ)句不正確C、數(shù)組a中各元素都可得到初值,但其值不一定為0D、數(shù)組a中每個(gè)元素均可得到初值0標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:二維數(shù)組初始化時(shí)允許只對(duì)部分元素賦初值,其余自動(dòng)為0。36、對(duì)以下說(shuō)明語(yǔ)句的正確理解是inta[10]={6,7,8,9,10};A、將5個(gè)初值依次賦給a[1]至a[5]B、將5個(gè)初值依次賦給a[0]至a[4]C、將5個(gè)初值依次賦給a[6]至a[10]D、因?yàn)閿?shù)組長(zhǎng)度與初值的個(gè)數(shù)不相同,所以此語(yǔ)句不正確標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:本題中,表達(dá)式將5個(gè)初值賦給a[0]至a[4],后面的部分,將自動(dòng)會(huì)被依次補(bǔ)零處理。37、設(shè)p1和p2是指向一個(gè)int型一維數(shù)組的指針變量,k為int型變量,則不能正確執(zhí)行的語(yǔ)句是A、k=*p1+*p2B、p2=k;C、p1=p2;D、k=*p1*(*p2);標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:本題主要考查了一維數(shù)組指針的賦值和用指針引用數(shù)組元素進(jìn)行運(yùn)算。選項(xiàng)B)中p2為指向int型變量的指針。而k為int型變量,不能將int型變量直接賦值給指向int型變量的指針,所以選項(xiàng)B)錯(cuò)誤。38、以下程序有錯(cuò),錯(cuò)誤原因是main(){int*p,i;char*q,ch;p=&i;q=&ch;*p=40;*p=*q;……}A、p和q的類型不一致,不能執(zhí)行*p=*q;語(yǔ)句B、*p中存放的是地址值,因此不能執(zhí)行*p=40;語(yǔ)句C、q沒有指向具體的存儲(chǔ)單元,所以*q沒有實(shí)際意義D、q雖然指向了具體的存儲(chǔ)單元,但該單元中沒有確定的值,所以執(zhí)行*p=*q;沒有意義,可能會(huì)影響后面語(yǔ)句的執(zhí)行結(jié)果標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:該程序的執(zhí)行過(guò)程是:首先聲明整型指針變量p和整型變量i,字符型指針變量q和字符型變量ch,將i的地址賦給指針變量p,將ch的地址賦給指針變量q,將40賦給*p,此時(shí),q已經(jīng)指向了一個(gè)具體的存儲(chǔ)單元,但ch的值不確定,即*p沒有確定的值,所以不能執(zhí)行*p=*q語(yǔ)句。39、有如下程序:longfib(intn){if(n>2)return(fib(n-1)+fib(n-2));elsereturn(2);}main(){printf("%d\n",fib(3));}該程序的輸出結(jié)果是A、2B、4C、6D、8標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:本題考查函數(shù)的遞歸調(diào)用。fib(3)=fib(2)+fib(1),而fib(2)的返回值為2,fib(1)的返回值也為2,故輸出的fib(3)的值為4。40、下列說(shuō)法中錯(cuò)誤的是A、靜態(tài)局部變量的初值是在編譯時(shí)賦予的,在程序執(zhí)行期間不再賦予初值B、若全局變量和某一函數(shù)中的局部變量同名,則在該函數(shù)中,此全局變量被屏蔽C、靜態(tài)全局變量可以被其他的編輯單位所引用D、所有自動(dòng)類局部變量的存儲(chǔ)單元都是在進(jìn)入這些局部變量所在的函數(shù)體(或復(fù)合語(yǔ)句)時(shí)生成,退出其所在的函數(shù)體(或復(fù)合語(yǔ)句)時(shí)消失標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:靜態(tài)全局變量只限于本文件所使用。靜態(tài)全局變量只限于本文件所使用,不能被其他的文件所引用。41、以下程序的輸出結(jié)果是#include<stdio.h>main(){unionun{inti;longk;charc;};structbyte{inta;longb;unionunc;}r;printf("%d\n",sizeof(r));}A、10B、13C、7D、8標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:本題主要考查了結(jié)構(gòu)體和共用體數(shù)據(jù)的存儲(chǔ)形式。共用體的一個(gè)特點(diǎn)是所有數(shù)據(jù)成員共用一段存儲(chǔ)單元,而結(jié)構(gòu)體每個(gè)數(shù)據(jù)成員都單獨(dú)占據(jù)一段存儲(chǔ)單元。共用體所占存儲(chǔ)單元的大小由長(zhǎng)度最長(zhǎng)的數(shù)據(jù)成員的長(zhǎng)度決定。題中共用體變量c占據(jù)4個(gè)字節(jié)的長(zhǎng)度,結(jié)構(gòu)體r所占存儲(chǔ)空間的大小為int(2個(gè)字節(jié))+long(4個(gè)字節(jié))+共用體c(4個(gè)字節(jié))=10個(gè)字節(jié),所以答案為A)。42、閱讀下面程序,則執(zhí)行后的結(jié)果是#include"stdio.h"main(){charstr[]="tomeetme",*p;for(p=str;p<str+7;p+=2)putchar(*p);printf("\n");}.A、tomeetmeB、tmemC、oeteD、tome標(biāo)準(zhǔn)答案:2知識(shí)點(diǎn)解析:存放字符串的字符數(shù)組的名字就是這個(gè)字符串的首地址。本題的功能是對(duì)于字符串“tomeetme”進(jìn)行選擇式輸出,從第一個(gè)字母開始,每輸出一個(gè)字符即跳過(guò)一個(gè)。43、閱讀以下程序及對(duì)程序功能的描述,其中正確的描述是#include<stdio.h>main(){FILE*in,*out;charch,infile[10],outfile[10];printf("Entertheinfilename:\n");scanf("%s",infile);printf("Entertheoutfilename:\n");scanf("%s",outfile);if((in=fopen(infile,"r"))==NULL){printf("cannotopeninfile\n");exit(0);}if((out=fopen(outfile,"w"))==NULL){printf("cannotopenoutfile\n");exit(0);}while(!feof(in))fputc(fgetc(in),out);fclose(in);fclose(out);}A、程序完成將磁盤文件的信息在屏幕上顯示的功能B、程序完成將兩個(gè)磁盤文件合二為一的功能C、程序完成將一個(gè)磁盤文件復(fù)制到另一個(gè)磁盤文件中D、程序完成將兩個(gè)磁盤文件合并并在屏幕上輸出標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:本題中,最主要的是掌握幾個(gè)有關(guān)文件的函數(shù)的應(yīng)用。函數(shù)名:fopen功能:打開一個(gè)文件調(diào)用方式FILE*fp;fp=fopen(文件名,使用文件方式);函數(shù)名:feof功能:檢查文件是否結(jié)束調(diào)用方式:feof(FILE*fp);函數(shù)名:fputc功能:把一個(gè)字符寫到磁盤文件上去調(diào)用方式:fputc(ch,fp)(ch是要輸出的字符,fp是從指定的文件讀入一個(gè)字符,該文件必須是以讀或讀寫方式打開的調(diào)用方式:ch=fgetc(fp)(ch是字符變量,fp是文件指針變量);函數(shù)名:fclose功能:關(guān)閉一個(gè)文件調(diào)用方式:fclose(文件指針)。44、以下敘述中正確的是A、程序應(yīng)盡可能短B、為了編程的方便,應(yīng)當(dāng)根據(jù)編程人員的意圖使程序的流程隨意轉(zhuǎn)移C、雖然注釋會(huì)占用較大篇幅,但程序中還是應(yīng)有盡可能詳細(xì)的注釋D、在TURBOC環(huán)境下,運(yùn)行的程序就是源程序標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:本題主要考查了C程序編譯、運(yùn)行等基本概念。選項(xiàng)A)、C)程序的長(zhǎng)度沒有什么限制,所以不正確;選項(xiàng)B)程序應(yīng)該遵循結(jié)構(gòu)化程序設(shè)計(jì)的理念,不能使程序流程任意的轉(zhuǎn)移,這樣不利于程序的理解和執(zhí)行;選項(xiàng)D)運(yùn)行的程序是經(jīng)過(guò)編譯后的二進(jìn)制文件,而不是源程序。45、以下敘述不正確的是A、一個(gè)C源程序可由一個(gè)或多個(gè)函數(shù)組成B、一個(gè)C源程序必須包含一個(gè)main函數(shù)C、C程序的基本組成單位是函數(shù)D、在C程序中,注釋說(shuō)明只能位于一條語(yǔ)句的后面標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:本題考查C語(yǔ)言的基本基礎(chǔ)知識(shí)。在C程序中,注釋用符號(hào)“/*”開始,而以符號(hào)“*/”結(jié)束。程序的注釋可以放在程序的任何位置。通常將注釋放在程序的開始,以說(shuō)明本程序的功能;或者放在程序的某個(gè)語(yǔ)句后面,以對(duì)此語(yǔ)句的功能進(jìn)行說(shuō)明。無(wú)論將注釋放有何處,在程序進(jìn)行編譯時(shí),編譯程序不會(huì)處理注釋的內(nèi)容,且注釋內(nèi)容也不會(huì)出現(xiàn)在目標(biāo)程序中。46、下面對(duì)C語(yǔ)言的描述中,正確的是A、函數(shù)一定有返回值,否則無(wú)法使用函數(shù)B、C語(yǔ)言函數(shù)既可以嵌套定義又可以遞歸調(diào)用C、在C語(yǔ)言中,調(diào)用函數(shù)時(shí),只能將實(shí)參的值傳遞給形參D、C語(yǔ)言程序中有調(diào)用關(guān)系的所有函數(shù)都必須放在同一源程序文件中標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:函數(shù)不一定有返回值(void類型),C語(yǔ)言規(guī)定,在一個(gè)函數(shù)的內(nèi)部不能再定義函數(shù),函數(shù)可以遞歸調(diào)用,一個(gè)C程序允許由多個(gè)文件組成,C語(yǔ)言支持函數(shù)的外部調(diào)用,不一定有調(diào)用關(guān)系的所有函數(shù)都放在同一個(gè)源程序文件中。選項(xiàng)A)函數(shù)不一定有返回值,選項(xiàng)B)函數(shù)不可以嵌套定義,選項(xiàng)D)函數(shù)可以外部調(diào)用。47、下面函數(shù)的功能是char*fun(char*strl,char*str2){while((*strl)&&(*str2++=*strl++));returnstr2;}A、求字符串的長(zhǎng)度B、比較兩個(gè)字符串的大小C、將字符串str1復(fù)制到字符串str2中D、將字符串str1接續(xù)到字符串str2中標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:while語(yǔ)句的一般形式為:while(表達(dá)式)語(yǔ)句;其中表達(dá)式是循環(huán)條件,語(yǔ)句為循環(huán)體,while語(yǔ)句的語(yǔ)義是:計(jì)算表達(dá)式的值,當(dāng)值為真(非0)時(shí),執(zhí)行循環(huán)體語(yǔ)句。本題中邏輯與符號(hào)連接的表達(dá)式值為真,*str2++=*strl++語(yǔ)句是將strl的內(nèi)容逐個(gè)復(fù)制到str2字符串。48、已知各變量的類型說(shuō)明如下:intk,a,b;unsignedlongw=5;doublex=1.42;則以下不符合C語(yǔ)言語(yǔ)法的表達(dá)式是A、x%(-3)B、w+=-2C、k=(a=2,b=3,a+b)D、a+=a-=(b=4)*(a=3)標(biāo)準(zhǔn)答案:1知識(shí)點(diǎn)解析:“%”是求余運(yùn)算符或模運(yùn)算符,“%”兩側(cè)均應(yīng)為整型數(shù)據(jù),選項(xiàng)A)中的x是double型數(shù)據(jù)。49、以下敘述中正確的是A、預(yù)處理命令行必須位于源文件的開頭腦B、在源文件的一行上可以多條預(yù)處理命令C、宏名必須用大寫字母表示D、宏替換不占用程序的運(yùn)行時(shí)間標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:選項(xiàng)A)預(yù)處理命令行通常位于源文件的開頭,但不是必須的;選項(xiàng)B)在源文件的一行上只能有一條預(yù)處理命令;選項(xiàng)C)宏名一般習(xí)慣用大寫字母表示,以與變量名相區(qū)別,但不是必須的;選項(xiàng)D)宏替換不占用程序的運(yùn)行時(shí)間,只占編譯時(shí)間。50、設(shè)有如下定義:structsk{intn;floatx;}data,*p;若要使p指向data中的n域,正確的賦值語(yǔ)句是A、p=&data.n;B、*p=data.n;C、p=(structsk*)&data.n;D、p=(structsk*)data.n:標(biāo)準(zhǔn)答案:4知識(shí)點(diǎn)解析:本題主要考查了結(jié)構(gòu)體變量引用成員數(shù)據(jù)的方法,主要有以下幾種:結(jié)構(gòu)體變量名.成員名或結(jié)構(gòu)體指針->成員名的方法來(lái)引用結(jié)構(gòu)體成員。四、公共基礎(chǔ)填空題(本題共5題,每題1.0分,共5分。)51、在樹形結(jié)構(gòu)中,樹根結(jié)點(diǎn)沒有【】。標(biāo)準(zhǔn)答案:前件知識(shí)點(diǎn)解析:在樹形結(jié)構(gòu)中,每一個(gè)結(jié)點(diǎn)只有一個(gè)前件,稱為父結(jié)點(diǎn),沒有前件的結(jié)點(diǎn)只有一個(gè),稱為樹的根結(jié)點(diǎn);每一個(gè)結(jié)點(diǎn)可以有多個(gè)后件,它們都稱為該結(jié)點(diǎn)的子結(jié)點(diǎn)。沒有后件的結(jié)點(diǎn)稱為葉子結(jié)點(diǎn)。52、Jackson結(jié)構(gòu)化程序設(shè)計(jì)方法是英國(guó)的M.Jackson提出的,它是一種面向【】的設(shè)計(jì)方法。標(biāo)準(zhǔn)答案:數(shù)據(jù)結(jié)構(gòu)知識(shí)點(diǎn)解析:結(jié)構(gòu)化分析方法主要包括:面向數(shù)據(jù)流的結(jié)構(gòu)化分析方法(SA-Structuredanalysis),面向數(shù)據(jù)結(jié)構(gòu)的Jackson方法(JSD-Jacksonsystemdevelopmentmethod)和面向數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)化數(shù)據(jù)系統(tǒng)開發(fā)方法(DSSD-Datastructuredsystemdevelopmentmethod)。53、面向?qū)ο蟮哪P椭校罨镜母拍钍菍?duì)象和【】。標(biāo)準(zhǔn)答案:類知識(shí)點(diǎn)解析:面向?qū)ο竽P椭?,最基本的概念是?duì)象和類。對(duì)象是現(xiàn)實(shí)世界中實(shí)體的模型化;將屬性集和方法集相同的所有對(duì)象組合在一起,可以構(gòu)成一個(gè)類。54、軟件設(shè)計(jì)模塊化的目的是【】。標(biāo)準(zhǔn)答案:降低復(fù)雜性知識(shí)點(diǎn)解析:模塊化是指解決一個(gè)復(fù)雜問(wèn)題時(shí)自頂向下逐層把軟件系統(tǒng)劃分成若干模塊的過(guò)程,由此分解來(lái)降低復(fù)雜性。55、數(shù)據(jù)模型按不同應(yīng)用層次分成3種類型,它們是概念數(shù)據(jù)模型、【】和物理數(shù)據(jù)模型。標(biāo)準(zhǔn)答案:邏輯數(shù)據(jù)模型知識(shí)點(diǎn)解析:數(shù)據(jù)是現(xiàn)實(shí)世界符號(hào)的抽象,而數(shù)據(jù)模型(datamodel)則是數(shù)據(jù)特征的抽象,它從抽象層次上描述了系統(tǒng)的靜態(tài)特征、動(dòng)態(tài)行為和約束行為,為數(shù)據(jù)庫(kù)系統(tǒng)的信息表示與操作提供一個(gè)抽象的框架。數(shù)據(jù)模型按不同的應(yīng)用層次分成3種類型,它們是概念數(shù)據(jù)模型(conceptualdatamodel)、邏輯數(shù)據(jù)模型(logicdatamodel)、物理數(shù)據(jù)模型(physicaldatamodel)。五、填空題(本題共13題,每題1.0分,共13分。)56、以下程序的輸出結(jié)果是【】。main(){inti=010,j=10;printf("%d,%d\n",i,j);}標(biāo)準(zhǔn)答案:8,10知識(shí)點(diǎn)解析:以0開頭的是八進(jìn)制數(shù),輸出時(shí)將其轉(zhuǎn)換成十進(jìn)制數(shù)。57、若從鍵盤輸入58,則以下程序輸出的結(jié)果是【】。main(){inta;scanf("%d",&a);if(a>50)printf("%d",a);if(a>40)printf("%d",a);if(a>30)printf("%d",a);}標(biāo)準(zhǔn)答案:585858知識(shí)點(diǎn)解析:本題考查對(duì)if語(yǔ)句的掌握,當(dāng)輸入58以后,程序中的3個(gè)if語(yǔ)句都成立,所以分別輸出58。58、現(xiàn)有如下定義:structaa{inta;floatb;charc;}*p;現(xiàn)需用malloc函數(shù)動(dòng)態(tài)的申請(qǐng)一個(gè)structaa類型大小的空間(由p指向),則定義的語(yǔ)句為:【】。標(biāo)準(zhǔn)答案:p=(structaa*)malloc(sizeof(structaa));知識(shí)點(diǎn)解析:ANSIC標(biāo)準(zhǔn)規(guī)定malloc函數(shù)的返回值類型為void*,函數(shù)的調(diào)用形式為:malloc(size)要求size的類型為unsignedint。由于返回類型為void*,所以在調(diào)用函數(shù)時(shí),必須利用強(qiáng)制轉(zhuǎn)換將其轉(zhuǎn)換為所需要的類型。59、下列程序的輸出結(jié)果是16.00,請(qǐng)?zhí)羁?。main(){inta=9,b=2;floatx=【】,y=1,1,z;z=a/2+b*x/y+1/2;printf("%5.2f\n",z);}標(biāo)準(zhǔn)答案:6.6知識(shí)點(diǎn)解析:本題最后一條語(yǔ)句,表示以浮點(diǎn)格式輸出z的值,寬度為5,其中包含2位小數(shù),應(yīng)該注意的是,兩個(gè)整型運(yùn)算結(jié)果仍為整型,如1/2的結(jié)果為0,對(duì)本題可逐步求解:16.00=9/2+2*x/1.1+1/216.00=4+2*x/1.1+012.00=2*x/1.1所以,x的值為6.6。60、下面程序的功能是:計(jì)算1~10之間的奇數(shù)之和與偶數(shù)之和,請(qǐng)?zhí)羁铡?include<stdio.h>main(){inta,b,c,i;a=c=0;for(i=0;i<=10;i+=2){a+=i;【】;c+=b;}printf("偶數(shù)之和=%d\n",a);printf("奇數(shù)之和=%d\n",c-11);}標(biāo)準(zhǔn)答案:b=i+1知識(shí)點(diǎn)解析:本題考查了for循環(huán)語(yǔ)句的執(zhí)行過(guò)程。i+=2是修正表達(dá)式,執(zhí)行一次循環(huán)體后i的值就增加2,i的初始值為0,每次加2之后和累加至a,所以a的值就是1~10之間的偶數(shù)之后;b的值是1~11之間的奇數(shù)和,但在輸出b值時(shí)c去掉多加的11,即為1~10之間的奇數(shù)之和。61、下面程序的運(yùn)行結(jié)果是【】。#include<stdio.h>#defineSIZE12main(){chars[SIZE];inti;for(i=0;i<SIZE;i++)s[i]=’A’+i+321;sub(s,7,SIZE-1);for(i=0;i<SIZE;i++)printf("%c",s[i]);printf("\n");}sub(char*a,inttl,intt2){charch;while(t1<t2){ch=*(a+t1);*(a+t1)=*(a+t2);*(a+t2)=ch;t1++;t2--;}}標(biāo)準(zhǔn)答案:abcdefglkjih知識(shí)點(diǎn)解析:本題主要考查了字符變量可參與的運(yùn)算。因?yàn)樽址谟?jì)算機(jī)中是以ASCII碼的形式存放的,所以字符變量可看作整型變量來(lái)處理,如參與算術(shù)運(yùn)算等,某字符的大寫字母的ASCII碼值比它對(duì)應(yīng)的小寫字母ASCII碼值小32。62、以下程序運(yùn)行結(jié)果是【】。#include<stdio.h>longfunc(intx){longp;if(x==0‖x==1)return(2);p=x*func(x-1);return(p);}main(){printf("%d\n",func(4));}標(biāo)準(zhǔn)答案:48知識(shí)點(diǎn)解析:本題主要考查的是函數(shù)的遞歸調(diào)用,遞歸的終止條件是x==0或x==1,然后用已知值逐步遞推向上求未知值,直到得到最終的結(jié)果。func(4)=4*func(3);func(3)=3*func(2);func(2)=2*func(1);func(1)=2;所以func(2)=2*2=4;func(3)=3*4=12;fune(4)=4*12=48。63、下面函數(shù)的功能是將一個(gè)字符串的內(nèi)容顛倒過(guò)來(lái),請(qǐng)?zhí)羁?。voidfun(charstr[]){inti,j,k;for(i=0,j=【】;i<j;i++,j--){k=str[i];str[i]=str[j];str[j]=k;}}標(biāo)準(zhǔn)答案:strlen(str)-1知識(shí)點(diǎn)解析:程序中的for循環(huán)就是用來(lái)完成串反序的,所以應(yīng)該對(duì)循環(huán)的條件進(jìn)行初始化,所以在[18]應(yīng)該填入strlen(str)-1。注意,在串反序的時(shí)候,不應(yīng)該把串結(jié)束符‘\0’也反序。64、閱讀下面程序,則程序的執(zhí)行結(jié)果為【】。#include"stdio.h"fun(intk,int*p){inta,b;if(k==1‖k==2)*p=1;else{fun(k-1,&a);fun(k-2,&b);*p=a+b;}}main(){intx;fun(6,&x);printf("%d\n",x);}標(biāo)準(zhǔn)答案:8知識(shí)點(diǎn)解析:函數(shù)可以被遞歸調(diào)用,但是不能遞歸定義。有返回值的函數(shù)調(diào)用可以出現(xiàn)在表達(dá)式可以出現(xiàn)的任何地方。65、設(shè)有定義“struct{inta;floatb;charc;}abc,*p_abc=&abc;”,則對(duì)結(jié)構(gòu)體成員a的引用方法可以是abc.a和p_abc【】a。標(biāo)準(zhǔn)答案:->知識(shí)點(diǎn)解析:若結(jié)構(gòu)體變量abc有成員a,并有指針p_abc指向結(jié)構(gòu)變量abc,則引用變量abc成員a的標(biāo)記形式有abc.a和p_abc->a。66、以下程序是求矩陣a,b的和,結(jié)果存入矩陣c中,并按矩陣形式輸出,請(qǐng)?zhí)羁铡?include<stdio.h>main(){inta[3][4]={13,-2,7,5},{1,0,4,-3},{6,8,0,2}};intb[3][4]={{-2,0,1,4},{5,-1,7,6},{6,8,0,2}};inti,j,c[3][4];for(i=0;i<3;i++)for(j=0;j<4;j++)c[i][j]=【】;for(i=0;i<3;i++){for(j=0;j<4;j++)printf("%3d",c[i][j]);printf("\n");}}標(biāo)準(zhǔn)答案:a[i][j]+b[i][j]知識(shí)點(diǎn)解析:此題是雙重for循環(huán)結(jié)構(gòu)應(yīng)用在了二維數(shù)組中。外層for循環(huán)用來(lái)控制二維數(shù)組的行,內(nèi)層for循環(huán)控制二維數(shù)組的列。67、下面程序是指從終端讀入的20個(gè)字符放入字符數(shù)組中,然后利用指針變量輸出上述字符串,請(qǐng)?zhí)羁铡?include<stdio.h>main(){inti;chars[21],*p;for(i=0;i<20;i++)s[i]=getchar();s[i]=【】;p=【】;while(*p)putchar(*p++);}標(biāo)準(zhǔn)答案:\0’s知識(shí)點(diǎn)解析:本題選通過(guò)for循環(huán)從鍵盤讀入20個(gè)字符,然后在最后賦一定值’\0’后為結(jié)束標(biāo)志,再使指針p指向字符串的首地址。最后通過(guò)while循環(huán)對(duì)字符串進(jìn)行掃描并輸出。68、以下涵數(shù)rotate的功能是:將a所指N行N列的二維數(shù)組中的最后一行放到b所指二維數(shù)組的第0列中,把a(bǔ)所指二維數(shù)組中的第0行放到b所指二維數(shù)組的最后一列中,b所指二維數(shù)組中其他數(shù)據(jù)不變。#defineN4voidrotade(inta[][N],intb[][N]){inti,j;for(i=0;i<N;i++){b[i][N-1]=【】;【】=a[N-1][i];}}標(biāo)準(zhǔn)答案:a[0][i]b[i][o]知識(shí)點(diǎn)解析:b[i][N-1]=a[0][i]實(shí)現(xiàn)把a(bǔ)所指二維數(shù)組中的第0行放到b所指二維數(shù)組的最后一列中,b[i][0]=a[N-1][i]實(shí)現(xiàn)將a所指N行N列的二維數(shù)組中的最后一行放到b所指二維數(shù)組的第0列中。國(guó)家二級(jí)(C語(yǔ)言)筆試模擬試卷第2套一、公共基礎(chǔ)選擇題(本題共10題,每題1.0分,共10分。)1、下列敘述中正確的是()。A、算法的執(zhí)行效率與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)無(wú)關(guān)B、算法的空間復(fù)雜度是指算法程序中指令(或語(yǔ)句)的條數(shù)C、算法的有窮性是指算法必須能在執(zhí)行有限個(gè)步驟之后終止D、以上3種描述都不對(duì)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:算法的執(zhí)行效率與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)密切相關(guān)。算法的空間復(fù)雜度是指算法執(zhí)行過(guò)程中所需的存儲(chǔ)空間。2、數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是指()。A、數(shù)據(jù)所占的存儲(chǔ)空間B、數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的存放形式C、數(shù)據(jù)在計(jì)算機(jī)中的順序存儲(chǔ)方式D、存儲(chǔ)在計(jì)算機(jī)外存中的數(shù)據(jù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu),又稱為數(shù)據(jù)的物理結(jié)構(gòu),是數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的存放形式,數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)有順序結(jié)構(gòu)、鏈?zhǔn)浇Y(jié)構(gòu)、散列結(jié)構(gòu)和索引結(jié)構(gòu)等。3、棧和隊(duì)列的共同點(diǎn)是()。A、都是先進(jìn)先出B、都是先進(jìn)后出C、只允許在端點(diǎn)處插入和刪除元素D、沒有共同特點(diǎn)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:棧和隊(duì)列都是操作受限制的線性表,只允許在端點(diǎn)插入和刪除。不同點(diǎn)是:棧只允許在表的一端進(jìn)行插入和刪除操作,而隊(duì)列允許在表的一端進(jìn)行插入操作,而在另一端進(jìn)行刪除操作。4、有下列二叉樹,對(duì)此二叉樹中序遍歷的結(jié)果為()。A、ABCDEFB、BDAECFC、ABDCEFD、ABCDFE標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:對(duì)二又樹的中序遍歷是指:首先遍歷左子樹,然后訪問(wèn)根結(jié)點(diǎn),最后遍歷右子樹。在遍歷左,右子樹時(shí),注意依舊按照“左子樹—根結(jié)點(diǎn)—右于樹”的順序。5、對(duì)長(zhǎng)度為n的線性表進(jìn)行順序查找,在最壞情況下需要比較的次數(shù)為()。A、125B、n/2C、nD、n+1標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:對(duì)線性表進(jìn)行順序查找時(shí),從表中的第一個(gè)元素開始,將給定的值與表中逐個(gè)元素的關(guān)鍵字進(jìn)行比較,直到兩者相符,查找到所要找的元素為止。在最壞情況下,要查找的元素是表的最后一個(gè)元素或查找失敗,這兩種情況都需要將這個(gè)元素與表中的所有元素進(jìn)行比較,因此比較次數(shù)為n。6、源程序的文檔化不包括()。A、符號(hào)名的命名要有實(shí)際意義B、正確的文檔形式C、良好的視覺組織D、正確的程序注釋標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:源程序的文檔化主要包括3點(diǎn):①符號(hào)名應(yīng)具有一定實(shí)際的含義,便于理解程序功能;②正確的程序注釋;③良好的視覺組織(利用空格、空行、縮進(jìn)等技巧使程序?qū)哟吻逦?。7、下列描述中正確的是()。A、軟件工程只是解決軟件項(xiàng)目的管理問(wèn)題B、軟件工程主要解決軟件產(chǎn)品的生產(chǎn)率問(wèn)題C、軟件工程的主要思想是強(qiáng)調(diào)在軟件開發(fā)過(guò)程中需要應(yīng)用工程化原則D、軟件工程只是解決軟件開發(fā)過(guò)程中的技術(shù)問(wèn)題標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:軟件工程是指將工程化的思想應(yīng)用于軟件的開發(fā)、應(yīng)用和維護(hù)的過(guò)程,包括軟件開發(fā)技術(shù)和軟件工程管理。8、為了提高軟件模塊的獨(dú)立性,模塊之間最好是()。A、控制耦合B、公共耦合C、內(nèi)容耦合D、數(shù)據(jù)耦合標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:耦合性與內(nèi)聚性是模塊獨(dú)立性的兩個(gè)定性標(biāo)準(zhǔn),是互相關(guān)聯(lián)的。在程序設(shè)計(jì)中,各模塊間的內(nèi)聚性越強(qiáng),則耦合性越弱。一般較優(yōu)秀的軟件設(shè)計(jì),應(yīng)盡量做到高內(nèi)聚、低耦合,有利于提高模塊的獨(dú)立性。9、數(shù)據(jù)庫(kù)系統(tǒng)的核心是()。A、數(shù)據(jù)模型B、數(shù)據(jù)庫(kù)管理系統(tǒng)C、數(shù)據(jù)庫(kù)D、數(shù)據(jù)庫(kù)管理員標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)系統(tǒng)由數(shù)據(jù)庫(kù)(數(shù)據(jù))、數(shù)據(jù)庫(kù)管理系統(tǒng)(軟件)、數(shù)據(jù)庫(kù)管理員(人員)、硬件平臺(tái)(硬件)、軟件平臺(tái)5個(gè)部分構(gòu)成。其中數(shù)據(jù)庫(kù)管理系統(tǒng)是數(shù)據(jù)庫(kù)系統(tǒng)的核心,它負(fù)責(zé)數(shù)據(jù)庫(kù)中的數(shù)據(jù)組織,數(shù)據(jù)操縱、數(shù)據(jù)錐護(hù)、控制及保護(hù)和數(shù)據(jù)服務(wù)等工作。10、待排序的關(guān)鍵碼序列為(33,18,9,25,67,82,53,95,12,70),要按關(guān)鍵碼值遞增的順序排序,采取以第一個(gè)關(guān)鍵碼為基準(zhǔn)元素的快速排序法,第一趟排序后關(guān)鍵碼33被放到第()個(gè)位置。A、3B、5C、7D、9標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:快速排序的基本思想是;從表中選取一個(gè)元素(如本題中的33),將表中小于此元素的移到前面,大于此元素的移到后面.結(jié)果把線性表分割成兩部分(兩個(gè)子表),此元素插入到其分界線的位置處。然后分別對(duì)兩個(gè)子表再次分割……本題中33作為分割的中界線,第一趟排序后排在比它小的18、9、25、12后面。二、選擇題(1分)(本題共10題,每題1.0分,共10分。)11、請(qǐng)讀程序:#include<stdio.h>main(){inta;floatb,c;scanf("%2d%3f%4f",&a,&b,&c);printf("\na=%d,b=%f,c=%f\n",a,b,c)}若運(yùn)行時(shí)從鍵盤上輸入987643210則上面程序的輸出結(jié)果是______。A、a=98,b=75,c=4321B、a=10,b=432,c=8765C、a=98,b=765.000000c=4321.000000D、a=98,b=765.0,c=4321.000000標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:scanf()把用戶從鍵盤錄入的數(shù)字的第1、2位存入整型變量a;把第3、4、5位存入單精度實(shí)型變量b,把第6、7、8、9位存入單精度實(shí)型變量c,用戶錄入的第10位被scanf()遺棄。這時(shí)變量a、b、c的值分別為:98、765.000000、4321.000000。12、請(qǐng)選出以下程序的輸出結(jié)果______。#include<stdio.h>sub(x,y,z)intx,y,*z;{*z=y-x;}main(){inta,b,c;sub(10,5,&A);sub(7,a,&b);sub(a,b,&c);printf("%d,%d,%d\n",a,b,c);}A、5,2,3B、-5,-12,-7C、-5,-12,-17D、5,-2,-7標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:sub()函數(shù)的作用是將形參y和x的差賦給了z指向的那個(gè)內(nèi)存地址,所以在sub(10,5,&a),10和5屬于值傳遞,a是屬于地址傳遞,也就是a與z指向了同—個(gè)存儲(chǔ)單元,在執(zhí)行函數(shù)后,s的值隨*z變化,所以此次函數(shù)披調(diào)用后,a的值為y-x=-5,同理可知,在sub(7,a,&b)后,b的值發(fā)生變化,其值為-5-7=12,在sub(a,b,&c)后,c的值發(fā)生變化,其值為-12-(-5)=-7。13、設(shè)整型數(shù)i=5,則printf("%d"i+++++i);的輸出為______。A、10B、11C、12D、語(yǔ)法錯(cuò)誤標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C語(yǔ)言中有基本的算術(shù)運(yùn)算符(+、-、*、/)還包括自增自減運(yùn)算符(++、-),在C語(yǔ)言解析表達(dá)式時(shí),它總是進(jìn)行貪婪咀嚼,這佯,該表達(dá)式就被解析為i+++++i,顯然該表達(dá)式不合C語(yǔ)言語(yǔ)法。14、若要用下面的程序片段使指針變量p指向—個(gè)存儲(chǔ)整型變量的動(dòng)態(tài)存儲(chǔ)單元int*p;p=______malloc(sizeof(int));則應(yīng)填入______。A、intB、int*C、(*int)D、(int*)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:不論p是指向什么類型的指針變量,都可以通過(guò)強(qiáng)制類型轉(zhuǎn)換的方法使之為在型一致,強(qiáng)制類型轉(zhuǎn)換的格式為(數(shù)據(jù)類型*)。15、下面程序輸出的結(jié)果是______。main(){inti=5,j=9,x;x=(i=j(luò)?i:(j=7));printf("\n%d,%d",i,j)}A、5,7B、5,5C、語(yǔ)法錯(cuò)誤D、7,5標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:條件表達(dá)式的—般形式為:表達(dá)式1?表達(dá)式2:表達(dá)式3;先求解表達(dá)式1,若為真則求解表達(dá)式2;若表達(dá)式1的值為假,則求解表達(dá)式3。本題中先判斷i=j(luò),不等,執(zhí)行j=7;然后執(zhí)行x=7。故本題為A。16、若有以下定義和語(yǔ)句:inta[]={1,2,3,4,5,6,7,8,9,10),*p=a;則值為3的表達(dá)式是______。A、P+=2,*(p++)B、p+=2,*++pC、p+=3,*p++D、p+=2,++*p標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:引用—個(gè)數(shù)組元素,可以用:(1)下標(biāo)法,如a[i]形式;(2)指針法,如*(a+i)或*(p+i)。數(shù)組的下標(biāo)從0開始,值為3的數(shù)組元素是a[2]。B、C的內(nèi)容為a[3],D將[2]前自加,結(jié)果為4。17、設(shè)a、b和c都是int型變量,且a=3、b=4、c=5,則下面的表達(dá)式中,值為0的表達(dá)式是______。A、’a’&&’b’B、a<=bC、a||+c&&b-cD、!((a<b)&&!c||1)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:選項(xiàng)A:’a’&&’b’是字符a與b的相與,不為0;選項(xiàng)B:a<=b,由題中變量賦值可知,結(jié)果為1。選項(xiàng)C:a||+c&&b-c,結(jié)果為1;選項(xiàng)D:!((a<b)&&!c||1),運(yùn)算結(jié)果為0。18、設(shè)有如下程序#include<stdio.h>main(){int**k,*j,i=100j=&i;k=&j;printf("%d\n",**k);}上述程序的輸出結(jié)果是______。A、運(yùn)行錯(cuò)誤B、100C、i的地址D、j的地址標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:j=&i,j的值就是i的地址,*j=100,將j的地址賦給k,這時(shí)*k=j,那么,**k=*j,而*j=100,所以**k=100,最后的打印結(jié)果應(yīng)當(dāng)為100。19、設(shè)有以下語(yǔ)句,其中不是對(duì)a數(shù)組元素的正確引用的是:______(其中0≤i≤0)inta[10]={O,12,3,4,5,6,7,8,9},*p=a;A、a[p-a}B、*(&a[i])C、p[i]D、*(*(a+i)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:觀察程序可知,a實(shí)際上就是數(shù)組a的首地址,所以“*(a+i)”表示的就是數(shù)組a中的第i個(gè)元素的值,進(jìn)而,我們可以知道*(*(a+i))必然不是對(duì)a數(shù)組元素的正確引用。20、以下程序運(yùn)行后,輸出結(jié)果為______。main(){inta[2][3]{1,3,5,7,9,11}*s{2]**pp,*p;s[0]=a[0],s[1]=a[1]pp=sp=(int*)malloc(sizeof(int));**pp=s[1][1];p=*pp;printf("%d\n",*p);}A、1B、7C、9D、11標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:s是—個(gè)含有兩個(gè)元素的指針數(shù)組,pp是—個(gè)指向指針變量的指針,s[0]是指向二維數(shù)組a行下標(biāo)為0的元素的首地址,即a[0][0]的地址,s[1]為a[1][0]的地址。pp的值為s[o]的地址。*pp=s[1][1])后,a[0][0]的值將被賦值為a[1][1]的值,執(zhí)行p*pp;后,p中將是s[0]的值,最后的輸出語(yǔ)句將輸出地址s[0])所指向的數(shù)據(jù),即時(shí)a[0][0]。三、選擇題(2分)(本題共20題,每題1.0分,共20分。)21、若變量已正確定義,下列正確的程序段是()。A、while(ch=getchar()==’\N’)putchar(ch);B、while((ch=getchar())==’\n’)putchar(ch);C、while((ch=getchar())!=’\N’)putchar(ch);D、while((ch=getchar())!=’\n’)putchar(ch);標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查兩個(gè)知識(shí)點(diǎn):①C語(yǔ)言用’\n’這個(gè)字符常量表示換行;②函數(shù)getchar()的作用是從終端輸入一個(gè)字符,當(dāng)遇到換行時(shí)結(jié)束輸入。22、若有下列定義,則對(duì)a數(shù)組無(wú)素地址的正確引用是()。inta[5],*p=a;A、p+5B、*a+1C、&a+1D、&a[0]標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查如何引用數(shù)組元素的地址。選項(xiàng)A)中,p+5引用的是a[5]的地址,而數(shù)組a只有5個(gè)元素,即a[0]、a[1]、a[2]、a[3]、a[4],所以引用錯(cuò)誤;選項(xiàng)B)中,*a+1指的是將數(shù)組a的第一個(gè)元素加1;選項(xiàng)C)中,這種引用方式錯(cuò)誤;選項(xiàng)D)中,&a[0]引用的是數(shù)組的首地址。23、若有定義:"inta[2][3];"則對(duì)a數(shù)組的第i行第j列無(wú)素的正確引用為()。A、*(*(a+i)+j)B、(a+i)[j]C、*(a+i+j)D、*(a+i)+j標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查如何通過(guò)地址來(lái)引用數(shù)組元素。通過(guò)地址來(lái)引用數(shù)組元素的方法有下列5種:①a[i][j];②*(a[i]+j);③*(*(a+i)+j);④*(a[i])[j];⑤*(&a[0][0]+3*i+j)。24、下列選項(xiàng)中,當(dāng)x為大于1的奇數(shù)時(shí),值為0的表達(dá)式是()。A、x%2==1B、x/2C、x%2!=0D、x%2==0標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:因?yàn)閤的值為大于1的奇數(shù),所以x除以2的余數(shù)等于1。所以選項(xiàng)D)等于關(guān)系表達(dá)式的結(jié)果為假,即等于0。25、下列敘述中不正確的是()。A、在C語(yǔ)言中調(diào)用函數(shù)時(shí),只能把實(shí)參的值傳送給形參,形參的值不能傳送給實(shí)參B、在C的函數(shù)中,最好使用全局變量C、外部變量可以在函數(shù)之間傳遞數(shù)據(jù)D、自動(dòng)變量實(shí)質(zhì)上是一個(gè)函數(shù)內(nèi)部的局部變量標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:編譯時(shí),編譯系統(tǒng)不為局部變量分配內(nèi)存單元,而是在程序運(yùn)行中,當(dāng)局部變量所在的函數(shù)被調(diào)用時(shí),編譯系統(tǒng)根據(jù)需要要臨時(shí)分配內(nèi)存,調(diào)用結(jié)束空間釋放;全局變量一經(jīng)定義,編譯系統(tǒng)為其分配固定的內(nèi)存單元,在程序運(yùn)行的自始至終都占用固定的單元。在考慮內(nèi)存不定的情況下,最好使用全局變量。26、定義下列結(jié)構(gòu)體(聯(lián)合)數(shù)組:structst{charname[15];intage;}a[10]={"ZHAO",14,"WANG",15,"LIU",16,"ZHANG",17};執(zhí)行語(yǔ)句printf["%d,%c",a[2].age,*(a[3].name+2))的輸出結(jié)果為()。A、15,AB、16,HC、16,AD、17,H標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題主要考查結(jié)構(gòu)體數(shù)組。a[2].age為結(jié)構(gòu)體a[2]的age成員,即160a[3].name為指向結(jié)構(gòu)體a[3]的name成員的第一個(gè)元素的指針,即指向“Z”,(a[3].name+2)將指針后移兩位指向第三個(gè)元素“A”,*(a[3]).name+2))是取指針?biāo)赶虻刂返膬?nèi)容。27、設(shè)有下列語(yǔ)句inta=1,b=2,c;c=a^(b<<2);執(zhí)行后,C的值為()。A、6B、7C、8D、9標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:變量b的初值等于2,所以表達(dá)式b<<2表示b的值二進(jìn)制左移兩位,即擴(kuò)大4倍,所以變量b的等于8。然后與a的值1進(jìn)行異或運(yùn)算,得9。28、有下列程序:#include<stdio.h>main(){charc1,c2,c3,c4,c5,c6;scanf("%c%c%c%c",&c1,&c2,&c3,&c4);c5=getchar();c6=getchar();putchar(c1);putchar(c2);printf("%c%c\n",c5,c6);}程序運(yùn)行后,若從鍵盤輸入(從第1列開始)123<CR>45678<CR>則輸出結(jié)果是()。A、1267B、1256C、1278D、1245標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:當(dāng)用scanf函數(shù)從鍵盤愉入數(shù)據(jù)時(shí),每行數(shù)據(jù)的末尾按下回車鍵(Enter鍵)之前,可以任意修改。但按下回車鍵putchar(c1)(Enter鍵)之后,scanf函數(shù)即接受了這一行數(shù)據(jù),不能再回去修改。所以本題中,當(dāng)輸入123<CR>時(shí),變量c1、c2、c3的值分別為1、2、3,當(dāng)輸入45678<CR>時(shí),變量c5、c6的值4和5。所以用輸出函數(shù)putchar(c1)輸出1,putchar(c2)輸出2,printf("%c%c\n,c5,c6)輸出45。所以選項(xiàng)D)為正確答案。29、若有下列說(shuō)明和語(yǔ)句,則對(duì)結(jié)構(gòu)體變量st中成員i的引用方式不正確的是()。Structstu{inti;intname;}st,*p;p=&st;A、st.iB、*p.iC、(*p).iD、p->i標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題主要考查結(jié)構(gòu)指針:p=&st,訪問(wèn)結(jié)構(gòu)體的成員,可以通過(guò)結(jié)構(gòu)變量訪問(wèn),即st.1,也可以用等價(jià)的指針形式,即(*p).i和p->i。30、字符串"\\\"ABCDEF\"\\"的長(zhǎng)度是()。A、15B、10C、7D、8標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題涉及字符串最基本的兩個(gè)概念:①字符串的長(zhǎng)度是指字符串中字符的個(gè)數(shù),但不包括字符串結(jié)束符;②以反斜杠“\”開頭的特殊字符序列,意思是把反斜杠后面的字符序列轉(zhuǎn)換成特定的含義,而不是原來(lái)的含義,不包含在字符串長(zhǎng)度之內(nèi),“\”連同后面的字符為一個(gè)長(zhǎng)度。31、下列選項(xiàng)中,值為1的表達(dá)式是()。A、1-’0’B、1-’\0’C、’1’-0D、’\0’-’0’標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在C程序中,字符量可參與任何整數(shù)運(yùn)算。字符參與運(yùn)算時(shí),首先要將字符轉(zhuǎn)換為對(duì)應(yīng)的ASCII碼值再參與整數(shù)運(yùn)算。字符’1’對(duì)應(yīng)的ASCII碼值是49,字符’0’對(duì)應(yīng)的ASCII碼值是48,字符’\0’是字符串結(jié)束標(biāo)識(shí)符NULL,其對(duì)應(yīng)的ASCII碼值是0。32、有下列程序:fun(intx){intp;if(x==0‖x==1)return(3);p=x-fun(x-2);returnp;}main(){printf("%d\n",fun(7));}執(zhí)行后輸出的結(jié)果是()。A、7B、3C、2D、0標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:因?yàn)樵诤瘮?shù)fun(intx)中,如果參數(shù)x等于0或1時(shí),返回值3。否則p=x-fun(x-2)這是一個(gè)遞歸函數(shù),所以在主函數(shù)調(diào)用fun(7)時(shí),其過(guò)程為:"fun(7)=7-fun(5)=7-(5-fun(3))=7-(5-(3-fun(1)))=7-(5-(3-3))=7-5=2",所以最后的輸出結(jié)果為2。33、下列程序的輸出結(jié)果是()。#include<stdio.h>intfun(intx){intp;if(x==0‖x==1)return3;elsep=x-fun(x-2);returnp;}voidmain(){printf("\n%d",fun(5));}A、5B、3C、7D、1標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查函數(shù)的遞歸調(diào)用。在函數(shù)遞歸調(diào)用時(shí),fun(5):a=5-fun(3)->fun3=a=3-fun(1)->fun(1):a-3,反推回去fun(3):a=3-3=0->fun(5):a=5-0=5,最后的計(jì)算結(jié)果為5。34、下列程序的輸出結(jié)果是()。point(char*pt);main(){charb[4]={’a’,’c’,’s’,’f},*pt=b;pt=point(pt);printf("%c\n",*pt);}point(char*p){p+=3;returnp;}A、sB、cC、fD、a標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查函數(shù)調(diào)用時(shí)的參數(shù)傳遞。函數(shù)point的參數(shù)為字符指針,當(dāng)執(zhí)行函數(shù)point時(shí),剛開始指針p指向“a”,經(jīng)過(guò)+3操作后,指針p指向“f”所以最后的輸出結(jié)果是f。35、已有定義int(*q)(),指針q可以()。A、指向函數(shù)的入口地址B、代表函數(shù)的返回值C、表示函數(shù)的類型D、表示函數(shù)返回值的類型標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查的是指向函數(shù)的指針。函數(shù)指針的定義方式是:類型標(biāo)識(shí)符(*指針變量名)()。其中,“類型標(biāo)識(shí)符”為函數(shù)返回值的類型;“指針”指向函數(shù)的入口地址。36、下列程序的輸出結(jié)果是()。#include<stdio.h>#include<string.h>main(){chara[]="\n123\\";printf("%d,%d\n",strlen(a),sizeof(a));}A、5,6B、5,5C、6,6D、6,5標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:轉(zhuǎn)義字符’\n’表示換行,’\\’表示反斜杠,函數(shù)strlen()是計(jì)算字符串的長(zhǎng)度,不包括文件結(jié)束標(biāo)志(’\0’),函數(shù)sizeof()統(tǒng)計(jì)字符串所占的字節(jié)數(shù)。37、下列選項(xiàng)中不會(huì)引起二義性的宏定義是()。A、#defineS(x)X*XB、#defineS(x)(x)*(x)C、#defineS(x)(x*x)D、#defineS(x)((x)*(x))標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查帶參數(shù)的宏的替換。有些參數(shù)表達(dá)式必須加括號(hào),否則,在實(shí)參表達(dá)式替換時(shí),會(huì)出現(xiàn)錯(cuò)誤。38、若有運(yùn)算符:>、*=、<<、%、sizeof,則它們按優(yōu)先級(jí)(由低至高)的正確排列次序?yàn)?)。A、*=<<>%sizeofB、<<*=>%sizeofC、%=><<sizeof%D、*=><<%sizeof標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題主要考查算術(shù)運(yùn)算的優(yōu)先級(jí)。順序如下;*=、>、<<、%、sizeof的優(yōu)先級(jí)依次遞增。39、在C語(yǔ)言中,下列關(guān)于文件操作的敘述正確的是()。A、對(duì)文件操作必須先關(guān)閉文件B、對(duì)文件操作必須先打開文件C、對(duì)文件操作順序沒有統(tǒng)一規(guī)定D、以上全錯(cuò)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查對(duì)文件的操作。文件打開后才可以對(duì)文件進(jìn)行操作,使用結(jié)束后要關(guān)閉文件。對(duì)文件的操作都是順序讀寫,即從文件的第一個(gè)數(shù)據(jù)開始,依次進(jìn)行讀寫。40、利用fseek函數(shù)可實(shí)現(xiàn)的操作是()。A、實(shí)現(xiàn)文件的順序讀寫B(tài)、改變文件的位置指針C、實(shí)現(xiàn)文件的隨機(jī)讀寫D、以上答案均正確標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:改變文件位置指針函數(shù)fseek()的功能是:①改變文件的位置指針;②輔助實(shí)現(xiàn)文件的順序讀寫;③輔助實(shí)現(xiàn)文件的隨機(jī)讀寫。四、公共基礎(chǔ)填空題(本題共5題,每題1.0分,共5分。)41、測(cè)試用例包括輸入值集和【】值集。標(biāo)準(zhǔn)答案:輸出知識(shí)點(diǎn)解析:軟件測(cè)試用例是為了有效發(fā)現(xiàn)軟件缺陷而編寫的包含測(cè)試目的、測(cè)試步驟、期望測(cè)試結(jié)果的特定集合。正確認(rèn)識(shí)和設(shè)計(jì)軟件測(cè)試用例可以提高軟件測(cè)試的有效性,便于測(cè)試質(zhì)量的度量,增強(qiáng)測(cè)試過(guò)程的可管理性。軟件測(cè)試用例包括:輸入值集和輸出值集。測(cè)試用例是軟件測(cè)試的核心。42、某二叉樹中度為2的結(jié)點(diǎn)有18個(gè),則該二叉樹中有【】個(gè)葉子結(jié)點(diǎn)。標(biāo)準(zhǔn)答案:19知識(shí)點(diǎn)解析:在任意一棵二叉樹中,度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)。43、數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu),線性鏈表屬于【】。標(biāo)準(zhǔn)答案:存儲(chǔ)結(jié)構(gòu)知識(shí)點(diǎn)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)是指反映數(shù)據(jù)元素之間邏輯關(guān)系的數(shù)據(jù)結(jié)構(gòu);數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是指數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空間中的存放形式。在數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)中,不僅要存放各數(shù)據(jù)元素的信息,還需要存放各數(shù)據(jù)元素之間前后件關(guān)系的信息。44、在關(guān)系模型中,把數(shù)據(jù)看成一個(gè)二維表,每一個(gè)二維表稱為一個(gè)【】。標(biāo)準(zhǔn)答案:關(guān)系知識(shí)點(diǎn)解析:在關(guān)系模型中,把數(shù)據(jù)看成一個(gè)二維表,每一個(gè)二維表稱為一個(gè)關(guān)系。表中的每一列稱為一個(gè)屬性,相當(dāng)于記錄中的一個(gè)數(shù)據(jù)項(xiàng),對(duì)屬性的命名稱為屬性名;表中的一行稱為一個(gè)元組,相當(dāng)于記錄值。45、數(shù)據(jù)庫(kù)設(shè)計(jì)分為以下6個(gè)設(shè)計(jì)階段:需求分析階段、【】、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、實(shí)施階段、運(yùn)行和維護(hù)階段。標(biāo)準(zhǔn)答案:概念設(shè)計(jì)階段知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)設(shè)計(jì)分為以下6個(gè)設(shè)計(jì)階段:需求分析階段、概念設(shè)計(jì)階段、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、實(shí)施階段及數(shù)據(jù)庫(kù)運(yùn)行和維護(hù)階段。五、填空題(本題共6題,每題1.0分,共6分。)46、閱讀下面程序段,則執(zhí)行后輸出的結(jié)果是【】。#include"stdio.h"main(){charfun(char,int);chara=’A’;intb=13;a=fun(a,b);putchar(a);}charfun(chara,intb){chark;k=a+b;returnk;}標(biāo)準(zhǔn)答案:N知識(shí)點(diǎn)解析:函數(shù)說(shuō)明語(yǔ)句中的類型名必須與函數(shù)返回值的類型一致。本題實(shí)現(xiàn)的是在字符“A”的ASCII碼值上加上一個(gè)常數(shù),使之變成另一個(gè)ASCII碼值,從而輸出字符。47、閱讀下面語(yǔ)句,則程序的執(zhí)行結(jié)果是【】。#include"stdio.h"main(){inta=-1,b=1,k;if((++a<0)&&!(b--<=0))printf("%d,%d\n",a,b);elseprintf("%d,%d\n",b,a);}標(biāo)準(zhǔn)答案:1,0知識(shí)點(diǎn)解析:與運(yùn)算兩邊的語(yǔ)句必須同時(shí)為真的,結(jié)果才為真。當(dāng)執(zhí)行完if((++a<0)&&!(b--<=0))時(shí),a,b的值已經(jīng)發(fā)生了變化。48、以下程序的輸出結(jié)果是【】。fun(intx,inty,intz){z=x*x+y*y;}main(){inta=31fun(6,3,a)printf("%d",a)}標(biāo)準(zhǔn)答案:31知識(shí)點(diǎn)解析:在函數(shù)調(diào)用時(shí),形參值的改變,不會(huì)改變實(shí)參值。49、以下程序的輸出結(jié)果是【】。main(){chars[]="ABCD",*p;for(p=s+1;p<s+4;p++)printf("%s\n",p);}標(biāo)準(zhǔn)答案:BCDCDD知識(shí)點(diǎn)解析:本題考查指向字符串的指針的運(yùn)算方法。指針變量p首先指向字符串中的第一個(gè)字符A,執(zhí)行p=s+1后,p指向字符串中的第二個(gè)字符B,然后輸出值“BCD”并換行,依次執(zhí)行循環(huán)語(yǔ)句。50、以下程序的輸出結(jié)果是【】。voidreverse(inta[],intn){inti,t;for(i=0;i<n/2;i++){t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}}main(){intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;reverse(b,8);for(i=6;i<10;i++)s+=b[i];printf("%d\n",s);}標(biāo)準(zhǔn)答案:22知識(shí)點(diǎn)解析:在main函數(shù)中,調(diào)用reverse函數(shù)將b數(shù)組中的前8個(gè)成員進(jìn)行互置,執(zhí)行完畢后,b數(shù)組中的成員為{8,7,6,5,4,3,2,1,9,10

溫馨提示

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

評(píng)論

0/150

提交評(píng)論