2021年內蒙古自治區(qū)赤峰市全國計算機等級考試C語言程序設計模擬考試(含答案)_第1頁
2021年內蒙古自治區(qū)赤峰市全國計算機等級考試C語言程序設計模擬考試(含答案)_第2頁
2021年內蒙古自治區(qū)赤峰市全國計算機等級考試C語言程序設計模擬考試(含答案)_第3頁
2021年內蒙古自治區(qū)赤峰市全國計算機等級考試C語言程序設計模擬考試(含答案)_第4頁
2021年內蒙古自治區(qū)赤峰市全國計算機等級考試C語言程序設計模擬考試(含答案)_第5頁
已閱讀5頁,還剩70頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021年內蒙古自治區(qū)赤峰市全國計算機等級考試C語言程序設計模擬考試(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.依次讀入數據元素序列{a,b,c,d,e,f,g}進棧,每進一個元素,機器可要求下一個元素進棧或彈棧,如此進行,則棧空時彈出的元素構成的序列是以下哪些序列?

A.{d,e,c,f,b,g,a}

B.{f,e,g,d,a,c,b}

C.{e,f,d,g,b,c,a}

D.{c,d,b,e,f,a,g}

2.下列敘述中正確的是()。

A.順序存儲結構的存儲一定是連續(xù)的,鏈式存儲結構的存儲空間不一定是連續(xù)的

B.順序存儲結構只針對線性結構,鏈式存儲結構只針對非線性結構

C.順序存儲結構能存儲有序表,鏈式存儲結構不能存儲有序表

D.鏈式存儲結構比順序存儲結構節(jié)省存儲空間

3.若某二叉樹的前序遍歷訪問順序是abdgcefh,中序遍歷訪問順序是dgbaechf,則其后序遍歷的結點訪問順序是()。

A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca

4.需求分析階段的任務是確定()

A.軟件開發(fā)方法B.軟件開發(fā)工具C.軟件開發(fā)費用D.軟件系統功能

5.有以下程序:#include<stdio.h>main(){inta=123456,b;while(a){b=a%10;a/=10;switch(b){default:printf(“%d”,b++);case1:case2:printf(“%d”,b++);break;case3:printf(“%d”,b++);break;case4:printf(“%d”,b++);}}}程序運行后的輸出結果是()。

A.76654321B.12345667C.67564321D.654321

6.算法的有窮性是指A.算法程序的運行時間是有限的

B.算法程序所處理的數據量是有限的

C.算法程序的長度是有限的

D.算法只能被有限的用戶使用

7.一個長度為99的循環(huán)鏈表,指針A和指針B都指向了鏈表中的同一個節(jié)點,A以步長為1向前移動,B以步長為3向前移動,一共需要同時移動多少步A和B才能再次指向同一個節(jié)點()。

A.99B.100C.101D.49E.50F.51

8.數據結構若采用鏈式存儲結構,要求內存中可用存儲單元的地址()。

A.必須是連續(xù)的B.部分地址必須是連續(xù)的C.一定是不連續(xù)的D.連續(xù)不連續(xù)都可以

9.若有定義語句:“charsE10]="1234567\0\0";”,則strlen(s)的值是()。A.A.7B.8C.9D.10

10.

11.下列能正確進行字符串賦值的是()。

A.chars[5]={"ABCDE"};

B.chars[5]={A,B,C,D,E};

C.char*S;S="ABCDE";

D.char*s;printf("%《",s);

12.有以下程序:main(){intx,y,z;x=y=1;z=x++,y++,++y;printf("%d,%d,%d,%d\n",x,y,z);程序運行后的輸出結果是()。

A.2,3,3B.2,3,2C.2,3,1D.2,2,1

13.一棵二叉樹共有25個結點,其中5個是葉子結點,則度為l的結點數為()。

A.16B.10C.6D.4

14.下列敘述中錯誤的是()。

A.在C語言中,函數中的自動變量可以賦初值,每調用一次賦一次初值

B.在C語言中,在調用函數時,實參和對應形參在類型上只需賦值兼容

C.在C語言中,外部變量的隱含類型是自動存儲類別

D.在C語言中,函數形參的存儲類型是自動(auto)類型的變量

15.任何一個無向圖的最小生成樹()。

A.只有一棵B.有一棵或多棵C.一定有多棵D.可能不存在

16.有以下程序:voidf(inta[],inti,intj){intt;if(i<j){t=a[i];a[i]=a[j];a[j]=t;f(a,i+1,j-1);}}main(){inti,aa[5]={1,2,3,4,5};f(aa,0,4);for(i=0;i<5;i++)printf("%d,",aa[i]);printf("\n");}執(zhí)行后輸出結果是()。

A.5,4,3,2,1,B.5,2,3,4,1,C.1,2,3,4,5,D.1,5,4,3,2,

17.下面程序的運行結果是

#include<stdio.h>

voiddelch(char*s)

{inti,j;

char*a;

a=s;

for(i=0,j=0;a[i]!=′\n′;i++)

if(a[i]>=′0′&&a[i]<=′9′)

{s[j]=a[i];j++;}

s[j]=′\0′;}

main()

{char*item="a34bc";

delch(item);

printf("\n%s",item);}

A.abcB.34C.a34D.a34bc

18.關系數據庫的數據及更新操作必須遵循()等完整性規(guī)則。

A.實體完整性和參照完整性

B.參照完整性和用戶定義的完整性

C.實體完整性和用戶定義的完整性

D.實體完整性、參照完整性和用戶定義的完整性

19.下列敘述中正確的足

A.軟件交付使用后還需要進行維護

B.軟件一旦交付使用就不需要再進行維護

C.軟件交付使用后其生命周期就結束

D.軟件維護是指修復程序中被破壞的指令

20.有以下程序:

程序運行后的輸出結果是()。

A.1B.2C.3D.4

二、2.填空題(20題)21.函數YangHui的功能是把楊輝三角形的數據賦給二維數組的下半三角,形式如下:

1

11

121

1331

14641

其構成規(guī)律是:

①第0列元素和主對角線元素均為1。

②其余元素為其左上方和正上方元素之和。

③數據的個數每行遞增1。

請將程序補充完整。

#defineN6

voidyanghui(intx[N][N])

{inti,j;

x[O][0]=1;

for(i=1;i<N;i++)

{x[i][0]=【】=1;

for(j=1;j<i;j++)

x[i][j]=【】;

}

)

22.下面程序的執(zhí)行結果是【】。

main()

{

inta=5,b=4,c=9;

printf("###%d",(a<C)?c*b:a*B);

}

23.以下程序的輸出結果是【】。

#include<stdio.h>

main()

{intn=12345,d;

while(n!=0){d=n%10;printf("%d",D);n/=10;}

}

24.設Y是int型變量,請寫出判斷Y為奇數的關系表達式【】。

25.以下程序的功能是輸出如下形式的方陣:

13141516

9101112

5678

1234

請?zhí)羁铡?/p>

main()

{inti,j,x;

for(j=4;j>0;j--)

{for(i=1;i<=4;i++)

{x=(j-1)*4+【】;

printf("%4d",x);

}

printf("\n");

}

}

26.以下程序中,函數fun的功能是計算x2-2x+6,主函數中將調用fun函數計算:

y1=(x+8)2-2(x+8)+6

y2=sin2(x)-2sin(x)+6

請?zhí)羁铡?/p>

ginclude"math.h"

doublefun(doublex){return(x*x-2*x+6);}

main()

