2021年江蘇省徐州市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)預(yù)測試題(含答案)_第1頁
2021年江蘇省徐州市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)預(yù)測試題(含答案)_第2頁
2021年江蘇省徐州市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)預(yù)測試題(含答案)_第3頁
2021年江蘇省徐州市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)預(yù)測試題(含答案)_第4頁
2021年江蘇省徐州市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)預(yù)測試題(含答案)_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2021年江蘇省徐州市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)預(yù)測試題(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.在Internet中,域名服務(wù)器的主要功能是實(shí)現(xiàn)()的轉(zhuǎn)換。

A.IP地址到域名(主機(jī)名字)B.域名到IP地址C.主機(jī)IP地址和路由器IP地址之間D.路由器IP地址之問

2.如果定義“班級”關(guān)系如下:班級(班級號,總?cè)霐?shù),所屬學(xué)院,班級學(xué)生)則使它不滿足第一范式的屬性是()。

A.班級號B.班級學(xué)生C.總?cè)霐?shù)D.所屬學(xué)院

3.按照標(biāo)識符的要求,()符號不能組成標(biāo)識符。A.連接符B.下劃線C.大小寫字母D.數(shù)字字符

4.

有以下結(jié)構(gòu)體說明和變量的定義,且指針P指向變量a,指針q指向變量b,則不能把結(jié)點(diǎn)b連接到結(jié)點(diǎn)a之后的語句是()。

structnode

{chardata;

structnode*next:

}a,b,*p=&a,*q=&b;

A.a.next=q;B.P.next=&b;C.p->next=&b;D.(*p).next=q;

5.在具有n個結(jié)點(diǎn)的有序單鏈表中插入一個新結(jié)點(diǎn)并使鏈表仍然有序的時間復(fù)雜度是________

A.O(1)B.O(n)C.O(nlogn)D.O(n2)

6.以下不合法的用尸標(biāo)識符是()。A.A.804zhangB._hhC.yy614D.If

7.數(shù)據(jù)的不可分割的基本單位是()。

A.元素B.結(jié)點(diǎn)C.數(shù)據(jù)類型D.數(shù)據(jù)項(xiàng)

8.下列程序的運(yùn)行結(jié)果是()。#include<stdio.h>main(){inta=2,b=3,c=4;if(a<B)if(b<0)c=0;elsec+=1;printf("%d\n",C);}

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

9.設(shè)有定義“intx,y,z;”,且各變量已經(jīng)賦正整數(shù)值,則以下能正確表示代數(shù)式“”的C語言表達(dá)式是()。

A.1.0/x/y/zB.1/x*y*zC.1/(x*y*z)D.1/x/y/(double)z

10.若有定義“int*p[3];”,則以下敘述中正確的是()。A.定義了一個指針數(shù)組p,該數(shù)組含有3個元素,每個元素都是基類型為int的指針

B.定義了一個基類型為int的指針變量p,該變量具有3個指針

C.定義了一個名為*p的整型數(shù)組,該數(shù)組含有3個int類型元素

D.定義了一個可指向一維數(shù)組的指針變量p,所指一維數(shù)組應(yīng)具有3個int類型元素

11.以下程序的功能是()。#include<stdio.h>main(){FILE*fPl;*fp2;fp1:fopen("file1","r");fp2:fopen("file2","w");while(!Feof(fP1))fputc(fgetc(fP1),fp2);fclose(fP1);fclose(fp2);}

A.將磁盤文件的內(nèi)容顯示在屏幕上

B.將兩個磁盤文件合為一個

C.將一個磁盤文件復(fù)制到另一個磁盤文件中

D.將兩個磁盤文件合并后送屏幕

12.查找較快,且插入和刪除操作也比較方便的查找方法是

A.分塊查找B.二分查找C.順序查找D.折半查找

13.設(shè)x是一個int型的,y的值為10,則表達(dá)式x&&y的值為()。

A.1B.0C.與x值相同D.與x值相反

14.有以下程序voidf(intn,int*r){intr1=0;if(n%3==0)r1=n/3;elseif(n%5==0)r1=n/5;elsef(--n,&r1);*r=r1;}main(){intm=7,r;f(m,&r);printf("%d",r);}程序運(yùn)行后的輸出結(jié)果是A.2B.1C.3D.0

15.有以下程序

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

}

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

A.A.331

B.41

C.2

D.1

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

A.算法的時間復(fù)雜度是指算法在執(zhí)行過程中基本運(yùn)算的次數(shù)

B.算法的時間復(fù)雜度是指算法執(zhí)行所需要的時間

C.算法的時間復(fù)雜度是指算法執(zhí)行的速度

D.算法的復(fù)雜度是指算法控制結(jié)構(gòu)的復(fù)雜程度

17.設(shè)x和y均為bool量,則x&&y為真的條件是()。

A.它們均為真B.其中一個為真C.它們均為假D.其中一個

18.標(biāo)準(zhǔn)庫函數(shù)fgets(str,n,fp)的功能是()。A.從fp所指的文件中讀取長度不超過n-1的字符串存入指針str所指的內(nèi)存

B.從fp所指的文件中讀取長度為n的字符串存入指針str所指的內(nèi)存

