2021-2022年江蘇省淮安市全國計算機等級考試C語言程序設(shè)計重點匯總測試卷(含答案)_第1頁
2021-2022年江蘇省淮安市全國計算機等級考試C語言程序設(shè)計重點匯總測試卷(含答案)_第2頁
2021-2022年江蘇省淮安市全國計算機等級考試C語言程序設(shè)計重點匯總測試卷(含答案)_第3頁
2021-2022年江蘇省淮安市全國計算機等級考試C語言程序設(shè)計重點匯總測試卷(含答案)_第4頁
2021-2022年江蘇省淮安市全國計算機等級考試C語言程序設(shè)計重點匯總測試卷(含答案)_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021-2022年江蘇省淮安市全國計算機等級考試C語言程序設(shè)計重點匯總測試卷(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.下列程序的輸出結(jié)果是()。main{inta,b,d=25;a=d/10%9;b=a&&(一1);printf("%d,%d\n",a,b);}A.6,1B.2,1C.6,0D.2,0

2.計算機系統(tǒng)的組成是______。

A.主機、外設(shè)B.運算器、控制器C.硬件系統(tǒng)和軟件系統(tǒng)D.CPU、內(nèi)存儲器

3.下列關(guān)于線性鏈表的敘述中,正確的是()A.各數(shù)據(jù)結(jié)點的存儲空間可以不連續(xù),但它們的存儲順序與邏輯順序必須一致

B.各數(shù)據(jù)結(jié)點的存儲順序與邏輯順序可以不一致,但它們的存儲空間必須連續(xù)

C.進行出入與刪除時,不需要移動表中的元素

D.以上三種說法都不催

4.在下列幾種排序方法中,空間復(fù)雜度最高的是()

A.歸并排序B.快速排序C.插入排序D.選擇排序

5.若有定義語句“char*s1=“OK”,*s2=“ok”;”,以下選項中,能夠輸出“OK”的語句是()。

A.if(strcmp(s1,s2)!=0)puts(s2);

B.if(strcmp(s1,s2)!=0)puts(s1);

C.if(strcmp(s1,s2)==1)puts(s1);

D.if(strcmp(s1,s2)==0)puts(s1);

6.有以下程序:#include<stdio.h>main(){inta=7;while(a--);print[("%d\n",a);}程序運行后的輸出結(jié)果是()。A.-1B.0C.1D.7

7.以下是一個對數(shù)組A(含有n個數(shù)值元素)進行排序的算法偽代碼,請問它的平均時間復(fù)雜度是多少()

A.O(n)B.O(n^2)C.O(1)D.O(log(n))

8.若有說明chars1[30]="Thecity",s2[]="isbeautiful";,則在使用函數(shù)strcat(s1,s2)后,結(jié)果是()。

A.s1的內(nèi)容更新為Thecityisbeautiful\0

B.s1的內(nèi)容更新為isbeaut\0

C.s1的內(nèi)容更新為Thecity\0isbeautiful\0

D.s1的內(nèi)容更新為Thecityisbeautiful\0

9.已知函數(shù)的調(diào)用形式為fread(buf,size,count,fp),參數(shù)buf的含義是

A.一個整型變量,代表要讀入的數(shù)據(jù)項總數(shù)

B.一個文件指針,指向要讀的文件

C.一個指針;指向要讀入數(shù)據(jù)的存放地址

D.一個存儲區(qū),存放要讀的數(shù)據(jù)項

10.順序查找法適合于存儲結(jié)構(gòu)為()的線性表。

A.散列存儲B.順序存儲或鏈?zhǔn)酱鎯.壓縮存儲D.索引存儲

11.下面算法的時間復(fù)雜度為()A.O(1)B.O(n)C.O(n*n)D.O(n!)

12.可用作C語言用戶標(biāo)識符的一組標(biāo)識符是()。A.voiddefine+WORDB.a3_b3_123YNC.for-abcCaseD.2aDOsizeof

13.兩個或兩個以上模塊之間聯(lián)系的緊密程度稱為()。

A.耦合性B.內(nèi)聚性C.復(fù)雜性D.數(shù)據(jù)傳輸特性

14.

15.以下敘述中正確的是_____。A.用C程序?qū)崿F(xiàn)的算法必須要有輸入和輸出操作

B.用C程序?qū)崿F(xiàn)的算法可以沒有輸出但必須要輸入

C.用C程序?qū)崿F(xiàn)的算法可以沒有輸入但必須要有輸出

D.用C程序?qū)崿F(xiàn)的算法可以既沒有輸入也沒有輸出

16.有下列程序:fun(intx,inty){staticintm=0,i=2;i+=m+1;m=i+x+y;returnm;}main(){intj=1,m=1,k;k=fun(j,m);printS(”%d,”,k);k=fun(j,m);printf(”%d\n”,k);)執(zhí)行后的輸出結(jié)果是()。A.5,5B.5,11C.11,11D.11,5

17.下列排序算法中,其時間復(fù)雜度和記錄的初始排列無關(guān)的是()

A.插入排序B.堆排序C.快速排序D.冒泡排序

18.下述哪一條是順序存儲結(jié)構(gòu)的優(yōu)點()。

