2021年廣東省梅州市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第1頁
2021年廣東省梅州市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第2頁
2021年廣東省梅州市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第3頁
2021年廣東省梅州市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第4頁
2021年廣東省梅州市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021年廣東省梅州市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.對于靜態(tài)表的順序查找法,若在表頭設(shè)置監(jiān)視哨,則正確的查找方式為()A.從第0個元素往后查找該數(shù)據(jù)元素

B.從第1個元素往后查找該數(shù)據(jù)元素

C.從第n個元素往開始前查找該數(shù)據(jù)元素

D.與查找順序無關(guān)

2.以下程序的輸出結(jié)果是()。main{inta=1,b;for(b=1,b<=10;b++){if(a>=8)break;if(a%2==1){a+=5;continue;}a=3;}printf("%d\n",b);}A.A.3B.4C.5D.6

3.下列關(guān)于棧的描述中錯誤的是()。A.棧是先進后出的線性表B.棧只能順序存儲C.棧具有記憶作用D.對棧的插入與刪除操作中,不需要改變棧底指針

4.

5.關(guān)系數(shù)據(jù)庫的數(shù)據(jù)及更新操作必須遵循()等完整性規(guī)則。

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

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

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

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

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.有以下程序:#include<stdio.h>main(){inta=1,b=2;for(;a<8;a++){b+=a;a+=2;}printf(“%d,%d\n”,a,b);}程序運行后的輸出結(jié)果是()。

A.9,18B.8,11C.7,11D.10,14

8.C語言中不合法的字符串常量是

A.\121B.'Y'C.\n\nD.ABCD\x6d

9.有下面程序段#include"stdio.h"#include"string.h"main(){chara[3][20]={{"china"};{"isa"},{bigcountry!"}};chark[100]={0},*p=k;inti;for(j=0;j<3;i++){p=strcat(p,a[i]);}i=strlen(p);printf("%d\n",i);}則程序段的輸出結(jié)果是

A.18B.19C.20D.21

10.考慮下圖中的程序段,①號語句的輸出結(jié)果是()。A.A.'a'B.'t'C.'c'D.'k'

11.下列程序的輸出結(jié)果是()。main(){chara[7]="a0\0a0\0";inti,j;i=sizeof(a);j=strlen(a);printf("%d%d\n",i,j);}

A.22B.76C.72D.62

12.下面程序的輸出結(jié)果是______。#include<stdio.h>main(){char*p[]={"BOOL","OPK","H","SP"};inti:for(i=3;i>=0;i-,i-)printf("%c",*p[i]);printf("\n");}

A.SOB.SPC.SPOPKD.SHOB

13.表達式“a+=a-=a=9”的值是()。

A.18B.-9C.0D.9

14.有以下程序:#include<stdio.h>main(){charch[]=“uvwxyz”,*pc;pc=ch;printf(“%c\n”,*(pc+5));}程序的運行結(jié)果是()

A.zB.0C.元素ch[5]的地址D.字符y的地址

15.

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

voidfunc(int*a,intb[])

{b[0]=*a+b;}main

{inta,b[5];

a=0.b[0]=3;

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

}

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

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

A.對長度為n的有序鏈表進行查找,最壞情況下需要的比較次數(shù)為n

B.對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數(shù)為n/2

C.對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數(shù)為log2n

D.對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數(shù)為nlog2n

17.表達式18/4*sqrt(4.0)/8值的數(shù)據(jù)類型為()。A.intB.floatC.doubleD.不確定

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

A.一個C語言程序只能實現(xiàn)一種算法

B.c程序可以由多個程序文件組成

C.C程序可以由一個或多個函數(shù)組成

D.一個c函數(shù)可以單獨作為一個C程序文件存在

19.有以下程序:#include<stdio.h>#defineN4voidfun(inta[][N],intb[]){inti;for(i=0;i<N;i++)b[i]=a[i][i]-a[i][N-1-i];}main(){intx[N][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},y[N],i;fun(x,y);for(i=0;i<N;i++)printf(“%d”,y[i]);printf(“\n”);}程序的運行結(jié)果是()。

A.-3,-1,1,3,B.-12,-3,0,0,C.0,1,2,3,D.-3,-3,-3,-3,

20.

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

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

#defineMAX3

inta[MAX];

main()

{fun1();fun2(a);printf("\n");}

fun1()

{intk,t=0;

for(k=0;k<MAX;k++,t++)a[k]=t+t;

}