C.從fp所指的文件中讀取n個字符串存入指針str所指的內(nèi)存

D.從fp所指的文件中讀取長度為n-1的字符串存入指針str所指的內(nèi)存

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

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

20.用鄰接矩陣A表示有向圖G的存儲結(jié)構(gòu),則有向圖G中頂點(diǎn)i的入度為()。

A.第i行非0元素的個數(shù)之和B.第i列非0元素的個數(shù)之和C.第i行0元素的個數(shù)之和D.第i列0元素的個數(shù)之和

二、2.填空題(20題)21.下列程序的輸出結(jié)果是【】。

intt(intx,inty,intcp,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);

}

22.設(shè)inta=5,b=6,表達(dá)式(++a==b--)?++a:--b的值是【】。

23.以下程序用來輸出結(jié)構(gòu)體變量ex所占存儲單元的字節(jié)數(shù),請?zhí)羁铡?/p>

structst

{charname[20];doublescore;};

main()

{structstex;

printf("exsize:%d\n",sizeof(【】));}

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

main()

{inta=1,b=3,c=5;

if(c=a+b)printf("yes\n");

elseprintf("no\n");

}

25.冒泡排序算法在最好的情況下的元素交換次數(shù)為【】。

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

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

2223445666677899101010

刪除后,數(shù)組中的內(nèi)容應(yīng)該是:

2345678910。

請?zhí)羁铡?/p>

#include<stdio.h>

#defineN80

infun(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");

}

27.已有定義:charc=′′;inta=1,b;(此處c的初值為空格字符),執(zhí)行b=!c&&a;后b的值為【】。

28.以下程序運(yùn)行后的輸出結(jié)果是______。

main()

{chara[]="Language",b[]="Programe";

char*p1,*p2;

intk;

p1=a;p2=b;

for(k=0;k<=7;k++)

if(*(p1+k)==*(p2+k))printf("%c,*(p1+k));

}

29."printf("%d\n",strlen("\t\"'\023\xABC\n"));"語句的輸出結(jié)果是______。

30.已知函數(shù)isaplha(ch)的功能是判斷變量ch是否是字母,若是,則該數(shù)值為1,否則為0。下面程序執(zhí)行后的輸出結(jié)果是()。

#include<ctype.h>

#include<string.h>

voidfun(chars[])

{inti,j;

for(i=0,j=0;s[i];i++)

s[j]='\0';

}

main()

{charss[80]="goodmorning";

fun(ss);

printf("%s",ss);

}

31.以下函數(shù)用以求x的y次方。補(bǔ)足所缺語句。

Doublefun(doublex,inty)

{inti;doublez=1;

for(i=1;i【】;i++)

z=【】;

returnz;

}

32.下列程序的運(yùn)行結(jié)果為【】。

main(){inti=lO,*p,*func();

p=&i;

printf("%d",*p);

p=func(p);

printf("%d\n",*p)

}

int*func(px);

int*px;

{inttemp=20;

px=&temp;

return(px);

}

33.在軟件測試中,動態(tài)測試和靜態(tài)測試手段只能發(fā)現(xiàn)程序中的錯誤,而不能證明程序中不存在錯誤,只有【】證明才有可能證明程序的正確性。

34.下列程序的輸出結(jié)果是______。

#include<stdio.h>

main()

{intx=1,y=1,a=1,b=1;

switch(x)

{case1:

switch(y)

{case0:a++;break;

case1:b++;break;

}

case2:

a++;b++;break;

}

printf("a=%d,b=%d\n",a,B);

}

35.長度為n的順序存儲線性表中,當(dāng)在任何位置上插入一個元素概率都相等時,插入一個元素所需移動元素的平均個數(shù)為【】。

36.以下程序中,fun函數(shù)的功能足求3行4列二維數(shù)組每行尢素中的最大值。請?zhí)羁?。voidfun(int,int,int(*)[4],int*);main(){inta[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1}},b[3],i;fun(3,4,a,B);for(i=0;j<3;i++)printf("%4d",b[i]);printf("\n");}voidfun(intm,intn,intar[][4],int*br){inti,j,x;for(i=0;i<m;i++){x=ar[i][0];for(j=0;j<n;j++)if(())x=ar[i][j];br[i]=x;}}

37.深度為5的滿二叉樹中,葉子結(jié)點(diǎn)的個數(shù)為______。

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

#include<stdio.h>

main()

{inti;

for(i='a';i<'f';i++,i++)printf("%c",i-'a'+'A');

printf("\n");

}

39.在深度為7的滿二叉樹中,度為2的節(jié)點(diǎn)個數(shù)為()。

40.下列程序段中循環(huán)體的執(zhí)行次數(shù)是______。

a=15;

b=0;

do{b+=2;a-=2+b;}while(a>=0);

三、1.選擇題(20題)41.有以下程序:main(){chars[]="ABCD",*p;for(p=s+1;p<s+4;p++)printf("%s\n",p);}程序運(yùn)行后的輸出結(jié)果是()。

A.ABCDBCDCDDB.ABCDC.BCDD.BCDCDD

42.C語言的基本單位是()。

A.函數(shù)B.過程C.子程序D.子函數(shù)