A.插入運算方便B.可方便地用于各種邏輯結(jié)構(gòu)的存儲表示C.存儲密度大D.刪除運算方便

19.對于如圖所示二叉樹采用中根遍歷,正確的遍歷序列應(yīng)為()A.ABCDEFB.ABECDFC.CDFBEAD.CBDAEF

20.對線性表進行折半查找時,要求線性表必須()。A.A.以順序方式存儲

B.以順序方式存儲,且結(jié)點按關(guān)鍵字有序排列

C.以鏈?zhǔn)椒绞酱鎯?/p>

D.以鏈?zhǔn)椒绞酱鎯?,且結(jié)點按關(guān)鍵字有序排列

二、2.填空題(20題)21.數(shù)據(jù)庫管理系統(tǒng)是位于用戶與______之間的軟件系統(tǒng)。

22.某二叉樹中度為2的結(jié)點有n個,則該二叉樹中有【】個葉子結(jié)點。

23.以下程序的運行結(jié)果是【】。

#include<stdio.h>

longfib(intg)

{switch(g)

{case0:return0;

case1:

case2:return1;}

return(fib(g-1)+fib(g-2));}

main()

{longk;

k=fib(5);

printf("k=%5ld\n",k);}

24.下面程序有兩個printf語句,如果第一個printf語句輸出的是194,則第二個printf語句的輸出結(jié)果是【】。

main()

{inta[10]={1,2,3,4,5,6,7,8,9,0},*p;

p=a;

printf("%x\n",p);

printf("%\n",p+9);

}

25.以下程序的功能是:刪去一維數(shù)組中所有相同的數(shù),使相同的數(shù)只剩一個。數(shù)組中的數(shù)已按由小到大的順序排列,函數(shù)fun返回刪除后數(shù)組中數(shù)據(jù)的個數(shù)。

例如,若一維數(shù)組中的數(shù)據(jù)是:

2223445666677899101010

刪除后,數(shù)組中的內(nèi)容應(yīng)該是:2345678910。請?zhí)羁铡?/p>

#include<stdio.h>

#defineN80

intfun(inta[],intn)

{inti,j=1;

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

if(a[j-1]【】a[i])a[j++]=a[i];

【】;

}

main()

{inta[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10},i,n=19;

printf("Theoriginaldata:\n");

for(i=0;i<n;i++)printf("%3d",a[i]);

n=fun(a,n);

printf("\nThedataafterdeleted:\n");

for(i=0;i<n;i++)printf("%3d",a[i]);printf("\n\n");

}

26.有以下程序

main()

{intt=1,i=5;

for(;i>=0;i--)t*=i;

printf("%d\n",t);

}

執(zhí)行后輸出結(jié)果是______。

27.以下程序中,函數(shù)fun的功能是計算x2-2x+6,主函數(shù)中將調(diào)用fun函數(shù)計算:

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

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

請?zhí)羁铡?/p>

#include"math.h"

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

main()

{doublex,y1,y2;

printf("Enterx:");scanf("%lf",&x);

y1=fun(【】);

y2=fun(【】);

printf("y1=%lf,y2=%lf\n",y1,y2);

}

28.以下程序運行后的輸出結(jié)果是【】。

main()

{intm=011,n=11;

printf("%d%d\n",++m,n++);

}

29.以下程序的功能是:求出數(shù)組x中各相鄰兩個元素的和依次存放到a數(shù)組中,然后輸出。請?zhí)羁铡?/p>

main()

{intx[10],a[9],i;

for(i=0;i<10;i++)scanf("%d",&x[i]);

for([11];i<10;i++)

a[i-1]=x[i]+[12];

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

printf("");

}

30.下列循環(huán)的循環(huán)次數(shù)是______。

intk=2;

while(k=0)

printf["%d",k);

k--;

printf("\n");

31.有以下程序

intfa(intx){returnx*x;}

intfb(intx){returnx*x*x;}

intf(ing(*f1)(),int(*f2)(),intx)

{returnf2(x)-f1(x);}

main()

{inti;i=f(fa,fb,2),printf("%d\n",i);}

程序運行后,輸出結(jié)果是【】。

32.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲結(jié)構(gòu),帶鏈的棧屬于【】。

33.若a的值為1,則表達式!a‖++a的值是______。

34.常用的軟件結(jié)構(gòu)設(shè)計工具是結(jié)構(gòu)圖(SC),也稱程序結(jié)構(gòu)圖。其中,用矩形表示______,用帶空心圓的箭頭表示傳遞的是數(shù)據(jù)。

35.數(shù)據(jù)庫系統(tǒng)在其內(nèi)部分為三級模式,即概念模式、內(nèi)模式和外模式。其中,______是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式。

36.有以下程序:

voidswap1(intc[])

{intt;

t=c[0];c[0]=c[1];c[1]=t;

}

voidswap2(intc0,intc1)

{intt;

t=c0;c0=c1;c1=t;

}

main()

{inta[2]={3,5},b[2]={3,5};

swaplA);swap2(b[0],b[1]);

printf("%d,%d,%d,%d\n",a[0],a[1],b[0],b[1]);

}

其輸出結(jié)果是【】。

37.下列程序段的運行結(jié)果是______。

intx=0,y=0;