fun2(intb[])

{intk;

for(k=0;k<MAX;k++)printf("%d",*(b+k));

}

23.已知bead指向一個帶頭結(jié)點的單向鏈表,鏈表中每個結(jié)點包含數(shù)據(jù)域(data)和指針域(next),數(shù)據(jù)域為整型。以下函數(shù)求出鏈表中所有連接點數(shù)據(jù)域的和值作為函數(shù)值返回。請在橫線處填入正確內(nèi)容。

{intdata;structlink*next;}

main()

{structlink*head;

sam(______);

{stmctlink*p;ints=0;

p=head->next;

while(p){s+=p->data;p=p->next;}

return(s);}

24.算法的復(fù)雜度主要包括【】復(fù)雜度和空間復(fù)雜度。

25.在數(shù)據(jù)庫管理系統(tǒng)提供的數(shù)據(jù)定義語言、數(shù)據(jù)操縱語言和數(shù)據(jù)控制語言中,【】負(fù)責(zé)數(shù)據(jù)的模式定義與數(shù)據(jù)的物理存取構(gòu)建。

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

voidfun(int*n)

{while((*n))

printf("%d",(*n)--);

}

main()

{inta=10;

fun(&a);

}

27.下面的if語句與y=(x>=10)?3*x-11:(x<1)?x:2*x-1;的功能相同,請補充完整。

if(______)

if(______)y=2*x-1;

elsey=x;

elsey=3*x-11;

28.設(shè)x和y均為int型變量,且x=1,y=2,則表達式double(1+x/y)的值為【】。

29.下面程序的功能是將一個字符串str的內(nèi)容顛倒過來,請?zhí)羁铡?/p>

#include<string.h>

main()

{inti,j,【】;charstr[]={"1234567"};

for(i=0,j=strlen(str)【】;i<j;i++,j--)

{k=str[i];str[i]=str[j];str[j]=k;}

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

30.若輸入字符串:(圖片),則以下while循環(huán)體將執(zhí)行【】次。

while((ch=getchar())=='e')printf("*");

31.數(shù)據(jù)庫管理系統(tǒng)常見的數(shù)據(jù)模型有層次模型、網(wǎng)狀模型和【】3種。

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

intt(intx,inty,ntcp,intdp)

{cp=x*x+y*y;

dp=x*x-y*y;

}

main()

{inta=4,b=3,c=5,d=6;

t(a,b,c,d);

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

}

33.當(dāng)數(shù)據(jù)的物理結(jié)構(gòu)(存儲結(jié)構(gòu))改變時,不影響數(shù)據(jù)庫的邏輯結(jié)構(gòu),從而不致引起應(yīng)用程序的變化,這是指數(shù)據(jù)的_______。

以下程序的輸出結(jié)果是#include<stdio.h>voidprt(int*x,int*y,int*z){printf("%d,%d,%d\n",++*x,++*y,*(z++));}main(){inta=10,b=40,c=20;prt(&a,&b,&c);prr(&a,&b,&c);}

34.Jackson方法是一種面向【】的結(jié)構(gòu)化方法。

35.數(shù)據(jù)庫設(shè)計分為以下6個設(shè)計階段:需求分析階段、______、邏輯設(shè)計階段、物理設(shè)計階段、實施階段、運行和維護階段。

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

main()

{chars[]="ABCD",*p;

for(p=s+1;p<s+4;p++)printf("%s\n",p);}

37.以下程序的功能是:利用指針指向三個整型變量,并通過指針運算找出三個數(shù)中的最大值,輸出到屏幕上。請?zhí)羁铡?/p>

main()

{intx,y,z,max,*px,*py,*pz,*pmax;

scanf("%d%d%d",&x,&y,&z);

px=&x;py=&y;pz=&z;pmax=&max;

【】;

if(*pmax<*py)*pmax=*py;

if(*pmax<*pz)*pmax=*pz;

printf("max=%d\n",max);}

38.已知字符'A'的ASCII碼值為65,以下語句的輸出結(jié)果是【】。

charch='B';

printf("%c%d\n",ch,ch);

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

#include<stdio.h>

main()

{charc;intn=100;

floatf=10:doublex:

x=f*=n/=(c=50);

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

}

40.在面向?qū)ο蠓椒ㄖ校瑢ο笾g進行通信的構(gòu)造稱為()。