43.對于n個結(jié)點(diǎn)的單向鏈表(無表頭結(jié)點(diǎn)),需要指針單元的個數(shù)至少為______。

A.n-1B.nC.n+1D.2n

44.數(shù)據(jù)庫設(shè)計(jì)包括兩個方面的設(shè)計(jì)內(nèi)容,它們是()

A.概念設(shè)計(jì)和邏輯設(shè)計(jì)B.模式設(shè)計(jì)和內(nèi)模式設(shè)計(jì)C.內(nèi)模式設(shè)計(jì)和物理設(shè)計(jì)D.結(jié)構(gòu)特性設(shè)計(jì)和行為特性設(shè)計(jì)

45.有以下函數(shù)char*fun(char*p){returnp;}該函數(shù)的返回值是______。

A.無確切的值B.形參p中存放的地址值C.一個臨時存儲單元的地址D.形參p自身的地址值

46.若有如下函數(shù)調(diào)用語句;sub(a,1,fun(b,c),d+c,(a+d,c*f));則在該函數(shù)調(diào)用語句中含有實(shí)參的個數(shù)是()

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

47.下列句子中,正確的C語言賦值語句是()

A.n++;B.a=b=88C.t=int(x+y);D.a=100,b=200

48.下列程序的運(yùn)行結(jié)果為()。

#include<stdio.h>

voidabc(char*str)

{inta,b,i,j;

for(i=j(luò)=0;str[i]!='\0';i++)

if(str[i]!='a')

str[j++]=str[j];

str[j]='\0';

}

voidmain()

{charStr[]="abcdef';

abc(str);

printf("str[]=%s",str);

}

A.str[]=bcdefB.str[]=abcdefC.str[]=aD.str[]=ab

49.以下各組選項(xiàng)中,均能正確定義二維實(shí)型數(shù)組a的選項(xiàng)是()

A.floata[3][4];floata[][4];floata[3][]={{1},{0}};

B.floata(3,4);floata[3][4];floata[][]={{0},{0}};

C.floata[3][4]staticfloata[][4]={{0},{0}};

D.floata[3][4];floata[3][];

50.設(shè)有以下程序段:intx=0,s=0;whUe(!x!=0)s+=++x;printf("%d",s);則()。

A.運(yùn)行程序段后輸出0B.運(yùn)行程序段后輸出1C.程序段中的控制表達(dá)式是非法的D.程序段執(zhí)行無限次

51.有以下程序:voidsum(int*a){a[0]=a[1];}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;for(i=1;i>0;i--)sum(&aa[i]);print("%d\n",aa[0]);}程序運(yùn)行后的輸出結(jié)果是______。

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

52.第

13

設(shè)有程序段

intk=10;

while(k=0)k=k-1;

則下面描述中正確的是A.while循環(huán)執(zhí)行10次B.循環(huán)是無限循環(huán)C.循環(huán)體語句一次也不執(zhí)行D.循環(huán)體語句執(zhí)行一次

53.下述關(guān)于數(shù)據(jù)庫系統(tǒng)的敘述中正確的是______。

A.數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余

B.數(shù)據(jù)庫系統(tǒng)避免了一切冗余

C.數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的一致性是指數(shù)據(jù)類型的一致

D.數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù)

54.若有以下說明和語句:intc[4][5],(*p)[5];p=e;能夠正確引用c數(shù)組元素的是()。

A.p+1B.*(p+3)C.*(p+1)+3D.*(p[0]+2)

55.算法的時間復(fù)雜度是指______。

A.執(zhí)行算法程序所需要的時間B.算法程序的長度C.算法執(zhí)行過程中所需要的基本運(yùn)算次數(shù)D.算法程序中的指令條數(shù)

56.有以下程序

intadd(inta,intb){return(a+b);}

main()

{intk,(*f)(),a=5,b=10;

f=add;

}

則以下函數(shù)調(diào)用語句錯誤的是A.k=(*f)(a,b);B.k=add(a,b);C.k=*f(a,b);D.k=f(a,b);

57.下列4個關(guān)于C語言的結(jié)論中錯誤的是()。

A.可以用do…while語句實(shí)現(xiàn)的循環(huán)一定可以用while語句實(shí)現(xiàn)

B.可以用for語句實(shí)現(xiàn)的循環(huán)一定可以用while語句實(shí)現(xiàn)

C.可以用while語句實(shí)現(xiàn)的循環(huán)一定可以用for語句實(shí)現(xiàn)

D.do…while語句與while語句的區(qū)別僅是關(guān)鍵字“while”出現(xiàn)的位置不同

58.有如下程序段:inta=14,b=15,x,charc='A';x=(a&&B)&&(c<'B');執(zhí)行該程序段后,x的值為()

A.1B.0C.FALSED.TRUE

59.若有說明:inta[][4]={0,0};則下面不正確的敘述是()。

A.數(shù)組a的每個元素都可得到初值0

B.二維數(shù)組a的第一維大小為1

C.當(dāng)初值的個數(shù)能被第二維的常量表達(dá)式的值除盡時,所得商數(shù)就是第一維的大小

D.只有元素a[0][0]和a[0][1]可得到初值,其余元素均得不到確定的初值

60.下列定義不正確的有______。

