版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
國家二級C語言機試(選擇題)模擬試卷10(共9套)(共358題)國家二級C語言機試(選擇題)模擬試卷第1套一、選擇題(本題共40題,每題1.0分,共40分。)1、下列敘述中正確的是()。A、所謂算法就是計算方法B、程序可以作為算法的一種描述方法C、算法設(shè)計只需考慮得到的計算結(jié)果D、算法設(shè)計可以忽略算法的運算時間標準答案:B知識點解析:算法是一組有窮指令集,是解題方案的準確而完整的描述。通俗地說,算法就是計算機解題的過程,重在解題方案的設(shè)計,并且不等于計算方法,故A和C選項不正確。程序的編制不可能優(yōu)于算法的設(shè)計,但算法的描述可以用程序、偽代碼、流程圖來描述,故B選項正確。算法要求執(zhí)行過程中所需要的基本運算次數(shù)和時間最少,即時間復(fù)雜度最低,所以D選項不正確。正確答案為B。2、程序流程圖中帶有箭頭的線段表示的是()。A、圖元關(guān)系B、數(shù)據(jù)流C、控制流D、調(diào)用關(guān)系標準答案:C知識點解析:在程序流程圖中:①標有名字的帶箭頭線段表示控制流;②矩形表示加工步驟;③菱形表示邏輯條件。3、深度為5的完全二叉樹的結(jié)點數(shù)不可能是()。A、15B、16C、17D、18標準答案:A知識點解析:對于滿二叉樹,葉子結(jié)點的數(shù)目等于2n-1,n為深度,這里就是24=16。4、下列選項中不屬于結(jié)構(gòu)化程序設(shè)計原則的是()。A、可封裝B、自頂向下C、模塊化D、逐步求精標準答案:A知識點解析:結(jié)構(gòu)化程序設(shè)計的思想包括:自頂向下、逐步求精、模塊化、限制使用goto語句,所以選擇A。5、下列關(guān)于棧的敘述中正確的是()。A、棧按“先進先出”組織數(shù)據(jù)B、棧按“先進后出”組織數(shù)據(jù)C、只能在棧底插入數(shù)據(jù)D、不能刪除數(shù)據(jù)標準答案:B知識點解析:棧是只允許在棧頂進行插入和刪除運算的線性表,按“先進后出”組織數(shù)據(jù)。6、下列描述中不屬于軟件特點的是()。A、軟件是一種邏輯實體,具有抽象性B、軟件在使用中不存在磨損、老化問題C、軟件復(fù)雜性高D、軟件使用不涉及知識產(chǎn)權(quán)標準答案:D知識點解析:軟件不像硬件一樣具有實物的特性,而是一種邏輯實體,具有抽象性;開發(fā)復(fù)雜性高,成本昂貴;在運行、使用期間不存在磨損、老化問題。故A、B和C選項正確。由于軟件是一種知識產(chǎn)品,受知識產(chǎn)權(quán)法的保護,所以D選項不正確。7、計算機軟件的構(gòu)成是()。A、源代碼B、程序和數(shù)據(jù)C、程序和文檔D、程序、數(shù)據(jù)及相關(guān)文檔標準答案:D知識點解析:計算機軟件是計算機系統(tǒng)中與硬件相互依存的另一部分,是包括程序、數(shù)據(jù)及相關(guān)文檔的完整集合。答案選D。8、按照C語言規(guī)定的用戶標識符命名規(guī)則,不能出現(xiàn)在標識符中的是()。A、下畫線B、大寫字母C、數(shù)字字符D、連接符標準答案:D知識點解析:C語言中標識符由字母、下畫線或數(shù)字組成,且開頭必須是字母或下畫線。9、設(shè)有表示學生選課的三張表,學生S(學號,姓名,性別,年齡,身份證號),課程C(課號,課名),選課SC(學號,課號,成績),則表SC的關(guān)鍵字(鍵或碼)為()。A、課號,成績B、學號,成績C、學號,課號D、學號,姓名,成績標準答案:C知識點解析:學號是學生表S的主鍵,課號是課程表C的主鍵,因此選課表SC的關(guān)鍵字應(yīng)該與前兩個表能夠直接聯(lián)系且能唯一定義元組,學號和課號的組合滿足條件。10、有兩個關(guān)系R和T如下:則由關(guān)系R得到關(guān)系T的操作是()。A、投影B、交C、選擇D、并標準答案:A知識點解析:從表圖中可以看出,關(guān)系T是從關(guān)系R中選取一部分字段(A和C)及其值構(gòu)成新的關(guān)系,是一種縱向操作產(chǎn)生新列,屬于投影,正確選項為A。11、以下敘述中正確的是()。A、不同函數(shù)的形式參數(shù)不能使用相同名稱的標識符B、用戶自己定義的函數(shù)只能調(diào)用庫函數(shù)C、實用的C語言源程序總是由一個或多個函數(shù)組成D、在C語言的函數(shù)內(nèi)部,可以定義局部嵌套函數(shù)標準答案:C知識點解析:函數(shù)是一個獨立的模塊,不同函數(shù)之間的定義相互沒有影響,所以標識符可以相同,選項A錯誤;除了main函數(shù)不能被其他函數(shù)調(diào)用之外,用戶自定義函數(shù)可以調(diào)用其他任意函數(shù),選項B錯誤;一個C程序可以有一個或多個程序文件,所以也可以有一個或多個函數(shù),選項C正確;函數(shù)體內(nèi)部只可以調(diào)用,但是不可以定義其他函數(shù),選項D錯誤。故答案選C。12、以下敘述中錯誤的是()。A、C程序經(jīng)過編譯、鏈接步驟之后才能形成一個真正可執(zhí)行的二進制機器指令文件B、C語言中的每條可執(zhí)行語句和非執(zhí)行語句最終都將被轉(zhuǎn)換成二進制的機器指令C、用C語言編寫的程序稱為源程序,它以ASCⅡ代碼形式存放在一個文本文件中D、C語言源程序經(jīng)編譯后生成后綴為.obj的目標程序標準答案:B知識點解析:C語言程序編譯時將每條可執(zhí)行語句轉(zhuǎn)換為二進制的機器指令,但非執(zhí)行語句(如注釋語句)不被編譯。所以選項B錯誤。13、設(shè)有兩行定義語句:intscanf;floatcase;則以下敘述中正確的是()。A、第2行語句不合法B、兩行定義語句都合法C、第1行語句不合法D、兩行定義語句都不合法標準答案:A知識點解析:本題考查用戶標識符,用戶自己定義的標識符不能與關(guān)鍵字相同,并且盡量避免和預(yù)定義標識符相同。本題中scanf。為預(yù)定義標識符,可以作為用戶標識符;case為關(guān)鍵字,不能作為用戶標識符,故而答案選A。14、以下各項中,能正確表述算式sin(2πr+30°)的C語言表達式是()。A、sin(2*π*r+30)B、sin(2*3.14*r+30)C、sin(2*3.14*r+3.14*30/180.0)D、sin(2*3.14*r+30*3.14/360.0)標準答案:C知識點解析:考查算術(shù)表達式的寫法,選項c中沒有π,需要用數(shù)值3.14代替,sin函數(shù)的參數(shù)為弧度,角度30轉(zhuǎn)成弧度應(yīng)為3.14*30/180。故應(yīng)選C。15、若有定義:inta,b,c;,則以下選項中的賦值語句正確的是()。A、a=(b==c)=1;B、(a=b)=c=1;C、a=(b=c)+1;D、a+b=c;標準答案:C知識點解析:賦值運算符的左側(cè)必須為變量而不能是表達式,所以答案選c。16、有以下程序:#includemain(){printf(“%d\n”,NULL);}程序運行后的輸出結(jié)果是()。A、1B、變量無定義,輸出不確定C、一1D、0標準答案:D知識點解析:NULL為一個符號常量,對應(yīng)的ASCⅡ碼值為0,答案選D。17、設(shè)有定義:doublex=2.12;,則以下各項中不能完整輸出變量x值的語句是()。A、printf(“x=%5.of\n”,x);B、prinff(“x=%f\n”,x);C、prinff(“x=%If\n”,x);D、prinff(“x=%0.5f\n”,x);標準答案:A知識點解析:本題考查printf函數(shù)的格式輸出,“格式控制字符串”部分為“%f”表示按照浮點型輸出,選項B正確;加入長度格式符1即“%1”表示按照雙精度浮點型輸出,選項C正確;若要控制輸出精度,則需以“.”開頭,后跟十進制整數(shù),如“%.2f’’或“%0.2f”,選項D正確;控制輸出寬度則是用整數(shù)表示,如“%5f”,選項A中“%5.Of”表示輸出寬度為5,右對齊,小數(shù)點后保留位數(shù)為0,所以結(jié)果輸出為2,不能完整輸出x,答案選A。18、若有定義:charc;ihtd;,程序運行時輸入:c=1d=2<回車>,能把字符l輸入給變量c、把整數(shù)2輸入給變量d的輸入語句是()。A、scanf(“c=%cd=%d”,&c,&d);B、scanf(“c=%cd=%d”,&c,&d);C、scant"(“c=%dd=%d”,&c,&d);D、scant"(“c=%dd=%d”,&c,&d);標準答案:A知識點解析:在sanf()函數(shù)中格式字符串的形式必須與地址格式保持一致,所以B、D選項不正確。C選項中c=%d是以數(shù)值格式存入c變量。故只有A選項正確。19、若有定義intx,y;并已正確給變量賦值,則以下選項中與表達式(x—y)?(x++):(y++)中的條件表達式(x—y)等價的是()。A、(x—y<0‖x—y>0)B、(x—y<0)C、(x—y>0)D、(x—y=0)標準答案:A知識點解析:條件表達式:x:表達式1?表達式2:表達式3,其含義是先求解表達式1,若其值為非0(真),則求解表達式2,將表達式2的值賦給x;若表達式1的值為0(假),則求解表達式3,將表達式3的值賦給x。與表達式(x—y)等價的是(x—y<0‖x—y>0)。20、有以下程序:#includemain(){chara=’H’;a=(a>=’A’&&a<=’Z’)?(a+32):a;prinff(“%c\n”,a);}程序運行后的輸出結(jié)果是()。A、hB、HC、AD、a標準答案:A知識點解析:考查條件運算符。條件表達式的形式為:表達式1?表達式2:表達式3,計算“表達式1”的值,若為“真”,取“表達式2”的值作為整個條件表達式的值;若為“假”,取“表達式3”的值作為整個條件表達式的值。字符參與運算時一般計算其ASCⅡ碼,并且一個字母的小寫一大寫=32(ASCⅡ碼),該程序?qū)⒋髮懽帜皋D(zhuǎn)成對應(yīng)的小寫字母,答案選A。21、關(guān)于“while(條件表達式)循環(huán)體”,以下敘述中正確的是()。A、循環(huán)體的執(zhí)行次數(shù)總是比條件表達式的執(zhí)行次數(shù)多一次B、條件表達式的執(zhí)行次數(shù)總是比循環(huán)體的執(zhí)行次數(shù)多一次C、條件表達式的執(zhí)行次數(shù)與循環(huán)體的執(zhí)行次數(shù)一樣D、條件表達式的執(zhí)行次數(shù)與循環(huán)體的執(zhí)行次數(shù)無關(guān)標準答案:B知識點解析:考查while循環(huán)的執(zhí)行過程。先計算括號內(nèi)表達式的值,若不為0則執(zhí)行循環(huán)體語句,若為0則跳出while循環(huán),所以條件表達式的執(zhí)行次數(shù)總是比循環(huán)體的執(zhí)行次數(shù)多一次,答案選B。22、有以下程序:#include#definef(x)x*x*xmain(){inta=3,s,t;s=f(a+1);t=f((a+1));prinff(“%d,%d\n”,*,t);}程序運行后的輸出結(jié)果是()。A、10,64B、10,10C、64,10D、64,64標準答案:A知識點解析:c語言中帶參數(shù)的宏可以理解為用參數(shù)直接替代定義式中的變量,而不經(jīng)過任何修改。所以s=f(a+1)=a+1*a+1*a+1,t=f((a+1))=(a+1)*(a+1)*(a+1),所以有無括號的運算結(jié)果是不同的。23、在一個C源程序文件中所定義的全局變量,其作用域為()。A、所在文件的全部范圍B、所在程序的全部范圍C、所在函數(shù)的全部范圍D、由具體定義位置和extem說明來決定范圍標準答案:D知識點解析:全局變量是在函數(shù)外部任意位置上定義的變量,它的作用域是從變量定義的位置開始,到整個源文件結(jié)束止。24、有以下程序:#includevoidmain(){chara,b,C,d;scanf(“%c%c”,&a,&b);c=getchar();d=getchar();prinff(“%c%c%c%c\n”,a,b,c,d);}當執(zhí)行程序時,按下列方式輸入數(shù)據(jù)(從第一列開始,代表回車,注意:回車是一個字符):1234則輸出結(jié)果是()。A、1234B、12C、123D、1234標準答案:C知識點解析:scanf()函數(shù)的一般調(diào)用形式為:scanf(格式控制,輸入地址列表)。其中,格式控制是用雙引號括起來的字符串,包括格式字符和普通字符,格式是是由“%”和格式字符組成。getchar()函數(shù)的功能是從標準輸入設(shè)備上讀入一個字符。根據(jù)程序中的格式控制可知,接收輸入時分別把1賦給了a,2賦給了b,然后getchar()函數(shù)提取一個換行符賦給c,再提取一個字符3賦給d。所以程序的輸出結(jié)果為:123。25、有以下程序:#includevoidfun(intx){if(x/2>1)fun(x/2);prinff(“%d”,X);}voidmain(){fun(7);prinff(“\n”);}程序運行后的結(jié)果是()。A、137B、731C、73D、37標準答案:D知識點解析:函數(shù)fun是遞歸函數(shù),遞歸終止條件是x小于等于2,當大于2時遞歸調(diào)用fun(x/2)。第一次循環(huán)x/2=3,調(diào)用fun(3),x/2=1,跳出if循環(huán),執(zhí)行輸出x=3,然后回到第一次循環(huán),執(zhí)行if循環(huán)的語句,輸出x=7。26、有以下程序:#includeintb=2;intfun(int*k){b=*k+b;return(b);}voidmain(){inta[10]={1,2,3,4,5,6,7,8},i;for(i=2;i<4;i++){b=fun(&a[i])+b;prinff(“%d”,b);}prinff(“\n”);}程序運行后的輸出結(jié)果是()。A、1012B、810C、1028D、1016標準答案:C知識點解析:因為b是全局變量,所以它的值在整個程序結(jié)束才會消失。for循環(huán)中,第一次循環(huán),i=2,a[2]=3,所以fun(&a[i]=3+2=5,b=5,所以b:fun(&a[i])+b=5+5=10;第二次循環(huán),b=10,然后fun(&a[i])代入a[3]=4,這時fun(&a[i]=10+4=14,所以b=fun(&a[i])+b=14+14=28。27、以下語句中存在語法錯誤的是()。A、charss[6][20];ss[1]=“right?”;B、charss[][20]={“right?”};C、char*ss[6];ss[1]=“right?”;D、char*ss[]={“right?”};標準答案:A知識點解析:A項錯誤,數(shù)組定義后,不能對數(shù)組整體賦值,ss是二維數(shù)組,ss[1]是一維字符數(shù)組,即字符串,字符串賦值可以使用“strcpy(ss[1],”right”);”的形式,但不能使用賦值的形式。B、D兩項正確,在定義時對數(shù)組同時進行初始化;C項正確,將常量字符串在內(nèi)存中的首地址賦給指針數(shù)組的一個元素。28、有以下程序:#includeintf(intx,inty){return((y—x)*x);}voidmain(){inta=3,b=4,c=5,d;d=f(f(a,b),f(a,c));prinff(“%d\n”,d);}程序運行后的輸出結(jié)果是()。A、9B、10C、8D、7標準答案:A知識點解析:考查函數(shù)的返回值。d=f(f(a,b),f(a,c))=f((b—a)*a,(c—a)*a)=f(3,6)=(6—3)*3=9,所以答案選A。29、以下敘述中正確的是()。A、函數(shù)調(diào)用時,不必區(qū)分函數(shù)名稱的大小寫B(tài)、調(diào)用函數(shù)時,函數(shù)名必須與被調(diào)用的函數(shù)名完全一致C、函數(shù)名允許用數(shù)字開頭D、在函數(shù)體中只能出現(xiàn)一次return語句標準答案:B知識點解析:調(diào)用函數(shù)的時候只有保證調(diào)用語句的函數(shù)名和被調(diào)函數(shù)的函數(shù)名、參數(shù)列表一致才能保證調(diào)用的正確性,選項B正確。C語言對大小寫敏感,選項A錯。用戶自定義的函數(shù)名需要遵循用戶標識符的命名規(guī)則,由字母、數(shù)字、下畫線組成并且第一個字符不能為數(shù)字,選項C錯。一個函數(shù)每次只能使用一個return語句,但是該函數(shù)體中可以有多個返回點,也就是有多條return語句,每次只從其中一點返回,選項D錯。答案選B。30、以下敘述中正確的是()。A、當對文件的讀(寫)操作完成之后,必須將它關(guān)閉,否則可能導(dǎo)致數(shù)據(jù)丟失B、打開一個已存在的文件并進行了寫操作后,原有文件中的全部數(shù)據(jù)必定被覆蓋C、在一個程序中當對文件進行了寫操作后,必須先關(guān)閉該文件然后再打開,才能讀到第1個數(shù)據(jù)D、C語言中的文件是流式文件,因此只能順序存取數(shù)據(jù)標準答案:A知識點解析:A選項正確,C語言通過文件緩沖區(qū)對文件進行操作,如果操作完成后不進行關(guān)閉文件,可能導(dǎo)致文件緩沖區(qū)中的數(shù)據(jù)丟失。B選項錯誤,打開一個已存在的文件并進行了寫操作后,原有文件中的全部數(shù)據(jù)不一定被覆蓋,也可以對源文件進行追加操作等;C選項錯誤,在一個程序中當對文件進行了寫操作后,用fSeek()函數(shù)進行重新定位就能夠讀到第1個數(shù)據(jù);D選項錯誤,C語言中的文件可以進行隨機讀寫。31、有以下程序:#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)));}程序的運行結(jié)果是()。A、5B、6C、4D、3標準答案:A知識點解析:函數(shù)ml()返回兩個參數(shù)中較小的數(shù)值,函數(shù)m2()返回兩個參數(shù)中較大的數(shù)值,函數(shù)fun()返回兩個參數(shù)之和,所以fun(m1(x,y),m2(y,z))=fun(m1(2,3),m2(3,1))=fun(2,3)=5,答案選A。32、有以下程序(strcpy為字符串復(fù)制函數(shù),strcat為字符串連接函數(shù)):#include#includevoidmain(){chara[10]=“abc”,b[10]=“012”,c[10]=“xyz”;strcpy(a+1,b+2);puts(strcat(a,c+1));}程序運行后的輸出結(jié)果是()。A、a12xyzB、12yzC、a2yzD、bc2yz標準答案:C知識點解析:先執(zhí)行strcpy,將b[2]中的2復(fù)制到a[1]中的b及之后的存儲空間中,即此時數(shù)組a中值為a2,再執(zhí)行strcat連接函數(shù),將c[1]所指的y及之后的z與a連接,即為a2yz。33、以下敘述中正確的是()。A、如果企圖通過一個空指針來訪問一個存儲單元,將會得到一個出錯信息B、即使不進行強制類型轉(zhuǎn)換,在進行指針賦值運算時,指針變量的基類型也可以不同C、設(shè)變量p是一個指針變量,則語句p=0;是非法的,應(yīng)該使用p=NULL;D、指針變量之間不能用關(guān)系運算符進行比較標準答案:A知識點解析:空指針意味著該指針沒有指向任何具體的變量,所以不能訪問一個存儲單元,選項A正確。指針的賦值運算只能在同一數(shù)據(jù)類型之間進行,故選項B錯。語句p=0和p=NULL是一樣的,都是把一個空指針賦給指針變量p,故選項C錯。指針之間能進行關(guān)系運算,比較的是地址值的大小,選項D錯。答案選A。34、以下敘述中正確的是()。A、如果p是指針變量,則&p是不合法的表達式B、如果p是指針變量,則*p表示變量p的地址值C、在對指針進行加、減算術(shù)運算時,數(shù)字1表示1個存儲單元的長度D、如果p是指針變量,則*p+1和*(p+1)的效果是一樣的標準答案:C知識點解析:考查指針的用法。指針進行算術(shù)運算的時候,數(shù)字“1”不再代表十進制整數(shù)“1”,而是指一個存儲單元長度,選項c正確。指針變量存儲的是其指向的變量的地址,其本身的地址仍用取地址運算符“&”求得,*p表示的是p指向的變量的值,選項A、B錯。*p+1表示的是指針p指向的變量值+1,而*(p+1)則是取得了下一個變量的值,兩者不同,選項D錯。答案選C。35、有以下程序:#include#includevoidfun(int:**s,intx[2][3]){**s=*(x[1]+1);}voidmain(){inta[2][3]={1,2,3,4,5,6},*p;P=(int*)malloc(sizeof(int));fun(&p,a);printf(“%d\n”,*P);程序的運行結(jié)果是()。A、5B、2C、6D、3標準答案:A知識點解析:**s=*(x[1]+1);的作用是將a數(shù)組的5的地址賦給了p,故正確答案為A。36、有以下程序:#includemain(){inta[]={2,3,5,4},i;for(i=0;i<4;i++)switch(i%2){case0:switch(a[i]%2){caff0:a[i]++;break;case1:a[i]一一;}break;case1:a[i]=0;}for(i=0;i<4;i++)printf(“%d”,a[i]);printf(“\n”);}程序運行后的輸出結(jié)果是()。A、3344B、2050C、3040D、0304標準答案:C知識點解析:main函數(shù)的函數(shù)體是一個for循環(huán)語句,for循環(huán)中包含一個switch語句,如果判斷條件為0,則進入第二個swit&一l語句,如果判斷語句為1,則執(zhí)行“a[i]=0”,最后將數(shù)組按順序輸出。所以程序功能是將數(shù)組的偶數(shù)項設(shè)為0,奇數(shù)項如果為奇數(shù)則減1,為偶數(shù)就加1,最后得到結(jié)果。37、有如下程序:#includevoidmain()}intX=0x13;if(x=0x18)prinff(“T”);prinff(“F\n”);}程序運行后的結(jié)果是()。A、TFB、TC、FD、TFT標準答案:A知識點解析:x=Oxl8為賦值表達式,十六進制數(shù)Oxl8非0,if條件成立輸出T,之后再輸出F與回車符。程序運行后的輸出結(jié)果是TF。38、下面結(jié)構(gòu)體的定義語句中,錯誤的是()。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知識點解析:分號代表該結(jié)構(gòu)體定義語句的結(jié)束,選項A的結(jié)構(gòu)體沒有定義完全就用該結(jié)構(gòu)體另外定義變量,用法有誤,所以答案選A。39、有以下程序:#includevoidfun(intn){staticintx[3]={1,2,3};intk;for(k=0;k<3.k++)x[k]+=X[k]一n;for(k=0;k<3;k++)prinff(“%d,”,x[k]);}main(){fun(0);fun(1);}程序運行后的輸出結(jié)果是()。A、1,2,3,0,2,4,B、2,4,6,3,7,11,C、2,4,6,1,3,5,D、1,2,3,4,5,6,標準答案:B知識點解析:第一次調(diào)用fun()函數(shù),此時n=O,數(shù)組x是靜態(tài)的,因此,只在第一次時初始化,由x[k]+=x[k]一n計算可知,x[]={2,4,6},第二次調(diào)用fun(),此時n=1,x[]={2,4,6},經(jīng)計算得x[]={3,7,11},故輸出結(jié)果為2,4,6,3,7,11,。40、有以下程序:#includevoidmain(){unsignedchara=8,c;c=a>>3;printf(“%d\n”,c);}程序運行后的輸出結(jié)果是()。A、32B、16C、1D、0標準答案:C知識點解析:字符常量與其ASCⅡ碼值一一對應(yīng),在計算的時候,可以使用該字符的ASCⅡ碼參與運算,輸出時會根據(jù)格式控制符輸出對應(yīng)的字符或者ASCII碼。右移運算符“>>”的運算規(guī)則是把左邊運算數(shù)的各二進制位全部右移n位,n取決于“>>”右邊的數(shù)值。字符a的ASCⅡ碼值為8,對應(yīng)二進制為1000,所以a>>3=1,輸出的字符c的ASCⅡ碼值為1,答案選C。國家二級C語言機試(選擇題)模擬試卷第2套一、選擇題(本題共40題,每題1.0分,共40分。)1、算法的有窮性是指()。A、算法程序的運行時間是有限的B、算法程序所處理的數(shù)據(jù)量是有限的C、算法程序的長度是有限的D、算法只能被有限的用戶使用標準答案:A知識點解析:算法原則上能夠精確地運行,而且人們用筆和紙做有限次運算后即可完成。有窮性是指算法程序的運行時間是有限的。2、在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是()。A、可行性分析報告B、軟件需求規(guī)格說明書C、概要設(shè)計說明書D、集成測試計劃標準答案:B知識點解析:A)錯誤,可行性分析階段產(chǎn)生可行性分析報告。C錯誤,概要設(shè)計說明書是總體設(shè)計階段產(chǎn)生的文檔。D錯誤,集成測試計劃是在概要設(shè)計階段編寫的文檔。B正確,需求規(guī)格說明書是后續(xù)工作如設(shè)計、編碼等需要的重要參考文檔。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、結(jié)構(gòu)化程序設(shè)計的基本原則不包括()。A、多態(tài)性B、自頂向下C、模塊化D、逐步求精標準答案:A知識點解析:結(jié)構(gòu)化程序設(shè)計的思想包括:自頂向下、逐步求精、模塊化、限制使用goto語句,所以選擇A。5、程序流程圖中帶有箭頭的線段表示的是()。A、圖元關(guān)系B、數(shù)據(jù)流C、控制流D、調(diào)用關(guān)系標準答案:C知識點解析:在數(shù)據(jù)流圖中,用標有名字的箭頭表示數(shù)據(jù)流。在程序流程圖中,用標有名字的箭頭表示控制流。所以選擇C。6、對長度為n的線性表排序,在最壞情況下,比較次數(shù)不是n(n-1)/2的排序方法是()。A、快速排序B、冒泡排序C、直接插入排序D、堆排序標準答案:D知識點解析:除了堆排序算法的比較次數(shù)是Onlog2n,其他的都是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、設(shè)p是指針變量,語句p=NULL;等價于()。A、p=’0’;B、p=’’;C、p="";D、p=0;標準答案:D知識點解析:p=NULL;等價p=0;因此D選項正確。10、設(shè)有表示學生選課的三張表,學生S(學號,姓名,性別,年齡,身份證號),課程C(課號,課名),選課SC(學號,課號,成績),則表SC的關(guān)鍵字(鍵或碼)為()。A、課號,成績B、學號,成績C、學號,課號D、學號,姓名,成績標準答案:C知識點解析:學號是學生表S的主鍵,課號是課程表C的主鍵,所以選課表SC的關(guān)鍵字就應(yīng)該是與前兩個表能夠直接聯(lián)系且能唯一定義的學號和課號,所以選擇C。11、以下敘述中錯誤的是()。A、C語言中的每條可執(zhí)行語句和非執(zhí)行語句最終都將被轉(zhuǎn)換成二進制的機器指令B、C程序經(jīng)過編譯、連接步驟之后才能形成一個真正可執(zhí)行的二進制機器指令文件C、用C語言編寫的程序稱為源程序,它以ASCII代碼形式存放在一個文本文件中D、C語言源程序經(jīng)編譯后生成后綴為.obj的目標程序標準答案:A知識點解析:C語言中的非執(zhí)行語句不會被編譯,不會生成二進制的機器指令,所以A錯誤。由C語言構(gòu)成的指令序列稱C源程序,C源程序經(jīng)過C語言編譯程序編譯之后生成一個后綴為.OBJ的二進制文件(稱為目標文件);最后要由"連接程序"把此.OBJ文件與C語言提供的各種庫函數(shù)連接起來生成一個后綴為.EXE的可執(zhí)行文件。12、以下選項中,合法的一組C語言數(shù)值常量是()。A、12.0Xa234.5e0B、028.5e-3-0xfC、1774e1.50abcD、0x8A10,0003.e5標準答案:A知識點解析:C語言中八進制整型常量的開頭是數(shù)字0,十六進制整型常量的開頭數(shù)字是0x。C語言中的實型常量有兩種表示形式:小數(shù)形式,小數(shù)形式表示的實型常量必須要有小數(shù)點;指數(shù)形式,以"e"或"E"后跟一個整數(shù)來表示以10為底數(shù)的冪數(shù),且規(guī)定字母e或E之前必須要有數(shù)字,且e或E后面的指數(shù)必須為整數(shù)。B選項中028錯誤,八進制中沒有數(shù)字8。C選項中4e1.5中e后面的指數(shù)不是整數(shù)。D)選項中3.e5小數(shù)點后面缺少數(shù)字。13、以下選項中不合法的標識符是()。A、&aB、FORC、printD、00標準答案:A知識點解析:C語言中標識符由字母、下劃線、數(shù)字組成,且開頭必須是字母或下劃線。另外,關(guān)鍵字不能作為標識符。因為C語言中區(qū)分大小寫,所以B選項中的"FOR"可以作為標識符來用。A選項中含有非法字符&,所以選擇A。14、以下敘述中錯誤的是()。A、用typedef可以說明一種新的類型名B、typedef的作用是用一個新的標識符來代表已存在的類型名C、可以用typedef說明的新類型名來定義變量D、typedef說明的新類型名必須使用大寫字母,否則會出編譯錯誤標準答案:D知識點解析:本題考查typedef的使用方法,typedef對已存在的類型使用一個新的名字,新類型可以使用小寫,所以D選項錯誤。15、若有定義:doublea=22;inti=0,k=18;,則不符合C語言規(guī)定的賦值語句是()。A、i=(a+k)<=(i+k);B、i=a%11;C、a=a++,i++D、i=!a;標準答案:B知識點解析:取模運算符"%",二元運算符,具有左結(jié)合性,參與運算的量均為整型。選項B中的a變量是double實型,所以B)不符合規(guī)定。16、有以下程序:#includemain(){ints,t,A=10;doubleB=6;s=sizeof(A);t=sizeof(B);printf("%d,%d\n",s,t);}在VC6.0平臺上編譯運行,程序運行后的輸出結(jié)果是()。A、10,6B、4,4C、2,4D、4,8標準答案:D知識點解析:C語言中利用sizeof()函數(shù)判斷數(shù)據(jù)類型長度,在VC6.0平臺中,整型int占有4個字節(jié),double型數(shù)據(jù)占有8個字節(jié)。17、有以下程序:#includemain(){chara,b,c,d;scanf("%c%c",&a,&b);c=getchar();d=getchar();printf("%c%c%c%c\n",a,b,c,d);}當執(zhí)行程序時,按下列方式輸入數(shù)據(jù)(從第1列開始,代表回車,注意:回車也是一個字符)1234則輸出結(jié)果是()。A、1234B、12C、1234D、123標準答案:D知識點解析:按照從鍵盤輸入的數(shù)據(jù)可以判斷字符1給了變量a,字符2給了變量b,字符即回車給了變量c,字符3給了變量d。所以打印輸出的結(jié)果為D)選項。18、下關(guān)于邏輯運算符兩側(cè)運算對象的敘述中正確的是()。A、可以是任意合法的表達式B、只能是整數(shù)0或非0整數(shù)C、可以是結(jié)構(gòu)體類型的數(shù)據(jù)D、只能是整數(shù)0或1標準答案:A知識點解析:C語言的邏輯運算符比較特別,它的操作數(shù)沒有明確的數(shù)據(jù)類型,可以是任意合法的表達式,所以選擇A。19、有以下程序:#includemain(){inta=0,b=0,c=0,d=0;if(a=1)b=1;c=2;elsed=3;printf("%d,%d,%d,%d\n",a,b,c,d);}程序輸出()。A、1,1,2,0B、0,0,0,3C、編譯有錯D、0,1,2,0標準答案:C知識點解析:本題中if(a=1)b=1;與elsed=3;之間多了語句c=2;所以會出現(xiàn)else語句的位置錯誤的編譯失敗提示。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;case3:a++;b++;}printf("a=%d,b=%d\n",a,b);}程序的運行結(jié)果是()。A、a=2,b=2B、a=2,b=1C、a=1,b=1D、a=1,b=0標準答案:B知識點解析:case常量表達式只是起語句標號作用,并不是該處進行條件判斷。在執(zhí)行switch語句時,根據(jù)switch的表達式,找到與之匹配的case語句,就從此case子句執(zhí)行下去,不在進行判斷,直到碰到break或函數(shù)結(jié)束為止。所以執(zhí)行內(nèi)層switch(y)時只執(zhí)行了a++,此時a的值為1。然后執(zhí)行外層case2語句的a++;b++;a為2,b為1。所以結(jié)果為B。21、以下程序段中的變量已正確定義:for(i=0;i<4;i++,i++)for(k=1;k<3;k++);printf("*");程序段的輸出結(jié)果是()。A、**B、****C、*D、********標準答案:C知識點解析:由于內(nèi)層循環(huán)for(k=1;k<3;k++)后面直接跟了空語句";"所以在循環(huán)內(nèi)部什么操作也不做,跳出外層循環(huán)后執(zhí)行打印語句,所以打印了一個"*",選擇C)。22、有以下程序段:#includeinti,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知識點解析:case常量表達式只是起語句標號作用,并不是該處進行條件判斷。在執(zhí)行switch語句時,根據(jù)switch的表達式,找到與之匹配的case語句,就從此case子句執(zhí)行下去,不再進行判斷,直到碰到break或函數(shù)結(jié)束為止。簡單的說break是結(jié)束整個循環(huán)體,而continue是結(jié)束單次循環(huán)。B)選項中當產(chǎn)生的隨機數(shù)n為4時要執(zhí)行打印操作。C)選項中當產(chǎn)生的隨機數(shù)為1和2時分別執(zhí)行case3與case4后面語句的內(nèi)容。由于存在break語句所以for循環(huán)不是固定執(zhí)行8次,執(zhí)行次數(shù)與產(chǎn)生的隨機數(shù)n有關(guān)系。23、有以下程序:#includeintf(intx);main(){intn=1,m;m=f(f(f(n)));printf("%d\n",m);}intf(intx){returnx*2;}程序運行后的輸出結(jié)果是()。A、8B、2C、4D、1標準答案:A知識點解析:第一次調(diào)用m=f(f(f(1))),第二次為m=f(f(2)),第三次為m=f(4),即返回值為8。24、以下敘述中錯誤的是()。A、可以給指針變量賦一個整數(shù)作為地址值B、函數(shù)可以返回地址值C、改變函數(shù)形參的值,不會改變對應(yīng)實參的值D、當在程序的開頭包含頭文件stdio.h時,可以給指針變量賦NULL標準答案:A知識點解析:不能將一個整數(shù)直接賦給指針變量作為地址,所以A是錯誤的。函數(shù)的返回值可以是地址,即指針。函數(shù)調(diào)用中形參值的變化不會傳遞給實參。25、設(shè)已有定義:floatx;,則以下對指針變量p進行定義且賦初值的語句中正確的是()。A、int*p=(float)x;B、float*p=&x;C、floatp=&x;D、float*p=1024;標準答案:B知識點解析:指針是用來存放地址的變量,用(類型名*指針變量名)的形式定義。賦值時應(yīng)將某個變量地址即&x賦給指針變量,所以選擇B。26、以下數(shù)組定義中錯誤的是()。A、intx[2][3]={1,2,3,4,5,6};B、intx[][3]={0};C、intx[][3]={{1,2,3},{4,5,6}};D、intx[2][3]={{1,2},{3,4},{5,6}};標準答案:D知識點解析:D)選項中x[2][3]定義的是一個兩行三列的二維數(shù)組,而在給數(shù)組元素賦值時卻賦成了三行,所以錯誤。27、有以下程序:#includevoidfun(inta[],intn){inti,t;for(i=0;i<n/2;i++){t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}}main(){intk[10]={1,2,3,4,5,6,7,8,9,10},i;fun(k,5);for(i=2;i<8;i++)printf("%d",k[i]);printf("\n");}程序的運行結(jié)果是()。A、321678B、876543C、1098765D、345678標準答案:A知識點解析:本題中的函數(shù)fun()的功能是將數(shù)組k中前5個元素倒序,所以返回后數(shù)組k中的元素排列是5,4,3,2,1,6,7,8,9,10。所以打印輸出k[2]到k[7]元素的值,即321678,所以選擇A。28、有以下程序:#include#defineN4voidfun(inta[][N],intb[]){inti;for(i=0;i<N;i++)b[i]=a[i][i]-a[i][N-1-i];}main(){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");}程序運行后的輸出結(jié)果是()。A、-3,-1,1,3,B、-12,-3,0,0,C、0,1,2,3,D、-3,-3,-3,-3,標準答案:A知識點解析:本題中由fun函數(shù)可知,b[0]=a[0][0]-a[0][3]=1-4=-3,b[1]=a[1][1]-[1][2]=6-7=-1,b[2]=a[2][2]-[2][1]=11-10=1,b[3]=a[3][3]-[3][1]=16-13=3。所以主函數(shù)中打印y數(shù)組元素的值為A)選項。29、設(shè)有定義:chars[81];inti=0;,以下不能將一行(不超過80個字符)帶有空格的字符串正確讀入的語句或語句組是()。A、gets(s);B、while((s[i++]=getchar())?。健痋n’);s[i]=’\0’;C、scanf("%s",s);D、do{scanf("%c",&s[i]);}while(s[i++]?。健痋n’);s[i]=’\0’;標準答案:C知識點解析:字符串的輸入不能使用scanf("%s",s);而應(yīng)該使用gets(s)。30、設(shè)有定義:charp[]={’1’,’2’,’3’},*q=p;,以下不能計算出一個char型數(shù)據(jù)所占字節(jié)數(shù)的表達式是()。A、sizeof(p)B、sizeof(char)C、sizeof(*q)D、sizeof(p[0])標準答案:A知識點解析:根據(jù)題目中的定義可以知道sizeof(p),計算的是數(shù)組p中所有元素所占用的字節(jié)數(shù),而不是char型數(shù)據(jù)所占字節(jié)數(shù)。31、有以下程序:#include#includemain(){charstr[][20]={"One*World","One*Dream!"},*p=str[1];printf("%d,",strlen(p));printf("%s\n",p);}程序運行后的輸出結(jié)果是()。A、10,One*Dream!B、9,One*Dream!C、9,One*WorldD、10,One*World標準答案:A知識點解析:p是指向二維字符數(shù)組第二行One*Dream!的數(shù)組指針,所以長度是10,打印輸出的也是該字符串。32、有以下程序:#includemain(){chars[]="012xy\08s34f4w2";inti,n=0;for(i=0;s[i]!=0;i++)if(s[i]>=’0’&&s[i]<=’9’)n++;printf("%d\n",n);}程序運行后的輸出結(jié)果是()。A、0B、3C、7D、8標準答案:B知識點解析:本題中遇到"\"字符循環(huán)結(jié)束,所以只統(tǒng)計"\"之前的數(shù)字字符,所以為3。33、有以下程序:#includefun(intx,inty){staticintm=0,i=2;i+=m+1;m=i+x+y;returnm;}main(){intj=1,m=1,k;k=fun(j,m);printf("%d,",k);k=fun(j,m);printf("%d\n",k);}執(zhí)行后的輸出結(jié)果是()。A、5,11B、5,5C、11,11D、11,5標準答案:A知識點解析:聲明靜態(tài)局部變量:函數(shù)調(diào)用結(jié)束后,其占用的存儲單元不釋放,在下次該函數(shù)調(diào)用時,該變量保留上一次函數(shù)調(diào)用結(jié)束時的值。本題子函數(shù)fun中的變量i和m均為靜態(tài)局部變量。所以第一次調(diào)用fun函數(shù),返回m的值為5,第二次再調(diào)用fun函數(shù)時,i的值為3,m的值已經(jīng)是5了,所以執(zhí)行i+=m+1,i的值變?yōu)?,m=i+x+y=9+1+1=11。34、在C語言中,只有在使用時才占用內(nèi)存單元的變量,其存儲類型是()。A、auto和staticB、extern和registerC、auto和registerD、static和register標準答案:C知識點解析:auto:函數(shù)中的局部變量,動態(tài)地分配存儲空間,數(shù)據(jù)存儲在動態(tài)存儲區(qū)中,在調(diào)用該函數(shù)時系統(tǒng)會給它們分配存儲空間,在函數(shù)調(diào)用結(jié)束時就自動釋放這些存儲空間。register:為了提高效率,C語言允許將局部變量的值放在CPU中的寄存器中,這種變量叫"寄存器變量",只有局部自動變量和形式參數(shù)可以作為寄存器變量。extern:外部變量(即全局變量)是在函數(shù)的外部定義的,它的作用域為從變量定義處開始,到本程序文件的末尾。如果外部變量不在文件的開頭定義,其有效的作用范圍只限于定義處到文件終了。static:靜態(tài)局部變量屬于靜態(tài)存儲類別,在靜態(tài)存儲區(qū)內(nèi)分配存儲單元。在程序整個運行期間都不釋放。35、下面結(jié)構(gòu)體的定義語句中,錯誤的是()。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)選項structord{intx;inty;intz;}structorda;錯誤,不能在定義結(jié)構(gòu)體的同時,又用結(jié)構(gòu)體類型名定義變量。應(yīng)該寫成B)選項或者D)選項的格式。36、有以下程序:#includetypedefstruct{intb,p;}A;voidf(AC)/*注意:c是結(jié)構(gòu)變量名*/{intj;c.b+=1;c.p+=2;}main(){inti;Aa={1,2};f(a);printf("%d,%d\n",a.b,a.p);}程序運行后的輸出結(jié)果是()。A、2,4B、1,2C、1,4D、2,3標準答案:B知識點解析:結(jié)構(gòu)體變量可以作為函數(shù)的參數(shù)和返回值。作為函數(shù)的實參時,可以實現(xiàn)函數(shù)的傳值調(diào)用。當使用結(jié)構(gòu)體變量作為函數(shù)的形參時,實參也應(yīng)該是結(jié)構(gòu)體變量名以實現(xiàn)傳值調(diào)用,實參將拷貝副本給形參,在被調(diào)用函數(shù)中改變形參值對于調(diào)用函數(shù)中的實參沒有影響。所以選擇B。37、以下敘述中正確的是()。A、在C語言中,預(yù)處理命令行都以"#"開頭B、預(yù)處理命令行必須位于C源程序的起始位置C、#include必須放在C程序的開頭D、C語言的預(yù)處理不能實現(xiàn)宏定義和條件編譯的功能標準答案:A知識點解析:預(yù)處理命令是以"#"號開頭的命令,它們不是C語言的可執(zhí)行命令,這些命令應(yīng)該在函數(shù)之外書寫,一般在源文件的最前面書寫,但不是必須在起始位置書寫,所以B,C錯誤。C語言的預(yù)處理能夠?qū)崿F(xiàn)宏定義和條件編譯等功能,所以D錯誤。38、有以下程序:#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));}程序的運行結(jié)果是()。A、0B、10C、20D、出錯標準答案:C知識點解析:malloc(sizeof(int))的作用是開辟一個長度為sizeof(int)存儲空間,并通過強制類型轉(zhuǎn)換(int*)將此存儲空間的地址賦給了一個整型的指針變量p。然后執(zhí)行語句*p=n,使得*p的值為10,并通過return返回此值,即a的值為10。然后在主函數(shù)中輸出a+fun(10)=10+10=20。39、有以下程序:#includemain(){unsignedchara=8,c;c=a>>3;printf("%d\n",c);}程序運行后的輸出結(jié)果是()。A、16B、1C、32D、0標準答案:B知識點解析:無符號整型變量a的值為8,二進制表示為00001000,右移3位后為00000001,即十進制的1,所以輸出1。40、讀取二進制文件的函數(shù)調(diào)用形式為:fread(buffer,size,count,fp);,其中buffer代表的是()。A、一個內(nèi)存塊的字節(jié)數(shù)B、一個整型變量,代表待讀取的數(shù)據(jù)的字節(jié)數(shù)C、一個文件指針,指向待讀取的文件D、一個內(nèi)存塊的首地址,代表讀入數(shù)據(jù)存放的地址標準答案:D知識點解析:fread(void*buffer,sizetsize,sizetcount,F(xiàn)ILE*stream);功能是從一個文件流中讀數(shù)據(jù),讀取count個元素,每個元素size字節(jié),如果調(diào)用成功返回count。buffer:用于接收數(shù)據(jù)的內(nèi)存地址,大小至少是size*count字節(jié);size:單個元素的大小,單位是字節(jié);count:元素的個數(shù),每個元素是size字節(jié);stream:輸入流。國家二級C語言機試(選擇題)模擬試卷第3套一、選擇題(本題共39題,每題1.0分,共39分。)1、算法的時間復(fù)雜度是指()。A、算法的長度B、執(zhí)行算法所需要的時間C、算法中的指令條數(shù)D、算法執(zhí)行過程中所需要的基本運算次數(shù)標準答案:D知識點解析:算法的時間復(fù)雜度,是指執(zhí)行算法所需要的工作量,可以用算法在執(zhí)行過程中所需基本運算的執(zhí)行次數(shù)來度量算法的工作量。2、以下數(shù)據(jù)結(jié)構(gòu)中,屬于非線性數(shù)據(jù)結(jié)構(gòu)的是()。A、棧B、線性表C、隊列D、二叉樹標準答案:D知識點解析:二叉樹屬于非線性結(jié)構(gòu)。棧是一種特殊的線性表,這種線性表只能在固定的一端進行插入和刪除操作;隊列可看作是插入在一端進行,刪除在另一端進行的線性表。3、數(shù)據(jù)結(jié)構(gòu)中,與所使用的計算機無關(guān)的是數(shù)據(jù)的()。A、存儲結(jié)構(gòu)B、物理結(jié)構(gòu)C、邏輯結(jié)構(gòu)D、線性結(jié)構(gòu)標準答案:C知識點解析:數(shù)據(jù)的邏輯結(jié)構(gòu)反映的是數(shù)據(jù)元素之間的邏輯關(guān)系,與使用的計算機無關(guān)。4、內(nèi)聚性是對模塊功能強度的衡量,下列選項中,內(nèi)聚性較弱的是()。A、順序內(nèi)聚B、偶然內(nèi)聚C、時間內(nèi)聚D、邏輯內(nèi)聚標準答案:B知識點解析:內(nèi)聚是從功能角度來衡量模塊的聯(lián)系,它描述的是模塊內(nèi)的功能聯(lián)系。內(nèi)聚有如下種類,它們之間的內(nèi)聚度由弱到強排列:偶然內(nèi)聚一一模塊中的代碼無法定義其不同功能的調(diào)用。但它使該模塊能執(zhí)行不同的功能,這種模塊為巧合強度模塊。邏輯內(nèi)聚——這種模塊把幾種相關(guān)的功能組合在一起,每次被調(diào)用時,由傳送給模塊的參數(shù)來確定該模塊應(yīng)完成哪一種功能。時間內(nèi)聚——這種模塊順序完成一類相關(guān)功能,比如初始化模塊,它順序地為變量置初值。過程內(nèi)聚——如果一個模塊內(nèi)的處理元素是相關(guān)的,而且必須以特定次序執(zhí)行,則稱為過程內(nèi)聚。通信內(nèi)聚——這種模塊除了具有過程內(nèi)聚的特點外,還有另外一種關(guān)系,即它的所有功能都通過使用公用數(shù)據(jù)而發(fā)生關(guān)系。順序內(nèi)聚一一如果一個模塊內(nèi)各個處理元素和同一個功能密切相關(guān),而且這些處理必須順序執(zhí)行,處理元素的輸出數(shù)據(jù)作為下一個處理元素的輸入數(shù)據(jù),則稱為順序內(nèi)聚。功能內(nèi)聚一一如果一個模塊包括為完成某一具體任務(wù)所必需的所有成分,或者說模塊中所有成分結(jié)合起來是為了完成一個具體的任務(wù),此模塊則為功能內(nèi)聚模塊。5、在關(guān)系中凡能惟一標識元組的最小屬性集稱為該表的鍵或碼。二維表中可能有若干個鍵,它們稱為該表的()。A、連接碼B、關(guān)系碼C、外碼D、候選碼標準答案:D知識點解析:在關(guān)系中凡能惟一標識元組的最小屬性集稱為該表的鍵或碼。二維表中可能有若干個鍵,它們稱為該表的候選碼或候選鍵。從二維表的所有候選鍵中選取一個作為用戶使用的鍵稱為主鍵或主碼。6、檢查軟件產(chǎn)品是否符合需求定義的過程稱為()。A、確認測試B、需求測試C、驗證測試D、路徑測試標準答案:A知識點解析:確認測試的任務(wù)是驗證軟件的功能和性能,以及其他特性是否滿足需求規(guī)格說明中確定的各種需求。7、數(shù)據(jù)流圖用于抽象描述一個軟件的邏輯模型,數(shù)據(jù)流圖由一些特定的圖符構(gòu)成。下列圖符名標識的圖符不屬于數(shù)據(jù)流圖合法圖符的是()。A、控制流B、加工C、存儲文件D、源和潭標準答案:A知識點解析:數(shù)據(jù)流圖用于抽象描述一個軟件的邏輯模型,它由一些特定的圖符構(gòu)成,包括4個方面,即加工、數(shù)據(jù)流、存儲文件、源和潭。8、待排序的關(guān)鍵碼序列為(15,20,9,30,67,65,45,90),要按關(guān)鍵碼值遞增的順序排序,采取簡單選擇排序法,第一趟排序后關(guān)鍵碼15被放到第()個位置。A、2B、3C、4D、5標準答案:B知識點解析:選擇排序的基本思想是掃描整個線性表,從中選出最小的元素,將它交換到表的最前面,然后對剩下的子表采用同樣的方法,直到子表為空。所以第一趟排序后,將選出最小的元素9放在第一個位置,元素15則被交換放在第三個位置。9、對關(guān)系S和關(guān)系R進行集合運算,結(jié)果中既包含關(guān)系S中的所有元組也包含關(guān)系R中的所有元組,這樣的集合運算稱為()。A、并運算B、交運算C、差運算D、除運算標準答案:A知識點解析:關(guān)系的并運算是指,由結(jié)構(gòu)相同的兩個關(guān)系合并,形成一個新的關(guān)系,其中包含兩個關(guān)系中的所有元組。10、下列選項中,不屬于數(shù)據(jù)管理員(DBA)職責的是()。A、數(shù)據(jù)庫維護B、數(shù)據(jù)庫設(shè)計C、改善系統(tǒng)性能,提高系統(tǒng)效率D、數(shù)據(jù)類型轉(zhuǎn)換標準答案:D知識點解析:數(shù)據(jù)庫管理員(DataBaseAdministrator,DBA)是指對數(shù)據(jù)庫的規(guī)劃、設(shè)計、維護、監(jiān)視等的人員,其主要工作如下:數(shù)據(jù)庫設(shè)計。DBA的主要任務(wù)之一是數(shù)據(jù)庫設(shè)計,具體地說是進行數(shù)據(jù)模式的設(shè)計。數(shù)據(jù)庫維護。DBA必須對數(shù)據(jù)庫中的數(shù)據(jù)安全性、完整性、并發(fā)控制及系統(tǒng)恢復(fù)、數(shù)據(jù)定期轉(zhuǎn)儲等進行實施與維護。改善系統(tǒng)性能,提高系統(tǒng)效率。DBA必須隨時監(jiān)視數(shù)據(jù)庫的運行狀態(tài),不斷調(diào)整內(nèi)部結(jié)構(gòu),使系統(tǒng)保持最佳狀態(tài)與效率。11、C語言規(guī)定,在一個C程序中,main()函數(shù)的位置()。A、必須在系統(tǒng)調(diào)用的庫函數(shù)之后B、必須在程序的開始C、必須在程序的最后D、可以在任意位置標準答案:D知識點解析:每個C程序有且只有一個主函數(shù)(main),且程序必須從main()函數(shù)開始執(zhí)行,而且main()函數(shù)可以放在程序中的任意位置。12、以下敘述中正確的是()。A、C語言比其他語言高級B、C語言可以不用編譯就能被計算機識別執(zhí)行C、C語言以接近英語圍家的自然語言和數(shù)學語言作為語言的表達形式D、C語言出現(xiàn)的最晚,具有其他語言的一切優(yōu)點標準答案:C知識點解析:此題考查的是C語言的基本特點。C語言是一種高級編程語言,但并不是比其他語言高級;C語言源程序必須經(jīng)過編譯生成目標文件才能被計算機識別執(zhí)行;C語言出現(xiàn)比較晚,它既有優(yōu)點也有缺點,而并不是具有其他一切語言的優(yōu)點。13、已知inta=6;則執(zhí)行a+=a-=a*a;語句后,a的值為()。A、36B、0C、-24D、-60標準答案:D知識點解析:此題考查的是賦值表達式。執(zhí)行語句“a+=a-=a*a;”時,首先執(zhí)行a=a-a*a=30,然后執(zhí)行a=a+a=-60。14、下列敘述中錯誤的是()。A、C語句必須以分號結(jié)束B、復(fù)合語句在語法上被看作一條語句C、空語句出現(xiàn)在任何位置都不會影響程序運行D、賦值表達式末尾加分號就構(gòu)成賦值語句標準答案:C知識點解析:C語言規(guī)定每條語句和數(shù)據(jù)定義的最后必須有一個分號,分號是C語句的必要組成部分。復(fù)合語句也稱為“語句塊”,其形式如下:{語句|;語句2;……語句n;},即用一對大括號把若干語句括起來構(gòu)成一個語句組。一個復(fù)合語句在語法上視為一條語句,在一對花括號內(nèi)的語句數(shù)量不限。一個賦值表達式的最后加一個分號就成為一條語句,即賦值語句??照Z句是只有一個分號的語句,它什么也不做,程序設(shè)計中有時需要加一個空語句來表示存在一條語句,但隨意加分號會導(dǎo)致邏輯上的錯誤,而且這種錯誤十分隱蔽,編輯器也不會提示邏輯錯誤,需要慎用。15、若有定義:inta=7;floatx=2.5,y=4.7;則表達式x+a%3*(int)(x+y)%2/4的值是()。A、2.500000B、2.750000C、3.500000D、0.000000標準答案:A知識點解析:此題考查的是變量的類型轉(zhuǎn)換。表達式中(int)(x+y)把x+y=(7.2)的值強制轉(zhuǎn)化成整型即得到7,那么a%3*(int)(x+y)%2的值為整型常量1,所以a%3*(int)(x+y)%2/4的值為0;因為變量x是浮點型變量,所以表達式x+a%3*(int)(x+y)%2/4的結(jié)果也是浮點型,得到2.500000。16、若下列選項中的各變量均為整型且已有值,其中不正確的賦值語句是()。A、++i;B、n1=(n2/(n3=2));C、k=i=j;D、a=b+c=2;標準答案:D知識點解析:本題考查賦值表達式。賦值表達式的一般形式是:變量名=表達式。C語言規(guī)定,不能給變量表達式賦值。17、下列關(guān)于邏輯運算符兩側(cè)運算對象的敘述中正確的是()。A、只能是整數(shù)0或1B、只能是整數(shù)0或非0整數(shù)C、可以是結(jié)構(gòu)體類型的數(shù)據(jù)D、可以是任意合法的表達式標準答案:D知識點解析:邏輯運算符兩側(cè)的運算對象可以是任意合法的表達式。邏輯表達式的運算結(jié)果或者為1(“真”),或者為0(“假”)。18、若有說明inta[3][4];則a數(shù)組元素的非法引用是()。A、a[0][2*1]B、a[1][3]C、a[4-2][0]D、a[0][4]標準答案:D知識點解析:此題考查的是數(shù)組元素的引用。對于已定義的數(shù)組a[M][N],數(shù)組元素的正確引用必須滿足行下標小于M,列下標小于N且為正整數(shù)。此題中,選項D)中列下標值出現(xiàn)溢出。19、下列說法不正確的是()。A、int*ptr;∥指針指向整形數(shù)據(jù)B、char*ptr;//指針的類型是字符型指針C、int**ptr;//指針的類型是雙重指針D、int(*ptr)[3];//是一個指針數(shù)組,數(shù)組共有三個元素,而三個元素是int型指針標準答案:D知識點解析:int(*ptr)[3]是一個數(shù)組指針,指針指向一個有3個int型變量的數(shù)組。20、有以下程序#includevoidmain(){chars[]={“01aXy”};inti,n=0;for(i=0;s[i]!=0;i++)if(s[i]<=‘a(chǎn)’&&s[i]>=’Z’)n++;printf(“%dha”,n);}程序運行后的輸出結(jié)果是()。A、0B、2C、3D、5標準答案:A知識點解析:這段程序的功能求出字符串s中字符的ASCU碼小于小寫字符a并且大于小寫字符z的字符的個數(shù)。因為小寫字符z的ASCII碼大于小寫字符a的ASCll碼,所以滿足a的ASClI碼并且大于z的的ASCII碼的字符是不存在的,所以輸出0。21、有以下程序:#includemain(){inta[]={1,2,3,4},y,*P=&a[3];--p;y=*p;printf(“y=%d\n”,y);}程序的運行結(jié)果是()。A、y=0B、y=1C、y=2D、y=3標準答案:D知識點解析:程序首先定義了一個一維數(shù)組和指針,接著將數(shù)組第4個元素的地址賦給*p,進行一p使指針p指向了數(shù)組的第3個元素;通過y=*p,將數(shù)組第3個元素的值3賦給了y,所以選項D)正確。22、下面的for語句的循環(huán)次數(shù)為()。for(x=1,y=0;(y!=19)&&(x<6);x++);A、是無限循環(huán)B、循環(huán)次數(shù)不定C、最多執(zhí)行6次D、最多執(zhí)行5次標準答案:D知識點解析:本題考查for循環(huán)。只考慮x的取值變化,x從1取到5,可以循環(huán)5次,但是并不知道v是如何變化的,有可能出現(xiàn)y=19提前跳出循環(huán)的情況,所以是最多執(zhí)行了5次。23、下列程序的輸出結(jié)果是()。#includevoidmain(){inta=0,b=1,c=2;if(++a>0‖++b>0)++C:printf(“%d,%d,%d,a,b,c);}A、0,1,2B、1,2,3C、1,1,3D、1,2,2標準答案:C知識點解析:本題考查if語句。先判斷if語句的條件是否成立,因為++a=1>0,所以條件成立,又因為是進行邏輯或運算,在已知其中一個運算對象為真的情況下,不必判斷另外一個運算對象的真假,即不進行++b操作,就可以直接得出整個表達式的值為邏輯1,執(zhí)行下面的++c。24、有以下程序:#includemain(){intc;while((c=getchar())!=’\n’{switch(c-‘3’){case0:case1:putchar(c+4);case2:putchar(c+4);break;case3:putchar(c+3);case4:putchar(c+3);break;}}printff“\n”);}從第一列開始輸入數(shù)據(jù)(代表一個回車符):3845,則程序輸出結(jié)果為()。A、77889B、77868C、776810D、77886610標準答案:A知識點解析:題中while循環(huán)的條件是:當從鍵盤讀入的字符不是‘\n’時,執(zhí)行while循環(huán)。輸入第一個字符3時:執(zhí)行case0,什么也不輸出;case1,輸出7;case2,輸出7;遇到break語句,跳出SWitch語句。輸入第二個字符8時:c-‘3’=5,不執(zhí)行任何語句。輸入第三個字符4時:c一‘3’=1,執(zhí)行case1輸出8;case2,輸出8;遇到break語句,跳出SWitch語句。輸入第四個字符5時:c-‘3’=2,執(zhí)行case2,輸出9:遇到break語句,跳出switch語句。25、C語言規(guī)定,函數(shù)返回值的類型是()。A、由調(diào)用該函數(shù)時的主調(diào)函數(shù)類型所決定B、由return語句中的表達式類型所決定C、由調(diào)用該函數(shù)時系統(tǒng)臨時決定D、由定義該函數(shù)時所指定的數(shù)值類型決定標準答案:D知識點解析:本題考查函數(shù)調(diào)用時的數(shù)值類型。函數(shù)調(diào)用時,函數(shù)返回值的類型既不由主調(diào)函數(shù)類型所決定,也不由return語句中的表達式類型所決定,更不是由系統(tǒng)臨時決定,而是由定義該函數(shù)時所指定的數(shù)值類型所決定。26、執(zhí)行下列程序時輸入456<空格>789<空格>123<回車>,輸出結(jié)果是()。#includemain(){charm[80];intc.i:scanf(“%c”,&c);scanf(“%d”,&i);scanf(“%s”,&m);printf(“%c,%d,%s\n”,C,i,m);}A、456,789,123B、4,789,123C、4,56,789,123D、4,56,789標準答案:D知識點解析:scanf函數(shù)中的“%c”表示通過鍵盤只讀入一個字符型的數(shù)據(jù),“&c”表示將該數(shù)據(jù)賦值給c,所以c=4。另外,以“%d”格式讀入數(shù)據(jù)時,只有遇到空格或者換行等間隔時符才停止讀入,所以i=56,m=789。27、已知下列函數(shù)定義:fun(int*b,intc,intd){intk:for(k=0;kA、fun(*a,6,14);B、fun(&a,6,8);C、fun(a,8,4);D、fun((int)a,8,6);標準答案:C知識點解析:本題考查函數(shù)調(diào)用時的參數(shù)傳遞。fun函數(shù)的調(diào)用形式為fun(int*b,intc,intd)。調(diào)用數(shù)組時,用數(shù)組名表示一一個指向數(shù)組的第一個元素的指針,因此調(diào)用時的形式為fun(a,8,4)。28、設(shè)Y為整型變量,A=1,A的地址為EF01;B=2,B的地址為EF02;執(zhí)行語句B=&A:Y=&B;后Y的值()。A、1B、2C、EF01D、EF02標準答案:D知識點解析:&是取地址運算符,Y=&B是將B的地址賦給Y,因此Y值為EF0l。29、有以下程序:#includeintflintt[],intn);main(){inta[4]={1,2,3,4},s;s=f(a,2);printf(“%d\n”,s);}intflintt[],intn){if((n>0)&&(n<5))returnt[n+1]+f(t,n—1);elsereturn0:}程序運行后的輸出結(jié)果是()。A、4B、7C、10D、6標準答案:B知識點解析:本題主要考查的是函數(shù)的遞歸調(diào)用,子函數(shù)f是一個遞歸函數(shù),所以主函數(shù)中執(zhí)行ffa,2)時,其執(zhí)行過程是a[3]+f(a,1)=a[3]+a[2]+f(a,0)=7。30、以下語句定義正確的是()。A、inta[1][4]={1,2,3,4,5};B、floata[3][]={{1,2},{2,3},{3,1}};C、longa[2][3]={{1},{1,2},{1,2,3},{0,0}};D、doublea[][3]={8};標準答案:D知識點解析:本題考查如何對二維數(shù)組的元素賦值。選項A),數(shù)組第二維的大小是4,但是卻賦值了5個元素,數(shù)組溢出;選項B),C語言規(guī)定,對于二維數(shù)組,只可以省略第一個方括號中的常量表達式,而不能省略第二個方括號中的常量表達式;選項C),數(shù)組第一維的大小是2,但是賦值超過了2;選項D),在對二維數(shù)組元素賦初值時,可以只對部分元素賦初值,未賦初值的元素自動取0。31、下列一維數(shù)組說明中,不正確的是()。A、intN;scanf(“%d”,&N);intb[N];B、floata[]={1,6,6,0,2};C、#defineS10inta[S];D、#defineS10inta[S+5];標準答案:A知識點解析:本題考查一維數(shù)組的賦值。一維數(shù)組的一般定義格式為:類型說明符數(shù)組名[常量表達式]。其中,“[]”中的內(nèi)容可以是整型常量,也可以是整型表達式。選項A)中的N是一個變量,所以錯誤。32、有以下程序:#include#include“string.h”voidfun(char*s[],intn){char*t;inti.d;for(i=0;istrlen(s[j])){t=s[i];s[i]=s[j];s[j]=t;}}main(){char*ss[]={“bcc”,“bbcc”,“xy”,“aaaacc”,“aabcc”);fun(ss,5);printf(“%s,%s\n”,ss[0],ss[4]);}程序的運行結(jié)果是()。A、xy,aaaaccB、aaaacc,xyC、bcc,aabccD、aabcc,bcc標準答案:A知識點解析:從main函數(shù)入手,定義了一個一維數(shù)組并賦初值,接著調(diào)用函數(shù)fun(),函數(shù)的功能是:比較數(shù)組中各元素的長度,按元素長度從小到大的順序排列元素,所以執(zhí)行fun(SS,5)函數(shù)后,*ss[]={"xy","bcc","bbcc""aabcc""aaaacc"},所以調(diào)用printf函數(shù)輸出ss[0],ss[4]的值分別為xy,aaaacc。33、若已定義:inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0≤i≤9,則對a數(shù)組元素不正確的引用是()。A、a[p-a]B、*(&a[i])C、p[i]D、a[10]標準答案:D知識點解析:此題考查對一維數(shù)組的引用。對于已定義的數(shù)組a[M],數(shù)組元素的正確引用必須滿足下標小于M且為正整數(shù)。選項D)中下標值出現(xiàn)溢出。34、以下選項中可用作C程序合法實數(shù)的是()。A、.1e0B、3.0e0.2C、E9D、9.12E標準答案:A知識點解析:C程序的合法實數(shù)有兩種表示形式,一種是小數(shù)形式,另一種是指數(shù)形式,對于用指數(shù)形式表示的實數(shù)來說,需要注意的是字母e或E之前必須要有數(shù)字,且字母e或E后面的指數(shù)必須為整數(shù),所
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度二手摩托車交易與二手配件市場合作協(xié)議4篇
- 二零二五版漫畫IP授權(quán)影視改編合同4篇
- 2025年酒糟銷售與生態(tài)農(nóng)業(yè)合作合同2篇
- 二零二五版新能源企業(yè)股權(quán)收購及戰(zhàn)略投資合同2篇
- 二零二五年度錨具行業(yè)節(jié)能減排合作協(xié)議4篇
- 2025年度跨境電商代理合作協(xié)議書4篇
- 2025年度高速公路服務(wù)區(qū)場地平整與商業(yè)設(shè)施建設(shè)合同3篇
- 二零二五年度船舶股權(quán)轉(zhuǎn)讓與船舶維修配件供應(yīng)協(xié)議4篇
- 二零二五百貨公司員工培訓與福利保障合同3篇
- 2025年度城市綠化工程項目承包合同生態(tài)環(huán)保責任落實辦法4篇
- 2025屆北京巿通州區(qū)英語高三上期末綜合測試試題含解析
- 公婆贈予兒媳婦的房產(chǎn)協(xié)議書(2篇)
- 煤炭行業(yè)智能化煤炭篩分與洗選方案
- 2024年機修鉗工(初級)考試題庫附答案
- Unit 5 同步練習人教版2024七年級英語上冊
- 矽塵對神經(jīng)系統(tǒng)的影響研究
- 分潤模式合同模板
- 海南省汽車租賃合同
- 2024年長春醫(yī)學高等??茖W校單招職業(yè)適應(yīng)性測試題庫必考題
- (正式版)SHT 3046-2024 石油化工立式圓筒形鋼制焊接儲罐設(shè)計規(guī)范
- 2023年山東濟南市初中學業(yè)水平考試地理試卷真題(答案詳解)
評論
0/150
提交評論