2021年甘肅省平?jīng)鍪腥珖嬎銠C(jī)等級考試C語言程序設(shè)計預(yù)測試題(含答案)_第1頁
2021年甘肅省平?jīng)鍪腥珖嬎銠C(jī)等級考試C語言程序設(shè)計預(yù)測試題(含答案)_第2頁
2021年甘肅省平?jīng)鍪腥珖嬎銠C(jī)等級考試C語言程序設(shè)計預(yù)測試題(含答案)_第3頁
2021年甘肅省平?jīng)鍪腥珖嬎銠C(jī)等級考試C語言程序設(shè)計預(yù)測試題(含答案)_第4頁
2021年甘肅省平?jīng)鍪腥珖嬎銠C(jī)等級考試C語言程序設(shè)計預(yù)測試題(含答案)_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021年甘肅省平?jīng)鍪腥珖嬎銠C(jī)等級考試C語言程序設(shè)計預(yù)測試題(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.有說明語句“inta,b;”,如果輸入111222333,使得a的值為111,b的值為333,則以下正確的語句是()。A.scanf("%3d%*3d%3d",&a,&b);

B.scanf("%*3d%3d%3d",&a,&b);

C.scanf("%3d%3d%*3d",&a,&b);

D.scanf("%3d%*2d%3d",&a,&b);

2.十進(jìn)制數(shù)124轉(zhuǎn)換成二進(jìn)制數(shù)是()

A.111l010B.1111100C.1011111D.1111011

3.若要求定義具有10個int型元素的一維數(shù)組a,則以下定義語句中錯誤的是()。

A.#definen5inta[2*n];

B.intn=10,a[n];

C.inta[5+5];

D.#defineN10inta[N];

4.定義int*swap()指的是______。

A.—個返回整型值的函數(shù)swap()

B.一個返回指向整型值指針的函swap()

C.一個指向函數(shù)swap()的指針,函數(shù)返回一個整型值

D.以上說法均錯

5.若有定義:floatx=1.5;inta=1,b=3,c=2;則正確的switch語句是()。A.switch(x)

B.switch((int)x);{case1.0:printf("*\n");{case1:printf("*\n");case2.0:printf("**\n");}case2:printf("**\n");}

C.switch(a+B)

D.switch(a+B){case1;printf("*\n");{case1:printf("*\n");case2+1:printf("**\n");}casec:printf("**\n");)

6.有以下程序

#include<stdio.h>

main()

{intx=1,y=2,z=3;

if(x>y)

if(y<z)printf("%d",++z);

elseprintf("%d",++y);

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

}

程序的運行結(jié)果是

A.A.331

B.41

C.2

D.1

7.在三級模式之間引入兩層映像,其主要功能之一是()。

A.使數(shù)據(jù)與程序具有較高的獨立性B.使系統(tǒng)具有較高的通道能力C.保持?jǐn)?shù)據(jù)與程序的一致性D.提高存儲空間的利用率

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

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

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

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

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

9.下列程序的輸出結(jié)果是______。#include<stdio.h>main(){doubled=3.2;intx,y;x=1.2;y=(x+3.8)/5.0;printf("%d\n",d*y);}

A.3B.3.2C.0D.3.07

10.設(shè)有定義:“inta=1,b=2,C=3;”,以下語句中執(zhí)行效果與其他三個不同的是()。

A.if(a>b)c=a,a=b,b=C;

B.if(a>b){c=a,a=b,b=C;}

C.if(a>b)c=a;a=b;b=C;

D.if(a>b){c=a;a=b.b=C;)

11.有以下程序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]);prrintf("\n");}}若要按以下形式輸出數(shù)組右上半三角1234678111216則在程序下劃線處應(yīng)填入的是

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

12.在軟件開發(fā)過程中,軟件結(jié)構(gòu)設(shè)計是描述______。

A.數(shù)據(jù)存儲結(jié)構(gòu)B.軟件體系結(jié)構(gòu)C.軟件結(jié)構(gòu)測試D.軟件控制過程

13.以下程序的輸出結(jié)果是______。charcchar(charch){if(ch>='A'&&ch<='z')ch=ch-'A'+'a';returnch;}main(){chars[]="ABC+abc=defDEF",*p=s;while(*p){*p=cchar(*p);p++;}printf("%s\n",s);}

A.abe+ABC=DEFdef

B.abc+abe=defdef

C.abcaABCDEFdef

D.abcabcdefdef

14.在單鏈表指針為p的結(jié)點之后插入指針為s的結(jié)點,正確的操作是()。A.p->next=s;s->next=p->next;

B.s->next=p->next;p->next=s;

C.p->next=s;p->next=s->next;

