計算機軟件基礎(一)高等教育自學考試試題與答案_第1頁
計算機軟件基礎(一)高等教育自學考試試題與答案_第2頁
計算機軟件基礎(一)高等教育自學考試試題與答案_第3頁
計算機軟件基礎(一)高等教育自學考試試題與答案_第4頁
計算機軟件基礎(一)高等教育自學考試試題與答案_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

計算機軟件基礎(一)高等教育自學考試試題與答案計算機軟件基礎一、填空題1.程序設計的關鍵在于設計出一個好的算法 。2.數據、數據節(jié)點和數據項構成了數據組織的三個層次。其中數據項是具有獨立含義的最小標識單位。3.數據的邏輯結構和物理結構之間的相互運算是通過算法來實現的。4.所有節(jié)點按1對1的鄰接關系構成的整體就是線性 結構。5.表長為0的線性表稱為 空 表。6.直接插入排序最好情況的時間復雜度為O(n)。7.程序段“i=l;while(i<=n)i=i*2”的時間復雜度為O(log2n)。8.c語言屬于計算機高級語言,既可以用來寫系統(tǒng)軟件,也可以用來寫應用軟件 。9.算法是有窮的,而程序可以是 無窮的 。10.實型常量在一般微型機中占用 4 個字節(jié)。11.char型和int型的運算結果為 int 型。12.Getchar()和putchar()函數只能輸入、輸出1個字符。13.源程序必須翻譯成機器指令即機器語言,這一工作由編譯系統(tǒng)來完成。14.字符串的長度為串中字符的個數,但在內存中所占的字節(jié)數應比長度多1。15.執(zhí)行:a=3,b=4,a=a+b,b=a+b后,則a和b的值分別為7和11。16.對于scanf(“%2d%3d%4d”,&a,&b,&c)語句,若鍵入:l23456789,則變量b的值為345。17.設intx=10,y,z;執(zhí)行y=z=x;x=y=-Z后,變量x的結果是 1 。18.若有說明:Int a[][5]={1,2,3,4,5,6,7,8,9,10),則數組第一維的大小為 2 。19.在函數定義中,若沒有返回值,其類型定義為空類型 。20.c語言規(guī)定不能嵌套定義函數,但可以嵌套調用函數。21.程序中出現的/*?...*/表示注釋,可以出現在程序的任何地方。22.c語言的數據結構是以 數據類型 的形式描述出來的。23.%運算符的運算對象就為 整數 。24.getchar()函數只能出現在 表達式 的位置,接收該函數的值時可以用字符型或整型變量。25.請將│x│≤a,寫成一個邏輯表達式:x<=a&&x>=-a 。26.在結構化程序的三種基本結構是指 順序結構、選擇結構和循環(huán)結構。27.在c語言中,二維數組在內存中的排列順序是按行存入。28.一個完整的c程序可由1個主函數或由1個主函數和若干個子函數組成。29.在c語言中,變量的使用一般遵守“先定義,而使用”的原則。30.c語言中有兩個專門的指針運算符*和&,它們都是單目運算符。31.在計算機的數據處理中,將字符、聲音、光、圖形和圖像均稱為數據。32.在線性表的順序存儲結構中,其相鄰的數據節(jié)點在物理位置上也是相鄰的。33.若在數據處理中,需要經常對數據進行插入、刪除運算,則宜將該數據設置為鏈式存儲。34.二叉樹的遍歷方法有:先序遍歷、后序遍歷和中序遍歷。35.單鏈表表示法的基本思想是用指針表示結點間的邏輯關系。36.C語言規(guī)定,數組元素的下標從0開始,最大值為長度減1。37.在C語言中,引用數組元素時,其數組下標的數據類型允許是整型常量或整型表達式。38.一個變量的作用域是指該變量在程序中的有效范圍,局部變量的作用域就是其所在的函數。39.C語言中訪問地址的方式有兩種即直接存取方式和間接存取方式。40.運行下列語句:int*p,*q,x[5];p=x;q=p+3;則q指向數值元素

