2012年3月份全國計算機等級考試二級C語言_筆試 上機題庫.docx_第1頁
2012年3月份全國計算機等級考試二級C語言_筆試 上機題庫.docx_第2頁
2012年3月份全國計算機等級考試二級C語言_筆試 上機題庫.docx_第3頁
2012年3月份全國計算機等級考試二級C語言_筆試 上機題庫.docx_第4頁
2012年3月份全國計算機等級考試二級C語言_筆試 上機題庫.docx_第5頁
已閱讀5頁,還剩106頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

2012年3月份全國計算機等級考試二級C語言筆試+上機題庫(全)一、選擇題在下列各題的A)、B)、C)、D)四個選項中,只有一個選項是正確的,請將正確的選項涂寫在答題卡相應位置上,答在試卷上不得分。(1)為了避免流程圖在描述程序邏輯時的靈活性,提出了用方框圖來代替傳統的程序流程圖,通常也把這種圖稱為A)PAD圖B)N-S圖C)結構圖D)數據流圖(2)結構化程序設計主要強調的是A)程序的規模B)程序的效率C)程序設計語言的先進性D)程序易讀性(3)為了使模塊盡可能獨立,要求A)模塊的內聚程度要盡量高,且各模塊間的耦合程度要盡量強B)模塊的內聚程度要盡量高,且各模塊間的耦合程度要盡量弱C)模塊的內聚程度要盡量低,且各模塊間的耦合程度要盡量弱D)模塊的內聚程度要盡量低,且各模塊間的耦合程度要盡量強(4)需求分析階段的任務是確定A)軟件開發方法B)軟件開發工具C)軟件開發費用D)軟件系統功能(5)算法的有窮性是指A)算法程序的運行時間是有限的B)算法程序所處理的數據量是有限的C)算法程序的長度是有限的D)算法只能被有限的用戶使用(6)對長度為n的線性表排序,在最壞情況下,比較次數不是n(n-1)/2的排序方法是A)快速排序B)冒泡排序C)直接插入排序D)堆排序(7)如果進棧序列為e1,e2,e3,e4,則可能的出棧序列是A)e3,e1,e4,e2B)e2,e4,e3,e1C)e3,e4,e1,e2D)任意順序(8)將E-R圖轉換到關系模式時,實體與聯系都可以表示成A)屬性B)關系C)鍵D)域(9)有三個關系R、S和T如下:RBCDa0k1b1n1SBCDf3h2a0k1n2x1TBCDa0k1由關系R和S通過運算得到關系T,則所使用的運算為A)并B)自然連接C)笛卡爾積D)交(10)下列有關數據庫的描述,正確的是A)數據處理是將信息轉化為數據的過程B)數據的物理獨立性是指當數據的邏輯結構改變時,數據的存儲結構不變C)關系中的每一列稱為元組,一個元組就是一個字段D)如果一個關系中的屬性或屬性組并非該關系的關鍵字,但它是另一個關系的關鍵字,則稱其為本關系的外關鍵字(11)以下敘述中正確的是A)用C程序實現的算法必須要有輸入和輸出操作B)用C程序實現的算法可以沒有輸出但必須要有輸入C)用C程序實現的算法可以沒有輸入但必須要有輸出D)用C程序實現的算法可以既沒有輸入也沒有輸出(12)下列可用于C語言用戶標識符的一組是A)void,define,WORDB)a3_3,_123,CarC)For,-abc,IFCaseD)2a,DO,sizeof(13)以下選項中可作為C語言合法常量的是A)-80B)-080C)-8e1.0D)-80.0e(14)若有語句:char*line5;,以下敘述中正確的是A)定義line是一個數組,每個數組元素是一個基類型為char為指針變量B)定義line是一個指針變量,該變量可以指向一個長度為5的字符型數組C)定義line是一個指針數組,語句中的*號稱為間址運算符D)定義line是一個指向字符型函數的指針(15)以下定義語句中正確的是A)inta=b=0;B)charA=65+1,b=b;C)floata=1,*b=&a,*c=&b;D)doub(16)有以下程序段charch;intk;ch=a;k=12;printf(%c,%d,ch,ch,k);printf(k=%dn,k);已知字符a的ASCII碼值為97,則執行上述程序段后輸出結果是A)因變量類型與格式描述符的類型不匹配輸出無定值B)輸出項與格式描述符個數不符,輸出為零值或不定值C)a,97,12k=12D)a,97,k=12(17)有以下程序main()inti,s=1;for(i=1;i=2&c=2&c=2&cb)a=b;c=a;if(c!=a)c=b;printf(%d,%d,%dn,a,b,c);其輸出結果是A)程序段有語法錯B)3,5,3C)3,5,5D)3,5,7(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=%dn,a,b);程序的運行結果是A)a=1,b=0B)a=2,b=2C)a=1,b=1D)a=2,b=1(21)下列程序的輸出結果是#includestdio.hmain()inti,a=0,b=0;for(i=1;i10;i+)if(i%2=0)a+;continue;b+;printf(a=%d,b=%d,a,b);A)a=4,b=4B)a=4,b=5C)a=5,b=4D)a=5,b=5(22)已知#intt=0;while(t=1).則以下敘述正確的是A)循環控制表達式的值為0B)循環控制表達式的值為1C)循環控制表達式不合法D)以上說法都不對(23)下面程序的輸出結果是main()inta10=1,2,3,4,5,6,7,8,9,10,*p=a;printf(%dn,*(p+2);A)3B)4C)1D)2(24)以下錯誤的定義語句是A)intx3=0,1,1,2,3;B)intx43=1,2,3,1,2,3,1,2,3,1,2,3;C)intx4=1,2,3,1,2,3,1,2,3,1,2,3;D)intx3=1,2,3,4;(25)有以下程序voidss(char*s,chart)while(*s)if(*s=t)*s=t-a+A;s+;main()charstr1100=abcddfefdbd,c=d;ss(str1,c);printf(%sn,str1);程序運行后的輸出結果是A)ABCDDEFEDBDB)abcDDfefDbDC)abcAAfefAbAD)Abcddfefdbd(26)有如下程序main()charch25=6937,8254,*p2;inti,j,s=0;for(i=0;i2;i+)pi=chi;for(i=0;i0;j+=2)s=10*s+pij-0;printf(%dn,s);該程序的輸出結果是A)69825B)63825C)6385D)693825(27)有定義語句:chars10;,若要從終端給s輸入5個字符,錯誤的輸入語句是A)gets(&s0);B)scanf(%s,s+1);C)gets(s);D)scanf(%s,s1);(28)以下敘述中錯誤的是A)在程序中凡是以#開始的語句行都是預處理命令行B)預處理命令行的最后不能以分號表示結束C)#defineMAX是合法的宏定義命令行D)C程序對預處理命令行的處理是在程序執行的過程中進行的(29)設有以下說明語句typedefstructintn;charch8;PER;則下面敘述中正確的是A)PER是結構體變量名B)PER是結構體類型名C)typedefstruct是結構體類型D)struct是結構體類型名(30)以下敘述中錯誤的是A)gets函數用于從終端讀入字符串B)getchar函數用于從磁盤文件讀入字符C)fputs函數用于把字符串輸出到文件D)fwrite函數用于以二進制形式輸出數據到文件(31)以下能正確定義一維數組的選項是A)inta5=0,1,2,3,4,5;B)chara=0,1,2,3,4,5,0;C)chara=A,B,C;D)inta5=0123;(32)有以下程序#includemain()charp=a,b,c,q10=a,b,c;printf(%d%dn,strlen(p),strlen(q);以下敘述中正確的是A)在給p和q數組置初值時,系統會自動添加字符串結束符,故輸出的長度都為3B)由于p數組中沒有字符串結束符,長度不能確定,但q數組中字符串長度為3C)由于q數組中沒有字符串結束符,長度不能確定,但p數組中字符串長度為3D)由于p和q數組中都沒有字符串結束符,故長度都不能確定(33)有以下程序#include#includefor(i=0;in-1;i+)for(j=i+1;jstrlen(sj)t=si;si:sj;sj=t;main()fun(ss,5);printf(%s,%sn,ss0,ss4);程序的運行結果是A)xy,aaaaccB)aaaacc,xyC)bcc,aabccD)aabcc,bcc(34)有以下程序#includeintf(intx)inty;if(x=0|x=1)return(3);-f(x-2);returny;main()intz;z=f(3);printf(%dn,z);程序的運行結果是A)0B)9C)6D)8(35)下面程序段的運行結果是charstr=ABC,*p=str;printf(%dn,*(p+3);A)67B)0C)字符C的地址D)字符C(36)若有以下定義:structlinkintdata;structlink*next;a,b,c,*p,*q;且變量a和b之間已有如下圖所示的鏈表結構:指針p指向變量a,q指向變量c。則能夠把c插入到a和b之間并形成新的鏈表的語句組是:A)a.next=c;c.next=b;B)p.next=q;q.next=p.next;C)p-next=&c;q-next=p-next;D)(*p).next=q;(*q).next=&b;(37)對于下述程序,在方式串分別采用wt和wb運行時,兩次生成的文件TEST的長度分別是#includevoidmain()FILE*fp=fopen(TEST,);fputc(A,fp);fputc(n,fp);fputc(B,fp);fputc(n,fp);fputc(C,fp);fclose(fp);A)7字節、7字節B)7字節、5字節C)5字節、7字節D)5字節、5字節(38)變量a中的數據用二進制表示的形式是01011101,變量b中的數據用二進制表示的形式是11110000。若要求將a的高4位取反,低4位不變,所要執行的運算是A)abB)a|bC)a&bD)a4(39)下面的程序段運行后,輸出結果是inti,j,x=0;staticinta88;for(i=0;i3;i+)for(j=0;j3;j+)aij=2*i+j;for(i=0;i8;i+)x+=aij;printf(%d,x);A)9B)不確定值C)0D)18(40)下列程序執行后的輸出結果是voidfunc(int*a,intb)b0=*a+6;main()inta,b5;a=0;b0=3;func(&a,b);printf(%dn,b0);A)6B)7C)8D)9二、填空題請將每一個空的正確答案寫在答題卡序號的橫線上,答在試卷上不給分。(1)測試的目的是暴露錯誤,評價程序的可靠性;而【1】的目的是發現錯誤的位置并改正錯誤。(2)某二叉樹中度為2的結點有18個,則該二叉樹中有【2】個葉子結點。(3)當循環隊列非空且隊尾指針等于隊頭指針時,說明循環隊列已滿,不能進行入隊運算。這種情況稱為【3】。(4)在關系模型中,把數據看成一個二維表,每一個二維表稱為一個【4】。(5)在計算機軟件系統的體系結構中,數據庫管理系統位于用戶和【5】之間。(6)以下程序的輸出結果是【6】。main()charc=z;printf(%c,c-25);(7)閱讀下面語句,則程序的執行結果是【7】。#includestdio.hmain()inta=-1,b=1,k;if(+a0)&!(b-4)printf(%dn,i);break;printf(%dn,i+);(9)以下程序的定義語句中,x1的初值是【9】,程序運行后輸出的內容是【10】。#includemain()for(i=0;i4;i+)pi=&x2*i+1;printf(%d,pi0);printf(n);)(10)以下程序的輸出結果是【11】。#includet=a;a=b;b=t;main()swap(p,q);printf(%d%dN,*p,*q)(11)以下程序的輸出結果是【12】。main()chars=ABCD,*p;for(p=s+1;p=2&c=6)的整型變量c的值是2,3,4,5,6。當變量c的值不為2,4,6時,其值只能為3或5,所以表達式c!=3和c!=5中至少有一個為真,即不論c為何值,選項B中的表達式都為真。(19)B【解析】兩個if語句的判斷條件都不滿足,程序只執行了c=a這條語句,所以變量c的值等于3,變量b的值沒能變化,程序輸出的結果為3,5,3。所以正確答案為B)。(20)D【解析】本題考查switch語句,首先,x=1符合條件case1,執行switch(y)語句,y=0符合case0語句,執行a+并跳出switch(y)語句,此時a=1。因為case1語句后面沒有break語句,所以向后執行case2語句,執行a+,b+,然后跳出switch(x),得a=2,b=1。(21)B【解析】continue語句的作用是跳過本次循環體中余下尚未執行的語句,接著再一次進行循環條件的判定。當能被2整除時,a就會增1,之后執行continue語句,直接執行到for循環體的結尾,進行i+,判斷循環條件。(22)B【解析】t=1是將t賦值為1,所以循環控制表達式的值為1。判斷t是否等于1時,應用t=1,注意=與=的用法。(23)A【解析】在C語言中,數組元素是從0開始的。指針變量p指向數組的首地址,(p+2)就會指向數組中的第3個元素。題目中要求輸出的是元素的值。(24)C【解析】本題考查的是二維數組的定義和初始化方法。C語言中,在定義并初始化二維數組時,可以省略數組第一維的長度,但是不能省略第二維的長度。故選項C)錯誤。(25)B【解析】在內存中,字符數據以ASCII碼存儲,它的存儲形式與整數的存儲形式類似。C語言中,字符型數據和整型數據之間可以通用,也可以對字符型數據進行算術運算,此時相當于對它們的ASCII碼進行算術運算,在本題中,s+相當于s=s+1,即讓s指向數組中的下一個元素。(26)C【解析】該題稍微難一點。主要要搞清楚以下幾點:定義了一個指針數組char*p2后,程序中第一個循環for(i=0;i2;i+)pi=chi;的作用,是使指針數組的p0元素(它本身是一個指針)指向了二維數組ch的第一行字符串,并使指針數組的p1元素指向二維數組ch的第二行字符串,這樣,就使指針數組p和二維數組ch建立起了一種對應關系,以后對二維數組ch的某個元素的引用就有兩種等價的形式:chij或pij。對二維數組ch的初始化,使其第一行ch0中存入了字符串6937,第二行ch1中的內容為字符串8254。程序中第二個循環中的循環體s=s*10+pij-0;的功能是這樣的,每執行一次,將s中的值乘以10(也即,將s中的數值整體向左移動一位,并在空出來的個位上添一個0),再將當前pij中的字符量轉換為相應的數字,然后把這個數字加到s的個位上。注意到內層循環的循環條件0是指pij中的字符只要不是字符串結束標志0就繼續循環,語句j+=2;是使下標j每次增加2,也即一個隔一個地從pi所指向的字符串中取出字符。經過上述解析后,不難看出,該程序首先從p0所指向的字符串6937中一個隔一個地取出字符,分別是6和3,然后從p1所指向的字符串8254中一個隔一個地取出字符,分別是8和5,同時經過轉換和相加運算后,結果s中的值應該是6385。(27)D【解析】在格式輸入中,要求給出的是變量的地址,而D)答案中給出的s1是一個值的表達式。(28)D【解析】C語言中的預處理命令以符號#開頭,這些命令是在程序編譯之前進行處理的,選項D)的描述錯誤。(29)B【解析】本題中,typedef聲明新的類型名PER來代替已有的類型名,PER代表上面指定的一個結構體類型,此時,也可以用PER來定義變量。(30)B【解析】getchar函數的作用是從終端讀入一個字符。(31)B【解析】選項A)中,定義的初值個數大于數組的長度;選項C)中,數組名后少了中括號;選項D)中,整型數組不能賦予字符串。(32)A【解析】在給p和q數組賦初值時,系統會自動添加字符串結束符,從題目中可以看出數組p和q都有3個字符,所以長度均為3。(33)A【解析】函數fun(char*s,intn)的功能是對字符串數組的元素按照字符串的長度從小到大排序。在主函數中執行fun(ss,5)語句后,*ss=xy,bcc,bbcc,aabcc,aaaacc,ss0,ss4的輸出結果為xy,aaaacc。(34)C【解析】函數intf(intx)是一個遞歸函數調用,當x的值等于0或1時,函數值等于3,其他情況下y=x2-f(x-2),所以在主函數中執行語句z=f(3)時,y=3*3-f(3-2)=9-f(1)=9-3=6。(35)B【解析】考查指向字符串的指針變量。在該題中,指針變量p指向的應該是該字符串中的首地址,p+3指向的是字符串結束標志0的地址,因而*(p+3)的值為0。(36)D【解析】本題考查鏈表的數據結構,必須利用指針變量才能實現,即一個結點中應包含一個指針變量,用它存放下一結點的地址。(37)B【解析】以wt方式寫入的是字符文件,轉義字符n被看作兩個字符來處理。而wb方式寫入的是二進制文件,轉義字符n是一個字符。(38)A【解析】本題考查的是位運算的知識,對于任何二進制數,和1進行異或運算會讓其取反,而和0進行異或運算不會產生任何變化。(39)C【解析】本題主要考查的是用二維數組首地址和下標來引用二維數組元素的方法。通

溫馨提示

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

評論

0/150

提交評論