{doublex,y1,y2;

pfintf("Enterx:");scanf("%lf"&x);

y1=fun([10]);y2=fun([11]);

pin

27.為了便于對照檢查,測試用例應由輸入數據和預期的【】兩部分組成。

28.軟件維護活動包括以下幾類:改正性維護、適應性維護、【】維護和預防性維護o

29.以下程序的輸出結果是______。

#include<stdio.h>

main()

{inta[5]={2,4,6,8,10},*p;

p=a;p++;

printf("%d",*p);

}

30.軟件維護活動包括以下幾類:改正性維護、適應性維護、【】維護和預防性維護。

31.以下程序段的輸出結果是【】。

inti=9;

prinff("%o\n",i);

32.按照邏輯結構分類,結構可以分為線性結構和非線性結構,棧屬于______。

33.結構化程序設計的3種基本結構分別是順序、選擇和______。

34.軟件開發(fā)環(huán)境是全面支持軟件開發(fā)全過程的______的集合。

35.軟件測試是保證軟件質量的重要手段,而軟件測試的主要和重要的測試方法是通過測試數據和【】的設計來實現。

36.如果一個工人可管理多個設施,而一個設施只可被一個工人管理,則實體“工人”與實體“設備”之間存在【】聯系。

37.一個模塊直接調用的其他模塊的模塊個數稱為______。

38.耦合和內聚是評價模塊獨立性的兩個主要標準,其中______反映了模塊內各成分之間的聯系。

39.以下程序的功能是計算:s=1+12+123+1234+12345。請?zhí)羁铡?/p>

#include<stdio.h>

main()

intt=0.s=0,i:

for(i=1;i<=5;i++){t=i+【】;s=s+t;}

prinff("s=%d\n".s);}

40.面向對象的模型中,最基本的概念是對象和______。

三、1.選擇題(20題)41.變量a中的數據用二進制表示的形式是01011101,變量b中的數據用二進制表示的形式是11110000。若要求將a的高位取反,低4位不變,所要執(zhí)行的運算是

A.a^bB.a|bC.a&bD.a<<4

42.在調用函數時,如果實參是簡單變量,它與對應形參之間的數據傳遞方式是______。

A.地址傳遞B.單向值傳遞C.由實參傳遞給形參,再由形參傳遞給實參D.傳遞方式由用戶指定

43.鏈表不具有的特點是()

A.不必事先估計存儲空間B.可隨機訪問任一元素C.插入刪除不需要移動元素D.所需空間與線性表長度成正比

44.有下列二叉樹,對此二叉樹前序遍歷的結果為()。

A.XZCYABB.XYZABCC.XYABCZD.XYAZBC

45.若變量已正確說明為float型,要通過scanf("%f%f%f",&a,&b,&c);給a賦值10.0,b賦值22.0,c賦值33.0,下列不正確的輸入形式是()。

A.10<回車>22<回車>33<回車>

B.10.0,22.0,33.0<回車>

C.10.0<回車>22.033.0<回車>

D.1022<回車>33<回車>

46.判斷char型變量c1是否為小寫字母的正確表達式為()。

A.'a'<=c1<='z'

B.(c1>=A)‖(c1<=z)