while(x<15)y++,x+=++y;

printf("%d,%d",y,x);

38.以下程序從終端讀入數(shù)據(jù)到數(shù)組中,統(tǒng)計其中正數(shù)的個數(shù),并計算它們之和,請?zhí)羁铡?/p>

#include<stdio,h>

main()

inti,a[20],sum,count;

sum=count=0;

for(i=0;i<20;i++)scanf("%d",【】);

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

{if(a[i]>0)

{count++;

sum+=【】;

}

prinff("sum=%d,count=%d\n",sum,count);

}

39.以下程序運行后的輸出結(jié)果是【】。

structNODE

{intk;

structNODE*link;

};

main()

{structNODEm[5],*p=m,*q=m+4;

inti=0;

while(p!=q){

p->k=++i;p++;

q->k=i++;q--;

}

q->k=i;

for(i=0;i<5;i++)printf("%d",m[i].k);

printf("\n");

}

40.按"先進后出"原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是【】。

三、1.選擇題(20題)41.下面程序的輸出結(jié)果是______。unsignedfun(unsignednum){unsignedk=1;do{k*=num%10;num/=10;}while(num);return(k);}main(){unsignedn=26;printf("%d\n",fun(n));}

A.0B.4C.12D.無限次循環(huán)

42.以下程序執(zhí)行后x的值是main(){intx,y=252,i=386,*m=&y,*z=&i;x=(z==y);printf("%d",x);}

A.252B.1C.0D.運行時出錯,x無定值

43.若有定義:inta[2][3];,以下選項中對a數(shù)組元素正確引用的是A.a[2][!1]B.a[2][3]C.a[0][3]D.a[1>2][!1]

44.下列程序執(zhí)行后輸出的結(jié)果是______。intd=l;fun(intp){intd=5;d+=p++;printf("%d,",d);}main(){inta=3;fun(a);d+=a++;printf("%d\n",d);}

A.8,12B.9,13C.8,4D.9,5

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

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);

46.有以下程序main(){inta,b,d=25;a=d/10%9;b=a&&(-1)printf("%d,%d\n",a,b);}程序運行后的輸出結(jié)果是______。

A.6,1B.2,1C.6,0D.2,0

47.下面不屬于軟件工程的3個要素的是______。

A.工具B.過程C.方法D.環(huán)境

48.若有以下調(diào)用語句,則不正確的fun函數(shù)的首部是______。main(){……inta[50],n;fun(n,&a[9]);……}

A.voidfun(intm,intx[])

B.voidfun(kits,kith[41])

C.voidfun(kitp,kit*s)

D.voidfun(intn,inta)

49.下面程序的輸出結(jié)果是()main(){inta[10]={l,2,3,4,6,7,8,9,10},*p=a;printf("%d\n",*(p+2));}

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

50.在軟件生存周期中,能準(zhǔn)確地確定軟件系統(tǒng)必須做什么和必須具備哪些功能的階段是()。

A.概要設(shè)計B.詳細設(shè)計C.可行性分析D.需求分析

51.結(jié)構(gòu)化程序設(shè)計的主要特點是______。

A.模塊化B.每個控制結(jié)構(gòu)具有封裝性C.每個控制結(jié)構(gòu)具有獨立性D.每個控制結(jié)構(gòu)只有一個入口和一個出口

52.以下函數(shù)值的類型是_______。fun(floatx){floaty;y=3*x-4;returny;}

A.intB.不確定C.voidD.float

53.有一函數(shù)以下程序段中不能根據(jù)x值正確計算出y值的是

A.if(x>0)y=1;elseif(x==0)y=0;elsey=-1;

B.y=0;if(x>0)y=1;elseif(x<0)y=-l;

C.y=0;if(x>=0);if(x>0)y=1;elsey=-1;

D.if(x>=0)if(x>0)y=1;elsey=0;elsey=-l;

54.C語言提供的合法關(guān)鍵字是______。

A.swicthB.chanC.CaseD.default

55.下列用于printf函數(shù)的控制字符常量中,代表“豎向跳格”的轉(zhuǎn)義字符常量是()。

A.\bB.\tC.\vD.\f

56.以下程序的運行結(jié)果是()。#include<stdio.h>main(){st,uctdate{intyear,month,day;}today;printf("%d\n",sizeof(structdate));}

A.6B.8C.10D.12

57.設(shè)有定義:int(*ptr)();則以下敘述中正確的是()

A.ptr是指向一維數(shù)組的指針變量

B.ptr是指向int型數(shù)據(jù)的指針變量

C.ptr是指向函數(shù)的指針,該函數(shù)返回一個int數(shù)據(jù)

D.prt是一個函數(shù)名,該函數(shù)的返回值是指向int型數(shù)據(jù)的指針

58.有如下程序main(){charch[2][5]={"6937","8254"},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>'\0';j+=2)s=10*s+p[i][j]-'0';printf("%d\n",s);}該程序的輸出結(jié)果是

A.69825B.63825C.6385D.693825

59.以下關(guān)于C語言的敘述中正確的是()。

A.預(yù)處理命令通常位于函數(shù)體外面,但也可以位于函數(shù)體中間

B.C語言中的變量定義須在其他語句之前