A.#definePI3.141592

B.#defineS345;

C.intmax(x,y);intx,y;{}

D.intmax(int,int);

四、選擇題(20題)61.

62.有以下程序程序運(yùn)行后的輸出結(jié)果是()。

A.8B.4C.6D.2

63.以下選項(xiàng)中可用做C程序合法實(shí)數(shù)的是()。

A..leOB.3.0e0.2C.E9D.9.12E

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

A.用戶所定義的標(biāo)識符允許使用關(guān)鍵字

B.用戶所定義的標(biāo)識符應(yīng)盡量做到“見名識意”

C.用戶所定義的標(biāo)識符中,大、小寫字母代表不同標(biāo)識

D.用戶所定義的標(biāo)識符必須以字母或下劃線開頭

65.有以下程序:

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

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

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

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

67.有以下程序

68.

69.已定義以下函數(shù):

fun函數(shù)的返回值是()。

A.一個整數(shù)B.不確定的值C.形參P中存放的值D.形參P的地址值

70.結(jié)構(gòu)化程序設(shè)計(jì)的基本原則不包括A.多態(tài)性B.自頂向下C.模塊化D.逐步求精

71.HTTP協(xié)議的內(nèi)容協(xié)商消息頭包括()。

i.內(nèi)容協(xié)商消息頭ii.緩存控制消息頭

iii.條件控制消息頭iv.服務(wù)器狀態(tài)消息頭

A.i和iiB.i、ii和iiiC.ii和iiiD.iii和iv

72.

73.有以下程序:

#include<stdi0.h>

#include<string.h>

structA

{inta;charb[10];doubleC;);

voidf(structAt);

main()

{structAa={"1001,"ZhangDa",l098,0};

f(a);printf("%d,%S,%6.1f\n",a.a(chǎn),a.b,a.c);}

voidf(structAt)

{t.a(chǎn)=1002;strcpy(t.b,"ChangRon9");t.c=1202.0;}

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

A.1001,ZhangDa,1098.0

B.1002,ChangRong,1202.0

C.1001,ChangRong,1098.0

D.1002,ZhangDa,1202.0

74.有以下程序:

voidmain()

{inta=1,b;

for(b=1;b<1;b++)

{if(a>=8)break;

if(a%2==1){a+5;continue;}

a-=3;

}

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

}

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

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

75.

76.若程序中有以下說明和定義。

structabc

{

intx;chary;

}

structabcs1,s2;

則會發(fā)生的情況是

A.編譯時出錯B.程序?qū)㈨樞蚓幾g、連接、執(zhí)行

C.能順序通過編譯、連接,但不能執(zhí)行D.能順序通過編譯,但連接出錯

77.if語句基本形式是:if(表達(dá)式)語句,以下關(guān)于“表達(dá)式”值的敘述中正確的是()。

A.必須是邏輯值B.必須是整數(shù)值C.必須是正數(shù)D.可以是任意合法的數(shù)值

78.軟件需求規(guī)格說明書的作用不包括()。

A.軟件設(shè)計(jì)的依據(jù)B.軟件可行性研究的依據(jù)C.軟件驗(yàn)收的依據(jù)D.用戶與開發(fā)人員對軟件要做什么的共同理解

79.下列語句組中,正確的是()。

80.有以下程序函數(shù)fun只對下標(biāo)為偶數(shù)的元素進(jìn)行操作.:

程序運(yùn)行后的輸出結(jié)果是()。A.A.7,2,5,4,3,6,1,

B.1,6,3,4,5,2,7,

C.7,6,5,4,3,2,1,

D.1,7,3,5,6,2,1,

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc的功能是計(jì)算正整數(shù)m

各位上數(shù)字的平方和。例如,輸入498,則輸出應(yīng)該是161。請修改程序中的錯誤,使它能得到正確結(jié)果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdlib.h>#include<stdio.h>#include<conio.h>longproc(10ngm){//****found****longsum=1;do{sum+=(m%10)*(m%10);m/=l0;//****found****}while(m)return(sum);}voidmain{longn;system("CLS");printf("Pleaseenteranumber:");scanf("%1d",&n);printf("\n%ld\n",proc(n));}

六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),該函數(shù)的功能是判斷字符串是否為回文,若是,則函數(shù)返回1,在主函數(shù)中輸出“YES”,否則返回0,在主函數(shù)中輸出“NO”?;匚淖址侵疙樧x和倒讀都一樣的字符串。例如,字符串LEVEL是回文,而字符串123312就不是回文。注意:部分源程序在文件prog1.c中。第3部分無紙化考武題庠請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:1#include2#defineN803intfun(char*str)4{56}7main()8{9chars[n];10FILE*out;11char*test[]={"1234321","123421","123321","abcdCBA"};12inti;13printf("Enterastring:");14gets(s);15printf("\n\n");16puts(s);17if(fun(s))18printf("YES\n");19else20printf("NO\n");21/******************/22out=fopen("out.dat","w");23for(i=0;i<4/i++)24if(fun(test[i]))25fprintf(out,"YES\n");26else27fprintf(out,"NO\n");28fclose(out);29/******************/30}

參考答案