C.('a'=>c1‖('z'<=c1)

D.(c1>='a')&&(c1<='z')

47.當說明一個結構體變量時系統分配給它的內存是()。

A.各成員所需要內存量的總和

B.結構中第一個成員所需的內存量

C.成員中占內存最大者所需的容量

D.結構中最后一個成員所需要的內存量

48.棧和隊列的共同特點是()。

A.都是先進先出B.都是先進后出C.只允許在端點處插入和刪除元素D.沒有共同點

49.有以下程序:main(){char*p[10]={"abc","aabdfg","dcdbe","abbd","cd"};printf("%d\n",strten(p[4]));}執(zhí)行后輸出結果是

A.2B.3C.4D.5

50.視圖設計一般有三種設計次序,下列不屬于視圖設計的是()。

A.自頂向下B.由外向內C.由內向外D.自底向上

51.下述關于數據庫系統的敘述中正確的是______。

A.數據庫系統減少了數據冗余

B.數據庫系統避免了一切冗余

C.數據庫系統中數據的一致性是指數據類型的一致

D.數據庫系統比文件系統能管理更多的數據

52.X、Y、Z被定義為int型變量,若從鍵盤給X、Y、Z輸入數據,正確的輸入語句是______。

A.INPUTX,Y,Z;

B.scanf("%d%d%d",&X,&Y,&Z);

C.scanf("%d%d%d",X,Y,Z);

D.read("%d%d%d",&X,&Y,&Z);

53.在結構化方法中,軟件功能分解屬于軟件開發(fā)中的______階段。

A.詳細設計B.需求分析C.總體設計D.編程調試

54.現有如下程序段#include"stdio.h"#include"string.h"main(){chara[]="acfijk";/*這里是有序的字符序列*/charb[]="befijklqswz";/*這里是有序的字符序列*/charc[80],*p;inti=0,j=0,k=0;while(a[i]!='\0'&&b[j]!='\0'){if(a[i]<b[j])c[k++]=a[i++];elseif(a[i]>b[j])c[k++]=b[j++];else{c[k++]=b[j++];i++;}}while(a[i]=='\0'&&b[j]!='\0')c[k++]=b[j++];while(a[i]!=,'\0'&&b[j]=='\0')c[k++]=a[i++];c[k]='\0';puts(c);}則輸出結果是

A.acfijkbefijklqswz

B.abceffiijjkklqswz

C.befijklqswzacfijk

D.abcefijklqswz

55.設有如下定義:char*aa[2]={"abcd","ABCD"},則以下說法中正確的是()。

A.aa數組中元素的值分別是{"abcd","ABCD"};

B.aa是指針變量,它指向含有兩個數組元素的字符型一維數組

C.aa數組的兩個元素分別存放的是含有4個字符的一維字符數組的首地址

D.aa數組的兩個元素中各自存放了字符‘a’和‘A’的地址

56.有以下程序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=1;j<=i;j++)printf("%4c",'');for(j=______;j<4;j++)printf("%4d',num[i][j]);printf("\n");}}若要按下形式輸出數組右上半三角1234678111216

A.i-1B.iC.i+1D.4-i

57.用鏈表表示線性表的優(yōu)點是()。

A.便于隨機存取B.花費的存儲空間較順序存儲少C.便于插入和刪除操作D.數據元素的物理順序和邏輯順序相同

58.以下所列的各函數首部中,正確的是______。

A.voidplay(vara:Integer,varb:Integer)

B.voidplay(inta,b)

C.voidplay(inta,intb)

D.Subplay(aasinteger,basinteger)

59.為了使模塊盡可能獨立,要求()。

A.內聚程度要盡量高,耦臺程度要盡量強

B.內聚程度要盡量高,耦合程度要盡量弱

C.內聚程度要盡量低,耦合程度要盡量弱

D.內聚程度要盡量低,耦合程度要盡最強

60.以下敘述中錯誤的是()

A.二進制文件打開后可以先讀文件的末尾,而順序文件不可以

B.在程序結束時,應當用fclose函數關閉已打開的文件

C.在利用fread函數從二進制文件中讀數據時,可以用數組名給數組中所有元素讀入數據

D.不可以用FILE定義指向二進制文件的文件指針

四、選擇題(20題)61.

62.

63.下列敘述中正確的是()。A.棧是“先進先出”的線性表

B.隊列是“先進后出”的線性表

C.循環(huán)隊列是非線性結構的線性表

D.有序線性表既可以采用順序存儲結構,也可以采用鏈式存儲結構

64.

65.有以下程序:

程序執(zhí)行后的輸出結果是()。

A.357B.753C.369D.751

66.

67.

68.有以下程序:

#include<stdio.h>

#defineN3

voidfun(inta[][N],intb[])

{inti,j;

for(i=0;i<N;i++)

{b[i]=a[i][0];

for(j=i;j<N;j++)

if(b[i]<a[i][j])b[i]=a[i][j];

}

}

main()

{intx[N][N]={1,2,3,4,5,6,7,8,9},y[N],i;

fun(x,y);

for(i=0;i<N;i++)printf("%d,",y[i]);

printf("\n");

}

程序運行后的輸出結果是(,)。

A.2,4,8,

B.3,6,9,

C.3,5,7,

D.1,3,5,

69.以下敘述中錯誤的是()。

A.改變函數形參的值,不會改變對應實參的值

B.函數可以返回地址值

C.可以給指針變量賦一個整數作為地址值

D.當在程序的開頭包含文件stdi0.h時,可以給指針變量賦NULL

70.下述程序的運行結果是()。

#includedstdio.h>

#includedstrin9.h>

main

{char*s1="abDuj";

char*s2="ABdUG";

intt;

t=strcmp(s1,s2);

printf("%d",t);

}

A.正數B.負數C.零D.不確定的值

71.

72.

73.

74.以下符合C語言語法的實型常量是

A.1.2E0.7B.3.33.145EC.E23D..4E-2

75.

76.若a是數值類型,則邏輯表達式(a==1)Il(a!=1)的值是()。

A.1B.0C.2D.不知道a的值,不能確定

77.已定義以下函數:

fun(char*p2,char*p1)

{while((*p2=*p1)!=’\0’){p1++;p2++;}}

函數的功能是()。

A.將p1所指字符串復制到p2所指向內存空間

B.將p1所指字符串的地址賦給指針p2

C.對p1和p2兩個指針所指字符串進行比較

D.檢查p1和p2兩個指針所指字符串中是否有’\0’

78.

79.關系數據庫管理系統能實現的專門關系運算包括()。

A.排序、索引、統計B.選擇、投影、連接C.關聯、更新、排序D.顯示、打印、制表

80.沒有以下語句

則Z的二進制值是()。

A.00010100B.00011011C.00011100D.00011000

五、程序改錯題(1題)81.下列給定程序中函數fun()的功能是:把從主函數中輸人的3個數。最大的數放在a中,中間的數放在b中,最小的數放在C中。例如,若輸入的數為:55,12,34,輸出的結果應當是:a=55.0,b=34.0,c=12.0。請改正程序中的錯誤,使它能得出正確的結果。注意:不要改動main()函數,不得增行或刪行,也不得更改程序的結構!試題程序:

六、程序設計題(1題)82.編寫函數fun,其功能是:將所有大于1小于整數m的非素數存人xx所指數組中,非素數的個數通過k返回。

例如,若輸入l7,則應輸出:46891012141516。

注意:部分源程序在文件PROGl.C中。

請勿改動主函數main和其他函數中的任何內容,僅在函數fun的花括號中填人你編寫的若干語句。

參考答案

1.A

2.A解析:順序存儲結構就是用一組地址連續(xù)的存儲單元依次存儲該線性表中的各個元素,鏈式存儲結構中各數據結點的存儲序號是不連續(xù)的,并且各結點在存儲空間中的位置關系與邏輯關系也不一致,所以選項A是正確的。兩者都可以存儲線性的、有序的邏輯結構,所以選項B、C不正確。順序結構使用的是連續(xù)物理空間,鏈式結構可以使用零散的物理空間存儲,鏈式結構更靈活,不存在誰節(jié)約空間的說法,所以選項D不正確。

3.D解析:中序遍歷的遞歸算法定義:①遍歷左子樹;②訪問根結點;③遍歷右子樹。前序遍歷的遞歸算法定義:①訪問根結點;②遍歷左子樹;③遍歷右子樹。后序遍歷的遞歸算法定義:①遍歷左子樹;②遍歷右子樹;③訪問根結點。根據前序遍歷的結果可知,a是根結點。由中序遍歷的結果dgbaechf可知,d、g、b是左子樹的結點,e、c、h、f是右子樹的結點。再由前序遍歷的結果bdg可知,b是a左邊子樹的根,由cefh可知,c是a右邊子樹的根。再由中序遍歷的結果dgb可知,d、g是b左邊子樹的結點,b右邊子樹無結點。再由前序遍歷結果dg可知,d為b左子樹的根,g是以d為根的子樹的右結點。至此,a的左子樹已完全弄清楚了。同樣的道理,可以弄清楚以c為根的子樹的結點位置。所以可知后序遍歷的結果是D。

4.D解析:結構化分析方法,數據流圖,數據字典,軟件需求規(guī)格說明書

評析,需求分析是軟件定義時期的最后一個階段,它的基本任務就是詳細調查現實世界要處理的對象(組織,部門、企業(yè)等),充分了解原系統的工作概況,明確用戶的各種需求,然后在此基礎上確定新系統的功能.選項A)軟件開發(fā)方法是在總體設計階段完成的任務;選項B)軟件開發(fā)工具是在實現階段需完成的任務:選項C)軟件開發(fā)費用是在可行性研究階段需完成的任務。

5.C程序中變量a的初值為123456,while循環(huán)的終止條件是a為0。循環(huán)開始將a的最后一位數字賦給b,a除以10后(丟棄最后一位)重新賦給a。在循環(huán)過程中,變量a和b的取值分別為:124566、123455、12344、1233、122、11。循環(huán)體中,執(zhí)行switch(b)語句,當b的數值不等于1、2、3、4時,首先執(zhí)行default語句,輸出b并將b自增1,再執(zhí)行case1、case2語句,輸出自增后的b值;當b的數值等于1、2、3、4時,只執(zhí)行case語句,輸出b的值。綜上,當b為6、5時,分別輸出67、56;當b為4、3、2、1時,分別輸出4、3、2、1。最終程序輸出結果為67564321。故本題答案為C選項。

6.A算法的有窮性,是指算法必須能在有限的時間內做完,即算法必須能在執(zhí)行有限個步驟之后終止。

7.A

8.D

9.A"\0"表示空字符,strlen函數求得的是不包括字符串結束符'\0'的長度。故選A。

10.C

11.C選項A、B的空間不夠;字符串存儲要有結束符\0,且要占用一個空間,printf用來輸出字符,不能輸入字符串。

12.C解析:z=x++是先把x的值1賦給z,所以z=1,然后再把x加1賦給x,x=2,++y后y又加1,所以y=3。

13.A根據二叉樹的性質,n=n0+n1+n2(n表示總結點數,n0表示葉子結點數,nl表示度數為1的結點數,n2表示度數為2的結點數),而葉子結點數總是比度數為2的結點數多1,所以n2=n1-1=5-1=4,而n=25,所以nl=n-n0-n2=25-5-4=16。

14.C解析:外部變量在編譯時由系統分配永久的內存空間,所以外部變量的類型不是自動存儲類別。

15.B

16.A解析:在C語言中所謂函數的遞歸是指在調用一個函數的過程中,又出現了直接或間接調用該函數本身,直接調用該函數本身的稱為函數遞歸,而間接調用該函數稱為函數的間接遞歸調用。由程序可以看出函數f(a,i,j)為一遞歸函數,其功能是當i<j時,將數組中的元素a[i]和a[j]交換,然后再調用函數f(a,i+1,j-1),將數組中a[i+1]和a[j--]交換,這樣一直遞歸到數組下標i=j,可見該遞歸函數的作用是使數組中首尾元素依次互換。主函數中定義了一個長度為5的數組aa并初始化,然后調用f(a,0,4),將數組a中的元素依次互換,故最后for循環(huán)輸出的數組aa中各元素的值為5、4、3、2、1,所以,4個選項中選項A符合題意。

