計算機二級選擇題題庫_第1頁
計算機二級選擇題題庫_第2頁
計算機二級選擇題題庫_第3頁
計算機二級選擇題題庫_第4頁
計算機二級選擇題題庫_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

付費下載

下載本文檔

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

文檔簡介

選擇題題庫1.以下數(shù)據(jù)結構中,屬于非線性結構的是()。A)循環(huán)隊列B)帶鏈隊列C)二叉樹D)帶鏈棧1、參考答案:C【解析】樹是簡單的非線性結構,所以二叉樹作為樹的一種也是一種非線性結構。2.以下數(shù)據(jù)結構中,能夠按照"先進后出"原那么存取數(shù)據(jù)的是()。A)循環(huán)隊列B)棧C)隊列D)二叉樹2、參考答案:B【解析】棧是按先進后出的原那么組織數(shù)據(jù)的。隊列是先進先出的原那么組織數(shù)據(jù)3.對于循環(huán)隊列,以下表達中正確的選項是()。A)隊頭指針是固定不變的B)隊頭指針一定大于隊尾指針C)隊頭指針一定小于隊尾指針D)隊頭指針可以大于隊尾指針,也可以小于隊尾指針3、參考答案:D【解析】循環(huán)隊列的隊頭指針與隊尾指針都不是固定的,隨著入隊與出隊操作要進行變化。因為是循環(huán)利用的隊列結構所以對頭指針有時可能大于隊尾指針有時也可能小于隊尾指針。4.算法的空間復雜度是指()。A)算法在執(zhí)行過程中所需要的計算機存儲空間B)算法所處理的數(shù)據(jù)量C)算法程序中的語句或指令條數(shù)D)算法在執(zhí)行過程中所需要的臨時工作單元數(shù)4、參考答案:A【解析】算法的空間復雜度是指算法在執(zhí)行過程中所需要的內(nèi)存空間。所以選擇A)。5.軟件設計中劃分模塊的一個準那么是()。A)低內(nèi)聚低耦合B)高內(nèi)聚低耦合C)低內(nèi)聚高耦合D)高內(nèi)聚高耦合5、參考答案:B【解析】一般較優(yōu)秀的軟件設計,應盡量做到高內(nèi)聚,低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨立性。6.以下選項中不屬于結構化程序設計原那么的是()。A)可封裝B)自頂向下C)模塊化D)逐步求精6、參考答案:A【解析】結構化程序設計的思想包括:自頂向下、逐步求精、模塊化、限制使用goto語句,所以選擇A)。7.軟件詳細設計生產(chǎn)的圖如下:該圖是()A)N-S圖B)PAD圖C)程序流程圖D)E-R圖7、參考答案:C【解析】N-S圖提出了用方框圖來代替?zhèn)鹘y(tǒng)的程序流程圖,所以A)不對。PAD圖是問題分析圖,它是繼承程序流程圖和方框圖之后提出的又一種主要用于描述軟件詳細設計的圖形表示工具,所以B)不對。E-R圖是數(shù)據(jù)庫中的用于表示E-R模型的圖示工具,所以D)不對。根據(jù)圖中所示表示方法是進行軟件詳細設計時使用的程序流程圖。8.數(shù)據(jù)庫管理系統(tǒng)是()。A)操作系統(tǒng)的一部分B)在操作系統(tǒng)支持下的系統(tǒng)軟件C)一種編譯系統(tǒng)D)一種操作系統(tǒng)8、參考答案:B【解析】數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫的機構,它是一種系統(tǒng)軟件,負責數(shù)據(jù)庫中數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護、控制及保護和數(shù)據(jù)服務等。是一種在操作系統(tǒng)之上的系統(tǒng)軟件。9.在E-R圖中,用來表示實體聯(lián)系的圖形是()。A)橢圓形B)矩形C)菱形D)三角形9、參考答案:C【解析】在E-R圖中實體集用矩形,屬性用橢圓,聯(lián)系用菱形。10.有三個關系R、S和T如下:那么關系T是由關系R和S通過某種操作得到,該操作為()。A)選擇B)投影C)交D)并10、參考答案:D【解析】在關系T中包含了關系R與S中的所有元組,所以進行的是并的運算。11.計算機高級語言程序的運行方法有編譯執(zhí)行和解釋執(zhí)行兩種,以下表達中正確的選項是()。A)C語言程序僅可以編譯執(zhí)行B)C語言程序僅可以解釋執(zhí)行C)C語言程序既可以編譯執(zhí)行又可以解釋執(zhí)行D)以上說法都不對11、參考答案:A【解析】解釋程序是將源程序(如BASIC)作為輸入,解釋一句后就提交計算機執(zhí)行一句,并不形成目標程序。編譯程序是把高級語言(如FORTRAN、COBOL、Pascal、C等)源程序作為輸入,進行翻譯轉換,產(chǎn)生出機器語言的目標程序,然后再讓計算機執(zhí)行這個目標程序,得到計算結果。12.以下表達中錯誤的選項是()。A)用戶所定義的標識符允許使用關鍵字B)用戶所定義的標識符應盡量做到"見名識意"C)用戶所定義的標識符中,大、小寫字母代表不同標識D)用戶所定義的標識符必須以字母或下劃線開頭12、參考答案:A【解析】C語言規(guī)定標識符只能由字母、數(shù)字和下劃線3種字符組成,且第一個字符必須為字母或下劃線,排除D);用戶定義標識符中大小寫字母之間是有區(qū)別的并且應盡量做到"見名識意",排除選項B)和C);C語言中還規(guī)定標識符不能為C語言的關鍵字,應選項A)表達錯誤,正確答案是選項A)。13.假設有說明語句:charc='\72';那么變量c()。A)包含1個字符B)包含2個字符C)包含3個字符D)說明不合法,c的值不確定13、參考答案:A【解析】C語言的字符型常量中,允許用一種特殊形式的字符常量,就是以一個""開頭的字符。其中,"\ddd"表示用ASCII碼(八進制數(shù))表示一個字符,此題中的charc='\2'即表示占一個字符的變量c的ASCII碼值。14.現(xiàn)有定義inta;doubleb;floatc;chark;,那么表達式a/b+c-k值的類型為()。A)intB)doubleC)floatD)char14、參考答案:B【解析】雙目運算中兩邊運算量類型轉換規(guī)律:15.以下定義語句中正確的選項是()。A)inta=b=0;B)charA=65+1,b=′b′;C)floata=1,*b=&a,*c=&b;D)doublea=0.0;b=1.115、參考答案:B【解析】此題考查變量的定義方法。如果要一次進行多個變量的定義,那么在它們之間要用逗號隔開。因此選項A)和D)錯誤;在選項C)中,變量c是一個浮點型指針,它只能指向一個浮點型數(shù)據(jù),不能指向指針變量b;所以正確答案為B)。16.假設在定義語句inta,b,c,*p=&c;之后,接著執(zhí)行以下選項中的語句,那么能正確執(zhí)行的語句是()。A)scanf("%d",a,b,c);B)scanf("%d%d%d",a,b,c);C)scanf("%d",&p);D)scanf("%d",p);16、參考答案:D【解析】scanf函數(shù)中的輸入項必須是指針,只有選項D)符合這個要求。17.以下程序的運行結果是()。intk=0;voidfun(intm){m+=k;k+=m;printf("m=%dk=%d",m,k++);}main(){inti=4;fun(i++);printf("i=%dk=%d\n",i,k);}A)m=4k=5i=5k=5B)m=4k=4i=5k=5C)m=4k=4i=4k=5D)m=4k=5i=4k=517、參考答案:B【解析】由于在main()函數(shù)中,變量i=4,所以就調(diào)用fun(4),那么輸出"m=4k=4"。然后變量k增1等于5,變量i增1等于5,所以main()函數(shù)的"printf("i=%dk=%d\n",i,k);"語句輸出"i=5k=5"。18.在執(zhí)行下述程序時,假設從鍵盤輸入6和8,那么結果為()。main(){inta,b,s;scanf("%d%d",&a,&b);s=a;if(a<b)s=b;s*=s;printf("%d",s);}A)36B)64C)48D)以上都不對18、參考答案:B【解析】此題中a的值為6,b的值為8,最后s的值為8,s*=s等價于s=s*s。19.有以下程序:main(){intk=5,n=0;while(k>0){switch(k){default:break;case1:n+=k;case2:case3:n+=k;}k--;}printf("%d\n",n);}程序運行后的輸出結果是()。A)0B)4C)6D)719、參考答案:D【解析】此題考查的是switch語句。在switch語句中,表達式的值與某一個case后面的常量表達式的值相等時,就執(zhí)行此case后面的語句,假設所有的case中的常量表達式的值都沒有與表達式的值匹配的,就執(zhí)行default后面的語句,各個case和default的出現(xiàn)次序不影響執(zhí)行結果。所以在此題中,當k=5和k=4的時候,case都沒有與其匹配的值,所以執(zhí)行了default語句;當k=3時,執(zhí)行"case3:n+=k;"得n=3,然后執(zhí)行default;當k=2時,執(zhí)行"case2:case3:n+=k;"得n=5,然后執(zhí)行default;當k=1時,執(zhí)行"case1:n+=k;case2:case3:n+=k;"使得n加兩次k,得到n=7。20.有以下程序:#include<stdio.h>main(){int*;scanf("%d",&*);if(*<=3);elseif(*?。?0)printf("%d\n",*);}程序運行時,輸入的值在哪個范圍才會有輸出結果()。A)不等于10的整數(shù)B)大于3且不等10的整數(shù)C)大于3或等于10的整數(shù)D)小于3的整數(shù)20、參考答案:B【解析】if…else控制結構中,else總是與最近的未配對的if匹配。此題的執(zhí)行過程為:如果輸入整數(shù)小于3那么不進行任何操作,否那么判斷是否不等于10,假設為真那么進行輸出。因此程序輸出的數(shù)據(jù)為大于3且不等于10的整數(shù)。21.有以下程序:#include<stdio.h>main(){inta=1,b=0;printf("%d,",b=a+b);printf("%d\n",a=2*b)}程序運行后的輸出結果是()。A)0,0B)1,0C)3,2D)1,222.有以下程序:main(){intnum[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j;for(i=0;i<4;i++){for(j=0;j<=i;j++)printf("%4c",'');for(j=;j<4;j++)printf("%4d",num[i][j]);printf("\n");}}假設要按以下形式輸出數(shù)組右上半三角1234678111216那么在程序下劃線處應填入的語句是()。A)i-1B)i+1C)iD)4-i22、參考答案:C【解析】此題中嵌套了兩個for語句,第一個用來輸出空格,第二個用來輸出數(shù)字。如此類型的輸出某種格式的考題,一般是采用多重循環(huán)來解決,需要考生找出輸出數(shù)據(jù)的特點,并用相對應的數(shù)學公式表達出來。23.以下程序段中,與語句:k=a>b?(b>c?1:0):0;功能相同的是()。A)if((a>b)&&(b>c))k=1;elsek=0;B)if((a>b)‖(b>c))k=1;elsek=0;C)if(a<=b)k=0;elseif(b<=c)k=1;D)if(a>b)k=1;elseif(b>c)k=1;elsek=0;23、參考答案:A【解析】表達式k=a>b?(b>c?1∶0)∶0表示:如果(a>b)條件為真,那么k取值(b>c?1∶0),否那么k取值0;當a>b的情況下,如果b>c,那么k值為1,否那么為0。所以該表達式與選項A)功能相同。24.有以下程序:voidss(char*s,chart){while(*s){if(*s==t)*s=t-a+A;s++;}}main(){charstr1[100]="abcddfefdbd",c=d;ss(str1,c);printf("%s\n",str1);}程序運行后的輸出結果是()。A)ABCDDEFEDBDB)abcDDfefDbDC)abcAAfefAbAD)Abcddfefdbd24、參考答案:B【解析】在內(nèi)存中,字符數(shù)據(jù)以ASCII碼存儲,它的存儲形式與整數(shù)的存儲形式類似。C語言中,字符型數(shù)據(jù)和整型數(shù)據(jù)之間可以通用,也可以對字符型數(shù)據(jù)進行算術運算,此時相當于對它們的ASCII碼進行算術運算,在此題中,s++相當于s=s+1,即讓s指向數(shù)組中的下一個元素。25.現(xiàn)有如下程序段:#include"stdio.h"main(){intk[30]={12,324,45,6,768,98,21,34,453,456};intcount=0,i=0;while(k[i]){if(k[i]%2==0||k[i]%5==0)count++;i++;}printf("%d,%d\n",count,i);}那么程序段的輸出結果為()。A)7,8B)8,8C)7,10D)8,1025、參考答案:D【解析】在C語言中,定義一維數(shù)組的語句一般形式如下:類型名數(shù)組名[常量表達式];一維數(shù)組的引用形式為:數(shù)組名[下標表達式]。count表示能被2整除或被5整除的個數(shù),i那么計算有多少個數(shù)組元素。26.以下程序運行后的輸出結果是()。#include<string.h>voidf(char*s,char*t){chark;k=*s;*s=*t;*t=k;s++;t--;if(*s)f(s,t);}main(){charstr[10]="welcome",*p;p=str+strlen(str)/2+1;f(p,p-2);printf("%s\n",str);}A)eelcomwB)weoclmeC)welcomeD)emoclew26、參考答案:D【解析】該程序中f函數(shù)的功能是交換兩個位置字符的值,f函數(shù)共調(diào)用3次,依次更改了字符串中l(wèi)和o、e和m、w和e的值,因此更改后的字符串的值是emoclew。27.設有如下程序段:int*=2004,y=2008;printf("%d\n",(*,y));那么以下表達中正確的選項是A)輸出值為2004B)輸出值為2008C)運行時產(chǎn)生出錯信息D)輸出語句中格式說明符的個數(shù)少于輸出項的個數(shù),不能正確輸出27、參考答案:B【解析】(*,y)考查逗號表達式,逗號運算符的結合性為從左到右,因此,最后一個表達式的值就是此逗號表達式的值,因此選項B)正確。28.有以下程序:#include<stdio.h>voidfun(char*c,intd){*c=*c+1;d=d+1;printf("%c,%c,",*c,d);}main(){charb=a,a=A;fun(&b,a);printf("%c,%c\n",b,a);}程序運行后的輸出結果是()。A)b,B,b,AB)b,B,B,AC)a,B,B,aD)a,B,a,B28、參考答案:A【解析】函數(shù)fun的第一個參數(shù)傳指針,可以將更改后的值傳回調(diào)用函數(shù),第二個參數(shù)傳值,不能將更改后的值傳回調(diào)用函數(shù),應選A)。29.有以下程序:#include<stdio.h>#include<string.h>main(){chara[10]="abcd";printf("%d,%d\n",strlen(a),sizeof(a));}程序運行后的輸出結果是()。A)7,4B)4,10C)8,8D)10,1029、參考答案:B【解析】strlen()用來返回字符串的長度,而sizeof()返回的是一個對象或者類型所占的內(nèi)存字節(jié)數(shù),即數(shù)組所占的內(nèi)存。30.假設有定義inta[2][3];,那么對a數(shù)組的第i行第j列(假設i,j已正確說明并賦值)元素值的正確引用為()。A)*(*(a+i)+j)B)(a+i)[j]C)*(a+i+j)D)*(a+i)+j30、參考答案:A【解析】此題考查了二維數(shù)組元素的引用方法。選項A)中a+i指向了數(shù)組a的第i+1行,*(a+i)那么是第i+1行第0列的地址值,*(a+i)+j指向了數(shù)組a第i+1行,j+1列,*(*(a+i)+j)取到的是數(shù)組a的a[i][j]元素。31.有以下程序:#include<stdio.h>main(){charc1,c2,c3,c4,c5,c6;scanf("%c%c%c%c",&c1,&c2,&c3,&c4);c5=getchar();c6=getchar();putchar(c1);putchar(c2);printf("%c%c\n",c5,c6);}程序運行后,假設從鍵盤輸入(從第1列開始)123<回車>45678<回車>那么輸出結果是()A)1267B)1256C)1278D)124531、參考答案:D【解析】putchar(c1)輸出1,putchar(c2)輸出2,printf("%c%c\n",c5,c6)輸出45。32.以下程序的運行結果是()。#include<stdio.h>inta=1;intf(intc){staticinta=2;c=c+1;return(a++)+c;}main(){inti,k=0;for(i=0;i<2;i++){inta=3;k+=f(a);}k+=a;printf("%d\n",k);}A)17B)16C)15D)1432、參考答案:D【解析】fun函數(shù)語句return(a++)+c;中訪問的a,是其內(nèi)部定義的靜態(tài)局部變量,main函數(shù)中語句k+=f(a)訪問的a是其局部變量,所以兩次調(diào)用實際上都是調(diào)用f(3)。第一次調(diào)用時,fun函數(shù)中c=4,表達式(a++)+c的值為6,a遞增為3,k=6。第二次調(diào)用時,fun函數(shù)中c=4,表達式(a++)+c的值為7,a遞增為4,k=6+7=13。語句k+=a中的a是全局變量,所以k=13+1=14。33.設有定義:intn1=0,n2,*p=&n2,*q=&n1;,以下賦值語句中與n2=n1;語句等價的是()。A)*p=*q;B)p=q;C)*p=&n1;D)p=*q;33、參考答案:A【解析】此題考查的是指針變量的賦值。題目中各變量定義后,指針變量p指向了變量n2所在的存儲單元,指針變量q指向了變量n1所在的存儲單元,要使得n1的值賦給n2,可用指針變量q所指向的存儲單元的值賦給指針變量p所指向的存儲單元,即*p=*q。34.設有如下說明:typedefstructST{longa;intb;charc[2];}NEW;以下說法正確的選項是()。A)NEW是一個結構體變量B)NEW是一個結構體類型C)ST是一個結構體類型D)以上說明形式非法34、參考答案:B【解析】以上形式定義NEW表示ST的結構類型,然后可以用NEW來說明結構體變量。因此選項B)正確35.有以下程序:#include<stdio.h>#include<string.h>typedefstruct{charname[9];charse*;floatscore[2];}STU;voidf(STUa){STUb={"Zhao",'m',85.0,90.0};inti;strcpy(,);a.se*=b.se*;for(i=0;i<2;i++)a.score[i]=b.score[i];}main(){STUc={"Qian",'f',95.0,92.0};f(c);printf("%s,%c,%2.0f,%2.0f\n",,c.se*,c.score[0],c.score[1]);}程序的運行結果是()。A)Qian,f,95,92B)Qian,m,85,90C)Zhao,f,95,92D)Zhao,m,85,9035、參考答案:A【解析】此題考查的是函數(shù)調(diào)用時的參數(shù)傳遞以及結構體變量的引用的問題。程序在調(diào)用函數(shù)f時,傳給函數(shù)f的參數(shù)只是結構變量c在棧中的一個拷貝,函數(shù)f的所有操作只是針對這個數(shù)據(jù)拷貝進行的修改,這些都不會影響變量c的值。36.有以下程序:#include<stdio.h>#defineN4voidfun(inta[][N],intb[]){inti;for(i=0;i<N;i++)b[i]=a[i][i];}main(){int*[][N]={{1,2,3},{4},{5,6,7,8},{9,10}},y[N],i;fun(*,y);for(i=0;i<N;i++)printf("%d,",y[i]);printf("\n");}程序的運行結果是()。A)1,2,3,4,B)1,0,7,0,C)1,4,5,9,D)3,4,8,10,36、參考答案:B【解析】該題目中fun函數(shù)的功能是將二維數(shù)組a中符合條件的值賦給一維數(shù)組的符合條件的元素。主函數(shù)的功能是將符合條件的一維

溫馨提示

  • 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

提交評論