三、1.選擇題(20題)41.下列說法不正確的是()。

A.調(diào)用函數(shù)時,實參可以是表達式

B.調(diào)用函數(shù)時,實參與形參可以共用內(nèi)存單元

C.調(diào)用函數(shù)時,將實參的值復(fù)制給形參,使實參變量和形參變量在數(shù)值上相等

D.調(diào)用函數(shù)時,實參與形參的類型必須一致

42.下列程序的輸出結(jié)果是()。point(char*pt);main(){charb[4]={'a','c','s','f},*pt=b;pt=point(pt);printf("%c\n",*pt);}point(char*p){p+=3;returnp;}

A.sB.cC.fD.a

43.若有下面的說明語句,已知A的+進制數(shù)為65,則以下的輸出結(jié)果為unionun{inta;charc[2];}w;w.c[0]='A';w.c[1]='a';printf("%o\n",w.a);

A.60501B.30240C.9765D.以上答案均錯

44.C語言提供的合法的數(shù)據(jù)類型關(guān)鍵字是_______。

A.DoubleB.floatC.integerD.Char

45.設(shè)有如下說明:typedefstruct{intn;charc;doublex;}STD;則以下選項:能正確定義結(jié)構(gòu)體數(shù)組并賦初值的語句是()。

A.STDtt[2]={{1,'A',62},{2,'B',75}};

B.STDtt[2]={1,"A",62,2,"B",75};

C.struettt[2]={{1,'A'},{2,'B'}};

D.structtt[2]={{1,"A",62.5},{2,"B",75.0}};

46.以下程序的功能是:建立一個帶布頭結(jié)點的單向鏈表,并將存儲在數(shù)組中的字符依次存儲到鏈表的各個結(jié)點中,請從與下劃線處號碼對應(yīng)的一組選項中選擇出正確的選項

#include<stdlib.h>

structnode

{chardata;structnode*next;};

(48)CreatList(char*s),

{structnode*h,*p,*q;

h=(structnode*)malloc(sizeof(structnode));

p=q=h;

while(*s!="\0")

{p=(structnode*)malloc(sizeof(structnode));

p->data=(49);

q->next=p;

q=(50);

s++;

}

p->next="\0";

returnh;

}

main()

{charstr[]="linklist";

structnode*head;

head=CreatList(str);

}

(1)

A.char*B.structnodeC.structnode*D.char

47.若有語句int*point,a=4;和point=&a;下面均代表地址的一組選項是()。

A.a,point,*&a

B.&*a,&a,*point

C.*&point,*point,&a

D.&a,&*point,point

48.下面程序的功能是輸出以下形式的金字塔圖案:****************main(){inti,j;for(i=1;i<=4;i++){for(j=1;j<=4-i;j++)printf("");for(j=1;j<=();j++)printf("*");printf("\n");}}在下劃線處應(yīng)填入的是()。

A.iB.2*-1C.2*i+1D.i+2

49.下列程序執(zhí)行后的輸出結(jié)果是voidfunc(int*a,intb[]){b[0]=*a+6;}main(){inta,b[5];a=0;b[0]=3;func(&a,b);printf("%d\n",b[0]);}

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

50.設(shè)語句inta=3;,當(dāng)執(zhí)行了以下語句后,變量a的值是______。a+=a-=a*a;

A.3B.0C.9D.-12

51.下列循環(huán)體的執(zhí)行次數(shù)是()。#include<stdio.h>main(){inti,j;for(i=0j=1;i<j+1;i+=1,j--)printf("%d\n",j);}

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

52.以下程序的輸出結(jié)果是()main(){staticchara[10]={"Chinese"};printf("%d",strlen(a));}

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

53.在下列敘述中,正確的一條是______。

A.對while循環(huán)、do-while循環(huán)和for循環(huán),可以用continue語句跳出循環(huán)

B.表達式1+2<<3和sizeof(3.8)的結(jié)果分別為24和8

C.函數(shù)fputc(c,stdout)與putchar(c)的結(jié)果相同

D.在有參函數(shù)中,定義函數(shù)中指定的形參變量在程序一開始執(zhí)行時便分配內(nèi)存單元

54.以下4組用戶定義標(biāo)識符中,全部合法的一組是()A._mainencludesin

B.If-maxturbo

C.txtREAL3COM

D.intk_2_001

55.下列有關(guān)數(shù)據(jù)庫的描述,正確的是______。

A.數(shù)據(jù)庫是一個DBF文件B.數(shù)據(jù)庫是一個關(guān)系C.數(shù)據(jù)庫是一個結(jié)構(gòu)化的數(shù)據(jù)集合D.數(shù)據(jù)庫是一組文件

56.在數(shù)據(jù)管理技術(shù)的發(fā)展過程中,經(jīng)歷了人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。其中數(shù)據(jù)獨立性最高的階段是()。

A.數(shù)據(jù)庫系統(tǒng)B.文件系統(tǒng)C.人工管理D.數(shù)據(jù)項管理

57.若有以下定義:floatx;inta,b,c=2;,則正確的switch語句是()

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

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

C.switch(a+b){case1:printf("*\n");case1+2:printf("**\n");}

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

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

59.有如下程序main(){intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++;b++;}printf("a%d,b=%d\n",a,B);}該程序的輸出結(jié)果是______。

A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2

60.有如下程序#defineN2#defineMN+1#defineNUM2*M+1main(){inti;for(i=1;i<=NUM;i++)printf("%d\n"i)}該程序中的for循環(huán)執(zhí)行的次數(shù)是______。

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

四、選擇題(20題)61.下列敘述中錯誤的是()。

A.列表框和組合框都有List屬性

B.列表框有Selected屬性,而組合框沒有

C.列表框和組合框都有Style屬性

D.組合框有Text屬性,而列表框沒有

62.

63.有以下程序:main(){inti=1,j=1,k=2;if((j++‖k++)&&i++)printf("%d,%d,%d\n",i,j,k);}執(zhí)行后的輸出結(jié)果是______。

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

64.以下程序段完全正確的是()。

A.int*p;scanf(”%d”,&p);

B.int*p;scanf(”%d”,P);

C.intk,*P:&k;scanf(’’%d”,P);

D.intk,*p;*P=&k;scanf(”%d”,P);

65.若有定義語句:inta[2][3],*p[3];,則以下語句中正確的是()。

A.p=a;B.p[0]=a;C.p[o]=&a[1][2];D.p[1]=&a;

66.有如下程序:main(){intn[5]={0,0,0},i,k=2;for(i=0;i&printf("%d\n",n[k]););}該程序的輸出結(jié)果是()。A.不確定的值B.2C.1D.0

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

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

68.已有定義:charc;,程序前面已在命令行中包含ctype.h文件,不能用于判斷e中的字符是否為大寫字母的表達式是()。

A.isupper(c)

B.A<=c<=Z

C.A<=cc<=Z

D.c<=(z-32)(a-32)<=c

69.有以下程序:

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

A.2344B.4332C.1234D.1123

70.以下選項錯誤的是

71.

對兩個數(shù)組a和b進行下列初始化:

charm[]1="l234567":

charn[]={1,2,3,4,5,6,7);

則下列敘述正確的是()。

A.數(shù)組m與數(shù)組n完全相同

B.數(shù)組m與數(shù)組n長度相同

C.數(shù)組m比數(shù)組n長1

D.數(shù)組m與數(shù)組n中都存放字符串

72.有下列程序:

main

{inty=10;

do{y--;}while(--y);

printf("%d\n",--y);

)

當(dāng)執(zhí)行程序時,輸出的結(jié)果是()。

A.-1B.1C.4D.0

73.

74.語句int(*ptr)的含義是()。

A.ptr是一個返回值為int的函數(shù)

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

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

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

75.

76.

77.

78.

79.

80.有三個關(guān)系R,S和T如下:

其中關(guān)系T由關(guān)系R和S通過某種操作得到,該操作為()。A.選擇B.投影C.交D.并

五、程序改錯題(1題)81.已知一個數(shù)列從0項開始的前3項為0,0,1,以后的各項都是其相鄰的前3項之和。下列給定的程序中,函數(shù)proc()的功能是:計算并輸出該數(shù)列前n項的和sum。n的值通過形參傳人。例如,當(dāng)n-20時,程序的輸出結(jié)果應(yīng)為42762.000000。請修改程序中的錯誤,使它能得到正確結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),其功能是找出一維整型數(shù)組元素中最大的值及其所在的下標(biāo),并通過形參傳回。數(shù)組元素中的值已在主函數(shù)中賦予。主函數(shù)中x是數(shù)組名,n表示x中的元素個數(shù),max存放最大值,index存放最大值所在元素的下標(biāo)。注意:部分源程序給出如下。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#include<time.h>#include<stdlib.h>#include<stdio.h>voidfun(inta[],intn,int*max,int*d){}voidmain(){ inti,x[20],max,index,n=10; srand((unsigned)time(NULL)); for(i=0;i<=n;i++) { x[i]=rand()%50; printf(“%4d”,x[i]); /*輸出一個隨機數(shù)組*/ } printf(n\nH); fun(xfnf&max,&index); printf(“Max=%5d,Index=%4d\n”,max,index);}