17.B解析:考查用指針引用字符串元素的方法。指針a通過數組元素下標來從頭逐個地引用字符串item中的字符,判斷不是0~9之間的數字時,就去掉這個字符,所以程序結束后,字符串item中就只剩下和兩個字符了。

18.D解析:關系模型中包括關系的數據結構、關系的操縱和關系中的數據約束。關系完整性約束即數據完整性,包括實體完整性、參照完整性和用戶自定義完整性。

19.A解析:本題考核軟件維護的概念.維護是軟件生命周期的最后一個階段,也是持續(xù)時間最長、付出代價最大的階段,在軟件交付使用后,還需要進行維護。軟件維護通常有以下四類:為糾正使用中出現的錯誤而進行的改正性維護;為適應環(huán)境變化而進行的適應性維護;為改進原有軟件而進行的完善性維護;為將來的可維護和可靠而進行的預防性維護。軟件維護不僅包括程序代碼的維護,還包括文檔的維護。綜上所述,本題的正確答案是A,其余選項的說法錯誤。

20.A在函數point函數調用時,系統自動為函數的形參P分配內存空間,并賦值為實參P的值。當執(zhí)行語句P+=3;時,系統操作的是形參P的內存空間,更改形參P的內容,而實參指針變量P的值未受影響,即指針變量作為函數參

21.x[i][i]x[i-1][j-1]+x[i-1][j]或x[i-1][j]+x[i-1][j-1]x[i][i]\r\nx[i-1][j-1]+x[i-1][j]或x[i-1][j]+x[i-1][j-1]解析:在程序中用兩重循環(huán)。在第一層循環(huán)中將每行的第0列賦值為1,對角線上的元素賦值為1顯然在第一個空中應該填入對角線上的元素即x[i][i],在第2重循環(huán)中給每行其他元素賦值,而在每行中除了第0列和對角線的元素外其他元素為其對應的上一行中同列和同列的前一列的元素相加,所以在第二個空中應該填入x[i-1][j-1]+x[i-1][j]。

22.###36

23.5432154321解析:在while循環(huán)中,d=n%10;語句每次求得的結果是n個位上的數值,例如12345÷10所得的余數就是個位上的5。接下來輸出得到的個位數字d,然后執(zhí)行n/=10;語句,該語句等價于n=n/10;。在C語言中,如果/運算的兩個運算分量都是整數,那所得的結果也截尾取整,所以12345/10=1234,即n-=n/10;語句的作用是讓n截去個位上的數字。由此可知,隨著while循環(huán)的繼續(xù),n依次為12345、1234、123、12、1,而每次輸出n的個位數字將為5、4、3、2、1。故本題應填543210。

24.Y%2=1或Y%2!=0Y%2=1或Y%2!=0解析:判斷變量是否為奇數可以用變量與2取模,判斷結果是為1或下為0。本題具體做法如下:Y%2=1或Y%2!=0。

25.ii解析:外循環(huán)是遞減的,方陣中的每個元素為(j-1)*4+i,因此空格處填i。

26.用x+8代替函數fun(doublex)中形式參數x。用sin(x)代替函數fun(doublex)中形式參數x。

27.輸出結果輸出結果解析:注意:測試的基本方法和步驟。

28.完善性完善性解析:軟件維護活動包括以下幾類:改正性維護、適應性維護、完善性維護和預防性維護。完善性維護是指為了滿足用戶對軟件提出的新功能與性能要求,需要修改或再開發(fā)軟件,以擴充軟件功能、增強軟件性能、改進加工效率、提高軟件的可維護性。

29.指針P指向數組a的首地址,執(zhí)行語句p++;后p指向數組a的第2個元素的地址,即a[1]的地址,因此*p=a[1]=4。\r\n\r\n

30.完善性軟件維護活動包括以下幾類:改正性維護,適應性維護、完善性維護和預防性維護,完善性維護是指為了滿足用戶對軟件提出的新功能與性能要求,需要修改或再開發(fā)軟件,以擴充軟件功能、增強軟件性能、改進加工效率、提高軟件的可維護性。

31.1111解析:格式字符。是以八進制無符號形式輸出整數(不輸出前導符0),因為整數9的八進制為11,所以輸出結果為11。

32.線性結構線性結構解析:數據的邏輯結構是指數據元素之間的邏輯關系,分為線性結構和非線性結構。常見的線性結構有線性表、棧和隊列等,常見的非線性結構有樹、二叉樹等。

33.重復(循環(huán))重復(循環(huán))解析:結構化程序設計包括3種基本的結構:順序結構、選擇結構和重復結構(循環(huán)結構),利用這3種結構就足以表達出各種其他形式結構的程序設計方法。其中利用循環(huán)結構,可以簡化大量的程序執(zhí)行。

34.軟件工具軟件工具解析:軟件開發(fā)環(huán)境是各類軟件開發(fā)工具的集合體。

35.測試實例測試實例解析:進行軟件測試時,應精心設計測試實例和選擇測試數據,以對系統進行全面測試。

36.一對多或1:N實體之間的對應關系稱為聯系,它反映現實世界事物之間的相互關聯。兩個實體間的聯系可以歸結為三種類型:一對一聯系表現為某一實體與另一實體一一對應相關聯;一對多聯系表現為某一實體與相關多個實體相關聯;多對多聯系表現為多個實體與相關多個實體相關聯。

37.扇出扇出解析:在結構圖中,調用一個給定模塊的模塊個數稱為扇入,一個模塊直接調用的其他模塊個數稱為扇出。

38.內聚內聚

39.t*10t*10解析:程序中變量,用于存放表達式1+12+123+1234+12345之和,變量t用于存放其表達式的各項。當i=1時,要使t=1;i=2時,t=12;i=3時,t=123;依此類推。每一次的t值是用上一次的t乘以10再加上此次的i的值,所以本題答案為t*10。

40.類類

41.A解析:本題考查的是位運算的知識,對于任何二進制數,和1進行異或運算會讓其取反,而和0進行異或運算不會產生任何變化。

42.B解析:C語言以定,實參變量對形參變量的數據傳遞是“單向值傳遞”,只由實參傳紿形參。在內存中,實參單元與形參單元是不同的單元。調用結束后,實參單元仍保留并維持原值。

43.B解析:鏈表采用的是鏈式存儲結構,它克服了順序存儲結構的缺點:它的結點空間可以動態(tài)申請和釋放;它的數據元素的邏輯次序靠結點的指針來指示,不需要移動數據元素。但是鏈式存儲結構也有不足之處:①每個結點中的指針域需額外占用存儲空間;②鏈式存儲結構是一種非隨機存儲結構。

44.D解析:對二叉樹的前序遍歷是指先訪問根結點,然后訪問左于樹,最后訪問右子樹,并且在訪問左、右子樹時,先訪問根結點,再依次訪問其左、右于樹。

45.B解析:在scanf('%f%f%f,&a,&b,&c);中,格式描述為'%f%f%f,當輸入數據時,數據之間可用空格、制表符和回車符作為間隔符,而逗號不是合法的間隔符。

46.D解析:C語言規(guī)定,字符常量在程序中要用單引號括起來。判斷c1是否為小寫字母的充要條件c1>='a'和c1<='z',用邏輯與(&&)來表示。A選項的這種形式在C語言中沒有,所以選項D)正確.