D.p->next=s->next;p->next=s;

15.若有定義語句:inta[3][6];,按在內(nèi)存中的存放順序,a數(shù)組的第10個元素是A.a[0][4]B.a[1][3]C.a[0][3]D.a[1][4]

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

A.形參可以是常量、變量或表達(dá)式

B.實參可以是常量、變量或表達(dá)式

C.實參的類型應(yīng)與形參的類型賦值兼容

D.實參的個數(shù)應(yīng)與形參的個數(shù)一致

17.以下不構(gòu)成無限循環(huán)的語句或語句組的是()。

A.n=0;do{++n;}while(n<=0);

B.n=0;while(1){n++;}

C.n=10;while(n);{n--;}

D.for(n=0,i=1;i++)n+=i;

18.

19.若有定義“intb[8],*p=b;”,則p+6表示()。

A.數(shù)組元素b[6]的值B.數(shù)組元素b[6]的地址C.數(shù)組元素b[7]的地址D.數(shù)組元素b[0]的值加上6

20.下列算法中,()算法用來求圖中某頂點到其他頂點所有頂點之間的最短路徑。

A.DijkstraB.FloyedC.PrimD.Kruskal

二、2.填空題(20題)21.以下程序從終端讀入數(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);

}

22.下面程序的運行結(jié)果是:【】。

#defineN10

#defines(x)x*x

#definef(x)(x*x)

main()

{inti1,i2;

i1=1000/s(N);i2=1000/f(N);

printf(“%d%d\n”,i1,i2);

}

23.在數(shù)據(jù)庫理論中,數(shù)據(jù)物理結(jié)構(gòu)的改變,如存儲設(shè)備的更換、物理存儲的更換、存取方式等都不影響數(shù)據(jù)庫的邏輯結(jié)構(gòu),從而不引起應(yīng)用程序的變化,稱為【】。

24.為了便于對照檢查,測試用例應(yīng)由輸入數(shù)據(jù)和預(yù)期的【】兩部分組成。

25.以下程序的輸出結(jié)果是【】。

voidreverse(inta[],intn)

{inti,t;

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

{t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}

}

main()

{intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;

reverse(b,8);

for(i=6;i<10;i++)s+=b[i];

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

}

26.關(guān)系操作的特點是______操作。

27.下列軟件系統(tǒng)結(jié)構(gòu)圖的寬度為[]。

28.性結(jié)構(gòu)中,隊列的操作順序是先進(jìn)先出,而棧的操作順序是______。

29.有以下程序

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é)果是【】。

30.在結(jié)構(gòu)化分析使用的數(shù)據(jù)流圖中,使()解釋其中的圖形元素。

31.防止軟盤感染病毒的最有效的方法是【】。

32.當(dāng)線性表采用順序存儲結(jié)構(gòu)實現(xiàn)存儲時,其主要特點是______。

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

13141516

9101112

5678

1234

請?zhí)羁铡?/p>

#include<stdio.h>

main()

{inti,j,x;

for(j=4;j【】;j--)

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

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

printf("%4d",x);

}

printf("\n");

}

34.下列程序的功能是:求出ss所指字符串中指定字符的個數(shù),并返回此值。

例如,若輸入字符串123412132,指定字符1,則輸出3。請?zhí)羁铡?/p>

#include<stdio.h)

#deftneM81

intfun(char*ss,charc)

{inti=0;

for(;【】;ss++)

if(*ss==c)i++;

returni;

}

main()

{chara[M],ch;

printf("\nPleaseenterastring:");gets(a);

printf("\nPleaseenterachar:");ch=getchar();

printf("\nThenumberofthecharis:%d\n",fun(a,ch));

}

35.結(jié)構(gòu)化分析方法是面向______進(jìn)行分析的方法。

36.下列程序的輸出結(jié)果是【】。

main()

{

inta[]={2,4,6},*ptr=&a[0],x=8,y,z;

for(y=0;y<3;y++)

z=(*(ptr+y)<x)?*(ptr+y):x;

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

}

37.若有如下定義,doublea[100];,則a數(shù)組元素的下標(biāo)上限是【】。

38.軟什是程序、數(shù)據(jù)和______的集合。

39.在鏈表的運算過程中,能夠使空表與非空表的運算統(tǒng)一的結(jié)構(gòu)是______。

40.對于一棵具有n個結(jié)點的樹,則該樹中所有結(jié)點的度之和為【】。

三、1.選擇題(20題)41.下列不屬于軟件調(diào)試技術(shù)的是______。A.強(qiáng)行排錯法B.集成測試法C.回溯法D.原因排除法

