全國計算機等級考試二級C語言真題庫之選擇題(14).doc_第1頁
全國計算機等級考試二級C語言真題庫之選擇題(14).doc_第2頁
全國計算機等級考試二級C語言真題庫之選擇題(14).doc_第3頁
全國計算機等級考試二級C語言真題庫之選擇題(14).doc_第4頁
全國計算機等級考試二級C語言真題庫之選擇題(14).doc_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

全國計算機等級考試等級考試真題庫全國計算機等級考試等級考試真題庫之選擇題(14)1.一個棧的初始狀態(tài)為空?,F將元素1、2、3、4、5、A、B、C、D、E依次入棧,然后再依次出棧,則元素出棧的順序是()。A) 12345ABCDEB) EDCBA54321C) ABCDE12345D) 54321EDCBA 參考答案:B【解析】棧是先進后出的原則組織數據,所以入棧最早的最后出棧,所以選擇B)。2.下列敘述中正確的是()。A) 循環(huán)隊列有隊頭和隊尾兩個指針,因此,循環(huán)隊列是非線性結構B) 在循環(huán)隊列中,只需要隊頭指針就能反映隊列中元素的動態(tài)變化情況C) 在循環(huán)隊列中,只需要隊尾指針就能反映隊列中元素的動態(tài)變化情況D) 循環(huán)隊列中元素的個數是由隊頭指針和隊尾指針共同決定 參考答案:D【解析】循環(huán)隊列有隊頭和隊尾兩個指針,但是循環(huán)隊列仍是線性結構的,所以A)錯誤;在循環(huán)隊列中只需要隊頭指針與隊尾兩個指針來共同反映隊列中元素的動態(tài)變化情況,所以B)與C)錯誤。3.在長度為n的有序線性表中進行二分查找,最壞情況下需要比較的次數是()。A) O(n)B) O(n2)C) D) 參考答案:C【解析】當有序線性表為順序存儲時才能用二分法查找??梢宰C明的是對于長度為n的有序線性表,在最壞情況下,二分法查找只需要比較次,而順序查找需要比較n次。4.下列敘述中正確的是()。A) 順序存儲結構的存儲一定是連續(xù)的,鏈式存儲結構的存儲空間不一定是連續(xù)的B) 順序存儲結構只針對線性結構,鏈式存儲結構只針對非線性結構C) 順序存儲結構能存儲有序表,鏈式存儲結構不能存儲有序表D) 鏈式存儲結構比順序存儲結構節(jié)省存儲空間 參考答案:A【解析】鏈式存儲結構既可以針對線性結構也可以針對非線性結構,所以B)與C)錯誤。鏈式存儲結構中每個結點都由數據域與指針域兩部分組成,增加了存儲空間,所以D)錯誤。5.數據流圖中帶有箭頭的線段表示的是()。A) 控制流B) 事件驅動C) 模塊調用D) 數據流 參考答案:D【解析】數據流圖中帶箭頭的線段表示的是數據流,即沿箭頭方向傳送數據的通道,一般在旁邊標注數據流名。6.在軟件開發(fā)中,需求分析階段可以使用的工具是()。A) NS圖B) DFD圖C) PAD圖D) 程序流程圖 參考答案:B【解析】在需求分析階段可以使用的工具有數據流圖DFD圖,數據字典DD,判定樹與判定表,所以選擇B)。7.在面向對象方法中,不屬于對象基本特點的是()。A) 一致性B) 分類性C) 多態(tài)性D) 標識唯一性 參考答案:A【解析】對象有如下一些基本特點:標識唯一性、分類性、多態(tài)性、封裝性、模塊獨立性好。所以選擇A)。8.一間宿舍可住多個學生,則實體宿舍和學生之間的聯系是()。A) 一對一B) 一對多C) 多對一D) 多對多 參考答案:B【解析】因為一間宿舍可以住多個學生即多個學生住在一個宿舍中,但一個學生只能住一間宿舍,所以實體宿舍和學生之間是一對多的關系。9.在數據管理技術發(fā)展的三個階段中,數據共享最好的是()。A) 人工管理階段B) 文件系統(tǒng)階段C) 數據庫系統(tǒng)階段D) 三個階段相同 參考答案:C【解析】數據管理發(fā)展至今已經歷了三個階段:人工管理階段、文件系統(tǒng)階段和數據庫系統(tǒng)階段。其中最后一個階段結構簡單,使用方便邏輯性強物理性少,在各方面的表現都最好,一直占據數據庫領域的主導地位,所以選擇C)。10.有三個關系R、S和T如下:由關系R和S通過運算得到關系T,則所使用的運算為()。A) 笛卡爾積B) 交C) 并D) 自然連接 參考答案:D【解析】自然連接是一種特殊的等值連接,它要求兩個關系中進行比較的分量必須是相同的屬性組,并且在結果中把重復的屬性列去掉,所以根據T關系中的有序組可知R與S進行的是自然連接操作。11.以下不能用于描述算法的是A) 文字敘述B) 程序語句C) 偽代碼和流程圖D) E-R圖 參考答案:D【解析】算法的描述有偽代碼、流程圖、N-S結構圖等E-R是實體聯系模型所以選擇D12.以下選項中合法的實型常量是A) 0B) 3.13e-2.1C) .914D) 2.0*10 參考答案:C【解析】A選項為整型數據B選項中e后面必須為整數D選項是表達式,不是常量,所以選擇C13.以下敘述中正確的是A) a是實型變量,a=10在C語言中是允許的,因此可以說:實型變量中可以存放整型數B) 在賦值表達式中,賦值號的右邊可以是變量,也可以是任意表達式C) 若有int a=4,b=9; 執(zhí)行了a=b后,a的值已由原值改變?yōu)閎的值,b的值變?yōu)?D) 若有int a=4,b=9; 執(zhí)行了a=b;b=a;之后,a的值為9,b的值為4 參考答案:B【解析】B選項中a是實型變量,a=10在C語言中是允許的,但是實型變量中不可以存放整型數C選項中執(zhí)行a=b后,a的值變?yōu)閎的值,為9,b的值不變,仍為9D選項中執(zhí)行a=b后,a的值為9,b的值為9,執(zhí)行b=a后,a的值為9,b的值也為9,所以選擇B14.以下選項中合法的變量是A) 5aB) _10_C) A%D) sizeof 參考答案:B【解析】變量的命名要符合標識符的命名規(guī)則,即由下劃線、字母或數字組成,且必須以下劃線或字母開始,也不能和關鍵字相同,所以選擇B15.不能正確表示數學式的表達式是A) a/c*bB) a*b/cC) a/ b* cD) a*(b/c) 參考答案:C解析】/號和*號的優(yōu)先級處于平級,結合性都是自左至右所以選擇C,C式子表示的是16.有以下程序 #include main() int a=3; printf(%dn, ( a+=a-=a*a ); 程序運行后的輸出結果是A) 3B) 9C) 0D) -12 參考答案:D【解析】首先計算a*a,結果為9,然后執(zhí)行a=a-9,即3-9,結果為-6,然后執(zhí)行a=(-6)+(-6),即a=的值為-12所以選擇D17.若變量已正確定義,以下選項中非法的表達式是A) a!=4|bB) a=1/2*(x=y=20,x*3)C) a % 4D) A + 32 參考答案:B【解析】A選項中a即表示a為字符常量,再給a賦值1/2*(x=y=20,x*3),是不正確的。因此B選項正確。18.有以下程序 #include main() int x=35, B; char z=B ; B = ( x ) & ( z b ); printf(%dn, B ); 程序運行后的輸出結果是A) 1B) 0C) 35D) 66 參考答案:A【解析】本題重點考察邏輯運算符和關系運算符的相關知識,已知變量x為整型變量,并賦值為35,變量z為字符型變量,并賦值為B。語句B=(x)&(zb);中,(x)的值為1,B的asscii碼小于b的asscii碼,所以(z=y)|(y=x)B) (x=y=z)C) (x=y)!(y=z)D) (x=y)&(y=z) 參考答案:D【解析】本題考察關系表達式和邏輯表達式,y大于等于x同時y小于等于z,因此x=y和y=z是邏輯與的關系。因此D選項正確。20.有以下程序 #include main() double x=2.0, y; if( x0.0 ) y=0.0; else if( (x5.0) & (!x) ) y=1.0 / ( x+2.0 ); else if( x10.0 ) y=1.0 / x; else y=10.0; printf( %fn , y ); 程序運行后的輸出結果是A) 0.000000B) 0.250000C) 0.500000D) 1.000000 參考答案:C【解析】本題重點考察if語句,變量x和y均為double類型,由于變量x賦值為2.0,因此執(zhí)行if(x5.0)&(!x),即條件為0,繼續(xù)執(zhí)行if( x10.0 ),條件為1,即執(zhí)行y=1.0 / x;。依據printf()函數輸出類型中f是以小數形式輸出單、雙精度實數。因此C選項正確。21.有以下程序 #include main() int i, sum; for( i=1; i6; i+ ) sum+=i; printf(%dn, sum); 程序運行后的輸出結果是A) 隨機值B) 0C) 15D) 16 參考答案:A【解析】本題重點考察for語句,變量沒有初始化的情況下,默認值與編譯器有關系,不同的編譯器有不同的值。因此A選項正確。22.有以下程序 #include main() int a = 3; do printf(%d, a-=2 ); while( ! (-a) ); printf(n); 程序運行后的輸出結果是A) 1B) 1, -2,C) 3,0,D) 1,0 參考答案:B【解析】本題重點考察dowhile語句,該循環(huán)語句的特點是,先執(zhí)行循環(huán)中的語句,然后再判斷表達式是否為真, 如果為真則繼續(xù)循環(huán);如果為假, 則終止循環(huán)。因此, do-while循環(huán)至少要執(zhí)行一次循環(huán)語句。變量a賦初值為3,每循環(huán)一次需執(zhí)行語句a-=2一次,同時循環(huán)條件使變量a自減1,所以第一次循環(huán)后變量a變?yōu)?,第2次循環(huán)后變量a變?yōu)?2。因此A選項正確。23.有以下程序 #include void fun( int a, int b, int c ) a=b; b=c; c=a; main() int a=10 , b=20, c=30; fun( a, b, c ); printf(%d,%d,%dn,c,b,a); 程序運行后的輸出結果是A) 10,20,30B) 30,20,10C) 20,30,10D) 0,0,0 參考答案:B【解析】函數調用中發(fā)生的數據傳送是單向的。即只能把實參的值傳送給形參,而不能把形參的值反向地傳送給實參。 因此在函數調用過程中,形參的值發(fā)生改變,而實參中的值不會變化。因此B選項正確。24.有以下程序 #include main() int c6=10,20,30,40,50,60, *p,*s; p = c; s = &c5; printf(%dn, s-p ); 程序運行后的輸出結果是A) 5B) 50C) 6D) 60 參考答案:A【解析】首先初始化一維數組c6,語句p = c;指將c0元素的地址賦給指針變量p;語句s = &c5;指將c5 元素的地址賦給指針變量s。程序最后輸出s-p,即結果為5。因此A選項正確。25.有以下程序 #include main() int a3=0, i, j, k=2; for( i=0; ik; i+ ) for( j=0; jk; j+ ) aj = ai+1; printf(%dn, a1 ); 程序運行后的輸出結果是A) 0B) 2C) 1D) 3 參考答案:D【解析】該題首先初始化一維數組a3所有元素都為0;執(zhí)行嵌套循環(huán)for語句,當i=0、j=0時,a0=a0+1=1;當i=0、j=1時,a1=a0+1=2;當i=1、j=0時,a0=a1+1=3;當i=1、j=1時,a1=a1+1=3;因此D選項正確。26.有以下程序 #include main() int a5=2,4,6,8,10, *p,*k; p = a; k = &p; printf(%d , *( p+ ) ); printf(%dn, *k ); 程序運行后的輸出結果是A) 4 6B) 4 4C) 2 2D) 2 4 參考答案:D解析】首先通過p=a使p指向數組的第1個元素,所以輸出2;在輸出2以后,由于p+,即p就指向數組的第2個元素,*k就是取出p所指向元素的值,而p指向的是數組的第2個元素,即輸出4。因此D選項正確。27.有以下程序 #include main() int aa33= 2,4,6 , i, *p = &aa00; for ( i=0; i2; i+ ) if( i = 0 ) aaii+1 = *p + 1; else +p; printf(%d , *p ); 程序運行后的輸出結果是A) 2 6B) 2 3C) 4 3D) 4 6 參考答案:B【解析】觀察題目,可以發(fā)現,*p=&aa00語句實際是將數組aa的首地址賦給了指針變量p,將i的值帶入for循環(huán)中,i=0時,aa01=3,*p=2;*p輸出的是指針所指向的數組值,此時p所指向的是aa00,輸出2,而i=1時執(zhí)行了+p操作使指針向后移動指向了aa01,所以在輸出*p時應為3。因此B選項正確。28.以下fun函數返回數組中最大值的下標 #include int fun( int *s,int n ) int i , k; for( i=0 , k=i; i sk ) _; return ( k ) ; 在橫線處應填入的內容是A) +kB) i = kC) k+D) k = i 參考答案:D【解析】fun函數的功能是返回數組中最大值的下標。通過for循環(huán)語句,每次將最大的數給k,即k=i。因此D選項正確。29.有以下程序#include int fun( char s ) char *p = s; while( *p != 0 ) p+; return ( p-s );main() printf(%dn, fun(0ABCDEF) ); 程序運行后的輸出結果是A) 1B) 6C) 7D) 0 參考答案:C【解析】本題考查字符串作為函數參數以及while語句,本題中傳入字符串OABCDEF,然后執(zhí)行fun后,就得到了該字符串中字符的個數,不包括結尾符,該字符串有7個字符,所以答案為C。30.若有以下程序段 char str412= aa,bbb,ccccc,d , *strp4; int i; for( i = 0; i 4; i+ ) strpi = stri;不能正確引用字符串的選項是A) str0B) strpC) strp3D) *strp 參考答案:B【解析】本題考查字符串指針作為函數參數,本題中p作為字符串指針傳入fun中,p指向的內容并沒有發(fā)生變化,所以選項B正確。31.有以下程序#include #include void fun ( char *s ) char a10; strcpy( a, STRING ); s = a;main() char *p=PROGRAM; fun( p ); printf(%sn,p); 程序運行后的輸出結果是(此處代表空格) A) STRINGB) STRINGC) STRINGD) PROGRAM 參考答案:D【解析】本題考查字符串指針作為函數參數,本題中p作為字符串指針傳入fun中,p指向的內容并沒有發(fā)生變化,所以選項D正確。32.有以下程序#include void fun ( int n ,int *s ) int f; if( n=1 ) *s = n+1 ; else fun( n-1, &f) ; *s = f ; main() int x =0; fun( 4,&x ); printf(%dn,x); 程序運行后的輸出結果是A) 3B) 1C) 2D) 4 參考答案:C【解析】本題考查函數的遞歸調用,將函數參數帶入函數中,一步步遞歸即可得到結果,結果為2,選項C正確。33.有以下程序 #include main() char c25=6938,8254 , *p2; int i, j, s=0; for( i=0; i2; i+ ) pi=ci; for( i=0; i0 ; j+=2 ) s=10*s+pij-0; printf(%dn,s); 程序運行后的輸出結果是A) 9284B) 9824C) 6982D) 6385 參考答案:D【解析】本題中首先是將二維字符數組c賦值指針數組p,然后遍歷p找到兩個字符串中的偶數位置的字符并組成一個數值輸出,根據代碼執(zhí)行即可得到結果為638534.有以下程序#include void fun ( int *s ) static int j=0; do sj += s j+1; while(+j2);main() int i, a10=1,2,3,4,5; for( i=1; i3; i+ ) fun( a ); for( i=1; i5; i+ ) printf(%d,ai); printf(n); 程序運行后的輸出結果是A) 34756B) 5745C) 5795D) 35745 參考答案:B【解析】本題主要考查dowhile語句,執(zhí)行fun函數后,a數組里面的元素變?yōu)?5745,輸出后四個字符,所以結果為5745,選項B正確。35.有以下程序段 int *p; p= _ malloc( sizeof( int );若要求使p指向一個int 型的動態(tài)存儲單元,在橫線處應填入的是A) (int *)B) intC) int *D) ( *int ) 參考答案:A【解析】本題考查malloc函數,題目中要求p指向一個int型的動態(tài)存儲單元,那么就應該將分配的存儲單元轉化為int,所以選項A正確。36.有以下程序 #include #define SUB( X, Y ) (X+1)*Y main() int a=3, b=4; printf(%dn,SUB(a+ ,b+ ); 程序運行后的輸出結果是A) 25B) 20C) 12D) 16 參考答案:D【解析】本題考查宏定義,宏定義只是做個簡單的替換,執(zhí)行SUB(a+ ,b+)=(a+ +1)*b+=16,選項D正確。37.有以下程序#include main() char c25=6938,8254 , *p2; int i, j, s=0; for( i=0; i2; i+ ) pi=ci; for( i=0; i0 ; j+=2 ) s=10*s+pij-0; printf(%dn,s); 程序運行后的輸出結果是A) 6938B)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論