47.A解析:本題主要考查結構體的內存使用:對結構體而言,結構中不同的成員分別使用不同的內存空間,一個結構所占內存空間的大小是結構中每個成員所占內存空間大小的總和,結構中每個成員相互獨立。

48.C解析:考查棧和隊列概念的掌握。棧和隊列都是一種特殊的操作受限的線性表,只允許在端點處進行插入和刪除。二者的區(qū)別是:棧只允許在表的一端進行插入或刪除操作,是一種'后進先出'的線性表;而隊列只允許在表的一端進行插入操作,在另一端進行刪除操作,是一種'先進先出'的線性表。模塊之間的耦合程度反映了模塊的獨立性,也反映了系統分解后的復雜程度。按照耦合程度從弱到強,可以將其分成5級,分別是:數據耦合、同構耦合、控制耦合、公用耦合和內容耦合。選項C),沒有這種耦合方式。

49.A解析:本題考核的知識點是指針數組的定義和strlen()函數的應用。本題中首先定義了一個長度為10的指針數組,并賦初值,因此執(zhí)行strlen(p[4]后的返回值為字符串“cd”的長度為2。所以,4個選項中選項A符合題意。

50.B解析:視圖設計一般有三種設計次序,它們分別是自頂向下、自底向上和由內向外,可以單獨使用也可混合使用。

51.A解析:由于數據的集成性使得數據可為多個應用所共享,特別是在網絡發(fā)達的今天,數據庫與網絡的結合擴大了數據關系的應用范圍。數據的共享自身又可極大地減少數據冗余性,不僅減少了不必要的存儲空間,更為重要的是可以避免數據的不一致性。這里所謂數據的一致性是指在系統中同一數據的不同出現應保持相同的值,而數據的不一致性指的是同一個數據在系統的不同拷貝處有不同的值。

52.B解析:scanf()函數要求將輸入的數據存入變量所在的地址。選項A不是C語言中的輸入語句,故選項A不正確;選項C中輸入的是變量字符串而不是地址字符串,不滿足scanf()函數要求將輸入的數據存入變量所在的地址,故選項C不正確;選項D不是C語言中的輸入語句,故選項D不正確:所以,4個選項中選項B符合題意。

53.C解析:總體設計過程通常由兩個主要階段組成:系統設計,確定系統的具體實現方案;結構設計,確定軟件,結構。為確定軟件結構,首先需要從實現角度把復雜的功能進一步分解。分析員結合算法描述仔細分析數據流圖中的每個處理,如果一個處理的功能過分復雜,必須把它的功能適當地分解成一系列比較簡單的功能。

54.D解析:這個題目的功能是實現兩個有序字符串的合并,合并成一個新的有序的字符串。

55.C解析:aa數組被定義為字符型指針數組,有兩個元素,分別存放字符串'abcd'和'ABCD'的首地址。

56.B解析:本題考查考生的程序分析能力.程序除了聲明語句外,是一個for循環(huán),其中嵌套兩個并列的for循環(huán),外層for循環(huán)最后一條語句是輸出換行,因此外層for循環(huán)每循環(huán)一次輸出1行數據.內層第一個for循環(huán)的循環(huán)體是輸出4個空格,因此它的作用是輸出每行開頭的空白部分。而內層第二個for循環(huán)是輸出數組num第i行第i列數據,從結果可以看出,第1行時,它應該輸出num[0][0]~num[0][3]中的數,那么i的變化范圍應該是0~3,注意此時i的值為0;而第2行輸出num[0][1]~num[0][3],j應該為1~3,此時i的值為1:同樣可以推出第3行和第4行,i的變化初始值始終跟i的值相同。所以下劃線應填入i,選項B正確。

57.C【解析】在鏈表中因為除了存放數據元素之外,還要存放指針,所以鏈表花費的存儲空間要比順序表還要多,在插入和刪除數據元素時,只需要移動相應的記錄指針即可,在鏈表中,數據的物理結構與邏輯結構不一定相同,因為是靠指針來實現對數據的指定的,所以不能進行隨機存取。

58.C解析:除選項C項外,其他各項都沒有按照C語言中的函數定義規(guī)則定義函數。

59.B

60.D解析:順序文件只能從頭讀寫,二進制文件可以隨機讀寫,選項A正確:文件在使用后應關閉,當程序結束時,應當把打開的文件關閉,選項B正確:用fread()函數可以一次性地讀取同類型的很多數據,選項C正確;在C語言中指向各種文件的文件指針都是通過FILE來定義的,故選項D是錯誤的。所以4個選項中選D

61.D

62.C

63.D棧是先進后出的線性表。因此A)錯誤;隊列是先進先出的線性表,因此B)錯誤;循環(huán)隊列是線性結構的線性表,因此c)錯誤,故本題答案為D)。

64.B

65.A本題考查的是for循環(huán)與二維數組的定義和引用。當定義二維數組的初始化列表只使用一重花括號時,其中的每個值依次代表從第l行的第1個元素起,直到第l行滿,接著代表第2行、第3行……的每一個元素。程序中的循環(huán)將循環(huán)3次,循環(huán)變量i的值分別是0、1、2,所以3次循環(huán)中輸出的數分別是:t[2一O][D]、t[2-1][1]、t[2~2]121,即t[2][0]、t[1][l]、t[0][2],所以最后輸出的結果為357。故應該選擇A)。

66.B

67.C

68.B\nFun函數功能是把數組a的每一行的最大值賦給b,a的第一行的最大值是3,第二行的最大值是6,第三行的最大值是9,所以答案是3,6,9。

\n

69.C指針變量的值只能是存儲單元地址,而不能是一個整數,故選項C錯誤。

70.A本題考查符符串比較函數和兩個字符串比較的原則這兩個知識點。

\n(1)兩字符串比較的原則是依次比較兩個字符串同一位置的一對字符,若它們的ASCII碼值相同,則繼續(xù)比較下一對字符,若它們的ASCII碼值不同,則ASCII碼值較大的字符所在的字符串較大;若所有字符相同,則兩個字符串相等;若一個字符串全部i個字符與另一個字符串的前i個字符相同,則字符串較長的較大(2)strcmp(s1,s2)的返回值,當str1<str2時,返回值為負數;當str1=str2時,返回0;當str1>str2,返回值為正數。

71.B

72.C

73.A

74.D本題主要考查實型常量的合法表示。在C語言中,實型常量主要有兩種表現形式,分別為:

(1)十進制小數表示法。這種表示法中主要用數字和小數點組成實數。用這種表示法表示實數沒有什么其他的要求,不容易出錯。

(2)指數形式表示法,如123e3或123E3。用這種表示法表示實數需要注意以下事項。

①字母E之前必須有數字。

②字母E之后的數字必須為整數。

③字母E前后不能有空格字符。

根據前面的分析,不難看出本題中只有D選項的描述是正確的。在A選項中,由于E后面的數字是小數而不正確;在B選項中,由于E后面沒有數字而不正確;在選項C中,由于E之前沒有數字而不正確。

75.C

76.A邏輯或”I|”要求只要兩邊的運算對象有一個非零,結果就為真。雖然不知道a的值,但是若a為1,則左邊運算對象為1;若a的值不是1,則右邊運算對象的值為1,所以總能保證一邊非零,所以結果為真,即1。

77.A將p1指向的字符賦給p2,然后再移向下一個字符,直到結束字符0為止,因此這是將p1所指的字符串復制到p2所指的內存空間。

78.D