參考答案

1.C

2.B當(dāng)b=1時,a=1,第二個if語句成立,此時a=6,返回for循環(huán);當(dāng)b=2,兩個if語句都為假,此時a=3,再返回循環(huán);當(dāng)b=3,第二個if成立,此時a=8,繼續(xù)循環(huán);當(dāng)b=4,第一個if成立,退出for循環(huán)體時b為4,a為8。

3.B棧是限定只能在表的一端進行插入和刪除操作的線性表,入棧和出棧都是在棧頂進行,它們的操作特點是先進后出,因此具有記憶作用。??梢圆捎庙樞虼鎯?,也可以采用鏈?zhǔn)酱鎯Α?/p>

4.A

5.D解析:關(guān)系模型中包括關(guān)系的數(shù)據(jù)結(jié)構(gòu)、關(guān)系的操縱和關(guān)系中的數(shù)據(jù)約束。關(guān)系完整性約束即數(shù)據(jù)完整性,包括實體完整性、參照完整性和用戶自定義完整性。

6.D本題考查if-else語句的使用。if-else語句可以在條件為“真”或為“假”時執(zhí)行指定的動作,由if引導(dǎo)條件為“真”時執(zhí)行的操作;由else引導(dǎo)條件為“假”時執(zhí)行的操作。else語句要與上面最近的if語句進行匹配,如果要嵌套調(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的值,然后進行x++操作。x的初始值為1,輸出結(jié)果為1。

7.D第1次循環(huán),a的值為1,滿足條件,執(zhí)行“b+=a;”與“a+=2;”,則b的值變?yōu)?,a的值變?yōu)?。執(zhí)行“a++”,a的值為4,滿足條件進入第2次循環(huán),執(zhí)行完循環(huán)體后,b的值為7,a的值為6。執(zhí)行“a++”,a的值為7,滿足條件進入第3次循環(huán),執(zhí)行完循環(huán)體后,b的值為14,a的值為9。執(zhí)行“a++”,a的值為10。條件不滿足,退出循環(huán)。故本題答案為D選項。