C.在C語言程序的書寫中,一個語句必須單占一行

D.一個C語言源程序可以由一個或多個源文件組成,每個源文件可由自己的main函數(shù)

60.假定以下程序經(jīng)編譯和連接后生成可執(zhí)行文件PROG.EXE,如果在此可執(zhí)行文件所在目錄的DOS提示符下鍵入:PROGABCDEFGHIJKL<回車>,則輸出結(jié)果為main(intargc,char*argv0[]){while(--argc>0)printf("%s",argv[argc]);printf("\n");}

A.ABCDEFGB.IJHLC.ABCDEFGHIJKLD.IJKLABCDEFGH

四、選擇題(20題)61.以下程序的功能是:給r輸入數(shù)據(jù)后計算半徑為r的圓面積s。程序在編譯時出錯。

main()

/*Beginning*/

{intr;floats;

scanf("%d",&r);

s=*PI*r*r;printf("s=%f\n",s);

}

若想糾正錯誤,應(yīng)該()。

A)更改注釋語句書寫位置B)存放圓半徑的變量r應(yīng)該定義為整型

C)輸出語句中不能加“s=”D)給計算面積的PI變量賦值

62.在軟件設(shè)計中不使用的工具是()。

A.系統(tǒng)結(jié)構(gòu)圖

B.程序流程圖

C.PAD圖

D.數(shù)據(jù)流圖(DFD圖)

63.在面向?qū)ο蠓椒ㄖ校粋€對象請求另一對象為其服務(wù)的方式是通過發(fā)送()。A.調(diào)用語句B.命令C.口令D.消息

64.若程序有宏定義:#defineNl00,則以下敘述中正確的是()。

A.宏定義中定義了標(biāo)識符N的值為整數(shù)100

B.在編譯程序?qū)源程序進行預(yù)處理時用l00替換標(biāo)識符N

C.對C源程序進行編譯時用100替換標(biāo)識符N

D.在運行時用100替換標(biāo)識符N

65.有以下函數(shù)定義:

voidfun(intn,doublex){……}

若以下選項中的變量都已正確定義并賦值,則對函數(shù)fun正確調(diào)用的語句是

A.fun(inty,doublem);B.k=fun(10,12.5);

C.fun(x,n);D.voidfun(n,x);

66.有以下程序

67.(12)下列敘述中正確的是______。

A.線性表是線性結(jié)構(gòu)

B.棧與隊列是非線性結(jié)構(gòu)

C.線性鏈表是非線性結(jié)構(gòu)

D.二叉樹是線性結(jié)構(gòu)

68.利用E-R模型進行數(shù)據(jù)庫的概念設(shè)計,可以分成3步:首先設(shè)計局部E-R模型,然后把各個局部E-R模型綜合成一個全局的模型,最后對全局E-R模型進行(),得到最終的E-R模型。

A.簡化B.結(jié)構(gòu)化C.最小化D.優(yōu)化

69.有以下程序:

main()

{char*p[]={"3697","2584"};

inti,j;longnum=0;

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

{j=0;

while(p[i][j]!=’\0’)

{if((p[i][j]-’0’)%2==0)num=10*num+p[i][j]-’0’;

j+=2;

}

}

printf("%d\n",num);

}

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

A.35B.37

C.39D.28

70.有以下程序:

#include<stdiO.h>

main()