1.B在Internet中,把域名翻譯為IP地址的軟件稱為域名系統(tǒng)DNS,運(yùn)行域名系統(tǒng)的主機(jī)稱為域名服務(wù)器。域名服務(wù)器的主要功能是實(shí)現(xiàn)入網(wǎng)主機(jī)名字和IP地址的轉(zhuǎn)換。

2.B對于關(guān)系模式,若其中的每個屬性都已不能再分為簡單項(xiàng),則它屬于第一范式模式。題目中“班級”關(guān)系的“班級學(xué)生”屬性,還可以進(jìn)行再分,如學(xué)號、姓名、性別、出生日期等,因此不滿足第一范式。本題答案為B選項(xiàng)。

3.A

4.B

\n本題考查結(jié)構(gòu)體指針變量的賦值方法,要把結(jié)點(diǎn)b連接到結(jié)點(diǎn);l的后面,必須把b的地址給a的next指針。故8正確。

\n

5.B

6.AC語言規(guī)定,標(biāo)識符是由字母、數(shù)字或下劃線組成,并且它的第一個字符必須是字母或下劃線。

7.D

8.C解析:本題考查ifelse語句。第一個if語句,先判斷條件,發(fā)現(xiàn)a<b條件成立,執(zhí)行下列的語句;第二個if語句,先判斷條件,發(fā)現(xiàn)b<0條件不成立,則執(zhí)行與其配對的else語句,c+=1,得c=5。

9.A代數(shù)式“”的結(jié)果為小數(shù),轉(zhuǎn)為C語言的表達(dá)式必須是浮點(diǎn)數(shù)。A選項(xiàng)由于1.0為浮點(diǎn)數(shù),計(jì)算結(jié)果自動轉(zhuǎn)換為浮點(diǎn)數(shù)。選項(xiàng)B、C、D的表達(dá)式均為0,因此只有選項(xiàng)A正確。故本題答案為A選項(xiàng)。

10.Aint*p[3]含義是定義一個指針數(shù)組p,數(shù)組中包含3個元素,每個元素都是int*類型的指針。本題答案為A選項(xiàng)。

11.C解析:程序首先定義了兩個文件類型的指針fp1、fp2。為讀打開文件filel,并讓指針fp1指向該文件;為寫打開文件file2,并讓指針fp2指向該文件。循環(huán)執(zhí)行從文件file1中讀取一個字符,輸出到文件file2中,直到文件file1結(jié)束。因此程序的功能是將文件file1中的內(nèi)容復(fù)制到文件file2中。

12.A分塊查找是折半查找和順序查找的一種改進(jìn)方法,分塊查找要求索引表是有序的,對塊內(nèi)節(jié)點(diǎn)沒有排序要求,因此查找較快,且插入和刪除操作也比較方便。

13.C

14.A解析:本題考查了函數(shù)的遞歸調(diào)用。在f函數(shù)中,當(dāng)m=7時,程序執(zhí)行“f(--n,&r1);”語句,遞歸調(diào)用f(6,&r1),程序執(zhí)行“r1=n/3;”語句,即r1=\u30006/3=2,然后執(zhí)行“*r=r1;”語句,所以輸出結(jié)果為2。

