筆試模擬題二級語言模擬_第1頁
筆試模擬題二級語言模擬_第2頁
筆試模擬題二級語言模擬_第3頁
筆試模擬題二級語言模擬_第4頁
筆試模擬題二級語言模擬_第5頁
已閱讀5頁,還剩9頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、二級C語言筆試模擬312一、選擇題1、下列敘述中正確的是。A線性表的鏈式 B線性表的鏈式 C線性表的鏈式 D線性表的鏈式結構與順序 結構所需要的結構所需要的結構與順序結構所需要的空間是相同的空間一般要多于順序空間一般要少于順序結構結構結構在空間的需求上沒有可比性2、下列敘述中正確的是。 A棧是一種先進先出的線性表 C棧與隊列都是非線性結構B隊列是一種后進先出的線性表 D以上三種說法都不對3、測試的目的是。A評估可靠性B發現并改正程序中的錯誤 D發現程序中的錯誤C改正程序中的錯誤4、在開發中,需求分析階段產生的主要文檔是。A集成測試計劃B詳細設計說明書C用戶手冊D需求規格說明書5、生命周期是指。

2、A B C D產品從提出、實現、使用到停止使用退役的過程從需求分析、設計、實現到測試完成的過程的開發過程的運行過程6、面象方法中,繼承是指。A一組對象所具有的相似性質 C各對象之間的共同性質B一個對象具有另一個對象的性質 D類之間共享屬性和操作的機制7、層次型、網狀型和關系型數據庫劃分原則是。A長度B文件的大小C聯系的復雜程度D數據之間的8、一個可以使用多臺計算機,而一臺計算機可被多個人使用,則實體與實體計算機之間的聯系是。A一對一B一對多C多對多D多對一9、數據庫設計中反映用戶對數據要求的模式是。A內模式B概念模式C外模式D設計模式10、有三個關系R、S和T如下:RABCa12b21ST則由

3、關系R和S得到關系T的操作是。A自然連接B差C交D并11、計算機能直接執行的程序是。A源程序B目標程序C匯編程序D可執行程序12、以下敘述中正確的是。AC語言規定必須用main作為主函數名,程序將從此開始執行 B可以在程序中由用戶指定任意一個函數作為主函數,程序將從此開始執行 CC語言程序將從源程序中第一個函數開始執行Dmain的各種大小寫拼寫形式都可以作為主函數名,如MAain等13、以下選項中可用做C程序合法實數的是。A3.0e0.2B.1e0CE9D9.12E14、下列定義變量的語句中錯誤的是。A_;Bdouble_;Cchar For;Dfloat US$;15、表達式:()(doub

4、le)9/2)-9%2的值是。A0B3C4D516、設變量均已正確定義,若要通過scanf(%d% c% d%c,a1,c1,a2,c2);語句為變量a1和a2賦數值10和20,為變量c1和c2賦字符X和Y。以下所示的輸入形式中正確的是。(注:代表空格字符)A10X回車 20Y回車 B10X20Y回車 C10X回車 20Y回車 D10X20Y回車17、以下選項中不能作為C語言合法常量的是。A0.1e+6BcdCaD01118、if語句的基本形式是:if(表達式)語句,以下關于“表達式”值的敘述中正確的是。A必須是邏輯值 C必須是正數B必須是整數值 D可以是任意合法的數值19、有如下嵌套的if語

5、句:ABCc31ABCa12b21c31if(ab) if(ac)k=a;else elsek=c;if(bc)k=b;elsek=c;以下選項中與上述if語句等價的語句是。Ak=(ab)?(bc)?a:b):(bc)?b:c);Bk=(ab)?(ac)?a:c):(bc)?b:c); Ck=(ab)?a:b;k=(bc)?b:c;Dk=(ab)?a:b;k=(ac)?a:c;20、有以下程序: #includestdio.h main()k=5;while(-k)prf(%d,k-=3);prf(n);程序執行后的輸出結果是。A1B2C4D死循環21、有以下程序: #includestdio

6、.h main()i,j;for(i=3;i=1;i-)prfor(j=1;j=2;j+)pr f(n);f(%d,i+j);程序運行后的輸出結果是。A4 2 54 3B4 3 42 3C2 3 44 5D2 3 42 3353322、有以下程序: #includestdio.h main()dok=5,n=0;switch(k)case 1:case 3:n+=1;k-;break;default:n=0;k-;case 2:case 4:n+=2;k-;break;prf(%d,n);while(k0n5);程序運行后的輸出結果是。A02356B0235C235D235623、以下關于re

