




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
國家二級C語言機試(選擇題)模擬試卷19(共9套)(共240題)國家二級C語言機試(選擇題)模擬試卷第1套一、選擇題(本題共25題,每題1.0分,共25分。)1、下列選項中,不屬于數據庫管理的是()。A、數據庫的建立B、數據庫的調整C、數據庫的監(jiān)控D、數據庫的校對標準答案:D知識點解析:數據庫管理一般包括:數據庫的建立、數據庫的調整、數據庫的重組、數據庫的安全性控制與完整性控制、數據庫的故障恢復和數據庫的監(jiān)控。2、若有以下定義和語句()。intu=010,v=0x10,w=10;printf("%d,%d,%d\n",u,v,w)A、8,16,10B、10,10,10C、8,8,10D、8,10,10標準答案:A知識點解析:本題主要考查不同進制整數常數的書寫形式。八進制整數以數字0開頭,十六進制整數以0x開頭,開頭不含0的均為十進制整數。因此,本題中u是八進制數,v是十六進制的數,w是十進制的數,分別是8,16,10。3、對長度為10的線性表進行冒泡排序,最壞情況下需要比較的次數為A、9B、10C、45D、90標準答案:C知識點解析:線性表的長度為n,最壞情況下冒泡排序需要比較的次數為n(n-1)/2。4、以下敘述中正確的是A、在賦值表達式中,賦值號的右邊可以是變量,也可以是任意表達式B、a是實型變量,a=10在C語言中是允許的,因此可以說:實型變量中可以存放整型數C、若有inta=4,b=9;執(zhí)行了a=b后,a的值已由原值改變?yōu)閎的值,b的值變?yōu)?D、若有inta=4,b=9;執(zhí)行了a=b;b=a;之后,a的值為9,b的值為4標準答案:A知識點解析:選項B中a=10,在賦值時會把10自動轉換為double類型然后賦值,實型變量中不可能存放整型。而選項C中執(zhí)行a=b后,b的值不變還是9,選項D中執(zhí)行a=b;b=a;后,a的值為9,b的值也為9。5、下列對軟件測試和軟件調試敘述中錯誤的是()。A、嚴格執(zhí)行測試計劃,排除測試的隨意性B、軟件調試的目的是改正軟件錯誤C、軟件測試不需要考慮測試成本D、正確的執(zhí)行測試用例標準答案:C知識點解析:軟件測試定義:使用人工或自動手段來運行或測定某個系統(tǒng)的過程,其目的在于檢驗它是否滿足規(guī)定的需求或是弄清預期結果與實際結果之間的差別。軟件測試的目的:發(fā)現錯誤而執(zhí)行程序的過程,是評測軟件質量的重要過程和手段。軟件調試的目的是診斷并改正程序中的錯誤。測試必須對整個軟件總體進行評估。軟件測試需要考慮測試成本,軟件測試成本也要計入軟件開發(fā)成本中。故C選項不正確。6、有以下程序#includemain(){inti,i,m=1;for(i=l;i<3;i++){for(j=3;j>0;j--){if(i*j>3)break;m*=i*j;}}printf("m=%d\n",m);}程序運行后的輸出結果是A、m=2B、m=4C、m=5D、m=6標準答案:D知識點解析:這道題考查了for循環(huán)的嵌套應用。對于外層for循環(huán)來說,變量i從1增到2,循環(huán)執(zhí)行2次。當變量i的值等于1時,對于內層for循環(huán)來說,變量j從3減到1,求得變量m的值等于6。當變量i的值等于2時,第一遍執(zhí)行內層for循環(huán),變量j的值等于3,那么i*j的值等于6,其值大于3,這時執(zhí)行break語句,退出內層for循環(huán)的執(zhí)行。所以程序輸出變量m的值為6。7、C語言主要是借助以下哪個功能來實現程序模塊化?()A、定義函數B、定義常量和外部變量C、三種基本結構語句D、豐富的數據類型標準答案:A知識點解析:C語言是由函數組成的,函數是C語言的基本單位。所以可以說C語言主要是借助定義函數來實現程序模塊化的。8、有以下程序:#include<stdio.h>doublef(doublex);main(){doublea=0;inti;for(i=0;i<30;i+=10)a+=f((double)i);printf("%3.Of\n",a);}doublef(doublex){returnx*x+1;}程序的運行結果是()。A、500B、401C、503D、1404標準答案:C知識點解析:本題重點考查函數的定義和調用。第一次循環(huán),a=0,i=0,返回值a=0*0+1=1;第二次循環(huán),a=1,i=10,返回值a=10*10+1+1=102;第三次循環(huán),a=102,i=20,返回值a=20*20+1+102=503;第四次循環(huán),a=503,i=30,不符合i<30,跳出循環(huán),最后結果輸出a=503。9、下列關于return語句的敘述中正確的是()。A、一個自定義函數中必須有一條return語句B、一個自定義函數中可以根據不同情況設置多條return語句C、定義成void類型的函數中可以有帶返回值的return語句D、沒有return語句的自定義函數在執(zhí)行結束時不能返回到調用處標準答案:B知識點解析:在函數中允許有多個return語句,但每次調用只能有一個return語句被執(zhí)行,因此只能返回一個函數值,A選項描述錯誤。定義成void類型的函數,不允許從該函數取得返回值,也不允許使用return語句,C選項描述錯誤。沒有return語句的函數在執(zhí)行到函數的最后一條語句后會自動返回到調用處,D選項描述錯誤。因此B選項正確。10、有以下程序#includemain(){inta[]={10,20,30,40},*p=a,i;for(i=0;i<=3;i++){a[i]=*p;p++;}printf("%d\n",a[2]);}程序運行后的輸出結果是A、20B、30C、10D、40標準答案:B知識點解析:因為指針變量p的初始值指向數組a,所以執(zhí)行for循環(huán)語句后,數組a中的元素的值不變。11、下面屬于應用軟件的是A、人事管理系統(tǒng)B、Oracle數據庫管理系統(tǒng)C、C++編譯系統(tǒng)D、ios操作系統(tǒng)標準答案:A知識點解析:C++編譯系統(tǒng)屬于支撐軟件,Oracle數據庫管理系統(tǒng)和ios操作系統(tǒng)屬于系統(tǒng)軟件,而人事管理系統(tǒng)屬于應用軟件。12、由以下while構成的循環(huán),循環(huán)體執(zhí)行的次數是intk=0;while(k=1)k++;()。A、無限次B、一次也不執(zhí)行C、執(zhí)行一次D、有語法錯,不能執(zhí)行標準答案:A知識點解析:循環(huán)條件是"k=1",該表達式恒為真,所以程序構成死循環(huán),答案選A。13、表示學生選修課程的關系模式是SC(S#,C#,G),其中S#為學號,C#為課程號,G為成績,檢索選修了課程號為2的課且成績不及格的學生學號的表達式是A、πS#(σC#=2∧G<60(SC))B、σG<60(SC)C、σC#=2∧G<60(SC)D、πS#(σC#=2(SC))標準答案:A知識點解析:檢索選修了課程號為2的課且成績不及格的學生學號的表達式,首先對關系模式SC在C#列進行滿足課程號為2并且成績不及格(G<60)選擇運算,對得到的結果,再在學號S#列進行投影運算。所以選項A正確。14、下列敘述中正確的是A、C程序中所有函數之間都可以相互調用B、在C程序中main函數的位置是固定的C、在C程序的函數中不能定義另一個函數D、每個C程序文件中都必須要有一個main函數標準答案:C知識點解析:C程序中主函數不能被其他函數調用,所以A選項錯誤,main函數可以放在程序開始,也可以放在中間,也可以放在最后,位置不固定,但程序執(zhí)行時必須從main函數開始,所以B選項錯誤,在C程序的函數中不能定義另一個函數,可以聲明或調用另一個函數,所以C選項正確?每個C程序中必須包含一個main函數,但不一定是每個C程序文件中必須有,用戶單獨編寫的某個函數也可以存儲為一個C程序文件,所以D選項錯誤。15、有以下程序#includeintf(intx){inty;if(x==0‖x==1)return(3);y=x*x—f(x一2);returny;}main(){intz;z=f(3);printf("%d\n",z);}程序的運行結果是A、9B、0C、6D、8標準答案:C知識點解析:主函數調用f()函數,將實參3傳遞給x,進行if條件語句的判斷不成立,接著執(zhí)行y=3*3-f(1),再執(zhí)行f(1),而f(1)滿足if條件語句,所以f[1)的值為3,代入y=3*3-f(1)=9-3=6。16、有以下程序#include#defineN4voidfun(inta[][N],intb[]){inti;for(i=0;i<N;i++)b[i]=a[i][i]-a[i][N-1-i];}voidmain(){intx[N][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},y[N],i;fun(x,y);for(i=0;i<N;i++)printf("%d,",y[i]);printf("\n");}程序運行后的輸出結果是A、-12,-3,0,0,B、-3,一1,1,3,C、0,1,2,3,D、-3,-3,-3,-3,標準答案:B知識點解析:fun函數的功能是求出二維數組a中第i行第i個元素與第N-1-i元素的差,賦給b[i]。在主函數中,把實參二維數組x和一維數組y傳遞給形參a和b,最后輸出一維數組y中元素的值。17、若有定義和語句:inta,b;scanf("%d,%d,",&a,&b);以下選項中的輸入數據,不能把值3賦給變量a、5賦給變量b的是A、3,5B、3,5,C、3,5D、3,5,4標準答案:C知識點解析:在格式控制字符串中插入其他字符,則在輸入的時候應該據實加入到輸入流中,不能隨意加入空格等,否則無法得到正確的輸入結果。18、有以下程序#includevoidfun(inta,intb){intt;t=a;a=b;b=t;}main(){intc[10]={1,2,3,4,5,6,7,8,9,0},i;for(i=0;i<10;i+=2)fun(c[i],c[i+1]);for(i=0;i<10;i++)printf("%d,",c[i]);printf("\n");}程序的運行結果是()。A、1,2,3,4,5,6,7,8,9,0,B、2,1,4,3,6,5,8,7,0,9,C、0,9,8,7,6,5,4,3,2,1,D、0,1,2,3,4,5,6,7,8,9,標準答案:A知識點解析:函數fun()屬于值傳參,形參的變化不會影響實參,所以函數調用結束后,數組c沒有任何變化,輸出結果為選項A)。19、若有以下程序,則程序的輸出結果是#defineS(x)x*x#defineT(x)S(x)*S(x)main(){intk=5,j=2;printf("%d,%d\n",S(k+j),T(k+j));}A、17,37B、49,2401C、17,289D、49,289標準答案:A知識點解析:本題考查了宏替換,宏替換就是簡單的字符替換,不會進行語法錯誤檢查也不會進行運算。S(k+j)宏展開以后為k+j*k+j,值為17,T(k+j)宏展開以后為k+j*k+j*k+j*k+j,值為37。20、以下敘述中正確的是A、在包含文件中,不得再包含其他文件B、#include命令行不能出現在程序文件的中間C、在一個程序中,允許使用任意數量的#include命令行D、雖然包含文件被修改了,包含該文件的源程序也可以不重新進行編譯和連接標準答案:C知識點解析:#include文件包含命令,使用時應注意以下5個規(guī)則:①包含文件的#include命令行通常應書寫在所用源程序文件的開頭,故有時也把包含文件稱作“頭文件”。頭文件名可以由用戶指定,其后綴不一定用“.h”。②包含文件中,一般包含有一些公用的#define命令行、外部說明或對(庫)函數的原型說明。③當包含文件修改后,對包含該文件的源程序必須重新進行編譯連接。④在一個程序中,允許有任意多個#include命令行。⑤在包含文件中還可以包含其他文件。21、有如下程序#includemain(){char*p1=0;int*p2=0;double*p3=0;printf("%d,%d,%d\n",sizeof(p1),sizeof(p2),sizeof(p3));}程序運行后的輸出結果是()。A、4,4,4B、1,4,8C、0,0,0D、1,2,4標準答案:A知識點解析:指針變量存放的只是對應變量的地址,所以其占用的字節(jié)數都是一樣的,在32位的計算機上規(guī)定一個指針變量占用的內存為32位,即4個字節(jié),所以答案選A。22、有以下程序#include<stdio.h>main(){inta[]={10,20,30,40},*p=a,i;for(i=0;i<=3;i++){a[i]=*p;p++;}printf("%d\n",a[2]);}程序運行后的輸出結果是A、20B、30C、10D、40標準答案:B知識點解析:因為指針變量p的初始值指向數組a,所以執(zhí)行for循環(huán)語句后,數組a中的元素的值不變。23、設有宏定義:#defineIsDIV(k,n)((k%n==1)?1:0)且變量m已正確定義并賦值,則宏調用:IsDIV(m,5)&&IsDIV(m,7)為真時所要表達的是()。A、判斷m被5和7整除是否都余1B、判斷m是否能被5和7整除C、判斷m被5或者7整除是否余1D、判斷m是否能被5或者7整除標準答案:A知識點解析:宏定義只是使用宏名代替一個字符串,是一種機械的置換,所以宏替換后的表達式為"((m%5==1)?1:0)&&((m%7==1)?1:0)",則該表達式判定的是m被5和7整除是否都余1,若成立則返回1,若不成立返回值為0,答案選A。24、有以下程序#includemain(){char*s="12134";intk=0,a=0;while(s[k+1]){k++;if(k%2==0){a=a+(s[k]-’0’+1);continue;}a=a+(s[k]-’0’);}printf("k=%da=%d\n",k,a);}程序運行后的輸出結果是A、k=5a=15B、k=4a=12C、k=6a=11D、k=3a=14標準答案:B知識點解析:當k=0時,執(zhí)行while一次,得到k=1,a為2;當k=1時,執(zhí)行while一次,得到k=2,a為4;當k=2時,執(zhí)行while一次,得到k=3,a為7;當k=3時,執(zhí)行while一次,得到k=4,a為12;所以答案為B選項。25、若變量已正確定義為int型,要通過語句scanf("%d,%d,%d",&a,&b,&c);給a賦值1、給b賦值2、給c賦值3,以下輸入形式中錯誤的是(注:□代表一個空格符)A、1,2,3<回車>B、□□□1,2,3<回車>C、1,□□□2,□□□3<回車>D、1□2□3<回車>標準答案:D知識點解析:scanf()的格式控制串可以使用其他非空白字符,如本題中的逗號,但在輸入時必須輸入這些字符,以保證匹配。所以逗號必須輸入。國家二級C語言機試(選擇題)模擬試卷第2套一、選擇題(本題共25題,每題1.0分,共25分。)1、下列鏈表中,其邏輯結構屬于非線性結構的是A、二叉鏈表B、循環(huán)鏈表C、雙向鏈表D、帶鏈的棧標準答案:A知識點解析:二叉鏈表作為樹的存儲結構。鏈表中結點的兩個鏈域分別指向該結點的第一個孩子結點和下一個兄弟結點。2、對下列二叉樹進行前序遍歷的結果是A、DYBEAFCZXB、YDEBFZXCAC、ABDYECFXZD、ABCDEFXYZ標準答案:C知識點解析:二叉樹前序遍歷的簡單描述:若二叉樹為空,則結束返回;否則:①訪問根結點;②前序遍歷左子樹;③前序遍歷右子樹??梢?,前序遍歷二叉樹的過程是一個遞歸的過程。根據題目中給出的二叉樹的結構可知前序遍歷的結果是ABDYECFXZ。3、在軟件開發(fā)中,需求分析階段產生的主要文檔是()。A、可行性分析報告B、軟件需求規(guī)格說明書C、概要設計說明書D、集成測試計劃標準答案:B知識點解析:需求分析的最終結果是生成軟件需要規(guī)格說明書,可以為用戶、分析人員和設計人員之間的交流提供方便,可以直接支持目標與確認,又可以作為控制軟件開發(fā)進程的依據。4、若有以下程序:#include<stdio.h>intf(intm){staticintn=0;inta=2;n++;a++;returnn+m+a;}main(){intk;for(k=0;k<4;k++)printf(″%d,″,f(k));}則程序的輸出結果是()。A、3,5,7,9,B、4,7,10,13,C、4,5,6,7,D、4,6,8,10,標準答案:D知識點解析:本題考查靜態(tài)局部變量以及自增運算符,靜態(tài)局部變量在函數調用結束后,并不釋放,仍然保留它的值。本題中,k為0時,returnn+m+a之前,n為1,a為局部變量是3,m為0,所以第一個返回值為4。k為1時,在函數返回值之前,靜態(tài)局部變量為2,局部變量a仍然為3,m為1,所以結果是6。以此類推,答案為D。5、兩個或兩個以上模塊之間關聯(lián)的緊密程度稱為A、耦合度B、內聚度C、復雜度D、數據傳輸特性標準答案:A知識點解析:模塊的獨立性是指每個模塊只完成系統(tǒng)要求的獨立的子功能,并且與其他模塊的聯(lián)系較少且接口簡單。衡量軟件的模塊獨立性使用:內聚性和耦合性兩個定性度量標準。內聚性是對一個模塊內部各個元素彼此結合的緊密程度的度量;耦合性是對模塊問互相連接的緊密程度的度量。一般較優(yōu)秀的軟件設計,應盡量做到高內聚、低耦合,即減弱模塊之間的耦合性和提高模塊內的內聚性,有利于提高模塊的獨立性。6、與數學表達式x≥y≥z對應的C語言表達式是A、(x>=y>=z)B、(x>=y)&&(y>=z)C、(x>=y)!(y>=z)D、(x>=y)‖(y>=x)標準答案:B知識點解析:若要表示x大于等于y,同時y大于等于z,需要用邏輯與表達式連接。7、設有定義:inta=1,b=2,c=3;以下語句中執(zhí)行效果與其他3個不同的是()。A、if(a>b)a,a=b,b=e;B、if(a>b):a,a:b,b=C;}C、if(a>b)a;a=b;b=c;D、if(a>b){e:a;a:b;b=c;}標準答案:C知識點解析:由于a不小于b,所以所有選項中的條件都為假,A選項中實際執(zhí)行了a=b;b=c;兩個操作。而B、C、D選項由于條件不成立,所以什么也沒有做,所以選擇C選項。8、數據庫設計中反映用戶對數據要求的模式是A、內模式B、概念模式C、外模式D、設計模式標準答案:C知識點解析:概念模式,是由數據庫設計者綜合所有用戶的數據,按照統(tǒng)一的觀點構造的全局邏輯結構,是對數據庫中全部數據的邏輯結構和特征的總體描述,是所有用戶的公共數據視圖(全局視圖)。它是由數據庫管理系統(tǒng)提供的數掂模式描述語言(DataDescriptionLanguage,DDL)來描述、定義的,體現、反映了數據庫系統(tǒng)的整體觀。外模式,對應于用戶級,它是某個或某幾個用戶所看到的數據庫的數據視圖,是與某一應用有關的數據的邏輯表示。外模式是從模式導出的一個子集,也稱為子模式或用戶模式,它是用戶的數據視圖,也就是用戶所見到的數據模式,它反映了用戶對數據的要求。包含模式中允許特定用戶使用的那部分數據,用戶可以通過外模式描述語言來描述、定義對應于用戶的數據記錄(外模式),也可以利用數據操縱語言(DataManipulationLanguage,DML)對這些數據記錄進行描述。內模式,對應于物理級,它是數據庫中全體數據的內部表示或底層描述,是數據庫最低一級的邏輯描述,它描述了數據在存儲介質上的存儲方式和物理結構,對應著實際存儲在外存儲介質上的數據庫。內模式由內模式描述語言來描述、定義,它是數據庫的存儲觀。9、若以下選項中的變量全部為整型變量,且已正確定義并賦值,則語法正確的switch語句是()。A、switch(a+9){easec1:y=a—b;casec2:y=a+b;}B、switcha*b{case10:x=a+b;default:y=a—b;}C、switch(a+b){case1.case3:y=a+b;breakcasecase3DreaK;case0:case4:y=a—b;}D、switch(a*a+b*b){default:break;case3:y=a+b;break;case2:y=a—b;break;}標準答案:D知識點解析:選項A,當c1和c2相等時,不成立;選項B,a*b要用括號括起來;選項C,case與后面的數字用空格隔開。10、以下選項中可用作C程序合法實數的是A、3.0e0.2B、1e0C、E9D、9.12E標準答案:B知識點解析:A選項中E后面的指數必須為整數。C語言規(guī)定,E之前必須要有數字,所以C選項錯誤。E后面必須要有數字,且必須為整數,所以D選項錯誤。11、下面選項中合法的字符常量是A、"X"B、abc’C、X’D、\’標準答案:C知識點解析:在程序中用單引號把一個字符括起來作為字符常量。但是為了表示字符“\”要用兩個“\\”表示一個反斜杠。12、下列關于C語言文件的敘述中正確的是()。A、文件由一系列數據依次排列組成,只能構成二進制文件B、文件由結構序列組成,可以構成二進制文件或文本文件C、文件由數據序列組成,可以構成二進制文件或文本文件D、文件由字符序列組成,其類型只能是文本文件標準答案:C知識點解析:本題考查文件的概念。文件由數據序列組成,可以構成二進制文件或文本文件,所以答案為C選項。13、下面不屬于結構化程序設計風格的是A、程序結構良好B、程序的易讀性C、不濫用Goto語句D、程序的執(zhí)行效率標準答案:D知識點解析:結構化程序設計(structuredprogramming)是進行以模塊功能和處理過程設計為主的詳細設計的基本原則。結構化程序設計是過程式程序設計的一個子集,它對寫入的程序使用邏輯結構,使得理解和修改更有效更容易。14、以下選項中合法的變量是A、5aB、A%C、_10_D、sizeof標準答案:C知識點解析:對于變量的命名要利用標識符命名,所謂標識符就是C語言中的變量名、函數名、數組名、文件名、類型名等。其中標識符構成:①標識符由字母、數字和下劃線組成;②第一個字符必須為字母或下劃線;因此選項A)中數字開頭,選項B)出現了非法字符%,而選項D)中sizeof為關鍵字,不能為變量命名。15、以下敘述中正確的是A、函數的返回值不能是結構體類型B、函數的返回值不能是結構體指針類型C、在調用函數時,可以將結構體變量作為實參傳給函數D、結構體數組不能作為參數傳給函數標準答案:C知識點解析:和普通變量相似,結構體變量也可以作為函數實參或者形參,函數的返回值也可以是結構體類型。16、有以下程序#includeintm1(intx,inty){returnx<=y?x:y;}intm2(intx,inty){returnx<=y?y:x;}intfun(inta,intb){returna+b;}main(){intx=2,y=3,z=1;printf("%d\n",fun(m1(x,y),m2(y,z)));}程序的運行結果是()。A、5B、6C、4D、3標準答案:A知識點解析:函數m1()返回兩個參數中較小的數值,函數m2()返回兩個參數中較大的數值,函數fun()返回兩個參數之和,所以fun(m1(x,y),m2(y,z))=fun(m1(2,3),m2(3,1))=fun(2,3)=5,答案選A。17、有以下程序,程序運行后的輸出結果是#definePT3.5;#defineS(x)PT*x*x;main(){inta=1,b=2;printf("%4.1f\n",S(a+b));}A、31.5B、7.5C、程序有錯無輸出結果D、14.0標準答案:C知識點解析:本題考查宏定義。預處理語句后面不能加分號,因此程序有錯。如果沒加分號的話S(a+b)=PT*a+b*a+b=3.5*1+2*1+2=7.5。18、一間宿舍可住多個學生,則實體宿舍和學生之間的聯(lián)系是()。A、一對一B、一對多C、多對一D、多對多標準答案:B知識點解析:因為一間宿舍可以住多個學生即多個學生住在一個宿舍中,但一個學生只能住一間宿舍,所以實體宿舍和學生之間是一對多的關系。19、下列函數的功能是voidfun(char*a,char*b){while((*b=*a)=’\0’){a++;b++;}}A、使指針b指向a所指字符串B、將a所指字符串和b所指字符串進行比較C、將a所指字符串賦給b所指空間D、檢查a和b所指字符串中是否有’\0’標準答案:C知識點解析:在while語句的條件中是把字符*a的值賦給字符*b,然后再判斷字符*b的值是否等于字符串的結束字符(’\0’),當不等于結束字符(’\0’)時,把字符指針變量a,b分別加1,指它們的下一個字符,直到字符串a的結束。這樣程序執(zhí)行的結果就是把字符串a賦給了b所指的存儲空間。20、有以下程序#includestructord{intx,y;}dt[2]={1,2,3,4};main(){structord*p=dt;pfintf(“%d,”,++(p->x));printf("%d\n",++(p->y));}程序運行后的輸出結果是A、4,1B、2,3C、3,4D、1,2標準答案:B知識點解析:在題目中定義了結構體ord類型的數組變量dt,并對其賦初值。在程序中定義了指向結構體ord類型的指針變量p,并且它指向變量數組dt的第一個元素dt[0],所以此時成員變量p->x的值等于1,成員變量p->y的值等于2,在輸出時分別加1,所以輸出結果為選項B。21、下列關系表達式中,結果為"假"的是A、3<=4B、(3<4)==1C、(3+4)>6D、(3!=4)>2標準答案:D知識點解析:B選項中,關系表達式(3<4)==1即1==1,結果為真;C選項中,(3+4)>6即7>6,結果為真;A選項中,3<=4結果為真。D選項中,(3!=4)>2即1>2,結果為假。因此D選項正確。22、若有以下程序structstu{char*name,gender;intscore;};main(){structstua={NULL,’m’,290},b;a.name=(char*)malloc(10);strcpy(a.name,"Zhao");b=a;b.gender=’f’;b.score=350;strcpy(b.name,"Qian");printf("%s,%c,%d,",a.name,a.gender,a.score);printf("%s,%c,%d\n",b.name,b.gender,b.score);}則程序的輸出結果是A、Zhao,m,290,Qian,f,350B、Qian,f,350,Qian,f,350C、Zhao,m,290,Zhao,f,350D、Qian,m,290,Qian,f,350標準答案:D知識點解析:主函數中定義結構體類型structstu,有三個成員,第一個成員為字符指針變量。主函數中為stu類型變量a賦值,首先為a.name成員分配存儲空間,存入數據。b=a;語句執(zhí)行完畢以后,a和b的各個成員值相同,需要注意的是b.name和a.name成員都保存了同一段內存的地址,凼此當為變量b賦值的時候,同樣更改了a的name成員,而其他成員由于有單獨的存儲空間而不會發(fā)生改變。23、若有以下程序typedefstructstu{charname[10],gender;intscore;}STU;voidf(char*p){strcpy(P,"Qian");}main(){STUa={"Zhao",’m’,290},b;b=a;f(b.name);b.gender=’f’b.score=350;printf("%s,%c,%d,",a.name,a.gender,a.score);printf("%s,%c,%d\n",b.name,b.gender,b.score);}則程序的輸出結果是A、Zhao,m,290,Zhao,m,290B、Qian,f,350,Qian,f,350C、Zhao,m,290,Qian,f,350D、Zhao,m,290,Zhao,f,350標準答案:C知識點解析:主函數中結構體變量定義同時賦初值。執(zhí)行b=a;語句后,b的數據和a的數據相同,調用函數f(b.name),形參指針p接收實參b.name的地址,此時p和b.name指向同一個存儲空間,流程轉到f執(zhí)行,p指向的存儲空間存放字符串"Qian",流程結束返回主函數。主函數中變量b的其他成員存放數據。因此a的數據{"Zhao",’m’,290},b的數據為{"Qian",’f’,350}。注意本題結構體STU類型變量a和b中的name成員為數組,不是指針,它具有自己的存儲空間。24、以下敘述中錯誤的是()。A、可以通過typedef增加新的類型B、可以用typedef將已存在的類型用一個新的名字來代表C、用typedef定義新的類型名后,原有類型名仍有效D、用typedef可以為各種類型起別名,但不能為變量起別名標準答案:A知識點解析:typedef為類型定義符,使用的一般形式為"typedef原類型名新類型名;",它用于給已知類型取別名,作用僅僅是用"新類型名"代替"原類型名",并沒有產生新的數據類型,答案選A。25、有以下程序:#include#includeintfun(intn){int*p;p=(int*)malloc(sizeof(int));*p=n;return*p;}main(){inta;a=fun(10);printf("%d\n",a+fun(10));}程序的運行結果是()。A、0B、10C、20D、出錯標準答案:C知識點解析:malloc(sizeof(int))的作用是開辟一個長度為sizeof(int)存儲空間,并通過強制類型轉換(int*)將此存儲空間的地址賦給了一個整型的指針變量p。然后執(zhí)行語句*p=n,使得*p的值為10,并通過return返回此值,即a的值為10。然后在主函數中輸出a+fun(10)=10+10=20。國家二級C語言機試(選擇題)模擬試卷第3套一、選擇題(本題共25題,每題1.0分,共25分。)1、關于C語言中數的表示,以下敘述正確的是A、只要允許范圍內整型數和實型數都能精確的表示B、只有整型數在允許范圍內能精確無誤的表示,實型數會有誤差C、只有實型數在允許范圍內能精確無誤的表示,整型數會有誤差D、只有用八進制表示的數才不會有誤差標準答案:C知識點解析:本題考查c語言基本數據類型,整型數是有范圍的,只在允許的范圍內才能精確無誤的表示,實型數由于存儲長度限制存在誤差。2、下列敘述中正確的是()。A、循環(huán)隊列中的元素個數隨隊頭指針與隊尾指針的變化而動態(tài)變化B、循環(huán)隊列中的元素個數隨隊頭指針的變化而動態(tài)變化C、循環(huán)隊列中的元素個數隨隊尾指針的變化而動態(tài)變化D、以上說法都不對標準答案:A知識點解析:在循環(huán)隊列中,用隊尾指針rear指向隊列中的隊尾元素,用排頭指針front指向排頭元素的前一個位置。因此,從排頭指針front指向的后一個位置直到隊尾指針rear指向的位置之間所有的元素均為隊列中的元素。所以循環(huán)隊列中的元素個數隨隊頭指針和隊尾指針的變化而變化。A選項正確。3、對長度為n的線性表進行順序查找,在最壞情況下所需要的比較次數為A、log2nB、n/2C、nD、n+1標準答案:C知識點解析:在進行順序查找過程中,如果被查的元素是線性表中的最后一個元素,或者被查元素根本不在線性表中,則為了查找這個元素需要與線性表中的所有元素進行比較,這是順序查找的最壞情況,需要比較的次數為n次。4、C語言中double類型數據占字節(jié)數為A、4B、12C、8D、16標準答案:C知識點解析:double類型所占字節(jié)為8。5、sizeof(double)是A、一個雙精度型表達式B、一個整型表達式C、一個不合法的表達式D、一種函數調用標準答案:B知識點解析:sizeof關鍵字為C語言的運算符,用于測試()內類型其變量所占內存,表達式結果返回卜進制整數,因此為整型表達式,表明變量所占的內存字節(jié)數。6、有以下程序,程序的輸出結果是main(){charc1=’A’,c2=’Y’;printf("%d,%d\n",c1,c2);}A、輸出格式不合法,輸出出錯信息B、65.90C、65,89D、A,Y標準答案:C知識點解析:C語言允許對整型變量賦以字符值,世允許對字符變量賦以整型值。在輸出時,允許把字符變量按整型量輸出,也允許把整型量按字符量輸出。7、表達式(int)((double)9/2)一9%2的值是()。A、0B、3C、4D、5標準答案:B知識點解析:先將整型數據9強制轉換成double型,然后除以2,得到的結果與double型保持一致,即為4.5,然后將4.5強制轉換成整型數據4,然后計算9%2的值為1,最后計算4—1的值為3,所以選擇B選項。8、在軟件開發(fā)中,需求分析階段產生的主要文檔是A、可行性分析報告B、軟件需求規(guī)格說明書C、概要設計說明書D、集成測試計劃標準答案:A知識點解析:需求分析的最終結果是生成軟件需要規(guī)格說明書,可以為用戶、分析人員和設計人員之間的交流提供方便,可以直接支持目標與確認,又可以作為控制軟件開發(fā)進程的依據。9、有以下程序#includeintfun(intx){intp;if(x==0‖x==1)return(3);P=x-fun(x-2);return(p);}main(){printf("%d\n",fun(9));}程序運行后的輸出結果是A、5B、9C、4D、7標準答案:D知識點解析:函數fun的主要功能是:初值x的值為9,因此fun(9)=9-fun(7)=9-(7-(5-(3-3))),因此答案為7。10、有以下程序voidfun(char*s){chara[10];strcpy(a,"STRING");s=a;}main(){char*p="PROGRAN";fun(p);printf("%s\n",p);)程序運行后的輸出結果是(此處口代表空格)A、STRING□□□□B、PROGRAMC、STRING□□□D、STRING標準答案:B知識點解析:函數fun的主要功能是把字符串"STRING",存放到字符數組a中,s指向該字符串,函數調用結束以后,釋放s和a指向的空間。主函數調用fun(p),并不能更改p的值,因此p的指向沒有改變。11、以下不合法的字符常量是A、’\"’B、’\\’C、’\018’D、’\xcc’標準答案:C知識點解析:在C語言中,一個字符常量代表ASCII字符集中的一個字符,在程序中用單引號把一個字符括起來用為字符常量。轉義字符常量也是必須括在一對單引號內,以一個反斜線開頭后跟一個特定的字符,用來代表某一個特定的ASCII字符。在選項C)中,’\018’是用八進制數來代表一個字符常量,所以其中的數字只能小于8,并不包括8。12、有以下程序#includemain(){intx=1,y=2,z=3;if(x>y)if(yA、1B、41C、2D、331標準答案:A知識點解析:嵌套的if-else語句執(zhí)行條件不滿足所以整個條件嵌套語句并沒有執(zhí)行,只執(zhí)行了最后一句"printf("%d\n",x++);",輸出x的值為1,答案選A。13、有以下程序main(){intij,x=0;for(i=0;i<2;i++){x++;for(j=0;j<=3;j++){if(j%2)continue;x++;}x++;}printf("x=%d\n"x);}程序執(zhí)行后的輸出結果是A、x=4B、x=6C、x=12D、x=8標準答案:D知識點解析:在第1次外層for循環(huán)中,首先x++得到x=1。進入到內層for循環(huán),只有循環(huán)變量j的值為奇數時,變量x的值才自加1,所以在內層for循環(huán)執(zhí)行過程中,變量x的值自加兩次,當退出內層for循環(huán)時,x=3,然后執(zhí)行x++,得到x=4。在進入執(zhí)行第2次外層for循環(huán)中,首先x++得到x=5。進入到內層for循環(huán),只有循環(huán)變量j的值為奇數時,變量x的值才自加1,所以在內層for循環(huán)執(zhí)行過程中,變量x的值自加1兩次,當退出內層for循環(huán)時,x=7,然后執(zhí)行x++,得到x=8,所以打印輸出變量x的值為8。14、若有以下程序#include<stdio.h>intk=7,m=5;yoidflint**S){int*t=&k:s=&t;*s=&m;printf(’’%d,%d,%d,’’,k,*t,**s);}main(){inti=3,*p=&i,**r=&p;fir);printf(’’%d,%d,%d\n’’,i,*P,**r);}則程序的輸出結果是A、7,5,7,3,3,3,B、7,5,7,3,5,7,C、7,5,5,3,3,3,D、7,7,5,3,3,3標準答案:C知識點解析:本題考查二級指針作為函數的參數,可以通過函數調用來改變主函數中一級指針的指向。主函數中指針變量p指向i,r指向p,調用f函數,形參指針s指向p,流程轉到f函數執(zhí)行,指針變量指向k,s指向t,此時更改了s的指i,uj,s指向了t,更改了s指向的地址空間內容為m的地址,同時t也指向變量m,因此**s的值為m的值,*t為m的值,k為7。流程返回到主函數,沒有對主函數空間的數據和指向作出更改,因此全部為3。15、有以下程序段intn,t=1,s=0;scanf("%d",&n);do{s=s++;t=t一2;}while(t!=n);為使此程序段不陷入死循環(huán),從鍵盤輸入的數據應該是A、任意正奇數B、任意負偶數C、任意正偶數D、任意負奇數標準答案:D知識點解析:本題考查基本輸入和循環(huán)。程序代碼的功能是通過scanf給變量n賦值,在do…while循環(huán)中,s變量自增,t變量每次減2,t的初值為1,循環(huán)執(zhí)行執(zhí)行一次后t的值變成.1,然后是-3、-5…,直到t的值和n的值相同循環(huán)結束。從t的值的變化可知,t是一個變化的負奇數,因此輸入的n如果是負奇數,則循環(huán)能退出,否則是死循環(huán)。16、設fp為指向某二進制文件的指針,且已讀到此文件末尾,則函數feof(f1))的返回值為A、’\0’B、0C、NULLD、非0值標準答案:D知識點解析:ANSIC提供的feof函數的功能是判斷fb所指的文件的位置是否已達到文件尾,如果達到文件尾,則feof函數的值為1,否則為0,表示文件尚未結束。17、以下關于函數的敘述中正確的是A、每個函數都可以被其他函數調用(包括main函數)B、每個函數都可以被單獨編譯C、每個函數都可以單獨運行D、在一個函數內部可以定義另一個函數標準答案:B知識點解析:本題主要考查函數的定義和使用。選項A)錯誤,main函數可以調用其他函數,但是其他函數不能調用main函數;選項B)正確;選項C)錯誤,只有main函數可以單獨運行,其他函數只能被調用;選項D)錯誤,C語言中不能在函數內部定義函數。18、關于do循環(huán)體while(條件表達式);以下敘述中正確的是A、循環(huán)體的執(zhí)行次數總是比條件表達式的執(zhí)行次數多一次B、條件表達式的執(zhí)行次數總是比循環(huán)體的執(zhí)行次數多一次C、條件表達式的執(zhí)行次數與循環(huán)體的執(zhí)行次數無關D、條件表達式的執(zhí)行次數與循環(huán)體的執(zhí)行次數一樣標準答案:D知識點解析:do-while語句先執(zhí)行語句,后判斷表達式的值。故do-while語句又稱“直到型”循環(huán)結構。由于是先執(zhí)行后判斷,因此do-while語句的循環(huán)語句至少被執(zhí)行一次,循環(huán)條件至少判斷一次。19、有以下程序#include<stdio.h>voidmain(){chars[]={"012xy"};inti,n=0;for(i=0;s[i]!=0;i++)if(s[i]>=’a’a&&s[i]<=’z’)n++;printf("%d\n",n);}程序運行后的輸出結果是A、0B、3C、5D、2標準答案:D知識點解析:這段程序的功能求出字符串s中字符在小寫字符a到z之間字符的個數。在程序中字符串s的值為“012xy”,所以在字符串s中符合要求的字符的個數等于2。20、有以下程序voidswap(char*x,char*y){chart;t=*x;*x=*y;*y=t;}main(){char*s1="abc",*s2="123";swap(s1,s2);printf("%s,%s\n",s1,s2);}程序執(zhí)行后的輸出結果是A、abc,123B、123,abcC、321,cbaD、1bc,a23標準答案:D知識點解析:函數voidswap(char*x,char*y)的功能是交換兩個字符*x和*y中的內容。在主函數中字符指針s1指向字符串’abc’,s2指向字符串’123’。所以函數swap(s1,s2)的執(zhí)行結果就是字符’a’和’1’相互交換。21、下列選項中,能正確定義數組的語句是A、intnum[];B、intN=2008;intnum[N];C、intnum[0..2008];D、#defineN2008intnum[N];標準答案:D知識點解析:在定義一維數組時,數組的下標應該是一個確定的整數值。要注意的是在定義二維數組時,其第一維下標可以省略,但第二維下標不能省略。22、以下敘述中正確的是A、在語句charstr[]="string!";中,數組str的大小等于字符串的長度B、語句charstr[10]="string!";和charstr[10]={"string!"};并不等價C、對于一維字符數組,不能使用字符串常量來賦初值D、對于字符串常量"string!",系統(tǒng)已自動在最后加入了’\0’字符,表示串結尾標準答案:D知識點解析:字符串中的字符依次存儲在內存中一塊連續(xù)的區(qū)域內,并且把空字符’\0’自動附加到字符串的尾部作為字符串的結束標志。故字符個數為n的字符串在內存中應占(n+1)個字節(jié)。B選項中兩者等價,C選項中可以使用字符串常量來給一維字符數組賦值,就像B選項中一樣,A選項中數組長度比字符串長度小一個字節(jié),字符串中包含隱含的結尾符。23、某系統(tǒng)結構圖如下圖所示該系統(tǒng)結構圖的深度是()。A、1B、2C、3D、4標準答案:D知識點解析:深度表示控制的層數。本題中,“某系統(tǒng)”為第1層,“功能1、功能2…功能n”為第二層,“功能2.1、功能2.2、功能2.3、功能n.1、功能n.2”為第3層,“功能2.2.1、功能2.2.2”為第4層,共4層,故深度為4。24、下列敘述中正確的是()。A、數據庫系統(tǒng)避免了一切冗余B、數據庫系統(tǒng)減少了數據冗余C、數據庫系統(tǒng)中數據的一致性是指數據類型一致D、數據庫系統(tǒng)比文件系統(tǒng)能管理更多的數據標準答案:B知識點解析:數據庫系統(tǒng)共享性大,冗余度小,但只是減少了冗余,并不是避免一切冗余。數據的一致性是指在系統(tǒng)中同一數據在不同位置的出現應保持相同的值,而不是數據類型的一致。數據庫系統(tǒng)比文件系統(tǒng)有更強的管理控制能力,而不是管理更多的數據。25、若有定義:inta=0,b=1,c=1;關于邏輯表達式a++||b++&&c++中各個部分的執(zhí)行順序,以下說法正確的是()。A、先執(zhí)行b++,再執(zhí)行c++,最后執(zhí)行a++B、先執(zhí)行a++,再執(zhí)行b++,最后執(zhí)行c++C、先執(zhí)行c++,再執(zhí)行b++,最后執(zhí)行a++D、先執(zhí)行b++,再執(zhí)行a++,最后執(zhí)行c++標準答案:B知識點解析:C語言中運算符有優(yōu)先級和結合性,首先自增自減運算符的優(yōu)先級高于邏輯運算符,再者邏輯運算符中&&優(yōu)先級比||高,邏輯運算符是自左向右運算,所以題意中表達式等價于:(a++)||((b++)&&(c++)),運算順序為:首先執(zhí)行a++,再執(zhí)行b++,最后執(zhí)行c++,本題答案為B。國家二級C語言機試(選擇題)模擬試卷第4套一、選擇題(本題共25題,每題1.0分,共25分。)1、某完全二叉樹共有256個結點,則該完全二叉樹的深度為()。A、7B、8C、9D、10標準答案:C知識點解析:根據完全二叉樹的性質:具有n個結點的完全二叉樹的深度為[log2n]+1。本題中完全二叉樹共有256個結點,則深度為[log2256]+1=8+1=9。2、某二叉樹的中序遍歷序列為CBADE,后序遍歷序列為CBEDA,則前序遍歷序列為()。A、CBADEB、CBEDAC、ABCDED、EDCBA標準答案:C知識點解析:二叉樹的后序遍歷序列為CBEDA,由于后序遍歷最后訪問根節(jié)點,可以確定該二叉樹的根節(jié)點是A。再由中序遍歷序列為CBADE,可以得到子序列(CB)一定在左子樹中,子序列(DE)一定在右子樹中。節(jié)點C、B在中序序列和后序序列中順序未變,說明節(jié)點B是節(jié)點C的父節(jié)點;節(jié)點D、E在中序序列和后序序列中順序相反,說明節(jié)點D是節(jié)點E的父節(jié)點。因此該二叉樹的前序遍歷序列為ABCDE。3、以下關于C語言數據類型使用的敘述中錯誤的是A、若要保存帶有多位小數的數據,可使用雙精度類型B、若要處理如“人員信息”等含有不同類型的相關數據,應自定義結構體類型C、若只處理“真”和“假”兩種邏輯值,應使用邏輯類型D、整數類型表示的自然數是準確無誤差的標準答案:C知識點解析:在C語言中沒有定義邏輯類型,而是用0代表假,用非零代表真。4、在長度為97的順序有序表中作二分查找,最多需要的比較次數為A、7B、96C、48D、6標準答案:A知識點解析:二分查找又稱折半查找,優(yōu)點是比較次數少,查找速度快,平均性能好;其缺點是要求待查表為有序表,且插入刪除困難。最多比較次數的計算方式:k=log2n。其中n代表長度,k為比較次數。本題中可以計算出k=7。5、程序調試的任務是()。A、設計測試用例B、驗證程序的正確性C、發(fā)現程序中的錯誤D、診斷和改正程序中的錯誤標準答案:D知識點解析:程序調試的任務是診斷和改正程序中的錯誤。6、軟件生命周期可分為定義階段,開發(fā)階段和維護階段。詳細設計屬于A、定義階段B、開發(fā)階段C、維護階段D、上述三個階段標準答案:B知識點解析:本題考查軟件生命周期的相關概念。通常,將軟件產品從提出、實現、使用維護到停止使用退役的過程稱為軟件生命周期。也就是說,軟件產品從考慮其概念開始,到該軟件產品不能使用為止的整個時期部屬于軟件生命周期。一般也包括可行性研究與需求分析、設計、實現、測試、交付使用以及維護等活動。還可以將軟件生命周期分為軟件定義、軟件開發(fā)及軟件運行維護三個階段。7、在軟件設計中不使用的工具是A、系統(tǒng)結構圖B、PAD圖C、數據流圖D、程序流程圖標準答案:C知識點解析:在軟件開發(fā)的各個階段經常會使用到一些圖形工具,如在需求分析階段使用數據流圖(DFD圖),在概要設計階段使用系統(tǒng)結構圖,往詳細設計階段使用程序流程圖,N—S圖或者PAD圖等。8、一般情況下,當對關系R和S進行自然連接時,要求R和S含有一個或者多個共有的()。A、記錄B、行C、屬性D、元組標準答案:C知識點解析:進行自然連接時要求兩個關系具有相同列,即屬性。9、某系統(tǒng)總體結構如下圖所示該系統(tǒng)結構圖是A、層次結構B、網狀結構C、分支結構D、循環(huán)結構標準答案:A知識點解析:層次結構(hierarchy)是一種操作系統(tǒng)的組織結構,其提供了一種隔離操作系統(tǒng)各層功能的模型。其包括歸屬層次結構dissonance-attributionhierarchy維度層次結構dimensionhierarchy層次結構數據庫hierarchicaldatabase等。網狀結構這一名詞來自早期解剖學家用光學顯微鏡對腦干中央區(qū)網絡狀外觀的描述,在光鏡下這部分組織學的特點是神經細胞分散,形態(tài)各異,大小不等,神經纖維交錯穿行其間,形成一種灰白質交織的結構,稱之為網狀結構。分支結構的執(zhí)行是依據一定的條件選擇執(zhí)行路徑,而不是嚴格按照語句出現的物理順序。分支結構的程序設計方法的關鍵在于構造合適的分支條件和分析程序流程,根據不同的程序流程選擇適當的分支語句。循環(huán)結構可以減少源程序重復書寫的上作量,用來描述重復執(zhí)行某段算法的問題,這是程序設計中最能發(fā)揮計算機特長的程序結構。10、下列選項中,能夠滿足“只要字符串s1等于字符串s2,則執(zhí)行sT”要求的是()。A、if(s1-s2==0)ST;B、if(s1==s2)ST;C、if(strepy(s1,s2)==1)ST;D、if(strcrnp(s2,s1)==0)ST;標準答案:D知識點解析:在C語言中,要對兩個字符串的大小進行比較,就需要調用字符串比較函數strcmp,如果這個函數的返回值等于0,說明兩個字符串相等,因此D選項正確。11、定義學生選修課程的關系模式:SC(S#,Sn,C#,Cn,G)(其屬性分別為學號、姓名、課程號、課程名、成績)。則對主屬性部分依賴的是A、S#→SnB、(S#,C#)→GC、(S#,C#)→S#D、(S#,C#)→C#標準答案:A知識點解析:關系模式SC中,學號是學生的唯一編碼,姓名對主屬性具有依賴。12、讀取二進制文件的函數調用形式為:fread(buffer,size,count,fp);,其中buffer代表的是()。A、一個內存塊的字節(jié)數B、一個整型變量,代表待讀取的數據的字節(jié)數C、一個文件指針,指向待讀取的文件D、一個內存塊的首地址,代表讀入數據存放的地址標準答案:D知識點解析:fread(void*buffer,sizetsize,sizetcount,FILE*stream)的功能是從一個文件流中讀數據,讀取count個元素,每個元素size字節(jié),如果調用成功,返回count。buffer。用于接收數據的內存地址,大小至少是size*count字節(jié);size是單個元素的大小,單位是字節(jié);count是元素的個數,每個元素是size字節(jié);stream是輸入流。13、有以下程序,已知字母A的ASCII碼為65,程序運行后的輸出結果是main(){charc1,c2;c1=’A’+’8’一’4’:c2=’A’+’8’-’5’:printf("%c,%d\n",c1,c2);}A、D,69B、E,68C、E,DD、輸出無定值標準答案:B知識點解析:字符變量c1的ASCH值等于69,而字符變量c2的ASCII值等于68,當分別以字符和整型輸出c1和c2的ASCII碼值時,其結果為E,68。14、有以下程序#includeintfun(intx){intp;if(x==0||x==1)return(3);p=x-fun(x-2);returnp;}main(){printf("%d\n",fun(7));}執(zhí)行后的輸出結果是()。A、2B、3C、7D、0標準答案:A知識點解析:因為fun(intx)是一個遞歸函數,所以主函數中fun(7)經過3次遞歸調用,其過程可以描述為"fun(7)=7-fun(5)=7-(5-fun(3))=7-(5-(3-fun(1)))=7-(5-(3-3))=7-5=2",所以最后輸出結果為2。因此A選項正確。15、有以下程序,程序運行后的輸出結果是main(){intm=12,n=34;printf(“%d%d”,m++,++n);printf(“%d%d\n”,n++,++m);}A、12353514B、123535i3C、12343514D、12343513標準答案:A知識點解析:本題主要考查自加運算符,自加運算符++在變量前表示先增加然后再使用,++在變量后表示先使用然再增加。本題中,第一個printf語句m++表示先輸出m的值,然后m增加1,因此首先輸出的是12,然后m的值變成13,++n表示n首先增加1變成35然后輸出,因此輸出的是35;在第二個printf。語句中,n++是先輸出n的值然后增加,即輸出35,n的值變?yōu)?6,++m表示先增加m的值再輸出,m的值由13變成14,故最后輸出的是14。16、有如下程序#includemain(){inti,data;scanf("%d",&data);for(i=0;i<5;i++){if(i>data)break;printf("%d,",i);}printf("\n");}程序運行時,從鍵盤輸入:3<回車>后,程序輸出結果為()。A、0,1,2,3,B、0,1,C、3,4,5,D、3,4,標準答案:A知識點解析:該代碼段的程序流程是:外層循環(huán)i從0到4,然后輸出小于等于data的值,答案選A。17、有以下程序#includevoidfun(int*a,intn)/*fun函數的功能是將a所指數組元素從大到小排序*/{intt,i,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){intc[10]={1,2,3,4,5,6,7,8,9,0},i;fun(c+4,6);for(i=0;i<10;i++)printf("%d,",c[i]);printf("\n");}程序的運行結果是A、1,2,3,4,9,8,7,6,5,0,B、0,9,8,7,6,5,1,2,3,4,C、0,9,8,7,6,5,4,3,2,1,D、1,2,3,4,5,6,7,8,9,0,標準答案:A知識點解析:該題目中fun函數的功能是將a所指數組元素從大到小排序,fun(c+4,6);即指排序從第5個元素開始進行從大到小排序。因此A選項正確。18、有以下程序#includefunc(intn){staticintnum=1;num=num+n;printf("%d",num);}voidmain(){func(3);func(4);printf("\n");}程序運行后的輸出是A、45B、35C、48D、34標準答案:C知識點解析:在函數func(intn)中定義了局部靜態(tài)變量num,,其初始值等于1,所以在主函數中執(zhí)行func(3),輸出4,此時靜態(tài)變量num的值等于4,當退出函數func(3)時,其值不會丟失,所以當在執(zhí)行func(4)時,輸出8。19、有以下程序#includemain(){inty=9;for(;y>0;y--)if(y%3==0)printf("%d",--y);}程序的運行結果是A、963B、852C、741D、875421標準答案:B知識點解析:y的值的初值為9,所以在for循環(huán)中,當y的值為9、6或3時,if語句的條件成立,執(zhí)行輸出語句,輸出表達式--y的值。因為自減符號在y的前面,所以首先y的自減1,然后再輸出v的值,故輸出結果為852。20、若有以下程序main(){intc;c=10^5:printf("%d\n",c);}則程序的輸出結果是A、15B、10000C、5D、105標準答案:A知識點解析:按位異或(^)的運算規(guī)則是:參與運算的兩個運算數中相對應的二進制位上,若數相同,則該位的結果為0:若數不同,該位的結果為1。整數10和5的二進制編碼分別為1010和0101,異或結果為1111,其十進制數據位15。21、以下程序的功能是:給r輸入數據后計算半徑為r的圓面積s。程序在編譯時出錯main()/*Beginning*/{intr;floats;scanf("%d",r);s=*π*r*r;printf("s=%f\n",s);}出錯的原因是A、注釋語句書寫位置錯誤B、存放圓半徑的變量r不應該定義為整型C、輸出語句中格式描述非法D、計算圓面積的賦值語句使用了非法變量標準答案:D知識點解析:本題考查了C語言的基本輸入輸出函數。選項A)錯誤,代碼里面的注釋是正確的,“/*”和“*/”配對;選項B)錯誤,r變量定義為整型是可以的;選項C)輸出語句格式正確;選項D)正確,計算s的時候s=*π*r*r使用了未定義變量北。22、有以下程序#include#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];}程序的運行結果是A、Qian,m,85,90B、Zhao,m,85,90C、Zhao,f,95,92D、Qian,f,95,92標準答案:B知識點解析:本題考查在結構體中函數的實參和形參的傳遞,調用f(c)后,實參傳向形參,進行f()函數功能的實現,但程序中沒有返回語句,故形參不能將值傳回實參,它們值的傳遞具有不可逆性,所與printf輸出的還是c中實參的值。23、以下敘述中正確的是A、對于“for(表達式1;表達式2;表達式3)循環(huán)體”首先要計算表達式2的值,以便決定是否開始循環(huán)B、對于“for(表達式1;表達式2;表達式3)循環(huán)體”,只在個別情況下才能轉換成while語句C、只要適當地修改代碼,就可以將do-while與while相互轉換D、如果根據算法需要使用無限循環(huán)(即通常所稱的“死循環(huán)”),則只能使用while語句標準答案:C知識點解析:while和do…while語句和for語句很容易進行相互轉換。對于for循環(huán)的執(zhí)行過程如下:①計算表達式1。②計算表達式2。若其值為非0,轉步驟③;若其值為0,轉步驟⑤。③執(zhí)行一次for循環(huán)體。④計算表達式3,轉向步驟②。⑤結束循環(huán)。任何循環(huán)都有可能成為死循環(huán)。24、關系數據模型的三個組成部分中不包括()。A、關系的數據操縱B、關系的并發(fā)控制C、關系的數據結構D、關系的完整性約束標準答案:B知識點解析:關系數據模型的三個組成部分:關系的數據結構(用二維表表示),關系操縱(查詢、刪除、插入、修改),關系的數據約束(實體完整性約束、參照完整性約束、用戶定義的完整性約束)。25、有以下程序#include<stdio.h>main(){charc;for(;(c=getchar())!=’#’;){if(c>=’a’&&c<=’z’)c=c-’a’+’A’;putchar(++c);}}執(zhí)行時輸入:aBcDefG##<回車>,則輸出結果是()。A、AbCdEFgB、ABCDEFGC、BCDEFGHD、bcdefgh標準答案:C知識點解析:循環(huán)的作用是將輸入的字符串轉化為大寫,getchar()函數讀入一個字符,putchar()函數輸出一個字符,當遇到‘#’字符結束。putchar(++c),表示將字符變量c加1后輸出。因此,輸入aBcDefG##,得到的結果是BCDEFGH。故答案為C選項。國家二級C語言機試(選擇題)模擬試卷第5套一、選擇題(本題共25題,每題1.0分,共25分。)1、下列描述中正確的是A、一個邏輯數據結構只能有一種存儲結構B、數據的邏輯結構屬于線性結構,存儲結構屬于非線性結構C、一個邏輯數據結構可以有多種存儲結構,且各種存儲結構不影響數據處理的效率D、一個邏輯數據結構可以有多種存儲結構,且各種存儲結構影響數據處理的效率標準答案:D知識點解析:數據的邏輯結構是指數據集合中各數據元素之間所固有的邏輯關系;數據的存儲結構是在對數據進行處理時,各數據元素在計算機中的存儲關系。數據的存儲結構是指數據的邏輯結構在計算機中的表示,一種邏輯結構可以表示成多種存儲結構;而采用不同的存儲結構,其數據處理的效率是不同的。2、設循環(huán)隊列的存儲空間為Q(1:m),初始狀態(tài)為空?,F經過一系列正常的入隊與退隊操作后,front=m,rear=m-1,此后從該循環(huán)隊列中刪除一個元素,則隊列中的元素個數為()。A、m=1B、m=2C、0D、1標準答案:B知識點解析:在循環(huán)隊列中,如果rear-front>0,則隊列中的元素個數為rear-front個;如果rear-front<0,則隊列中的元素個數為rear-front+m。該題中m-1<m,即rear-front<0,則該循環(huán)隊列中的元素個數為(m-1)-m+m=m-1。此后從該循環(huán)隊列中刪除一個元素,則隊列中的元素個數為m-1-1=m-2。3、某二叉樹的前序序列為ABCDEFG,中序序列為DCBAEFG,則該二叉樹的深度(根結點在第1層)為()。A、2B、3C、4D、5標準答案:C知識點解析:二叉樹的前序序列為.ABCDEFG,則A為根結點;中序序列為DCBAEFG,可知結點D、C、B位于根結點的左子樹上,結點E、F、G位于根結點的右子樹上。另外,結點B、C、D在前序序列和中序序列中順序相反,則說明這三個結點依次位于前一個結點的左子樹上;結點E、F、G順序未變,則說明這三個結點依次位于前一個結點的右子樹上。故二叉樹深度為4。4、下面可以作為軟件需求分析工具的是()。A、N-S圖B、程序流程圖C、PAD圖D、數據流程圖(DFD圖)標準答案:D知識點解析:常見的需求分析方法有結構化分析方法和面向對象的分析方法。結構化分析方法工具包括數據流圖(dFD)、數據字典(DD)、判定表和判定樹等。程序流程圖、N-S圖、PAD圖屬于軟件設計階段使用的工具。5、對軟件系統(tǒng)總體結構圖,下面描述中錯誤的是()。A、深度等于控制的層數B、扇入是一個模塊直接調用的其他模塊數C、扇出是一個模塊直接調用的其他模塊數D、原子模塊一定是結構圖中位于葉子節(jié)點的模塊標準答案:B知識點解析:與結構圖有關的術語如下:6、軟件需求規(guī)格說明書在軟件開發(fā)中的作用不包括()。A、軟件設計的依據B、軟件可行性分析的依據C、軟件驗收的依據D、用戶和開發(fā)人員對軟件要做什么的共同理解標準答案:B知識點解析:需求分析就是分析軟件用戶的需求是什么,描述需求的文檔稱為軟件需求規(guī)格說明書。軟件需求規(guī)格說明書是需求分析階段的最后成果。需求規(guī)格說明書是使開發(fā)人員獲得設計和實現這些功能所需的所有必要信息,是軟件設計的依據,A選項正確;軟件需求規(guī)格說明書是軟件測試和驗收的依據,通過檢查每項需求是否能通過設計測試用例或其他的驗證方法,來確定產品是否確實按需求實現了,C選項正確;軟件需求規(guī)格說明書對所有需求說明的用戶和開發(fā)人員都只能有一個明確統(tǒng)一的解釋,是用戶和開發(fā)人員對軟件要做什么的共同理解,D選項正確??尚行苑治鍪琼椖苛㈨楇A段要做的工作,雖然也需要對用戶需求進行調研,但此階段不會形成軟件需求規(guī)格說明書。故正確答案為B。7、不屬于對象構成成份的是A、規(guī)則B、屬性C、標識D、方法(或操作)標準答案:A知識點解析:對象由屬性、方法和標識構成。8、在下列關系運算中,不改變關系表中的屬性個數但能減少元組個數的是A、并B、交C、投影D、笛卡兒乘積標準答案:B知識點解析:關系R與S經交運算后所得到的關系是由那些既在R內又在S內的有序組所組成,記為R∩S。形式定義如下:R∩S≡{t∈R∧t∈S)=R-(R-S)。所以不改變關系表中的屬性個數,但能減少元組個數的是關系表之間的交操作。9、以下選項中不能用作C程序合法常量的是A、’\123"B、1,234C、123D、”Lx7D’t標準答案:B知識點解析:選項B中的1,234在兩側加雙引號才是C程序的合法字符串常量。10、以下敘述中正確的是A、對于變量而言,’’定義’’和’’說明’’這兩個詞實際上是同一個意思B、在復合語句中不能定義
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 下學期幼兒園小班美術教學計劃
- 出租水產攤位合同范本
- 書法班退費合同范本
- 廠房買斷合同范本
- 一冊拼音及一二三單元教案十五
- 農戶院落租賃合同范本
- 兒童玩偶租賃合同范本
- 醫(yī)療設備進貨合同范本
- 午托廚房合同范本
- 《荷花》教學反思三年級語文教學反思
- DB14T-水地冬小麥壯苗技術規(guī)程編制說明
- DB11∕T 1326-2016 中小學校晨午檢規(guī)范
- 北師大版(三起)(2024)三年級上冊英語Unit 2 School life單元測試卷(含答案)
- 兩癌篩查宣傳課件
- 中醫(yī)痛經講解培訓課件
- 《跨境直播運營》課件-跨境直播的概念和發(fā)展歷程
- 施工現場安全隱患檢查表
- DL∕T 478-2013 繼電保護和安全自動裝置通 用技術條件 正式版
- DL∕T 516-2017 電力調度自動化運行管理規(guī)程
- 《原來數學這么有趣》小學數學啟蒙課程
- 中醫(yī)內科臨床診療指南-塵肺病
評論
0/150
提交評論