79.B解析:此題為數據庫的基本概念,可以對照辦工軟件的電子表格進行如下理解:選擇:我們根據某條件選擇出一行或多行元組(一個元組即為二維表中的一行)。投影:按字段(也稱屬性,比如學生關系(學號,姓名,出生年月,性別),學號、姓名…都是屬性)選取一列或多列(一個二維表中所有元組在某一列或幾列上截取出來)。連接:2個或2個以上的表連接組成一張新的表,通常有條件連接。比如學生關系(學號,姓名,系號),又有一張系表(系號,系名,主任),2張表可以合并為一張這樣的表(學號,姓名,系號,系名,主任)。

80.B本題考查兩個位運算符。按位異或運算

81.(1)錯誤:float*k;

正確:floatk;

(2)錯誤:if(*a>*c)

正確:if(*a<*c)

【解析】變量定義首先要判斷變量的類型,給定程序的賦值語句中,k是以變量形式進行賦值的,所以k不是指針,定義為指針是不正確的;由給出程序可以看出,if語句是為了將小于*C的值放入*C中,所以應該改為“if(*a<*c)”。

82.【參考答案】

【考點分析】

本題考查:如何判斷非素數;循環(huán)判斷結構;數組的引用。

【解題思路】

題目要求將l~m之間的非素數存人數組中,應使用循環(huán)判斷結構。循環(huán)語句用來遍歷1~m之間的每個數,判斷語句用來判斷該數是否素數,若不是素數,則將其存人數組中。這道題目是考查一個數是否為素數的簡單延伸,只要掌握了判斷素數的方法,問題便能順利解決。

【解題寶典】

判定一個數是否為素數,即該數除了能被l和它本身外,不能被任何數整除。

代碼實現為:

此語句需要熟記,很多判斷素數的題目也可通過此法解決。2021年內蒙古自治區(qū)赤峰市全國計算機等級考試C語言程序設計模擬考試(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.依次讀入數據元素序列{a,b,c,d,e,f,g}進棧,每進一個元素,機器可要求下一個元素進?;驈棗?,如此進行,則??諘r彈出的元素構成的序列是以下哪些序列?

A.{d,e,c,f,b,g,a}

B.{f,e,g,d,a,c,b}

C.{e,f,d,g,b,c,a}

D.{c,d,b,e,f,a,g}

2.下列敘述中正確的是()。

A.順序存儲結構的存儲一定是連續(xù)的,鏈式存儲結構的存儲空間不一定是連續(xù)的

B.順序存儲結構只針對線性結構,鏈式存儲結構只針對非線性結構

C.順序存儲結構能存儲有序表,鏈式存儲結構不能存儲有序表

D.鏈式存儲結構比順序存儲結構節(jié)省存儲空間

3.若某二叉樹的前序遍歷訪問順序是abdgcefh,中序遍歷訪問順序是dgbaechf,則其后序遍歷的結點訪問順序是()。

A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca

4.需求分析階段的任務是確定()

A.軟件開發(fā)方法B.軟件開發(fā)工具C.軟件開發(fā)費用D.軟件系統功能

5.有以下程序:#include<stdio.h>main(){inta=123456,b;while(a){b=a%10;a/=10;switch(b){default:printf(“%d”,b++);case1:case2:printf(“%d”,b++);break;case3:printf(“%d”,b++);break;case4:printf(“%d”,b++);}}}程序運行后的輸出結果是()。

A.76654321B.12345667C.67564321D.654321

6.算法的有窮性是指A.算法程序的運行時間是有限的

B.算法程序所處理的數據量是有限的

C.算法程序的長度是有限的

D.算法只能被有限的用戶使用

7.一個長度為99的循環(huán)鏈表,指針A和指針B都指向了鏈表中的同一個節(jié)點,A以步長為1向前移動,B以步長為3向前移動,一共需要同時移動多少步A和B才能再次指向同一個節(jié)點()。

A.99B.100C.101D.49E.50F.51

8.數據結構若采用鏈式存儲結構,要求內存中可用存儲單元的地址()。

A.必須是連續(xù)的B.部分地址必須是連續(xù)的C.一定是不連續(xù)的D.連續(xù)不連續(xù)都可以

9.若有定義語句:“charsE10]="1234567\0\0";”,則strlen(s)的值是()。A.A.7B.8C.9D.10

10.

11.下列能正確進行字符串賦值的是()。

A.chars[5]={"ABCDE"};

B.chars[5]={A,B,C,D,E};

C.char*S;S="ABCDE";

D.char*s;printf("%《",s);

12.有以下程序:main(){intx,y,z;x=y=1;z=x++,y++,++y;printf("%d,%d,%d,%d\n",x,y,z);程序運行后的輸出結果是()。

A.2,3,3B.2,3,2C.2,3,1D.2,2,1

13.一棵二叉樹共有25個結點,其中5個是葉子結點,則度為l的結點數為()。

A.16B.10C.6D.4

14.下列敘述中錯誤的是()。

A.在C語言中,函數中的自動變量可以賦初值,每調用一次賦一次初值

B.在C語言中,在調用函數時,實參和對應形參在類型上只需賦值兼容

C.在C語言中,外部變量的隱含類型是自動存儲類別

D.在C語言中,函數形參的存儲類型是自動(auto)類型的變量

15.任何一個無向圖的最小生成樹()。

A.只有一棵B.有一棵或多棵C.一定有多棵D.可能不存在

16.有以下程序:voidf(inta[],inti,intj){intt;if(i<j){t=a[i];a[i]=a[j];a[j]=t;f(a,i+1,j-1);}}main(){inti,aa[5]={1,2,3,4,5};f(aa,0,4);for(i=0;i<5;i++)printf("%d,",aa[i]);printf("\n");}執(zhí)行后輸出結果是()。

A.5,4,3,2,1,B.5,2,3,4,1,C.1,2,3,4,5,D.1,5,4,3,2,

17.下面程序的運行結果是

#include<stdio.h>

voiddelch(char*s)

{inti,j;

char*a;

a=s;

for(i=0,j=0;a[i]!=′\n′;i++)

if(a[i]>=′0′&&a[i]<=′9′)

{s[j]=a[i];j++;}

s[j]=′\0′;}

main()

{char*item="a34bc";

delch(item);

printf("\n%s",item);}

A.abcB.34C.a34D.a34bc

18.關系數據庫的數據及更新操作必須遵循()等完整性規(guī)則。

A.實體完整性和參照完整性

B.參照完整性和用戶定義的完整性

C.實體完整性和用戶定義的完整性

D.實體完整性、參照完整性和用戶定義的完整性

19.下列敘述中正確的足

A.軟件交付使用后還需要進行維護

B.軟件一旦交付使用就不需要再進行維護

C.軟件交付使用后其生命周期就結束

D.軟件維護是指修復程序中被破壞的指令

20.有以下程序:

程序運行后的輸出結果是()。

A.1B.2C.3D.4

二、2.填空題(20題)21.函數YangHui的功能是把楊輝三角形的數據賦給二維數組的下半三角,形式如下:

1

11

121

1331

14641

其構成規(guī)律是:

①第0列元素和主對角線元素均為1。

②其余元素為其左上方和正上方元素之和。

③數據的個數每行遞增1。

請將程序補充完整。

#defineN6

voidyanghui(intx[N][N])

{inti,j;

x[O][0]=1;

for(i=1;i<N;i++)

{x[i][0]=【】=1;

for(j=1;j<i;j++)

x[i][j]=【】;

}

)

22.下面程序的執(zhí)行結果是【】。

main()

{

inta=5,b=4,c=9;

printf("###%d",(a<C)?c*b:a*B);

}

23.以下程序的輸出結果是【】。

#include<stdio.h>

main()

{intn=12345,d;

while(n!=0){d=n%10;printf("%d",D);n/=10;}

}

24.設Y是int型變量,請寫出判斷Y為奇數的關系表達式【】。

25.以下程序的功能是輸出如下形式的方陣:

13141516

9101112

5678

1234

請?zhí)羁铡?/p>

