![國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷11(共383題)_第1頁(yè)](http://file4.renrendoc.com/view8/M00/01/29/wKhkGWa6tCmAXkKPAAHMuHXlrnI751.jpg)
![國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷11(共383題)_第2頁(yè)](http://file4.renrendoc.com/view8/M00/01/29/wKhkGWa6tCmAXkKPAAHMuHXlrnI7512.jpg)
![國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷11(共383題)_第3頁(yè)](http://file4.renrendoc.com/view8/M00/01/29/wKhkGWa6tCmAXkKPAAHMuHXlrnI7513.jpg)
![國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷11(共383題)_第4頁(yè)](http://file4.renrendoc.com/view8/M00/01/29/wKhkGWa6tCmAXkKPAAHMuHXlrnI7514.jpg)
![國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷11(共383題)_第5頁(yè)](http://file4.renrendoc.com/view8/M00/01/29/wKhkGWa6tCmAXkKPAAHMuHXlrnI7515.jpg)
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷11(共9套)(共383題)國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷第1套一、選擇題(本題共39題,每題1.0分,共39分。)1、有以下程序:#include<stdio.h>voidfun(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(){intk[10]={1,2,3,4,5,6,7,8,9,10},i;fun(k,5);for(i=2;i<8;i++)printf("%d",k[i]);printf("\n");}程序運(yùn)行的結(jié)果是()。A、3456787B、876543C、1098765D、321678標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:由于數(shù)組名本身是一個(gè)地址,所以在用數(shù)組名作為實(shí)參傳遞時(shí),對(duì)應(yīng)的形參相當(dāng)于一個(gè)指針變量,在函數(shù)中可以通過(guò)指針變量來(lái)引用數(shù)組元素,從而改變?cè)氐闹?。本題中函數(shù)fun的作用是將數(shù)組A的前n個(gè)元素進(jìn)行逆轉(zhuǎn),fun(k,5)的結(jié)果是數(shù)組k的前五個(gè)元素1、2、3、4、5變?yōu)?、4、3、2、1。逆轉(zhuǎn)后,輸出數(shù)組中第3個(gè)至第8個(gè)元素。2、有三個(gè)關(guān)系R、S和T如下:由關(guān)系R和S通過(guò)運(yùn)算得到關(guān)系T,則所使用的運(yùn)算為()。A、并B、自然連接C、笛卡爾積D、交標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:自然連接是一種特殊的等值連接,它要求兩個(gè)關(guān)系中進(jìn)行比較的分量必須是相同的屬性組,并且在結(jié)果中把重復(fù)的屬性列去掉,所以B錯(cuò)誤。笛卡爾積是用R集合中元素為第一元素,s集合中元素為第二元素構(gòu)成的有序?qū)?,所以C錯(cuò)誤。根據(jù)關(guān)系T可以很明顯地看出是從關(guān)系R與關(guān)系s中取得相同的關(guān)系組所以取得是交運(yùn)算,選擇D。3、以下選項(xiàng)中與if(a=1)a++;elsea=b;語(yǔ)句功能不同的語(yǔ)句是()。A、switch(a){case0:a=b;break;default:a++;}B、switch(a==1){case0:a++;default:a=b;}C、switch(a){default:a=b;break;casel:a++;}D、a=(a=1)?(a++);b標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:ifelse語(yǔ)句的含義是,如果變量a的值等于1,變量a的值加1,否則,則把變量b的值賦給變量a。在本題的4個(gè)選項(xiàng)中,與其含義不同的是選項(xiàng)B,因?yàn)闆](méi)有break語(yǔ)句,當(dāng)a=1的時(shí)候,會(huì)順序執(zhí)行兩條語(yǔ)句,最終結(jié)果是將b的值賦給a。4、下列有關(guān)數(shù)據(jù)庫(kù)的描述,正確的是()。A、數(shù)據(jù)庫(kù)設(shè)計(jì)是指設(shè)計(jì)數(shù)據(jù)庫(kù)管理系統(tǒng)B、數(shù)據(jù)庫(kù)技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)共享的問(wèn)題C、數(shù)據(jù)庫(kù)是一個(gè)獨(dú)立的系統(tǒng),不需要操作系統(tǒng)的支持D、數(shù)據(jù)庫(kù)系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)必須與邏輯結(jié)構(gòu)一致標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)設(shè)計(jì)的目的實(shí)質(zhì)上是設(shè)計(jì)出滿(mǎn)足實(shí)際應(yīng)用需求的實(shí)際關(guān)系模型。數(shù)據(jù)庫(kù)技術(shù)的主要目的是有效地管理和存取大量的數(shù)據(jù)資源,包括:提高數(shù)據(jù)的共享性,使多個(gè)用戶(hù)能夠同時(shí)訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)中的數(shù)據(jù);減小數(shù)據(jù)的冗余,以提高數(shù)據(jù)的一致性和完整性;提供數(shù)據(jù)與應(yīng)用程序的獨(dú)立性,從而減少應(yīng)用程序的開(kāi)發(fā)和維護(hù)代價(jià)。5、有以下函數(shù)定義:intfun(doublea,doubleb){returna*b;}若以下選項(xiàng)中所用變量都已正確定義并賦值,錯(cuò)誤的函數(shù)調(diào)用是()。A、if(fun(x,y)){……}B、z=fun(fun(x,y),fun(x,y));C、Z=fun(fun(x,y)x,y);D、fun(x,y);標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查函數(shù)調(diào)用時(shí)的參數(shù)傳遞。選項(xiàng)C)中第一個(gè)參數(shù)的表達(dá)式不正確,因此不能得到正確的結(jié)果。6、有以下程序:#inc1udeintfun(intx,inty){if(x!=y)return(y);elsereturn((x+y)/2);}main(){inta=4,b=5,c=6;printf("%d\n",fun(2*a,fun(b,c)));}程序運(yùn)行后的輸出結(jié)果是()。A、3B、6C、8D、12標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:fun(b,c)即fun(5,6),5!—6,所以返回6;fun(2*a,6)即fun(8,6),8!—6,所以返回6。7、以下程序的輸出結(jié)果是()。#include<stdio.h>main(){inta[3][3]={0,1,2,0,1,2,0,1,2},i,j,s=1;for(i=0;i<3;i++)for(j=i;j<=i;j++)s+=a[i][a][j][j];printf(’’%d\n’’,s);}A、3B、4C、1D、9標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:當(dāng)外層循環(huán)為i時(shí),內(nèi)層循環(huán)j只能取j=i,所以s+=a[i]a[j]],其實(shí)就是s+=a[i][a[i][i]],當(dāng)i=0時(shí),s=s+a[0][a[0][0]]=s+a[0][0]=1,當(dāng)i=1時(shí)s=s+a[1][a[1][1]]=s+a[1][1]=1+l=2,當(dāng)i=2時(shí),s=s+a[2][a[2][2]]=s+a[2][2]=2+2=4。8、有以下程序#defineF(X,Y)(X)*(Y)main(){inta=3,b=4;printf(’’%dha’’,F(xiàn)(a++,b++));}程序運(yùn)行后的輸出結(jié)果是()。A、12B、15C、16D、20標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是編譯預(yù)處理命令以及自加運(yùn)算符。“F(a++,b++)”先取a和b的值,參加運(yùn)算,再把a(bǔ)和b的值分別加1,所以“F(a++,b++)=F(3,4)=3*4=12”。9、有兩個(gè)關(guān)系R、S如下:由關(guān)系R通過(guò)運(yùn)算得到關(guān)系S,則所使用的運(yùn)算為()。A、選擇B、投影C、插入D、連接標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:投影運(yùn)算是指對(duì)于關(guān)系內(nèi)的域指定可引入新的運(yùn)算。本題中S是在原有關(guān)系R的內(nèi)部進(jìn)行的,是由R中原有的那些域的列所組成的關(guān)系。所以選擇B。10、在C語(yǔ)言程序中,以下說(shuō)法正確的是()。A、函數(shù)的定義和函數(shù)的調(diào)用均不可以嵌套B、函數(shù)的定義不可嵌套,但函數(shù)的調(diào)用可以嵌套C、函數(shù)的定義可以嵌套,但函數(shù)的調(diào)用不可以嵌套D、函數(shù)的定義和函數(shù)的調(diào)用均可以嵌套標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查函數(shù)調(diào)用的基本概念。岡為函數(shù)的結(jié)果是一個(gè)未知量,而函數(shù)定義時(shí)不能使用未知量,所以函數(shù)定義不可以嵌套,但是函數(shù)調(diào)用可以嵌套。11、關(guān)于地址和指針,以下說(shuō)法正確的是()。A、通過(guò)強(qiáng)制類(lèi)型轉(zhuǎn)換可以將一種類(lèi)型的指針變量賦值給另一種類(lèi)型的指針變量B、可以取一個(gè)常數(shù)的地址賦值給同類(lèi)型的指針變量C、可以取一個(gè)表達(dá)式的地址賦值給同類(lèi)型的指針變量D、可以取一個(gè)指針變量的地址賦值給基類(lèi)型相同的指針變量標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:常數(shù)的地址存儲(chǔ)在內(nèi)存的常量區(qū),常量區(qū)存儲(chǔ)的都是常量,值都是不可修改的,所以直接取常量的地址賦給指針變量沒(méi)有任何意義,C語(yǔ)言也不允許這樣做,編譯會(huì)出錯(cuò),B項(xiàng)錯(cuò)誤;表達(dá)式的值存儲(chǔ)在臨時(shí)變量中,內(nèi)存中存在專(zhuān)門(mén)用來(lái)存儲(chǔ)臨時(shí)變量的區(qū)域,對(duì)這塊地址進(jìn)行操作也是沒(méi)有意義的,C語(yǔ)言不允許這樣做,編譯會(huì)出錯(cuò),C項(xiàng)錯(cuò)誤;可以取一個(gè)指針變量的地址,但是指針變量的地址屬于指針,只能賦值給指針類(lèi)型的指針變量,D項(xiàng)錯(cuò)誤。12、有以下程序:#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語(yǔ)言規(guī)定數(shù)組名代表數(shù)組的首地址,也就是第一個(gè)元素的地址。因此*(t+i)代表數(shù)組的第i+1個(gè)元素。程序運(yùn)行的結(jié)果是1+3+5+7+9=25。13、算法的時(shí)間復(fù)雜度是指()。A、算法的長(zhǎng)度B、執(zhí)行算法所需要的時(shí)間C、算法中的指令條數(shù)D、算法執(zhí)行過(guò)程中所需要的基本運(yùn)算次數(shù)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:算法的時(shí)間復(fù)雜度,是指執(zhí)行算法所需要的工作量,可以用算法在執(zhí)行過(guò)程中所需基本運(yùn)算的執(zhí)行次數(shù)來(lái)度量算法的工作量。14、下面結(jié)構(gòu)體的定義語(yǔ)句中,錯(cuò)誤的是()。A、structord{intx;inty;intz;}structorda;B、structord{intx;inty;intz;};structorda;C、structord{intx;inty;intz;}a;D、struct{intx;inty;intz;}a;標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:分號(hào)代表該結(jié)構(gòu)體定義語(yǔ)句的結(jié)束,選項(xiàng)A)的結(jié)構(gòu)體沒(méi)有定義完全就用該結(jié)構(gòu)體另外定義變量,用法有誤,所以答案選A)。15、有以下程序:#includemain(){inta=5,b=1,t;t=(a<<2)|b;printf("%d\n",t);}程序運(yùn)行后的輸出結(jié)果是()。A、21B、11C、6D、1標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:5的二進(jìn)制是101,計(jì)算5<<2,即將101左移2位后為10100,然后和00001進(jìn)行逐位或運(yùn)算等于10101,其十進(jìn)制為21。16、下列字符數(shù)組初始化語(yǔ)句中,不正確的是()。A、charc[]=’goodmorning’;B、charc[20]="goodmorning";C、charc[]={’a’,’b’,’c’,’d’};D、charc[]={"goodmorning");標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查兩個(gè)概念。①用單引號(hào)括起來(lái)的一個(gè)字符常量只能存放一個(gè)字符;②C語(yǔ)言中沒(méi)有字符串變量,只能用字符數(shù)組來(lái)存儲(chǔ)字符串。選項(xiàng)A)中一個(gè)單引號(hào)內(nèi)存放了若干個(gè)字符,是錯(cuò)誤的;選項(xiàng)B)和選項(xiàng)D)中將一個(gè)字符串賦值給一個(gè)字符數(shù)組是允許的。17、以下選項(xiàng)中,不合法的C語(yǔ)言用戶(hù)標(biāo)識(shí)符是()。A、a_bB、AaBcC、a--bD、_1標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:C講言規(guī)定,變艟命名必須符合標(biāo)示符的命名規(guī)則,C選項(xiàng)中包含了非法字符“-”,所以錯(cuò)誤。標(biāo)識(shí)符由字母、數(shù)字或下劃線(xiàn)組成,且第一個(gè)字符必須是大小寫(xiě)英文字母或者下劃線(xiàn),而不能是數(shù)字。18、下列敘述中正確的是()。A、循環(huán)隊(duì)列是隊(duì)列的一種鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)B、循環(huán)隊(duì)列是隊(duì)列的一種順序存儲(chǔ)結(jié)構(gòu)C、循環(huán)隊(duì)列是非線(xiàn)性結(jié)構(gòu)D、循環(huán)隊(duì)列是一種邏輯結(jié)構(gòu)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在實(shí)際應(yīng)用中,隊(duì)列的順序存儲(chǔ)結(jié)構(gòu)一般采用循環(huán)隊(duì)列的形式。19、以下敘述中正確的是()。A、用C語(yǔ)言編寫(xiě)的程序只能放在一個(gè)程序文件中B、C程序書(shū)寫(xiě)格式嚴(yán)格,要求一行內(nèi)只能寫(xiě)一個(gè)語(yǔ)句C、C程序中的注釋只能出現(xiàn)在程序的開(kāi)始位置和語(yǔ)句的后面D、C程序書(shū)寫(xiě)格式自由,一個(gè)語(yǔ)句可以寫(xiě)在多行上標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C語(yǔ)言編寫(xiě)的程序可以放置于多個(gè)程序文件中,所以A錯(cuò)誤。C程序中的一行可以有多條語(yǔ)句,所以B錯(cuò)誤。C語(yǔ)言中的注釋語(yǔ)句可以與原語(yǔ)句放在一行也可以不放在一行,所以C錯(cuò)誤。20、軟件按功能可以分為應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于應(yīng)用軟件的是()。A、學(xué)生成績(jī)管理系統(tǒng)B、C語(yǔ)言編譯程序C、UNIX操作系統(tǒng)D、數(shù)據(jù)庫(kù)管理系統(tǒng)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:軟件按功能可以分為:應(yīng)用軟件、系統(tǒng)軟件、支撐軟件。操作系統(tǒng)、編譯程序、匯編程序、網(wǎng)絡(luò)軟件、數(shù)據(jù)庫(kù)管理系統(tǒng)都屬于系統(tǒng)軟件。所以B)、C)、D)都是系統(tǒng)軟件,只有A)是應(yīng)用軟件。21、有以下程序:#inelude<stdio.h>intfun(inta,intB){if(b==0)returna;elsereturn(fun(--a,--b));}main(){printf("%d\n",fun(4,2));}程序運(yùn)行后的輸出結(jié)果是()。A、1B、2C、3D、4標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題重點(diǎn)考察函數(shù)的遞歸調(diào)用;題目中給出的fun()函數(shù)直接調(diào)用了自身,所以是一個(gè)遞歸函數(shù)。其功能是:當(dāng)參數(shù)b為0時(shí),返回參數(shù)a的值,否則返回fun(--a,--b)的值。從這里可以看出,當(dāng)b不斷遞減時(shí),a也不斷遞減,直到b為0時(shí)返回a的值。那么a遞減的總值就是b原來(lái)的值。所以整個(gè)遞歸函數(shù)的作用就是返回a-b的值。因此B選項(xiàng)正確。22、以下不合法的字符常量是A、’\\’B、’\"’C、’\018’D、’\xcc’標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:轉(zhuǎn)義字符中,八進(jìn)制的表示形式為\ddd,但是八進(jìn)制中不能包含數(shù)字8,所以C選項(xiàng)不合法。23、有以下程序#include<stdio.h>main(){inta=1,b=2;for(;a<8;a++){b+=a;a+=2;}printf("%d,%d\n",a,b);}程序運(yùn)行后的輸出結(jié)果是A、9,18B、8,11C、7,11D、10,14標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:第一次循環(huán)a的值為1,滿(mǎn)足條件,執(zhí)行b+=a,與a+=2,則b的值變?yōu)?,a的值變?yōu)?,執(zhí)行a++,a的值為4,滿(mǎn)足條件進(jìn)入第二次循環(huán),執(zhí)行完循環(huán)體后b的值為7,a的值為6,執(zhí)行a++,a的值為7,滿(mǎn)足條件進(jìn)入第三次循環(huán),執(zhí)行完循環(huán)體后b的值為14,a的值為9,執(zhí)行a++,a的值變?yōu)?0,所以選擇D選項(xiàng)。24、在面向?qū)ο蠓椒ㄖ?,不屬?對(duì)象"基本特點(diǎn)的是()。A、一致性B、分類(lèi)性C、多態(tài)性D、標(biāo)識(shí)唯一性標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:對(duì)象有如下一些基本特點(diǎn):標(biāo)識(shí)唯一性、分類(lèi)性、多態(tài)性、封裝性、模塊獨(dú)立性好。所以選擇A)。25、有表示公司和職員及工作的三張表,職員可在多家公司兼職。其中公司C(公司號(hào),公司名,地址,注冊(cè)資本,法人代表,員工數(shù)),職員S(職員號(hào),姓名,性別,年齡,學(xué)歷),工作W(公司號(hào),職員號(hào),工資),則表W的鍵(碼)為A、公司號(hào),職員號(hào)B、職員號(hào),工資C、職員號(hào)D、公司號(hào),職員號(hào),工資標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:由于職員可以再多加公司兼職,表W的鍵(碼)應(yīng)為公司關(guān)系和職員關(guān)系的主碼,即公司號(hào)和職員號(hào)。26、下列關(guān)系表達(dá)式中,結(jié)果為"假"的是A、3<=4B、(3<4)==1C、(3+4)>6D、(3!=4)>2標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:B選項(xiàng)中,關(guān)系表達(dá)式(3<4)==1即1==1,結(jié)果為真;C選項(xiàng)中,(3+4)>6即7>6,結(jié)果為真;A選項(xiàng)中,3<=4結(jié)果為真。D選項(xiàng)中,(3!=4)>2即1>2,結(jié)果為假。因此D選項(xiàng)正確。27、有以下程序#include<stdio.h>main(){FILE*fp;inti,a[6]={1,2,3,4,5,6},k;fp=fopen("data.dat","w+");fprintf(fp,"%d\n",a[0]);for(i=1;i<6;i++){fseek(fp,0L,0);fscanf(fp,"%d",&k);fseek(fp,0L,0);fprintf(fp,"%d\n",a[i]+k);}rewind(fp);fscanf(fp,"%d",&k);fclose(fp);printf("%d\n",k);}程序的運(yùn)行結(jié)果是A、21B、6C、123456D、11標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:fopen函數(shù)以一定方式打開(kāi)指定文件,返回一個(gè)指向文件的文件指針,如果不能實(shí)現(xiàn)打開(kāi)指定文件的操作,則返回一個(gè)空指針NULL。fscanf函數(shù)從文本文件中按格式輸入。fprintf函數(shù)按照格式向文本文件中輸出數(shù)據(jù)。文件定位函數(shù)fseek,將指針由文件開(kāi)頭0、當(dāng)前位置1、末尾2移動(dòng)指定字節(jié)。rewind函數(shù)功能使文件的位置指針?lè)祷氐轿募^。程序執(zhí)行過(guò)程為:以讀/寫(xiě)方式建立一個(gè)新的文本文件data.dat,將1寫(xiě)入文件;執(zhí)行for循環(huán),將文件指針移到文件開(kāi)頭,將文件第一個(gè)數(shù)值1賦給k,再將指針移動(dòng)到開(kāi)頭,向文件內(nèi)輸入a[i]+k=3。for循環(huán)實(shí)現(xiàn)將a數(shù)組中元素累加,結(jié)果21存放在文件中。調(diào)用rewind將文件指針移動(dòng)到開(kāi)頭,調(diào)用fscanf函數(shù)從文件中讀出數(shù)值賦予k=21,調(diào)用fclose函數(shù)關(guān)閉文件,打印k值,A選項(xiàng)正確。28、有以下程序#include<stdio.h>inta=2;intf(){staticintn;intm;m=n=0;n++;a++;m++;returnn+m+a;}main(){intk;for(k=0;k<3;k++)printf("%d,",f());printf("\n");}程序的運(yùn)行結(jié)果是A、5,6,7,B、5,7,9,C、5,8,11,D、5,5,5,標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:static變量又稱(chēng)為靜態(tài)變量,編譯時(shí),將其分配在內(nèi)存的靜態(tài)存儲(chǔ)區(qū)中,在整個(gè)程序運(yùn)行期間都不釋放這些存儲(chǔ)單元,即使退出函數(shù),下次再進(jìn)入該函數(shù)時(shí),靜態(tài)局部變量仍使用原來(lái)的存儲(chǔ)單元,值是上一次函數(shù)調(diào)用結(jié)束時(shí)的值。若定義時(shí)未賦初值,在編譯時(shí),系統(tǒng)自動(dòng)賦初值為0;若定義時(shí)賦初值,則僅在編譯時(shí)賦初值一次,程序運(yùn)行后不再給變量賦初值。程序執(zhí)行過(guò)程為:k=0,a=2,n=0,m=0;n=1,a=3,m=1,返回5;k=1,a=3,n=0,m=0;n=1,a=4,m=1,返回6;k=2,a=4,n=0,m=0;n=1,a=5,m=1,返回7;k=3退出循環(huán)。A選項(xiàng)正確。29、以下程序擬讀取一個(gè)學(xué)生結(jié)構(gòu)體中的人名,查找其年齡并輸出:#include#include#includestructstu{charname[10];intage;};structstuteam[6]={’’zhangli’’,18,’’wangtao’’,20,’’limei’’,19,’’zhaodong’’,18,,’’liuxiu’’,19},*P;main(){inti,flag=0;p=(structstu*)malloc(sizeof(structstu));gets(&p->name);for(i=0;i<6;i++)if((strcmp(p->name,team[i].name)==0)){pfintf(’’%d\n’’,team[i].a(chǎn)ge);flag=1;}if(flag==0)printf(’’Nofind!\n’’);}程序有語(yǔ)法錯(cuò)誤,出錯(cuò)的是()。A、pfintf(’’%d\n’’,team[i].a(chǎn)ge)B、p=(structstu*)malloc(sizeof(structstu))C、if((strcmp(p->name,team[i].name)==0))D、gets(&p->name);標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:gets的參數(shù)應(yīng)該是成員變量name數(shù)組的首地址,而&p一>name是首先獲取數(shù)組name的首地址,然后再對(duì)首地址取地址符,所以這是錯(cuò)誤的,正確參數(shù)應(yīng)該是:gets(p一>name)。30、若有以下定義和語(yǔ)句structst{intn;structst*next;};structsta[3]={5,&a[0],6,&a[1],7,&a[2]},*p;p=&a[0];則值為6的表達(dá)式是(提示:運(yùn)算符->的優(yōu)先級(jí)高于++)A、(*p).n++B、p++->nC、p->n++D、(++p)->n標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:定義指向結(jié)構(gòu)體變量的指針p,并將結(jié)構(gòu)體數(shù)組首地址賦給p。(++p)->n,p指針自加一指向數(shù)組第二個(gè)元素,其成員n=6,D選項(xiàng)正確。p++->n,p指向結(jié)構(gòu)體數(shù)組第一個(gè)元素,其成員n=5。p->n++,p指向結(jié)構(gòu)體數(shù)組第一個(gè)元素,其成員n=5,由于++是后綴,先取值,所以表達(dá)式為5,之后再自加一。(*p).n++,*p為結(jié)構(gòu)體數(shù)組第一個(gè)元素,其成員n=5,先取值,表達(dá)式為5。31、下列選項(xiàng)中不屬于軟件生命周期開(kāi)發(fā)階段任務(wù)的是()。A、軟件測(cè)試B、概要設(shè)計(jì)C、軟件維護(hù)D、詳細(xì)設(shè)計(jì)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:軟件生命周期分為軟件定義、軟件開(kāi)發(fā)及軟件運(yùn)行維護(hù)三個(gè)階段,其中開(kāi)發(fā)階段包括概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、實(shí)現(xiàn)和測(cè)試。32、關(guān)于程序中的注釋?zhuān)韵聰⑹稣_的是A、注釋的內(nèi)容必須放在一對(duì)/*和*/之間B、注釋必須置于所說(shuō)明的語(yǔ)句前或語(yǔ)句后C、注釋中間可以嵌套另一個(gè)注釋D、注釋內(nèi)容錯(cuò)誤會(huì)導(dǎo)致編譯出錯(cuò)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:程序中,注釋可以出現(xiàn)在程序的任何位置,B選項(xiàng)錯(cuò)誤;注釋中間不能嵌套另一個(gè)注釋?zhuān)珻選項(xiàng)錯(cuò)誤;注釋內(nèi)容不影響程序編譯,D選項(xiàng)錯(cuò)誤,答案為A選項(xiàng)。33、存儲(chǔ)在計(jì)算機(jī)內(nèi)有結(jié)構(gòu)的數(shù)據(jù)集合是A、數(shù)據(jù)庫(kù)B、數(shù)據(jù)庫(kù)系統(tǒng)C、數(shù)據(jù)庫(kù)管理系統(tǒng)D、數(shù)據(jù)結(jié)構(gòu)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)是指長(zhǎng)期存儲(chǔ)在計(jì)算機(jī)內(nèi)的、有組織的、可共享的數(shù)據(jù)集合。數(shù)據(jù)庫(kù)系統(tǒng)是由數(shù)據(jù)庫(kù)及其管理軟件組成的系統(tǒng),是應(yīng)用軟件。數(shù)據(jù)庫(kù)管理系統(tǒng)是數(shù)據(jù)庫(kù)系統(tǒng)的核心,它位于用戶(hù)與操作系統(tǒng)之間,屬于系統(tǒng)軟件。數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)存儲(chǔ)、組織數(shù)據(jù)的方式。故本題選A選項(xiàng)34、以下程序擬實(shí)現(xiàn)計(jì)算sum=1+1/2+1/3+…+1/50。#include<stdio.h>main(){inti;doublesum;sum=1.0;i=1;do{i++;sum+=1/i;}while(i<50);printf("sum=%lf\n",sum);}程序運(yùn)行后,不能得到正確結(jié)果,出現(xiàn)問(wèn)題的語(yǔ)句是A、sum+=1/i;B、while(i<50);C、sum=1.0;D、i++;標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:選項(xiàng)A,sum+=1/i;i為整型,因此1/i是整型類(lèi)型,當(dāng)1/i有小數(shù)時(shí),會(huì)被截?cái)?。因?/i結(jié)果始終為0,導(dǎo)致結(jié)果出錯(cuò)。,應(yīng)該改為sum+=1.0/i。因此答案為A選項(xiàng)35、數(shù)據(jù)庫(kù)系統(tǒng)的數(shù)據(jù)獨(dú)立性是指A、不會(huì)因?yàn)橄到y(tǒng)數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)與數(shù)據(jù)邏輯結(jié)構(gòu)的變化而影響應(yīng)用程序B、不會(huì)因?yàn)閿?shù)據(jù)的變化而影響應(yīng)用程序C、不會(huì)因?yàn)榇鎯?chǔ)策略的變化而影響存儲(chǔ)結(jié)構(gòu)D、不會(huì)因?yàn)槟承┐鎯?chǔ)結(jié)構(gòu)的變化而影響其他的存儲(chǔ)結(jié)構(gòu)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)系統(tǒng)的數(shù)據(jù)獨(dú)立性,是指數(shù)據(jù)庫(kù)中數(shù)據(jù)獨(dú)立于應(yīng)用程序且不依賴(lài)于應(yīng)用程序,即數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)與存取方式的改變不會(huì)影響應(yīng)用程序。故選A選項(xiàng)。36、有以下程序#include<stdio.h>main(){intm,n;scanf("%d%d",&m,&n);while(m!=n){while(m>n){m=m-n;}while(n>m){n=n-m;}}printf("%d\n",m);}該程序的功能是A、計(jì)算m和n的最小公倍數(shù)B、計(jì)算m和n的最大公約數(shù)C、計(jì)算m和n的差值D、找出m和n中的較大值標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:題目使用更相減損術(shù)求最大公約數(shù),其思想:1、任意給定兩個(gè)正整數(shù),判斷它們是否都是偶數(shù)。若是,則用2約簡(jiǎn),若不是則執(zhí)行第二步。第二步:以較大的數(shù)減較小的數(shù),接著把所得的差與較小的數(shù)比較,并以大數(shù)減小數(shù)。繼續(xù)這個(gè)操作,直到所得的減數(shù)和差相等為止。則第一步中約掉的若干個(gè)2與第二步中等數(shù)的乘積就是所求的最大公約數(shù)。因此。故答案為B選項(xiàng)37、有以下程序#include<stdio.h>#include<string.h>typedefstructstu{charname[10];chargender;intscore;}STU;voidf(charname[10],chargender,intscore){strcpy(name,"Sun");gender=’m’;score=370;}main(){STUb={"Zhao",’m’,290},a={"Qian",’f’,350};b=a;printf("%s,%c,%d,",,b.gender,b.score);f(,b.gender,b.score);printf("%s,%c,%d\n",,b.gender,b.score);}程序運(yùn)行后的輸出結(jié)果是A、Qian,f,350,Sun,f,350B、Qian,f,350,Qian,f,350C、Qian,f,350,Sun,m,370D、Zhao,m,290,Sun,m,370標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C語(yǔ)言函數(shù)參數(shù)傳遞大致分為:1、值傳遞過(guò)程中,被調(diào)函數(shù)的形參作為被調(diào)函數(shù)的局部變量處理,即在內(nèi)存的堆棧中開(kāi)辟空間以存放由主調(diào)函數(shù)放進(jìn)來(lái)的實(shí)參的值,從而成為了實(shí)參的一個(gè)拷貝。值傳遞的特點(diǎn)是被調(diào)函數(shù)對(duì)形參的任何操作都是作為局部變量進(jìn)行,不會(huì)影響主調(diào)函數(shù)的實(shí)參變量的值。2、地址傳遞過(guò)程中,被調(diào)函數(shù)的形參雖然也作為局部變量在堆棧中開(kāi)辟了內(nèi)存空間,但是這時(shí)存放的是由主調(diào)函數(shù)放進(jìn)來(lái)的實(shí)參變量的地址。被調(diào)函數(shù)對(duì)形參的任何操作都被處理成間接尋址,即通過(guò)堆棧中存放的地址訪(fǎng)問(wèn)主調(diào)函數(shù)中的實(shí)參變量。正因?yàn)槿绱?,被調(diào)函數(shù)對(duì)形參做的任何操作都影響了主調(diào)函數(shù)中的實(shí)參變量。結(jié)構(gòu)體中name是數(shù)組,做實(shí)參傳遞,會(huì)退化為指針,因此調(diào)用f(),發(fā)生修改,其他的成員,傳遞的是拷貝,不會(huì)被修改。因此輸出Sun,f,350。故答案為A選項(xiàng)。38、下列序列中不滿(mǎn)足堆條件的是A、(98,95,93,96,89,85,76,64,55,49)B、(98,95,93,94,89,85,76,64,55,49)C、(98,95,93,94,89,90,76,64,55,49)D、(98,95,93,94,89,90,76,80,55,49)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:若有n個(gè)元素的序列,將元素按順序組成一棵完全二叉樹(shù),當(dāng)且僅當(dāng)滿(mǎn)足下列條件時(shí)稱(chēng)為堆:大根堆,所有結(jié)點(diǎn)的值大于或等于其左右子結(jié)點(diǎn)的值;小根堆,所有結(jié)點(diǎn)的值小于或等于其左右子結(jié)點(diǎn)的值。B、C、D選項(xiàng)屬于大根堆,A選項(xiàng)由于98>95,判斷屬于大根堆,但95<96,不滿(mǎn)足條件,不是堆,故選擇A選項(xiàng)39、若有定義:inta;floatb;doublec;,程序運(yùn)行時(shí)輸入:l23<回車(chē)>,能把1輸入給變量a、把2輸入給變量b、把3輸入給變量c的輸入語(yǔ)句是()。A、scanf("%d%f%1f",&a,&b,&c);B、scanf("%d%f%lf",&a,&b,&c);C、scanf("%d%If%If",&a,&b,&c);D、scanf("%d%f%f",&a,&b,&c);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在scanf()函數(shù)中,a變量為整數(shù)用%({格式字符串,a變量為單精度數(shù)用%f格式字符串,a變量為雙精度數(shù)用%1f格式字符串,只有A選項(xiàng)正確。二、程序填空題(本題共1題,每題1.0分,共1分。)40、給定程序中,函數(shù)fun的功能是:計(jì)算形參x所指數(shù)組中N個(gè)數(shù)的平均值(規(guī)定所有數(shù)均為正數(shù)),將所指數(shù)組中小于平均值的數(shù)據(jù)移至數(shù)組的前部,大于等于平均值的數(shù)據(jù)移至x所指數(shù)組的后部,平均值作為函數(shù)值返回,在主函數(shù)中輸出平均值和移動(dòng)后的數(shù)據(jù)。例如,有10個(gè)正數(shù):4630324061745154826,平均值為:30.500000移動(dòng)后的輸出為:3061715264632404548請(qǐng)?jiān)诔绦虻南聞澗€(xiàn)處填入正確的內(nèi)容并把下劃線(xiàn)刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下的BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include<stdlib.h>#include<stidio.h>#defineN10doublefun(double*x){inti,j;doubleav,y[N];av=0;/**********found**********/for(i=0;i<N;i++)av+=___1___;for(i=j=0;i<N;i++)if(x[i]<aV){/**********found**********/y[j]=x[i];x[i]=-1;___2___;}2=0;while(i<N){if(x[i]!=-1)y[j++]=x[i];/**********found**********/___3___;}for(i=0;i<N;i++)x[i]=y[i];Eeturnav;}main(){inti;doublex[N];for(i=0;i<N;i++){x[i]=rand()%50;printf("%4.0f",x[i]);}printf("\n");printf("\nTheaverageis:%f\n",fun(x));printf("\nTheresult:\n",fun(x));for(i=0;i<N;i++)printf("%5.0f",x[i]);printf("\n");}標(biāo)準(zhǔn)答案:(1)x[i]/N(2)j++或j=j+1(3)i++或i=i+1知識(shí)點(diǎn)解析:本題中函數(shù)fun的功能是計(jì)算形參x所指數(shù)組中N個(gè)數(shù)的平均值(規(guī)定所有數(shù)均為正數(shù)),將所指數(shù)組中小于平均值的數(shù)據(jù)移至數(shù)組的前部,大于等于平均值的數(shù)據(jù)移至x所指數(shù)組的后部。在fun函數(shù)中,首先求平均值,然后拿平均值逐個(gè)和數(shù)組元素比較,如果元素值小于平均值則保存在數(shù)組y中,再把大于等于平均值的元素放在數(shù)組y后面,最后把v數(shù)組內(nèi)的元素拷貝到x所指的數(shù)組中。第一空:“for(i=0;i<N;i++)av+=___1___;”在該循環(huán)的下一個(gè)循環(huán)內(nèi)是逐個(gè)比較元素x[i]是否小于aV,即該循環(huán)的功能是求出平均值。由“av=(x[0]+x[1]+…x[N-1])/N=x[0]/N+x[1]/N+…+x[N-1]/N”可知,第一空處應(yīng)為“x[i]/N”。第二空:“if(x[i]<av){y[j]=x[i]=x[i]=-1;___2___;”如果x[i]小于平均值則將x[i]存儲(chǔ)在y數(shù)組中,變量i是循環(huán)變量,變量j記錄數(shù)組y的下標(biāo)變化,下一次執(zhí)行if內(nèi)部語(yǔ)句時(shí),y數(shù)組的下標(biāo)應(yīng)為下一個(gè)位置,故第二空處應(yīng)為j加1,即第二空出為“j++”或“j=j+1”。第三空:i為while循環(huán)的循環(huán)變量,第一次進(jìn)入while的時(shí)候i為0,判斷第一個(gè)元素x[0]是否是-1,第二次進(jìn)入的時(shí)候判斷第二個(gè)元素x[1]是否是-1,依此類(lèi)推直到i=N退出循環(huán),故第三處是變量i自增,即第三空處為“i++”或“i==i+1”。三、程序修改題(本題共1題,每題1.0分,共1分。)41、給定程序MODI1.C中函數(shù)fun的功能是:從n(形參)個(gè)學(xué)生的成績(jī)中統(tǒng)計(jì)出低于平均分的學(xué)生人數(shù),此人數(shù)由函數(shù)值返回,平均分存放在形參aver所指的存儲(chǔ)單元中。例如,若輸入8名學(xué)生的成績(jī):80.5607290.59851.58864則低于平均分的學(xué)生人數(shù)為:4(平均分為:75.5625)。請(qǐng)改正程序中的錯(cuò)誤,使它能統(tǒng)計(jì)出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!1#include<stdio.h>2#defineN203intfun(float*s,intn,float*aver)4{floatave,t=0.0;5intcount=0,k,i;6for(k=0;k<n;k++)7/**********found**********/8t=s[k];9ave=t/n;10for(i=0;i<n;i++)11if(s[i]<ave)count++;12/**********found**********/13*aver=Ave;14returncount;15}16main()17{floats[30],aver;18intm,i;19printf(’’\nPleaseenterm:’’);scanf(’’%d’’,&m);20printf(’’\nPleaseenter%dmark:\n’’,m);21for(i=0;i<m;i++)scanf(’’%f’’,s+i);22printf(’’\nThenumberofstudents:%d\n’’,fun(s,m,&aver));23printf(’’Ave=%f\n’’,aver);24}標(biāo)準(zhǔn)答案:(1)t+:s[k];(2)*aver=ave;知識(shí)點(diǎn)解析:程序功能是統(tǒng)計(jì)出低于平均分的學(xué)生人數(shù)。(1)根據(jù)題目要求求出平均分,首先要求總分,要把所有學(xué)生成績(jī)相加再求平均分,因此第一個(gè)標(biāo)識(shí)下面的“t=s[k];”應(yīng)改為“t+=s[k];”。(2)根據(jù)題目可知,比較的結(jié)果中低于平均分的分?jǐn)?shù)ave放入指針aver所指的地址單元中,而變量Ave沒(méi)有定義,因此第二標(biāo)識(shí)下應(yīng)將“*aver=Ave;”改為“*aver=ave;”。四、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)42、請(qǐng)編寫(xiě)函數(shù)fun,該函數(shù)的功能是:將s所指字符串中ASCII碼值為偶數(shù)的字符刪除,串中剩余字符形成一個(gè)新串放在t所指的數(shù)組中。例如,若s所指字符串中的內(nèi)容為“ABCDEFGL2345”,其中字符B的ASCII碼值為偶數(shù),字符2的ASCII碼值為偶數(shù),都應(yīng)當(dāng)刪除,其他依此類(lèi)推。最后t所指的數(shù)組中的內(nèi)容應(yīng)是“ACEGl35”。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。試題程序:#include<stdlib.h>#include<stclio.h>#include<string.h>#include<conio.h>voidfun(char*s,chart[]){)voidmain(){chars[100],t[100];system("CLS");printf("\nPleaseenterstringS:");scanf("%s",s),fun(s,t);printf("\nTheresultis:%s\n",t);}標(biāo)準(zhǔn)答案:voidfun(char*s,chart[]){inti=0;for(;*s!=’\0’;s++)/*找出ASC工工值為奇數(shù)的字符依次存入數(shù)組t中*/if(*s%2==1)t[i++]=*s;t[i]=’\0’;/*在字符串的末尾加上串結(jié)束符*/}知識(shí)點(diǎn)解析:本題要求將s所指字符串中ASCII碼值為偶數(shù)的字符刪除,因此本題要求采用一個(gè)for循環(huán)來(lái)找出ASCII碼值為奇數(shù)的字符依次存入數(shù)組t中,并使用if條件句來(lái)判斷s所指字符串中ASCII碼值是否為奇數(shù)。用‘\0’加在字符串的末尾來(lái)表示字符串的結(jié)束。要?jiǎng)h除ASCII碼值為偶數(shù)的字符,也就是要留下,ASCII碼值為奇數(shù)的字符。由于最終是要求出剩余字符(即ASCII碼值為奇數(shù))形成的新串,所以本題程序的算法是對(duì)原字符串從頭到尾掃描,并找出ASCII碼值為奇數(shù)的字符并將其依次存入數(shù)組t中。此外,還要注意數(shù)組t的下標(biāo)變化和下標(biāo)的初值(初值必須為0,即i=0),t[i++]的作用是先使用t[i],然后再使i自增1。國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷第2套一、選擇題(本題共40題,每題1.0分,共40分。)1、設(shè)有定義:inta=1,b=2,C=3;,以下語(yǔ)句中執(zhí)行效果與其他三個(gè)不同的是()。A、if(a>b)c=a,a=b,b=c;B、if(a>b){c=a,a=b,b=c}C、if(a>b)c=a;a=b;bc;D、if(a>b){c=a;a=b.b=c}標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:C語(yǔ)言中if語(yǔ)句后面只跟一條語(yǔ)句時(shí),可以省略大括號(hào)。即if語(yǔ)句僅作用于緊隨其后的那條語(yǔ)句或者是復(fù)合語(yǔ)句的內(nèi)容,所以A項(xiàng)執(zhí)行三條語(yǔ)句組成的復(fù)合語(yǔ)句;BD兩項(xiàng)執(zhí)行大括號(hào)中的三條語(yǔ)句;而C項(xiàng)只執(zhí)行c=a;。2、若有定義:inta=0,b=0,c=0,d=0;,有C語(yǔ)言表達(dá)式(a++&&b++)?c++:d++,以下關(guān)于其執(zhí)行順序的敘述中正確是()。A、先執(zhí)行a++,表達(dá)式a++的值為0,由此即可確定(a++&&b++)值為0,因此執(zhí)行d++B、先執(zhí)行a++,表達(dá)式a++的值為0;再執(zhí)行b++,表達(dá)式b++的值為0,由此可確定(a++&&b++)值為0,因此執(zhí)行d++C、先執(zhí)行a++,表達(dá)式a++的值為1;再執(zhí)行b++,表達(dá)式b++的值為1,由此可確定(a++&&b++)值為1,因此執(zhí)行c++D、先執(zhí)行b++,表達(dá)式b++的值為1;再執(zhí)行a++,表達(dá)式a++的值為1,由此可確定(a++&&b++)值為1,因此執(zhí)行c++標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:把握前置運(yùn)算和后置運(yùn)算的基本運(yùn)算規(guī)則。3、以下關(guān)于return語(yǔ)句的敘述中不正確的是()。A、一個(gè)自定義函數(shù)中必須有一條return語(yǔ)句B、一個(gè)自定義函數(shù)中可以根據(jù)不同情況設(shè)置多條return語(yǔ)句C、如果一個(gè)函數(shù)有多個(gè)return語(yǔ)句,那么不論運(yùn)行到哪一個(gè)return語(yǔ)句,該函數(shù)將結(jié)束D、沒(méi)有return語(yǔ)句的自定義函數(shù)在執(zhí)行完最后一條語(yǔ)句時(shí)返回到調(diào)用處標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:return語(yǔ)句主要用于返回函數(shù)的值。在一個(gè)自定義函數(shù)中,可以根據(jù)不同的情況設(shè)置多條return語(yǔ)句返回函數(shù)的值,也可以不包含return語(yǔ)句。4、有以下程序:#include<stdio.h>unsignedfun(unsignednum){unsignedk=1;do{k*=num%10;num/=10;}while(num);returnk;}main(){unsignedn=26;printf("%d\n",fun(n));}程序運(yùn)行后的輸出結(jié)果是()。A、12B、10C、16D、8標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:程序首先執(zhí)行main函數(shù),執(zhí)行printf("%d\n",fun(n));即輸出表達(dá)式fun(6)的值,為了計(jì)算該表達(dá)式,需要調(diào)用函數(shù)func。此時(shí)main將n中的26作為實(shí)參傳遞給fun的num,即num值為26,接著執(zhí)行do—while語(yǔ)句。第1次循環(huán),執(zhí)行k*=num%10,即k=k*(num%10)=1*(26%10)=6;執(zhí)行num/=10,即num=num/10=26/10=2;while后面循環(huán)條件為num,此時(shí)num為2,是非0值,即表示循環(huán)條件成立,繼續(xù)執(zhí)行循環(huán)體。此時(shí)k為6,num為2,執(zhí)行do—while中的語(yǔ)句后,k為12,num為0。由于while后面循環(huán)條件為num,此時(shí)num為0,表示循環(huán)條件不成立,結(jié)束循環(huán),執(zhí)行returnk,即返回至main函數(shù)中的被調(diào)用處,執(zhí)行main函數(shù),執(zhí)行printf語(yǔ)句,輸出結(jié)果為12。5、在面向?qū)ο蠓椒ㄖ?,不屬?對(duì)象"基本特點(diǎn)的是()。A、一致性B、分類(lèi)性C、多態(tài)性D、標(biāo)識(shí)唯一性標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:對(duì)象有如下一些基本特點(diǎn):標(biāo)識(shí)唯一性、分類(lèi)性、多態(tài)性、封裝性、模塊獨(dú)立性好。所以選擇A)。6、在數(shù)據(jù)管理技術(shù)發(fā)展的三個(gè)階段中,數(shù)據(jù)共享最好的是()。A、人工管理階段B、文件系統(tǒng)階段C、數(shù)據(jù)庫(kù)系統(tǒng)階段D、三個(gè)階段相同標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:數(shù)據(jù)管理發(fā)展至今已經(jīng)歷了三個(gè)階段:人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫(kù)系統(tǒng)階段。其中最后一個(gè)階段結(jié)構(gòu)簡(jiǎn)單,使用方便邏輯性強(qiáng)物理性少,在各方面的表現(xiàn)都最好,一直占據(jù)數(shù)據(jù)庫(kù)領(lǐng)域的主導(dǎo)地位,所以選擇C。7、軟件設(shè)計(jì)中劃分模塊的一個(gè)準(zhǔn)則是()。A、低內(nèi)聚、低耦合B、高內(nèi)聚、低耦合C、低內(nèi)聚、高耦合D、高內(nèi)聚、高耦合標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:一般較優(yōu)秀的軟件設(shè)計(jì)應(yīng)盡量做到高內(nèi)聚、低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨(dú)立性,因此本題答案為B。8、以下選項(xiàng)中,能用作數(shù)據(jù)常量的是()。A、o18B、o11C、0.8e2.5D、25L標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查常量定義。數(shù)據(jù)常量可有10進(jìn)制、8進(jìn)制、16進(jìn)制、指數(shù)法等,8進(jìn)制數(shù)字為0-7,第一個(gè)字符為0,而不是0,因此選項(xiàng)A)和B)錯(cuò)誤。為指數(shù)法時(shí),指數(shù)部分須為整形,因此選項(xiàng)C)錯(cuò)誤,選項(xiàng)D)中數(shù)字后加入L是說(shuō)明此變量為長(zhǎng)整型。9、下列程序的輸出結(jié)果是()。#includevoidmain(){inta=0,b=1,c=2;if(++a>0||++b>0)++C;printf("%d,%d,%(1",a,b,c);}A、0,1,2B、1,2,3C、1,1,3D、1,2,2標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查if語(yǔ)句。先判斷if語(yǔ)句的條件是否成立,因?yàn)?+a=1>0,所以條件成立,又因?yàn)槭沁M(jìn)行邏輯或運(yùn)算,在已知其中一個(gè)運(yùn)算對(duì)象為真的情況下,不必判斷另外一個(gè)運(yùn)算對(duì)象的真假,即不進(jìn)行++b操作,就可以直接得出整個(gè)表達(dá)式的值為邏輯1,執(zhí)行下面的++c。10、有以下程序:main(){FILE*pf;char*s1="China",*s2="Beijing".pf=fopen("abc.dat","wb+");fwrite(s2,7,1,pf);rewind(pf);/*文件位置指針回到文件開(kāi)頭*/fwrite(s1,5,1,pf);fclose(pf);}以上程序執(zhí)行后abc.dat文件的內(nèi)容是()。A、ChinaB、ChinangC、ChinaBeijingD、BeijingChina標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查函數(shù)fwrite的使用。函數(shù)fwrite的調(diào)用形式為:intfwrite(char*pt,unsignedn,F(xiàn)ILE*fp);其功能是把pt所指向的n*size個(gè)字節(jié)輸出到fp所指文件中,第二次調(diào)用該函數(shù)時(shí),從文件的第一個(gè)位置開(kāi)始寫(xiě)入,之前已有的會(huì)被覆蓋掉,如果第二次寫(xiě)入的長(zhǎng)度沒(méi)有第一次的長(zhǎng),則后面短出的部分保留原樣。11、開(kāi)發(fā)軟件所需高成本和產(chǎn)品的低質(zhì)量之間有著尖銳的矛盾,這種現(xiàn)象稱(chēng)做()。A、軟件矛盾B、軟件危機(jī)C、軟件藕合D、軟件產(chǎn)生標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:隨著計(jì)算機(jī)軟件規(guī)模的擴(kuò)大,軟件本身的復(fù)雜性不斷增加,研制周期顯著變長(zhǎng),正確性難以保證,軟件開(kāi)發(fā)費(fèi)用上漲,生產(chǎn)效率急劇下降,從而出現(xiàn)了入們難以控制軟件發(fā)展的局面,即所謂的“軟件危機(jī)”。12、以下敘述中不正確的是()。A、在不同的函數(shù)中可以使用相同的名字的變量B、函數(shù)中的形式參數(shù)是局部變量C、在一個(gè)函數(shù)內(nèi)定義的變量只在本函數(shù)范圍內(nèi)有效D、在一個(gè)函數(shù)內(nèi)的復(fù)合語(yǔ)句中定義的變量在本函數(shù)范圍內(nèi)有效標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是變量的作用范圍。選項(xiàng)D)中,在一個(gè)函數(shù)的復(fù)合語(yǔ)句中定義的變量是局部變量,只在定義此變量的復(fù)合語(yǔ)句內(nèi)有效,并不是在整個(gè)函數(shù)體內(nèi)都有效。13、有以下程序:#includemain(){inta=3;printf("%d\n",(a+=a-=a*a);}程序運(yùn)行后的輸出結(jié)果是()。A、3B、9C、0D、-12標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查目的是運(yùn)算符的結(jié)合性和優(yōu)先級(jí),首先計(jì)算a*a,結(jié)果為9,然后執(zhí)行a=a-9,即3-9,結(jié)果為-6,然后執(zhí)行a=(-6)+(-6),即a=的值為-12。所以選擇D。14、執(zhí)行下列程序時(shí)輸入“456<空格>789<空格>123<回車(chē)>”,輸出結(jié)果是()。#include<stdio.h>main(){charm[80];intc,i;scanf(’’%c’’,&c);scanf(’’%d’’,&i);scanf(’’%s’’,&m);printf(’’%c,%d,%s\n’’,c,i,m);}A、456,789,123B、4,789,123C、4,56,789,123D、4,56,789標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:scanf函數(shù)中的“%c”表示通過(guò)鍵盤(pán)只讀入一個(gè)字符型的數(shù)據(jù),“&c”表示將該數(shù)據(jù)賦值給c,所以c=4。另外,以“%d”格式讀入數(shù)據(jù)時(shí),只有遇到空格或者換行等間隔時(shí)符才停止讀入,所以i=56,m=789。15、下列一維數(shù)組說(shuō)明中,不正確的是()。A、intN;scanf(’’%d’’,&N);intb[N];B、floata[]={1,6,6,0,2};C、#defineS10inta[S];D、#defineS10inta[S+5];標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查一維數(shù)組的賦值。一維數(shù)組的一般定義格式為:類(lèi)型說(shuō)明符數(shù)組名[常量表達(dá)式]。其中,“[]”中的內(nèi)容可以是整型常量,也可以是整型表達(dá)式。選項(xiàng)A中的N是一個(gè)變量,所以錯(cuò)誤。16、如果需要打開(kāi)一個(gè)已經(jīng)存在的非空文件"FILE’’并進(jìn)行修改,正確的語(yǔ)句是()。A、fp=fopen(’’FILE","r");B、fp=fopen(’’FILE","a+’’);C、fp=fopen(’’FILE","w+’’);D、fp=fopen(’’FILE","r+’’);標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查打開(kāi)文件函數(shù)fopen(),打開(kāi)文件函數(shù)fopen()的調(diào)用形式為:fp=fopen(文件名,文件使用方式)?!拔募褂梅绞健闭f(shuō)明:方式“r”為以輸入方式打開(kāi)一個(gè)文本文件;方式“a+”為以讀/寫(xiě)方式打開(kāi)一個(gè)文本文件,保留文件中原有的數(shù)據(jù);方式“w+”為以讀/寫(xiě)方式建立一個(gè)新的文本文件;方式“r+”為以讀/寫(xiě)方式打開(kāi)一個(gè)文本文件。17、下列選項(xiàng)中,不屬于模塊間耦合的是()。A、內(nèi)容耦合B、異構(gòu)耦合C、控制耦合D、數(shù)據(jù)耦合標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:耦合可以分為下列幾種,它們之間的耦合度由高到低排列:內(nèi)容耦合一一若一個(gè)模塊直接訪(fǎng)問(wèn)另一模塊的內(nèi)容,則這兩個(gè)模塊稱(chēng)為內(nèi)容耦合。公共耦合一一若一組模塊都訪(fǎng)問(wèn)同一全局?jǐn)?shù)據(jù)結(jié)構(gòu),則稱(chēng)為公共耦合。外部耦合一一若一組模塊都訪(fǎng)問(wèn)同一全局?jǐn)?shù)據(jù)項(xiàng),則稱(chēng)為外部耦合??刂岂詈稀粢荒K明顯地把開(kāi)關(guān)量、名字等信息送入另一模塊,控制另一模塊的功能,則稱(chēng)為控制耦合。標(biāo)記耦合一一若兩個(gè)以上的模塊都需要其余某一數(shù)據(jù)結(jié)構(gòu)的子結(jié)構(gòu)時(shí),不使用其余全局變量的方式而全使用記錄傳遞的方式,這樣的耦合稱(chēng)為標(biāo)記耦合。數(shù)據(jù)耦合——若一個(gè)模塊訪(fǎng)問(wèn)另一個(gè)模塊,被訪(fǎng)問(wèn)模塊的輸入和輸出都是數(shù)據(jù)項(xiàng)參數(shù),則這兩個(gè)模塊為數(shù)據(jù)耦合。非直接耦合——若兩個(gè)模塊沒(méi)有直接關(guān)系,它們之間的聯(lián)系完全是通過(guò)程序的控制和調(diào)用來(lái)實(shí)現(xiàn)的,則稱(chēng)這兩個(gè)模塊為非直接耦合,這樣的耦合獨(dú)立性最強(qiáng)。18、以下關(guān)于C語(yǔ)言的敘述中正確的是()。A、預(yù)處理命令通常位于函數(shù)體外面,但也可以位于函數(shù)體中間B、C語(yǔ)言中的變量定義須在其他語(yǔ)句之前C、在C語(yǔ)言程序的書(shū)寫(xiě)中,一個(gè)語(yǔ)句必須單占一行D、一個(gè)C語(yǔ)言源程序可以由一個(gè)或多個(gè)源文件組成,每個(gè)源文件可由自己的main函數(shù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:源程序中可以有預(yù)處理命令(include命令僅為其中的一種)。C語(yǔ)言中的變量可以在使用之前的任何位置進(jìn)行定義。C語(yǔ)言程序的書(shū)寫(xiě)中,多個(gè)語(yǔ)句可以位于一行,但為了增強(qiáng)可讀性,一般每行只有一條語(yǔ)句。一個(gè)C語(yǔ)言源程序可以由一個(gè)或多個(gè)源文件組成,但僅可以有一個(gè)main函數(shù)。19、設(shè)一棵滿(mǎn)二叉樹(shù)共有15個(gè)結(jié)點(diǎn),則在該滿(mǎn)二叉樹(shù)中的葉子結(jié)點(diǎn)數(shù)為()。A、7B、8C、9D、10標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在具有n個(gè)結(jié)點(diǎn)的滿(mǎn)二叉樹(shù),其非葉子結(jié)點(diǎn)數(shù)為int(n/2),而葉子結(jié)點(diǎn)數(shù)等于總結(jié)點(diǎn)數(shù)減去非葉子結(jié)點(diǎn)數(shù)。本題n=15,故非葉子結(jié)點(diǎn)數(shù)等于int(15/2)=7,葉子結(jié)點(diǎn)數(shù)等于15-7=8。20、設(shè)變量x和變量y都是int類(lèi)型,且x=1,y=2,則printI!("%d%dt",x,y,(x,y))的輸出結(jié)果是()。A、12B、122C、1,2D、輸出值不確定標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查printf函數(shù)的格式和逗號(hào)表達(dá)式。printf函數(shù)在輸出時(shí),是根據(jù)格式說(shuō)明符的個(gè)數(shù)輸出的,如果函數(shù)中有多余的項(xiàng)將不予輸出;如果有輸出項(xiàng)少于格式說(shuō)明符,則出錯(cuò),不能輸出正確的結(jié)果。本題中逗號(hào)表達(dá)式(x,y)只返回y的值。此時(shí)格式說(shuō)明的個(gè)數(shù)是2,而輸出項(xiàng)的個(gè)數(shù)是3,因此printf函數(shù)只輸出前兩項(xiàng)。21、當(dāng)變量c的值不為2、4、6時(shí),值也為”真”的表達(dá)式是()。A、(c>=2&&c<=6)&&(c%21=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é)果一定為真。22、有以下程序:#includemain(){inti=5;do{if(i%3==1)if(i%5==2){printf("*%d",i);break;}i++:}while(i!=0);printf("\n");}程序運(yùn)行的結(jié)果是()。A、*7B、*3*5C、*5D、*2*6標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在dowhile循環(huán)中,總是先執(zhí)行循環(huán)體后判斷循環(huán)條件,所以循環(huán)體至少會(huì)被執(zhí)行一次。在循環(huán)中,如果滿(mǎn)足(i%3==1)&&(i%5==2)那么輸出i的值,退出循環(huán);否則i++,如果i==0則跳出循環(huán)。23、有以下程序:#include#includestructA{inta;charb[10];doublec;};voidf(structA*t);main(){structAa={1001,"ZhangDa",1098.0};f(&a);printf("%d,%s,%6.tha",a.a(chǎn),a.b,a.c);}voidf(structA*t){t->a=1002;strcpy(t->b,"ChangRong");t->c=1202.0;)程序運(yùn)行后的輸出結(jié)果是()。A、1001,zhangDa,1098.0B、1002,ChangRong,1202.0C、1001,ChmagRong,1098.0D、1002,zhangDa,1202.0標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題主要考查是的函數(shù)調(diào)用時(shí)參數(shù)之間的傳遞問(wèn)題。在C語(yǔ)言中參數(shù)之間的傳遞是傳值,也就是把實(shí)參的值復(fù)制一份傳遞給形參,而實(shí)參的值不發(fā)生變化。但對(duì)于指針調(diào)用來(lái)說(shuō),函數(shù)直接對(duì)實(shí)參的地址操作,因此在這種情況下實(shí)參變化。24、以下選項(xiàng)中不能作為C語(yǔ)言合法常量的是()。A、’cd’B、0.1e+6C、aD、’\011’標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:常量包括整型常量、實(shí)型常量、字符常量和字符串常量等。單引號(hào)表示字符常量,但不能包含字符串。表達(dá)字符串常量時(shí)需用雙引號(hào)。25、軟件調(diào)試的目的是()。A、發(fā)現(xiàn)錯(cuò)誤B、改善軟件的性能C、改正錯(cuò)誤D、驗(yàn)證軟件的正確性標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在對(duì)程序進(jìn)行了成功的測(cè)試之后將進(jìn)入程序調(diào)試,程序調(diào)試的任務(wù)是診斷和改正程序中的錯(cuò)誤。26、若有以下定義和語(yǔ)句:#include<stdio.h>chars1[10]="abcd!",*s2="\n123\\";printf("%d%d\n",strlen(s1),strlen(s2));則輸出結(jié)果是()。A、107B、105C、55D、58標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:strlen函數(shù)返回字符串的長(zhǎng)度,求字符串長(zhǎng)度時(shí),遇到結(jié)束標(biāo)志‘\0’為止,但是長(zhǎng)度不包括結(jié)束標(biāo)識(shí)。字符數(shù)組s1的后5個(gè)元素沒(méi)有賦值,都為‘\0’,即“abcd!”后為‘\0’。所以sIrlen(s1)的值為5。字符指針s2所指向的字符串中,\n為轉(zhuǎn)義字符換行符,表示1個(gè)字符,\\也為轉(zhuǎn)義寧符,代表\,也是1個(gè)字符,其后為字符串結(jié)束標(biāo)識(shí)‘0’;所以strlen(s2)的值也為5。因此C選項(xiàng)正確。27、有三個(gè)關(guān)系R、S和T如下:則由關(guān)系R和s得到關(guān)系T的操作是()。A、自然連接B、并C、交D、差標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:關(guān)系T中的元組是關(guān)系R中有而關(guān)系S中沒(méi)有的元組的集合,即從關(guān)系R中除去與關(guān)系S中相同元組后得到的關(guān)系T。所以做的是差運(yùn)算。28、以下敘述中錯(cuò)誤的是()。A、C程序在運(yùn)行過(guò)程中所有計(jì)算都以二進(jìn)制方式進(jìn)行B、C程序在運(yùn)行過(guò)程中所有計(jì)算都以十進(jìn)制方式進(jìn)行C、所有C程序都需要編譯鏈接無(wú)誤后才能運(yùn)行D、C程序中字符變量存放的是字符的ASCII碼值標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:C程序在運(yùn)行過(guò)程中的所有計(jì)算都以二進(jìn)制方式進(jìn)行,所以B選項(xiàng)錯(cuò)誤。29、下列關(guān)于二叉樹(shù)的敘述中,正確的是()。A、有一個(gè)以上根節(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是非線(xiàn)性結(jié)構(gòu)B、只有一個(gè)根節(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是線(xiàn)性結(jié)構(gòu)C、循環(huán)鏈表是非線(xiàn)性結(jié)構(gòu)D、雙向鏈表是非線(xiàn)性結(jié)構(gòu)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:線(xiàn)性結(jié)構(gòu)應(yīng)滿(mǎn)足:有且只有一個(gè)根節(jié)點(diǎn)與每個(gè)節(jié)點(diǎn)最多有一個(gè)前件,也最多有一個(gè)后件,所以B正確。所以有一個(gè)以上根節(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)一定是非線(xiàn)性結(jié)構(gòu),所以A錯(cuò)誤。循環(huán)鏈表和雙向鏈表都是線(xiàn)性結(jié)構(gòu)的數(shù)據(jù)結(jié)構(gòu)。30、軟件生命周期中的活動(dòng)不包括()。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ù)二叉樹(shù)的基本性質(zhì)3:在任意一棵二叉樹(shù)中,度為0的葉子節(jié)點(diǎn)總是比度為2的節(jié)點(diǎn)多一個(gè)。所以選擇B。31、若有定義:doublea=22;inti=0.k=18;則不符合C語(yǔ)言規(guī)定的賦值語(yǔ)句是()。A、a=a++,i++;B、i=(a+k)<=(i+k);C、i=a%11;D、i=!a;標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:自增、自減操作符適用于char、short、int、long、float、double等類(lèi)型,故選項(xiàng)A正確;賦值操作符“=”的優(yōu)先級(jí)小于比較操作符“<=”,所以選項(xiàng)B等價(jià)于:i=((a+k)<=(i+k));,即將后面比較操作符的結(jié)果賦值給i,故選項(xiàng)B也正確;“!”是邏輯非運(yùn)算符,i=!a表示將a表達(dá)式的值取反,賦值給i,故選項(xiàng)D也正確;求模運(yùn)算符“%”的操作數(shù)只能是整數(shù),故選項(xiàng)C錯(cuò)誤,因此答案選C。32、以下敘述中正確的是()。A、charc1,c2,*c3,c4[40];是合法的變量定義語(yǔ)句B、數(shù)組下標(biāo)的下限由數(shù)組中第一個(gè)非零元素的位置決定C、數(shù)組下標(biāo)的下限由數(shù)組中第一個(gè)被賦值元素的位置決定D、數(shù)組下標(biāo)的下限是1標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:暫無(wú)解析33、有以下程序:#include<stdio.h>#include<string.h>typedefstruct{charname[9];charsex;floatscore[2];}STU;voidf(STUa){STUb={’’Zhao’’,’m’,85.0,90.0};inti;strcpy(a.name,b.name);a.sex=b.sex;for(i=0;i<2;i++)a.score[i]=b.score[i];}main(){STUc={’’Qian’’,’f’,95.0,92.0};f(c);printf(’’%s,%c,%2.0f,%2.0f\n’’,c.name,c.sex,c.score[0],c.score[1]);}程序運(yùn)行后的輸出結(jié)果是()。A、Zhao,m,85,90B、Qian,m,85,90C、Zhao,f,95,92D、Qian,f,95,92標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查結(jié)構(gòu)體的相關(guān)操作以及傳值、傳址的區(qū)別,該題中調(diào)用f函數(shù)后,會(huì)生成參數(shù)c的一個(gè)副本,而不會(huì)改變c的值,所以c值維持原值,選項(xiàng)D正確。34、以下敘述中正確的是A、在C程序中的八進(jìn)制和十六進(jìn)制,可以是浮點(diǎn)數(shù)B、整型變量可以分為int型、short型、long型和unsigned型四種C、八進(jìn)制數(shù)的開(kāi)頭要使用英文字母o,否則不能與十進(jìn)制區(qū)分開(kāi)D、英文大寫(xiě)字母X和英文小寫(xiě)字母x都可以作為二進(jìn)制數(shù)字的開(kāi)頭字符標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:C程序中的實(shí)型常量只有十進(jìn)制一種數(shù)制,所以A錯(cuò)誤,八進(jìn)制數(shù)以0打頭,所以C錯(cuò)誤,C語(yǔ)言中整數(shù)只有十進(jìn)制,八進(jìn)制,十六進(jìn)制三種沒(méi)有二進(jìn)制數(shù)制,所以D錯(cuò)誤。35、為了使模塊盡可能獨(dú)立,要求()。A、內(nèi)聚程度要盡量高,耦合程度要盡量強(qiáng)B、內(nèi)聚程度要盡量高,耦合程度要盡量弱C、內(nèi)聚程度要盡量低,耦合程度要盡量弱D、內(nèi)聚程度要盡量低,耦合程度要盡量強(qiáng)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:模塊獨(dú)立性是指每個(gè)模塊只完成系統(tǒng)要求的獨(dú)立的子功能,并且與其他模塊的聯(lián)系最少且接口簡(jiǎn)單。耦合性與內(nèi)聚性是模塊獨(dú)立性的兩個(gè)定性標(biāo)準(zhǔn),耦合與內(nèi)聚是相互關(guān)聯(lián)的。在程序結(jié)構(gòu)中,各模塊的內(nèi)聚性越強(qiáng),則耦合性越弱。一般較優(yōu)秀的軟件設(shè)計(jì),應(yīng)盡量做到高內(nèi)聚,低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨(dú)立性。36、設(shè)有定義:struct{intn;floatx;}s[2],m[2]={{10,2.8},{0,0.0}};則以下賦值語(yǔ)句中正確的是A、s[0]=m[1];B、s=m;C、s.n=m.n;D、s[2].x=m[2].x;標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:定義了結(jié)構(gòu)體類(lèi)型數(shù)組s,長(zhǎng)度為2,結(jié)構(gòu)體類(lèi)型數(shù)組m,長(zhǎng)度為2,并進(jìn)行了初始化。同類(lèi)型的結(jié)構(gòu)體可以直接用變量名實(shí)現(xiàn)賦值,A選項(xiàng)正確。數(shù)組名為數(shù)組首地址,地址常量之間不可以相互賦值,B選項(xiàng)錯(cuò)誤。C選項(xiàng)引用結(jié)構(gòu)體成員錯(cuò)誤,數(shù)組名為地址常量不是結(jié)構(gòu)體變量,不能引用成員,C選項(xiàng)錯(cuò)誤。D選項(xiàng)數(shù)組越界,不存在s[2]與m[2],D選項(xiàng)錯(cuò)誤。37、有以下程序#include<stdio.h>main(){inta=1,b=0;for(;a<5;a++){if(a%2==0)break;continue;b+=a;}printf("%d\n",b);}程序運(yùn)行后的輸出結(jié)果是A、0B、1C、10D、4標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:題干中for循環(huán)有break和continue語(yǔ)句,且均放在b+=a語(yǔ)句前面,無(wú)論if條件是否滿(mǎn)足,b+=a都不會(huì)被執(zhí)行,因此b值始終為0,答案為A選項(xiàng)。38、設(shè)某二叉樹(shù)的前序序列與中序序列均為ABCDEFGH,則該二叉樹(shù)的后序序列為A、HGFEDCBAB、EFGHABCDC、DCBAHGFED、ABCDEFGH標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:二叉樹(shù)遍歷可以分為3種:前序遍歷(訪(fǎng)問(wèn)根結(jié)點(diǎn)在訪(fǎng)問(wèn)左子樹(shù)和訪(fǎng)問(wèn)右子樹(shù)之前)、中序遍歷(訪(fǎng)問(wèn)根結(jié)點(diǎn)在訪(fǎng)問(wèn)左子樹(shù)和訪(fǎng)問(wèn)右子樹(shù)兩者之間)、后序遍歷(訪(fǎng)問(wèn)根結(jié)點(diǎn)在訪(fǎng)問(wèn)左子樹(shù)和訪(fǎng)問(wèn)右子樹(shù)之后)。二叉樹(shù)的前序序列與中序序列相同,說(shuō)明此樹(shù)結(jié)點(diǎn)沒(méi)有左子樹(shù),且第一個(gè)節(jié)點(diǎn)A為根節(jié)點(diǎn),而后序遍歷中根節(jié)點(diǎn)應(yīng)在最后被訪(fǎng)問(wèn),即節(jié)點(diǎn)A在最后出現(xiàn),由此推斷出后序遍歷為HGFEDCBA,故A選項(xiàng)正確39、軟件開(kāi)發(fā)中,需求分析階段可以使用的工具是()。A、N-S圖B、DFD圖C、PAD圖D、程序流程圖標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:結(jié)構(gòu)化分析方法是結(jié)構(gòu)化程序設(shè)計(jì)理論在軟件需求解析階段的運(yùn)用,數(shù)據(jù)流圖(DataFlowDiagram,DFD)是結(jié)構(gòu)化分析常用的工具之一,數(shù)據(jù)字典、判定樹(shù)和判定表也是常用的結(jié)構(gòu)化分析工具。程序流程圖、NS圖、PAD圖等圖形工具用于詳細(xì)設(shè)計(jì)的過(guò)程中。40、在面向方法中,不屬于“對(duì)象”基本特點(diǎn)的是()。A、一致性B、分類(lèi)性C、多態(tài)性D、標(biāo)識(shí)唯一性標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:對(duì)象的基本特點(diǎn)有:①標(biāo)識(shí)唯一性,是指對(duì)象是可區(qū)分的;②分類(lèi)性,是指可將具有相同屬性和操作的對(duì)象抽象成類(lèi);③多態(tài)性,是指同一個(gè)操作可以是不同對(duì)象的行為;④封裝性,是指對(duì)象的內(nèi)部對(duì)外不可見(jiàn),在外面不可直接使用對(duì)象的處理能力,也不能直接修改對(duì)象的內(nèi)部狀態(tài);⑤模塊獨(dú)立性,是指模塊內(nèi)部各部分及模塊間的關(guān)系的一種衡量標(biāo)準(zhǔn),由內(nèi)聚和耦合來(lái)度量。二、程序填空題(本題共1題,每題1.0分,共1分。)41、函數(shù)fun的功能是:把形參a所指數(shù)組中的偶數(shù)按原順序依次存放到a[0]、a[1]、a[2]、……中,把奇數(shù)從數(shù)組中刪除,偶數(shù)個(gè)數(shù)通過(guò)函數(shù)值返回。例如:若a所指數(shù)組中的數(shù)據(jù)最初排列為:9、1、4、2、3、6、5、8、7,刪除奇數(shù)后a所指數(shù)組中的數(shù)據(jù)為:4、2、6、8,返回值為4。請(qǐng)?jiān)诔绦虻南聞澗€(xiàn)處填入正確的內(nèi)容并把下劃線(xiàn)刪除,使程序得出正確的結(jié)果。注意:源程序存放在考生文件夾下的BLANKl.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!#include#defineN9intfun(inta[],intn)(inti,j;j=0jfor(i=0;i標(biāo)準(zhǔn)答案:(1)a[i]%2(2)a[j](3)j知識(shí)點(diǎn)解析:奇數(shù)和偶數(shù)的判斷可用取余的方法來(lái)實(shí)現(xiàn),a[i]%2等于0,那么a[i]是偶數(shù),否則是奇數(shù)。[解題思路]函數(shù)fun的功能是把形參a所指數(shù)組中的偶數(shù)按原順序依次存放到a,把奇數(shù)從數(shù)組中刪除。第一空:由“___2___=a[i];j++;”是將偶數(shù)元素保存起來(lái)并且計(jì)數(shù)變量加1,可知j記錄了偶數(shù)元素的個(gè)數(shù),第一空處是判斷a[i]是否是偶數(shù),因此第一空處應(yīng)為“a[i]%2”。第二空:a所指數(shù)組中的偶數(shù)按原順序依次存放到a[0]、a[1]、a[2]…,j初始化為0,a[j]就可以將偶數(shù)元素存放在a中,故第二空處應(yīng)為“a[j]”。第三空:fun函數(shù)的返回值是偶數(shù)個(gè)數(shù),故第三空處應(yīng)為“j”。三、程序修改題(本題共1題,每題1.0分,共1分。)42、下列給定程序中,fun函數(shù)的功能是:根據(jù)形參m,計(jì)算下列公式的值。t=1+1/2+1/3+1/4+…+1/m例如,若輸入5,則應(yīng)輸出2.283333。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>doublefun(intm){doublet=1.0;inti;for(i=2;i<=m;i++)/******found******/t+=1.0/k;/******found******/returni;}voidmain(){intm;system("CLS");printf("Pleaseenterlintegernumber:");scanf("%d",&m);printf("Theresultis%lf\n",fun(m));}標(biāo)準(zhǔn)答案:(1)t+=1.0/i;(2)returnt;知識(shí)點(diǎn)解析:本題考查:for循環(huán)語(yǔ)句的循環(huán)條件;函數(shù)返回值。該題目考查分母成等差數(shù)列遞增的一個(gè)數(shù)學(xué)公式,先看循環(huán)條件for(i=2;i<=m;i++),i從2開(kāi)始遞增到m,所以t的值應(yīng)該是由1.0/i的值逐步循環(huán)疊加后的結(jié)果,而不是t+=1.0/k;。returni考查對(duì)程序的解讀能力,當(dāng)循環(huán)結(jié)束后(由輸入m的值決定),函數(shù)返回當(dāng)前t的值。四、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)43、規(guī)定輸入的字符串中只包含字母和*號(hào)。請(qǐng)編寫(xiě)函數(shù)fun,其功能是:使字符串的前導(dǎo)*號(hào)不得多于n個(gè),若多于n個(gè),則刪除多余的*號(hào);若少于或等n個(gè),則不做處理,字符串中間和尾部的*號(hào)不刪除。例如,字符串中的內(nèi)容為:*******A*BC*DEF*G****,若n的值為4,刪除后,字符串中的內(nèi)容應(yīng)當(dāng)是:****A*BC*DEF*G****;若n的值為8,則字符串中的內(nèi)容仍為:*******A*BC*DEF*G****。n的值在主函數(shù)中輸入。在編寫(xiě)函數(shù)時(shí),不得使用C語(yǔ)言提供的字符串函數(shù)。注意:請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。試題程序:#include<stdio.h>voidfun(char*a,intn){}main(){chars[81];intn;voidNONO();printf("Enterastring:\n");gets(s);printf("Entern:");scanf("%d",&n);fun(s,n);printf("Thestringafterdeleted:\n");puts(s);NONO();}voidNONO()(/*本函數(shù)用于打開(kāi)文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/FILE*in,*out;inti,n;chars[81];in=fopen("in.dat","r");out=fopen("out.dat","w");for(i=0;i<10;i++){fscanf(in,"%s",s);fscanf(in,"%d",&n);fun(s,n);fprintf(out,"%s\n",s);}fclose(in);fclose(out);}標(biāo)準(zhǔn)答案:voidfun(char*a,intn){inti=
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025學(xué)年廣東省廣州市部分學(xué)校高二上學(xué)期期中考試歷史試卷
- 2025年企業(yè)內(nèi)部控制完善咨詢(xún)合同
- 2025年住宅小區(qū)機(jī)動(dòng)車(chē)停放安全與管理協(xié)議
- 2025年高效酸霧凈化器項(xiàng)目規(guī)劃申請(qǐng)報(bào)告模式
- 2025年企業(yè)并購(gòu)協(xié)議問(wèn)答
- 2025年建筑施工照明設(shè)備安裝安全策劃協(xié)議書(shū)
- 2025年水利項(xiàng)目施工勞務(wù)合同
- 2025年酒類(lèi)銷(xiāo)售合作合同
- 2025年醫(yī)院安保人員雇傭合同范本
- 2025年住宅建設(shè)項(xiàng)目合同管理與績(jī)效
- 走新型城鎮(zhèn)化道路-實(shí)現(xiàn)湘潭城鄉(xiāng)一體化發(fā)展
- 【語(yǔ)文】第23課《“蛟龍”探?!氛n件 2024-2025學(xué)年統(tǒng)編版語(yǔ)文七年級(jí)下冊(cè)
- 2024年決戰(zhàn)行測(cè)5000題言語(yǔ)理解與表達(dá)(培優(yōu)b卷)
- 第三單元名著導(dǎo)讀《駱駝祥子》整本書(shū)閱讀教學(xué)設(shè)計(jì)+2023-2024學(xué)年統(tǒng)編版語(yǔ)文七年級(jí)下冊(cè)
- 《中國(guó)人民站起來(lái)了》課件+2024-2025學(xué)年統(tǒng)編版高中語(yǔ)文選擇性必修上冊(cè)
- 單值-移動(dòng)極差控制圖(自動(dòng)版)
- 重走長(zhǎng)征路卡通思維導(dǎo)圖
- 醫(yī)院招聘醫(yī)護(hù)人員報(bào)名登記表
- 央企最新版員工手冊(cè)vvv
- 0- 18歲兒童少年身高、體重百分位數(shù)值表
- 吸收塔防腐施工方案(電廠脫硫裝置防腐施工工藝)
評(píng)論
0/150
提交評(píng)論