x[3]

。41.若某問題的空間復雜度為 o(1),則認為該問題所耗空間與問題的 規(guī)模 無關。42.在線性表的鏈式存儲結構中,單鏈表中每個節(jié)點是一個 結構類型 。43.在三對角陣的壓縮存儲中,已知 Aij=Bk,試建立k與i,j之間的關系為: k=2i+j 。44.在軟件的開發(fā)模型中,螺旋模型是一種風險驅動模型,它將瀑布模型和原型模型結合起來。45.設有100個元素,用折半查找法進行查找時,最大比較次數是 7 。二、選擇題1.下列是C語言正確的標識符的是【A.?a B.a=2 C.a.32.下列表達式中,值為 1的表達式是A.3%5 B.3/5.0 C.3/5

D】D.a_3【D】D.3<53.設變量a,b,c,d依次為字符型、整型、單精度型、雙精度型,則表達式“a+b/c*d”的數據類型為【D】A.整型 B.字符型 C.單精度型D.雙精度型4.能正確表達“0≤a≤10”的表達式是【 A】A.10>=a&&a>=0 B. (10>=a)ll(a>=0)C.0<=a<=10 D.(!a<0)&&(!a>10)5.在C語言中,main()函數的位置 【C】A.必須作為第一個函數 B.必須作為最后一個函數C.可以任意,但必須要在函數之外 D.必須放在它所調用的函數之后6.對于輸入語句“scanf(“%d,%d”,&a,&b)”,下面正確的輸入方法是【A】A.1,2回車B.12回車C.1回車2回車D.1;2回車7.下列程序段“inti=j=10;printf(“&d,%d\n”,--I,j--);”的輸出結果是【B】C.11,9A.11,10B.9,10D.10,9D】8.下面有關for循環(huán)正確的描述是【況A.for循環(huán)只能用語句循環(huán)次數已經確定的情B.for循環(huán)是先執(zhí)行循環(huán)體語句,后判定表達式C.在for循環(huán)中,不能用break語句跳出循環(huán)體D.for語句的循環(huán)體中,可以包含多條語句,但要用花括號括起來9.設有定義“intx[5]={l,2,3);”,則數組x占用的內存字節(jié)數是【D】A.3B.5C.6D.1010.若有定義語句“intm,n=2,*p=&m;”,則能完成m=n功能的語句為【B】A.m=*p;B.*p=*&n;C.m=&nD.m=&p11.數據在計算機存儲器內表示時,物理地址與邏輯地址不相同的,稱之為【C】A.存儲結構B.邏輯結構C.鏈式存儲結構D.順序存儲結構12.單鏈表的一個存儲結點包含【D】A.數據域或指針域B.指針域或鏈域C.指針域和鏈域D.數據域和鏈域13.循環(huán)隊列的隊滿條件為【C】A.sq.rear+1)%maxsize==(sq.front+1)%maxsizeB.(sq.rear+1)%maxsize==sq.front+lC.(sq.rear+1)%maxsize==sq.frontD.sq.rear==sq.front14.深度為6的二叉樹最多有( )個結點【 B】A.64 B.63 C.32 D.3115.用順序查找法對具有 n個結點的線性表查找的時間復雜性量級為【 C】2D.O(log2n)16.設有語句“intx[6]={5,4,3,2,1,0),*p=x;”,則值2的表達式為【A】B.*(p+5)C.*p+4A.*(p+4)D.*p+5A】17.算法分析的兩個主要方面是【B.正確性A.空間復雜度和時間復雜度和簡明性C.可讀性和文檔性D.數據復雜性和程序復雜性18.帶頭結點的單鏈表Head為空的判定條件是【B】A.Head=NULL;B.Head->next=NULL:D.均不正確;C.Head->next=Head;19.一個隊列的輸入列序為1,2,3,4,則該隊列的輸出序列是【B】A.4,3,2,lB.1,2,3,4C.1,4,3,2D.3,2,4,1【B20.堆(Heap)是】C.滿二叉樹A.完全二叉樹B.線性表D.都不正確21.在表長為n的順序表中,實施順序查找,在查找不成功時,與關鍵字比較的次數為【C】A.nB.1C.n+1D.n-122.下列選項中,合法的C語言保留字是【C】A.AUTOB.SWITC.elseD.integerA】23.下列選項中非法的實型常數是【A.3E1.0B.1.0E3C..3E-2D.3E-224.設有定義“ float a=5.0,b=2.5;”,則表達式(int)b+a/b的值是【D】D.4.0A.3B.4C.3.025.設inta=10,b=20,c=30;條件表達式a<b?a=15:c的值是【B】C.20D.30A.10B.1526.一個C程序是由【B】B.一A.一個主程序和若干子程序組成個或多個函數組成C.若干過程組成D.若干子程序組成27.下列給出的符號串中,可以作為C語言標識符是的【C】A.printfB.doC.GOTOD.whileB】28.在c語言中,合法的字符常量是【A.//A//B./\x10/C./0a/D.a29.以下表達式中與表達式“m=n++”功能完全相同的是【A】A.m=n,n=n+lC.m=++n D.m+=n+1