8.B解析:字符串常量是由雙引號括起來的一串字符,其中的雙引號不可缺少。由此可知,選項A)、C)、D)都是含法的字符串常量,而選B)是一個字符常量。

9.B解析:字符串連接函數(shù)strcat的調(diào)用形式如下:strcat(s1,s2)。此函數(shù)用來把s2所指字符串的內(nèi)容連接到s1所指的字符串后面,并自動覆蓋s1串末尾的尾標(biāo),函數(shù)返回s1的地址值。

10.D

11.C解析:函數(shù)slzeof(a)的功能是求出字符串a(chǎn)中的字符占用存儲空間的大小,由于字符數(shù)組a有長度為7,所以i=7;函數(shù)strlen(a)的功能是:求出字符串a(chǎn)的長度。而每個字符串都以'\\0'為字符串的結(jié)束標(biāo)記,所以j的值等于2。

12.A解析:p[0]存放的是“BOOL\\0”的首地址:p[1]存放的是“OPK\\0”的首址等。在printf語句中輸出的*p[i]表示p[i]字符串的第—個字符。在for循環(huán)中,i的初值為3,那么輸出的第—個字符為“S”,接著兩次i--,則輸出的值為*p[1],即字符“O”,所以本題的輸出為SO。

13.C首先計算表達式“a=9”;再計算表達式“a-=9”;即“a=a-9”,結(jié)果為0;最后計算表達式“a+=0”,即“a=a+0”,所以最終結(jié)果為0。故本題答案為C選項。

14.A語句“pc=ch;”使得指針變量pc指向字符數(shù)組ch的首地址,即指向字符‘u’。而“pc+5”指向的是指針向后移動5位所指的字符,即指向字符‘z’,所以輸出的“*(pc+5)”的值為‘z’。故本題答案為A選項。

15.A