42.有以下程序:#include<stdio.h>#include<string.h>voidfun(chars[][10],intn){chart;inti,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)/*比較字符串的首字符大小,并交換字符串的首字符*/if(s[i][0]>s[j][0]){t=s[i][0];s[i][0]=s[j][0];sEj][0]=t;}}main(){chars[5][10]={"bcc","bbcc","xy","aaaacc","aabcc");fun(ss,5);printf("%s,%s\n",ss[0],ss[4]);}程序的運行結(jié)果是()。

A.xy,aaaaccB.aaaacc,xyC.xcc,aabccD.acc,xabcc

43.有以下程序:voidsum(inta[]){a[0]=a[-1]+a[1];}main(){inta[10]={1,2,3,4,5,6,7,8,9,10};sum(&a[2]);printf("%d\n",a[2]);}程序運行后的輸出結(jié)果是()。

A.6B.7C.5D.8

44.若有以下程序:main(){intk=2,i=2,m;m=(k+=i*=k);printf("%d,%d\n",m,i);}執(zhí)行后的輸出結(jié)果是

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

45.有如下程序main(){intx=3;do{printf("%d",x--);}while(!x);}該程序的執(zhí)行結(jié)果是______。

A.321B.3C.不輸出任何內(nèi)容D.陷入死循環(huán)

46.下列程序的輸出結(jié)果是______。#include<stdio.h>main(){inta,b;for(a=1,b=1;a<=100;a++){if(b>=20)break;if(b%3==1){b+=3;continue;}b-=5;}printf("%d\n",a);}

A.7B.8C.9D.10

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

B.算法程序所處理的數(shù)據(jù)量是有限的

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

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

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

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

49.以下程序中函數(shù)f的功能是:當(dāng)flag為1時,進(jìn)行由小到大排序;當(dāng)flag為0時,進(jìn)行由大到小排序。voidf(intb[],intn,intflag){inti,j,t;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(flag?b[!]>[j]:b[i]<b[j]){t=b[i];b[i]=b[j];b[j]=t;}}main(){inta[10]={5,4,3,2,1,6,7,8,9,10},i;f(&a[2],5,0);f(a,5,1),for(i=0;i<10;i++)printf("%d,",a[i]);}程序運行后輸出結(jié)果是()。

A.1,2,3,4,5,6,7,8,9,10,

B.3,4,5,6,7,2,1,8,9,10,

C.5,4,3,2,1,6,7,8,9,10,

D.10,9,8,7,6,5,4,3,2,1,

50.以下程序的輸出結(jié)果是

intf()

{staticinti=0;

ints=1;

s+=i;i++;

returns;}

main()

{inti,a=0;

for(i=0;i<5;i++)a+=f();

printf("%d\n",a);}

A.20B.24C.25D.15

51.下列程序的執(zhí)行結(jié)果是______。#include<stdio.h>unionun{inti;charc[2};};voidmain(){unionunx;x.c[0]=10;x.c[1]=1;printf("\n%d",x.i);}

A.266B.11C.265D.138

52.下列程序是用來判斷數(shù)組中特定元素的位置所在的。

#include<conio.h>

#include<stdio.h>

intfun(int*s,intt,int*k)

{inti;

*k=0;

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

if(s[*k]<s[i])*k=i;

returns[*k];}

main()

{inta[10]={876,675,896,101,301,401,980,431,451,777},k;

fun(a,10,&k);

printf("%d,%d\n",k,a[k]);}

如果輸入如下整數(shù):876675896101301401980431451777

則輸出結(jié)果為

A.7,431B.6C.980D.6,980

53.以下能正確定義一維數(shù)組的選項是

A.inta[5]={0,1,2,3,4,5}

B.chara[]={'0','1','2','3','4','5','\0'};

C.chara={'A','B','C'};

D.inta[5]="0123";

54.以下程序的輸出結(jié)果是()。main(){inta=5,b=4,c=6,d;printf("%d\n",d=a>b?(a>c?a:C):(B));}

A.5B.4C.6D.不確定

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

A.ACFXDBEYZB.ABEFXYZCDC.ABCDEFXYZD.ABDYECFXZ

56.下面程序輸出的結(jié)果是

main()

{inti;

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

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

printf("%d",a[2-i][i]);}

A.159B.753C.357D.591

57.有以下程序段#include<stdio.h>main(){chars[4][10];inti;scanf("%s%s",s[0],s[1]);gets(s[2])gets(s[3]);for(i=0;i<4;i++)puts(s[i]);}輸入數(shù)據(jù)如下,aaaabbbb<CR>(此處<CR>代表回車符)ccccdddd<CR>輸出結(jié)果是()

A.aaaabbbbccccdddd

B.aaaabbbbccccdddd