{FILE*fp;

intk,n,i,a[6]={1,2,3,4,5,6};

fp=fopen("d2.dat","w");

for(i=0;i<6;i++)fprintf(fp,"%d\n",a[i]);

fclose(fp);

fp(i=0;i<3;i++)fscanf(fp,"%d%d",&k,&n);

fclose(fp);

printf("%d\n,%d\n,k,n);

}

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

A.1,2

B.3,4

C.5,6

D.123,456

71.設(shè)fp為指向某二進制文件的指針,且已讀到此文件末尾,則函數(shù)feof(fp),的返回值為()。

A.0B.\0C.非0值D.NULL

72.

73.有以下程序:

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

A.500B.401C.503D.1404

74.以下不能定義為用戶標(biāo)識符的是()

A.MainB._0C._intD.sizeof

75.(50)數(shù)據(jù)庫概念設(shè)計的過程中,視圖設(shè)計一般有三種設(shè)計次序,以下各項中不對的是()

A.自頂向下

B.由底向上

C.由內(nèi)向外

D.由整體到局部

76.有三個關(guān)系R、S和t如下:由關(guān)系R和s通過運算得到關(guān)系T,則所使用的運算為()。

A.笛卡兒積B.交C.并D.自然連接

77.某二叉樹共有7個結(jié)點,其中葉子結(jié)點只有l(wèi)個,則該二叉樹的深度為(假設(shè)根結(jié)點在第1層)()。

A.3B.4C.6D.7

78.在“文件包含,預(yù)處理語句的使用形式中,當(dāng)#include后面的文件名用(雙引號)括時,尋找被包含文件的方式是()。

A.直接按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索目錄

B.先在源程序所在的目錄搜索,如沒找到,再按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索

C.僅僅搜索源程序所在目錄

D.僅僅搜索當(dāng)前目錄

79.執(zhí)行下面的程序后,a的值為()。main{inta,b;for(a=1,b=1;a<=10;a++){if(b%3==l){b+=3;continue;}b-=5;}}A.7B.8C.9D.10

80.

五、程序改錯題(1題)81.下列給定程序中函數(shù)proc()的功能是:將長整型數(shù)中為偶數(shù)的數(shù)依次逆向取出,構(gòu)成一個新數(shù)放在t中。高位在低位,低位在高位。例如,當(dāng)s中的數(shù)為12345678時,則t中的數(shù)為8642。

請修改函數(shù)proc()中的錯誤,使它能得出正確的結(jié)果。

注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。

試題程序:

六、程序設(shè)計題(1題)82.假定輸入的字符串中只包含字母和*號。請編寫函數(shù)proc,它的功能是:將字符串中的前導(dǎo)*號全部刪除,中間和后面的*號不刪除。例如,若字符串中的內(nèi)容為****a*bc*def*g****,刪除后,字符串中的內(nèi)容則應(yīng)當(dāng)是a*bc*def*g****。注意:部分源程序給出如下。請勿改動main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號中填入所編寫的若干語句。試題程序:#include<stdio.h=:{>#include<conio.h>woidproc(char*str){}voidmaincharstr[81];printf("Enterastring:\n");gets(str);proc(str):printf("Thestringafterdeleted:\n");puts(str);}

參考答案

1.B當(dāng)邏輯運算符“&&”兩邊的值是非零時,邏輯表達式的值為真(即為1)。所以b=2&&(-1)=1,2%9=2,故a=2,故先算a/10=25/10=2。

2.C

3.C

試題2分析

結(jié)點的存儲順序和邏輯順序不一定一致,存儲空間也不一定連續(xù)。插入和刪除元素的時候,不需要移動表中的元素。

試題2答案

C

4.A

5.B“strcmp(S1,S2)”是字符串比較函數(shù),比較規(guī)則是兩個字符串自左向右逐個字符相比較(按照ASCII值大?。R驗椤癘K”<“ok”,所以“strcmp(S1,S2)”為負值。故本題答案為B選項。

6.A此題考查a--和--a之間的區(qū)別,當(dāng)while(a--)為真循環(huán)執(zhí)行,a--是執(zhí)行再減1,所以答案選擇A。

7.B

8.D解析:該函數(shù)用來使兩個字符串連接成為一個字符串。strcat(str1,str2)將str2中的字符連接到str1的字符后面,并在最后加一個“\\0”。連接后新的字符串存放在strl中。注意:用于字符串處理的函數(shù)。

9.C解析:這是一道考查fread函數(shù)的題。buf是一個指針,fread是讀入數(shù)據(jù)的存放地址;fwrite是輸出數(shù)據(jù)的地址(以上指的是起始地址)。

10.B

11.B

12.B

13.A解析:耦合性是模塊間互相連接的緊密程度的度量,取決于各個模塊之間接口的復(fù)雜度、調(diào)用方式以及哪些信息通過接口。

[知識拓展]模塊的獨立程序是評價設(shè)計好壞的一個重要標(biāo)準(zhǔn),衡量軟件的模塊獨立性有兩個定性的度量標(biāo)準(zhǔn)。其中內(nèi)聚性是指一個模塊內(nèi)部各個元素間彼此結(jié)合的緊密程度的度最,內(nèi)聚性是從功能角度來度量模塊內(nèi)的聯(lián)系;耦合性是模塊間互相連接的緊密程度的度量,耦合性從整體的角度來度量模塊間的聯(lián)系。

14.C

15.C解析:算法的特性中包括“有零個或多個輸入”及“有一個或多個輸出”這兩個特性。一個算法得到的結(jié)果就是算法的輸出,沒有輸出的算法是沒有意義的,所以一千算法必須至少有一個輸出。

16.B子函數(shù)fun(intx,inty),將變量m和i聲明為局部靜態(tài)變量,因此第l次調(diào)用主函數(shù)后,局部靜態(tài)變量m和i的值為5和3,第l次函數(shù)調(diào)用結(jié)束時,它們的值不釋放保持不變,所以第2次調(diào)用時,局部靜態(tài)變量m和i的初始值分別為5和3,即在執(zhí)行“i+=m+1”時,i的值為9,因此最終m的值為11。

17.B

18.C

19.D

20.B

21.操作系統(tǒng)操作系統(tǒng)解析:數(shù)據(jù)庫管理系統(tǒng)是幫助用戶創(chuàng)建和管理數(shù)據(jù)庫的應(yīng)用程序的集合。因此,數(shù)據(jù)庫管理系統(tǒng)需要操作系統(tǒng)的支持,為用戶提供服務(wù)。

22.n+1n+1解析:在任意一棵二叉樹中,度為0的結(jié)點(即葉子結(jié)點)總是比度為0的結(jié)點多一個。

23.k=5k=5解析:本題主要考查了函數(shù)的遞歸調(diào)用方法。g=0或\ue008g=1\ue009或g=2是遞歸的終止條件,然后用回代的方法從一個已知值推出下一個值,直到計算出最終結(jié)果。

24.1a61a6解析:對于指針變量的運算,就是對地址的運算。本題中由于指針指向的是整型變量,所以,使指針變量移動9個位置也就是移動18個字節(jié)。注意,本題是以十六進制輸出的。

25.!=returnj!=returnj解析:函數(shù)fun中,變量j用于控制刪除后剩下的數(shù)中的下標(biāo),i用于搜索原數(shù)組中的元素。j始終是新數(shù)組已有元素中最后一個元素的下一個元素的下標(biāo),所以訂語句中的條件是a[j-1]!=a[i],其中a[j-1]就是新數(shù)組中的最后一個元素,若條件成立則表示出現(xiàn)了不同的值,a[i]要添加到新數(shù)組中。該算法只能用于數(shù)組已排序的題目中。

26.00解析:本題中的for循環(huán)共執(zhí)行了6次,每執(zhí)行一次將相應(yīng)i的值相乘,最后當(dāng)i=-1時停止循環(huán).該for循環(huán)執(zhí)行完后t的值為5*4*3*2*1*0=0,故最后輸出I的值為0。

27.x+8sin(x)x+8,sin(x)解析:考查考生對函數(shù)調(diào)用相關(guān)知識的了解。用x+8代替函數(shù)fun(doublex)中形式參數(shù)x;用sin(x)代替函數(shù)fun(doublex)中形式參數(shù)x。

28.10111011解析:前綴自增運算時,表達式的值和變量自增之后的值相同;后綴自增運算時,表達式的值為變量自增之前的值。所以,本題程序輸出的兩個結(jié)果分別是m+1和n的值。而m在初始化時使用的是八進制常量011,轉(zhuǎn)換為十進制為9。故輸出結(jié)果是1011。

29.i=1x[i-1]i=1\r\nx[i-1]解析:對于10個數(shù),相鄰的兩個數(shù)相加取和,總共要進行9次加法運算,所以空11處應(yīng)填入i=1。相鄰的兩個數(shù)相加取和,放在數(shù)組a中,x[0]與x[1]的和存放在a[0]中,所以空12處應(yīng)填入x[i-1]。

30.00解析:解答本題需要注意表達式“k=0”,它是賦值表達式而不是關(guān)系表達式,不論k為何值,表達式k=0總會使k為0,所以不能進入循環(huán)。

31.44解析:在主函數(shù)中調(diào)用函數(shù)f,函數(shù)f有三個參數(shù),形參f1與f2分別是兩個指向函數(shù)的指針。在f中執(zhí)行f2(x)-f1(x),實際上是執(zhí)行了fb()2)-fa(2),故執(zhí)行i=(fa,fb,2)卮i的值為23-22=4。

32.存儲結(jié)構(gòu)存儲結(jié)構(gòu)解析:帶鏈的棧屬于棧的鏈?zhǔn)酱鎯Y(jié)構(gòu)。