15.D本題考查if-else語句的使用。if-else語句可以在條件為“真”或?yàn)椤凹佟睍r執(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。

16.A算法的時間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量,其計(jì)算工作量是用算法所執(zhí)行的基本運(yùn)算次數(shù)來度量的。本題答案為A選項(xiàng)。

17.A

18.Afgets函數(shù)的功能是從fp所指文件中讀入n-1個字符放入以str為起始地址的空間內(nèi),讀取長度不超過n-1,讀入結(jié)束后,自動在最后添加’\\0’,選項(xiàng)A正確。本題答案為A選項(xiàng)。

19.B解析:軟件生命周期由軟件定義、軟件開發(fā)和軟件維護(hù)三個階段組成。軟件定義可分為軟件系統(tǒng)的可行性研究和需求分析兩個階段。軟件開發(fā)階段由5個階段組成:概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編寫代碼、組裝測試和確認(rèn)測試。軟件維護(hù)時期的主要任務(wù)是使軟件持久地滿足用戶的需要。選項(xiàng)B正確。

20.B

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

22.77解析:此表達(dá)式為三目運(yùn)算符,++a的值為6,b--的值為6,則整個表達(dá)式的值為++a的值,++a的值為7。請注意前綴++,--和后綴++,--的區(qū)別。

23.structst或exstructst或ex解析:結(jié)構(gòu)體類型數(shù)據(jù),其數(shù)據(jù)成員各自占據(jù)不同的存儲空間,整個結(jié)構(gòu)體變量所占存儲單元的字節(jié)數(shù)為每一個數(shù)據(jù)成員所占的存儲空間的和。注意:共用體變量所占存儲單元字節(jié)數(shù)的計(jì)算。

24.yesyes解析:if語句的條件語句為c=a+b=1+3=4,即條件為真,執(zhí)行語句printf('yes\\n');,輸出結(jié)果為yes。

25.0

26.!=returnj!=\r\nreturnj解析:本題程序的流程是:讓i,j都從1開始其中j用于控制刪除后剩下的數(shù)中的下標(biāo),i用于搜索原數(shù)組中的元素。j始終是新數(shù)組已有元素中最后一個元素的下一個元素的下標(biāo),所以if()中的條件是a[j-1)!=a[i],其中a[j-1]就是新數(shù)組中的最后一個元素,若條件成立則表示出現(xiàn)了不同的值,所以a[i]要留下到新數(shù)組中。注本題中i,j的初值都要從1開始。該算法只能用于數(shù)組已排序的題目中。

27.11解析:字符空格的ASCII碼不為0,所以本題中表達(dá)式\ue008!c\ue009的值為0,b=0&&1的結(jié)果顯然為0。

28.gae

29.66解析:strlen()函數(shù)的作用是計(jì)算字符串的長度并作為函數(shù)的返回值,這里的長度不包括串尾的結(jié)束標(biāo)志\'\\0\'。

\'\\t\'是轉(zhuǎn)義字符,代表橫向跳若干格:\'\\\''是轉(zhuǎn)義字符,代表雙引號:\'\\023\'只代表一個字符,而不管轉(zhuǎn)義字符后面有幾個字符;\'\\xAB\'是以兩位十六進(jìn)制數(shù)AB表示的ASCII碼字符,只代表一個字符;\'\\n\'是轉(zhuǎn)義字符,代表回車換行。

5個字符常量各代表一個字符,再加上字母C,所以返回的長度是6。

30.goodmorninggoodmorning解析:子函數(shù)fun(chars[])的作用是將字符數(shù)組s中除去字母以外的所有其他字符都去掉,然后將字母仍按原來的順序存在數(shù)組s中。在主函數(shù)中調(diào)用fun(ss),是將“goodmorning”中所有的非字母去掉,在這里就是去掉空格,然后輸出ss。

31.<y+1z*x

32.1020

33.程序正確性程序正確性

34.a=2b=3a=2,b=3解析:分析程序,程序從x=1語句開始執(zhí)行,之后執(zhí)行第一個switch語句,switch(x)=switch(1),所以執(zhí)行case1,case1語句中包含一個復(fù)合switch語句:這時執(zhí)行第二個switch語句,此時y=1,所以switch(y)=switch(1),因此執(zhí)行case1,將b加1,得到b=2,遇到break語句,退出第二個switch語句,則整個case1的復(fù)合語句執(zhí)行完畢,由于在這個case1的后面沒有break語句使其退出第一個switch語句,所以接著執(zhí)行下列的case2后面的語句,即將a,b各加1,得到a=2,b=3。

35.n/2性表的任何位置插入一個元素的概率相等,即概率為p=1/(n+1),則插入一個元素時所需移動元素的平均次數(shù)為E=1/(n+1)(n-i+1)=n/2。

36.x<ar[i][j]x<ar[i][j]解析:本題考查的是循環(huán)的嵌套。本題定義了二維數(shù)組a,存放3行4列的數(shù)組元素,定義了,一維數(shù)組b用于存放每行的最大數(shù)。存函數(shù)fun中,通過二重for循環(huán)求每行的最大數(shù),外層for循環(huán)用于控制行數(shù),內(nèi)層for循環(huán)用于控制列數(shù)。當(dāng)外層循環(huán)執(zhí)行一次時,內(nèi)層循環(huán)則執(zhí)行4次,并求出了這一行的最大值x,最后將每一行求出最大值x賦值給存放最大值的數(shù)組br,故本題答案為x<ar[i][j]。

37.1616解析:滿二叉樹的葉子結(jié)點(diǎn)都在最后一層,即第4層,且第4層的結(jié)點(diǎn)達(dá)到最大數(shù),即25-1=16。

38.ACEACE解析:在本題中,for循環(huán)體每執(zhí)行完一次,變量i的值自加兩次。i的初值為“a”,執(zhí)行一次循環(huán)后變?yōu)椤癱”,之后再變成“e”,當(dāng)其變?yōu)椤癵”時,循環(huán)條件若不滿足,循環(huán)終止,故本題共輸出3個字符。表達(dá)式“i-'a'+'A'”即表示輸出i對應(yīng)的大寫字母,結(jié)果為ACE。

39.6363解析:滿二叉樹的第k層上有2k-1個結(jié)點(diǎn),度為k的滿二叉樹一共有2k-1個結(jié)點(diǎn),由二叉樹的性質(zhì)可知:除去第k層上的結(jié)點(diǎn),其他所有結(jié)點(diǎn)都是度為2的結(jié)點(diǎn),所以度為2的結(jié)點(diǎn)數(shù)為2k-1-2k-1,即27-1-27-1=63。

40.33解析:本題考查do…while語句形式:

do循環(huán)體

while表達(dá)式

首先執(zhí)行循環(huán)體語句,然后檢測循環(huán)控制條件表達(dá)式的值,若為真,則重復(fù)執(zhí)行循環(huán)體語句,否則退出循環(huán)。第1次循環(huán):b+=2,b=2,a-=2+b,a=11;第2次循環(huán):b=4,a=5;第3次循環(huán):b=6,a=-3,此時再判斷循環(huán)條件不滿足,退出循環(huán)。