C.aaaabbbbccccddddeeee

D.aaaabbbbccccdddd

58.運行下面程序時,從鍵盤輸入字母H,則輸出結(jié)果是

#include<stdio.h>

main()

{charch;

ch=getchar();

switch(ch)

{case′H′:printf("Hello!\n");

case′G′:printf("Goodmorning!\n");

default:printf("Bye_Bye!\n");

}

}

A.Hello!

B.Hello!GoodMoring!

C.Hello!Goodmorning!Bye_Bye!

D.Hello!Bye_Bye!

59.若有條件表達(dá)式(exp)?a++:b--,則以下表達(dá)式中能完全等價于表達(dá)式(exp)的是

A.(exp==0)B.(exp!=0)C.(exp==1)D.(exp!=1)

60.有如下說明inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;則數(shù)值為9的表達(dá)式是()

A.*p+9B.*(p+8)C.*p+=9D.p+8

四、選擇題(20題)61.若變量c為char類型,能正確判斷出c為小寫字母的表達(dá)式是_______。A.′a′<=c<=′z′

B.(c>=′a′)||(c<=′z′)

C.(′a′=C)

D.(c>=′a′)&&(c<=′z′)

62.

63.有以下程序:

執(zhí)行時輸入:aBeDefG##<;回車>;,則輸出結(jié)果是()。

A.AbCdEFgB.ABCDEFGC.BCDEFGHD.bedefgh

64.有以下程序:

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

A.*7

B.*3*5

C.*5

D.*2*6

65.下列程序的輸出的結(jié)果是()。main{doubled=3.2;intx,Y;x=1.2;v=(x+3.8)/5.0;printf("%d\n",d*y);}A.3B.3.2C.0D.3.07

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

A.概要設(shè)計

B.詳細(xì)設(shè)計

C.可行性分析

D.需求分析

67.

68.數(shù)據(jù)庫系統(tǒng)的核心是()。

A.數(shù)據(jù)模型B.數(shù)據(jù)庫管理系統(tǒng)C.數(shù)據(jù)庫D.數(shù)據(jù)庫管理員

69.

70.

71.閱讀下列程序段,程序的輸出結(jié)果為()。

A.3B.5C.6D.8

72.常采用的兩種存儲結(jié)構(gòu)是()。

A.順序存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu)B.散列方法和索引方式C.鏈表存儲結(jié)構(gòu)和數(shù)組D.線性存儲結(jié)構(gòu)和非線性存儲結(jié)構(gòu)

73.軟件生命周期可分為定義階段、開發(fā)階段和維護(hù)階段。詳細(xì)設(shè)計屬于()。

A.定義階段B.開發(fā)階段C.維護(hù)階段D.上述三個階段

74.第

1

若有運算符<<,sizeof,^,&=,則它們按優(yōu)先級由高至低的正確排列次序是

A.sizeof,&=,<<,^

B.sizeof,<<,^,&=

C.^,<<,sizeof,&=

D.<<,^,&=,sizeof

75.

76.

77.

78.設(shè)j為Int型變量,則下面for循環(huán)語句的執(zhí)行結(jié)果是()。

for(j=10;j>3;j--)

{if(j%3)j--;

--j;--j;

printf("%d",j);

}

A.63B.74C.62D.73

79.有下列程序:intfun(intx[],intn){staticintsum=0,i;for(i=0;i<n;i++)sum+=x[i]:returnsum;}main(){inta[3]={1,2,3,4,5),b[3]={6,7,8,9),s=0;s=fun(a,5)+fun(b,4);printf(“%d\n”,s);}程序執(zhí)行后的輸出結(jié)果是()。A.45B.50C.60D.55

80.在深度為5的滿二叉樹葉中,葉子結(jié)點的個數(shù)為()。

A.32B.31C.16D.15

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:根據(jù)整型形參n,計算如下公式的值。

例如,若n=12,則應(yīng)輸出0.618026。

請修改程序中的錯誤,使它能得出正確的結(jié)果。

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

試題程序:

六、程序設(shè)計題(1題)82.規(guī)定輸入的字符串中只包含字母和奉號。編寫函數(shù)fun,其功能是:刪除字符串中所有的。號。編寫函數(shù)時,不得使用c語言提供的字符串函數(shù)。例如,字符串中的內(nèi)容為,刪除后,字符串中的內(nèi)容應(yīng)當(dāng)是“ABCDEFG”。注意:部分源程序給出如下。請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)缸的花括號中填入你編寫的若干語句。試題程序:

參考答案

1.A根據(jù)題意,要使a的值為111,b的值為333,必須在讀入時指定a的讀入寬度為3,b的讀入寬度為3,且a和b的控制字符之間必須額外增加%*控制符,用于跳過中間的3位輸入數(shù)字,選項A正確。本題答案為A選項。