\n本題考查函數(shù)的調(diào)用,從主函數(shù)傳遞到調(diào)用函數(shù)中,*a的值為0,因此當(dāng)執(zhí)行完調(diào)用函數(shù)后,b[0]的值為6。

\n

16.C\n\tC。【解析】二分法查找只適用于順序存儲的有序表,對于長度為n的有序線性表,最壞情況只需比較log2n次。

17.C因為c語言數(shù)據(jù)進行計算時數(shù)據(jù)類型會由低級向高級進行隱式轉(zhuǎn)化,sqrt函數(shù)得到的是double類型,比其他的int數(shù)據(jù)類型高,所以整個結(jié)果得到的是double類型。

18.A答案A

解析:一個C程序可以有一個或多個程序文件,也可以有一個或多個函數(shù),所以一個C語言程序可以實現(xiàn)多種算法。

19.A本題由fun函數(shù)可知,執(zhí)行for循環(huán),當(dāng)i=0時,b[0]=a[0][0]-a[0][3]=1-4=-3;當(dāng)i=1時,b[1]=a[1][1]-a[1][2]=6-7=-1;當(dāng)i=2時,b[2]=a[2][2]-a[2][1]=11-10=1;當(dāng)i=3時,b[3]=a[3][3]-a[3][0]=16-13=3。主函數(shù)中輸出y數(shù)組元素的值為:-3,-1,1,3。故本題答案為A選項。

20.A

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

22.024

23.

24.時間時間解析:算法的復(fù)雜度主要指時間復(fù)雜度和空間復(fù)雜度。所謂算法的時間復(fù)雜度,是指執(zhí)行算法所需要的計算工作量;算法的空間復(fù)雜度,一般是指執(zhí)行這個算法所需要的內(nèi)存空間。

25.數(shù)據(jù)定義語言數(shù)據(jù)定義語言解析:在數(shù)據(jù)庫管理系統(tǒng)提供的數(shù)據(jù)定義語言,數(shù)據(jù)操縱語言和數(shù)據(jù)控制語言中,數(shù)據(jù)定義語言負(fù)責(zé)數(shù)據(jù)的模式定義與數(shù)據(jù)的物理存取構(gòu)建,數(shù)據(jù)操縱語言負(fù)責(zé)數(shù)據(jù)的操縱,包括查詢及增、刪、改等操作,數(shù)據(jù)控制語言負(fù)責(zé)數(shù)據(jù)完整性、安全性的定義與檢查以及并發(fā)控制、恢復(fù)等功能。

26.1.09877e+010

27.x<10x>=1

28.11解析:本題考查兩個知識點:一是x/y的值為整型,即為0;二是數(shù)1是double類型。

29.k-1k,-1解析:顛倒一個字符串中的字符,就是首尾對應(yīng)的元素兩兩交換。簡單地可用兩個游標(biāo)變量i和j,i是前端元素的下標(biāo),j是后端元素的下標(biāo),交換以這兩個變量值為下標(biāo)的元素str[i]和str[j]。開始時,i的值為0,j的值為字符串末元素的下標(biāo)(字符串長度減1)。每次交換后,i增1,j減1。繼續(xù)交換的條件是str[i]位于str[j]的前面,即i<j。字符串末元素的下標(biāo)是它的長度減1,所以在第二個空框處應(yīng)填入-1。程序為了交換str[i]和str[j],使用了變量k,該變量應(yīng)在程序的變量定義部分中一起定義,所以在第一個空框處應(yīng)填入k。

30.00解析:函數(shù)getchar()是從鍵盤得到用戶輸入的一個字符。用戶輸入的第1個字符是a,不管后面輸入的是什么ch的值都是'a',因此條件(ch=getchar())=='e'為假,這個循環(huán)不會被執(zhí)行。

31.關(guān)系模型關(guān)系模型解析:數(shù)據(jù)庫管理系統(tǒng)是位于用戶與操作系統(tǒng)之間的一層系統(tǒng)管理軟件,是一種系統(tǒng)軟件,是用戶與數(shù)據(jù)庫之間的一個標(biāo)準(zhǔn)接口。其總是基于某種數(shù)據(jù)模型,可以分為層次模型、網(wǎng)狀模型和關(guān)系模型。