B.n=n+l,m=n30.若變量a,i已正確定義,且i已正確賦值,非法的表達式是 【C】A.a==1 B.++iD.a=(int)(i)

C.a=a++=532.當調用函數時,實參是一個數組名,則向對應形參傳送的是【B】A.數組的長度首地址C.數組中每一個元素的地址每個元素的值

B.數組的D.數組中33.假定的數據定義語句“floatx;”,能為x輸入數據的正確語句是【D】”);C.scanf(“%4.2f”,&X); D.scanf(“%f'”,&x);34.下列程序段的輸出結果是【D】intx=2;doprinff(“%d,”,x一);while(!(--x));A.2, B.1,0, C.2,1, D.2,0,35.選用數組元素下標時,可能造成程序運行出錯的下標是【B】A.0 B.-1 C.正實數 D.整型變量36.設有語句“chara[]=“123”,b[]={‘1’,’2’,’3’);”,下列說法正確的是 【D】A.a[3]是不可知的任意字符 B.數組 a,b的長度相同C.b[3]的值為’\0’ D.數組a的長度大于數組b的長度37.執(zhí)行程序段“intx=8;while(--x>6)sprintf(“*”)后的輸出結果是【A】A.* B.** C.*** D.****38.設有定義語句:inta=l,b=2,c=3,d=4;執(zhí)行下列程序段后x的值是【A】if(a<b)if(c<d)x=10;elseif(a<c)if(b<d)x=20;elsex=30;elsex=40;elsex=50;B.20C.30D.40A.1039.C語言中【 C】A.不能使用do—while語句構成循環(huán)體。B.do-while語句構成的循環(huán)必須用break語句才能退出。C.do-while語句構成的循環(huán),當while語句中的表達式值為零時結束循環(huán)。D.do.while語句構成的循環(huán),當while語句中的表達式值為非零時結束循環(huán)。40.以下數組語句中,正確的是【C】A.inta[][3];B.intb[3][]={0,l,2,3};D.intd[3][]={{l,2},C.intc[10][10]={0};{1,3,0),{l}};41.設有語句“intx[8]={5,4,3,2,1},*p=x;”,則*(p+3)的值為【C】A.5B.4C.3D.242.計算機內部數據處理的基本單位是【B】A.數據B.數據元素C.數據項D.數據庫43.在一個具有n個結點的有序順序表中插入一個新結點并仍然有序的時間復雜度是【B】A.O(1) B.O(n2) C.O(n)D.O(nlog2n)44.設C語言數組Data[m+1]作為循環(huán)隊列SQ的存儲空間,front為隊頭指針,real為隊尾指針,則執(zhí)行出隊操作的語句為【D】A.frint=front+1;,B.front=(front+1)%m:D.front=C.rear=(rear+1)%m;(front+1)%(m+1);)來表示【C】45.樹最適合用(A.有序數據元素B.無序數據元素C.元素之間具有分支層次關系的數據D.元素之間無聯系的數據46.長度為12的有序表:Apt,Aug,Dec,Feb,Jan,Jul,Jun,Mar,May,Nov,Oct,Sep,按對半查找法對該表進行查找。在表內各元素等概率情況下查找成功所需要的平均比較次數為 【B】A.35/12B.37/12C.39/12D43/12三、簡答題1.軟件維護工作可分為哪幾類維護工作 ?答:軟件維護工作可分如下四類維護工作:1)改正性維護;2)適應性維護;3)完善性維護;4)預防性維護。2.良好的程序設計風格除了將程序文檔化和格式化以外,還需要遵循哪些準則?答:良好的程序設計風格除了將程序文檔化和格式化以外,還需要遵循以下準則:1)節(jié)儉化;2)模塊化;3)簡單化;4)結構化3.用文字簡述數據 x進棧和退棧操作的基本步驟。答:進棧操作的基本步驟為:1)先判斷棧是否已滿,若滿,則進行上溢處理,否則進行2)。2)棧項指針上移1個節(jié)點。3)將x加入到top所指位置。‘退棧操作的基本步驟為:1)檢查棧是否為空,若棧空,則進行下溢處理,否則進行2)。2)保留被刪除元素到變量x中(若不需要保存,則舍去這一步)。3)棧頂指針下移1個節(jié)點。4.軟件測試時,程序中尚未發(fā)現的錯誤的數量往往與在該段程序中己發(fā)現的錯誤的數量成正比。所以軟件測試時,除盡早地、不斷地進行軟件測試外,還應遵循的其它基本原則是什么?答:軟件測試時,還應遵循的其它基本原則是:1)設計測試用例時,要給出測試的預期結果。2)開發(fā)小組和測試小組分開。3)要設計非法輸入的測試用例。4)在對程序修改之后要進行回歸測試。5.簡述哈夫曼樹的性質。答:由哈夫曼樹的生成過程可得如下性質:1)給定權值的哈夫曼樹不唯一,但是WPL,為定值。2)權值越大的節(jié)點離根節(jié)點就越近。3)哈夫曼樹中無度為 l的節(jié)點。4)哈夫曼樹節(jié)點總個數刀=2×葉子節(jié)點個數一1=2×權值個數.1=2n,.一1。6.用文字簡述將內容為x節(jié)點加入順序隊列和出隊操作的基本步驟。答:將內容為x節(jié)點加入順序隊列的基本步驟為:1)先判斷隊列是否已滿,若滿則退出,否則進行2)。2)隊尾指針下移1個節(jié)點位置。3)在隊尾指針位置加入 x。出隊操作的基本步驟為:1)先判斷隊列是否己空,若空則退出,否則進行2)。2)保留隊頭元素到 x變量中。3)隊頭指針下移1個節(jié)點位置。四、程序分析題1.下列程序運行后的輸出結果是 m=3Main(){intk,m=0;for(k=0;k<2;k++){m++;if(m/2)continue;m++:}printf(//m=%d\n//,m);}2.下列程序運行后的輸出結果是1,6#inlcude<stdio.h>Main(){inta[]={l,2,3,4,5,6},*p;p=a;*(p+3)+=2;printf(//%d,%d\n//,*p,*(p+3));}3.下列程序運行后的輸出結果是 s=55#inlcude<stdio.h>Main(){intS,i=l,sum();for(;i<=10;)i++,s=sum(i);printf(//S=%d\n//,s);}sum(intk){intx=0;return(x+=k);}4.下列程序運行后的輸出結果是abcdmain(){charsl()=//abcdABCD//,s2[10];intk=0,j=0;while(sl[k]!=/A/)s2[j++]=s1[k++];s2[j]=0;printf(//%s\n”,s2);}5.下列程序運行后的輸出結果是 DCBAEFvoidfun(char*pl,intn){chart,*p2;p2=pl+n-1;while(p1<p2){1=*pl;*p1++=*p2;*p2--=t}Main()// //{char*p= ABCDEF;printf{%s\n//,p);}6.下列程序運行后的輸出結果是13Main(){intx=11;while(x>10&&x<50){x++if(x/3){x++;break;}elsecontinue;}printf(//%d\n//,x);}7.下列程序運行后的輸出結果是6intb=l;intf(int*a){b+=*a;return(b);}main(){inta=2,b=3:a+=f(&b);// //8.下列程序運行后的輸出結果是23Main(){intx[][4]={1,2,3,4,5,6,7,8,3,9,10,2,4,2,9,6},s=0,k=0;for(;k<4;k++)s+=x[k][k];printf(//%d\n//,s);}9.下列程序段的功能是:計算單鏈表的表長intL_lklist(1klisthead){p=head;j=0;while(p->next!=NULL){p=p->next;j++;}return(j);}10.下列程序運行后的輸出結果是1,6,3,2,3#include<stdio.h>main(){intj=1j=3;printf(//%d,//,i++);{inti=0;I+=j*2;printf(//%d,%d,//,i,j);}printf(//%d,%d//,i,j);}11.下列程序運行后的輸出結果是10intf(intn){if(n==1)return(1);elsereturn(f(n-1)+1);}main(){inti,j=0;for(i=1;i<5;i++)j+=f(i);// //12.閱讀下列算法,寫出其完成的功能是借助棧將一個帶頭結點的單鏈表倒置voidlist(LinkedListTP*head){LStackTPIs,p;DataTypex;InitStack(&ls);p=head->next;while(p!=NULL){Push(&ls,p->data);p=p->next;}p=head->next;while(!EmptyStaek(&JS)){Pop(&ls,&x);p->data=x;p=p->next;}}五、程序填空題1.下面程序是從輸入3個數中找出最大數,并輸出最大數。intmax(intx,inty,intz){intt;x:y);t=x>y?retum(t>z?t:z)}main(){inta,b,c;scanf(//%d,%d,%d//,&a,&b,&c);prinf(//max=%d\n",max( a,b,c ));}2.以下為冒泡排序的算法,請分析算法,并在處填充適當的語句。voidbubblesort(intn,listr){for(i=l;i<= n-1 ;i++){flag=1;;j++)for(j=l;j<=n-1if(r[j+1].key<r[j].key){flag=0;p=r[j];r[j]=r[j+1];r[j+1]=p;)if(flag)return;}}3.下列程序的功能是將輸入的10個整型數存入一維數組中,并求其中所有素數之和并輸出。main(){intx[10],sum=0,flag,k,j;for(k=0;k<10;k++)scanf(//%d//,&x[k]);for(k=0;k<l0;k++){if(x[k]==1)continue;flag=l;x[k]/2;j++)for(j=2;j<=if(x[k]%j==0){flag=0;break;}if(flag==1)sum+=x[k];}printf(//%d\n//,s);}4.下面程序的功能是輸入 10個字符和1個字符X,從10個字符中查找x,找到則輸出其序號,找不到則輸出0。main(){charstr[10],x,*p;intflag=0;for(p=str;p<str+10;p++)scanf(//%c//,p);scanf(//%c//,&x);for( p=str ;p<str+10;p++)if(*p==x){flag=1;break;}if(flag)prinf(//0\n//,p-str+1);else// //prinf( 0\n)}處用適當的語句予以填充。intOutCyeQueue(CycqueueTp*sq,DataType*x){if(sq->fron==sq->rear ){error(//隊空//);return(o);}else{sq->

溫馨提示

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

評論

0/150

提交評論