2.B

3.B一維數(shù)組定義的一般形式為:類型說明符數(shù)組名[常量表達(dá)式]。注意定義數(shù)組時,元素個數(shù)不能是變量。故本題答案為B選項。

4.B解析:—個函數(shù)可以帶回—個整型值、字符值、實型值等,但也可以帶回指針型數(shù)據(jù),即地址。本題的定義中,包括括號和*號,由于()優(yōu)先級高于*。故它是—個返回整型指針的函數(shù)。

5.C

6.D本題考查if-else語句的使用。if-else語句可以在條件為“真”或為“假”時執(zhí)行指定的動作,由if引導(dǎo)條件為“真”時執(zhí)行的操作;由else引導(dǎo)條件為“假”時執(zhí)行的操作。else語句要與上面最近的if語句進(jìn)行匹配,如果要嵌套調(diào)用if-else語句,需要將嵌套部分用{}括起來,避免程序報錯。題目中給出了一個if語句和一個if-else語句,if-else語句為第一個if語句的子語句。首先執(zhí)行外層if語句,執(zhí)行條件為x>y,由于x=1,y=2,故該條件為假,不執(zhí)行if的子語句,直接執(zhí)行語句printf("%d\\n",x++);,該語句先輸出x的值,然后進(jìn)行x++操作。x的初始值為1,輸出結(jié)果為1。

7.AA.【解析】數(shù)據(jù)庫管理系統(tǒng)在數(shù)據(jù)庫的三級模式之間提供了兩層映像,保證了數(shù)據(jù)庫中數(shù)據(jù)的較高的邏輯獨立性和物理獨立性。使系統(tǒng)具有較高的通道能力和提高存儲空間的利用率是操作系統(tǒng)的職能,而不是數(shù)據(jù)庫管理系統(tǒng)的職能。在數(shù)據(jù)庫系統(tǒng)中沒有“數(shù)據(jù)和程序一致性”這一概念。

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

9.C

10.C本題判斷結(jié)果。選項A中,如果(a>b),則執(zhí)行“c=a,a=b,b=c”這個語句(注意分號的位置,如果條件成立,將會執(zhí)行第一個分號前的語句),顯然if不成立,則a,b,C原樣輸出。選項B和選項D是同理,而選項C因為條件不成立,則不執(zhí)行第一條語句“c=a”,接著執(zhí)行“a=b”,將b的值賦給a,a的值為2;“b=C”,b的值為3,C的值原樣輸出,結(jié)果為2,3,3。

11.B解析:本題考查循環(huán)嵌套,外層循環(huán)控制每一行的輸出,內(nèi)層循環(huán)的第一個for循環(huán)控制空格的輸出,第二個for循環(huán)控制的輸出。而在第i行,輸出的第一個元素是num[i][i],所以下劃線處應(yīng)填i。

12.B解析:從工程管理解度來看,軟件設(shè)計分兩步完成:概要設(shè)計和詳細(xì)設(shè)計。概要設(shè)計(又稱結(jié)構(gòu)設(shè)計)將軟件需求轉(zhuǎn)化為軟件體系結(jié)構(gòu)、確定系統(tǒng)級接口、全局?jǐn)?shù)據(jù)結(jié)構(gòu)或數(shù)據(jù)庫模式。

13.B解析:字符數(shù)組元素作函數(shù)參數(shù)是單向的值傳遞。函數(shù)cchar的功能是將大寫字母轉(zhuǎn)換為小寫字母。主函數(shù)中while循環(huán)語句的條件是判斷指針p當(dāng)前指向的字符是否為空,若不為空,則調(diào)用函數(shù)cchar,即主函數(shù)中通過循環(huán)語句將字符串'ABC+abc=defDEF'中的大寫字母全部轉(zhuǎn)換為小寫字母,因此printf的輸出結(jié)果為選項B。

14.B

15.B解析:二維數(shù)組的元素在內(nèi)存中是按行列順序連續(xù)存放的。以本題的二維數(shù)組a[3][6]為例,它的元素在內(nèi)存中的存放順序是:a[0][0]、a[0][1]、a[0][2]…a[0][5]、a[1][0]、\u3000a[1][1]…a[1][5]、a[2][0]…a[2][5]。由此可見,第10個元素就是第2行第4個元素,即a[1][3]。故應(yīng)該選擇B。

16.A函數(shù)中,形參必須是變量,實參可以是常量、變量或表達(dá)式,選項A錯誤,選項B正確;實參的個數(shù)和類型要與形參一致,選項C、D正確。本題答案為A選項。