33.11解析:邏輯運算中,非1即0,非0即1,!a=0,++a為邏輯1,所以0和1相或結(jié)果為1。

34.模塊模塊解析:矩形表示的是模塊,箭頭表示的是模塊間的調(diào)用關(guān)系。用帶實心圓的箭頭表示傳遞的是控制信息,用帶空心圓的箭頭表示傳遞的是數(shù)據(jù)。

35.外模式外模式解析:外模式由概念模式推導(dǎo)而出,給出了每個用戶的局部數(shù)據(jù)描述,即數(shù)據(jù)視圖。

36.53355335解析:函數(shù)swap1的形參是數(shù)組,故形參的改變能夠影響實參,所以執(zhí)行完swap1(a)后,a[0]=5、a[1]=3;函數(shù)swap2的形參是簡單變量,故形參的改變不能夠影響實參,所以執(zhí)行完swap2(b)后,b[0]=3、b[1]=5;正確答案為5335。

37.8208,20解析:本題考查while循環(huán)和++運算符的運用。x=0符合條件x<15,則執(zhí)行y++,x+=++y后,y=1,x=0+2=2后y=2,符合條件繼續(xù)循環(huán),y=3,x=x+4=6后y=4,再循環(huán)y=5,x=x+6=6+6=12后,y=6,繼續(xù)循環(huán)y=7,x=x+8=12+8-20,此時y=8。

38.&a[i]a[i]&a[i]\r\na[i]解析:scanf的格式為:scanf(格式控制,地址表列),因此,第一處應(yīng)該填寫地址,由于是循環(huán)輸入,所以填&a[i]。依據(jù)題意第二處應(yīng)該填寫a[i],以實現(xiàn)sum=sum+a[i]的求和。

39.1343113431解析:初始化時,指針p指向m[0]的地址,指針q指向m[4]的地址,p!=q滿足循環(huán)條件,執(zhí)行循環(huán)語句,得到m[0].k=1,m[4].k=1,此時i=2,指針p指向m[1]的地址,指針q指向m[3]的地址,p!=q滿足循環(huán)條件,執(zhí)行循環(huán)語句,得到m[1].k=3,k=3,此時i=4,指針q指向m[2]的地址,p==q不滿足循環(huán)條件,則退出循環(huán),m[2].k=4。所以最后輸出為13431。

40.棧棧解析:考查考生對棧和隊列概念的掌握。按'先進后出'原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是棧;按'先進先出'原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是隊列。

