版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
國家二級C語言機試(選擇題)模擬試卷14(共9套)(共270題)國家二級C語言機試(選擇題)模擬試卷第1套一、選擇題(本題共25題,每題1.0分,共25分。)1、下列描述中正確的是A、線性鏈表是線性表的鏈式存儲結構B、棧與隊列是非線性結構C、雙向鏈表是非線性結構D、只有根結點的二叉樹是線性結構標準答案:A知識點解析:線性表的鏈式存儲結構稱為線性鏈表。線性表鏈式存儲結構的基本單位稱為存儲結點,每個存儲結點包括數(shù)據(jù)域和指針域兩個組成部分。各數(shù)據(jù)元素之間的前后件關系是由各結點的指針域來指示的,指向線性表中第一結點的指針HEAD稱為頭指針,當HEAD=NULL時稱為空表。棧、隊列和雙向鏈表是線性結構,樹是一種簡單的非線性結構。在樹這種數(shù)據(jù)結構中,所有數(shù)據(jù)元素的關系具有明顯的層次特征。二叉樹是非線性結構。線性結構和非線性結構是從數(shù)據(jù)的邏輯結構角度來講的,與該數(shù)據(jù)結構中有多少個元素沒有關系,即使是空的二叉樹也是非線性結構。2、以下程序的輸出結果是()。#include<stdio.h>main(){inta=1,b=3;if((++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知識點解析:解答本題的關鍵在于if語句條件中的表達式。初始時“a=l,b=3”,所以“++a=2>0”,因此“++a<0”為假:因為是進行邏輯與(&&)運算,在&&的一個運算對象為假的前提下不用判斷第二個運算對象的真假。就可以直接得出整個表達式的值為邏輯0,所以執(zhí)行else語句。3、下列與隊列結構有關聯(lián)的是A、函數(shù)的遞歸調用B、數(shù)組元素的引用C、多重循環(huán)的執(zhí)行D、先到先服務的作業(yè)調度標準答案:D知識點解析:隊列中最先插入的元素將最先被刪除,最后插入的元素將最后被刪除。4、下列關于二叉樹的敘述中,正確的是A、葉子結點總是比度為2的結點少一個B、葉子結點總是比度為2的結點多一個C、葉子結點數(shù)是度為2的結點數(shù)的兩倍D、度為2的結點數(shù)是度為1的結點數(shù)的兩倍標準答案:B知識點解析:由二叉樹的性質可以知道在二叉樹中葉子結點總是比度為2的結點多一個。5、C語言程序中,若函數(shù)無返回值,則應該對函數(shù)說明的類型是()。A、intB、doubleC、charD、void標準答案:D知識點解析:int表示返回值是整型,double表示返回值是雙精度型,char表示返回值是字符型,voicl表示無返回值。6、有2個關系R、S如下:由關系R通過運算得到關系S,則所使用的運算為()。A、選擇B、投影C、插入D、連接標準答案:B知識點解析:投影運算是指對于關系內的域指定可引入新的運算。本題中s是在原有關系R的內部進行的,是由R中原有的那些域的列所組成的關系,所以選擇B選項。7、若有定義intx,y;并已正確給變量賦值,則以下選項中與表達式(x—y)?(x++):(y++)中的條件表達式(x—y)等價的是A、(x—y<0)B、(x-y>0)C、(x-y<0‖y—y>0)D、(x-y==0)標準答案:D知識點解析:條件表達式的形式如下:表達式1?表達式2:表達式3。其含義為當“表達式1”的值為非零時,求出“表達式2”的值,此時“表達式2”的值就是整個條件表達式的值:當“表達式1”的值為零時.則求“表達式3”的值,這時“表達式3”的值就是整個表達式的值。本題條件表達式的執(zhí)行順序是先求解表達式“x-y”的值,若其值為非0(可以是正數(shù),也可以是負數(shù)).則再求表達式“x++”的值,其值就是條件表達式的值;若表達式“x.y”的值為0,則再求表達式“y++”的值,其值就是條件表達式的值。8、通常軟件測試實施的步驟是()。A、集成測試、單元測試、確認測試B、單元測試、集成測試、確認測試C、確認測試、集成測試、單元測試D、單元測試、確認測試、集成測試標準答案:B知識點解析:軟件測試過程一般按4個步驟進行,即單元測試、集成測試、驗收測試(確認測試)和系統(tǒng)測試。在本題中,答案應該選B。9、設二叉樹共有375個結點,其中度為2的結點有187個。則度為1的結點個數(shù)是A、0B、1C、188D、不可能有這樣的二叉樹標準答案:A知識點解析:二叉樹的每個結點至多只有二棵子樹(不存在度大于2的結點),二叉樹的子樹有左右之分,次序不能顛倒。二叉樹的第i層至多有2i-1個結點;深度為k的二叉樹至多有2k-1個結點;對任何一棵二叉樹T,如果其終端結點數(shù)為n0,度為2的結點數(shù)為n2,則n0=n2+1。本題中,度為2的結點有187個,葉子結點應該有187+1=188個,度為1的結點個數(shù)=375-187-188=0。10、下面描述中不屬于數(shù)據(jù)庫系統(tǒng)特點的是A、數(shù)據(jù)共享B、數(shù)據(jù)完整性C、數(shù)據(jù)冗余度高D、數(shù)據(jù)獨立性高標準答案:C知識點解析:數(shù)據(jù)系統(tǒng)的基本特點有數(shù)據(jù)的集成性、數(shù)據(jù)的高共享性與低冗余性、數(shù)據(jù)的獨立性、數(shù)據(jù)統(tǒng)一管理與控制。11、在黑盒測試方法中,設計測試用例的主要根據(jù)是A、程序內部邏輯B、程序外部功能C、程序數(shù)據(jù)結構D、程序流程圖標準答案:B知識點解析:黑盒測試法指的是根據(jù)程序的外部功能,把程序本身看成一個黑盒子,設計測試用例來驗證程序外部功能的正確性。12、我們所寫的每條C語句,經(jīng)過編譯最終都將轉換成二進制的機器指令。關于轉換以下說法錯誤的是A、一條C語句可能會被轉換成多條機器指令B、一條C語句對應轉換成一條機器指令C、一條C語句可能會被轉換成零條機器指令D、某種類型和格式的C語句被轉換成機器指令的條數(shù)是固定的標準答案:B知識點解析:由C語言編寫的程序,通過編譯、鏈接轉換成可以讓機器識別的01二進制指令。這些二進制指令命令機器計算,這些就是機器指令,而C語言的語句條數(shù)和機器指令的條數(shù)不是一對一的關系。13、若以下選項中的變量全部為整型變量,且已正確定義并賦值,則語法正確的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與后面的數(shù)字用空格隔開。14、以下選項中不屬于C語言程序運算符的是A、sizeofB、()C、D、&&標準答案:C知識點解析:sizeof為測試內存的運算符,()為算術運算符,&&為邏輯運算符。而<>不是C語言的運算符,C語言中!=表示不等于。15、以下敘述中正確的是()。A、在賦值表達式中,賦值號的右邊可以是變量,也可以是任意表達式B、a是實型變量,a=10在C語言中是允許的,因此可以說:實型變量中可以存放整型數(shù)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知識點解析:實型變量只能存放實型數(shù)據(jù),把一個整型數(shù)據(jù)賦值給實型變量會將該整型轉成實型,選項B)錯誤;賦值語句"a=b"是把b的值賦值給a,而b的值不會發(fā)生改變,選項C)錯誤;賦值語句"a=b;b=a;"先把b的值指給a,此時a=9,b=9,然后把a的值賦值給b,a、b為9,選項D)錯誤;賦值運算符的左側必須為變量,右側可以是變量或者任意的表達式,所以答案選A)。16、下面對“對象”概念描述錯誤的是A、對象不具有封裝性B、對象是屬性和方法的封裝體C、對象間的通信是靠消息傳遞D、一個對象是其對應類的實例標準答案:A知識點解析:面向對象的基本概念:①對象:對象是人們要進行研究的任何事物,從最簡單的整數(shù)到復雜的飛機等均可看作對象,它不僅能表示具體的事物,還能表示抽象的規(guī)則、計劃或事件;②對象的狀態(tài)和行為:對象具有狀態(tài),一個對象用數(shù)據(jù)值來描述它的狀態(tài)。對象還有操作,用于改變對象的狀態(tài),對象及其操作就是對象的行為。對象實現(xiàn)了數(shù)據(jù)和操作的結合,使數(shù)據(jù)和操作封裝于對象的統(tǒng)一體中;③類:具有相同或相似性質的對象的抽象就是類。因此,對象的抽象是類,類的具體化就是對象,也可以說類的實例是對象。因此選項A正確。17、有以下程序:#include<stdio.h>main(){FILE*pf;char*s1=’’China’’,*s2=’’Beijing’’;pf=fopen(’’abe.dat’’,’’wb+’’);fwrite(s2,7,1,pf);rewind(pf);/*文件位置指針回到文件開頭木/fwrite(s1,5,1,pf);fclose(pf);}程序執(zhí)行后,abc.dat文件的內容是()。A、ChinaB、ChinangC、ChinaBeijingD、BeijingChina標準答案:B知識點解析:本題考查文件操作函數(shù):fwrite和rewind函數(shù)。題目中先是將s2字符串寫入adc.dat中,然后將寫指針回到文件開頭,然后寫入s1字符串,那么s1字符串就將前5個字符覆蓋,所以最終結果為Chihang,B選項正確。18、以下敘述中正確的是A、在scanf函數(shù)中的格式控制字符串是為了輸入數(shù)據(jù)用的,不會輸出到屏幕上B、在使用scanf函數(shù)輸入整數(shù)或實數(shù)時,輸入數(shù)據(jù)之間只能用空格來分隔C、在printf函數(shù)中,各個輸出項只能是變量D、使用printf函數(shù)無法輸出百分號%標準答案:A知識點解析:scanf函數(shù)中的格式控制字符串是為了輸入數(shù)據(jù)用的,無論其中有什么字符,也不會輸出到屏幕上,因此若想在屏幕上輸出提示信息,應該首先使用prinff函數(shù)輸出,選項A)正確;在使用scanf函數(shù)輸入整數(shù)或實數(shù)時,輸入數(shù)據(jù)之間可以用空格、跳格、回車來分隔,選項B)錯誤;printf輸出項不但可以為變量,還可以表達式或者常量,選項C)錯誤:如果要輸出“%”,可以在格式控制中用“%%”表示,將輸出一個“%”,選項D)錯誤。19、有以下程序#includemain(){inta,b;for(a=0;a<3;a++){scanf("%d",&b);switch(b){case1:printf("%d,",b++);case2:printf("%d,",b++);default:printf("%d,",b++);}}printf("\n");}執(zhí)行時輸入:123<回車>,則輸出結果是()。A、1,2,3,2,3,3,B、1,2,3,C、2,3,4,3,4,4,D、1,1,1,2,2,3標準答案:A知識點解析:考查switch語句的執(zhí)行過程。switch語句執(zhí)行過程中,default語句塊最后判定,case或者default只是作為一個入口,如果執(zhí)行完某一個case或者default語句塊之后沒有遇到break,則繼續(xù)往下執(zhí)行。3次輸入的b值分別為1、2、3。對應執(zhí)行的printf語句的條數(shù)分別為3、2、1條。每次輸出b自加1前的值,所以答案選A。20、以下敘述中錯誤的是A、可以用typedef將已存在的類型用一個新的名字來代表B、可以通過typedef增加新的類型C、用typedef定義新的類型名后,原有類型名仍有效D、用typedef可以為各種類型起別名,但不能為變量起別名標準答案:B知識點解析:C語言允許用typedef說明一種新類型名。typedef類型名標識符:其中“類型名”必須是在此語句之前已定義的類型標識符;“標識符”是一個用戶定義標識符,用作新的類型名:typedef語句的作用僅僅是用“標識符”來代表已存在的“類型名”,并未產生新的數(shù)據(jù)類型,原有類型名依然有效。21、若變量已正確定義,則以下語句的輸出結果是s=32;s^=32;printf("%d",s);A、-1B、1C、32D、0標準答案:D知識點解析:“按位異或”運算的規(guī)則是:參與運算的兩個運算數(shù)中相對應的二制位上,若數(shù)相同,則該位的結果為0;若數(shù)不同,則該位的結果為1。因為語句“s=32;s^=32;”相當于s與自身做按位異或運算,所以其結果等于0。22、有以下程序#include<stdioh>voidmain(){Inta□={2,3,5,4),i;for(i=0;i<4;i++)switch(i%2){case0:switch(a[i]%2){case0:a[i]++;break;case1:a[i]--;}break;case1:a[i]=0;]for(i=0;i<4;i++)printf("%d",a[i]);printf("\n");}程序運行后的輸出結果是A、2050B、3344C、3040D、0304標準答案:C知識點解析:在主函數(shù)的for循環(huán)語句中,當循環(huán)變量i的值等于0,2時,執(zhí)行switch中的case0語句,分別對數(shù)組元素a[0]和a[2]加1和減1,所以a[0]的值等于3,a[2]等于4。當循環(huán)變量i的值等于1,3時,執(zhí)行switch中的case1語句,把數(shù)組元素a[1]和a[3]的值賦為0。所以輸出數(shù)組a的元素,其結果為3040。23、以下語句中存在語法錯誤的是A、charss[][20]={"right?"};B、char*ss[6];ss[1]="right?";C、char*ss[]={"right?"};D、charss[6][20];ss[1]="right?";標準答案:A知識點解析:選項A)中定義了二維數(shù)組ss,可以用于存儲字符串,但是字符串的存儲不能通過賦值,僅可以初始化或者輸入得到,而選項C)和A)不同,選項C)為指針數(shù)組,對于指針變量可以保存常量字符串的地址。24、若有以下程序main(){inta=6,b=0,c=0;for(;a&&(b==0);){b+=a;a-=c++;}printf("%d,%d,%d\n",a,b,c);}則程序的輸出結果是A、6,0,0B、5,6,0C、6,6,1D、5,6,1標準答案:C知識點解析:循環(huán)條件a&&(b==0),a非零同時b==0則執(zhí)行循環(huán)體,否則退出。循環(huán)體執(zhí)行一次,此時b=6,a=6,c=1。25、有以下程序,程序運行后的輸出結果是voidfun(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);}A、10B、11C、2D、1標準答案:D知識點解析:主函數(shù)中定義指針s指向數(shù)組a,調用fun函數(shù),首先是實參傳繪形參,因此p1指向a,p2指向b,s指向a,即*s的值為1。流程到調用函數(shù)fun執(zhí)行,首先更改s的指向為新分空間的首地址,表達式*s=*p1+*(p2++),取p1指向數(shù)據(jù)位1,加上p2指向數(shù)據(jù)10,p2后移,存放到s指向的空間中11,流程結束,形參s和p1,p2撤銷,存入s指向空間的數(shù)據(jù)丟失,主函數(shù)輸出s指向數(shù)據(jù)仍然是1。國家二級C語言機試(選擇題)模擬試卷第2套一、選擇題(本題共25題,每題1.0分,共25分。)1、設數(shù)據(jù)結構B=(D,R),其中D={a,b,c,d,e,f}R={(f,a),(d,b),(e,d),(e,e),(a,c)}該數(shù)據(jù)結構為()。A、線性結構B、循環(huán)隊列C、循環(huán)鏈表D、非線性結構標準答案:A知識點解析:數(shù)據(jù)的邏輯結構有兩個要素:一是數(shù)據(jù)元素的集合,通常記為D;二是D上的關系,它反映了D中各數(shù)據(jù)元素之間的前后件關系,通常記為R。即一個數(shù)據(jù)結構可以表示成B=(D,R)。其中B表示數(shù)據(jù)結構。為了反映D中各數(shù)據(jù)元素之間的前后件關系,一般用二元組來表示。例如,假設a與b是D中的兩個數(shù)據(jù),則二元組(a,b)表示a是b的前件,b是a的后件。本題中R中的根節(jié)點為f,元素順序為f→a→c→e→d→b,滿足線性結構的條件。2、以下選項中關于程序模塊化的敘述錯誤的是A、把程序分成若干相對獨立、功能單一的模塊,可便于重復使用這些模塊B、可采用自底向上、逐步細化的設計方法把若干獨立模塊組裝成所要求的程序C、把程序分成若干相對獨立的模塊,可便于編碼和調試D、可采用自頂向下、逐步細化的設計方法把若干獨立模塊組裝成所要求的程序標準答案:B知識點解析:如果應用結構化程序設計方法設計程序,那么可采用自項向下,逐步細化的設計方法把若干獨立模塊組裝成所要求的程序。3、設棧的順序存儲空間為S(1:m),初始狀態(tài)為top=0?,F(xiàn)經(jīng)過一系列正常的入棧與退棧操作后,top=m+1,則棧中的元素個數(shù)為()。A、0B、mC、不可能D、m+1標準答案:C知識點解析:棧為空時,棧頂指針top=0,經(jīng)過入棧和退棧運算,指針始終指向棧頂元素。初始狀態(tài)為top=0,當棧滿top=m,無法繼續(xù)入棧,top值不可能為m+1。4、某二叉樹共有7個結點,其中葉子結點只有1個,則該二叉樹的深度為(假設根結點在第1層)A、3B、4C、6D、7標準答案:D知識點解析:根據(jù)二叉樹的性質,度為0的結點(即葉子結點)總是比度為2的結點多一個。題目中的二叉樹的葉子結點為1,因此度為2的結點的數(shù)目為0,故該二叉樹為7層,每層只有一個結點。5、以下敘述中正確的是()。A、C程序中注釋部分可以出現(xiàn)在程序中任何合適的地方B、花括號“{”和“)”只能作為函數(shù)體的定界符C、構成C程序的基本單位是函數(shù),所有函數(shù)名都可以由用戶命名D、分號是C程序語句之間的分隔符,不是語句的一部分標準答案:A知識點解析:C程序中的注釋可以出現(xiàn)在程序的任何地方,既可以獨占一行或幾行,也可以出現(xiàn)在某條語句的開始或末尾。選項B)的錯誤之處在于花括號不僅能作為函數(shù)體的定界符,也可以作為復合語句的定界符,還可以作為變量、數(shù)組、結構、聯(lián)合、枚舉等初始化數(shù)據(jù)的定界符;選項C)的錯誤是明顯的,除了main函數(shù)之外的其他函數(shù)才能由用戶自由命名;選項D)也是不正確的,分號是C語句的一部分,而不是用作語句之間的分隔符。6、有以下程序:#include<stdio.h>voidmain(){unsignedchara=8,c;c=a>>3:printf(″%d\n″,c);}程序運行后的輸出結果是()。A.32B.16C.1D.0A、32B、16C、1D、0標準答案:C知識點解析:字符常量與其ASCⅡ碼值一一對應,在計算的時候,可以使用該字符的ASCⅡ碼參與運算,輸出時會根據(jù)格式控制符輸出對應的字符或者ASCⅡ碼。右移運算符“>>”的運算規(guī)則是把左邊運算數(shù)的各二進制位全部右移n位,n取決于“>>”右邊的數(shù)值。字符a的ASCⅡ碼值為8,對應二進制為1000,所以a>>3=1,輸出的字符c的ASCⅡ碼值為1,答案選C。7、以下選項中不能用作C程序合法常量的是A、’\123’B、1,234C、123D、’\x7D’’標準答案:B知識點解析:選項B中的1,234在兩側加雙引號才是C程序的合法字符串常量。8、以下選項中可用作C程序合法實數(shù)的是A、3.0e0.2B、E9C、.1e0D、9.12E標準答案:C知識點解析:C程序的合法實數(shù)有兩種表示形式,一種是小數(shù)形式,另一種是指數(shù)形式,對,用指數(shù)形式表示的實數(shù)米說,需要注意的赴字母e或E之前必須要有數(shù)字,且字母e或E后面的指數(shù)必須為整數(shù)。9、設有定義: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。10、以下標識符不是關鍵字的是()。A、breakB、charC、SwitchD、return標準答案:C知識點解析:此題考查標識符和關鍵字的概念。需要注意的是C語言是區(qū)分大小寫的,“switch”是關鍵字,但“Switch”不是關鍵字。11、下列描述中正確的是A、數(shù)據(jù)庫系統(tǒng)是一個獨立的系統(tǒng),不需要操作系統(tǒng)的支持B、數(shù)據(jù)庫技術的根本目標是要解決數(shù)據(jù)的共享問題C、數(shù)據(jù)庫管理系統(tǒng)就是數(shù)據(jù)庫系統(tǒng)D、以上三種說法都不對標準答案:B知識點解析:數(shù)據(jù)庫系統(tǒng)由如下幾個部分組成:數(shù)據(jù)庫(數(shù)據(jù))、數(shù)據(jù)庫管理系統(tǒng)(軟件)、數(shù)據(jù)庫管理員(人員)、系統(tǒng)平臺之一——硬件平臺(硬件)、系統(tǒng)平臺之二——軟件平臺(軟件)。這五個部分構成了一個以數(shù)據(jù)庫為核心的完整的運行實體,稱為數(shù)據(jù)庫系統(tǒng)。數(shù)據(jù)庫技術的根本目的是要解決數(shù)據(jù)的共享問題。數(shù)據(jù)庫中的數(shù)據(jù)具有“集成”、“共享”之特點,亦即數(shù)據(jù)庫集中了各種應用的數(shù)據(jù),進行統(tǒng)一地構造與存儲,而使它們可被不同應用程序所使用。數(shù)據(jù)庫管理系統(tǒng)(DatabaseManagementSystem,簡稱DBMS),是一種系統(tǒng)軟件,負責數(shù)據(jù)庫中的數(shù)據(jù)組織、數(shù)據(jù)操作、數(shù)據(jù)維護、控制及保護和數(shù)據(jù)服務等。它是數(shù)據(jù)庫系統(tǒng)的核心。12、若變量已正確定義,在if(W)printf("%d\n",k);中,以下不可替代w的是A、ch=getchar()B、a==b+cC、a<>b+cD、a++標準答案:C知識點解析:在if()語句的括號是一個合法的C語言表達式即可,如果表達式的值為0,則不執(zhí)行if語句,否則執(zhí)行if語句,而在選項C)中,符號<>不是C語言的合法運算符,如果要表達a大于或小于b+c可用a!=b+c或(a>b+c)‖(ab+c。所以它不是一個合法的C語言表達式。13、以下不能輸出字符A的語句是(注:字符A的ASCII碼值為65,字符a的ASCII碼值為97)()。A、printf(’’%c\n’’,’a’-32);B、printf(’’%d\n’’,’A’);C、printf(’’%c\n’’,65);D、printf(’’%c\n’’,’B’-1);標準答案:B知識點解析:B選項輸出的格式為%d,即為整型格式,所以輸出字符A的ASCII碼值65,而不是字符A。由于大寫字母比和其對應的小寫字母的ASCII碼值小32,所以A選項正確。字符A的ASCII碼值就是65,所以以%c格式輸出可以輸出字符A,所以C選項正確。由于字符A的ASCII碼值比字符B的小1,所以D選項正確。14、C語言源程序名的后綴是A、.exeB、.objC、.cD、.cp標準答案:C知識點解析:由C語言構成的指令序列稱為C源程序,源程序文件的后綴為“.c”。源程序經(jīng)過C編譯程序編譯生成后綴為“.obj”的二進制文件(稱為目標文件),然后由稱為“連接程序”(Link)的軟件把目標文件與C語言提供的各種庫函數(shù)連接起來,生成后綴為“.exe”的可執(zhí)行文件。15、下列選項中不屬于結構化程序設計原則的是A、可封裝B、自頂向下C、模塊化D、逐步求精標準答案:B知識點解析:結構化程序的基本結構有:順序結構、選擇結構和循環(huán)結構,沒有GOTO跳轉結構。16、設有課程關系模式如下:R(C#,Cn,T,TA)(其中C#為課程號,Cn為課程名,T為教師名,Ta為教師地址)并且假定不同課程號可以有相同的課程名,每個課程號下只有一位任課教師,但每位教師可以有多門課程。該關系模式可進一步規(guī)范化為A、R1(C#,Cn,T),R2(T,TA)B、R1(C#,Cn),R2(T,TA)C、R1(C#,Cn,TA),R2(T,TA)D、R1(C#,T),R2(T,TA)標準答案:A知識點解析:關系模式R中,課程號和教師名為主關鍵字,他們不能拆開。教師地址可以拆開、并將教師名作為主關鍵字。因此可以形成關系模式R2(T,Ta),課程號、課程名和教師名可拆為一個關系模式R1(C#,Cn,T)。因此關系模式R可進一步規(guī)范化為兩個關系模式R1(C#,Cn,T)和R2(T,TA)。17、有以下程序,程序的輸出結果是main(){charc1=’A’,c2=’Y’;printf("%d,%d\n",c1,c2);}A、輸出格式不合法,輸出出錯信息B、65,90C、65,89D、A,Y標準答案:C知識點解析:C語言允許對整型變量賦以字符值,也允許對字符變量賦以整型值。在輸出時,允許把字符變量按整型量輸出,也允許把整型量按字符量輸出。18、若變量x、y已正確定義并賦值,以下符合C語言語法的表達式是A、++x,y=x--B、x+1=y(tǒng)C、x=x+10=x+yD、double(x)/10標準答案:A知識點解析:用逗號將表達式連接起來的式子稱為逗號表達式。其表達式的一般形式為:表達式1,表達式2,……,表達式n。最后一個表達式的值就是此逗號表達式的值。所以選項A為C語言中的逗號表達式。賦值表達式的左側只能是變量,不能是常量或表達式。強制類型轉換表達式的形式為:(類型名)(表達式),其中(類型名)稱為強制類型轉換運算符,數(shù)據(jù)類型兩邊的圓括號不能省略。19、有以下程序段intj;floaty;charname[50];scanf("%2d%f%s",&j,&y,name);當執(zhí)行上述程序段,從鍵盤上輸入555667777abc后,y的值為A、55566.0B、7777.0C、566.0D、566777.0標準答案:C知識點解析:因為在輸入格式控制符中指定變量j的輸入格式控制符為“%2d”,即變量j所占的寬度為2,所以變量i只接收輸入數(shù)據(jù)的前兩位,從第三位開始直到空格之間的輸入整數(shù)都會被保存到變量y中,因為y為浮點型數(shù)據(jù),所以輸出結果為選項C)。20、若有以下程序#ineludemain(){inta=1,b=2,c=3,d=4,r=0;if(a!=1);elser=1;if(b==2)r+=2;else;if(c!=3)r+=3;else;if(d==4)r+=4;printf("%d\n",r);}則程序的輸出結果是A、10B、6C、7D、3標準答案:C知識點解析:程序代碼中有四條并列的if語句,第一條if表達式a!=1不成立,執(zhí)行else分支,r=1;第二條if表達式b==2成立,執(zhí)行r+=2,r=3;第三條if語句c!=3不成立,執(zhí)行else分支,分支為空語句;第四條if分支d==4成立,執(zhí)行該if分支語句,r+=4,r=7。21、有以下程序段inta,b,c;a=10;b=50;c=30;if(a>b)a=b,b=c;c=a;printf("a=%db=%dc=%d\n",a,b,c);程序的輸出結果是A、a=10b=50c=30B、a=10b=30c=10C、a=10b=50c=10D、a=50b=30c=50標準答案:C知識點解析:本題的程序段首先定義三個整型變量a,b,c,并且其初始值分別等于10.50,30,然后判斷a>b是否成立,如果條件成立,則把b的值賦給a,把c的值賦給b。由a和b的初始值可知,此條件表達式不成立,所以a和b的值保持不變。再執(zhí)行下一條語句,把a的值賦給c,所以c的當前值等于10,最后由輸出語句輸出變量a,b,c的當前值,分別為10,50,10。22、若有以下程序#include<stdio.h>main(){inta=-11,b=10;a/=b/=-4;printf("%d%d\n",a,b);}則程序的輸出結果是A、-1-2B、5-2C、4-3D、5-3標準答案:B知識點解析:對于語句a/=b/=-4;相當于a=a/(b=b/-4);a初值為-11,b的初值為10,則運算以后10/-4值為-2,-11/-2值為5。23、若有定義語句:inta[3][6];,按在內存中的存放順序,a數(shù)組的第10個元素是A、a[0][4]B、a[1][3]C、a[0][3]D、a[1][4]標準答案:B知識點解析:本題考查多維數(shù)組的定義和使用。a是一個二維數(shù)組,有3行6列,即每行6個元素,a的第lO個元素位于第二行的第四個位置,即a[1][3]。24、有以下程序main(){inta=1,b=2,c=3,x;x=(a^b)&c;printf("%d\n",x);}程序的運行結果是A、1B、2C、3D、0標準答案:C知識點解析:1、2、3的二:進制形式分別為00000001、00000010、00000011。首先計算1與2的或運算,即1^2=(00000001)^(00000010)=00000011,再將其與3進行“與”運算,結果為(00000011)&(00000011)=00000011,即十進制數(shù)3。25、對長度為n的線性表排序,在最壞情況下,比較次數(shù)不是n(n-1)/2的排序方法是()。A、快速排序B、冒泡排序C、直接插入排序D、堆排序標準答案:D知識點解析:除了堆排序算法的比較次數(shù)是Onlog2n,其他的都是n(n-1)/2。國家二級C語言機試(選擇題)模擬試卷第3套一、選擇題(本題共25題,每題1.0分,共25分。)1、下列敘述中正確的是A、算法就是程序B、設計算法時只需要考慮數(shù)據(jù)結構的設計C、設計算法時只需要考慮結果的可靠性D、以上三種說法都不對標準答案:D知識點解析:所謂算法是指解題方案的準確而完整的描述。是一組嚴謹?shù)囟x運算順序的規(guī)則,并且每一個規(guī)則都是有效的,且是明確的,此順序將在有限的次數(shù)下終止。算法不等于程序,也不等于計算方法。設計算法時不僅要考慮對數(shù)據(jù)對象的運算和操作,還要考慮算法的控制結構。2、表示關系式x≤y≤z的C語言表達式的是A、(x<=y)‖(y<=x)B、(x<=y<=z)C、(x<=y)&&(y<=x)D、(x<=y)!(y<=x)標準答案:C知識點解析:表示三個變量的關系,要利用邏輯表達式,用邏輯與連接。3、有兩個關系R和S如下:則由關系R得到關系S的操作是()。A、自然連接B、并C、選擇D、投影標準答案:C知識點解析:關系S是由關系R中的一行元組組成,應通過選擇運算得到。4、有三個關系R、S和T如下。則由關系R和S得到關系T的操作是A、選擇B、差C、交D、并標準答案:B知識點解析:由關系T中的數(shù)據(jù)可以看出,其數(shù)據(jù)由屬于關系R但是不屬于關系S的數(shù)據(jù)組成。所以關系T是由關系R和S通過差運算得到的。5、設intn1=0,n2,*p=&n2,*q=&n1;,以下賦值語句中與n2=n1;語句等價的是()。A、*p=*q;B、p=*q;C、*p=n1;D、p=q;標準答案:A知識點解析:本題考查指針的使用。指針p和q分別指向變量n2和n1,所以可以用*p代替n2,*q代替n1。6、有以下程序:#includemain(){intilia[3][3]={{2},{4},{6}},i,*P=&aa[0][0];for(i=0;i<2;i++){if(i==0)aa[i][i+1]=*P+1;else++P;printf(“%d”,*P);}printf(“\n”);}程序運行后的輸出結果是()。A、26B、23C、43D、46標準答案:B知識點解析:本題主要考查指針與數(shù)組。觀察題目,可以發(fā)現(xiàn),*p=&aa[0][0]語句實際是將數(shù)組aa的首地址賦給指針變量p,將i的值帶入for循環(huán)中,i=0時,aa[0][1]=3,*p=2,*p輸出地是指針所指向的數(shù)組值,此時p所指向地是aa[0][0],輸出2,而i=1時執(zhí)行了++p操作,使指針向后移動指向aa[0][1],所以在輸出*p時應為3。故B選項正確。7、關于switch語句的敘述中正確的是()。A、break語句必須與switch語句中的case配對使用B、在switch語句中必須使用defaultC、在switch語句中,不一定使用break語句D、break語句只能用于switch語句標準答案:C知識點解析:C語言中的break語句的功能是跳出正式執(zhí)行的條件語句或循環(huán)語句。它可以出現(xiàn)在switch語句中,也可以出現(xiàn)在循環(huán)語句中。default是關鍵字,起標號的作用,在switch語句中代表所有case標號之外的那些標號。default標號可以出現(xiàn)在語句體中任何標號位置上。8、有以下程序:#include<stdio.h>intfun(intx[],intn){staticintsum=0,i;for(i=0;i<n;i++)sum+=x[i];returnsum;}main(){inta[]={1,2,3,4,5},b[]={6,7,8,9},s=0;s=fun(a,5)+fun(b,4);prinff("%d\n",s);}程序的運行結果是()。A、55B、50C、45D、60標準答案:D知識點解析:內部靜態(tài)變量是始終存在的,當函數(shù)被調用退出后,內部靜態(tài)變量會保存數(shù)據(jù),再次調用該函數(shù)時,以前調用時的數(shù)值仍然保留著。fun(a,5)的值是15,再次調用后sum=15,所以fun(b,4)=45,s=45+15=60,因此D選項正確。9、生產每種產品需要多種零件,則實體產品和零件間的聯(lián)系是A、多對多B、一對多C、多對一D、一對一標準答案:A知識點解析:多對多關系是關系數(shù)據(jù)庫中兩個表之間的一種關系,該關系中第一個表中的一個行可以與第二個表中的一個或多個行相關。第二個表中的一個行也可以與第一個表中的一個或多個行相關。本題中,每種產品需要多種零件,這些零件能組成多種產品,因此,本題是多對多關系。10、下列結構體類型說明和變量定義中正確的是()。A、structREC;{intn;charC;};RECt1,t2;B、typedefstruct{intn;charc;}REC;RECt1,t2;C、typedefstructREC;{intn=0;charc=’A’;}t1,12;D、struct{intn;charc:}REC;RECt1,t2;標準答案:B知識點解析:本題考查結構體的相關知識。選項A中structREC后面不能有分號,C選項中typedefstructREC的后面也不能有分號,選項D中REC已經(jīng)是結構體變量,不能當作結構體類型來使用。11、下面對“對象”概念描述錯誤的是A、對象不具有封裝性B、對象是屬性和方法的封裝體C、對象間的通信是靠消息傳遞D、一個對象是其對應類的實例標準答案:A知識點解析:面向對象的基本概念:①對象:對象是人們要進行研究的任何事物,從最簡單的整數(shù)到復雜的飛機等均可看作對象,它不僅能表示具體的事物,還能表示抽象的規(guī)則、計劃或事件;②對象的狀態(tài)和行為:對象具有狀態(tài),一個對象用數(shù)據(jù)值來描述它的狀態(tài)。對象還有操作,用于改變對象的狀態(tài),對象及其操作就是對象的行為。對象實現(xiàn)了數(shù)據(jù)和操作的結合,使數(shù)據(jù)和操作封裝于對象的統(tǒng)一體中;③類:具有相同或相似性質的對象的抽象就是類。因此,對象的抽象是類,類的具體化就是對象,也可以說類的實例是對象。因此選項A正確。12、設有定義:struetcomplex{intreal,unreal;}data1={1,8},data2;則下列賦值語句中錯誤的是()。A、data2=(2,6);B、data2=datal;C、data2.real=datal.real;D、data2.real=data1.unreal;標準答案:A知識點解析:A選項中可以在聲明變量的同時為data2賦值,但是data2=(2,6);應寫作data2={2,6};,所以選擇A選項。13、以下敘述中正確的是A、C程序中的每一行只能寫一條語句B、簡單C語句必須以分號結束C、C語言程序中的注釋必須與語句寫在同一行D、C語句必須在一行內寫完標準答案:B知識點解析:C語言的書寫格式自由,一行可寫多條語句,一條語句也可寫在不同行上。C語言注釋是比較自由的,可以寫在一行或者多行。C語言規(guī)定每條語句和數(shù)據(jù)定義的最后必須有一個分號,分號是C語句的必要組成部分。14、若有定義語句: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知識點解析:不能將變量或常量賦給一個表達式,所以A選項中(b=4)=3是錯誤的。15、在數(shù)據(jù)庫的三級模式中,可以有任意多個A、外模式(用戶模式)B、模式C、內模式(物理模式)D、外模式和內模式標準答案:A知識點解析:數(shù)據(jù)庫系統(tǒng)的三級模式是概念模式、外模式和內模式。概念模式是數(shù)據(jù)庫系統(tǒng)中全局數(shù)據(jù)邏輯結構的描述,是全體用戶公共數(shù)據(jù)視圖。外模式也稱為子模式或用戶模式,它是用戶的數(shù)據(jù)視圖,給出了每個用戶的局部數(shù)據(jù)描述,所以應選A。16、在數(shù)據(jù)庫中存儲的是A、數(shù)據(jù)的操作B、數(shù)據(jù)模型C、操作信息D、數(shù)據(jù)以及數(shù)據(jù)之間的聯(lián)系標準答案:D知識點解析:數(shù)據(jù)庫里存放的是一些元數(shù)據(jù)的東西,比如很多表,表中有數(shù)據(jù)字段,表與表之間有關系,最終表存放到表空間中,而表空間存放在操作系統(tǒng)的文件系統(tǒng)中。所以選項D正確。17、有以下程序main(){inti=1;i=i^i;printf("%d\n",i);}程序運行后的輸出結果是A、-1B、0C、1D、7標準答案:B知識點解析:按位異或(^)的運算規(guī)則是:參與運算的兩個運算數(shù)中相對應的二進制位上,若數(shù)相同,則該位的結果為0;若數(shù)不同,該位的結果為1。本題中表達式i^i的值必為0,因為i的各個位置的二進制值相同。18、若程序中有宏定義行:#defineN100則以下敘述中正確的是A、宏定義行中定義了標識符N的值為整數(shù)100B、上述宏定義行實現(xiàn)將100賦給標示符NC、在運行時用100替換標識符ND、在編譯程序對C源程序進行預處理時用100替換標識符N標準答案:D知識點解析:在C語言中,凡是以“#”號開頭的行,都稱為“編譯預處理”。其含義是在C編譯程序對C源程序進行編譯前,由編譯預處理程序對這些編譯預處理命令進行處理的過程。由#define定義的宏就是編譯預處理命令。C程序在進行編譯之前,都要先對程序中所有出現(xiàn)的“宏名”,都用宏定義中的替換文本進行替換。19、有以下程序#include<stdio.h>#include<string.h>voidfun(chars[][10],intn){chart;inti,j;for(i=0;i<n-1;i++)for(j=i+lj<n;j++)if(s[i][0]>s[j][0]){t=s[i][0];s[i][0]=s[j][0];s[j][0]=t;}}main(){charss[5][10]={"bcc","bbcc","xy","aaaacc","aabcc"};fun(ss,5);printf("%s,%s\n",ss[0],ss[4]);}程序的運行結果是A、aaaacc,xyB、bcc,aabccC、xy,aaaaccD、aabcc,bcc標準答案:C知識點解析:函數(shù)fun(chars[][10],intn)通過兩重for循環(huán)語句,比較二維字符數(shù)組s[][10]的每個字符串的首字符大小,如果前一個字符串首字符大于后一個字符串的首字符,則交換這兩個字符串的首字符。在主函數(shù)中,語句fun(ss,5)的作用是對二維字符數(shù)組ss[5][10]的5個字符串的首字符進行從小到大的排序,不影響各個字符串另外的字符。所以排序結束后,5個字符串的第一個字符依次變?yōu)閍、a、b、b和x;最后輸出第1個和第4個字符串。20、若有以下程序段intr==8;printf("%d\n",r>>1);輸出結果是A、8B、4C、16D、2標準答案:B知識點解析:定義了整型變量r,其值等于8,在輸出語句中,把變量r的值向右移動一位,在C語言中把變量向右移動一位,相當于其值除以2,所以在題中把變量r的值8除2,得到其值等于4。21、以下敘述中正確的是A、a是實型變量,a=10在C語言中是允許的,因此可以說:實型變量中可以存放整型數(shù)B、在賦值表達式中,賦值號的右邊可以是變量,也可以是任意表達式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標準答案:B知識點解析:B選項中a是實型變量,a=10在C語言中是允許的,但是實型變量中不可以存放整型數(shù),C選項中執(zhí)行a=b后,a的值變?yōu)閎的值,為9,b的值不變,仍為9,D選項中執(zhí)行a=b后,a的值為9,b的值為9,執(zhí)行b=a后,a的值為9,b的值也為9,所以選擇B。22、有以下結構體說明、變量定義和賦值語句structSTD{charname[10];intage;charsex;}s[5],*ps;ps=&s[0];則以下scanf函數(shù)調用語句有錯誤的是A、scanf("%d",&s[0].age);B、scanf("%c",&(ps->sex));C、scanf("%s",s[0].name);D、scanf("%d",ps->age);標準答案:D知識點解析:程序段定義了結構體變量數(shù)組s[5]和指針變量ps,然后ps指向數(shù)組s[5]中的第一個元素,因而ps->age引用s[0].age。因為在輸入scanf()函數(shù)中,第2個參數(shù)應該表示為地址變量,而選項A表示的值,而不是一個地址值。23、下面關于“EOF”的敘述,正確的是A、EOF的值等于0B、文本文件和二進制文件都可以用EOF作為文件結束標志C、EOF是在庫函數(shù)文件中定義的符號常量D、對于文本文件,fgetc函數(shù)讀入最后一個字符時,返回值是EOF標準答案:C知識點解析:EOF是在stdio.h庫函數(shù)文件中定義的符號常量,其值等于-1。EOF用作文件結束標志,在二進制或者文本文件內部有一個位置指針,用以指示文件內部的當前讀寫位置。使用fgetc函數(shù),每讀寫一次,該指針均向后移動,24、若有定義語句:chara=’\82’;則變量aA、說明不合法B、包含1個字符C、包含2個字符D、包含3個字符標準答案:A知識點解析:定義語句:chara=’\82’;定義字符變量a,但是賦初值時卻給賦值字符常量,因此A選項正確。25、以下關于return語句的敘述中正確的是A、一個自定義函數(shù)中必須有一條return語句B、一個自定義函數(shù)中可以根據(jù)不同情況設置多條return語句C、定義成void類型的函數(shù)中可以有帶返回值的return語句D、沒有return語句的自定義函數(shù)在執(zhí)行結束時不能返回到調用處標準答案:B知識點解析:在函數(shù)中允許有多個return語句,但每次調用只能有一個return語句被執(zhí)行,因此只能返回一個函數(shù)值,A選項描述錯誤。定義成void類型的函數(shù),不允許從該函數(shù)取得返回值,也不允許使用return語句,C選項描述錯誤。沒有return語句的函數(shù)在執(zhí)行到函數(shù)的最后一條語句后會自動返回到調用處,D選項描述錯誤。因此B選項正確。國家二級C語言機試(選擇題)模擬試卷第4套一、選擇題(本題共25題,每題1.0分,共25分。)1、下列敘述中正確的是A、算法就是程序B、設計算法時只需要考慮數(shù)據(jù)結構的設計C、設計算法時只需要考慮結果的可靠性D、以上三種說法都不對標準答案:D知識點解析:所謂算法是指解題方案的準確而完整的描述。是一組嚴謹?shù)囟x運算順序的規(guī)則,并且每一個規(guī)則都是有效的,且是明確的,此順序將在有限的次數(shù)下終止。算法不等于程序,也不等于計算方法。設計算法時不僅要考慮對數(shù)據(jù)對象的運算和操作,還要考慮算法的控制結構。2、下列與隊列結構有關聯(lián)的是A、函數(shù)的遞歸調用B、數(shù)組元素的引用C、多重循環(huán)的執(zhí)行D、先到先服務的作業(yè)調度標準答案:D知識點解析:隊列中最先插入的元素將最先被刪除,最后插入的元素將最后被刪除。3、下面對軟件特點描述正確的是()。A、軟件具有明顯的制作過程B、軟件在使用中存在磨損、老化問題C、軟件復制不涉及知識產權D、軟件是一種邏輯實體,具有抽象性標準答案:D知識點解析:軟件具有以下特點:軟件是一種邏輯實體,而不是物理實體,具有抽象性;軟件的生產與硬件不同,它沒有明顯的制作過程;軟件在運行、使用期間不存在磨損、老化問題;軟件的開發(fā)、運行對硬件和環(huán)境具有依賴性;軟件復雜性高,成本昂貴;軟件開發(fā)涉及諸多的社會因素(包括軟件知識產權及法律等問題)。4、在數(shù)據(jù)庫管理技術發(fā)展的三個階段中,沒有專門的軟件對數(shù)據(jù)進行管理的是()。A、文件系統(tǒng)階段B、人工管理階段C、文件系統(tǒng)階段和數(shù)據(jù)庫階段D、人工管理階段和文件系統(tǒng)階段標準答案:B知識點解析:數(shù)據(jù)庫管理技術的三個階段是人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。人工管理階段沒有專門的軟件對數(shù)據(jù)進行管理。5、以下敘述中正確的是()。A、計算機只接收由0和1代碼組成的二進制指令或數(shù)據(jù)B、計算機只接收由0和1代碼組成的十進制指令或數(shù)據(jù)C、計算機可直接接收并運行C源程序D、計算機可直接接收并運行任意高級語言編寫的源程序標準答案:A知識點解析:二進制數(shù)中只有兩個字符0和1,表示具有兩個不同穩(wěn)定狀態(tài)的元器件。例如,電路中有無電流,有電流用1表示,無電流用0表示。類似的還比如電路中電壓的高低,晶體管的導通和截止等。二進制數(shù)運算簡單,大大簡化了計算中運算部件的結構,故選項A正確。6、有以下程序:main(){chars口={’a’,’b’,’c’,’d’,’e’,’f’,’g’,’h’,’\0’};intp,q;p=sizeof(s);q=strlen(s);printf("%d%d\b",p,q);}程序的運行結果是()。A、9,8B、1,8C、8,9D、9,9標準答案:A知識點解析:本題統(tǒng)計字符串a所占存儲單元的個數(shù)和長度。s所占存儲單元的個數(shù)為9,但長度為8,不包含’\0’。7、有以下定義:unionA{charst[4];inti;long1;};structB{intc;unionAb;}b;變量b所占內存字節(jié)數(shù)是()。A、4B、5C、6D、8標準答案:C知識點解析:結構變量所占的內存字節(jié)數(shù)等于其中各個成員所占的字節(jié)數(shù)的總和,而聯(lián)合變量所占的內存字節(jié)數(shù)是其中最長的成員所需要的字節(jié)數(shù)。本題中結構變量b有兩個成員,一個是整型變量c,它占2字節(jié)內存,另一個是聯(lián)合變量a,它自己也含有三個成員,其中占用內存空間最長的成員的變量1,占4字節(jié)內存,因此,聯(lián)合變量a所占內存字節(jié)數(shù)為4,結構變量b所占總的內存字節(jié)數(shù)為變量c與變量a所占字節(jié)數(shù)之和,即2+4=6。8、數(shù)據(jù)庫應用系統(tǒng)中的核心問題是A、數(shù)據(jù)庫設計B、數(shù)據(jù)庫系統(tǒng)設計C、數(shù)據(jù)庫維護D、數(shù)據(jù)庫管理員培訓標準答案:A知識點解析:在數(shù)據(jù)庫應用系統(tǒng)中的一個核心問題就是設計一個能滿足用戶要求,性能良好的數(shù)據(jù)庫,這就是數(shù)據(jù)庫設計。所以數(shù)據(jù)庫設計是數(shù)據(jù)庫應用的核心。9、以下不合法的字符常量是()。A、’\\’B、’\"’C、’\018’D、’\xcc’標準答案:C知識點解析:轉義字符中,八進制的表示形式為\ddd,但是八進制中不能包含數(shù)字8,所以C選項不合法。10、以下敘述中正確的是A、賦值語句是一種執(zhí)行語句,必須放在函數(shù)的可執(zhí)行部分B、scanf和printf是C語言提供的輸入和輸出語句C、由printf輸出的數(shù)據(jù)都隱含左對齊D、由printf輸出的數(shù)據(jù)的實際精度是由格式控制中的域寬和小數(shù)的域寬來完全決定的標準答案:A知識點解析:C語言本身沒有提供輸入輸出語句,但是可以通過調用標準庫函數(shù)中提供的輸入和輸出函數(shù)來實現(xiàn)輸入平I]輸出,選項B錯誤;采用州ntf輸出數(shù)據(jù),輸出數(shù)據(jù)都默認為右對齊,若要左對齊,可以在格式控制中的“%”和寬度之間加一一個“.”號來實現(xiàn),選項C錯誤;printf的輸出精度由變量的類型決定,與域寬無關,選項D錯誤。11、若有定義語句:intyear=2009,*p=&year;,以下不能使變量year中的值增至2010的語句是()。A、(*p)++;B、*p++;C、++(*p);D、*p+=1;標準答案:B知識點解析:由于自加運算符++的運算級別高于間接運算*的運算級別,所以B選項的表達式*p++不能使變量year中的值增至2010,因此選擇B選項。12、若各選項中所用變量已正確定義,函數(shù)fun中通過return語句返回一個函數(shù)值,以下選項中錯誤的程序是A、main(){……x=fun(2,10);……}floatfun(inta,intb){……}B、floatfun(inta,intb){……}main(){……x=fun(i,j);……}C、floatfun(int,int);main(){……x=fun(2,10);……}floatfun(inta,intb){……}D、main(){floatfun(inti,intj);……x=fun(i,j);……}floatfun(inta,intb){……}標準答案:A知識點解析:C語言規(guī)定,函數(shù)必須先定義,后調用(雨數(shù)的返回值類型為int或char時除外)。在選項A)中,調用的子函數(shù)在調用后面定義,所以不正確。在選項B)、C)中,被調用函數(shù)在主函數(shù)之前定義,再在主函數(shù)中調用,所以是正確的;在選項D)中,存主函數(shù)中先對子函數(shù)floatfun(inti,intj)進行了聲明,然后進行調用。13、以下關于C語言的敘述中正確的是()。A、預處理命令通常位于函數(shù)體外面,但也可以位于函數(shù)體中間B、C語言中的變量定義須在其他語句之前C、在C語言程序的書寫中,一個語句必須單占一行D、一個C語言源程序可以由一個或多個源文件組成,每個源文件可由自己的main函數(shù)標準答案:A知識點解析:源程序中可以有預處理命令(include命令僅為其中的一種)。C語言中的變量可以在使用之前的任何位置進行定義。C語言程序的書寫中,多個語句可以位于一行,但為了增強可讀性,一般每行只有一條語句。一個C語言源程序可以由一個或多個源文件組成,但僅可以有一個main函數(shù)。14、以下敘述中錯誤的是A、函數(shù)調用可以作為一個獨立的語句存在B、函數(shù)形參的值也可以傳回給對應的實參C、若函數(shù)有返回值,必須通過return語句返回D、C程序必須由一個或一個以上的函數(shù)組成標準答案:B知識點解析:一個C程序中可以包含任意多個不同名的函數(shù),但只能有一個主函數(shù)。一個C程序總是從主函數(shù)開始執(zhí)行。函數(shù)的值通過return語句返回,return語句中的表達式的值就是所求的函數(shù)值。在C語言中,數(shù)據(jù)只能從實參單向傳遞給形參,稱為“按值”傳遞。也即是說,當簡單變量作為實參時,用戶不可能在函數(shù)中改變對應實參的值。15、有以下程序:#include<stdio.h>main(){charch[]="uvwxyz",*pc;pc=ch;printf("%c\n",*(pc+5));}程序的運行結果是()。A、zB、0C、元素ch[5]的地址D、字符y的地址標準答案:A知識點解析:語句pc=ch;使得指針變量指向字符數(shù)組ch的首地址,即指向字符’u’,則pc+5指向的是字符向后移動5位,指向字符’z’,所以輸出的*pc+5的值即為’z’,因此A選項正確。16、以下選項中合法的標識符是()。A、_11B、1-1C、1_1D、1__標準答案:A知識點解析:C語言規(guī)定,標識符由字母(A~Z,a~z)、數(shù)字(0~9)或者下劃線(_)組成,并且第一個字符必須為字母或者下劃線,答案選A。17、有以下程序#includeintfun(int(*s)[4],intn,intk){intm,i;m=s[0][k];for(i=1;im)m=s[i][k];returnm;}main(){inta[4][4]={{1,2,3,4),{11,12,13,14},{21,22,23,24},{31,32,33,34}};printf("%d\n",fun(a,4,0));}程序的運行結果是A、31B、34C、4D、32標準答案:A知識點解析:函數(shù)fun(int(*s)[4],intn,intk)的功能是返回二維數(shù)組第k列的最大元素。在主函數(shù)中由于二維數(shù)組a[4][4]已經(jīng)初始化,所以fun(a,4,0)的值是二維數(shù)組a[][]第1列中的最大元素31。18、十進制整數(shù)設為整數(shù)類I,則下面屬于類I的實例的是A、-518B、0.518C、518E-2D、.518標準答案:A知識點解析:整數(shù)的全體構成整數(shù)集,整數(shù)集是一個數(shù)環(huán)。在整數(shù)系中,零和正整數(shù)統(tǒng)稱為自然數(shù)。-1、-2、-3、…、-n、…(n為非零自然數(shù))為負整數(shù)。則正整數(shù)、零與負整數(shù)構成整數(shù)系。整數(shù)不包括小數(shù)、分數(shù)。本題中,選項A是正確的,選項B是小數(shù),選項C是科學計數(shù),也是小數(shù),選項D是小數(shù)。19、有以下程序#includemain(){FILE*fp;inti,a[6]={1,2,3,4,5,6};fp=fopen("d2.dat","w+");for(i=0;i<6;i++)fprintf(fp,"%d\n",a[i]);rewind(fp);for(i=0;i<6;i++)fscanf(fp,"%d",&a[5-i]);fclose(fp);for(i=0;i<6;i++)printf("%d,",a[i]);}程序運行后輸出結果是A、1,2,3,4,5,6,B、6,5,4,3,2,1,C、4,5,6,1,2,3,D、1,2,3,3,2,1,標準答案:B知識點解析:本題考查文件操作函數(shù),fprintf和rewind函數(shù),rewind函數(shù)將文件內部的位置指針重新指向一個流(數(shù)據(jù)流/文件)的開頭,程序首先是將數(shù)組a的六個數(shù)寫入d2文件中,然后又將a數(shù)組從后往前覆蓋到d2中的內容,所以結果為6,5,4,3,2,1,選項B正確。20、設有以下語句typedefstructTT{charc;inta[4];}CIN;則下面敘述中正確的是A、TT是struct類型的變量B、可以用TT定義結構體變量C、CIN是structTT類型的變量D、可以用CIN定義結構體變量標準答案:D知識點解析:C語言允許用typedef說明一種新的類型名,說明新類型名的語句為一般形式為:typedef。類型名標識符在此,“類型名”必須是此語句之前已有定義的類型標識符?!皹俗R符”是一個用戶定義標識符,用作新的類型名。typedef語句的作用僅僅是用“標識符”來代表已存在的“類型名”,并未產生新的數(shù)據(jù)類型,原有類型名依然有效。在本題中用typedef定義CIN為TT的一種新的類型名.因而可以用它定義一個結構體變量。21、有以下程序段structst{intx;int*y;)*pt;inta[]={1,2},b[]={3,4};structstc[2]={10,a,20,b};pt=c;以下選項中表達式的值為11的是A、pt->xB、*pt->yC、++pt->xD、(pt++)->x標準答案:C知識點解析:由題目的已知條件可知,pt指向結構體數(shù)組c[2]的第一元素c[0],所以pt->x=10,執(zhí)行自加運算后為11。22、有以下程序yoidfun(int**P,int*q){intt;t=*p;*P=*q;*q=t;*q=*p;)main(){inta=0,b=9;fun(&a,&b);printf(’’%d%d\n’’,a,b);}程序的輸出結果是A、00B、99C、90D、9標準答案:B知識點解析:函數(shù)fun的主要功能是交換p和q指向的地址空間的數(shù)據(jù),然后更改p的指向的地址空間數(shù)據(jù),使之和q指向的數(shù)據(jù)相同。主函數(shù)調用fun后,p指向a,q指向b,因此a和b的數(shù)據(jù)全部為9。23、有以下程序#includeintfun(intx,inty){if(x!=y)return((x+y)/2);elsereturn(x);}main(){inta=4,b=5,c=6;printf("%d\n",fun(2*a,fun(b,c)));}程序運行后的輸出結果是()。A、6B、3C、8D、12標準答案:A知識點解析:考查函數(shù)的調用。輸出結果為fun(2*a,fun(b,c))=fun(8,5)=6,答案選A。24、若要使用C數(shù)學庫中的sin函數(shù),需要在源程序的頭部加上#include關于引用數(shù)學庫,以下敘述正確的是()。A、通過引用math.h文件,說明sin函數(shù)的參數(shù)個數(shù)和類型,以及函數(shù)返回值類型B、將數(shù)學庫中sin函數(shù)鏈接到編譯生成的可執(zhí)行文件中,以便能正確運行C、將數(shù)學庫中sin函數(shù)的源程序插入到引用處,以便進行編譯鏈接D、實際上,不引用math.h文件也能正確調用sin函數(shù)標準答案:A知識點解析:考查文件包含處理。文件包含命令的功能是把指定的文件添加到預處理部分,從而把指定的文件和當前的源程序文件連接起來,該文件則包含了程序要調用的函數(shù)的聲明。由此,選項B)、C)、D)表述錯誤。答案選A)。25、有以下程序#include<stdio.h>main(){intn,*p=NULL;*p=&n;printf("Inputn:");scanf("%d",&p);printf("outputn:");printf("%d\n",p);}該程序試圖通過指針p為變量n讀入數(shù)據(jù)并輸出,但程序有多處錯誤,以下語句正確的是A、intn,*p=NULL;B、*p=&n;C、scanf("%d",&p)D、printf("%d\n",p);標準答案:A知識點解析:選項A表示在程序中,聲明定義變量語句“intn,*p=NULL;”定義了整型變量n和指針變量p,并且指針變量p初始化為空。其他的語句都是錯誤的。其中選項B,&n的地址應存放到指針變量p中,而選項C中數(shù)據(jù)輸入項錯誤,選項D輸出地址信息。國家二級C語言機試(選擇題)模擬試卷第5套一、選擇題(本題共25題,每題1.0分,共25分。)1、度為3的一棵樹共有30個結點,其中度為3,1的結點個數(shù)分別為3,4。則該樹中的葉子結點數(shù)為()。A、14B、15C、16D、不可能有這樣的樹標準答案:B知識點解析:設葉子結點數(shù)為n,則度為2的結點數(shù)為30-3-4-n=23-n,根據(jù)樹中的結點數(shù)=樹中所有結點的度之和+1,得3×3+2×(23-n)+1×4+0×n+1=30,則n=15。2、下面結構體的定義語句中,錯誤的是()。A、structord{intx;inty;intz;}structorda:B、structord{intx;inty;intz;};structorda;C、structord{intx;inty;intz;}a;D、struct{intx;inty;intz;}a;標準答案:A知識點解析:分號代表該結構體定義語句的結束,選項A的結構體沒有定義完全就用該結構體另外定義變量,用法有誤,所以答案選A。3、設棧的順序存儲空間為S(1:50),初始狀態(tài)為top=0?,F(xiàn)經(jīng)過一系列入棧與退棧運算后,top=20,則當前棧中的元素個數(shù)為()。A、30B、29C、20D、19標準答案:C知識點解析:在棧中,top位置直接反映棧中元素的個數(shù),top=20,則說明當前棧中的元素個數(shù)為20。4、設樹T的深度為4,其中度為1,2,3,4的結點個數(shù)分別為4,2,1,1。則T中的葉子結點數(shù)為A、8B、7C、6D、5標準答案:B知識點解析:深度為m二叉樹其總結點數(shù)為2m-1=24-1=15??偨Y點數(shù)減去度為1,2,3,4的結點個數(shù)就是葉子結點數(shù)。15-4-2-1-1=7。5、在快速排序法中,每經(jīng)過一次數(shù)據(jù)交換(或移動)后A、能消除多個逆序B、只能消除一個逆序C、不會產生新的逆序D、消除的逆序個數(shù)一定比新產生的逆序個數(shù)多標準答案:A知識點解析:通過一趟排序將要排序的數(shù)據(jù)分割成獨立的兩部分,其中一部分的所有數(shù)據(jù)都比另外一部分的所有數(shù)據(jù)都要小,然后再按此方法對這兩部分數(shù)據(jù)分別進行快速排序,整個排序過程可以遞歸進行,以此達到整個數(shù)據(jù)變成有序序列。6、學校的數(shù)據(jù)庫中有表示系和學生的關系:系(系編號,系名稱,系主任,電話,地點),學生(學號,姓名,性別,入學日期,專業(yè),系編號),則關系學生中的主鍵和外鍵分別是()。A、學號,無B、學號,專業(yè)C、學號,姓名D、學號,系編號標準答案:D知識點解析:一個屬性(即一列),在某張表中不是主鍵(主碼),但在其他表中是主鍵(主碼),則它是第一張表的外鍵(外碼)。在“系”表中,“系編號”為主鍵;在“學生”表中,“學號”是主鍵,“系編號”不是主鍵,則“系編號”是表“學生”的外鍵。7、有三個關系R、S和T如下:則由關系R和關系S得到關系T的操作是()。A、選擇B、差C、交D、并標準答案:B知識點解析:關系R和關系S經(jīng)過差運算后得到的關系由屬于關系R而且不屬于關系S的元組構成,記為R-S。觀察題干可知,關系T中的行屬于關系R,但不屬于關系S,故為差運算。8、下列程序的輸出結果是()。main(){intarray[5]={2,4,6,8,10},*p,**PP;p=array;pp=&p;printf("%d",*(p++));printf("%d",**pp);}A、22B、24C、44D、46標準答案:B知識點解析:本題中指針p指向一維數(shù)組a的一級指針,指針pp是指向一級指針p的二級指針,p中存放的是數(shù)組array的首地址,所以在第一個printf()中,*(p++)表示先取p的值,然后加1,這時p中存放的是array[1]的值,pp中存放的是p的地址,**pp表示取p所指的對象的值,即array[1]的值。9、負責數(shù)據(jù)庫中查詢操作的數(shù)據(jù)庫語言是A、數(shù)據(jù)定義語言B、數(shù)據(jù)管理語言C、數(shù)據(jù)操縱語言D、數(shù)據(jù)控制語言標準答案:C知識點解析:負責數(shù)據(jù)庫中查詢操作的數(shù)據(jù)庫語言是數(shù)據(jù)操縱語言。10、有以下程序:#include<stdio.h>intsum(intm){staticintn=1;returnn+=m;}main(){inti;for(i=1;i<=1;i++)printf(″%d,″,sum(i));printf(″\n″);}程序運行后的輸出結果是()。A、2,B、1,C、4,D、3,標準答案:A知識點解析:在輸出函數(shù)中,調用sun函數(shù),sun函數(shù)的作用是定義一個常數(shù)n=1,對n進行疊加主函數(shù)傳遞的m值,隨后將和返回給主函數(shù),因此輸出為2,11、關于字符數(shù)組的定義中有語法錯誤的是()。A、charstr[3][10];str[1]=’’guest’’;B、charstr[][10]={’’guest’’};C、char*str[3];str[1]=’’guest’’;D、char*str[]={’’guest’’};標準答案:A知識點解析:本題考查字符數(shù)組的定義和使用。選項A定義了一個二維字符數(shù)組,第二句是直接給字符數(shù)組賦值,錯誤。C語言中不能直接給字符數(shù)組賦值;選項,B、C和D都是正確的。12、假定已建立以下鏈表結構,且指針p和q已指向如圖所示的節(jié)點。則下列選項中可將q所指節(jié)點從鏈表中刪除并釋放該節(jié)點的語句組是()。A、p->next=q->next;free(q);B、p=q->next;free(q);C、p=q;free(q);D、(*p).next=(*q).next;free(p);標準答案:A知識點解析:本題考查刪除鏈表中的節(jié)點操作。其方法是將要刪除節(jié)點的上個節(jié)點的下個節(jié)點指向要刪除節(jié)點的下個節(jié)點,然后釋放該要刪除的節(jié)點,所以選項A正確。13、以下選項中不能作為C語言合法常量的是A、’cd’B、0.1e+6C、\aD、’\011’標準答案:A知識點解析:常量指的是在程序的運行過程中,其值不能被改變的量。在C語言中,包括整型常量、實型常量、字符常量和字符串常量等類型。選項B0.1e+6是用指數(shù)形式表示的實型常量。在C語言中,用以“e”或“E”后一個整數(shù)來表示以10為底的冪數(shù)。以用這種形式表示實型常量時要注意C語言的語法規(guī)定,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度安保人員職業(yè)健康管理與勞動合同2篇
- 二零二五版二手房購房合同定金及家具家電安裝服務協(xié)議書3篇
- 二零二五版企業(yè)研發(fā)項目定金及借款合同3篇
- 二零二五版水上娛樂設施安全生產管理合同3篇
- 二零二五年度茶園承包經(jīng)營與茶葉市場調研合同3篇
- 展會現(xiàn)場廣告投放與媒體合作合同(二零二五年度)2篇
- 二零二五版國際貿易保險合同主體欺詐識別與應對措施合同3篇
- 右岸景苑S5幢0、30號商鋪2025年度租賃合同24篇
- 二零二五年度預制構件鋼筋加工定制合同3篇
- 展會品牌推廣合同(2篇)
- 2023年保安公司副總經(jīng)理年終總結 保安公司分公司經(jīng)理年終總結(5篇)
- 中國華能集團公司風力發(fā)電場運行導則(馬晉輝20231.1.13)
- 中考語文非連續(xù)性文本閱讀10篇專項練習及答案
- 2022-2023學年度六年級數(shù)學(上冊)寒假作業(yè)【每日一練】
- 法人不承擔責任協(xié)議書(3篇)
- 電工工具報價單
- 反歧視程序文件
- 油氣藏類型、典型的相圖特征和識別實例
- 流體靜力學課件
- 顧客忠誠度論文
- 實驗室安全檢查自查表
評論
0/150
提交評論