17.AA選項中do后面的語句只執(zhí)行了一次便結(jié)束了循環(huán);B選項中條件while(1)永遠(yuǎn)成立,所以是死循環(huán);C選項中n的值為10,而循環(huán)體為空語句,所以while(n)永遠(yuǎn)為真,進(jìn)入死循環(huán);D選項中for語句第2個表達(dá)式為空,所以沒有判斷條件,進(jìn)入死循環(huán)。故本題答案為A選項。

18.B

19.B指針中存放的是變量的地址,指針也可以進(jìn)行增減運算,這時指針移動的最小單位是一個存儲單元,而不是一個字節(jié)。所以題中“P+6”指的是將指針向后移動了6個存儲單元,即指向uE63,存放的是b[6]的地址。

20.A

21.&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]的求和。

22.100010100010解析:首先將程序中的宏替換掉,兩處的宏替換后分別為i1=1000/10*10和i2=1000/(10*10),即i1=1000,i2=10,所以最后輸出的i1和i2的值分別為1000和10。

23.物理獨立性物理獨立性解析:數(shù)據(jù)的物理結(jié)構(gòu)改變,不影響數(shù)據(jù)庫的邏輯結(jié)構(gòu),從而不引起應(yīng)用程序的變化,這種性質(zhì)叫做物理獨立性。

24.輸出結(jié)果輸出結(jié)果解析:注意:測試的基本方法和步驟。

25.2222解析:在main函數(shù)中,調(diào)用reverse函數(shù)將b數(shù)組中的前8個成員進(jìn)行互置,執(zhí)行完畢后,b數(shù)組中的成員為{8,7,6,5,4,3,2,1,9,10},然后再執(zhí)行for循環(huán)結(jié)構(gòu),將b[6],b[7]…b[9]的值相加,結(jié)果為22。

26.集合集合

27.33解析:軟件系統(tǒng)結(jié)構(gòu)圖的寬度:整體控制跨度(最大模塊數(shù)的層)的表示。

28.先進(jìn)后出先進(jìn)后出解析:隊列和棧都是線性結(jié)構(gòu),但是不同之處在于隊列的操作順序是先進(jìn)先出,而棧的操作順序是先進(jìn)后出。

29.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。

30.數(shù)據(jù)字典數(shù)據(jù)字典解析:數(shù)據(jù)字典的作用是對數(shù)據(jù)流圖中出現(xiàn)的披命名的圖形元素進(jìn)行確切解釋。通常數(shù)據(jù)字典包含的信心有名稱、別名、何處使用/如何使用、內(nèi)容描述、補(bǔ)充信息等。

31.進(jìn)行寫保護(hù)進(jìn)行寫保護(hù)

32.邏輯結(jié)構(gòu)中相鄰的結(jié)點在存儲結(jié)構(gòu)中仍相鄰。邏輯結(jié)構(gòu)中相鄰的結(jié)點在存儲結(jié)構(gòu)中仍相鄰。解析:順序存儲結(jié)構(gòu)的主要特點是數(shù)據(jù)元素按線性表的邏輯次序,依次存放在一組地址連續(xù)的存儲單元中。在存儲單元中,各元素的物理位置和邏輯結(jié)構(gòu)中各結(jié)點間的相鄰關(guān)系是一致的。

33.>=1或>0i>=1或>0\r\ni解析:程序的外層for循環(huán)控制輸出數(shù)據(jù)的行數(shù),故第一處填“>=1”或“>0”;內(nèi)層循環(huán)控制每行輸出的個數(shù)。在內(nèi)層for循環(huán)中,語句x=(j-1)*4+______;用于控制輸出方陣中的具體數(shù)據(jù),由于這些數(shù)據(jù)與其所在的行、列(j,i)具有x=(j-1)*4+i的關(guān)系,故第二處填i。

34.*ss!='\0'*ss!='\\0'解析:從字符串ss中找出某字符的方法是:從字符串ss的第一個字符開始,依次進(jìn)行比較,若ss串的當(dāng)前字符等于字符c,則i++;若ss串的當(dāng)前字符和字符c不同,則繼續(xù)對ss串的下一個字符進(jìn)行比較。本程序采用循環(huán)逐一比較的方式,找出某字符在字符串中出現(xiàn)的次數(shù)。汀語句的作用是判斷某字符與字符串中的當(dāng)前字符是否相同。

35.數(shù)據(jù)流數(shù)據(jù)流解析:結(jié)構(gòu)化分析方法的實質(zhì)是著眼于數(shù)據(jù)流,自頂向下,逐層分解,建立系統(tǒng)的處理流程,以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏輯模型。