main()

{inti,j,x;

for(j=4;j>0;j--)

{for(i=1;i<=4;i++)

{x=(j-1)*4+【】;

printf("%4d",x);

}

printf("\n");

}

}

26.以下程序中,函數fun的功能是計算x2-2x+6,主函數中將調用fun函數計算:

y1=(x+8)2-2(x+8)+6

y2=sin2(x)-2sin(x)+6

請?zhí)羁铡?/p>

ginclude"math.h"

doublefun(doublex){return(x*x-2*x+6);}

main()

{doublex,y1,y2;

pfintf("Enterx:");scanf("%lf"&x);

y1=fun([10]);y2=fun([11]);

pin

27.為了便于對照檢查,測試用例應由輸入數據和預期的【】兩部分組成。

28.軟件維護活動包括以下幾類:改正性維護、適應性維護、【】維護和預防性維護o

29.以下程序的輸出結果是______。

#include<stdio.h>

main()

{inta[5]={2,4,6,8,10},*p;

p=a;p++;

printf("%d",*p);

}

30.軟件維護活動包括以下幾類:改正性維護、適應性維護、【】維護和預防性維護。

31.以下程序段的輸出結果是【】。

inti=9;

prinff("%o\n",i);

32.按照邏輯結構分類,結構可以分為線性結構和非線性結構,棧屬于______。

33.結構化程序設計的3種基本結構分別是順序、選擇和______。

34.軟件開發(fā)環(huán)境是全面支持軟件開發(fā)全過程的______的集合。

35.軟件測試是保證軟件質量的重要手段,而軟件測試的主要和重要的測試方法是通過測試數據和【】的設計來實現。

36.如果一個工人可管理多個設施,而一個設施只可被一個工人管理,則實體“工人”與實體“設備”之間存在【】聯系。

37.一個模塊直接調用的其他模塊的模塊個數稱為______。

38.耦合和內聚是評價模塊獨立性的兩個主要標準,其中______反映了模塊內各成分之間的聯系。

39.以下程序的功能是計算:s=1+12+123+1234+12345。請?zhí)羁铡?/p>

#include<stdio.h>

main()

intt=0.s=0,i:

for(i=1;i<=5;i++){t=i+【】;s=s+t;}

prinff("s=%d\n".s);}

40.面向對象的模型中,最基本的概念是對象和______。

三、1.選擇題(20題)41.變量a中的數據用二進制表示的形式是01011101,變量b中的數據用二進制表示的形式是11110000。若要求將a的高位取反,低4位不變,所要執(zhí)行的運算是

A.a^bB.a|bC.a&bD.a<<4

42.在調用函數時,如果實參是簡單變量,它與對應形參之間的數據傳遞方式是______。

A.地址傳遞B.單向值傳遞C.由實參傳遞給形參,再由形參傳遞給實參D.傳遞方式由用戶指定

43.鏈表不具有的特點是()

A.不必事先估計存儲空間B.可隨機訪問任一元素C.插入刪除不需要移動元素D.所需空間與線性表長度成正比

44.有下列二叉樹,對此二叉樹前序遍歷的結果為()。

A.XZCYABB.XYZABCC.XYABCZD.XYAZBC

45.若變量已正確說明為float型,要通過scanf("%f%f%f",&a,&b,&c);給a賦值10.0,b賦值22.0,c賦值33.0,下列不正確的輸入形式是()。

A.10<回車>22<回車>33<回車>

B.10.0,22.0,33.0<回車>

C.10.0<回車>22.033.0<回車>

D.1022<回車>33<回車>

46.判斷char型變量c1是否為小寫字母的正確表達式為()。

A.'a'<=c1<='z'

B.(c1>=A)‖(c1<=z)

