版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
國家二級C語言機試(選擇題)模擬試卷6(共9套)(共270題)國家二級C語言機試(選擇題)模擬試卷第1套一、選擇題(本題共25題,每題1.0分,共25分。)1、以下敘述中正確的是A、C程序中的每…行只能寫一條語句B、簡單C語句必須以分號結(jié)束C、C語言程序中的注釋必須與語句寫在同一行D、C語句必須在一行內(nèi)寫完標準答案:B知識點解析:C語言的書寫格式自由,一行可寫多條語句,一條語句也可寫在不同行上。C語言注釋是比較自由的,可以寫在一行或者多行。C語言規(guī)定每條語句和數(shù)據(jù)定義的最后必須有一個分號,分號是C語句的必要組成部分。2、按照C語言規(guī)定的用戶標識符命名規(guī)則,不能出現(xiàn)在標識符中的是A、連接符B、大寫字母C、數(shù)寧字符D、下劃線標準答案:A知識點解析:在C語言中,合法標識符的命令規(guī)則是:標識符可以由字母、數(shù)字或下劃線組成,并且第一個字符必須為字母或下劃線。在C語言的標識符中,大寫字母和小寫字母被認為是兩個不同的字符。選項A是連字符,不在C語言規(guī)定的命名變量標識符的范圍內(nèi)。3、下列描述中,正確的是()。A、線性鏈表是線性表的鏈式存儲結(jié)構(gòu)B、棧與隊列是非線性結(jié)構(gòu)C、雙向鏈表是非線性結(jié)構(gòu)D、只有根結(jié)點的二叉樹是線性結(jié)構(gòu)標準答案:A知識點解析:根據(jù)數(shù)據(jù)結(jié)構(gòu)中各數(shù)據(jù)元素之間前后關(guān)系的復(fù)雜程度,一般將數(shù)據(jù)結(jié)構(gòu)分為兩大類型:線性結(jié)構(gòu)與非線性結(jié)構(gòu)。如果一個非空的數(shù)據(jù)結(jié)構(gòu)滿足下列兩個條件:①有且只有一個根結(jié)點;②每個結(jié)點最多有一個前件,也最多有一個后件。則稱該數(shù)據(jù)結(jié)構(gòu)為線性結(jié)構(gòu),又稱線性表。所以線性表、棧與隊列、線性鏈表都是線性結(jié)構(gòu),而二叉樹是非線性結(jié)構(gòu)。4、程序測試的目的是()。A、為被測程序設(shè)計正確的測試用例B、發(fā)現(xiàn)并改正程序中的錯誤C、發(fā)現(xiàn)程序中的錯誤D、改正程序中的錯誤標準答案:C知識點解析:程序測試是使用人工或自動手段來運行或測定某個系統(tǒng)的過程,其目的在于檢驗它是否滿足規(guī)定的需求或是弄清預(yù)期結(jié)果與實際結(jié)果之間的差別,即為發(fā)現(xiàn)錯誤而執(zhí)行程序的過程,而不是改正錯誤。故正確答案為C。5、數(shù)據(jù)流程圖(DFD圖)是A、軟件概要設(shè)計的工具B、軟件詳細設(shè)計的工具C、結(jié)構(gòu)化方法的需求分析工具D、面向?qū)ο蠓椒ǖ男枨蠓治龉ぞ邩藴蚀鸢福篋知識點解析:DFD(數(shù)據(jù)流圖Data-Flow-Diagram)是描述數(shù)據(jù)處理過程的工具,是需求理解的邏輯模型的圖形表示。它直接支持系統(tǒng)功能建模。在軟件詳細設(shè)計的過程階段,要對每個模塊規(guī)定的功能以及算法的設(shè)計給出適當?shù)乃惴枋觥3R姷倪^程設(shè)計工具有:圖形工具:程序流程圖,N-S,PAD,HIPO;表格工具:判定表:語言工具:PDL(偽碼)。6、若有以下程序main(){inta=-2,b=0;do{++b;}while(a++);printf("%d,%d\n",a,b);}則程序的輸出結(jié)果是A、0,2B、1,2C、1,3D、2,3標準答案:C知識點解析:由于a的初始值等于-2,所以while循環(huán)語言執(zhí)行三次結(jié)束,第一次a=-2,b=1,然后判斷循環(huán)條件a++非零,執(zhí)行第二次循環(huán)體a=-1,b=2,判斷循環(huán)條件非零,執(zhí)行循環(huán)體a=0,b=3,判斷循環(huán)條件為0,此時變量a的值等于1。7、下列特征中不是面向?qū)ο蠓椒ǖ闹饕卣鞯氖?)。A、多態(tài)性B、標識惟一性C、封裝性D、耦合性標準答案:D知識點解析:面向?qū)ο笤O(shè)計方法與面向過程設(shè)計方法有本質(zhì)的不同,其基本原理是:使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題。其特點包括:標識惟一性、多態(tài)性、封裝性、模塊獨立性、繼承和多態(tài)性好。8、數(shù)據(jù)字典(DD)所定義的對象都包含于()。A、軟件結(jié)構(gòu)圖B、方框圖C、數(shù)據(jù)流圖(DFD圖)D、程序流程圖標準答案:C知識點解析:數(shù)據(jù)字典(DD)是指對數(shù)據(jù)的數(shù)據(jù)項、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、數(shù)據(jù)存儲、處理邏輯、外部實體等進行定義和描述,其目的是對數(shù)據(jù)流程圖中的各元素做出詳細的說明。9、若有定義語句:intx=10;則表達式x-=x+x的值為()。A、-10B、-20C、0D、10標準答案:A知識點解析:考查復(fù)合賦值運算符。x-=x+x與x=x-(x+x)等價,所以輸出結(jié)果為A)。10、表達式:(int)((double)9/2)-9%2的值是A、0B、4C、3D、5標準答案:C知識點解析:這個表達式的計算過程為,首先求出9除以2的商等于4,再把其強制轉(zhuǎn)化為實型數(shù)據(jù)為4.0,然后再強制轉(zhuǎn)4,減去9對2求余數(shù)1,得到其結(jié)果等于3。11、以下不能用于描述算法的是A、程序語句B、E—R圖C、偽代碼和流程圖D、文字敘述標準答案:B知識點解析:E—R圖為實體.聯(lián)系圖,提供了表示實體型、屬性和聯(lián)系的方法,用來描述現(xiàn)實世界的概念模型。描述算法的有流程圖,盒圖,偽代碼,文字描述以及程序代碼描述。12、一個教師可講授多門課程,一門課程可由多個教師講授。則實體教師和課程間的聯(lián)系是()。A、1:1聯(lián)系B、1:m聯(lián)系C、m:1聯(lián)系D、m:n聯(lián)系標準答案:D知識點解析:因為一個教師可講授多門課程,而一門課程又能由多個老師講授所以他們之間是多對多的關(guān)系,可以表示為m:n。13、以下程序的輸出結(jié)果是()。#includemain(){chara=4;printf(’’%d’’,a=a<<1);}A、8B、16C、64D、4標準答案:A知識點解析:本題主要考查按位左移運算。左移一位等于乘以2,a=4的二進制為00000100,a<<1后為00001000,其值為十進制數(shù)值8。14、以下選項中與if(a==1)a=b;elsea++;語句功能不同的switch語句是A、switch(a==1){case0:a=b;break;case1:a++;}B、switch(a){case1:a=b;break;default:a++;}C、switch(a){default:a++;break;case1:a=b;}D、switch(a==1){case1:a=b;break;case0:a++;}標準答案:A知識點解析:if語句的含義是如果a的值為1,將b的值賦給a,否則將a的值自增1?Swich(a==1)中表達式a==1的結(jié)果如果為真即為1,則從case1開始執(zhí)行,直到遇到break語句跳出switch語句,如果a==1的結(jié)果如果為假即0,則從case0開始執(zhí)行,所以與題干含義執(zhí)行操作相反的是選項A中的語句。15、以下敘述中正確的是A、對于邏輯表達式:a++&&b++,設(shè)a的值為0,則求解表達式的值后,b的值會發(fā)生改變B、對于邏輯表達式:a++||b++,設(shè)a的值為1,則求解表達式的值后,b的值會發(fā)生改變C、關(guān)系運算符的結(jié)果有三種:0,1,-1D、else不是一條獨立的語句,它只是if語句的一部分標準答案:D知識點解析:else不能單獨使用,和if匹配使用,要注意邏輯與運算和邏輯或運算出現(xiàn)的短路現(xiàn)象,關(guān)系運算結(jié)果僅有0和1。16、若有以下程序main(){inta=6,b=0,c=0;for(;a;){b+=a;a-=++C:}printf("%d,%d,%d\n",a,b,c);}則程序的輸出結(jié)果是A、1,14,3B、0,18,3C、0,14,3D、0,14,6標準答案:C知識點解析:循環(huán)體執(zhí)行三次,a初值6,第一次執(zhí)行循環(huán)體,b=6,a=5。繼續(xù)執(zhí)行循環(huán)體,b=11,a=3,第三次執(zhí)行循環(huán)體,b=14,a=0,循環(huán)退出。17、有以下程序#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,6B、6,5,4,3,2,1,C、4,5,6,1,2,3,D、1,2,3,3,2,1,標準答案:B知識點解析:在程序中定義了一個整型數(shù)組a[6],并對它賦初值,并以寫入的方式打開了文件d2.dat。然后利用一個for循環(huán)把數(shù)組a中的元素數(shù)據(jù)寫入文件d2.dat中,調(diào)用函數(shù)rewind把將文件內(nèi)部的位置指針重新指向一個文件的開頭,再利用for循環(huán)語句把文件中的數(shù)據(jù)依次寫入到倒序排列的數(shù)組a中,最后輸出數(shù)組a中的數(shù)組元素。18、以下敘述中錯誤的是A、函數(shù)的返回值類型不能是結(jié)構(gòu)體類型,只能是簡單類型B、只要類型相同,結(jié)構(gòu)體變量之間可以整體賦值C、可以通過指針變量來訪問結(jié)構(gòu)體變量的任何成員D、函數(shù)可以返回指向結(jié)構(gòu)體變量的指針標準答案:A知識點解析:函數(shù)的返回值類型可以是結(jié)構(gòu)體類型。結(jié)構(gòu)體變量之間可以相互復(fù)制。19、下面不屬于軟件設(shè)計階段任務(wù)的是A、軟件總體設(shè)計B、算法設(shè)計C、制定軟件確認測試計劃D、數(shù)據(jù)庫設(shè)計標準答案:C知識點解析:從技術(shù)觀點上看,軟件設(shè)計包括軟件結(jié)構(gòu)設(shè)計、數(shù)據(jù)設(shè)計、接口設(shè)計、過程設(shè)計。所以A、B、D正確,C為軟件測試階段的任務(wù)。20、有以下程序#include<stdio.h>voidmain(){intc=0,k;for(k=1;k<3;k++)switch(k){default:c+=k;case2:c++;break;case4:c+=2;break;}printf("%d\n",c);}A、9B、7C、5D、3標準答案:D知識點解析:在這段程序中,整型變量c的初始值賦為0,在第一次執(zhí)行for循環(huán)語句時,因為此時變量k的值等于1,所以在switch語句中首先執(zhí)行default語句,給變量c的值加1,因為在default語句后面沒有break語句,所以就會接著執(zhí)行case2這條語句,再給變量c的值加1,其值變?yōu)?,這時退出switch語句塊,進入第二次for循環(huán),此時k的值等于2,就會執(zhí)行switch語句塊中的case2這條語句,再給變量c的值加1,這時變量c的值就是3,此時退出switch語句塊,循環(huán)變量k的值加1,成為3,此時已不再滿足循環(huán)條件,執(zhí)行程序中的最后一條語句,把變量c的值在屏幕上輸出。21、有以下程序main(){inti=1;i=i^i;printf("%d\n",i);}程序運行后的輸出結(jié)果是A、-1B、0C、1D、7標準答案:B知識點解析:按位異或(n)的運算規(guī)則是:參與運算的兩個運算數(shù)中相對應(yīng)的二進制位上,若數(shù)相同,則該位的結(jié)果為0:若數(shù)不同,該位的結(jié)果為1。本題中表達式i^i的值必為0,因為i的各個位置的二進制值相同。22、下列函數(shù)的功能是voidfun(char*a,char*b){while((*b=*a)!=’\0’){a++;b++;}}A、將a所指字符串賦給b所指空間B、使指針b指向a所指字符串C、將a所指字符串和b所指字符串進行比較D、檢查a和b所指字符串中是否有’\0’標準答案:A知識點解析:While循環(huán)條件為:(*b=*a)!=’\0’,執(zhí)行時先把指針a所指向的字符賦給指針b所在內(nèi)存單元,如果該字符不是結(jié)束標識"\0",執(zhí)行循環(huán)體a++;b++;,指針a、b分別指向下一個字符單元。再判斷循環(huán)條件,如果成立,繼續(xù)把指針a所指向的字符賦給指針b所在內(nèi)存單元,直到遇到結(jié)束標識為止。因此A選項正確。23、以下選項中能表示合法常量的是A、1,200B、1.5E2.0C、’\’D、\007標準答案:D知識點解析:A選項中整型常量應(yīng)表示為1200,不能包含","。B選項中E后面的指數(shù)必須為整數(shù)。C選項中轉(zhuǎn)義字符以"\"開始,若要表示字符"\",應(yīng)寫為"\\"。24、軟件生命周期是指()。A、軟件的運行和維護B、軟件的需求分析、設(shè)計與實現(xiàn)C、軟件的實現(xiàn)和維護D、軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用退役的過程標準答案:D知識點解析:通常,將軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用退役的過程稱為軟件生命周期。也就是說,軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用為止的整個時期都屬于軟件生命周期。25、若有語句:void*P=malloc(80);,則以下敘述錯誤的是()。A、可以通過指針P直接訪問用malloc開辟的這塊內(nèi)存B、p所指內(nèi)存可以通過強制類型轉(zhuǎn)換當作具有20個int型元素的一維數(shù)組來使用C、p所指內(nèi)存可以通過強制類型轉(zhuǎn)換當作具有10個double型元素的一維數(shù)組來使用D、p所指內(nèi)存可以通過強制類型轉(zhuǎn)換當作具有80個char型元素的一維數(shù)組來使用標準答案:A知識點解析:題意中使用malloc()函數(shù)分配了80個字節(jié)的內(nèi)存單元,void指針p指向該內(nèi)存單元,在C語言中,void*不能直接使用,必須利用強制類型轉(zhuǎn)換將其轉(zhuǎn)成所需的類型才能使用,選項A錯誤;int類型的元素占4個字節(jié),所以可以將p指向的內(nèi)存強制類型轉(zhuǎn)換成具有20個int類型的一維數(shù)組來使用,同理,也可以強制類型轉(zhuǎn)換成10個double類型的一維數(shù)組,或強制類型轉(zhuǎn)換成80個char類型的一維數(shù)組,選項B、C、D正確,本題答案為A。國家二級C語言機試(選擇題)模擬試卷第2套一、選擇題(本題共24題,每題1.0分,共24分。)1、設(shè)循環(huán)隊列的存儲空間為Q(1:m),初始狀態(tài)為空?,F(xiàn)經(jīng)過一系列正常的人隊與退隊操作后,front=m,rear=m-1,此后從該循環(huán)隊列中刪除一個元素,則隊列中的元素個數(shù)為()。A、m-1B、m-2C、0D、1標準答案:B知識點解析:在循環(huán)隊列中,如果rear-front>0,則隊列中的元素個數(shù)為rear-front個;如果rear-front<0,則隊列中的元素個數(shù)為rear-front+m。該題中m-1<m,即rear-front<0,則該循環(huán)隊列中的元素個數(shù)為(m-1)-m+m-1。此后從該循環(huán)隊列中刪除一個元素,則隊列中的元素個數(shù)為m-1-1=m-2。2、下面對“對象”概念描述正確的是()。A、屬性就是對象B、操作是對象的動態(tài)屬性C、任何對象都必須有繼承性D、對象是對象名和方法的封裝體標準答案:B知識點解析:對象是由描述該對象屬性的數(shù)據(jù)以及可以對這些數(shù)據(jù)施加的所有操作封裝在一起構(gòu)成的統(tǒng)一體。對象可以做的操作表示它的動態(tài)行為,通常也稱為方法或服務(wù),屬性即對象所包含的信息。對象名唯一標識一個對象。對象可以有繼承性,但并不是任何對象都必須有繼承性。3、以下敘述中正確的是A、在C程序中的八進制和1十六進制,可以是浮點數(shù)B、八進制數(shù)的開頭要使用英文字母o,否則不能與十進制區(qū)分開C、整型變量可以分為int型、short型、long型和unsigned型四種D、英文大寫字母X和英文小寫字母X都可以作為二進制數(shù)字的開頭字符標準答案:C知識點解析:整型變量分為以下4種類型:①基本型:以int表示。②短整型:以shortint表示,或以short表示。③長整型:以longint表示,或以long表示。④無符號型:以unsignedint表示,選項C)正確,實型常量僅有十進制表示形式,八進制以數(shù)字0開頭,十六進制開頭為0x或者0X,不是二進制。4、以下程序段給數(shù)組所有元素輸入數(shù)據(jù)()。main(){intt[10],j=0;while(j<10)scanf("%d",);}A、&t[j+1];B、t+(j++);C、&t[++j];D、t+j;標準答案:B知識點解析:本題利用while循環(huán)給數(shù)組t的所有元素賦值,橫線處應(yīng)該填寫數(shù)組元素的地址。選項A)能給t[1]賦值;選項D)只能給t[0]賦值;選項C)可以給下標為1~10的數(shù)組元素賦值,但沒給a[0]賦值,還使元素的下標越界,因此都不正確。只有選項B)是正確的,在什(j++)中,a代表數(shù)組的首地址,當j為0時,輸入項是t[0]的地址,第二次循環(huán)時,輸入項是t[1]的地址,依次類推,直到最后一項t[9]的地址,j為10時退出循環(huán)。5、有以下程序main(){chara=’H’;a=(a>=’A’&&a<=’Z’)?(a+32):a;printf("%cha",a);}程序運行后的輸出結(jié)果是A、HB、AC、hD、a標準答案:C知識點解析:表達式a=(a>=’A’&&a<=’Z’)?(a+32):a,為條件表達式,如果a是大寫字符,則轉(zhuǎn)換為小寫字符存放到a中,否則不變。6、有以下程序:#includemain(){intk=一17:prinff(“%d,%0,%x\n”,k,1一k,1一k);}程序的運行結(jié)果是()。A、一17,22,12B、一17,12,22C、一17,一22,一12D、17,22,12標準答案:A知識點解析:整型常量有3種表示方法,分別是十進制數(shù)表示法、八進制數(shù)表示法和十六進制數(shù)表示法。十進制整常量沒有前綴,輸出格式控制符為%d;八進制整常量以0作為前綴,輸出格式控制符為%0;十六進制整常量以0X或0x作為前綴,輸出格式控制符為%x。1一k=18,整型常量18用八進制表示為22,十六進制表示為12,故A選項正確。7、數(shù)據(jù)流圖用于抽象描述一個軟件的邏輯模型,數(shù)據(jù)流圖由一些特定的圖符構(gòu)成。下面圖符名標識的圖符不屬于數(shù)據(jù)流圖合法圖符的是A、控制流B、加工C、數(shù)據(jù)存儲D、源和潭標準答案:A知識點解析:數(shù)據(jù)流圖中的主要圖形元素有加工(轉(zhuǎn)換)、數(shù)據(jù)流、存儲文件(數(shù)據(jù)源)、源和潭等。8、有以下程序:main(){intx=1,y=0,a=0,b=0;switch(x){ease1:switch(y)}}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選項。9、若在定義語句:inta,b,c,*p=&c;接著執(zhí)行以下選項中的語句,則能正確執(zhí)行的語句是A、scanf("%d%d%d",a,b,c);B、scanf("%d",a,b,c);C、scanf("%d”,p);D、scanf("%d",&p);標準答案:C知識點解析:程序語句inta,b,c,*p=&c;定義了三個整型變量a,b,c,和一個整型指針變量p,并且把變量c的地址賦給p。scanf函數(shù)的一般形式為“scanf(“格式控制字符串”,地址列表)”,其中的地址列表應(yīng)當是存放輸入數(shù)據(jù)變量的地址。10、下面屬于整數(shù)類Ⅰ實例的是A、-101B、101C、101E02D、123.456標準答案:A知識點解析:整數(shù)的全體構(gòu)成整數(shù)集,整數(shù)集是一個數(shù)環(huán)。在整數(shù)系中,零和正整數(shù)統(tǒng)稱為自然數(shù)。-1、-2、-3、…、-n、…(n為非零自然數(shù))為負整數(shù)。則正整數(shù)、零與負整數(shù)構(gòu)成整數(shù)系。整數(shù)不包括小數(shù)、分數(shù)。選項A是負數(shù),屬于整數(shù);選項B是字符串;選項C是科學(xué)計數(shù)法;選項D是小數(shù)。11、以下選項中關(guān)于C語言常量的敘述錯誤的是A、常量分為整型常量、實型常量、字符常量和字符串常量B、經(jīng)常被使用的變量可以定義成常量C、常量可分為數(shù)值型常量和非數(shù)值型常量D、所謂常量,是指在程序運行過程中,其值不能被改變的量標準答案:B知識點解析:常量指在程序運行過程中,其值不能被改變的量。常量分為整型常暈(即整常數(shù))、實型常量、字符型常量和字符串常量。常量也可以拔數(shù)據(jù)類型分為為數(shù)據(jù)常量和非數(shù)據(jù)常量。變量是指在程序運行過程中,其值能被改變的量。12、以下選項中,沒有編譯錯誤的是A、charstr3[]={’d’,’e’,’b’,’u’,’g’,’\0’’};B、charstrl[5]=’’pass’’,str2[6];str2=str1;C、charname[10];name=’’china’’:D、charstr4[];str4=’’helloworld’’;標準答案:A知識點解析:選項A是定義了字符數(shù)組str3[],并對其賦初值。選項B中語句str2=strl非法,字符數(shù)組不能直接賦值。選項C,D和選項B一致。13、設(shè)有定義:intx=0,*p;緊接著的賦值語句正確的是A、*p=NULL;B、p=NULL;C、p=x;D、*p=x;標準答案:B知識點解析:定義指針變量時,必須將指針變量初始化為NuLL(為空),否則,如果不賦給它地址,系統(tǒng)會隨機給它分配一個地址。14、若有以下程序#include<stdio.h>main(){inta=-11,b=10;a/=b/=-4:printf("%d%d\n",a,b);}則程序的輸出結(jié)果是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。15、有以下程序#include#includevoidfun(chars[][10],intn){chart;inti,j;for(i=0;is[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]);}程序的運行結(jié)果是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個字符串的首字符進行從小到大的排序,不影響各個字符串另外的字符。所以排序結(jié)束后,5個字符串的第一個字符依次變?yōu)閍、a、b、b和x;最后輸出第1個和第4個字符串。16、有以下程序#includemain(){intc[6]={10,20,30,40,50,60},*p,*s;P=c;S=&c[5];printf("%d\n",s-P);}程序運行后的輸出結(jié)果是A、50B、6C、5D、60標準答案:C知識點解析:主函數(shù)中指針變量P指向數(shù)組c,s保存了數(shù)組最后一個元素的地址,那么s-P為兩個地址之間的元素差5。17、以下程序的主函數(shù)中調(diào)用了其前面定義的fun函數(shù)#include<stdio.h>……main(){doublea[15],k;k=fun(a);}則以下選項中錯誤的fun函數(shù)首部是A、doublefun(doublea[15])B、doublefun(double*a)C、doublefun(doublea[])D、doublefun(doublea)標準答案:D知識點解析:本題考查函數(shù)的定義和調(diào)用。根據(jù)對fun函數(shù)的調(diào)用可知,fun函數(shù)的返回值為double類型的,輸入?yún)?shù)是一個double類型的地址(指針),因此選項D)錯誤。18、有以下程序#includemain(){intx=35,B;charz=’B’;B=((x)&&(z<’b’));printf("%d\n",B);}程序運行后的輸出結(jié)果是A、1B、0C、35D、66標準答案:A知識點解析:本題重點考察邏輯運算符和關(guān)系運算符的相關(guān)知識,已知變量x為整型變量,并賦值為35,變量z為字符型變量,并賦值為’B’。語句B=((x)&&(z<’b’));中,(x)的值為1,’B’的asscii碼小于’b’的asscii碼,所以(z<’b’)的值也為1,1&&1結(jié)果為1。因此A選項正確。19、有以下程序#includemain(){inta[]={10,20,30,40},*p=a,i;for(i=0;i<=3;i++){a[i]=*p;p++;}printf("%d\n",a[2]);}程序運行后的輸出結(jié)果是A、20B、30C、10D、40標準答案:B知識點解析:因為指針變量p的初始值指向數(shù)組a,所以執(zhí)行for循環(huán)語句后,數(shù)組a中的元素的值不變。20、有以下程序main(){inti=1;i=i^i;printf("%d\n",i);}程序運行后的輸出結(jié)果是A、-1B、0C、1D、7標準答案:B知識點解析:按位異或(n)的運算規(guī)則是:參與運算的兩個運算數(shù)中相對應(yīng)的二進制位上,若數(shù)相同,則該位的結(jié)果為0:若數(shù)不同,該位的結(jié)果為1。本題中表達式i^i的值必為0,因為i的各個位置的二進制值相同。21、有以下程序#includemain(){FILE*fp;inti,a[6]={1,2,3,4,5,6},k;fp=fopen("data.dat","w+");fprintf(fp,"%d\n",a[0]);for(i=1;i<6;i++){fseek(fp,0L,0);fscanf(fp,"%d",&k);fseek(fp,0L,0);fprintf(fp,"%d\n",a[i]+k);}rewind(fp);fscanf(fp,"%d",&k);fclose(fp);printf("%d\n",k);}程序的運行結(jié)果是()。A、21B、6C、123456D、11標準答案:A知識點解析:該段代碼以讀寫的方式打開文件data.dat,然后把數(shù)組a的第一個元素寫入文件,接下來的for循環(huán)是不斷讀取當前文件中的數(shù)據(jù),將該數(shù)據(jù)和數(shù)組a的下一個元素累加后又寫入到文件當中(語句"fseek(fp,0L,0);"和"rewind(fp)"的作用是將文件指針移動至文件首),所以最終文件內(nèi)記錄的是數(shù)組a中所有元素之和,答案選A。22、有以下程序#include<stdio.h>main(){FILE*fp;charstr[10];fp=fopen("myfile.dat","w");fputs("abc",fp);fclose(fp);fp=fopen("myfile.dat","a+");fprintf(fp,"%d",28);rewind(fp);fscanf(fp,"%s",str);puts(str);fclose(fp);}程序運行后的輸出結(jié)果是A、28cB、abc28C、abcD、因類型不一致而出錯標準答案:B知識點解析:在程序中首先把字符串a(chǎn)bc寫入到文件myfile.dat中,然后再把整數(shù)28追加到字符串a(chǎn)bc的后面,最后把文件myfile.dat的內(nèi)容讀入到字符串str中,并把其內(nèi)容輸出。23、有以下程序#includemain(){intx=8;for(;x>0;x--){if(x%3){printf("%d,",x--);continue;}printf("%d,",--x);}}程序的運行結(jié)果是A、7,4,2,B、8,7,5,2,C、9,7,6,4,D、8,5,4,2,標準答案:D知識點解析:coutinue的作用是跳出循環(huán)體中剩余的語句而進行下一次循環(huán)。第一次循環(huán)x的值為8,循環(huán)體中if條件成立,打印x的值8后將x減1,再執(zhí)行continue語句,跳出本次循環(huán)。第二次判斷循環(huán)條件時,x的值變?yōu)?,不滿足循環(huán)體內(nèi)if條件,執(zhí)行打印--x的操作,即打印5后跳出循環(huán)。第三次判斷循環(huán)條件時x的值為4,滿足循環(huán)體中if條件,執(zhí)行打印x--的操作,即打印4,后將x值減一,執(zhí)行continue語句,跳出本次循環(huán)。第四次判斷循環(huán)條件時x的為2,滿足循環(huán)體中if條件,打印x--,即打印2后將x減一,執(zhí)行continue語句,跳出本次循環(huán)。在進行for條件表達式中第三個表達式x--的操作后x的值為0,不滿足條件結(jié)束循環(huán)。所以打印結(jié)果為8,5,4,2,。24、將E-R圖轉(zhuǎn)換為關(guān)系模式時,實體和聯(lián)系都可以表示為()。A、屬性B、鍵C、關(guān)系D、域標準答案:C知識點解析:從E-R圖到關(guān)系模式的轉(zhuǎn)換是比較直接的,實體與聯(lián)系都可以表示成關(guān)系,E-R圖中屬性也可以轉(zhuǎn)換成關(guān)系的屬性。25、設(shè)變量均已正確定義,若要通過scanf("%d%c%d%c",&a1,&c1,&a2,&c2);語句為變量a1和a2賦數(shù)值10和20,為變量c1和c2賦字符X和Y。以下所示的輸入形式中正確的是(注:□代表空格字符)A、10□X<回車>20□Y<回車>B、10□X20□Y<回車>C、10X<回車>20Y<回車>D、10□X□20□Y<回車>標準答案:知識點解析:輸入數(shù)據(jù)的格式必須與scanf()的格式控制串完全匹配,如果A、B、C選項中在數(shù)字10后面均輸入了空格,則會將空格賦給變量c1,而不是把X賦給c1,所以選擇C選項。國家二級C語言機試(選擇題)模擬試卷第3套一、選擇題(本題共25題,每題1.0分,共25分。)1、以下選項中非法的C語言字符常量是A、’\b’B、’\007’C、’aa’D、’\xaa’標準答案:C知識點解析:一個字符常量代表ASCII字符集中的一個字符,在程序中用單引號把一個字符括起來作為字符常量。2、在調(diào)用函數(shù)時,如果參數(shù)是簡單變量,它與對應(yīng)形參之間的數(shù)據(jù)傳遞方式是()。A、單向值傳遞B、地址傳遞C、由實參傳給形參,再由形參傳回實參D、傳遞方式由用戶指定標準答案:A知識點解析:C語言規(guī)定,簡單變量或數(shù)組元素為實參時,是單向值傳遞,即實參可以改變形參的值,但形參不能改變實參的值。3、數(shù)據(jù)庫應(yīng)用系統(tǒng)中的核心問題是A、數(shù)據(jù)庫設(shè)計B、數(shù)據(jù)庫系統(tǒng)設(shè)計C、數(shù)據(jù)庫維護D、數(shù)據(jù)庫管理員培訓(xùn)標準答案:A知識點解析:在數(shù)據(jù)庫應(yīng)用系統(tǒng)中的一個核心問題就是設(shè)計一個能滿足用戶要求,性能良好的數(shù)據(jù)庫,這就是數(shù)據(jù)庫設(shè)計。所以數(shù)據(jù)庫設(shè)計是數(shù)據(jù)庫應(yīng)用的核心。4、合法的C語言標識符是()。A、_1_B、2_8C、voidD、unsigned標準答案:A知識點解析:用戶的標識符只能由字母或下劃線開始,其他任何字符開始均會出錯。一般強調(diào)文見其義的命名方法。但是C語言中的保留字不能用作用戶的標識符。而選項C和D全部為保留字,選項B中以數(shù)字開頭,這些都不正確。5、以下敘述中錯誤的是()。A、gets函數(shù)用于從終端讀入字符串B、getehar函數(shù)用于從磁盤文件讀入字符C、fputs函數(shù)用于把字符串輸出到文件D、fwrite函數(shù)用于以二進制形式輸出數(shù)據(jù)到文件標準答案:B知識點解析:本題考查字符處理函數(shù)和文件讀寫函數(shù),屬于基礎(chǔ)知識。其中B選項的getchar函數(shù)用于從終端讀入字符。6、有兩個關(guān)系R,S如下,由關(guān)系R和S通過運算得到關(guān)系T,則所使用的操作為()。A、并B、自然連接C、笛卡爾積D、差標準答案:D知識點解析:由關(guān)系可以看出,關(guān)系T是由關(guān)系R中減去關(guān)系R和關(guān)系S共有的元組得到的,所以答案選擇D。7、數(shù)據(jù)庫設(shè)計過程不包括A、概念設(shè)計B、邏輯設(shè)計C、物理設(shè)計D、算法設(shè)計標準答案:D知識點解析:數(shù)據(jù)庫設(shè)計的四個階段是:需求分析、概念設(shè)計、邏輯設(shè)計和物理設(shè)計。8、以下關(guān)于邏輯運算符兩側(cè)運算對象的敘述中正確的是()。A、可以是任意合法的表達式B、只能是整數(shù)0或非0整數(shù)C、可以是結(jié)構(gòu)體類型的數(shù)據(jù)D、只能是整數(shù)0或1標準答案:A知識點解析:邏輯運算符兩側(cè)的運算對象可以任意合法的表達式,最終會根據(jù)兩側(cè)表達式計算出的數(shù)值來判定該邏輯表達式為真(1)或假(0)。答案選A。9、關(guān)于字符數(shù)組定義中存在語法錯誤的是()。A、charss[][20]={’’right’’};B、char*ss[6];ss[1]=’’right?’’;C、char*ss[]={’’right?’’};D、charss[6][20];ss[1]=’’right?’’;標準答案:D知識點解析:本題考查字符數(shù)組,選項D中定義了二維數(shù)組ss,可以用于存儲字符串,但是字符串的存儲不能通過賦值,僅可以初始化或者輸入得到,而選項C和A不同,選項B為指針數(shù)組,對于指針變量可以保存常量字符串的地址。10、C語言程序中,運算對象必須是整型數(shù)的運算符是A、/B、%C、&&D、*標準答案:B知識點解析:%要求參與運算的運算量為整型,其他三個運算符對于參與運算的運算量沒有直接要求。11、關(guān)于結(jié)構(gòu)體說明和變量定義中,正確的是()。A、typedefstructabc{intn;doublem;}ABC;ABCx,y;B、structabc{intn;floatm};structabcx,y;C、structABC{intn;floatm;}structABCx,y;D、structabc{intn;floatm;};abcx,y;標準答案:A知識點解析:結(jié)構(gòu)體的定義是正常的C語言語句。選項B中結(jié)構(gòu)體定義中每個成員后面的分號都不能省略,選項C結(jié)構(gòu)體類型定義完畢后的}外沒加分號,選項D中定義變量要加上關(guān)鍵字struct。12、以下不構(gòu)成無限循環(huán)的語句或語句組是A、n=0;do{++n;}while(n<=0);B、n=0;while(1){n++;}C、n=10;while(n);{n--;}D、for(n=0,i=1;;i++)n+=i;標準答案:A知識點解析:選項B)中while(1)永遠為真所以進入死循環(huán),選項C)中while(n=10)同理,選項D)中for循環(huán)沒有循環(huán)限定條件也將進入無限循環(huán),只有選項A)中while(n<=0)循環(huán)判定成立,循環(huán)將不進入無限循環(huán)。13、以下敘述中正確的是A、break語句不能用于提前結(jié)束for語句的本層循環(huán)B、continue語句使得整個循環(huán)終止C、使用break語句可以使流程跳出switch語句體D、在for語句中,continue與break的效果是一樣的,可以互換標準答案:C知識點解析:用break語句可以使程序流程跳出switch語句體,也可用break語句在循環(huán)結(jié)構(gòu)中終止循環(huán)體,從而提前結(jié)束循環(huán)。而continue語句的作用是結(jié)束本次循環(huán),即跳過本次循環(huán)體中continue語句后面的語句,立刻進行下一次的循環(huán)條件判斷,可以理解為僅結(jié)束本次循環(huán)。14、若變量已正確定義for(x=0,y=0;(y!=99&&x<4);x++)則以上for循環(huán)()。A、執(zhí)行4次B、執(zhí)行3次C、執(zhí)行無限次D、執(zhí)行次數(shù)不定標準答案:A知識點解析:for語句的一般形式為"for(表達式1;表達式2;表達式3){循環(huán)體語句}",其執(zhí)行流程是先計算表達式1,之后計算表達式2,根據(jù)表達式2的值來判定是否進行循環(huán),若為真,則執(zhí)行循環(huán)體,循環(huán)體執(zhí)行完畢之后再計算表達式3的值。該循環(huán)的循環(huán)條件是(y!=99&&x<4),每次循環(huán)后x自增1,x由0自增到3,循環(huán)執(zhí)行4次,答案選A。15、下列選項中,能夠滿足“只要字符串s1等于字符串s2,則執(zhí)行ST”要求的是A、if(s1==s2)ST;B、if(strcpy(s1,s2)==1)ST;C、if(strcmp(s2,s1)==0)ST;D、if(s1-s2==0)ST;標準答案:C知識點解析:在C語言中要對兩個字符串的大小進行比較,就需要調(diào)用字符串比較函數(shù)strcmp(),如果這個函數(shù)的返回值等于0,說明兩個字符串相等。16、有以下程序#includemain(){FILE*pf;char*s1="China",*s2="Beijing";pf=fopen("abc.dat","wb+");fwrite(s2,7,1,pf);rewind(pf);/*文件位置指針回到文件開頭*/fwrite(s1,5,1,pf);fclose(pf);}以上程序執(zhí)行后abc.dat文件的內(nèi)容是A、ChinangB、ChinaC、ChinaBeijingD、BeijingChina標準答案:A知識點解析:本題主要查函數(shù)fwtite的使用。函數(shù)fwrite的凋用形式為:intfwrite(chat*pt,unsignedsizc,unsigncdn,F(xiàn)ILE*fp);其功能是把pt所指向的n*size個字節(jié)輸出到fn所指文件中。在本題中fwritc(s2,7,1,pf);的功能是把字符串“Beijing”輸入到文件abc.dat中,然后調(diào)用rewind(pf),把文件位置指針回到文件開頭,再調(diào)剛fwrite(s1,5,1,pf)把字符串“china”寫入到文件abc.dat中,所以此時文件abc.dat的內(nèi)容為Chinang。17、有以下程序#include<stdio.h>main(){inti,j,m=55;for(i=1;i<=3;i++)for(j=3;j<=i;j++)m=m%j;printf("%d\n",m);}程序的運行結(jié)果是A、0B、1C、2D、3標準答案:B知識點解析:在程序中,內(nèi)層循環(huán)判斷條件為““j<=i”,而i的初值為3,故當外層循環(huán)變量i的值為1和2時,內(nèi)層循環(huán)體都不會被執(zhí)行。只有當i和j都等于3時循環(huán)才會執(zhí)行一次。因為m的值為55對3求余結(jié)果為1。18、有以下程序#include#defineN4voidfun(inta[][N],intb[]){inti;for(i=0;iA、-3,-1,1,3,B、-12,-3,0,0,C、0,1,2,3,D、-3,-3,-3,-3,標準答案:A知識點解析:函數(shù)fun()的功能是計算b[i]:b[0]=a[0][0]-a[0][3]=-3,b[1]=a[1][1]-a[1][2]=-1,b[2]=a[2][2]-a[2][1]=1,b[3]=a[3][3]-a[3][0]=3,所以計算得到的y值為選項A)。19、有以下程序#include<stdio.h>intfun(inta,intb){returna+b;}main(){intx=6,y=7,z=8,r;r=fun(fun(x,y),z--);printf("%d\n",r);}程序運行后的輸出結(jié)果是A、15B、21C、20D、31標準答案:B知識點解析:本題考查函數(shù)的調(diào)用,函數(shù)fun功能為求兩個數(shù)據(jù)的和。主函數(shù)中表達式r=fun(fun(x,y),z--),首先計算內(nèi)層調(diào)用fun(x,y),計算結(jié)果為13,然后外層調(diào)用fun(13,8),結(jié)果為21。20、有以下程序#include<stdio.h>intf(intx,inty){return((y-x)*x);}main(){inta=3,b=4,c=5,d;d=f(f(a,b),f(a,c));printf("%d\n",d);}程序運行后的輸出結(jié)果是A、10B、8C、9D、7標準答案:C知識點解析:本題考查函數(shù)的嵌套調(diào)用。首先計算f(a,b)與f(a,c),f(a,b)=(b-a)*a=3,f(a,c)=(c-a)*a=6,然后計算f(3,6)=(6-3)*3=9。21、若有以下程序#include<stdio.h>voidsp(int*a){intb=2;main(){intk=3,*p=&k;a=&b;sp(p);*a=*a*2;printf("%d,%d\n",k,*p);printf("%d,",*a);}}則程序的輸出結(jié)果是A、4,3,4B、4,3,3C、6,3,6D、6,6,6標準答案:B知識點解析:主函數(shù)中定義指針變量p指向k,調(diào)用函數(shù)sp(p),將k的地址傳遞給形參指針a,函數(shù)轉(zhuǎn)到sp運行,a指向b的地址,表達式*a=*a*2,相當于b=b*2,得到*a的數(shù)據(jù)4輸出。函數(shù)調(diào)用結(jié)束,此時a和b的空間撤銷,而對實參k和p的值并沒有改變,仍舊是3。22、有以下程序#include<stdio.h>voidfun(char**p){++p;printf("%s\n",*p);}main(){char*a[]=("Morning","Afternoon","Evening","Night");fun(a);}程序的運行結(jié)果是A、fternoonB、MorningC、orningD、Afternoon標準答案:D知識點解析:在程序中,指針的指針變量a和p都是指向字符串的指針。執(zhí)行fun(a)語句時,p指向的是字符串數(shù)組a的第一個字符串“Morning”,p自加1之后,*p指向了字符串數(shù)組a的第2個字符串“Afternoon”。23、設(shè)有定義charstr[]="Hello";則語句printf("%d%d",sizeof(str),strlen(str));的輸出結(jié)果是A、55B、66C、65D、56標準答案:C知識點解析:本題考查sizeof和strlen對字符串的處理不同之處,sizeof求出字符串的字符個數(shù),包括結(jié)尾符。Strlen求出字符串的實際字符,不包括結(jié)尾符。所以答案為6,5,C選項正確。24、已知大寫字母A的ASCII碼是65,小寫字母a的ASCII碼是97。以下不能將變量c中的大寫字母轉(zhuǎn)換為對應(yīng)小寫字母的語句是A、c=(’A’+c)%26-’a’B、c=c+32C、c=c-’A’+’a’D、c=(c-’A’)%26+’a’標準答案:A知識點解析:根據(jù)題意可知,小寫字母比與之對應(yīng)的大寫字母的ASCII碼大32,A選項中字符A加上c表示的大寫字符再對字母個數(shù)26取余,本身這個表達式?jīng)]有任何含義所以選擇A選項。25、設(shè)有定義doublea[10],*s=a;以下能夠代表數(shù)組元素a[3]的是A、(*s)[3]B、*(s+3)C、*s[3]D、*s+3標準答案:B知識點解析:指針的賦值首先基類型必須一致,s二維數(shù)組名,是二維數(shù)組的首地址,其基類型是一個具有10個元素的字符數(shù)組。p是一個字符指針變量,其基類型是一個字符,k是一個行指針,其基類型是具有3個元素的字符型數(shù)組。所以A、C、D中兩項的基類型不一致。而B選項,s[0]是二維數(shù)組s的第一個元素,其代表第一行元素構(gòu)成的數(shù)組的首地址,其相當于一維數(shù)組的數(shù)組名,其基類型是一個字符類型,和p基類型一致。因此B選項正確。國家二級C語言機試(選擇題)模擬試卷第4套一、選擇題(本題共25題,每題1.0分,共25分。)1、結(jié)構(gòu)化程序的三種基本控制結(jié)構(gòu)是()。A、順序、選擇和調(diào)用B、過程、子程序和分程序C、順序、選擇和重復(fù)(循環(huán))D、調(diào)用、返回和轉(zhuǎn)移標準答案:C知識點解析:1966年Boehm和Jacopini證明了程序設(shè)計語言僅僅使用順序、選擇和重復(fù)三種基本控制結(jié)構(gòu)就足以表達出各種其他形式結(jié)構(gòu)的程序設(shè)計方法。2、以下敘述中正確的是A、在C程序中的八進制和十六進制,可以是浮點數(shù)B、八進制數(shù)的開頭要使用英文字母o,否則不能與十進制區(qū)分開C、整型變量可以分為int型、short型、。long型和unsigned型四種D、英文大寫字母X和英文小寫字母x都可以作為二進制數(shù)字的開頭字符標準答案:C知識點解析:整型變量分為以下4種類型:①基本型:以int表示。②短整型:以shortint表示,或以short表爾。③長整型:以longjnt表示,或以long表示。④無符號型:以unsignedint表示,選項C)正確,實型常量僅有十進制表示形式,八進制以數(shù)字0開頭,十六進制開頭為0x或者0X,不是二進制。3、數(shù)據(jù)庫管理系統(tǒng)是()。A、操作系統(tǒng)的一部分B、在操作系統(tǒng)支持下的系統(tǒng)軟件C、一種編譯系統(tǒng)D、一種操作系統(tǒng)標準答案:B知識點解析:數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫的機構(gòu),它是一種系統(tǒng)軟件,負責數(shù)據(jù)庫中數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護、控制及保護和數(shù)據(jù)服務(wù)等,是一種在操作系統(tǒng)之上的系統(tǒng)軟件。4、軟件生存周期中,解決軟件“做什么”的階段是()。A、需求分析B、軟件設(shè)計C、軟件實現(xiàn)D、可行性研究標準答案:A知識點解析:軟工生命周期可細化為可行性研究和計劃制定、需求分析、軟件設(shè)計(總體設(shè)計和詳細設(shè)計)、編碼、軟件測試、運行和維護等階段。需求分析是對待開發(fā)軟件提出的需求進行分析并給出詳細定義,是解決軟件“做什么”的階段。軟件設(shè)計是解決軟件“怎么做”的階段。5、對長度為n的線性表排序,在最壞情況下,比較次數(shù)不是n(n一1)/2的排序方法是()。A、快速排序B、冒泡排序C、直接插入排序D、堆排序標準答案:D知識點解析:各種排序方法中最壞情況下需要比較的次數(shù)分別為:冒泡排序n(n一1)/2、快速排序n(n—1)/2、簡單插入排序n(n一1)/2、希爾排序O(n1.5)、單選擇排序n(n一1)/2、堆排序D(nlog2n)。6、軟件需求規(guī)格說明書的作用不包括()。A、軟件驗收的依據(jù)B、用戶與開發(fā)人員對軟件要做什么的共同理解C、軟件設(shè)計的依據(jù)D、軟件可行性研究的依據(jù)標準答案:D知識點解析:軟件需求規(guī)格說明書的作用為:便于用戶、開發(fā)人員進行理解和交流;反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù);作為確認測試和驗收的依據(jù)。所以答案選擇D。7、計算機能直接執(zhí)行的程序是()。A、可執(zhí)行程序B、目標程序C、匯編程序D、源程序標準答案:A知識點解析:源程序指程序員編寫的代碼,即為后綴為.c的文件;源程序經(jīng)過編譯器編譯后形成目標程序,是二進制文件,此時程序還不能直接運行,還需要經(jīng)過鏈接,將所包含的頭文件等與自身的目標文件鏈接,最后形成可執(zhí)行程序,才可由計算機直接執(zhí)行。匯編程序指用匯編語言編寫的源程序。答案選A。8、下列選項中能正確定義數(shù)組的語句是()。A、inthum[0…2008];B、intnum[];C、intN=2008;intnum[N];D、#defineN2008intnum[N];標準答案:D知識點解析:C語言不允許定義動態(tài)數(shù)組,定義數(shù)組的大小必須為常量表達式。A選項錯誤,C語言中的數(shù)組沒有此類型的定義方法;B選項錯誤,定義數(shù)組應(yīng)指明數(shù)組大小,如果不指明數(shù)組大小,需要給定初值的個數(shù);C選項錯誤,N為變量,不能用來定義數(shù)組大小。D選項正確。9、有以下程序:#include<stdio.h>intf(intx);main(){intn=1,m;m=f(f(f(n)));pfinff(’’%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。10、關(guān)于字符數(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都是正確的。11、有以下程序#includemain(){charb,c;inti;b=’a’;c=’A’;for(i=0;i<6;i++){if(i%2)putchar(i+b);elseputchar(i+c);}printf("\n");}程序運行后的輸出結(jié)果是A、abcdefB、ABCDEFC、aBcDeFD、AbCdEf標準答案:D知識點解析:函數(shù)的含義是如果i的值能被2整除,以字符格式打印輸出i+c的值,如果i的值不能被2整除打印i+b的值?第一次i值為0,執(zhí)行else語句打印字符’A’,第二次i值為1,打印1+b的值即字符’b’,第三次i值為2,打印字符’C’,依此類推選擇D選項。12、以下敘述中正確的是A、函數(shù)的類型不能是指針類型B、函數(shù)的形參類型不能是指針類型C、基類型不同的指針變量可以相互混用D、設(shè)有指針變量為“double*p”,則“p+1”將指針p移動8個字節(jié)標準答案:D知識點解析:在對指針進行加、減算術(shù)運算時,數(shù)字1表示1個存儲單元的長度,而double類型數(shù)據(jù)在內(nèi)存中占8個字節(jié),因此移動一次移動8個字節(jié)。其他三個都不正確。13、以下選項中與if(a==1)a=b;elsea++;語句功能不同的switch語句是A、switch(a){case1:a=b:break;default:a++:}B、switch(a==1){case0:a=b;break;case1:a++;}C、switch(a){default:a++;break;case1:a=b;}D、switch(a==1){case1:a=b;break;case0:a++;}標準答案:B知識點解析:本題主要考查if和switch結(jié)構(gòu)?!癷f(a==1)a=b;elsea++;”代碼段的功能是如果a等于則把b的值賦值給a,否則a++。選項A使用switch對a進行判斷,如果是1則a=b,跳出switch,如果是其他值則a++;選項B對a==1的結(jié)果進行switch判斷,如果為0表示a不等于1則a=b,和題目要求不符合:選項C和選項A一樣;選項D和選項case條件相反,滿足題目要求。14、以下選項中與if(a==1)a=b;elsea++;語句功能不同的switch語句是A、switch(a==1){case0:a=b;break;case1:a++;}B、switch(a){case1:a=b;break;default:a++;}C、switch(a){default:a++;break;case1:a=b;}D、switch(a==1){case1:a=b;break;case0:a++;}標準答案:A知識點解析:ifelse語句的含義是,如果變量a的值等于1,則把變量b的值賦給變量a,否則,變量a的值加1。在本題的4個選項中。與其含義不同的是選項A),表示如果變量a的值等于1,則把變量a的值加1,否則,把變量b的值賦給變量a。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);}程序的運行結(jié)果是A、9B、0C、6D、8標準答案:C知識點解析:主函數(shù)調(diào)用f()函數(shù),將實參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、以下關(guān)于宏的敘述中正確的是A、宏定義必須位于源程序中所有語句之前B、宏名必須用大寫字母表示C、宏調(diào)用比函數(shù)調(diào)用耗費時間D、宏替換沒有數(shù)據(jù)類型限制標準答案:D知識點解析:本題考查宏替換的規(guī)則。宏替換分為簡單的字符替換和帶參數(shù)的宏替換兩類。使用宏時應(yīng)注意以下幾點:①宏定義僅僅是符號替換,不是賦值語句,因此不做語法檢查;②為了區(qū)別程序中其他的標識符,宏名的定義通常用大寫字母,但不是必須用大寫;③雙引號中出現(xiàn)的宏名不替換;④使用宏定義可以嵌套,即后定義的宏中可以使用先定義的宏。17、有以下程序,程序運行后的輸出結(jié)果是#definePT3.5;#defineS(x)PT*x*x;main(){inta=1,b=2;printf("%4.1f\n",S(a+b));}A、31.5B、7.5C、程序有錯無輸出結(jié)果D、14.0標準答案:C知識點解析:本題考查宏定義。預(yù)處理語句后面不能加分號,因此程序有錯。如果沒加分號的話S(a+b)=PT*a+b*a+b=3.5*1+2*1+2=7.5。18、若有定義:intw[3][5];則以下不能正確表示該數(shù)組元素的表達式是A、*(*w+3)B、*(*(w+1))C、*(w+1)[4]D、*(&w[0][0]+1)標準答案:C知識點解析:在C語言中,二維數(shù)組的名字表示的是二維數(shù)組的地址,對于二維數(shù)組intw[3][5],可以認為w為一個一維數(shù)組,含有3個元素,而每個元素為一個含有5個元素的一維數(shù)組。而(w+1)為一個含有兩個元素的一維數(shù)組,首先和(w+1)[4]結(jié)合非法,4超出了二維數(shù)組的邊界,取值也就是非法的了。19、某二叉樹共有12個結(jié)點,其中葉子結(jié)點只有1個。則該二叉樹的深度為(根結(jié)點在第1層)A、3B、6C、8D、12標準答案:D知識點解析:二叉樹中,度為0的節(jié)點數(shù)等于度為2的節(jié)點數(shù)加1,即n2=n0-1,葉子節(jié)點即度為0,n0=1,則n2=0,總節(jié)點數(shù)為12=n0+n1+n2=1+n1+0,則度為1的節(jié)點數(shù)n1=11,故深度為12,選D。20、有三個關(guān)系R、S和T如下:則由關(guān)系R和S得到關(guān)系T的操作是A、選擇B、差C、交D、并標準答案:B知識點解析:關(guān)系T是關(guān)系R的一部分,并且是關(guān)系R去掉R和S相同的元素,符合差操作。21、有兩個關(guān)系R和S如下:則由關(guān)系R得到關(guān)系S的操作是()。A、選擇B、投影C、自然連接D、并標準答案:A知識點解析:由關(guān)系R到關(guān)系S為一元運算,排除C和D。關(guān)系S是關(guān)系R的一部分,是通過選擇之后的結(jié)果,因此選A。22、下面描述中不屬于數(shù)據(jù)庫系統(tǒng)特點的是A、數(shù)據(jù)共享B、數(shù)據(jù)完整性C、數(shù)據(jù)冗余度高D、數(shù)據(jù)獨立性高標準答案:C知識點解析:數(shù)據(jù)庫系統(tǒng)的特點為高共享、低冗余、獨立性高、具有完整性等,C錯誤。23、關(guān)于C語言的符號常量,以下敘述中正確的是A、符號常量的符號名是標識符,但必須大寫B(tài)、符號常量是指在程序中通過宏定義用一個符號名來代表一個常量C、符號常量在整個程序中其值都不能再被重新定義D、符號常量的符號名必須是常量標準答案:B知識點解析:在C語言中,可以用一個標識符來代表一個常量,稱為符號常量。這個標識符必須在程序中進行特別的"指定",并符合標識符的命名規(guī)則。用作符號常量的標識符通常采用大寫字母表示,在主函數(shù)中其值不能再被定義。所以選擇B選項。24、若有以下程序#includemain(){intc;c=10^5;printf("%d\n",c);}則程序的輸出結(jié)果是A、5B、15C、10000D、105標準答案:B知識點解析:本題考查位運算中按位異或運算符,異或運算只有在兩個比較的位不同時其結(jié)果是1,否則結(jié)果為0,10用二進制表示為00001010,5用二進制表示為00000101,異或后00001111,即15,選項B正確。25、有以下程序#includemain(){charc[2][5]={"6938","8254"},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=c[i];for(i=0;i<2;i++)for(j=0;p[i][j]>0;j+=2)s=10*s+p[i][j]-’0’;printf("%d\n",s);}程序運行后的輸出結(jié)果是A、6938B、9824C、4528D、6385標準答案:D知識點解析:本題中首先是將二維字符數(shù)組c賦值指針數(shù)組p,然后遍歷p找到兩個字符串中的偶數(shù)位置的字符并組成一個數(shù)值輸出,根據(jù)代碼執(zhí)行即可得到結(jié)果為6385。國家二級C語言機試(選擇題)模擬試卷第5套一、選擇題(本題共25題,每題1.0分,共25分。)1、對于一個正常運行的C程序,下列敘述中正確的是()。A、程序的執(zhí)行總是從main函數(shù)開始,在main函數(shù)結(jié)束B、程序的執(zhí)行總是從程序的第一個函數(shù)開始,在main函數(shù)結(jié)束C、程序的執(zhí)行總是從main函數(shù)開始,在程序的最后一個函數(shù)中結(jié)束D、程序的執(zhí)行總是從程序中的第一個函數(shù)開始,在程序的最后一個函數(shù)中結(jié)束標準答案:A知識點解析:一個C語言源程序無論包括了多少函數(shù),總是從main函數(shù)開始執(zhí)行,從main函數(shù)結(jié)束。2、在長度為n的有序線性表中進行二分查找,最壞情況下需要比較的次數(shù)是()。A、O(n)B、O(n2)C、O(log2n)D、O(nlog2n)標準答案:C知識點解析:當有序線性表為順序存儲時才能用二分法查找??梢宰C明的是對于長度為n的有序線性表。在最壞情況下,二分法查找只需要比較log2n次,而順序查找需要比較n次。3、一棵二叉樹中共有70個葉子結(jié)點與80個度為1的結(jié)點,則該二叉樹中的總結(jié)點數(shù)為A、219B、221C、229D、231標準答案:A知識點解析:在二叉樹中,葉子結(jié)點個數(shù)為n0,則度為2的結(jié)點數(shù)n2=n0一1。本題中葉子結(jié)點的個數(shù)為70,所以度為2的結(jié)點個數(shù)為69,因而總結(jié)點數(shù)=葉子結(jié)點數(shù)+度為1的結(jié)點數(shù)+度為2的結(jié)點數(shù)=70+80+69=219。4、下列描述中,不符合良好程序設(shè)計風格要求的是A、程序的效率第一,清晰第二B、程序的可讀性好C、程序中要有必要的注釋D、輸入數(shù)據(jù)前要有提示信息標準答案:A知識點解析:一般來講,程序設(shè)計風格是指編寫程序時所表現(xiàn)出的特點、習(xí)慣和邏輯思路。程序設(shè)計風格總體而言應(yīng)該強調(diào)簡單和清晰,程序必須是可以理解的。著名的“清晰第一,效率第二”的論點已成為當今主導(dǎo)的程序設(shè)計風格。5、下列敘述中正確的是A、循環(huán)隊列是隊列的鏈式存儲結(jié)構(gòu)B、能采用順序存儲的必定是線性結(jié)構(gòu)C、所有的線性結(jié)構(gòu)都可以采用順序存儲結(jié)構(gòu)D、具有兩個以上指針的鏈表必定是非線性結(jié)構(gòu)標準答案:C知識點解析:根據(jù)數(shù)據(jù)結(jié)構(gòu)中各數(shù)據(jù)元素之間的前后件關(guān)系的復(fù)雜程度,一般將數(shù)據(jù)結(jié)構(gòu)分為兩大類型:線性結(jié)構(gòu)與非線性結(jié)構(gòu)。有序線性表既可以采用順序存儲結(jié)構(gòu),又可以采用鏈式存儲結(jié)構(gòu)。所有的線性結(jié)構(gòu)都可以采用順序存儲結(jié)構(gòu)。6、學(xué)校的數(shù)據(jù)庫中有表示系和學(xué)生的關(guān)系:系(系編號,系名稱,系主任,電話,地點),學(xué)生(學(xué)號,姓名,性別,入學(xué)日期,專業(yè),系編號),則關(guān)系學(xué)生中的主鍵和外鍵分別是()。A、學(xué)號,B、學(xué)號,專業(yè)C、學(xué)號,姓名D、學(xué)號,系編號標準答案:D知識點解析:一個屬性(即一列),在某張表中不是主鍵(主碼),但在其他表中是主鍵(主碼),則它是第一張表的外鍵(外碼)。在“系”表中,“系編號”為主鍵;在“學(xué)生”表中,“學(xué)號”是主鍵,“系編號”不是主鍵,則“系編號”是表“學(xué)生”的外鍵。7、在黑盒測試方法中,設(shè)計測試用例的主要根據(jù)是A、程序內(nèi)部邏輯B、程序外部功能C、程序數(shù)據(jù)結(jié)構(gòu)D、程序流程圖標準答案:B知識點解析:黑盒測試法指的是根據(jù)程序的外部功能,把程序本身看成一個黑盒子,設(shè)計測試用例來驗證程序外部功能的正確性。8、有以下程序#includemain(){inta=7;while(a--);printf("%d\n",a);}程序運行后的輸出結(jié)果是A、0B、1C、-1D、7標準答案:C知識點解析:在while語句中,先判斷while后面的表達式是否為0,如果為0,則退出循環(huán),甭則執(zhí)行循環(huán)體。在本題中,當變量a的值經(jīng)過幾次循環(huán)后,其值等于0時,退出while循環(huán)語句,變量a再執(zhí)行自減運算,所以其值等于-1。9、有以下函數(shù):intaaa(char*s){char*t=s:while(*t++);t--:return(t-s);}以下關(guān)于aaa函數(shù)功能敘述正確的是()。A、將串s復(fù)制到串tB、比較兩個串的大小C、求字符串s的長度D、求字符串s所占字節(jié)數(shù)標準答案:C知識點解析:本題重點考查的知識點是while循環(huán)語句的應(yīng)用。aaa()函數(shù)中,首先定義了一個字符指針t指向形參s,然后通過一個while循環(huán)讓指針t不斷遞增,直到t指向字符串結(jié)束標識處。當t指向結(jié)束標識處時,由于后綴++運算符的原因,它還會被再遞增1,所以接下來的t--語句讓它回到結(jié)束標識處。最后返回t-s,s還是指向字符串第一個字符處,而t指向了字符串結(jié)尾,故返回值為字符串的長度值,因此C選項正確。10、下面屬于白盒測試方法的是A、等價類劃分法B、邏輯覆蓋C、邊界值分析法D、錯誤推測法標準答案:B知識點解析:白盒測試的主要方法有邏輯覆蓋、基本路徑測試等。11、若有定義語句:intx=10;則表達式x-=x+x的值為()。A、-10B、-20C、0D、10標準答案:A知識點解析:考查復(fù)合賦值運算符。x-=x+x與x=x-(x+x)等價,所以輸出結(jié)果為A)。12、C源程序中不能表示的數(shù)制是A、八進制B、十進制C、二進制D、十六進制標準答案:C知識點解析:在C語言的源程序中,數(shù)值可以用十進制、八進制和十六進制來表示。不用二進制來表示。13、若各選項中所用變量已正確定義,函數(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知識點解析:在調(diào)用子函數(shù)時,應(yīng)對其進行說明。A選項中,調(diào)用時沒有對子函數(shù)進行說明。B、C選項中,被調(diào)用函數(shù)在主調(diào)函數(shù)之前定義,不用說明;D選項中,在主函數(shù)中對被調(diào)用函數(shù)的返回值類型進行了說明。因此選擇A選項。14、設(shè)有課程關(guān)系模式:R(C#,Cn,T,TA)(其中,C#為課程號,Cn為課程名,T為教師名,Ta為教師地址)并且假定不同課程號可以有相同的課程名,每個課程號下只有一位任課教師,但每位教師可以有多門課程。關(guān)系R中對主屬性的傳遞依賴為A、(C#,T)→TaB、C#→Cn,Cn→TaC、C#→T,T→TaD、C#→Tn標準答案:C知識點解析:R關(guān)系模式中,不同課程號可以對應(yīng)相同的課程名而每個課程號下自由一位任課教師,因此課程號和教師名為傳遞依賴、教師名和教師地址為傳遞依賴,因此R對主屬性的傳遞依賴為“C#→T→Ta”。15、設(shè)有定義:doublex=2.12;,以下不能完整輸出變量x值的語句是()。A、printf("x=%5.0f\n",x);B、printf("x=%f\n",x);C、printf("x=%lf\n",x);D、printf("x=%0.5f\n",x);標準答案:A知識點解析:本題考查printf函數(shù)的格式輸出,"格式控制字符串"部分為"%f"表示按照浮點型輸出,選項B)正確;加入長度格式符l即"%l"表示按照雙精度浮點型輸出,選項C)正確;若要控制輸出精度,則需以"."開頭,后跟十進制整數(shù),如"%.2f"或"%0.2f",選項D)正確;控制輸出寬度則是用整數(shù)表示,如"%5f"。選項A)中"%5.0f"表示輸出寬度為5,右對齊,小數(shù)點后保留位數(shù)為0,所以結(jié)果輸出為2,不能完整輸出x,答案選A)。16、以下選項中合法的標識符是A、1月1日B、1_1C、_11D、1__標準答案:C知識點解析:本題考查標識符定義。合法標識符的要求是由下劃線、英文大小寫字母和數(shù)字組成的字符串,且第一個字符必須是字母或下劃線。17、fun函數(shù)的功能是:通過鍵盤輸入給x所指的整型數(shù)組所有元素賦值。在下劃線處應(yīng)填寫的是#include#defineN5Voidfun(intx[N]){intm;for(m=N-1;m>=0;m--)scanf("%d",___);}A、x+mB、x[m+1]C、x+(m++)D、x[++m]標準答案:A知識點解析:本題考查數(shù)組和scanf函數(shù)的使用。程序通過for循環(huán)來給數(shù)組元素賦值,賦值語句通過調(diào)用scanf函數(shù)來實現(xiàn)。scanf函數(shù)從鍵盤接收數(shù)據(jù),函數(shù)的第二個參數(shù)是數(shù)據(jù)保存的地址,因此選項B和選項D不是地址,錯誤。選項A和選項C是地址,但是選項C的m值會++自增,然后for循環(huán)里面又m-自減,會導(dǎo)致死循環(huán),不滿足要求,選項A正確。18、若變量已正確定義并賦值,以下不能構(gòu)成C語句的選項是A、A=a+b;B、B++;C、a=a+bD、A?a:b;標準答案:C知識點解析:C語言語句的表示為分號,不加分號的表達
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 孕婦用品售后服務(wù)模式創(chuàng)新-洞察分析
- 網(wǎng)絡(luò)廣告?zhèn)惱韱栴}-洞察分析
- 醫(yī)療信息化應(yīng)用分析-洞察分析
- 移動學(xué)習(xí)行為分析-洞察分析
- 藥品質(zhì)量控制方法-洞察分析
- 特色農(nóng)產(chǎn)品冷鏈技術(shù)-洞察分析
- 移動醫(yī)療與遠程教育-洞察分析
- 虛擬現(xiàn)實在網(wǎng)頁設(shè)計中的優(yōu)勢-洞察分析
- 循環(huán)利用產(chǎn)業(yè)鏈構(gòu)建-洞察分析
- 云端網(wǎng)絡(luò)功能虛擬化-洞察分析
- 2025蛇年元旦晚會
- 【MOOC】中國近現(xiàn)代史綱要-武漢理工大學(xué) 中國大學(xué)慕課MOOC答案
- 綜合管廊知識
- 四川省南充市2023-2024學(xué)年高一上學(xué)期期末考試 歷史 含解析
- 餐飲業(yè)食品安全管理操作手冊
- 2024-2025學(xué)年湖北省武漢市華中師大一附中高三上學(xué)期期中英語試題及答案
- 2025年公司半年工作總結(jié)及下半年工作計劃
- 2024年光伏電站運行專業(yè)知識題庫
- 國開(內(nèi)蒙古)2024年《漢語中的中國文化》形成性考核1-3終結(jié)性考核答案
- 《PDCA培訓(xùn)資料》課件
- 2024年區(qū)域代理經(jīng)營協(xié)議
評論
0/150
提交評論