41.D解析:本題中首先定義一個字符數(shù)組s,并將字符串'ABCD'存到數(shù)組s中,定義了一個字符指針變量p,在接下來for循環(huán)中,循環(huán)體共執(zhí)行了三次,第一次p指向s[1],所以此時輸出的p所指字符串的值為BCD,第二次循環(huán)p指向s[2],此時輸出p所指的字符串的值為CD,第三次循環(huán)p指向s[3],此時輸出的p所指的字符串的值為D。所以,4個選項(xiàng)中選項(xiàng)D符合題意。

42.AA。【解析】C語言是函數(shù)式的語言。它的基本組成單位是函數(shù),在C語言中任何程序都是由一個或者多個函數(shù)組成的。

43.C解析:在n個結(jié)點(diǎn)的單向鏈表(無表頭結(jié)點(diǎn))中,每個結(jié)點(diǎn)都有一個指針單元(即指針域),加上頭指針,至少需要n+1個指針單元。

44.A解析:模式設(shè)計(jì)和內(nèi)模式設(shè)計(jì)是概念設(shè)計(jì)的兩種方法。物理設(shè)計(jì)是根據(jù)特定的計(jì)算機(jī)系統(tǒng),對數(shù)據(jù)的存儲結(jié)構(gòu)和存取方法進(jìn)行設(shè)計(jì),從而實(shí)現(xiàn)從邏輯結(jié)構(gòu)到物理結(jié)構(gòu)的轉(zhuǎn)換。從系統(tǒng)開發(fā)的角度來看,結(jié)構(gòu)特性設(shè)計(jì)和行為特性-設(shè)計(jì)是數(shù)據(jù)庫應(yīng)用系統(tǒng)所具有的兩個特性。結(jié)構(gòu)特性的設(shè)計(jì),設(shè)計(jì)各級數(shù)據(jù)庫模式(靜態(tài)特性):行為特性的設(shè)計(jì),改變實(shí)體及其特性,決定數(shù)據(jù)庫系統(tǒng)的功能(動態(tài)特性)。

45.B解析:p本身就是一個字符型指針變量,返回p也就是返回變量p中存放的地址值。

46.A

47.A

48.A解析:本題考查函數(shù)調(diào)用時的參數(shù)傳遞。通過函數(shù)abc的執(zhí)行,將字符串中的字母a去掉,保留剩下的。由于是通過指針調(diào)用,所以改變字符串的結(jié)果。

49.C

50.B解析:本題中,邏輯非“!”運(yùn)算符比不等于“!=”運(yùn)算符優(yōu)先級高,因此第一次循環(huán)時!x!=0的運(yùn)算結(jié)果為真,s的運(yùn)算結(jié)果為1;第二次循環(huán)時!x!=0的運(yùn)算結(jié)果為假,循環(huán)結(jié)束,輸出s的結(jié)果為1。

51.D解析:C語言覿定,實(shí)參變量對形參變量的數(shù)據(jù)傳遞是“值傳遞”,只由實(shí)參傳給形參,而不能由形參傳回來給實(shí)參。函數(shù)調(diào)用結(jié)束后,形參單元被釋放,實(shí)參單元仍保留并維持原值。本題要求輸出aa[0]的值,結(jié)果應(yīng)為1。

52.C本題中,首先將0賦給k,表達(dá)式變?yōu)?,跳出循環(huán),沒有執(zhí)行循環(huán)體語句。解答本題的關(guān)鍵是掌握while語句。

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

54.D解析:(*p)[5]中p是一個行指針,指向一個包含5個元素的一維數(shù)組,p的值是該一維數(shù)組的首地址。當(dāng)用行指針訪問二維數(shù)組時,行指針每增加1,表示指針指向二維數(shù)組的下一行,此題中的p+i將指向數(shù)組的第i行。選項(xiàng)A)的意思是指向數(shù)組c的第1行,不是引用c數(shù)組的元素;選項(xiàng)B)中p+3是指向數(shù)組元素的第3行,。(P+3)是指第3行第0個元素的地址;選項(xiàng)C)可由對選項(xiàng)A)、選項(xiàng)B)的解釋知,它指的是第1行第3列元素的地址;選項(xiàng)D)中p[0]+2是指第0行第2列元素的地址,再加個*就表示第0行第2列的元素,即c[0][2]。

55.C解析:算法的時間復(fù)雜度實(shí)際上就是執(zhí)行算法程序所需要的計(jì)算工作量。為了客觀地反映算法性能,在度量算法的時間復(fù)雜度時,應(yīng)該與編寫算法程序所使用的程序設(shè)計(jì)語言、執(zhí)行算法程序時所使用的計(jì)算的工具以及程序員的水平無關(guān)。選項(xiàng)A錯誤,因?yàn)橥凰惴ǔ绦蛟谶\(yùn)行速度不同的計(jì)算機(jī)上運(yùn)行時,其計(jì)算時間是不同的。選項(xiàng)B錯誤,因?yàn)樗惴ㄋ帉懙某绦蜷L度往往與程序設(shè)計(jì)語言以及程序員的水平有關(guān),同一個算法,用不同的程序設(shè)計(jì)語言或者不同的程序員所編寫出的程序其長度可能會大不相同。選項(xiàng)D錯誤,因?yàn)楦鶕?jù)一個算法所編制出的程序之中,其指令條數(shù)往往與程序設(shè)計(jì)語言以及程序員的水平有關(guān),不能用算法程序中的指令條數(shù)來度量算法的時間復(fù)雜度。所以,本題正確答案為C。