C.('a'=>c1‖('z'<=c1)

D.(c1>='a')&&(c1<='z')

47.當說明一個結構體變量時系統分配給它的內存是()。

A.各成員所需要內存量的總和

B.結構中第一個成員所需的內存量

C.成員中占內存最大者所需的容量

D.結構中最后一個成員所需要的內存量

48.棧和隊列的共同特點是()。

A.都是先進先出B.都是先進后出C.只允許在端點處插入和刪除元素D.沒有共同點

49.有以下程序:main(){char*p[10]={"abc","aabdfg","dcdbe","abbd","cd"};printf("%d\n",strten(p[4]));}執(zhí)行后輸出結果是

A.2B.3C.4D.5

50.視圖設計一般有三種設計次序,下列不屬于視圖設計的是()。

A.自頂向下B.由外向內C.由內向外D.自底向上

51.下述關于數據庫系統的敘述中正確的是______。

A.數據庫系統減少了數據冗余

B.數據庫系統避免了一切冗余

C.數據庫系統中數據的一致性是指數據類型的一致

D.數據庫系統比文件系統能管理更多的數據

52.X、Y、Z被定義為int型變量,若從鍵盤給X、Y、Z輸入數據,正確的輸入語句是______。

A.INPUTX,Y,Z;

B.scanf("%d%d%d",&X,&Y,&Z);

C.scanf("%d%d%d",X,Y,Z);

D.read("%d%d%d",&X,&Y,&Z);

53.在結構化方法中,軟件功能分解屬于軟件開發(fā)中的______階段。

A.詳細設計B.需求分析C.總體設計D.編程調試

54.現有如下程序段#include"stdio.h"#include"string.h"main(){chara[]="acfijk";/*這里是有序的字符序列*/charb[]="befijklqswz";/*這里是有序的字符序列*/charc[80],*p;inti=0,j=0,k=0;while(a[i]!='\0'&&b[j]!='\0'){if(a[i]<b[j])c[k++]=a[i++];elseif(a[i]>b[j])c[k++]=b[j++];else{c[k++]=b[j++];i++;}}while(a[i]=='\0'&&b[j]!='\0')c[k++]=b[j++];while(a[i]!=,'\0'&&b[j]=='\0')c[k++]=a[i++];c[k]='\0';puts(c);}則輸出結果是

A.acfijkbefijklqswz

B.abceffiijjkklqswz

C.befijklqswzacfijk

D.abcefijklqswz

55.設有如下定義:char*aa[2]={"abcd","ABCD"},則以下說法中正確的是()。

A.aa數組中元素的值分別是{"abcd","ABCD"};

B.aa是指針變量,它指向含有兩個數組元素的字符型一維數組

C.aa數組的兩個元素分別存放的是含有4個字符的一維字符數組的首地址

D.aa數組的兩個元素中各自存放了字符‘a’和‘A’的地址

56.有以下程序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=1;j<=i;j++)printf("%4c",'');for(j=______;j<4;j++)printf("%4d',num[i][j]);printf("\n");}}若要按下形式輸出數組右上半三角1234678111216

A.i-1B.iC.i+1D.4-i

57.用鏈表表示線性表的優(yōu)點是()。

A.便于隨機存取B.花費的存儲空間較順序存儲少C.便于插入和刪除操作D.數據元素的物理順序和邏輯順序相同

58.以下所列的各函數首部中,正確的是______。

A.voidplay(vara:Integer,varb:Integer)

B.voidplay(inta,b)

C.voidplay(inta,intb)

D.Subplay(aasinteger,basinteger)

59.為了使模塊盡可能獨立,要求()。

A.內聚程度要盡量高,耦臺程度要盡量強

B.內聚程度要盡量高,耦合程度要盡量弱

C.內聚程度要盡量低,耦合程度要盡量弱

D.內聚程度要盡量低,耦合程度要盡最強

60.以下敘述中錯誤的是()

A.二進制文件打開后可以先讀文件的末尾,而順序文件不可以

B.在程序結束時,應當用fclose函數關閉已打開的文件

C.在利用fread函數從二進制文件中讀數據時,可以用數組名給數組中所有元素讀入數據

D.不可以用FILE定義指向二進制文件的文件指針

四、選擇題(20題)61.

62.

63.下列敘述中正確的是()。A.棧是“先進先出”的線性表

B.隊列是“先進后出”的線性表

C.循環(huán)隊列是非線性結構的線性表

D.有序線性表既可以采用順序存儲結構,也可以采用鏈式存儲結構

64.

65.有以下程序:

程序執(zhí)行后的輸出結果是()。

A.357B.753C.369D.751

66.

67.

68.有以下程序:

#include<stdio.h>

#defineN3

voidfun(inta[][N],intb[])

{inti,j;

for(i=0;i<N;i++)

{b[i]=a[i][0];

for(j=i;j<N;j++)

if(b[i]<a[i][j])b[i]=a[i][j];

}

}

main()

{intx[N][N]={1,2,3,4,5,6,7,8,9},y[N],i;

fun(x,y);

for(i=0;i<N;i++)printf("%d,",y[i]);

printf("\n");

}

程序運行后的輸出結果是(,)。

A.2,4,8,

B.3,6,9,

C.3,5,7,

D.1,3,5,

69.以下敘述中錯誤的是()。

A.改變函數形參的值,不會改變對應實參的值

B.函數可以返回地址值

C.可以給指針變量賦一個整數作為地址值

D.當在程序的開頭包含文件stdi0.h時,可以給指針變量賦NULL

70.下述程序的運行結果是()。

#includedstdio.h>

#includedstrin9.h>

main

{char*s1="abDuj";

char*s2="ABdUG";

intt;

t=strcmp(s1,s2);

printf("%d",t);

}

A.正數B.負數C.零D.不確定的值

71.

72.

73.

74.以下符合C語言語法的實型常量是

A.1.2E0.7B.3.33.145EC.E23D..4E-2

75.

76.若a是數值類型,則邏輯表達式(a==1)Il(a!=1)的值是()。

A.1B.0C.2D.不知道a的值,不能確定

77.已定義以下函數:

fun(char*p2,char*p1)

{while((*p2=*p1)!=’\0’){p1++;p2++;}}

函數的功能是()。

A.將p1所指字符串復制到p2所指向內存空間

B.將p1所指字符串的地址賦給指針p2

C.對p1和p2兩個指針所指字符串進行比較

D.檢查p1和p2兩個指針所指字符串中是否有’\0’

78.

79.關系數據庫管理系統能實現的專門關系運算包括()。

A.排序、索引、統計B.選擇、投影、連接C.關聯、更新、排序D.顯示、打印、制表

80.沒有以下語句

則Z的二進制值是()。

A.00010100B.00011011C.00011100D.00011000

五、程序改錯題(1題)81.下列給定程序中函數fun()的功能是:把從主函數中輸人的3個數。最大的數放在a中,中間的數放在b中,最小的數放在C中。例如,若輸入的數為:55,12,34,輸出的結果應當是:a=55.0,b=34.0,c=12.0。請改正程序中的錯誤,使它能得出正確的結果。注意:不要改動main()函數,不得增行或刪行,也不得更改程序的結構!試題程序:

六、程序設計題(1題)82.編寫函數fun,其功能是:將所有大于1小于整數m的非素數存人xx所指數組中,非素數的個數通過k返回。

例如,若輸入l7,則應輸出:46891012141516。

注意:部分源程序在文件PROGl.C中。

請勿改動主函數main和其他函數中的任何內容,僅在函數fun的花括號中填人你編寫的若干語句。

參考答案

1.A

2.A解析:順序存儲結構就是用一組地址連續(xù)的存儲單元依次存儲該線性表中的各個元素,鏈式存儲結構中各數據結點的存儲序號是不連續(xù)的,并且各結點在存儲空間中的位置關系與邏輯關系也不一致,所以選項A是正確的。兩者都可以存儲線性的、有序的邏輯結構,所以選項B、C不正確。順序結構使用的是連續(xù)物理空間,鏈式結構可以使用零散的物理空間存儲,鏈式結構更靈活,不存在誰節(jié)約空間的說法,所以選項D不正確。

3.D解析:中序遍歷的遞歸算法定義:①遍歷左子樹;②訪問根結點;③遍歷右子樹。前序遍歷的遞歸算法定義:①訪問根結點;②遍歷左子樹;③遍歷右子樹。后序遍歷的遞歸算法定義:①遍歷左子樹;②遍歷右子樹;③訪問根結點。根據前序遍歷的結果可知,a是根結點。由中序遍歷的結果dgbaechf可知,d、g、b是左子樹的結點,e、c、h、f是右子樹的結點。再由前序遍歷的結果bdg可知,b是a左邊子樹的根,由cefh可知,c是a右邊子樹的根。再由中序遍歷的結果dgb可知,d、g是b左邊子樹的結點,b右邊子樹無結點。再由前序遍歷結果dg可知,d為b左子樹的根,g是以d為根的子樹的右結點。至此,a的左子樹已完全弄清楚了。同樣的道理,可以弄清楚以c為根的子樹的結點位置。所以可知后序遍歷的結果是D。

4.D解析:結構化分析方法,數據流圖,數據字典,軟件需求規(guī)格說明書

評析,需求分析是軟件定義時期的最后一個階段,它的基本任務就是詳細調查現實世界要處理的對象(組織,部門、企業(yè)等),充分了解原系統的工作概況,明確用戶的各種需求,然后在此基礎上確定新系統的功能.選項A)軟件開發(fā)方法是在總體設計階段完成的任務;選項B)軟件開發(fā)工具是在實現階段需完成的任務:選項C)軟件開發(fā)費用是在可行性研究階段需完成的任務。

5.C程序中變量a的初值為123456,while循環(huán)的終止條件是a為0。循環(huán)開始將a的最后一位數字賦給b,a除以10后(丟棄最后一位)重新賦給a。在循環(huán)過程中,變量a和b的取值分別為:124566、123455、12344、1233、122、11。循環(huán)體中,執(zhí)行switch(b)語句,當b的數值不等于1、2、3、4時,首先執(zhí)行default語句,輸出b并將b自增1,再執(zhí)行case1、case2語句,輸出自增后的b值;當b的數值等于1、2、3、4時,只執(zhí)行case語句,輸出b的值。綜上,當b為6、5時,分別輸出67、56;當b為4、3、2、1時,分別輸出4、3、2、1。最終程序輸出結果為67564321。故本題答案為C選項。

6.A算法的有窮性,是指算法必須能在有限的時間內做完,即算法必須能在執(zhí)行有限個步驟之后終止。

7.A

8.D

9.A"\0"表示空字符,strlen函數求得的是不包括字符串結束符'\0'的長度。故選A。

10.C

11.C選項A、B的空間不夠;字符串存儲要有結束符\0,且要占用一個空間,printf用來輸出字符,不能輸入字符串。

12.C解析:z=x++是先把x的值1賦給z,所以z=1,然后再把x加1賦給x,x=2,++y后y又加1,所以y=3。

13

溫馨提示

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

評論

0/150

提交評論