




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
國家二級C語言機試(選擇題)模擬試卷9(共9套)(共358題)國家二級C語言機試(選擇題)模擬試卷第1套一、選擇題(本題共40題,每題1.0分,共40分。)1、程序流程圖中帶有箭頭的線段表示的是A、圖元關(guān)系B、數(shù)據(jù)流C、控制流D、調(diào)用關(guān)系標準答案:C知識點解析:在數(shù)據(jù)流圖中,用標有名字的箭頭表示數(shù)據(jù)流。在程序流程圖中,用標有名字的箭頭表示控制流。所以選擇C。2、結(jié)構(gòu)化程序設(shè)計的基本原則不包括A、多態(tài)性B、自頂向下C、模塊化D、逐步求精標準答案:A知識點解析:結(jié)構(gòu)化程序設(shè)計的思想包括:自頂向下、逐步求精、模塊化、限制使用goto語句,所以選擇A。3、軟件設(shè)計中模塊劃分應(yīng)遵循的準則是A、低內(nèi)聚低耦合B、高內(nèi)聚低耦合C、低內(nèi)聚高耦合D、高內(nèi)聚高耦合標準答案:B知識點解析:軟件設(shè)計中模塊劃分應(yīng)遵循的準則是高內(nèi)聚低偶合、模塊大小規(guī)模適當、模塊的依賴關(guān)系適當?shù)?。模塊的劃分應(yīng)遵循一定的要求,以保證模塊劃分合理,并進一步保證以此為依據(jù)開發(fā)出的軟件系統(tǒng)可靠性強,易于理解和維護。模塊之間的耦合應(yīng)盡可能的低,模塊的內(nèi)聚度應(yīng)盡可能的高。4、在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是A、可行性分析報告B、軟件需求規(guī)格說明書C、概要設(shè)計說明書D、集成測試計劃標準答案:B知識點解析:A錯誤,可行性分析階段產(chǎn)生可行性分析報告。C錯誤,概要設(shè)計說明書是總體設(shè)計階段產(chǎn)生的文檔。D錯誤,集成測試計劃是在概要設(shè)計階段編寫的文檔。B正確,需求規(guī)格說明書是后續(xù)工作如設(shè)計、編碼等需要的重要參考文檔。5、算法的有窮性是指A、算法程序的運行時間是有限的B、算法程序所處理的數(shù)據(jù)量是有限的C、算法程序的長度是有限的D、算法只能被有限的用戶使用標準答案:A知識點解析:算法原則上能夠精確地運行,而且人們用筆和紙做有限次運算后即可完成。有窮性是指算法程序的運行時間是有限的。6、對長度為n的線性表排序,在最壞情況下,比較次數(shù)不是n(n-1)/2的排序方法是A、快速排序B、冒泡排序C、直接插入排序D、堆排序標準答案:D知識點解析:除了堆排序算法的比較次數(shù)是O(nlog2n),其他的都是n(n-1)/2。7、下列關(guān)于棧的敘述正確的是A、棧按"先進先出"組織數(shù)據(jù)B、棧按"先進后出"組織數(shù)據(jù)C、只能在棧底插入數(shù)據(jù)D、不能刪除數(shù)據(jù)標準答案:B知識點解析:棧是按"先進后出"的原則組織數(shù)據(jù)的,數(shù)據(jù)的插入和刪除都在棧頂進行操作。8、在數(shù)據(jù)庫設(shè)計中,將E-R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過程屬于A、需求分析階段B、概念設(shè)計階段C、邏輯設(shè)計階段D、物理設(shè)計階段標準答案:C知識點解析:E-R圖轉(zhuǎn)換成關(guān)系模型數(shù)據(jù)則是把圖形分析出來的聯(lián)系反映到數(shù)據(jù)庫中,即設(shè)計出表,所以屬于邏輯設(shè)計階段。9、有三個關(guān)系R、S和T如下:由關(guān)系R和S通過運算得到關(guān)系T,則所使用的運算為A、并B、自然連接C、笛卡爾積D、交標準答案:D知識點解析:自然連接是一種特殊的等值連接,它要求兩個關(guān)系中進行比較的分量必須是相同的屬性組,并且在結(jié)果中把重復(fù)的屬性列去掉,所以B錯誤。笛卡爾積是用R集合中元素為第一元素,S集合中元素為第二元素構(gòu)成的有序?qū)?,所以C錯誤。根據(jù)關(guān)系T可以很明顯的看出是從關(guān)系R與關(guān)系S中取得相同的關(guān)系組所以取得是交運算,選擇D。10、設(shè)有表示學(xué)生選課的三張表,學(xué)生S(學(xué)號,姓名,性別,年齡,身份證號),課程C(課號,課名),選課SC(學(xué)號,課號,成績),則表SC的關(guān)鍵字(鍵或碼)為A、課號,成績B、學(xué)號,成績C、學(xué)號,課號D、學(xué)號,姓名,成績標準答案:C知識點解析:學(xué)號是學(xué)生表S的主鍵,課號是課程表C的主鍵,所以選課表SC的關(guān)鍵字就應(yīng)該是與前兩個表能夠直接聯(lián)系且能唯一定義的學(xué)號和課號,所以選擇C。11、C語言程序的模塊化通過以下哪個選項來實現(xiàn)A、變量B、函數(shù)C、程序行D、語句標準答案:B知識點解析:C語言程序的模塊化通過函數(shù)來體現(xiàn),所以選擇B。12、以下選項中不屬于C語言標識符的是A、常量B、用戶標識符C、關(guān)鍵字D、預(yù)定義標識符標準答案:A知識點解析:常量是指在程序運行過程中其值不能被改變的量,如5、1.0、字符’a’等。C語言的標識符分為3類:關(guān)鍵字、預(yù)定義標識符和用戶標識符。常量不屬于標識符,所以選擇A。13、以下選項中不屬于C語言程序運算符的是A、sizeofB、<>C、()D、&&標準答案:B知識點解析:C語言中的不等于符號用"!="表示,沒有符號"<>"。所以選擇B。14、若變量已正確定義并賦值,以下不能構(gòu)成C語句的選項是A、B++;B、A=a+b;C、a=a+bD、A?a:b;標準答案:C知識點解析:C語言規(guī)定,C語句必須以分號";"結(jié)束。C選項中沒有結(jié)束符號,所以錯誤。15、若有以下程序段doublex=5.16894;printf("%f\n",(int)(x*1000+0.5)/(double)1000);則程序段的輸出結(jié)果是A、5.170000B、5.175000C、5.169000D、5.168000標準答案:C知識點解析:%f的輸出格式是以帶小數(shù)點的數(shù)學(xué)形式輸出浮點數(shù)。首先計算x*1000,結(jié)果為5168.94然后+0.5,結(jié)果為5169.44,然后進行強制類型轉(zhuǎn)換,轉(zhuǎn)換成整型為5169,然后除以雙精度數(shù)據(jù)1000,結(jié)果也為雙精度數(shù)據(jù)5.169,輸出時按照%f的格式輸出,所以輸出結(jié)果為5.169000。16、設(shè)有定義:doublea,b,c;若要求通過輸入分別給a、b、c輸入1、2、3,輸入形式如下(注:此處□代表一個空格)□□1.0□□2.0□□3.0<回車>則能進行正確輸入的語句是A、scanf("%lf%lf%lf",a,b,c);B、scanf("%lf%lf%lf",&a,&b,&c);C、scanf("%f%f%f",&a,&b,&c);D、scanf("%5.1lf%5.1lf%5.1lf",&a,&b,&c);標準答案:B知識點解析:scanf函數(shù)的一般形式為scanf(格式控制,變量1地址,變量2地址,…),其中,格式字符串要與數(shù)據(jù)類型保持一致,所以格式字符串中應(yīng)為%lf,后面應(yīng)該為變量地址,所以需要加上符號"&",所以選擇B。17、若有定義語句charc=’\101’;則變量c在內(nèi)存中占A、1個字節(jié)B、2個字節(jié)C、3個字節(jié)D、4個字節(jié)標準答案:A知識點解析:本題考察字符變量的存儲空間,每個字符變量被分配一個字節(jié)的內(nèi)存空間。因此A選項正確。18、若有以下程序#includemain(){charc1,c2;c1=’C’+’8’-’3’;c2=’9’-’0’;printf("%c%d\n",c1,c2);}則程序的輸出結(jié)果是A、H’9’B、H9C、F’9’D、表達式不合法輸出無定值標準答案:B知識點解析:本題考察字符變量以及printf()函數(shù)相關(guān)知識,字符變量c1被賦值為’C’+’8’-’3’,即ASSCII碼的運算,67+54-49=72,即H;字符變量c2被賦值為’9’-’0’,但輸出時,需要注意的是c1以字符變量輸出,而c2是以十進制整型變量輸出。因此B選項正確。19、表示關(guān)系式x≤y≤z的C語言表達式的是A、(x<=y)&&(y<=x)B、(x<=y)||(y<=x)C、(x<=y<=z)D、x<=y)!(y<=x)標準答案:A知識點解析:本題考察關(guān)系表達式和邏輯表達式,y大于等于x同時y小于等于z,因此x<=y和y<=z是邏輯與的關(guān)系。因此A選項正確。20、有以下程序#includemain(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case1:b++;break;}case2:a++;b++;break;}printf("a=%d,b=%d\n",a,b);}程序運行后的輸出結(jié)果是A、a=1,b=0B、a=1,b=1C、a=2,b=1D、a=2,b=2標準答案:C知識點解析:本題重點考察switch語句,switch語句中case分支后面如果沒有break,那么就會順序執(zhí)行下面的case,直到遇到break跳出。由于變量a和變量b均賦初值為0,當程序執(zhí)行完語句case0:a++;break;后,a的值為1,繼續(xù)執(zhí)行語句case2:a++;b++;break;a的值為2,b的值為1。因此C選項正確。21、有以下程序#includemain(){intk,j,s;for(k=2;k<6;k++,k++){s=1;for(j=k;j<6;j++)s+=j;}printf("%d\n",s);}程序運行后的輸出結(jié)果是A、6B、10C、24D、40標準答案:B知識點解析:本題重點考察for語句循環(huán)嵌套,首先k=2,進行一次循環(huán)后,k自增兩次,變成4,這時s為1。即當k=4的時候,s=1,j=4,執(zhí)行內(nèi)層循環(huán),s=1+4,j自增1后等于5,s=5+5,j再自增1后即為6,跳出內(nèi)層循環(huán)。k自增兩次后等于6,不成立,跳出外層循環(huán)。最后輸出s的值,即為10。因此B選項正確。22、由以下while構(gòu)成的循環(huán),循環(huán)體執(zhí)行的次數(shù)是intk=0;while(k=1)k++;A、有語法錯,不能執(zhí)行B、一次也不執(zhí)行C、執(zhí)行一次D、無限次標準答案:D知識點解析:本題考察while語句,while語句的語義是:計算表達式的值,當值為真(非0)時,執(zhí)行循環(huán)體語句。k=1為賦值語句,即k的值等于1。while(k=1)=while(1),是死循環(huán),執(zhí)行無限次。因此A選項正確。23、有以下程序#includeintfun(inta,intB){returna+b;}main(){intx=6,y=7,z=8,r;r=fun(fun(x,y),z--);printf("%d\n",r);}程序運行后的輸出結(jié)果是A、21B、15C、20D、31標準答案:A知識點解析:函數(shù)fun的功能是返回兩個形參的和。調(diào)用函數(shù)fun(x,y)時,將變量x=6和y=7的值分別傳送變量a和b,并且通過語句returna+b;將13返回給主函數(shù)。繼續(xù)調(diào)用函數(shù)fun(13,z--),這里z--指將z的值參與運算后,再將z的值減1操作;將13和8分別傳送變量a和b,且通過語句returna+b;將21返回給主函數(shù)。因此A選項正確。24、以下選項中函數(shù)形參不是指針的是A、fun(int*a){…}B、fun(inta[10]){…}C、fun(int&p){…}D、fun(intp[]){…}標準答案:C知識點解析:B選項和D選項是將數(shù)組作為函數(shù)參數(shù);A選項是將指針作為函數(shù)參數(shù);因此C選項正確。25、有以下程序#includemain(){inty=1,x,a[]={2,4,6,8,10},*p;p=&a[1];for(x=0;x<3;x++)y=y+*(p+x);printf("%d\n",y);}程序運行后的輸出結(jié)果是A、17B、19C、18D、20標準答案:B知識點解析:本題通過語句"p=&a[1]將指針變量p指向了存儲單元a[1],即使得p[0]的值為4。然后通過3次for循環(huán),x=0時,*(p+x)=*p=a[1]=4所以y=1+4=5;x=1時,*(p+x)=*(p+1)=a[2]=6,所以y=5+6=11;x=2時,*(p+x)=*(p+2)=a[3]=8,所以y=11+8=19。因此B選項正確。26、以下程序調(diào)用fun函數(shù)求數(shù)組中最大值所在元素的下標。#includevoidfun(int*s,intn,int*k){inti;for(i=0,*k=i;iA、*k=iB、k=iC、*k=i-sD、k=i-s標準答案:A知識點解析:fun函數(shù)的功能是求數(shù)組中最大值所在元素的下標。通過for循環(huán)語句,每次將最大的數(shù)給*k,即*k=i。因此A選項正確。27、有以下程序#includemain(){inta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23},(*p)[4]=a,i,j,k=0;for(i=0;i<3;i++)for(j=0;j<2;j++)k=k+*(*(p+i)+j);printf("%d\n",k);}程序運行后的輸出結(jié)果是A、108B、68C、99D、60標準答案:D知識點解析:該題首先給二維數(shù)組賦值a[3][4]={{1,3,5,7}{9,11,13,15}{17,19,21,23}};(*p)[4]=a指針p指向二維數(shù)組a的首地址,接下來執(zhí)行for循環(huán),首先i=0,j=0時k=k+*(*(p+0)+0)=1(a[0][0]);然后i=0,j=1時k=k+*(*(p+0)+1)=4(a[0][1]);然后j=2時,跳出j的循環(huán),執(zhí)行i的循環(huán)i=1,j=0時k=k+*(*(p+1)+0)=13(a[1][0]);依次類推一直到i=3時跳出全部循環(huán)。循環(huán)語句在這里的功能是累加二維數(shù)組第1列和第2列的元素,累加結(jié)果為60。28、有以下程序#includeintfuna(inta,intB){returna+b;}intfunb(inta,intB){returna-b;}intsss(int(*t)(),intx,inty){return((*t)(x,y));}main(){intx;x=sss(funa,9,3);x+=sss(funb,8,3);printf("%d\n",x);}程序運行后的輸出結(jié)果是A、24B、23C、17D、22標準答案:C知識點解析:由x=sss(funa,9,3);可得到x=9+3=12,而后直接傳入函數(shù)funb,x=x+8-3=12+5=17。因此C選項正確。29、有以下程序#includeintfun(intx){intp;if(x==0||x==1)return(3);p=x-fun(x-2);return(p);}main(){printf("%d\n",fun(9));}程序運行后的輸出結(jié)果是A、4B、5C、9D、7標準答案:D知識點解析:本題考查函數(shù)的遞歸調(diào)用,執(zhí)行f(9)后,f(9)=9-(7-(5-(3-f(1))))=7,所以答案為D選項。30、以下選項中,能正確進行字符串賦值的是A、char*s="ABCDE";B、chars[5]={’A’,’B’,’C’,’D’,’E’};C、chars[4][5]={"ABCDE"};D、char*s;gets(s);標準答案:A知識點解析:本題考查字符數(shù)組的初始化,B選項中賦值號右側(cè)是賦值給一個字符串數(shù)組,而左邊是一個字符數(shù)組,所以錯誤。C選項中字符串包含6個字符,所以不能賦值在左邊只能放5個字符的字符串數(shù)組中。D選項gets函數(shù)中參數(shù)需要指定長度。所以選項A正確。31、有以下程序#includevoidfun(char**p){inti;for(i=0;i<4;i++)printf("%s",p[i]);}main(){char*s[6]={"ABCD","EFGH","IJKL","MNOP","QRST","UVWX"};fun(s);printf("\n");}程序運行后的輸出結(jié)果是A、ABCDEFGHIJKLB、ABCDC、AEIMD、ABCDEFGHIJKLMNOP標準答案:D知識點解析:本題考查字符串數(shù)組,s表示指向字符數(shù)組的指針,s指向了第一個字符串,s++指向了第二個字符串,所以最后輸出結(jié)果為D選項。32、以下fun函數(shù)的功能是將形參s所指字符串內(nèi)容顛倒過來voidfun(char*s){inti,j,k;for(i=0,j=strlen(s)_______;iA、+1B、-1C、+0D、,k=0標準答案:B知識點解析:本題考查字符串處理函數(shù)strlen,strlen計算一個字符串的長度,包含結(jié)尾符,所以本題中j的初始化應(yīng)該是從最后一個字符開始,所以應(yīng)該將得到的字符串長度減1,選項B正確。33、有以下程序#includevoidfun(char*p,intn){charb[6]="abcde";inti;for(i=0,p=b;i<n;i++)p[i]=b[i];}main(){chara[6]="ABCDE";fun(a,5);printf("%s\n",a);}程序運行后的輸出結(jié)果是A、abcdeB、ABCDEC、edcbaD、EDCBA標準答案:B知識點解析:本題考查數(shù)組名作為函數(shù)參數(shù),執(zhí)行f函數(shù)時,傳進去的a指針被重新指向了b,所以原本a數(shù)組的地址內(nèi)容不變,所以輸出結(jié)果為ABCDE,答案為B選項。34、有以下程序#includefun(inta,intb){intstaticm=0,i=2;i=i+m+1;m=i+a+b;returnm;}main(){intk=4,m=1,p;p=fun(k,m);printf("%d,",p);p=fun(k,m);printf("%d\n",p);}程序運行后的輸出結(jié)果是A、8,17B、7,16C、8,8D、7,17標準答案:A知識點解析:本題考查靜態(tài)局部變量,本題中先執(zhí)行fun(4,1)得到返回值為8,此時靜態(tài)局部變量m為8,i為3,那么再次執(zhí)行fun(4,1)得到的值為17,所以選項A正確。35、若有以下程序#includeintk=7;voidf(int**s){int*t=&k;*s=t;printf("%d,%d,%d,",k,*t,**s);}main(){inti=3,*p=&i,**r=&p;f(r);printf("%d,%d,%d\n",i,*p,**r);}則程序的輸出結(jié)果是A、3,3,3,7,7,7B、3,7,7,7,7,7C、7,7,7,3,3,3D、7,7,7,3,7,7標準答案:D知識點解析:在主函數(shù)中分別給整型變量i,指針型變量p和指向指針的指針變量r賦初值;調(diào)用f函數(shù),并將實參變量r的值傳遞給形參變量s,在f函數(shù)中,通過printf("%d,%d,%d,",k,*t,**s);語句輸出7,7,7;返回主函數(shù),通過printf("%d,%d,%d\n",i,*p,**r);輸出3,7,7。因此D選項正確。36、以下結(jié)構(gòu)體說明和變量定義中,正確的是A、typedefstructabc{intn;doublem;}ABC;ABCx,y;B、structabc{intn;doublem};structabcx,y;C、structABC{intn;doublem;}structABCx,y;D、structabc{intn;doublem;};abcx,y;標準答案:A知識點解析:本題考查typedef的使用方法,typedef對已存在的類型使用一個新的名字,選項A中ABC為新的類型別名,定義正確。37、有以下程序#include#includevoidfun(int*p1,int*p2,int*s){s=(int*)malloc(sizeof(int));*s=*p1+*(p2++);}main(){inta[2]={1,2},b[2]={10,20},*s=a;fun(a,b,s);printf("%d\n",*s);}程序運行后的輸出結(jié)果是A、11B、10C、1D、2標準答案:C知識點解析:本題考查把數(shù)組名作為函數(shù)參數(shù),執(zhí)行fun函數(shù)后,s的值并沒有發(fā)生變化,仍然是指向a,所以輸出結(jié)果為1,選項C正確。38、以下程序依次把從終端輸入的字符存放到f文件中,用#作為結(jié)束輸入的標志,則在橫線處應(yīng)填入的選項是#includemain(){FILE*fp;charch;fp=fopen("fname","w");while((ch=getchar())!=’#’)fputc(_______);fclose(fp);}A、ch,"fname"B、fp,chC、chD、ch,fp標準答案:D知識點解析:本題考查fputc函數(shù),該函數(shù)將字符ch寫到文件指針fp所指向的文件的當前寫指針的位置。函數(shù)格式:intfputc(intn,File*fp)答案為D選項。39、有以下程序#include#defineN2#defineMN+1#defineNUM(M+1)*M/2main(){printf("%d\n",NUM);}程序運行后的輸出結(jié)果是A、4B、8C、9D、6標準答案:B知識點解析:本題考查宏定義,宏定義只是做個簡單的替換,執(zhí)行NUM=(N+1+1)*N+1/2=8,選項B正確。40、有以下程序#includemain(){inti=0;i=~i;printf("%d\n",i);}程序運行后的輸出結(jié)果是A、8B、0C、1D、-1標準答案:D知識點解析:本題考查位運算中按位取反,0按位取反就是-1,所以選項D正確。國家二級C語言機試(選擇題)模擬試卷第2套一、選擇題(本題共40題,每題1.0分,共40分。)1、數(shù)據(jù)結(jié)構(gòu)主要研究的是數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的運算和()。A、數(shù)據(jù)的方法B、數(shù)據(jù)的存儲結(jié)構(gòu)C、數(shù)據(jù)的對象D、數(shù)據(jù)的邏輯存儲標準答案:B知識點解析:數(shù)據(jù)結(jié)構(gòu)是研究數(shù)據(jù)元素及其之間的相互關(guān)系和數(shù)據(jù)運算的一門學(xué)科,它包含3個方面的內(nèi)容,即數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲結(jié)構(gòu)和數(shù)據(jù)的運算。2、一棵二叉樹的前序遍歷結(jié)果是ABCEDF,中序遍歷結(jié)果是CBAEDF,則其后序遍歷的結(jié)果是()。A、DBACEFB、CBEFDAC、FDAEBCD、DFABEC標準答案:B知識點解析:由于該二又樹的前序遍歷結(jié)果是ABCEDF,顯然A結(jié)點為根結(jié)點,所以后序遍歷時A結(jié)點是最后遍歷的,其后序遍歷的結(jié)果為CBEFDA。3、在數(shù)據(jù)處理中,其處理的最小單位是()。A、數(shù)據(jù)B、數(shù)據(jù)項C、數(shù)據(jù)結(jié)構(gòu)D、數(shù)據(jù)元素標準答案:B知識點解析:數(shù)據(jù)元素是由多個數(shù)據(jù)項組成,數(shù)據(jù)是能夠被計算機識別、存儲和加工處理的信息載體,數(shù)據(jù)處理的最小單位是數(shù)據(jù)項。4、在數(shù)據(jù)庫系統(tǒng)的內(nèi)部結(jié)構(gòu)體系中,索引屬于()。A、模式B、內(nèi)模式C、外模式D、概念模式標準答案:B知識點解析:內(nèi)模式又稱物理模式,它給出了數(shù)據(jù)庫物理存儲結(jié)構(gòu)與物理存取方法,如數(shù)據(jù)存儲的文件結(jié)構(gòu)、索引、集簇及hash等存取方式與存取路徑,內(nèi)模式的物理性主要體現(xiàn)在操作系統(tǒng)及文件級上,它還未深入到設(shè)備級上(如磁盤及磁盤操作)。5、以下()不屬于對象的基本特征。A、繼承性B、封裝性C、分類性D、多態(tài)性標準答案:A知識點解析:對象具有如下特征:標識惟一性,指對象是可區(qū)分的。分類性,指可以將具有相同屬性和操作的對象抽象成類。多態(tài)性,指同一個操作可以是不同對象的行為。封裝性,從外面看只能看到對象的外部特征,而不知道也無需知道數(shù)據(jù)的具體結(jié)構(gòu)以及實現(xiàn)操作的算法。模塊獨立性好,對象是面向?qū)ο蟮能浖幕灸K,對象內(nèi)部各種元素彼此結(jié)合得很緊密,內(nèi)聚性強。6、數(shù)據(jù)庫系統(tǒng)的核心是()。A、數(shù)據(jù)模型B、軟件開發(fā)C、數(shù)據(jù)庫設(shè)計D、數(shù)據(jù)庫管理系統(tǒng)標準答案:D知識點解析:數(shù)據(jù)庫管理系統(tǒng)DBMS是數(shù)據(jù)庫系統(tǒng)的核心。DBMS是負責(zé)數(shù)據(jù)庫的建立、使用和維護的軟件。DBMS建立在操作系統(tǒng)之上,實施對數(shù)據(jù)庫的統(tǒng)一管理和控制。用戶使用的各種數(shù)據(jù)庫命令以及應(yīng)用程序的執(zhí)行,最終都必須通過DBMS。另外,DBMS還承擔(dān)著數(shù)據(jù)庫的安全保護工作,按照DBA所規(guī)定的要求,保證數(shù)據(jù)庫的完整性和安全性。7、開發(fā)軟件所需高成本和產(chǎn)品的低質(zhì)量之間有著尖銳的矛盾,這種現(xiàn)象稱做()。A、軟件矛盾B、軟件危機C、軟件藕合D、軟件產(chǎn)生標準答案:B知識點解析:隨著計算機軟件規(guī)模的擴大,軟件本身的復(fù)雜性不斷增加,研制周期顯著變長,正確性難以保證,軟件開發(fā)費用上漲,生產(chǎn)效率急劇下降,從而出現(xiàn)了入們難以控制軟件發(fā)展的局面,即所謂的“軟件危機”。8、關(guān)系模型允許定義3類數(shù)據(jù)約束,下列不屬于數(shù)據(jù)約束的是()。A、實體完整性約束B、參照完整性約束C、屬性完整性約束D、用戶自定義的完整性約束標準答案:C知識點解析:關(guān)系模型允許3類數(shù)據(jù)約束,它們是:實體完整性約束該約束要求關(guān)系的主鍵中屬性值不能為空值,這是數(shù)據(jù)庫完整性的最基本要求。參照完整性約束該約束是關(guān)系之間相關(guān)聯(lián)的基本約束,它不允許關(guān)系引用不存在的元組:即在關(guān)系中的外鍵要么是所關(guān)聯(lián)關(guān)系中實際存在的元組,要么就為空值。用戶定義的完整性約束用戶定義的完整性就是針對某一具體關(guān)系數(shù)據(jù)庫的約束條件,它反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語義要求。9、關(guān)系表中的每一行記錄稱為一個()。A、字段B、元組C、屬性D、關(guān)鍵碼標準答案:B知識點解析:在關(guān)系表中,每一列稱為一個屬性,對應(yīng)表中的一個字段;每一行稱為一個元組,對應(yīng)表中的一條記錄。10、在數(shù)據(jù)庫管理技術(shù)的發(fā)展中,數(shù)據(jù)獨立性最高的是()。A、人工管理B、文件系統(tǒng)C、數(shù)據(jù)庫系統(tǒng)D、數(shù)據(jù)模型標準答案:C知識點解析:在人工管理階段,數(shù)據(jù)無法共享,冗余度大,不獨立,完全依賴程序;在文件系統(tǒng)階段,數(shù)據(jù)共享性差;在數(shù)據(jù)庫系統(tǒng)階段,共享性好,獨立性高。11、以下敘述錯誤的是()。A、C語言區(qū)分大小寫B(tài)、C程序中的一個變量,代表內(nèi)存中一個相應(yīng)的存儲單元,變量的值可以根據(jù)需要隨時修改C、整數(shù)和實數(shù)都能用C語言準確無誤地表示出來D、在C程序中,正整數(shù)可以用十進制、八進制和十六進制的形式來表示標準答案:C知識點解析:本題涉及C語言最基本的3個概念:①C語言是區(qū)分大小寫的,q和Q是兩個不同的變量;②變量的實質(zhì)就是在內(nèi)存中占據(jù)一定的存儲單元,存儲單元里存放的是該變量的值,變量的值可以根據(jù)需要進行修改;③整數(shù)在允許的范圍內(nèi)可以準確的表示出來,但不可能表示無限度的實數(shù)。正整數(shù)可用二進制、十進制、八進制和十六進制表示。12、有以下程序段:inti,n;for(i=0;i<8;i++){n=rand()%5;switch(n){case1:case3:printf(“%d\n”,n);break;case2:case4:printf(“%d\n”,n);continue;case0:exit(0);}printf(“%d\n”,n);}以下關(guān)于程序段執(zhí)行情況的敘述,正確的是()A、for循環(huán)語句固定執(zhí)行8次B、當產(chǎn)生的隨機數(shù)n為4時結(jié)束循環(huán)操作C、當產(chǎn)生的隨機數(shù)n為1和2時不做任何操作D、當產(chǎn)生的隨機數(shù)n為0時結(jié)束程序運行標準答案:D知識點解析:當產(chǎn)生的隨機數(shù)n為0時,執(zhí)行case0:exit(0)這條語句,結(jié)束程序的運行。13、可在C程序中用作用戶標識符的一組標識符是()。A、voiddefineWORDB、as_b3_123IfC、For-abccaseD、2cDOSIG標準答案:B知識點解析:C語言規(guī)定,標識符是由字母、數(shù)字或下劃線組成,并且它的第一個字符必須是字母或下劃線,關(guān)鍵字不能用作用戶標識符。14、若變量已正確定義并賦值,則以下符合C語言語法的表達式是()。A、a=a+7;B、a=7+b+c.a(chǎn)++C、int(12.3%4)D、a=a+7=c+b標準答案:B知識點解析:選項A)是一個C語句,不是表達式;選項B)是利用一個逗號表達式給a賦值;選項C)中的“%”求余運算符要求兩個運算對象都必須是整型;選項D)中,不能用表達式給表達式賦值,但是變量可以給自身賦值,例如:a=a+1。15、有以下程序段charch;intk:ch=’a’;k=12;printf(“%c,%d,”,ch,ch,k);printf(“k=%d\n”,k);已知字符a的ASCⅡ十進制代碼為97,則執(zhí)行上述程序段后輸出結(jié)果是()。A、因變量類型與格式描述符的類型不匹配輸出無定值B、輸出項與格式描述符個數(shù)不符,輸出為零值或不定值C、a,97,12k=12D、a,97,k=12標準答案:D知識點解析:在用基本輸出函數(shù)printf時,格式說明與輸出項的個數(shù)應(yīng)該相同。如果格式說明的個數(shù)少于輸出項的個數(shù),多余的輸出項不予輸出;如果格式說明個數(shù)多于輸出項個數(shù),則對于多余的格式項輸出不定值或0。16、下列敘述中錯誤的是()。A、計算機不能直接執(zhí)行用C語言編寫的源程序B、C程序經(jīng)C編譯程序編譯后,生成后綴為.obi的文件是一個二進制文件C、后綴為.obj的文件,經(jīng)連接程序生成后綴為.exe的文件是一個二進制文件D、后綴為.obi和.exe的二進制文件都可以直接運行標準答案:D知識點解析:C源程序經(jīng)過程序編譯之后生成一個后綴為“.obi”的二進制文件(稱為目標文件),然后由稱為“連接程序”的軟件包文件與C語言提供的各種庫函數(shù)連接起來生成一個后綴為“.exe”的可運行文件。17、有以下程序#includevoidmain(){inta=1,b=0;printf(“%d,”,b=(a++)+(a++));printf(“%d\n”,a+b);}程序運行后的輸出結(jié)果是()。A、4,6B、2,5C、3,5D、2,6標準答案:B知識點解析:在主函數(shù)中定義了兩個整型變量a和b,并把它們的初值分別設(shè)置為1和0;在第二條語句中,首先計算b=a+a,然后a自增兩次,因此第二句結(jié)束時,b=2,a=3,然后第三句,a+b=5。18、若有代數(shù)式,(其中e僅代表自然對數(shù)的底數(shù),不是變量),則下列能夠正確表示該代數(shù)式的C語言表達式是()。A、sqrt(abs(n^x+e^x))B、sqrt(fabs(pow(n,x)+pow(x,e)))C、sqrt(fabs(pow(n,x)+exp(x)))D、sqrt(fabs(pow(x,n)+exp(x)))標準答案:C知識點解析:n和e的x冪次方,要分別調(diào)用C語言的數(shù)學(xué)庫函數(shù)doublepow(n,x)和doubleexp(x),因為這兩個函數(shù)的返回值都為double型,對兩者的和計算絕對值,調(diào)用庫函數(shù)doublefabs(pow(n,x)+exp(x)),求出和的絕對值,再調(diào)用開平方函數(shù)doublesqrt(fabs(pow(n,x)+exp(x))),這樣計算出的結(jié)果就是題干中表達式的值。19、設(shè)有定義:intk=0;,下列選項的4個表達式中與其他3個表達式的值不相同的是()。A、k++B、k+=1C、++kD、k+1標準答案:A知識點解析:因為題中有語句“intk=0:”,所以選項B)、C)、D)都是對k的值加1,選項A)的語句k++表示先利用k的值進行運算,然后k的值才加1。20、有下列程序,其中%u表示按無符號整數(shù)輸出。main(){unsignedintx=0xFFFF;/*X的初值為十六進制數(shù)*/printf(“%u\n”,x);}程序運行后的輸出結(jié)果是()。A、.1B、65535C、32767D、0xFFFF標準答案:B知識點解析:“%u”格式符表示以十進制形式輸出無符號整形變量。本題中無符號整形變量x=0xFFFF表示的是十六進制無符號整型變量的最大值65535,所以最后輸出的結(jié)果為65535。21、下面程序的運行結(jié)果是()。for(i=3;i<7;i++)printf((i%2)?(“**%d\n”):(“##%d\n”),i);A、**3##4**5**6B、##3**4##5**6C、##3**4##5##6D、**3##4**5##6標準答案:D知識點解析:本題考查printf函數(shù)的輸出格式和條件表達式“?:”的使用。①printf函數(shù)輸出時“**%d\n”和“##%d\n”中的“##”和“**”都是直接輸出。②條件表達式的基本格式為:“a?b:c”。它的運算規(guī)則為:當a為非0時,整個表達式的值取b的值,當a為0時,整個表達式取c的值。22、設(shè)有語句:if(a==1)b=2;c=3;,以下語句中與之等價的是()。A、if(a==1){b=2;c=3;}B、if(a!=1){;}else{b=2;c=3;}C、if(a==1)c=3;b=2;D、(a==1)?b=2:a=a;c=3;標準答案:D知識點解析:在C語言中,用分號表示一條語句的結(jié)束,用{}把幾條語句放在一塊表示一個語句塊,其整體表示一個功能。因而在題目給出的四個選項中,選項A)、B)、C)均與題中所給不同,而選項D)相同。23、運行下列程序時,若輸入數(shù)據(jù)為“321”,則輸出結(jié)果是()。main(){intnum,i,j,k,s;scanf(“%d”,&num);if(num>99)s=3:elseif(num>9)s=2:elses=1;i=num/100;j=(num—i*100)/10;k=(num—i*100-j*10);switch(s){case3:printf(“%d%d%d\n”,k,j,i);break;case2:printf(“%d%d\n”,k,j);case1:printf(“%d\n”,k);}}A、123B、1,2,3C、321D、3,2,1標準答案:A知識點解析:本題考查if-else語句和switch語句。scanf函數(shù)通過鍵盤讀入num的值。因為num=321>99,所以s=3,i=3,i=2,k=1。因為s=3,所以執(zhí)行case3,輸出k,i,i的值,然后通過break結(jié)束程序。24、有以下程序#include#includestructA{inta;charb[10];doublec;};structAf(structAt);main(){structAa={1001,“ZhangDa”,1098.0};a=ffa);printf(“%d,%s,%6.1f\n”,a.a(chǎn),a.b,a.c);}structAf(structAt){t.a(chǎn)=1002;strcpy(t.b,“WangPeng”);t.C=1220.0;retumt;}程序運行后的輸出結(jié)果是()。A、1001,ZhangDa,1098.0B、1002,ZhangDa,1220.0C、1001,WangPeng,1098.0D、1002,WangPeng,1220.0標準答案:D知識點解析:在主函數(shù)中定義結(jié)構(gòu)體A的變量a,并對其賦初值,再調(diào)用函數(shù)f(a),在函數(shù)f(a)中對結(jié)構(gòu)體變量a的各個成員重新進行了賦值操作,并把其值返回在屏幕上輸出。25、判斷char型變量c1是否為小寫字母的正確表達式為()。A、‘a(chǎn)’<=c1<=‘Z’B、(cl>=a)&&(c1<:z)C、(‘a(chǎn)’>=c1‖(‘z’<=c1)D、(c1>=‘a(chǎn)’)&&(c1<=‘z’)標準答案:D知識點解析:C語言規(guī)定,字符常量在程序中要用單引號括起來。首先判斷c1是否為小寫字母的主要條件c1>=‘a(chǎn)’和c1<=‘z’是邏輯與關(guān)系,其次選項A)的這種形式C語言中沒有,所以選項D)正確。26、設(shè)有定義:chars[10];inti=0;,以下不能將一行(不超過100個字符)帶有空格的字符串正確讀入的語句或語句組是()。A、gets(s);B、scanf(“%s”,s);C、while((s[i++]=getchar())!=‘\n’);s[i]=’\0’;D、do{scanf(“%c”,&s[i]);}while(s[i++]!=‘\n’);s[i]=‘\0’;標準答案:B知識點解析:本題考查標準輸入輸出函數(shù)和循環(huán)語句。gets(s)函數(shù)的作用是將輸入的字符讀入字符串s,直到遇到回車。而scanf()函數(shù)接收字符串時的結(jié)束標志為回車或者空格。因此選項B)不能,選項C)和選項D)中按字符逐個讀入字符串s中,直到讀入的字符是換行符為止,因此正確。27、下面4個關(guān)于C語言的結(jié)論中錯誤的是()。A、可以用do…while語句實現(xiàn)的循環(huán)一定可以用while語句實現(xiàn)B、可以用for語句實現(xiàn)的循環(huán)一定可以用while語句實現(xiàn)C、可以用while語句實現(xiàn)的循環(huán)一定可以用for語句實現(xiàn)D、do…while語句與while語句的區(qū)別僅是關(guān)鍵字“while”出現(xiàn)的位置不同標準答案:D知識點解析:本題考查幾個循環(huán)語句的關(guān)系。①do…while語句、while語句、for語句所實現(xiàn)的循環(huán)可以相互替代;②do…while語句和while語句的區(qū)別是do…while語句至少執(zhí)行一次,再判斷循環(huán)條件,while語句是先判斷條件再執(zhí)行。28、若有以下程序段:structst{intn;int*m;};inta=2,b=3,c=5;structsts[3]=({101,&a},{102,&c},{103,&b}};main(){structst*p;p=s;…}則以下表達式中值為5的是()。A、(p++)一>mB、*(p++)一>mC、(*p).mD、*(++p)一>m標準答案:D知識點解析:本題考查如何通過指針引用數(shù)組元素。首先定義了一個結(jié)構(gòu)體,然后定義了一個結(jié)構(gòu)體變量s[3],并賦了初值。在主程序中,定義了一個指向結(jié)構(gòu)體變量s的指針p,要使表達式的值為5,就應(yīng)該引用s[1].m的值,使指針p指向s[1],++p可以實現(xiàn)將p指針加1,指向s[1]。29、下列程序的運行結(jié)果是()。#includevoidsub(int*s,int*y){staticintm=4;*y=s[0];m++:}voidmain(){inta[]={1,2,3,4,5},k;intx;printf(“\n”);for(k=0;k<=4;k++){sub(a,&x);printf(“%d,”,x);}}A、1,1,1,1,1,B、1,2,3,4,5,C、0,0,0,0,0,D、4,4,4,4,4,標準答案:A知識點解析:本題中sub(int*s,int*y)函數(shù)的參數(shù)是兩個指針型變量,在函數(shù)體內(nèi)將數(shù)組s的第一個元素賦給v。主程序內(nèi),首先定義了一維數(shù)組并賦初值,然后通過for循環(huán),5次調(diào)用sub(a,&x)函數(shù),每一次調(diào)用都是將數(shù)組a的第一個元素1賦給x,并輸出。30、有以下程序:#includeintfun(intx,inty){if(x!=y)retum(y);elsereturn((x+y)/2);}main(){inta=4,b=5,c=6;printf(“%d\n”,fun(2*a,fun(b,c)));}程序運行后的輸出結(jié)果是()。A、3B、6C、8D、12標準答案:B知識點解析:fun(b,c)即fun(5,6),5!=6,所以返回6;fun(2*a,6)即fun(8,6),8!=6,所以返回6。31、C語言中規(guī)定,程序中各函數(shù)之間()。A、既允許直接遞歸調(diào)用也允許間接遞歸調(diào)用B、不允許直接遞歸調(diào)用也不允許間接遞歸調(diào)用C、允許直接遞歸調(diào)用不允許間接遞歸調(diào)用D、不允許直接遞歸調(diào)用允許間接遞歸調(diào)用標準答案:A知識點解析:本題考查函數(shù)調(diào)用的基本概念。在函數(shù)調(diào)用時,只要符合函數(shù)的使用,程序中的各個函數(shù)間既可以直接調(diào)用其他函數(shù),也可以遞歸調(diào)用其自身。32、以下程序的輸出結(jié)果是()。#includemain(){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標準答案:B知識點解析:當外層循環(huán)為i時,內(nèi)層循環(huán)i只能取j=i,所以s+=a[i][a[j]],其實就是s+=a[i][a[i][i]],當i=0時,S=S+a[0][a[0][0]]=s+a[0][0]=1,當i=1時,S=S+a[1][a[1][1]]=s+a[1][1]=1+1=2,當i=2時,S=S+a[2][a[2][2]]=s+a[2][2]=2+2=4。33、有以下程序:#include#defineX5+6main(){inta=2,c;C=X*2:printf(“%d”,c);}程序運行后的輸出結(jié)果是()。A、17B、22C、16D、11標準答案:A知識點解析:define語句僅進行簡單替換,因此c=5+6*2=17。34、當用“#defineF37.5f”定義后,下列敘述正確的是()。A、F是float型數(shù)B、F是char型數(shù)C、F無類型D、F是字符串標準答案:D知識點解析:字符替換定義格式為:#define標識符(形參表)形參表達式。題中F是代表形參表達式的標識符(字符串)。35、若有定義語句:inta=3,b=2,c=1;,以下選項中錯誤的賦值表達式是()。A、a=(b=4)=3;B、a=b=c+1;C、a=(b=4)+c;D、a=1+(b=c=4);標準答案:A知識點解析:這道題目主要考察賦值表達式,對于賦值表達式來說,賦值號“=”的左邊一定為變量名,右邊為一個C語言合法的表達式。36、以下說法正確的是()。A、宏定義是C語句,要在行末加分號B、可以使用#undefine提前結(jié)束宏名的使用C、在進行宏定義時,宏定義不能嵌套D、雙引號中出現(xiàn)的宏名也要進行替換標準答案:B知識點解析:本題考查宏的使用規(guī)則:①字符替換格式:#define標識符字符串,行末不加分號;②雙引號中出現(xiàn)的宏名不替換;③如果提前結(jié)束宏名的使用,程序中可以使用#undefine;④在進行宏定義時,宏定義能層層置換,能夠嵌套。37、下面程序的輸出結(jié)果是()。typedefunfon{longx[1];inty[4];charz[10];}M;Mt;main(){printf(“%d\n”,sizeof(t));}A、32B、26C、10D、4標準答案:C知識點解析:“聯(lián)合體”所占用的內(nèi)存空間為最長的成員所占用的空間。題中聯(lián)合體的z[10]成員是聯(lián)合體中占空間最長的成員。38、以下程序中函數(shù)sort的功能是對a數(shù)組中的數(shù)據(jù)進行由大到小的排序voidsort(inta[],intn){inti,j,t;for(i=0;iA、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,標準答案:C知識點解析:程序中sort函數(shù)的功能是對數(shù)組中的數(shù)據(jù)進行從大到小的排序。主函數(shù)main中調(diào)用函數(shù)sort(&aa[3],5);,使得數(shù)組aa中從第4個元素開始的5個元素進行從大到小的排序,數(shù)組aa中的元素變?yōu)椋?,2,3,8,7,6,5,4,9,10。并輸出這些元素。39、設(shè)x=061,y=016,則z=xly的值是()。A、00001111B、11111111C、00111111D、11000000標準答案:C知識點解析:本題主要考查按位或運算,x=061(二進制為00110001),y=016(二進制為00001110),進行或運算后結(jié)果為00111111。40、函數(shù)rewind(fp)的作用是()。A、使fp指定的文件的位置指針重新定位到文件的開始位置B、將fp指定的文件的位置指針指向文件中所要求的特定位置C、使fp指定的文件的位置指針向文件的末尾D、使fp指定的文件的位置指針自動移至下一個字符位置標準答案:A知識點解析:位置指針重返文件頭函數(shù)rewind()的調(diào)用形式為:rewind(fp)。其中,“fp”是指向文件的文件型指針。rewind(fp))的功能是:使fp指定的文件的位置指針重新定位到文件的開始位置。國家二級C語言機試(選擇題)模擬試卷第3套一、選擇題(本題共39題,每題1.0分,共39分。)1、算法的空間復(fù)雜度是指()。A、算法程序的長度B、算法程序中的指令條數(shù)C、算法程序所占的存儲空間D、算法執(zhí)行過程中所需要的存儲空間標準答案:D知識點解析:算法的空間復(fù)雜度是指執(zhí)行這個算法所需要的內(nèi)存空間。一個算法所占用的存儲空間包括算法程序所占的空間、輸入的初始數(shù)據(jù)所占的存儲空間以及算法執(zhí)行中所需要的額外空間。其中額外空間包括算法程序執(zhí)行過程中的工作單元以及某種數(shù)據(jù)結(jié)構(gòu)所需要的附加存儲空間。如果額外空間量相對于問題規(guī)模來說是常數(shù),則稱該算法是原地工作的。在許多實際問題中,為了減少算法所占的存儲空間,通常采用壓縮存儲技術(shù),以便盡量減少不必要的額外空間。2、下列敘述中正確的是()。A、一個邏輯數(shù)據(jù)結(jié)構(gòu)只能有一種存儲結(jié)構(gòu)B、邏輯結(jié)構(gòu)屬于線性結(jié)構(gòu),存儲結(jié)構(gòu)屬于非線性結(jié)構(gòu)C、一個邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲結(jié)構(gòu),且各種存儲結(jié)構(gòu)不影響數(shù)據(jù)處理的效率D、一個邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲結(jié)構(gòu),且各種存儲結(jié)構(gòu)影響數(shù)據(jù)處理的效率標準答案:D知識點解析:數(shù)據(jù)的存儲結(jié)構(gòu)是指數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機存儲空間中的存放形式,一種數(shù)據(jù)結(jié)構(gòu)可以根據(jù)需要采用不同的存儲結(jié)構(gòu),常用的存儲結(jié)構(gòu)有順序和鏈式結(jié)構(gòu)。采用不同的存儲結(jié)構(gòu),其處理的效率是不同的。3、下列關(guān)于類、對象、屬性和方法的敘述中,錯誤的是()。A、類是對一類具有相同的屬性和方法對象的描述B、屬性用于描述對象的狀態(tài)C、方法用于表示對象的行為D、基于同一個類產(chǎn)生的兩個對象不可以分別設(shè)置自己的屬性值標準答案:D知識點解析:類是對一類具有相同的屬性和方法對象的描述,屬性用于描述對象的狀態(tài),方法用于表示對象的行為,基于同一個類產(chǎn)生的兩個對象是可以分別設(shè)置自己的屬性值。4、在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是()。A、數(shù)據(jù)字典B、詳細設(shè)計說明書C、數(shù)據(jù)流圖說明書D、軟件需求規(guī)格說明書標準答案:D知識點解析:需求分析的最終結(jié)果是生成軟件需求規(guī)格說明書,可以為用戶、分析人員和設(shè)計人員之間的交流提供方便。5、數(shù)據(jù)庫設(shè)計的四個階段是:需求分析、概念設(shè)計、邏輯設(shè)計和()。A、編碼設(shè)計B、測試階段C、運行階段D、物理設(shè)計標準答案:D知識點解析:數(shù)據(jù)庫設(shè)計目前一般采用生命周期法,即將整個數(shù)據(jù)庫應(yīng)用系統(tǒng)的開分解成目標獨立的若干階段,它們是:需求分析階段、概念設(shè)計階段、邏輯設(shè)計階段、物理設(shè)計階段、編碼階段、測試階段、運行階段、進一步修改階段。在數(shù)據(jù)庫設(shè)計中采用上面幾個階段中的前四個階段,并且重點以數(shù)據(jù)結(jié)構(gòu)和模型設(shè)計為主線。6、下列敘述中,正確的是()。A、軟件交付使用后還需要進行維護B、軟件一旦交付使用就不需要再進行維護C、軟件交付使用后其生命周期就結(jié)束D、軟件維護是指修復(fù)程序中被破壞的指令標準答案:A知識點解析:軟件的運行和維護是指將已交付的軟件投入運行,并在運行使用中不斷地維護,根據(jù)新提出的需求進行必要而且可能的擴充和刪改。而軟件生命周期是指軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用退役的過程。7、下列敘述中,正確的是()。A、軟件交付使用后還需要進行維護B、軟件一旦交付使用就不需要再進行維護C、軟件交付使用后其生命周期就結(jié)束D、軟件維護是指修復(fù)程序中被破壞的指令標準答案:A知識點解析:軟件的運行和維護是指將已交付的軟件投入運行,并在運行使用中不斷地維護,根據(jù)新提出的需求進行必要而且可能的擴充和刪改。而軟件生命周期是指軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用退役的過程。8、設(shè)一棵滿二叉樹共有15個結(jié)點,則在該滿二叉樹中的葉子結(jié)點數(shù)為()。A、7B、8C、9D、10標準答案:B知識點解析:在具有n個結(jié)點的滿二叉樹,其非葉子結(jié)點數(shù)為int(n/2),而葉子結(jié)點數(shù)等于總結(jié)點數(shù)減去非葉子結(jié)點數(shù)。本題n=15,故非葉子結(jié)點數(shù)等于int(15/2)=7,葉子結(jié)點數(shù)等于15-7=8。9、設(shè)R是一個2元關(guān)系,有3個元組,S是一個3元關(guān)系,有3個元組。如T=R×S,則T的元組的個數(shù)為()。A、6B、8C、9D、12標準答案:C知識點解析:R為n元關(guān)系,有p個元組S為m元關(guān)系,有q個元組。兩個關(guān)系笛卡兒積是一個n+m元的關(guān)系,元組個數(shù)是q×p。所以T的元組的個數(shù)為9個。10、下列選項中,不屬于數(shù)據(jù)庫管理的是()。A、數(shù)據(jù)庫的建立B、數(shù)據(jù)庫的調(diào)整C、數(shù)據(jù)庫的監(jiān)控D、數(shù)據(jù)庫的校對標準答案:D知識點解析:數(shù)據(jù)庫管理一般包括:數(shù)據(jù)庫的建立、數(shù)據(jù)庫的調(diào)整、數(shù)據(jù)庫的重組、數(shù)據(jù)庫的安全性控制與完整性控制、數(shù)據(jù)庫的故障恢復(fù)和數(shù)據(jù)庫的監(jiān)控。11、對于一個正常運行的C程序,下列敘述中正確的是()。A、程序的執(zhí)行總是從main函數(shù)開始,在main函數(shù)結(jié)束B、程序的執(zhí)行總是從程序的第一個函數(shù)開始,在main函數(shù)結(jié)束C、程序的執(zhí)行總是從main函數(shù)開始,在程序的最后一個函數(shù)中結(jié)束D、程序的執(zhí)行總是從程序中的第一個函數(shù)開始,在程序的最后一個函數(shù)中結(jié)束標準答案:A知識點解析:一個C語言源程序無論包括了多少函數(shù),總是從main函數(shù)開始執(zhí)行,從main函數(shù)結(jié)束。12、以下選項中與if(a=1)a++;elsea=b;語句功能不同的語句是()。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標準答案:B知識點解析:ifelse語句的含義是,如果變量a的值等于1,變量a的值加1,否則,則把變量b的值賦給變量a。在本題的4個選項中,與其含義不同的是選項B,因為沒有break語句,當a=1的時候,會順序執(zhí)行兩條語句,最終結(jié)果是將b的值賦給a。13、以下不合法的用戶標識符是()。A、804zhangB、_hhC、yy614D、If標準答案:A知識點解析:C語言規(guī)定,標識符是由字母、數(shù)字或下劃線組成,并且它的第一個字符必須是字母或下劃線。14、已知chara;intb;floatc;doubled;則表達式a-b+c-d結(jié)果為()型。A、doubleB、floatC、intD、char標準答案:A知識點解析:C語言中允許進行不同數(shù)據(jù)類型的混合運算,但在實際運算時,要先將不同類型的數(shù)據(jù)轉(zhuǎn)化成同一類型再進行運算。類型轉(zhuǎn)換的一般規(guī)則是:①運算中將所有char型轉(zhuǎn)換成int型,float型轉(zhuǎn)換成double型;②低級類型服從高級類型,并進行相應(yīng)的轉(zhuǎn)換,數(shù)據(jù)類型由低到高的順序為:char->int->unsigned->long->float->double;③賦值運算中最終結(jié)果的類型,以賦值運算符左邊變量的類型為準,即賦值運算符右端值的類型向左邊變量的類型看齊,并進行相應(yīng)轉(zhuǎn)換。15、假設(shè)有語句sizeof(double),則它是()。A、一個整型表達式B、一個雙精度浮點型表達式C、一種函數(shù)調(diào)用D、一種函數(shù)定義標準答案:A知識點解析:sizeof(double)是C語言內(nèi)部規(guī)定的一個計算參數(shù)(double)在計算機的內(nèi)存中所占用的字節(jié)數(shù)量的函數(shù),它返回一個整數(shù)值。16、若變量都已正確說明,則以下程序段輸出結(jié)果為()。#include<stdio.h>main(){chara=’a’;intb=2;printf(a>b?’’***a=%d’’:’’###b=%d’’,a,b);}A、***a=3B、###b=3C、***a=3###b=5D、全部錯誤標準答案:D知識點解析:本題考查printf函數(shù)的格式和三目運算符“?:”的使用。printf函數(shù)中格式說明符之前插入的任何字符都原樣輸出。本題中“a>b”為真,所以返回“***a=97”。17、若有以下定義(設(shè)int類型變量占2個字節(jié))inti=8,j=9;則以下語句:printf(’’i=%%d,j=%%%d\n’’,i,j);輸出的結(jié)果是()。A、i=8,j=9B、i=%d,j=%8C、i=%d,j=%dD、8,9標準答案:B知識點解析:本題考查printf函數(shù)的格式。printf函數(shù)中格式說明符之前插入的任何字符都按原樣輸出。對于printf函數(shù),有兩個%說明,第一個%后面的內(nèi)容要按原樣輸出。18、設(shè)a和b均為int型變量,且a=6,b=11,則能使值為3的表達式是()。A、b%(a%4)B、b%(a-a%5)C、b%a-a%5D、(b%a)-(a%4)標準答案:D知識點解析:表達式“a%b”表示的是求a除以b的余數(shù)。因此,選項A:(6%4)=2,11%2=1;選項B:(6-6%5)=5,11%5=1;選項C:11%6~6%5=4;選項D:(11%6)-(6%4)=3。19、有關(guān)return語句說法不正確的是()。A、系統(tǒng)默認的返回值類型為整型,故當函數(shù)的返回值為int型時,在函數(shù)定義時,返回值的類型說明可以省略。B、當函數(shù)有返回值時,凡是允許表達式出現(xiàn)的地方,都可以調(diào)用該函數(shù)。C、當函數(shù)沒有返回值時,函數(shù)的返回值類型可以說明為void型,它表示“無類型”或“空類型”。D、函數(shù)的返回值類型必須與return語句中的表達式值的類型一致,但C語言也允許不同;這時,系統(tǒng)以函數(shù)定義時的返回值類型說明為準,并自動地將return語句中表達式的值轉(zhuǎn)換為函數(shù)的返回值類型。標準答案:D知識點解析:函數(shù)的返回值類型一般與return語句中的表達式值的類型一致,但C語言也允許不同;這時,系統(tǒng)以函數(shù)定義時的返回值類型說明為準,并自動地將return語句中表達式的值轉(zhuǎn)換為函數(shù)的返回值類型。20、有以下程序:#include<stdio.h>main(){inti=0,a=0;while(i<20){for(;;){if((i%5)==0)break;elsei--;}i+=13,a+=i;}printf(’’%dLrl",a);}程序的輸出結(jié)果是()。A、62B、63C、23D、36標準答案:D知識點解析:本題考查while循環(huán)。當i<20時,進入while循環(huán)體,循環(huán)體內(nèi)的for循環(huán)實現(xiàn)的功能是,當i值是0或5的倍數(shù)時,執(zhí)行“i+=13;a+i;”這兩條語句;若i值不是5的倍數(shù)則一直執(zhí)行for循環(huán)。①當i=0時,執(zhí)行“i+=13;a+=i;i=13,a=13”;②判斷“i=13<20”,進入while循環(huán)體,i=10時,跳出for循環(huán),執(zhí)行“i+=13;a+=i;i=23,a=36”;③判斷“i=23>20”,循環(huán)結(jié)束。21、在下列選項中,沒有構(gòu)成死循環(huán)的程序段是()。A、inti=100;for(;;){i=i%10+1;if(i>10)break;}B、while(1);C、intk:0:do{++k;}while(k<=10);D、ints=12;while(s);--s;標準答案:C知識點解析:本題考查死循環(huán)的知識。選項A中,for循環(huán)沒有任何控制語句就會一直執(zhí)行下去,所以不可能通過控制表達式的值結(jié)束循環(huán)。循環(huán)體內(nèi),“i=i%10+1”這個表達式的值永遠不會大于10,所以永遠不會跳出循環(huán),是死循環(huán);選項B中,while中表達式永遠是非0,不會結(jié)束循環(huán);選項C中,當k>10時,結(jié)束循環(huán);選項D中,“while(s);”后面沒有任何表達式而是直接加了一個分號,會一直執(zhí)行,形成死循環(huán)。22、若已定義的函數(shù)有返回值,則以下關(guān)于該函數(shù)調(diào)用的敘述中錯誤的是()。A、函數(shù)調(diào)用可以作為獨立的語句存在B、函數(shù)調(diào)用可以作為一個函數(shù)的實參C、函數(shù)調(diào)用可以出現(xiàn)在表達式中D、函數(shù)調(diào)用可以作為一個函數(shù)的形參標準答案:D知識點解析:本題考查函數(shù)調(diào)用的有關(guān)知識點。函數(shù)調(diào)用①可以出現(xiàn)在表達式中;②可以作為獨立的語句存在;③可以作為一個函數(shù)的實參。23、以下程序的輸出結(jié)果是()。#include<stdio.h>main(){inta=1,b=3;ifi[(++a<0)&&!(b--<=0))printf(’’%d,%d\n’’,a,b);elseprintf(’’%d,%d\n’’,b,a);}A、2,2B、1,3C、3,2D、3,1標準答案:C知識點解析:解答本題的關(guān)鍵在于if語句條件中的表達式。初始時“a=1,b=3”,所以“++a=2>0”,因此“++a<0”為假;因為是進行邏輯與(&&)運算,在&&的一個運算對象為假的前提下不用判斷第二個運算對象的真假,就可以直接得出整個表達式的值為邏輯0,所以執(zhí)行else語句。24、有以下程序:#include<stdio.h>main(){intx;scanf(’’%dt’’,&x);if(x<=0);elseif(x!=5)printf(’’%d\n’’,x);}程序運行時,輸入的值在哪個范圍才會有輸出結(jié)果()。A、不等于5的整數(shù)B、大于0且不等5的整數(shù)C、大于0或等于5的整數(shù)D、小于5的整數(shù)標準答案:B知識點解析:題目中,雖然else和第二個if不在同一行上,但等價于在同一行上,因此,程序的意思是當x大于0且不等于5時將其打印出來。25、若執(zhí)行下述程序時,若從鍵盤輸入6和8,結(jié)果為()。main(){inta,b,s;scanf(’’%d%d’’,&a,&b);s=a:if(s-b)s*=s;printf(’’%d’’,s);}A、36B、64C、48D、以上都不對標準答案:B知識點解析:首先通過scanf函數(shù)把從鍵盤讀入的數(shù)據(jù)賦給變量a和b,if語句判斷如果a和b不等,執(zhí)行s=s*s=64。26、若運行時給變量x輸入12,則以下程序的運行結(jié)果是()。main(){intx,y;scanf(’’%d’’,&x);y=x>127x+10:x-12;printff(’’%d\n’’,y);}A、0B、22C、12D、10標準答案:A知識點解析:本題考查三目條件運算符“?:”。表達式“x>127x+10:x-12”即,如果x>12成立,則x+10的值即為此表達式的值,否則x.12即為此表達式的值。因為x=12,所以x>12不成立,所以執(zhí)行“y=x-12=0”。27、運行下面程序時,從鍵盤輸入字母A,則輸出結(jié)果是()。#include<stdio.h>main(){charch;ch=getchar();switch(ch){case’A’:printf(’’AAAA\n’’);case’B’:printf(’’BBBBkn’’);default:printf(’’CCCC\n’’);}}A、AAAAB、AAAABBBBC、AAAABBBBCCCCD、AAAACCCC標準答案:C知識點解析:本題考查“switch”語句。因為“ch=A”,所以第一個switch語句,執(zhí)行“case’A’”后面的語句,輸出AAAA,沒有遇到break語句,所以接著再執(zhí)行“case’B’”和default,分別輸出BBBB和CCCC。28、下列敘述中錯誤的是()。A、在C語言中,對二進制文件的訪問速度比文本文件快B、在C語言中,隨機文件以二進制代碼形式存儲數(shù)據(jù)C、語句FILEfp;定義了一個名為fp的文件指針D、C語言中的文本文件以ASCII碼形式存儲數(shù)據(jù)標準答案:C知識點解析:在C語言中,文件指針實際上是指向一個結(jié)構(gòu)體類型的指針,一般稱這個結(jié)構(gòu)體類型名為FILE,可以用此類型名來定義文件指針。定義文件類型指針變量的一般形式為:FILE*指針變量名;選項C中少了“*”,所以選項C錯誤。29、若輸入’’abcdef’’、’’abdef’’,以下程序的輸出結(jié)果為()。#include<stdio.h>#include<string.h>main(){intn;chars1[201,s2[20],*p1,*p2;scanf(’’%s’’,s1);scanf(’’%s’’,s2);p1=s1;p2=s2;n=strcmp(p1,p2);printf(’’%d\n’’,n);}A、-B、0C、’’abcdef’’D、’’abdef’’標準答案:A知識點解析:本題考查兩個知識點:①字符串比較函數(shù)strcmp(s1,s2),若s1>s2,則返回1;若s1=s2,則返回0;若s1<s2,則返回-1。②字符串依次比較的是它們相同位置上字符的ASCII碼值。30、以下語句定義正確的是()。A、inta[1][4]={1,2,3,4,5};B、floata[3][]={{1},{2},{3}};C、longa[2][3]={{l},{l,2},{1,2,3},{0,0}};D、doublea[][3]={0};標準答案:D知識點解析:本題考查的是如何對二維數(shù)組進行賦值。選項A中數(shù)組第二維的大小是4,但卻給賦了5個元素;選項B中C語言規(guī)定,對于二維數(shù)組,只可以省略第一個方括號中的常量表達式而不可以省略第二個方括號中的常量表達式;選項C中數(shù)組第一維的大小是2,但是賦值卻超過了2;選項D中在對二維數(shù)組元素賦初值時,可以只對部分元素賦初值,未賦初值的元素自動取0。31、下述程序的輸出結(jié)果是()。#include<stdio.h>voidmain(){inta[5]={1,2,3,4,5};int*p=a,**q=&p;printf(’’%d’’,*(p++));printf("%",**q);}A、22B、11C、34D、12標準答案:D知識點解析:程序首先定義了一個指向一維數(shù)組a的指針p,一個指向指針變量p的指針變量q,輸出*(p++)是先輸出*p即a[0]的值,再將指針p指向數(shù)組的下一個元素a[1],輸出**q是輸出指針p所指向單元的內(nèi)容,即a[1]的值。32、字符串’’\\\’’ABCDEF\’’\\’’的長度是()。A、11B、10C、5D、3標準答案:B知識點解析:本題涉及字符串的兩個最基本的概念。①字符串的長度是指字符串中字符的個數(shù),但不包含字符串結(jié)束符;②以反斜線“\”開頭的特殊字符序列,意思是把反斜線后面的字符序列轉(zhuǎn)換成特定的含義,而不是原來的含義,不包含在字符串長度之內(nèi),“\”連同后面的字符為一個長度。33、若二維數(shù)組a有m列,則在a[i][j]前的元素個數(shù)為()。A、j*m+iB、i*m+jC、j*m+i+1D、i*m+j+1標準答案:B知識點解析:二維數(shù)組的元素可以看成是按矩陣形式存放的,總是先存放第一行的元素,再存放第二行的元素。數(shù)組第一維的下標是i,說明它前面還有i行,有i*m個元素,數(shù)組第二維的下標是i,說明它前面還有j列,有j個元素,所以共有i*m+j個元素。34、下列程序的運行結(jié)果是()。#include<stdio.h>voidfun(int*s,int*p){staticintt=3;*p=s[t];t--;}voidmain(){inta[]={2,3,4,5},k,x;for(k=0;k<4;k++){fun(a,&x);printf(’’%d,’’,x);}}A、5,4,3,2,B、2,3,4,5,C、2,2,2,2,D、5,5,5,5,標準答案:A知識點解析:分析fun函數(shù)程序段,可知fun函數(shù)要實現(xiàn)的功能是將s中第(t+1)個元素以前的元素逆置賦給數(shù)組p。由于fun函數(shù)定義了靜態(tài)變量t=-3,因此,在主函數(shù)中調(diào)用函數(shù)fun(a,&x)時,就是要將數(shù)組a中前4個元素逆置賦給數(shù)組x,最后輸出x數(shù)組。35、以下有關(guān)宏替換的敘述不正確的是()。A、雙引號中出現(xiàn)的宏名不替換B、使用宏定義可以嵌套C、宏定義僅僅是符號替換D、宏名必須用大寫字母表示標準答案:D知識點解析:本題考查宏替換的規(guī)則。宏替換分為簡單的字符替換和帶參數(shù)的宏替換兩類。使用宏時應(yīng)注意以下幾點:①宏定義僅僅是符號替換,不是賦值語句,因此不做語法檢查;②為了區(qū)別程序中其他的標識符,宏名的定義通常用大寫字母,但不是必須用大寫;③雙引號中出現(xiàn)的宏名不替換;④使用宏定義可以嵌套,即后定義的宏中可以使用先定義的宏。36、設(shè)有定義:char*c;,以下選項中能夠使字符型指針c正確指向一個字符串的是()。A、charstr[]=’’string’’;c=str;B、scanf(’’%s’’,c);C、c=getchar();D、charstr[]=’’string’’;strcpy(’’c,str’’)標準答案:A知識點解析:在題目的題干中定義了字符指針變量c,在選項A中,首先定義字符數(shù)組str,然后再把字符數(shù)組str的首地址賦給字符指針變量c。所以選項A是正確的。在選項B中,指針c沒有正確初始化,指向的地址是為止的,因此不能在scanf函數(shù)中使用;在選項C中,getchar函數(shù)的返回值是用戶輸入的第一個字符的ASCII碼,如出錯返回-1,且將用戶輸入的字符回顯到屏幕,如用戶在按回車之前輸入了不止一個字符,其他字符會保留在鍵盤緩存區(qū)中,等待
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五商鋪物業(yè)委托管理合同(含社區(qū)健康管理與醫(yī)療支持)
- 二零二五年校園環(huán)境衛(wèi)生管理與綠化合同
- 二零二五年度農(nóng)村土地承包經(jīng)營權(quán)與農(nóng)村社會保障合作合同
- 二零二五年度夜店酒吧員工安全協(xié)議與安全教育培訓(xùn)費用合同
- 2025年度電動車買賣協(xié)議模版
- 二零二五年度知識產(chǎn)權(quán)法律風(fēng)險管理顧問合同
- 二零二五年度武漢房屋租賃合同物業(yè)管理約定
- 二零二五年度摩托車第三者責(zé)任保險合同
- 《物流系統(tǒng)分析》課件 項目九-任務(wù)三 (一)車輛路徑優(yōu)化模型1
- 2025年包頭a2貨運資格證模擬考試
- 2025年黑龍江民族職業(yè)學(xué)院單招職業(yè)技能測試題庫必考題
- 統(tǒng)編版語文八年級下冊全冊大單元整體教學(xué)設(shè)計表格式教案
- QC成果提高大跨度多節(jié)點曲面鋼桁架一次安裝合格率
- 國家電網(wǎng)有限公司十八項電網(wǎng)重大反事故措施(修訂版)
- 環(huán)氧乙烷固定床反應(yīng)器課程設(shè)計
- 班、團、隊一體化建設(shè)實施方案
- 如何建構(gòu)結(jié)構(gòu)性思維 課后測試
- 施工方案(行車拆除)
- 開網(wǎng)店全部流程PPT課件
- 《春》帶拼音
- 中國銀行_境外匯款申請表模板(練手)
評論
0/150
提交評論