56.C答案C

解析:在語句“k=*f(a,b)”中,由于“()”的優(yōu)先級高于“*”,所以“*f(a,b);”表示其返回類型為指針的帶有兩個整型參數(shù)的函數(shù)。

57.D解析:本題考查幾個循環(huán)語句的關(guān)系。①do…while語句、while語句、for語句所實(shí)現(xiàn)的循環(huán)可以相互替代;②do…while語句和while語句的區(qū)別是do…while語句至少執(zhí)行一次。

58.A解析:a=14,b=15,第一個&&兩側(cè)均為非零值。c='A',表達(dá)式c<'B'的值為真即1,第二個&&兩側(cè)也均為非零值。表達(dá)式(a&&b)&&(c<'B')的值為1,賦值給變量x。

59.D解析:本題考查二維數(shù)組的基本概念。對于二維數(shù)組,只可以省略第一個括號中的常量表達(dá)式,而不能省略第二個括號中的常量表達(dá)式。數(shù)組中未賦初值的元素系統(tǒng)會自動對它們賦初值0。

60.C解析:定義函數(shù)時,函數(shù)頭后不能加分號。

61.D

62.Aa左移2位后值為8,所以答案選擇A)。

63.AC語言中實(shí)數(shù)的指數(shù)計(jì)數(shù)表示格式為字母e或者E之前必須有數(shù)字,且e或E后面的指數(shù)必須為整數(shù)。所以選項(xiàng)A正確。

64.Ac語言規(guī)定標(biāo)識符只能由字母、數(shù)字和下劃線3種字符組成,且第一個字符必須為字母或下劃線,排除D);用戶定義標(biāo)識符中大小寫字母之間是有區(qū)別的并且應(yīng)盡量做到”見名識意”,排除選項(xiàng)B)和c);C語言中還規(guī)定標(biāo)識符不能為c語言的關(guān)鍵字,故選項(xiàng)A)敘述錯誤,正確答案是選項(xiàng)A)。

65.A首先打印b=a+b=1+0=1的值l,此時已給b賦值為1。然后打印a=2}b=2{1=2的值2。所以結(jié)果是1,2。

66.A本題考查數(shù)據(jù)庫中的數(shù)據(jù)管理技術(shù)相關(guān)知識。

數(shù)據(jù)管理技術(shù)的發(fā)展大體可以歸為三個階段:人工管理、文件系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng)。

人工管理階段:計(jì)算機(jī)主要用于科學(xué)計(jì)算。外部存儲器只有磁帶、卡片和紙帶等還沒有磁盤等直接存取存儲設(shè)備。軟件只有匯編語言,尚無數(shù)據(jù)管理方面的軟件。數(shù)據(jù)處理方式基本是批處理。這個階段有幾個特點(diǎn):數(shù)據(jù)不保存;應(yīng)用程序中包含自己要用到的全部數(shù)據(jù);數(shù)據(jù)不共享;數(shù)據(jù)不具有獨(dú)立性。

文件系統(tǒng)階段:計(jì)算機(jī)不僅用于科學(xué)計(jì)算,還用在信息管理方面。隨著數(shù)據(jù)量的增加,數(shù)據(jù)的存儲、檢索和維護(hù)問題成為緊迫的需要,數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)管理技術(shù)迅速發(fā)展起來。此時,外部存儲器已有磁盤、磁鼓等直接存取的存儲設(shè)備。軟件領(lǐng)域出現(xiàn)了操作系統(tǒng)和高級軟件。操作系統(tǒng)中的文件系統(tǒng)是專門管理外存的數(shù)據(jù)管理軟件,文件是操作系統(tǒng)管理的重要資源之一。數(shù)據(jù)處理方式有批處理,也有聯(lián)機(jī)實(shí)時處理。在文件系統(tǒng)支持下,數(shù)據(jù)開始從程序中逐步獨(dú)立出來,數(shù)據(jù)文件可以獨(dú)立、長期地存儲,數(shù)據(jù)的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)有了一定的區(qū)別。數(shù)據(jù)的邏輯結(jié)構(gòu)是指呈現(xiàn)在用戶面前的數(shù)據(jù)結(jié)構(gòu)形式。數(shù)據(jù)的物理結(jié)構(gòu)是指數(shù)據(jù)在計(jì)算機(jī)存儲設(shè)備上的實(shí)際存儲結(jié)構(gòu)。文件系統(tǒng)對計(jì)算機(jī)數(shù)據(jù)管理能力的提高雖然起了很大的作用,但是仍然存在許多根本性問題。主要表現(xiàn)在:數(shù)據(jù)文件是為滿足特定業(yè)務(wù)領(lǐng)域某一部門的專門需要而設(shè)計(jì),數(shù)據(jù)和程序相互依賴,數(shù)據(jù)缺乏足夠的獨(dú)立性;數(shù)據(jù)沒有集中管理的機(jī)制,其安全性和完整性

溫馨提示

  • 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

提交評論