7、turn語句的敘述中正確的是。A一個自定義函數中必須有一條return語句 B一個自定義函數中可以根據不同情況設置多條return語句 C定義成void類型的函數中可以有帶返回值的return語句 D沒有return語句的自定義函數在執行結束時不能返回到調用處24、已定義以下函數:fun(* p)return * p;fun函數的返回值是。A一個整數B不確定的值C形參p中存放的值D形參p的地址值25、以下程序段完全正確的是。A C* p;scanf(%d,p);* p=k;scanf(%d,p);BD* p;scanf(%d,p);k * p;*p=k;scanf(%d,p);26、設有定義:

8、double a10,*s=a;以下能夠代表數組元素a3的是。A(*s)3B*(s+3)C*s3D*s+327、有以下程序: #includestdio.hvoid f(*q) i=0;for(;i5;i+)(*q)+;main()f(a);a5=1,2,3,4,5,i;for(i=0;i5;i+)pr程序運行后的輸出結果是f(%d,ai);。A6,2,3,4,5,B2,2,3,4,5,C1,2,3,4,5,D2,3,4,5,6,28、有以下程序: #includestdio.hfun(*s)4,n,k)m,i;m=s0k;for(i=1;in;i+)if(sikm)m=sik; return

9、 m;main()a44=1,2,3,4,11,12,13,14,21,22,23,24,31,32,33,34;prf(%dn,fun(a,4,0);程序運行后的輸出結果是。A4B34C31D3229、以下選項中正確的語句組是。Achar*s;s=BOOK!;Cchar s10;s=BOOK!;Bchar*s;s=BOOK1; Dchar s;s=BOOK1;30、若有定義語句: char*s1=OK,*s2=ok;以下選項中,能夠輸出“OK”的語句是。Aif(strcmp(s1,s2)!=0)puts(s2); Cif(strcmp(s1,s2)=1)puts(s1);Bif(strcmp

10、(s1,s2)!=0)puts(s1); Dif(strcmp(s1,s2)=0)puts(s1);31、有以下程序: #includestdio.h void fun(char* *p)+p;prf(%sn,*p);main()char*a=Moming,Aftemoon,Evening,Night; fun(a);程序運行后的輸出結果是。AAfternoonBfternoonCMorningDorning32、有以下程序,程序中庫函數islower(ch)用以判斷ch中的字母是否為小寫字母: #includestdio.h#includectype.h void fun(char * p)

11、i=0;whil)if(pi=islow pi-1=pi-1-a+A; i+;i-1)main()char s1100=ab cd EFC!; fun(s1);prf(%sn,sl);程序運行后的輸出結果是。Aab cd EFg!BAb Cd EFg!CabcdEFG!DaBcDEFC!33、有以下程序: #includestdio.hf(x)y;if(x=0|x=1)return(3); y=x*x-f(x-2);return y;main()z; z=f(3);prf(%dn,z);程序運行后的輸出結果是。A0B9C6D834、有以下程序: #includestdio.hfun(x,n)s

12、icsum=0,i;for(i=0;in;i+)sum+=xi; return sum;main()a=1,2,3,4,5,b=6,7,8,9,s=0;s=fun(a,5)+fun(b,4);prf(%dn,s);程序執行后的輸出結果是。A55B50C45D6035、有以下結構體說明、變量定義和賦值語句: struct STDchar name10; age;char sex;s5,*ps; ps=s0;則以下scanf函數調用語句有錯誤的是。Ascanf(%s,);Cscanf(%c,(ps-sex);Bscallf(%d,s0.age);Dscanf(%d,ps-age);3

13、6、若有以下語句: typedef struct Sg;char h;T;以下敘述中正確的是。A可用S定義結構體變量 CS是struct類型的變量B可用T定義結構體變量 DT是struct S類型的變量37、有以下程序: #includestdio.h #includestring.h struct Aa;char b10;double;struct main()structc;A f(struc);A a=1001,ZhangDa,1098.0;a=f(a);prf(%d,%s,%6.lfn,a.a,a.b,a.c);struct A f(struc t.a=1002;)strcpy(t.b

14、,ChangRong); t.c=1202.0;return t;程序運行后的輸出結果是。A1002,ZhangDa,1202.0C1001,ChangRong,1098.0B1002,ChangRong,1202.0 D1001,ZhangDa,1098.038、設有宏定義:#define IsDIV(k,n)(k%n=1)?1:0)且變量m已正確定義并賦值,則宏調用: lsDIV(m,5)IsDIV(m,7)為真時所要表達的是。A判斷m是否能被5和7整除 C判斷m被5或者7整除是否余1B判斷m被5和7整除是否都余1 D判斷m是否能被5或者7整除39、有以下程序: #includestdio

