二級C筆試考試題庫(2009-9).doc_第1頁
二級C筆試考試題庫(2009-9).doc_第2頁
二級C筆試考試題庫(2009-9).doc_第3頁
二級C筆試考試題庫(2009-9).doc_第4頁
二級C筆試考試題庫(2009-9).doc_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

下列數(shù)據(jù)結(jié)構(gòu)中,屬于非線性結(jié)構(gòu)的是_C。A)循環(huán)隊列 B)帶鏈隊列 C)二叉樹 D)帶鏈?!窘馕觥?根據(jù)數(shù)據(jù)結(jié)構(gòu)中各數(shù)據(jù)元素之間前后關系的復雜程度,一般將數(shù)據(jù)結(jié)構(gòu)分為兩大類型:線性結(jié)構(gòu)與非線性結(jié)構(gòu)。線性結(jié)構(gòu)表示數(shù)據(jù)元素之間為一對一的關系,非線性結(jié)構(gòu)表示數(shù)據(jù)元素之間為一對多或者多對一的關系。根據(jù)各種結(jié)構(gòu)的定義知二叉樹是一種非線性結(jié)構(gòu)。下列數(shù)據(jù)結(jié)構(gòu)中,能夠按照先進后出原則存取數(shù)據(jù)的是_B。A)循環(huán)隊列 B)棧 C)隊列 D)二叉樹【解析】 棧是限定只在一端進行插入與刪除的線性表,通常稱插入、刪除的這一端為棧頂,另一端為棧底。棧頂元素總是后被插入的元素,也是最先被刪除的元素;棧底元素總是最先被插入的元素,也是最后才能被刪除的元素。棧是按照先進后出或后進先出的原則組織數(shù)據(jù)的。對于循環(huán)隊列,下列敘述中正確的是_D。A)隊頭指針是固定不變的B)隊頭指針一定大于隊尾指針C)隊頭指針一定小于隊尾指針 D)隊頭指針可以大于隊尾指針,也可以小于隊尾指針【解析】 循環(huán)隊列是將順序隊列首尾相連形成的,隨著插入元素或刪除元素的進行,其隊頭指針及隊尾指針是在不斷變化的,有時可能會出現(xiàn)隊頭指針大于隊尾指針的情況,也可能是隊尾指針大于隊頭指針,故答案為D)。算法的空間復雜度是指_A。A)算法在執(zhí)行過程中所需要的計算機存儲空間B)算法所處理的數(shù)據(jù)量C)算法程序中的語句或指令條數(shù)D)算法在執(zhí)行過程中所需要的臨時工作單元數(shù)【解析】 算法的空間復雜度是指:算法執(zhí)行過程中所需的存儲空間。一個算法所占用的存儲空間包括算法程序所占的空間、輸入的初始數(shù)據(jù)所占的存儲空間以及算法執(zhí)行過程中所需要的額外空間。軟件設計中劃分模塊的一個準則是_B。A)低內(nèi)聚低耦合 B)高內(nèi)聚低耦合 C)低內(nèi)聚高耦合 D)高內(nèi)聚高耦合【解析】 模塊劃分應考慮的因素包括模塊之間的耦合和內(nèi)聚。一般來說,要求模塊之間的耦合盡可能地低,即模塊盡可能獨立,要求模塊的內(nèi)聚程度盡可能地高,即遵循高內(nèi)聚、低耦合的原則。下列選項中不屬于結(jié)構(gòu)化程序設計原則的是_A。A)可封裝 B)自頂向下 C)模塊化 D)逐步求精【解析】 模塊化、自頂向下、逐步求精都是結(jié)構(gòu)化程序設計的原則;可封裝是面向?qū)ο蟪绦蛟O計原則。軟件詳細設計產(chǎn)生的圖如下:該圖是C。A)N-S圖 B)PAD圖 C)程序流程圖 D)ER圖【解析】 NS圖是由若干基本框圖構(gòu)成的流程圖,其特點是沒有流程線;PAD圖即問題分析圖(Problem Analysis Diagram),它是一種由左往右展開的二維樹形結(jié)構(gòu);程序流程圖用于描述問題解決的過程和步驟,其中方框表示處理步驟,菱形框表示邏輯判斷,箭頭表示控制流向;ER圖即實體聯(lián)系圖(Entity Relationship Diagram),用來描述現(xiàn)實世界的概念模型,構(gòu)成元素有實體、屬性和聯(lián)系,分別用矩形、橢圓形和菱形表示。本題答案為C)。數(shù)據(jù)庫管理系統(tǒng)是_B。A)操作系統(tǒng)的一部分 B)在操作系統(tǒng)支持下的系統(tǒng)軟件C)一種編譯系統(tǒng) D)一種操作系統(tǒng)【解析】 數(shù)據(jù)庫管理系統(tǒng)是指位于用戶與操作系統(tǒng)之間的數(shù)據(jù)管理軟件。數(shù)據(jù)庫管理系統(tǒng)是為數(shù)據(jù)庫建立、使用和維護而配置的軟件。在ER圖中,用來表示實體聯(lián)系的圖形是_C。A)橢圓形 B)矩形C)菱形 D)三角形【解析】 ER圖中用矩形表示實體(等同于表),用橢圓形表示實體的屬性(等同于表中字段),用菱形表示實體關系(等同于外鍵)。有三個關系R,S和T如下:RABCa12b21c31SABCd32TABCa12b21c31d32其中關系T由關系R和S通過某種操作得到,該操作為_D。A)選擇 B)投影 C)交 D)并【解析】 兩個相同結(jié)構(gòu)關系的并是由屬于這兩個關系的元組組成的集合。以下敘述中正確的是_D。A)程序設計的任務就是編寫程序代碼并上機調(diào)試B)程序設計的任務就是確定所用數(shù)據(jù)結(jié)構(gòu)C)程序設計的任務就是確定所用算法 D)以上三種說法都不完整【解析】 程序設計通常分為問題建模、算法設計、編寫代碼和編譯調(diào)試四個階段。所以選項A)、B)、C)說法都不完整。以下選項中,能用作用戶標識符的是_C。A)void B) 8_8C)_0_ D)unsigned【解析】 C語言的標識符命名規(guī)則為:只能由字母、數(shù)值和下劃線3種字符組成;第一個字符必須是字母或下劃線;不能與C語言中的關鍵字或保留字相同。閱讀以下程序:#include main()int case;float printF;printf(請輸入2個數(shù):);scanf(%d%f,&case,&printF);printf(% d%fn,case,printF);該程序在編譯時產(chǎn)生錯誤,其出錯原因是_A。A)定義語句出錯,case是關鍵字,不能用作用戶自定義標識符B)定義語句出錯,printF不能用作用戶自定義標識符C)定義語句無錯,scanf不能作為輸入函數(shù)使用D)定義語句無錯,printf不能輸出case的值【解析】 標識符不能與C編譯系統(tǒng)已經(jīng)預定義的、具有特殊用途的保留標識符(即關鍵字)同名,否則程序在編譯時會出現(xiàn)錯誤。題目源程序中使用了已經(jīng)預定義的關鍵字case,所以將出現(xiàn)錯誤。表達式:(int)(double)9/2)(9)%2的值是_B。A)0 B)3 C)4 D)5【解析】 (int)(double)9/2)的值為4,(9)%2的值為1,因此(int)(double)9/2)(9)%2的值為3。若有定義語句:intx10;,則表達式xxx的值為_B。A)20 B)10 C)0 D)10【解析】 xxx可化為:xx(xx),由于x初始值為10,所以計算后,x102010,因此選B)。有以下程序:#include main()inta1,b0;printf(%d,bab);printf(%dn,a2程序運行后的輸出結(jié)果是_D。A)0,0 B)1,0 C)3,2 D)1,2【解析】 執(zhí)行第一個printf語句時,bab1,所以輸出1,執(zhí)行第二個printf語句時,a2*b=2,所以輸出結(jié)果為2。設有定義:inta1,b2,c3;,以下語句中執(zhí)行效果與其他三個不同的是_C。A)if(ab)ca,ab,bc;B)if(ab)ca,ab,bc;C)if(ab)ca;ab;bc; D)if(ab)ca;ab;bc;【解析】 逗號表達式的求解過程是:按表達式順序從左往右依次求解。本題中由于判斷條件ab的值為假,所以選項A)、B)、D)中if語句后面的語句均未被執(zhí)行,而C)中的后兩條語句ab和bc被執(zhí)行,因此選項C)的執(zhí)行效果與其他三個不同。有以下程序:#includemain()intc0,k;for(k1;kb?(bc?1:0):0;功能相同的是_A。A)if(ab)&(bc)k1;elsek0; B)if(ab)(bc)k1;else k0;C)if(ab)k0;else if(bb)k1;elseif(bc)k1;elsek0;【解析】 表達式kab?(bc?10)0表示:如果(ab)條件為真,則k取值(bc?10),否則k取值0;當ab的情況下,如果bc,則k值為1,否則為0。所以該表達式與選項A)功能相同。有以下程序:#include main()char s012xy;int i,n0;for(i0;si!0;i) if (sia&siz)n;printf(%dn,n);程序運行后的輸出結(jié)果是_B。A)0 B)2 C)3 D)5【解析】 在字符串數(shù)組si中,只有當下標i3和i4時,才滿足if條件,所以n的值從0增加兩次,結(jié)果為2。有以下程序:#include main()intn2,k0;while(k&n2);printf(%d%dn,k,n);程序運行后的輸出結(jié)果是_D。A)02 B)13 C)57 D)12【解析】 本題考查邏輯運算符的短路現(xiàn)象,由于k的值為0,表達式首先去求k的值,因為表達式k的值為0,系統(tǒng)完全可以確定邏輯表達式的運算結(jié)果總是為0,因此將跳過n2,不再對它進行求值,即k的值加1,n的值不變。有以下定義語句,編譯時會出現(xiàn)編譯錯誤的是_C。A)charaa;B)charan;C)charaaa; D)charax2d;【解析】 aa是字符串,不用加上單引號。有以下程序:#include main()char cl,c2;clA84;c2A85;printf(%c,%dn,cl,c2);已知字母A的ASCIl碼為65,程序運行后的輸出結(jié)果是_A。A)E,68 B)D,69 C)E,D D)輸出無定值【解析】 c1輸出字符的ASCII碼比字母A大4,即字母E;c2以十進制數(shù)字形式輸出,因此可以判斷本題答案為A)。有以下程序:#include voidfun(int p)int d2;pd;printf(%d,p);main()inta1;fun(a);printf(%dn,a);程序運行后的輸出結(jié)果是_C。A)32 B)12C)21 D)22【解析】 程序運行后,首先輸出的是p的值,然后輸出a的值。pd,得到p的值為d的初始值2;a的值不變,仍為1。以下函數(shù)findmax擬實現(xiàn)在數(shù)組中查找最大值并作為函數(shù)值返回,但程序中有錯導致不能實現(xiàn)預定功能。#define MIN 2147483647int findmax(intx,int n)inti,max;for(i0;in;i)maxMIN; if(maxxi) maxxi;returnmax;造成錯誤的原因是_D。A)定義語句int i,max;中max未賦初值B)賦值語句maxMIN;中,不應給max賦MIN值C)語句if(maxxi)maxxi;中判斷條件設置錯誤 D)賦值語句maxMIN;放錯了位置【解析】 對max賦初值,應該放在循環(huán)語句之前,不然每次循環(huán)都將是從MIN開始比較。有以下程序:#include main()int m1,n2,*p&m,*q&n,*r;rp;pq;qr;printf(%d,%d,%d,%dn,m,n,*p,*q);程序運行后的輸出結(jié)果是_B。A)1,2,1,2 B)1,2,2,1 C)2,1,2,1 D)2,1,1,2【解析】 m和n的值不變,輸出結(jié)果為1,2。指針*p和*q交換了指向的位置,即*p&n,*q&m,輸出結(jié)果分別為2,1。若有定義語句:inta410,*p,*q4;且0i4,則錯誤的賦值是_A。A)pa B)qiai C)pai D)p&a21【解析】 直接將二維數(shù)組a賦給p不合法,兩者類型不匹配。有以下程序:#include #include main()char str20Qne*World,one*Dream!,*pstr1;printf(%d,strlen(p);printf(%sn,p);程序運行后的輸出結(jié)果是_C。A)9,One*World B)9,One*Dream! C)10,One*Dream! D)10,One*World【解析】 可以將二維數(shù)組str看成是一個特殊的一維數(shù)組,其元素也是一個數(shù)組。那么,str0為One*World,str1為One*Dream!。有以下程序:#include main()inta2,3,5,4,i;for(i0;i4;i)switch(i%2)case 0:switch(ai%2)case 0:ai;break; case 1:ai;break;case 1:ai0;for(i0;i4;i)printf(%d,ai);printf(n);程序運行后的輸出結(jié)果是_C。A)3 3 4 4 B)2 0 5 0 C)3 0 4 0 D)0 3 0 4【解析】 第一次循環(huán),i0,i%20,a0%20,a0a013;第二次循環(huán),i1,1%21,a10;第三次循環(huán),i2,a2%21,a2a214;第四次循環(huán),i3,i%21,a30。有以下程序:#include #include main()char a10abcd; printf(%d,%dn,strlen(a),sizeof(a);程序運行后的輸出結(jié)果是_B。A)7,4 B)4,10 C)8,8 D)10,10【解析】 strlen()用來返回字符串的長度,而sizeof()返回的是一個對象或者類型所占的內(nèi)存字節(jié)數(shù),即數(shù)組所占的內(nèi)存。下面是有關C語言字符數(shù)組的描述,其中錯誤的是_D。A)不可以用賦值語句給字符數(shù)組名賦字符串B)可以用輸入語句把字符串整體輸入給字符數(shù)組C)字符數(shù)組中的內(nèi)容不一定是字符串 D)字符數(shù)組只能存放字符串【解析】 字符數(shù)組中的內(nèi)容既可以是字符,也可以是字符串,選項D)說法不正確。下列函數(shù)的功能是_A。fun(char*a,char*b)while(*b*a)!0)a;b;A)將a所指字符串賦給b所指空間B)使指針b指向a所指字符串C)將a所指字符串和b所指字符串進行比較 D)檢查a和b所指字符串中是否有0【解析】 表達式*b*a是將a所指的字符賦給b所指的空間,然后,指針a和b依次后移,直到到達指針a所指字符串的結(jié)尾。設有以下函數(shù):void fun(int n,char*s) 則下面對函數(shù)指針的定義和賦值均正確的是_A。A)void(*pf)();pffun;B)void*pf(); pffun;C)void*pf();*pffun;D)void(*pf)(int,char);pf&fun;【解析】 函數(shù)指針的定義形式是:數(shù)據(jù)類型標識符(*指針變量名)()。void(*pf)()定義了一個沒有返回值的函數(shù)指針pf,在給函數(shù)指針變量賦值時,只需給出函數(shù)名而不必給出參數(shù)。所以給pf賦值時,只把函數(shù)名fun賦給pf即可。所以正確答案為選項A)。有以下程序:#include int f(int n);main()int a3,s;sf(a);ssf(a);printf(%dn,s);int f(int n)static int a1;na;return n;程序運行后的輸出結(jié)果是_C。A)7 B)8 C)9 D)10【解析】 sf(a)表達式第一次調(diào)用f(n)函數(shù)時,f(n)函數(shù)運行結(jié)果為n4,a2,即s等于4;ssf(a)表達式第二次調(diào)用f(n)函數(shù)時,f(n)函數(shù)運行結(jié)果為n5,所以得到s值為9。有以下程序:#include #define f(x) x*x*xmain()int a3,s,t;sf(a1);tf(a1);printf(%d,%dn,s,t);程序運行后的輸出結(jié)果是_A。A)10,64 B)10,10C)64,10 D)64,64【解析】 s=f(a+1)=a+1*a+1*a+1=10;s=f(a+1)=(a+1)*(a+1)*(a+1)=64。下面結(jié)構(gòu)體的定義語句中,錯誤的是_B。A)structordintx;inty;intz;structorda;B)structordintx;inty;intz;structorda;C)structordintx;inty;intz;a; D)structintx;inty;intz;)a;【解析】 定義結(jié)構(gòu)體變量有三種方式:先聲明結(jié)構(gòu)體類型,再定義變量名,如選項A)所示;在聲明類型的同時定義變量,如選項C)所示;直接定義結(jié)構(gòu)體類型變量,如選項D)所示。設有定義:char*c;,以下選項中能夠使字符型指針c正確指向一個字符串的是_A。A)char strstring;cstr;B)scanf(%s,c);C)cgetchar(); D)*cstring;【解析】 選項B)、D)中,沒有為字符串分配空間,因此不能用c指向字符串。選項C)中getchar()函數(shù)返回一個字符,不能將字符賦給字符指針c。選項A)中首先定義了字符數(shù)組str,然后將str的首地址賦給指針c,這樣就使指針c指向了字符串string。有以下程序:#include#includestruct Aint a;char b10;double c;struct A f(struct A t);main()struct A a1001,ZhangDa,1098.0);af(a); printf(%d,%s,%6.1fn,a.a,a.b,a.c);struct A f(struct A t)ta1002;strcpy(t.b,changRong);t.c1202.0;return t;程序運行后的輸出結(jié)果是_D。A)1001,ZhangDa,1098.0B)1002,ZhangDa,1202.0C)1001,ChangRong,1098.0 D)1002,ChangRong,1202.0【解析】 在主函數(shù)中,通過af(a)實現(xiàn)函數(shù)調(diào)用,所以輸出的結(jié)構(gòu)體變量相應變?yōu)?002,ChangRong,1202.0。若有以下程序段:intr8;printf(%dn,r1);輸出結(jié)果是_C。A)16 B)8 C)4 D)2【解析】 8用二進制表示為1000,右移1位后為0100,即十進制4。下列關于C語言文件的敘述中正確的是_C。A)文件由一系列數(shù)據(jù)依次排列組成,只能構(gòu)成二進制文件B)文件由結(jié)構(gòu)序列組成,可以構(gòu)成二進制文件或文本文件C)文件由數(shù)據(jù)序列組成,可以構(gòu)成二進制文件或文本文件 D)文件由字符序列組成,其類型只能是文本文件【解析】 文件由數(shù)據(jù)序列組成,可以構(gòu)成二進制文件,也可以構(gòu)成文本文件。某二叉樹有5個度為2的結(jié)點以及3個度為1的結(jié)點,則該二叉樹中共有_【1】14_個結(jié)點?!窘馕觥?在二叉樹中,度為0的結(jié)點數(shù)是度為2的結(jié)點數(shù)加1,故二叉樹中結(jié)點數(shù)的總和為度為0的結(jié)點數(shù)、度為1的結(jié)點數(shù)及度為2的結(jié)點數(shù)三者相加,得出結(jié)果為14個結(jié)點。程序流程圖中的菱形框表示的是_【2】邏輯判斷_。【解析】 繪制流程圖時事實描述用橢圓形表示、行動方案用矩形表示、問題用菱形表示、箭頭代表流動方向。軟件開發(fā)過程主要分為需求分析、設計、編碼與測試四個階段,其中 _【3】需求分析_ 階段產(chǎn)生軟件需求規(guī)格說明書?!窘馕觥?需求分析階段的工作主要包括需求獲取、需求分析、編寫需求規(guī)格說明書和需求評審等四方面,產(chǎn)生的主要文檔為軟件需求規(guī)格說明書,它可以為用戶、分析人員和設計人員之間的交流提供方便,直接支持目標軟件系統(tǒng)的確認,也可以作為控制軟件開發(fā)進程的依據(jù)。在數(shù)據(jù)庫技術中,實體集之間的聯(lián)系可以是一對一或一對多或多對多的,那么學生和可選課程的聯(lián)系為_【4】多對多_?!窘馕觥?一名學生可以選擇多門課程,一門課程也可以由多名學生選擇,因此是多對多的聯(lián)系。人員基本信息一般包括:身份證號,姓名,性別,年齡等。其中可以作為主關鍵字是_【5】身份證號_?!窘馕觥?主關鍵字是表中區(qū)別不同的記錄的標識,在該表中只有身份證號能具有這個作用,所以用其作為主關鍵字。若有定義語句:int a5;,則表達式:a的值是_【6】5_?!窘馕觥?a的含義是在使用a值以后,使a值加1,所以a的值為5。若有語句double x17;int y;,當執(zhí)行y(int)(x/5)%2;之后y的值為_【7】1_?!窘馕觥?y(int)(x/5)%2(int)(3.4)%23%21。以下程序運行后的輸出結(jié)果是 _【8】1 0_。#include main()intx20;printf(%d,0x20);printf(%dn,0x&x0|x0&x20)的值,該值為假,即為0。以下程序運行后的輸出結(jié)果是_【9】5_。#include main()int a1,b7;dobb/2; ab; while(b1);printf(%dn,a);【解析】 第一次循環(huán)執(zhí)行后,b3,a4,滿足條件b1,循環(huán)繼續(xù);第二次循環(huán)執(zhí)行后,b1,a5,不滿足條件b1,結(jié)束循環(huán)。所以輸出的a值為5。有以下程序:#includemain()int f,fl,f2,i;f10;f21;printf(%d%d,f1,f2);for(i3;i5;i) ff1f2;printf(%d,f);f1f2;f2f;printf(n);程序運行后的輸出結(jié)果是_【10】0 1 123_?!窘馕觥?第一個printf語句輸出結(jié)果為0 1。循環(huán)體總共循環(huán)三次,第一次循環(huán)結(jié)果為,f1,f11,f21;第二次循環(huán)結(jié)果為f2,f11,f22;第三次循環(huán)結(jié)果為f3,f

溫馨提示

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

評論

0/150

提交評論