32.5656解析:本題中a,b,c,d是實參,x,y,cp,dp是形參。C語言規(guī)定,實參變量對形參變量的數(shù)據(jù)傳遞是“值傳遞”,即單向傳遞,只由實參傳給形參,而不能由形參傳回來給實參。在內(nèi)存中,實參單元與形參單元是不同的單元。在調(diào)用函數(shù)時,給形參分配存儲單元,并將實參對應(yīng)的值傳遞給形參,調(diào)用結(jié)束后,形參單元被釋放,實參單元仍保留并維持原值。因此,程序的輸出結(jié)果是56。

33.B

34.數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)解析:Jackson方法是—‘種面向數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)化方法。

35.概念設(shè)計階段(數(shù)據(jù)庫概念設(shè)計階段)概念設(shè)計階段(數(shù)據(jù)庫概念設(shè)計階段)

36.BCDCDDBCD\r\nCD\r\nD解析:本題考查指向字符串的指針的運算方法。指針變量p首先指向字符串中的第一個字符A,執(zhí)行p=s+1后,p指向字符串中的第二個字符B,然后輸出值“BCD”并換行,依次執(zhí)行循環(huán)語句。

37.*pmax=*px*pmax=*px解析:首先將變量x的值放到max中,然后依次和變量y、z進行比較。若有比max大的數(shù),將該數(shù)存放到max中,這樣最后在max中的值就是x、y、z中的最大值。

38.B66B66解析:字符B的ASCII碼值為66,因此,按%c形式輸出B,按%d形式輸出66,輸出結(jié)果為:B66。

39.220220解析:根據(jù)賦值運算符“自右至左”的結(jié)合順序,程序中賦值表達式x=f*=n/=(c=50)的求解步驟為:首先計算n/=(c=50),即n=n/c=100/50=2;然后計算f*=n,即f=f*n=10*2=20.000000,由此得到x的值為20.000000。

40.消息消息解析:對象之間進行通信的構(gòu)造叫做消息,它請求對象執(zhí)行某一處理或回答某一要求的信息,它統(tǒng)一了數(shù)據(jù)流和控制流。

41.B

\n本題考查函數(shù)調(diào)用的基本概念。調(diào)用函數(shù)時,實參的形式可以是具體的數(shù)值,也可以是表達式。實參將數(shù)值或表達式的值傳遞給形參,因而兩者的類型必須保持一致;形參在運算過程中會發(fā)生改變,但不一定會影響到實參值,所以可知兩者不共用內(nèi)存單元。

\n

42.C解析:本題考查函數(shù)調(diào)用時的參數(shù)傳遞。函數(shù)point的參數(shù)為字符指針,當(dāng)執(zhí)行函數(shù)point時,剛開始指針p指向“a”,經(jīng)過+3操作后,指針p指向“f”,所以最后的輸出結(jié)果是f。

43.A解析:由于共用體變量中的所有成員共享存儲空間,賦值后,w.c字符數(shù)組的值即是整型變量a的值。注意:共用體變量的定義、初始化及其成員的引用。

44.B解析:選項A和D中第—個字母大寫,不正確;選項C是PASCAL中的整型關(guān)鍵字,不是C語言中的關(guān)鍵字。