15、.h main()a=1,b=2,c=3,x;x=(ab)c;prf(%dn,x);程序運行后的輸出結果是。A3B1C2D040、有以下程序: #includestdio.h main()FILE*fp;k,n,a6=1,2,3,4,5,6;f=fopen(d2.dat,w);fpr fprf(fp,%d%d%dn,a0,a1,a2);f(fp,%d%d%dn,a3,a4,a5);fclose(fp); fp=fopen(d2.dat,r);fscanf(fp,%d%d,k,n);prf(%d%dn,k,n);fclose(fp);程序運行后的輸出結果是。A12B14C123 4D123 45

16、6二、程序填空題41、下列給定程序中,函數fun的功能是:計算如下公式前n項的和并作為函數值返回。例如,當形參n的值為10時,函數返回值為9.612558。請在下畫線處填入正確的內容并將下畫線刪除,使程序得出正確的結果。注意:部分源程序在文件BL #includestdio.hl.C中,不得增行或刪行,也不得更改程序的結構!double fun(n)i;double s,t;/* * * * * * s=;* * * *found*/* * * * * * * * * *found* for(i=1;i=;i+) t=2.0*i;*/* * * * * * * * * *found*/s=s+

17、(2.0*i-1)*(2.0*i+1)/;return S:main()n=-1;while(n0)f(Please input(n0):);scanf(%d,n); f(nThe result is:%fn,fun(n); pr pr三、程序修改題42、下列給定程序中函數fun的功能是:統計substr所指的字符串在str所指的字符串中出現的次數。例如,若字符串為aaas lkaaas,子字符串為as,則應輸出2。請改正程序中的錯誤,使它能得出正確的結果。注意:部分源程序在文件MODI1.C中,不得增行或刪行,也不得更改的程序的結構!#includestdio.h fun(char*str,

18、char*substr)i,j,k,num=0;/* * * * * * * * * *found* * * * * * * for(i=0,stri,i+) for(j=i,k=0;substrk=strj;k+,j+)/* * * * * * * * * *found* * * * * * * lf(substrk+1=0)*/*/num+;break;return num;main()char str80,substr80;prf(Input a string:);gets(str);prf(Input a substring:);get prbstr); f(%dn,fun(str,s

19、ubstr);四、程序設計題43、編寫函數fun,其功能是:根據以下公式求的值(要求精度達到0.0005,即某項小于0.0005時停止迭代)。程序運行后,若輸入精度0.0005,則程序應輸出為3.14注意:部分源程序在文件PROG1.C中,數fun的花括號中填入你編寫的若干語句。#includestdio.h #includemath.h double fun(double eps)main()double x; void NONO();改動主函數mam和其他函數中的任何內容,僅在函prf(Input eps:);scanf(%lf,x);prf(neps=%lf,PI=%lfn,x,fun(

20、x);NONO();void NONO()/*本函數用于打開文件、輸入數據、調用函數、輸出數據、關閉文件。*/ FILE*fp,*wf;i; double x;fp=fopen(in.dat,r);wf=fopen(out.dat,w); for(i=0;i10;i+)fscanf(fp,%,x);fprf(wf,%lfn,fun(x);fclose(fp); fclose(wf);:一、選擇題1、B 線性鏈式結構中每個結點都由數據域與指針域兩部分組成,增加了空間,所以一般要多于順序2、D結構。3、D 棧是一種先進后出的線性表,隊列是一種先進先出的線性表,棧與隊列都是線性結構。測試是為了發現錯

21、誤而執行程序的過程,測試要以查找錯誤為中心,而不是為了演示軟件的正確功能,不是為了評估4、D或改正錯誤。 需求分析階段的工作可以概括為:需求獲取、需求分析、編寫需求規格說明書、需求評審四個方面。所以選擇D。5、A 通常將產品從提出、實現、使用到停止使用退役的過程稱為生命周期。也就是說, 6、D 產品從考慮其概念開始,到該產品不能使用為止的整個時期都屬于生命周期。 繼承是面象的方法的一個主要特征,是使用已有的類的定義作為基礎建立新類的定義技術。廣義地說,繼承是指能夠直接獲得已有的性質和特征,而不必重復定義它們,所以說繼承是指類之間共享屬性和操作的機制。7、D 層次模型的基本結構是樹形結構,網狀模

22、型是一個不加任何條件限制的無向圖,關系模型采用二維表來表示,所以三種數據庫的劃分原則是數據之間的8、C。 因為一個人可以操作多個計算機,而一臺計算機又可以被多個人使用,所以兩個實體之間是多對多的關系。9、C 數據庫系統的三級模式是概念模式、外模式和內模式。概念模式是數據庫系統中全局數據邏輯結構的描述,是全體用戶公共數據視圖。外模式也稱子模式或用戶模式,它是用戶的數據視圖,給出了每個用戶的局部數據描述,所以選擇C。內模式又稱物理模式,它給出了數據庫物理結構與物理存取方法。10、B 關系T中的元組是R關系中有而S關系中沒有的元組的集合,所以進行的是差運算。11、D 計算機能直接執行的程序是二進制的

23、可執行程序,擴展名為.exe,所以選擇D選項。12、A C語言中的主函數只能是main()函數,不能任意指定,所以B選項錯誤。C語言從主函數main()開始,到主函數main()結束,所以C選項錯誤。主函數必須寫成小寫的main,不能小寫,所以D選項錯誤。13、B大 A選項中e后面的指數必須為整數,所以錯誤。C語言規定,E之前必須要有數字,所以C選項錯誤。E后面必須要有數字,且必須為整數,所以D選項錯誤。14、D C語言規定,變量命名必須符合標識符名規則。D選項中包含了字符“$”,所以錯誤。標識符由字母、數字或下畫線組成,且第一個字符必須是大小寫英文字母或者下畫線,而不能是數字。大寫字符與小寫

24、字符被認為是兩個不同的字符,所以For不是關鍵字for。15、B 先將整型數據9強制轉換成double型,然后除以2得到的結果與douhle型保持一致,即為4.5,然后將4.5強制轉換成整型數據4,然后計算9%2的值為1,最后計算4-1的值為3,所以選擇B選項。16、C 輸入數據的格式必須與scanf()的格式控制串完全匹配,如果A、B、C選項中在數字10后面均輸入了空格,則會將空格賦給變量c1,而不是把X賦給c1,所以選擇C選項。17、B 要想表示字符串常量應該引號表示,即cc1,單引號用于表示字符常量,所以B選項中的表示方法錯誤。18、D if語句中的表達式可以是任意合法的數值,如常量、變

25、量表達式,所以D選項正確。19、B 題目中嵌套語句的含義是:當ab且ae成立,則將a的值賦給k;如果ab成立而ac不成立將c的值賦給k;如果ab不成立而bc成立,將b的值賦給k;如果如果ab不成立且bc也不成立,將c的值賦給k。判斷條件表達式只有B選項可以表示這個含義。20、A -k先自減再使用,所以第一次判斷條件即為while(4),條件為真,執行打印k的值k=4-3,結果為1;第二次判斷條件即為while(0),條件為假,結束循環,打印回車換行符。選擇 A選項。21、B 第一次執行外循環,i的值為3,第一次執行內循環j的值為1,j=2條件成立,打印i+j的值,即4;第二次執行內循環j的值為

26、2,j=2條件成立,打印i+j的值,即5;再判斷條件不成 立,打印回車換行符,跳出內循環。第二次執行外循環,i的值為2,內循環的執行同第一次一樣,所以打印3和4,打印回車換行,結束內循環。第三次執行外循環i的值為1,同理內循環中打印2和 3,打印回車換行符,結束內循環。22、C k的值為5,逐個對case語句進行匹配,均不匹配,執行default下的語句n=0;k-。再執行case2:case4:后面的語句n+=2;k-;。執行break語句跳出switch判斷,打印n的值,即2。經過第一次循環后,k的值為3,然后進行k0n5條件判斷為真。第二次執行循環體,執行case3:后面的語句n+=1;

27、k-;。再執行break語句跳出循環,此時打印n的值3,此時k的值為2。第三次執行循環體k的值為2,滿足條件,執行case2:case4:后面的語句n+=2;k-;。執行break語句跳出循環體,打印n的值5。此時n不滿足條件k0n5,所以結束循環。整個程序的打印結果為235。23、B 在函數中允許有多個return語句,但每次調用只能有一個return語句被執行,因此只能返回一個函數值。定義成void類型的函數,不允許從該函數取得返回值,也不允許使用return語句,C選項描述錯誤。沒有return語句的函數在執行到函數的最后一條語句后會自動返回到調用處,A、D選項描述錯誤,因此B選項正確。

28、24、A 返回值為指針變量指向的數據,該數據已被定義為整型,因此A選項正確。25、C A選項中錯在沒有對指針進行初始化,是無效指針,并且在scanf(%d,p)中無需再進行取地址操作;B選項中沒有對指針進行初始化,是無效指針;D選項中語句*p=k;的左端*p是指針所指內存空間的值,k是地址,應為p=k。C選項正確。26、B 語句*s=8;表示指針變量s指向一維數組a的首地址。a3表示數組a的第4個元素,*(s+i)表示確。27、A指針s所指數組a的第i+1個元素,選項A、C、D的表示方法錯誤,只有B選項正 本題考查的是函數的地址調用,將數組名作為數組首地址進行傳遞,然后取首個數組元素值進行加1

29、運算,循環5次,因此A選項正確。28、C 本題重點考查二維數組名作為實參進行參數傳遞在主函數中調用了fun函數,實參為二維數組名a和兩個整數4、0,這樣對應定義fun函數首部有三種形式,這里采用了第一種形式行指針,這樣在fun函數對sij進行操作實際上就是對主函數中的aij進行操作,再分析fun函數的作用便可知,是求二維數組第O列中最大的那個元素,因此C選項正確。29、B A選項去掉大括號就正確了;C選項和D選項應在定義時賦初值。B選項正確。30、B strcmp(s1,s2)是字符串比較函數,比較規則是兩個字符串自左向右逐個字符相比(按照ASCII碼值大小),以第一個不相同的字符的大小作為比

30、較結果。因為0。,所以 strcmp(s1,s2)為負值,只有B選項正確。31、A 本題主函數中定義了一個指針數組a,可以將它看成一個以字符指針為元素的一維數組。和一般的一維數組名能賦給同類型指針變量一樣,該字符指針數組也可以賦給指向字符指針的指針,所以數組名a可以用做函數fun()的實參。在fun()函數中,+p操作使形參p往后移動一個字符指針的位置,即指針a1的位置。故最后通過pr正確。32、Df()函數輸出的字符串為“Afternoon”,A選項 調用fun函數后,實參數組名s1傳給形參指針p,p也指向數組s1。fun函數的功能是遍歷字符數組中的所有字符,如果某一個字符是空格并且前一個字

31、符是小寫字母的話,就把前一個字符轉換為大寫。程序中語句pi-1=pi-1-a+A;即pi-1=pi-1-32,意思是將pi-1中的字符轉換為大寫,因此D選項正確。33、C 主函數中調用f函數,同時將數值3傳遞給變量x,執行條件不滿足條件if(x=0|x=1);跳過return(3);,直接執行語句y-x*x-f(x-2);這里f(x-2)為函數的遞歸調用,再次調用f函數,此時x=1,判斷條件成立,返回3給f(1),y=3*3-3=6,最后將6返回主函數,并進行輸 出,因此C選項正確。34、D靜態變量是始終存在的,當函數被調用退出后,靜態變量會保存數據,再次調用該函數時,以前調用時的數值仍然保留

32、著。fun(a,5)的值是15,再次調用后sum=15,所以fun(b,4)=45,s=45+15=60,因此D選項正確。 35、D 本題考查結構體的相關知識,題目中需要輸入一個變量,scanf要求參數為指針,而D選項中ps-age為一個變量,不是指針,所以錯誤。36、B 本題考查typedef重新一種結構體類型,那么T為結構體類型,而不是結構體變量,所以B選項正確。37、B 本題考查結構體變量的以及作為函數參數,題目雖然看似復雜,其實比較容易,f函數的參數是結構體變量,然后對參數重新賦值并返回,所以該題目的38、B為B選項。 本題考查邏輯運算符的相關概念,邏輯與若要為真,那么兩邊都要為真,即m都能被5和7整除都余1,所以選項B正確。39、A 本題考查位運算符以及相關運算,為按位或,為按位與,那么ab為3,再與c按位與仍然為3,所以40、D為A選項。 本

溫馨提示

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

評論

0/150

提交評論