36.66解析:條件運算符的優(yōu)先級高于賦值運算符,因此本題先計算關(guān)系表達(dá)式(*ptr+y)<x)?*(ptr+y):x的值,再賦給變量z。當(dāng)y=0時,*(ptr+y)=2,而x=8,(*(ptr+y)<x)條件為真,則整個條件表達(dá)式的值為*(ptr+y)=2,所以z=2;當(dāng)y-1時,*(ptr+y)=4,(*(ptr+y)<x)條件為真,則整個條件表達(dá)式的值為*(ptr+y)=4,所以z=4;當(dāng)y=2時,*(ptr+y)=6,(*(ptr+y)<x)條件為真,則整個條件表達(dá)式的值為*(ptr+y)=6,所以z=6;循環(huán)結(jié)束。因此輸出z的結(jié)果為6。

37.9999解析:數(shù)組的下標(biāo)是從0開始存放數(shù)據(jù)的,而不是1,當(dāng)數(shù)組大小為n時,其下標(biāo)從0開始,到n-1,所以本題的答案為99。

38.文檔文檔解析:計算機(jī)軟件是計算機(jī)系統(tǒng)中與硬件相互依存的另一部分,是包括程序、數(shù)據(jù)以及相關(guān)文檔的完整集合。

39.循環(huán)鏈表循環(huán)鏈表解析:在循環(huán)鏈表中,由于設(shè)置了一個頭結(jié)點,因此在任何情況下,循環(huán)鏈表中至少有一個結(jié)點存在,從而使空表與非空表的運算統(tǒng)一。

40.n-1

41.B解析:我們嚴(yán)格區(qū)分調(diào)試與測試,調(diào)試是已知有錯誤而來找錯誤,是被動的;測試有很多種,比如未發(fā)現(xiàn)錯誤但不能保證程序沒錯而來找BUG,還比如我們運行測試程序是否符合用戶的要求,是主動的。所以答案是選項B。A、C、D都是具體的程序調(diào)試方法,而B是宏觀的程序測試方法。測試有單元測試、集成測試、確認(rèn)測試、系統(tǒng)測試。比如我們在進(jìn)行單元測試時,發(fā)現(xiàn)程序有錯誤,我們再可以根據(jù)A、C、D的方法來找錯誤。

42.D解析:本題考查的重點是二維數(shù)組的存儲。函數(shù)fun()只是對5個字符串的首字母進(jìn)行排序,排序后為{“acc”,“abcc”,“by”,“baaacc”,“xabcc”},因此,輸出為第1個和第5個字符串,選項D是正確的。

43.A解析:在主函數(shù)main()中,語句“sum(&a[2]);”把數(shù)組元素a[0]的地址傳遞給了sun函數(shù)的形參a[],使得sum函數(shù)中的“(a+0)”為主函數(shù)中a[2]的地址,所以a[-1]的值為主函數(shù)中a[1]的值;a[1]的值為主函數(shù)中a[3]的伉,故函數(shù)sum中a[0]=2+4=6,由于此函數(shù)中的a是指向主函數(shù)中的a[2],所以a[2]的值為6。

44.C解析:本題考查的知識點是運算符的優(yōu)先級.在復(fù)合賦值語句中,應(yīng)該由右向左依次賦值,在表達(dá)式中,右端由i*=k得i=2*2為4,k=k+i,即k值為6,m=k故m=6.所以4個選項中C正確。

45.B解析:本題x賦初值為3,當(dāng)執(zhí)行printf('%d',x-);時,由于X--的作用是先運算x,再將x的值減1,所以,printf輸出的x值為3,等輸出后,x的值減1變?yōu)?,繼續(xù)執(zhí)行,判斷條件!x為假,循環(huán)只被執(zhí)行一次。

46.B

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

48.A解析:在C語言中,數(shù)組元素是從0開始的。指針變量p指向數(shù)組的首地址,(p+2)就會指向數(shù)組中的第3個元素。題目中要求輸出的是元素的值。

49.B解析:題目中先后兩次調(diào)用了函數(shù)f()。第1次,使用參數(shù)“&a[2],5,0”表示從數(shù)組a下標(biāo)為2的元素開始,對其后的5個元素進(jìn)行由大到小排序。所以排序結(jié)果是{5,4,7,6,3,2,1,8,9,10)。第2次,使用參數(shù)“a,5,1”表示從數(shù)組a的首元素開始,對其后5個元素進(jìn)行由小到大排序。所以排序結(jié)果是{3,4,5,6,7,2,1,8,9,10)。故本題應(yīng)該選擇B。