41.C解析:本題定義了一個fun函數(shù),用于num求和,具體執(zhí)行過程如下:

num=26:k=k*(num%10)=1*(26%10),所以k=6,num=num/10=2;

num=2:k=k*(num%10)=6*(2%10),所以k=12,num=num/10=0);

num=O:while條件不成立,所以返回k的值12。

42.C解析:指針變量m和z分別指向整型變量y和i,所以這兩個指針變量中存儲的地址是不同的。變量x接受的是一個關(guān)系運算的結(jié)果,因為兩個地址是不同的,所以“z=y”的判斷結(jié)果為0。注意:C語言中,邏輯值的表示方法。

43.D解析:a是一個2行3列的二維數(shù)組,行下標(biāo)和列下標(biāo)都是從0開始的,數(shù)組中的元素為a[0][0]、a[0][1]、a[0][2]、a[1][0]、a[1][1]、a[1][2],行下標(biāo)最大值為1,列下標(biāo)最大值為2,因此選項A、B、C都是錯誤的引用。計算選項D中數(shù)組元素的下標(biāo)后得a[0][0],為正確的引用。

44.C解析:本題執(zhí)行過程如下:首先調(diào)用fun函數(shù),使得實參a的值3傳遞紿形參p,得到局部變量d=8,打印出局部變量d的值8返回主函數(shù)執(zhí)行“d+=a++””,此處的d為全局變量,所以d=1+3=4(由于本題是值傳遞,所以在函數(shù)fun中對p值的改變并不能引起a的改變),故本題的輸出是8,4。

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

46.B解析:本題主要考查的是C語言中的整除、求余以及邏輯值的概念。在C語言中,/號的兩邊如果都是整數(shù)的話,返回的結(jié)果也是整數(shù),如果除不凈則舍去小數(shù)部分。%是求余運算,它的運算對象只能是整型,運算結(jié)果是兩數(shù)相除后所得的余數(shù),當(dāng)運算量為負數(shù)時,結(jié)果的符號與被除數(shù)相同。因此,執(zhí)行語句a=d/10%9;后,a=25/10%9=2%9=2。C語言中沒有專門的邏輯值,而是用整型值來代替。當(dāng)整型值作邏輯值使用時,非零即表示“真”,零表示“假”,而邏輯值當(dāng)整型值使用時,“真”等于1,“假”等于0。因此,執(zhí)行語句b=a&&(-1);后b=2&&(-1)=“真”&&“真”=“真”=1。所以,4個選項中選項B符合題意。

47.D解析:軟件工程包括3個要素,即方法、工具和過程。方法是完成軟件工程項目的技術(shù)手段;工具支持軟件的開發(fā)、管理、文檔生成;過程支持軟件開發(fā)的各個環(huán)節(jié)的控制和管理。

48.D

49.A

50.D解析:在需求分析階段中,根據(jù)可行性研究階段所提交的文檔,特別是從數(shù)據(jù)流圖出發(fā),對目標(biāo)系統(tǒng)提出清晰、準(zhǔn)確和具體的要求,即要明確系統(tǒng)必須做什么的問題。本題的正確答案為D。

51.D解析:按照結(jié)構(gòu)化設(shè)計方法設(shè)計的程序具有以下特點:(1)程序易于理解、使用和維護,程序員采用結(jié)構(gòu)化編程方法,便于控制、降低程序的復(fù)雜性,因此容易編寫程序,便于驗證程序的正確性。結(jié)構(gòu)化程序清晰易讀,可理解性好,程序員能夠進行逐步求精、程序證明和測試,以確保程序的正確性。程序容易閱讀并被人理解,便于用戶使用和維護。(2)提高了編程工作的效率,降低了軟件開發(fā)成本。由于結(jié)構(gòu)化編程方法能夠把錯誤控制到最低限度,因此能夠減少調(diào)試和查錯時間。結(jié)構(gòu)化是由一些為數(shù)不多的基本結(jié)構(gòu)模塊組成,這些模塊甚至可以由機器自動生成,從而極大地減輕了編程工作量。(3)結(jié)構(gòu)化程序設(shè)計選用的每個控制結(jié)構(gòu)只允許有一個入口和一個出口。

52.A解析:函數(shù)定義時如果數(shù)據(jù)類型默認,則默認為int。函數(shù)中如果有“retum(表達式):”語句,表達式的類型可能與函數(shù)的類型不一致,但它并不能改變函數(shù)的類型,實際情況是把表達式轉(zhuǎn)換為函數(shù)值的類型作為返回值,因此本題的函數(shù)值類型是int。

53.C解析:本題考查的知識點是if語句的嵌套使用.首先檢查訂與else的配對,然后再分析各分支實現(xiàn)的功能.選項A描述的意思是:在x>=O情況下,則y為1,否則;在x=O時,y為0,剩下的x<0時,y為-1,滿足本題中函數(shù)的要求;選項B描述的意思時:初始化y的值為0,在x>0時,給y重新賦值為1,否則,在x<0時,給y重新賦值為-1,滿足本題中函數(shù)的要求;選項C描述的意思是:在x>0情況下,如果x>0,則y為1,否則即“c==0”時,y為-1:剩下的x<0時,y為0.可見答案C實現(xiàn)的結(jié)果不是給定的表達式。選項D中描述的意思是:在x>=0的情況下,如果x>=0,就給y賦值為1,否則就給y賦值為0,在不是x>=0的其他情況下,就給y賦值為-1,滿足本題中函數(shù)的要求.所以4個選項中C為所選。