45.A解析:本題定義了一個結(jié)構(gòu)體類型并白定義類型名為STD,用戶自定義類型后,就可以利用它進行變量與數(shù)組的定義。定義的方法,與C語言中其它類型的定義完全一樣,定義結(jié)構(gòu)型數(shù)組并賦初值時,每個元素用一對“{”和“廠括起來,字符型元素用…”括起來,選項A、B、C、D中只有選項A符合條件。所以,A選項為所選。

46.C

47.D本題主要考查指針變量對數(shù)值的引用。在題目中,首先定義了整型指針變量point和一個整型變量a,變量a的初值為4,然后是指針變量指向a,或者說將變量a所在存儲單元的地址值賦給指針變量。

在選項A中,很顯然,不全是地址,只有point表示地址,而*&a等價于*(&a),表示取一個數(shù)值。

在選項B中,也不都表示地址,其中*point表示數(shù)值,其他兩個表示地址。

在選項C中,與選項B類似,其中的*point表示數(shù)值。

在選項D中,都表示地址,是題目的選擇答案。

48.B解析:觀察可知圖形共4行,主函數(shù)中通過一個for5循環(huán)循環(huán)4次,輸出4行。第1行輸出3個空格和1個*,第2行輸出2個空格和3個*,第3行輸出1個空格和5個*,第4行輸出7個*,主函數(shù)中通過第2個循環(huán)控制每行的輸出空格數(shù),第3個for循環(huán)控制輸出*的個數(shù),總結(jié)規(guī)律:每行輸出*的個數(shù),總比前一行的多2個,且第1行的個數(shù)為1,可以斷定每行輸出*的個數(shù)組成了一個公差為2的等差數(shù)列,所以每行輸出。的個數(shù)即該等差數(shù)列的通項,故該空白處應(yīng)該填寫2*i-1,所以,4個選項中選項B符合題意。

49.A解析:函數(shù)的參數(shù)不僅可以是整型、實型、字符型等數(shù)據(jù),還可以是指針型。它的作用是將一個變量的地址傳遞到另一個函數(shù)中。當(dāng)數(shù)組名作參數(shù)時,如果形參數(shù)組中的各元素的值發(fā)生變化,實參數(shù)組元素的值也將隨之發(fā)生變化。

50.B

51.C解析:本題考查for循環(huán)。第一次循環(huán)前先判斷循環(huán)條件,此時i=0,j=1,i<j+1成立,循環(huán)第一次;第二次循環(huán)前先判斷循環(huán)條件,此時i=1,j=0,(j--是先使用j的值再減1),i<j+1不成立,結(jié)束循環(huán)。

52.A

53.C解析:選項A錯誤,continue語句只能結(jié)束本次循環(huán),不能結(jié)束整個循環(huán)。要跳出循環(huán)可用break語句。選項B錯誤,表達式1+2<<3等價于(1+2)<<3,即0000000000000011向右移3位,移后變?yōu)?000000000000000,即0。選項C正確,函數(shù)fputc的操作對象是文件,而putchar是直接向標(biāo)準(zhǔn)輸出設(shè)備輸出字符。標(biāo)準(zhǔn)輸出設(shè)備是一個特殊文件,即設(shè)備文件,文件型指針指向標(biāo)準(zhǔn)輸出設(shè)備,因而功能相同。選項D錯誤,在定義函數(shù)中指定的形參變量,在未出現(xiàn)函數(shù)調(diào)用時,它們并不占內(nèi)存中的存儲單元。

54.A解析:標(biāo)識符是以字母或下劃線開頭,由字母、數(shù)字或下劃線組成的字符序列(例如,-max含非法字符-),并且用戶標(biāo)識符不能與C語言中的32個關(guān)鍵字同名(例如,int是關(guān)鍵字,不是合法的用戶標(biāo)識符)。選項B中-max不是字母、數(shù)字或下劃線組成的字符序列,故選項B不正確;選項C中3COM不是由字母或下劃線開頭,故選項C不正確;選項D中int為C語言中的關(guān)鍵字,故選項D不正確;選項A中全部為合法的標(biāo)識符,所以,4個選項中選項A符合題意。

55.C解析:數(shù)據(jù)庫(Database,簡稱DB)是數(shù)據(jù)的集合,它具有統(tǒng)一的結(jié)構(gòu)形式并存放于統(tǒng)一的存儲介質(zhì)內(nèi),是多種應(yīng)用數(shù)據(jù)的集成,并可被各個應(yīng)用程序所共享。數(shù)據(jù)庫中的數(shù)據(jù)具有“集成”、“共事”之特點。

56.A在數(shù)據(jù)管理技術(shù)的發(fā)展過程中,經(jīng)歷了人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。其中數(shù)據(jù)獨立性最高的階段是數(shù)據(jù)庫系統(tǒng)這一階段。數(shù)據(jù)庫系統(tǒng)階段用數(shù)據(jù)模型來表示復(fù)雜的數(shù)據(jù),有較高的數(shù)據(jù)獨立性。數(shù)據(jù)庫系統(tǒng)為用戶提供了方便的用戶接口,用戶既可使用查詢語言或終端命令操作數(shù)據(jù)庫,也可以用程序方式來操作。數(shù)據(jù)庫管理系統(tǒng)提供了數(shù)據(jù)控制功能。

57.C

58.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],為正確的引用。

59.A解析:在這個switch語句中,因為x的值為1,所以執(zhí)行case1:后面的a++,這樣a=1。但又由于其下沒有break語句,所以其后面的語句“a++;b++”也將被執(zhí)行,這樣一來,a=2,b=1。

60.B解析:該題目測試考生對宏替換的理解。這是一種簡單的

溫馨提示

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

評論

0/150

提交評論