50.D解析:函數(shù)的靜態(tài)局部變量在編譯時就賦初值,即只賦初值一次,在程序運行時它已有初值,以后每次調(diào)用函數(shù)時不再重新賦值,而只是保留上次函數(shù)調(diào)用結(jié)束時的值。

51.A解析:由于本題定義的是共用體,所以成員表列中的整型變量x與字符數(shù)組c共占用同一個存儲單元,且此存儲單元為2個字節(jié),通常c[0]位于低字節(jié),c[1]位于高字節(jié),所以x.i的值為266。

52.D解析:本題中直接使用指針變量k,但在使用時要注意對k的指針運算。此外,一開始應(yīng)知道*k的值為數(shù)組中的某一下標(biāo)值,即*k=0,本函數(shù)的功能是找出數(shù)組中的最大元素的位置及最大元素的值。

53.B解析:選項A)中,定義的初值個數(shù)大于數(shù)組的長度;選項C)中,數(shù)組名后少了中括號;選項D)中,整型數(shù)組不能賦予字符串。

54.C解析:本題考核的知識點是條件表達(dá)式的使用.在C語言中問號表達(dá)式(如:a>c?a:c;)的計算規(guī)則為:如果a>c為真,那么表達(dá)式的值為a的值;否則表達(dá)式的值為C的值。本題中的printf()函數(shù)中的輸出表達(dá)式,首先計算括號內(nèi)的條件表達(dá)式,它的值為6(a>c?a:c中a>c即5>6為假故該表達(dá)式的值為c的值即為6),然后再計算外面表達(dá)式(等價于a>b?6:b)的值,同理可得該表達(dá)式的值為6,將值6賦值給d,因此最后輸出該表達(dá)式的值為6,所以,4個選項中C為所選。

55.D解析:對二叉樹的前序遍歷是指:先訪問根結(jié)點,然后訪問左子樹,最后訪問右于樹,并且,在訪問左、右子樹時,先訪問根結(jié)點,再依次訪問其左、右子樹。記住3種遍歷的順序:①前序,訪問根一按前序遍歷左子樹一按前序遍歷右子樹:②中序,按中序遍歷左子樹一訪問根一按中序遍歷右子樹;③后序,按后序遍歷左子樹呻按后序遍歷右子樹一訪問根。

56.B解析:本題用循環(huán)的方法考查對數(shù)組概念的掌握。首先,當(dāng)i=0時,數(shù)組中的位置是a[2][0]=7,當(dāng)然,如果用排除法,就不用考慮后面的循環(huán),因為在4個選項中,第1個數(shù)為7的選項只有B)。本題執(zhí)行第2次循環(huán)時,i的值為1,則printf函數(shù)中的數(shù)組指向為a[1][1]=5,依次循環(huán),可求出答案。

57.A

58.C解析:本題主要對switch語句進(jìn)行了考查。switch語句的執(zhí)行過程為:進(jìn)入switch結(jié)構(gòu)后,對條件表達(dá)式進(jìn)行運算,然后從上至下去找與條件表達(dá)式值相匹配的case,以此作為入口,執(zhí)行switch結(jié)構(gòu)中后面的各語句,直到遇到break語句,則跳出switch語句,如果各case都不匹配時,則執(zhí)行default后面的語句。本題中ch為字符'H',所以case'H'條件中的語句將被執(zhí)行,由于沒有break語句,所以case'G'后的語句也被執(zhí)行,由于同樣的缺少break語句,所以default后的語句也被執(zhí)行了。

59.B解析:條件運算符要求有3個操作對象,稱三目(元)運算符,它是C語言中惟一的一個三目運算符。條件表達(dá)式的一般形式為:表達(dá)式17表達(dá)式2:表達(dá)式3其求解順序是:先求解表達(dá)式1,若為非O(真)則求解表達(dá)式2,此時表達(dá)式2的值就作為整個條件表達(dá)式的值。若表達(dá)式1的值為0(假),則求解表達(dá)式3,表達(dá)式3的值就是整個條件表達(dá)式的值。并且注意++、--的用法。

60.B解析:在C語言的數(shù)組元素的引用方法,我們在前面已經(jīng)講過了,比如數(shù)組元素a[0],可以用表達(dá)式*(p+0),即*p來引用,對于數(shù)組元素a[1],可以用表達(dá)式*(p+1)來引用,在這里,p+1的值就是數(shù)組元素a[1]的地址,對此地址使用“間接訪問運算符”:*(p+1)就代表存儲單元a[1],注意:一對圓括號不可少。同樣,對于數(shù)組元素a[2],則可以用表達(dá)式。(p+2)來引用…,對于數(shù)組元素a[9],可以用表達(dá)式,(p+9)來引用。因此,當(dāng)指針變量p指向a數(shù)組的起始地

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論