54.D

55.C本題考查C語言轉(zhuǎn)義字符的含義。我們歸類了常用的轉(zhuǎn)義字符及其含義,如下,根據(jù)這些不難選出正確答案

轉(zhuǎn)義字符的意義:\n回車換行、\t橫向跳到下一制表位置、\v豎向跳格、\b退格、\r回車、\f走紙換頁、\\反斜線符、“\”\′單引號符、\\ddd1~3位八進制數(shù)所代表的字符、\xhh1~2位十六進制數(shù)所代表的字符。

56.A解析:結(jié)構(gòu)體變量的長度是其內(nèi)部成員總長度之和,在本題中,structdate中包含year,month,day三個整型變量。通常一個整型變量占2個字節(jié),因此,用sizeof求得該結(jié)構(gòu)體變量的長度為6個字節(jié)。

57.C

58.C解析:該題稍微難一點。主要要搞清楚以下幾點:①定義了一個指針數(shù)組char.p[2]后,程序中第一個循環(huán)for(i=0;i<2;i++)p[i]=ch[i];的作用,是使指針數(shù)組的p[0]元素(它本身是一個指針)指向了二維數(shù)組ch的第一行字符串,并使指針數(shù)組的p11)元素指向了二維數(shù)組ch的第二行字符串,這樣,就使指針數(shù)組p和二維數(shù)組ch建立起了一種對應(yīng)關(guān)系,以后對二維數(shù)組ch的某個元素的引用就有兩種等價的形式:ch[i][j]或p[i][j]。②對二維數(shù)組ch的初始化,使其第一行ch[0]中存入了字符串'6937',第二行ch[1]中的內(nèi)容為字符串'8254'。③程序中第二個循環(huán)中的循環(huán)體s=e*10+p[i][j]-‘0’;的功能是這樣的,每執(zhí)行一次,將s中的值乘以10(也即,將s中的數(shù)值整體向左移動一位,并在空出來的個位上添一個0),再將當(dāng)前p[i][j]中的字符量轉(zhuǎn)換為相應(yīng)的數(shù)字,然后把這個數(shù)字加到s的個位上。④注意到內(nèi)層循環(huán)的循環(huán)條件p[i][j]>,0,是指p[i][j]中的字符只要不是字符串結(jié)束標(biāo)志,\\0,就繼續(xù)循環(huán),語句j+=2;是使下標(biāo)j每次增加2,也即一個隔一個地從p[i]所指向的字符串中取出字符。經(jīng)過上述解析后,不難看出,該程序首先從p[0]所指向的字符串'6937'中一個隔一個地取出字符,分別是‘6’和‘3’,然后從p[1]所指向的字符串'8254'中一個隔一個地取出字符,分別是‘8’和‘5’,同時經(jīng)過轉(zhuǎn)換和相加運算后,結(jié)果s中的值應(yīng)該是6385,所以,正確答案是C)。

59.A解析:源程序中可以有預(yù)處理命令(include命令僅為其中的一種)。C語言中的變量可以在使用之前的任何位置進行定義。C語言程序的書寫中,多個語句可以位于一行,但為了增強可讀性,一般每行只有一條語句。一個C語言源程序可以由一個或多個源文件組成,但僅可以有一個main函數(shù)。

60.D解析:本題中,argc表示參數(shù)的個數(shù),應(yīng)為3,argv是一個指向字符串的指針數(shù)組,指針數(shù)組argv中的元素argv[0]指向字符串'PROG',元素argv[1]指向字符串“ABCDEFGH”,argv[2]指向字符串“IJKL”。在while循環(huán)條件中,先進行自減運算,再執(zhí)行相應(yīng)的printf語句。

61.DPI沒有定義,definePI3.1415

62.D【答案】:D

【知識點】:軟件設(shè)計中使用的工具

【解析】:數(shù)據(jù)流圖是結(jié)構(gòu)化分析方法中使用的工具,它以圖形的方式描繪數(shù)據(jù)在系統(tǒng)中流動和處理的過程,由于它只反映系統(tǒng)必須完成的邏輯功能,所以它是一種功能模型,是在可行性研究階段用到的。PAD圖是問題分析圖(ProblemAnalysisDiagram)的英文縮寫,是在詳細設(shè)計階段用到的。系統(tǒng)結(jié)構(gòu)圖是對軟件系統(tǒng)結(jié)構(gòu)的總體設(shè)計的圖形顯示,是在概要設(shè)計階段用到的。程序流程圖是對程序流程的圖形表示,故選D。

63.D解析:面向?qū)ο蟮氖澜缡峭ㄟ^對象與對象間彼此的相互合作來推動的,對象間的這種相互合作需要一個機制協(xié)助進行,這樣的機制稱為消息。消息是一個實例與另一個實例之間傳遞的信息,它請求對象執(zhí)行某一處理或回答某一要求的信息,它

溫馨提示

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

評論

0/150

提交評論