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

下載本文檔

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

文檔簡介

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

一、單選題(20題)1.在單鏈表指針為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;

2.

3.數(shù)據(jù)庫DB、數(shù)據(jù)庫系統(tǒng)DBS、數(shù)據(jù)庫管理系統(tǒng)DBMS之間的關(guān)系是()。

A.DB包含DBS和DBMSB.DBMS包含DB和DBSC.DBS包含DB和DBMSD.沒有任何關(guān)系

4.有以下程序voidf(int*x,int*y){intt;t=*x;*x=*y;*y=t;}main(){inta[8]={1,2,3,4,5,6,7,8},i,*p,*q;p=a;q=&a[7];while(p<q){f(p,q);p++;q--;}for(i=0;i<8;i++)printf("%d,",a[i]);}程序運行后的輸出結(jié)果是

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

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

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

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

5.

6.數(shù)據(jù)結(jié)構(gòu)中,在邏輯上可以把數(shù)據(jù)結(jié)構(gòu)分成()。

A.動態(tài)結(jié)構(gòu)和靜態(tài)結(jié)構(gòu)B.緊湊結(jié)構(gòu)和非緊湊結(jié)構(gòu)C.線性結(jié)構(gòu)和非線性結(jié)構(gòu)D.內(nèi)部結(jié)構(gòu)和外部結(jié)構(gòu)

7.有以下程序: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í)行后輸出結(jié)果是()。

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

8.設(shè)有以下程序段:structbook{floatprice;charlanguage;chartitle[20];}rec,*ptr;ptr=&rec;要求輸入字符串給結(jié)構(gòu)體變量rec的title成員,錯誤的輸入語句是()。

A.scanf(“%s”,ptr.title);

B.scanf(“%s”,rec.title);

C.scanf(“%s”,(*ptr).title);

D.scanf(“%s”,ptr->title);

9.若i、j已定義成mt型,則下列程序段中內(nèi)循環(huán)體的總執(zhí)行次數(shù)是()。for(i=6;i>0;i--)for(j=0;j<4;j++){…}A.20B.24C.25D.30

10.當(dāng)一個函數(shù)無返回值時,定義它的函數(shù)類型應(yīng)是()。

A.voidB.intC.任意D.無

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

A.對于double類型數(shù)組,不可以直接用數(shù)組名對數(shù)組進(jìn)行整體輸入或輸出

B.數(shù)組名代表的是數(shù)組所占存儲區(qū)的首地址,其值不可改變

C.當(dāng)程序執(zhí)行中,數(shù)組元素的下標(biāo)超出所定義的下標(biāo)范圍時,系統(tǒng)將給出“下標(biāo)越界”的出錯信息

D.可以通過賦初值的方式確定數(shù)組元素的個數(shù)

12.在一個C語言源程序文件中所定義的全局變量,其作用域為()。

A.所在文件的全部范圍B.所在程序的全部范圍C.所在函數(shù)的全部范圍D.由具體定義位置和extern說明來決定范圍

13.有以下程序:

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

A.abc+abc=defdef

B.abc+ABC=DEFdef

C.abcABCDEFdef

D.abcabcdefdef

14.使用堆排序方法排序(45,78,57,25,41,89),初始堆序列()

A.78,45,57,25,41,89

B.89,78,57,25,41,45

C.89,78,25,45,41,57

D.89,45,78,41,57,25

15.

有以下結(jié)構(gòu)體說明和變量的定義,且指針P指向變量a,指針q指向變量b,則不能把結(jié)點b連接到結(jié)點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;

16.設(shè)有以下函數(shù)f(inta){intb=0;staticintc=3;b++;c++;return(a+b+c);}如果在下面的程序中調(diào)用該函數(shù),則輸出結(jié)果是______。main(){inta=2,i;for(i=0;i<3;i++)printf("%d\n"f(a));}

A.789B.7911C.71013D.777

17.

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

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

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

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

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

19.若已知一個棧的入棧序列是1,2,3,......,n,其輸出序列為p1,p2,p3,..,pn,若p1=n-1,則pi可能為()

A.nB.n-iC.n-i+1D.不確定

20.下面程序的運行結(jié)果是()。

#inelude<stdio.h>

voiddel(char*s)

{inti,j;

char*a;

a=s:

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

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

{s[j]=a[i];

j++;

}

s[j]='\0';

}

}

main

{char*s="aa89gggh";

del(s):

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

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

二、2.填空題(20題)21.以下程序把從終端讀入的20個整數(shù)以二進(jìn)制方式寫到一個名為d.dat的新文件中,請?zhí)羁铡?/p>

#include<stdio.h>

FILE*fp;

main()

{inti,j;

if((fp=fopen(【】,"wb"))==NULL)exit(0);

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

{scanf("%d",&j);fwrite(&j,sizeof(int),1,【】);}

fclose(fp);

}

22.設(shè)在主函數(shù)中有以下定義和函數(shù)調(diào)用語句,且fun函數(shù)為void類型;請寫出fun函數(shù)的首部【】(要求形參名為b)。main(){doubles[10][22];intn;……fun(s);……}

23.執(zhí)行下列程序的輸出結(jié)果是【】。

main()

{

floata=1,b;

b=++a*++a;

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

}

24.以下程序統(tǒng)計從終端輸入的字符中大寫字母的個數(shù)。用#號作為輸入結(jié)束標(biāo)志,請?zhí)羁铡?include<stdio.h>#include<ctype.h>main(){intnum[26],i;charc;for(i=0;i<26;i++)num[i]=0;();while(c!='#'}{if(isupperC)num[c-65]+=1;}for(i=0;i<26;i++)if(num[i])printf("%c,%d\n",i+65,num[i]);}

25.下列程序段是從鍵盤輸入的字符中統(tǒng)計小寫字母的個數(shù),用換行符結(jié)束循環(huán)。請?zhí)羁铡?/p>

intn=0,c;

c=getchar();

while(c!='\n')

{if(______)

n++;

}

26.下面程序的運行結(jié)果是______。

#include<stdio.h>

main()

{inty,a;

y=2,a=1;

while(y--!=-1)

{do{a*=y;a++;}while(y--);}

printf("%d,%d",a,y);}

27.下面程序有兩個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("%x\",p+9);

}

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

#include<stdio.h>

main()

{inta,b,c;

a=3;b=4;c=5;

if(a>b)

if(a>c)

printf("%d",a);

elseprintf("%d",b);

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

}

29.在關(guān)系模型中,把數(shù)據(jù)看成一個二維表,每一個二維表稱為一個______。

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

31.測試的目的是暴露錯誤,評價程序的可靠性;而______的目的是發(fā)現(xiàn)錯誤的位置并改正錯誤。

32.以下函數(shù)把b字符串連接到a字符串的后面,并返回a中新字符串的長度。請?zhí)羁铡?/p>

strcen(chara[],charb[])

{intnum=0,n=0;

while(*(a+num)!=【】)num++;

while(b[n]){*(a+num)=b[n];num++;【】;}

return(num);

}

33.#define命令出現(xiàn)在程序中函數(shù)的外面,宏名的有效范圍為______。

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

intm=17;

intfun(intx,inty)

{intm=3;

return(x*Y-m);

}

main()

{inta=5,b=7;

printf("%d\n",fun(a,B)/m);

}

35.下面的程序可列指定字符串中的字符串進(jìn)行從大到小排序,請將程序填完整。(注:程序采用了冒泡排序算法)

#include<stdio.h>

#include<string.h>

main()

{char*str="ABCDabcd",temp;

intn,i;

n=strlen(str);

while(n->1)

for(i=0;i<n;i++

if(str[i]<str[i+1])

{temp=【】;

str[i]=str[i+1];

【】=temp;

}

printf(【】);

}

36.在最壞情況下,冒泡排序的時間復(fù)雜度為【】。

37.軟件工程研究的內(nèi)容主要包括:【】技術(shù)和軟件工程管理。

38.診斷和改正程序中錯誤的工作通常稱為【】。

39.在內(nèi)存中,存儲字符'x'要占用1個字節(jié),存儲字符串"x"要占用【】個字節(jié)。

40.在數(shù)據(jù)庫系統(tǒng)中,實現(xiàn)各種數(shù)據(jù)管理功能的核心軟件稱為【】。

三、1.選擇題(20題)41.下列關(guān)于線性鏈表的描述中正確的是()。

A.存儲空間不一定連續(xù),且各元素的存儲順序是任意的

B.存儲空間不一定連續(xù),且前件元素一定存儲在后件元素的前面

C.存儲空間必須連續(xù),且各前件元素一定存儲在后件元素的前面

D.存儲空間必須連續(xù),且各元素的存儲順序是任意的

42.有以下程序main(){intk=5,n=0;while(k>0){switch(k){default:break;case1:n+=k;case2:case3:n+=k;}k--;}printf("%d\n",n);程序運行后的輸出結(jié)果是

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

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

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

44.樹是結(jié)點的集合,它的根結(jié)點數(shù)目是()。

A.有且只有1B.1或多于1C.0或1D.至少2

45.設(shè)fp為指向某二進(jìn)制文件的指針,且已讀到此文件末尾,則函數(shù)feof(fp)的返回值為______。A.EOFB.非0值C.0D.NULL

46.定義如下變量和數(shù)組:

inti;

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

則下面語句的輸出結(jié)果是()。

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

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

A.159B.147C.357D.369

47.下列敘述中,不屬于軟件需求規(guī)格說明書的作用的是()

A.便于用戶,開發(fā)人員進(jìn)行理解和交流

B.反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù)

C.作為確認(rèn)測試和驗收的依據(jù)

D.便于開發(fā)人員進(jìn)行需求分析

48.程序中對fun()函數(shù)有如下說明void*fun();此說明的含義是______。

A.fun函數(shù)無返回值

B.fun函數(shù)的返回值可以是任意的數(shù)據(jù)類型

C.fun函數(shù)的返回值是無值型的指針類型

D.指針fun指向一個函數(shù),該函數(shù)無返回值

49.fgetc函數(shù)的作用是從指定文件讀入一個個字符,該文件的打開方式必須是______。

A.只讀B.追加C.讀或讀寫D.以上均正確

50.數(shù)據(jù)的獨立性是指______。

A.數(shù)據(jù)庫的數(shù)據(jù)相互獨立

B.DBMS和DB相互獨立

C.用戶應(yīng)用程序與數(shù)據(jù)庫的數(shù)據(jù)相互獨立

D.用戶應(yīng)用程序與DBMS相互獨立

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

main()

{intc=35;printf("%d\n",c&c);}

A.0B.70C.35D.1

52.下列說法錯誤的是

A.函數(shù)調(diào)用時,函數(shù)名必須與所調(diào)用的函數(shù)名字完全相同

B.實參的個數(shù)必須與形式參數(shù)的個數(shù)一致

C.實參可以是表達(dá)式,在類型上必須與形參一一對應(yīng)匹配

D.C語言規(guī)定,函數(shù)必須先定義,后調(diào)用(函數(shù)的返回值類型為int或char時除外)

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

A.程序的執(zhí)行效率與數(shù)據(jù)的存儲結(jié)構(gòu)密切相關(guān)

B.程序的執(zhí)行效率只取決于程序的控制結(jié)構(gòu)

C.程序的執(zhí)行效率只取決于所處理的數(shù)據(jù)量

D.以上三種說法都不對

54.有以下程序段chareh;intk;ch='a';k=12;printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);已知字符a的ASCII碼值為97,則執(zhí)行上述程序段后輸出結(jié)果是

A.因變量類型與格式描述符的類型不匹配輸出無定值

B.輸出項與格式描述符個數(shù)不符,輸出為零值或不定值

C.a,97,12k=12

D.a,97,k=12

55.下面程序段的運行結(jié)果是()。chara[]="abcdefgh";char*p=a;p+=3;printf("%d\n",strlen(strcpy(p,"ABCD")));

A.8B.12C.4D.7

56.下面程序的運行結(jié)果是include<stdio.h>main(){inta=28,b;chars[10],*p;p=s;do{b=a%16;if(b<10)*p=b+48;else*p=b+55;p++;a=a/5;}while(a>0);*p='\0';puts(s);}

A.10B.C2C.C51D.\0

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

58.有下列函數(shù)定義:intfun(doublea,doubleb){returna*b;}若下列選項中所用變量都已正確定義并賦值,錯誤的函數(shù)調(diào)用是()。

A.if(fun(x,y)){……}

B.z=fun(fun(x,y),fun(x,y));

C.z=fun(fun(x,y)x,y);

D.fun(x,y);

59.若有如下定義:structstu{charname[9];intage;floatscore;);structstuclass[10]={{"Li",17,67},{"Song",19,80},{"guo",18,79},{"Zhao",16,69}};根據(jù)上面的定義,若執(zhí)行“printf("%s:%d%f",class[3].name,class[3].age,class[3].score);"則輸出的正確結(jié)果是()。

A.Song:19,80.000000

B.Zhao:16,69.000000

C.Li:17,67Song;19,80

D.guo:18,79Zhao;16,69

60.對于長度為n的線性表,在最壞情況下,下列各排序法所對應(yīng)的比較次數(shù)中正確的是()。

A.冒泡排序為n/2B.冒泡排序為nC.快速排序為nD.快速排序為n(n-1)/2

四、選擇題(20題)61.

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

main()

{inta[3][3]={{1,2},{3,4),{5,6}},i,j,s=0;

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

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

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

}

A.18

B.19

C.20

D.21

63.函數(shù)fseek(pf,OL,SEEKEND)中的SEEKENE代表的起始點是()。

A.文件開始B.文件末尾C.文件當(dāng)前位置D.以上都不對

64.有以下程序:

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

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

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

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

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

65.

66.

67.下列敘述中正確的是()。A.在c程序的函數(shù)中不能定義另一個函數(shù)

B.在c程序中main函數(shù)的位置是固定的

C.C程序中所有函數(shù)之間都可以相互調(diào)用

D.每個C程序文件中都必須要有一個main函數(shù)

68.若有定義:doublea=22;inti=0,k=18;,則不符合c語言規(guī)定的賦值語句是()。A.i=a%ll;B.i=(a+k)《=(i+k);C.a=a++,i++;D.i=!a;

69.為了避免嵌套的條件分支語句if-else的二義性,C語言規(guī)定:C程序中的else總是與()組成配對關(guān)系。

A.縮排位置相同的ifB.在其之前未配對的ifC.在其之前未配對的最近的ifD.同一行上的if

70.

當(dāng)c的值不為0時,在下列選項中不能正確將c的值賦給變量a、b的是()。

A.c=b=a;B.(a=c)C.D.(b=c);E.(a=c)&&(b=c);F.a=c=b;

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

A.xyzabcABCB.zabcABCC.xyabcABCD.yzabcABC

72.

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

A.5,5

B.5,11

C.11,11

D.11,5

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

A.自頂向下

B.由底向上

C.由內(nèi)向外

D.由整體到局部

75.

76.有以下程序段:

當(dāng)執(zhí)行上述程序段,從鍵盤上輸入555667777abc后,y的值為()。A.55566.0B.566.0C.7777.0D.566777.0

77.

78.待排序的關(guān)鍵碼序列為15,20,9,30,67,65,45,90,要按關(guān)鍵碼值遞增的順序排序,采取簡單選擇排序法,第一趟排序后關(guān)鍵碼15被放到第()個位置。

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

79.有以下程序:

#include<stdio.h>

voidmain()

{fILE*fp;inti,a[4]={1,2,3,4},b;

fp=fopen("data.dat","wb");

for(i=0;i<4;i++)fwrite(&a[i],sizeof(int),1,fp);

fclose(fp)

fp=fopen("data.dat","rb");

fseek(fp,-2L*sizeof(int),1,fp);/*文件中讀取sizeof(int)字節(jié)的數(shù)據(jù)到變量b中*/

fclose(fp);

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

}

程序中fseek(fp,-2L*sizeof(int),SEEK_END);語句的作用是()。

A.使位置指針從文件末尾向前移2*sizeof(int)字節(jié)

B.使位置指針從文件末尾向前移2字節(jié)

C.使位置指針向文件末尾向前移懂2*sizeof(int)字節(jié)

D.使位置指針向文件末尾移動2字節(jié)

80.

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:根據(jù)以下公式求π的值,并作為函數(shù)值返回。例如,給指定精度的變量eps輸人0.0001時,應(yīng)當(dāng)輸出Pi=3.141358。π/2=1+t/3+1/3*e/5+1/3*2/5*3/7+1/3*2/5*3/7*4/9……請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:,

六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,編寫函數(shù)fun(),其功能是根據(jù)以下公式計算S,并將計算結(jié)果作為函數(shù)值返回,通過形參傳入。例如,若n的值為11時,函數(shù)的值為1.833333。注意:部分源程序給出如下。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>#include<string.h>floatfun(intn){}voidmain(){ intn; floats; system(“CLS”); printf(“\nPleaseenterN:”); scanf(“%d”,&n); s=fun(n); printf(“Theresultis:%f\n”,s);}

參考答案

1.B

2.C

3.C(10)C)解析:DB即數(shù)據(jù)庫(Database),是統(tǒng)一管理的相關(guān)數(shù)據(jù)的集合;DBMS即數(shù)據(jù)庫管理系統(tǒng)(DatabaseManagementSystem),是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件,為用戶或應(yīng)用程序提供訪問DB的方法;DBS即數(shù)據(jù)庫系統(tǒng)(DatabaseSystem)由如下5部分組成,數(shù)據(jù)庫(數(shù)據(jù))、數(shù)據(jù)庫管理系統(tǒng)(軟件)、數(shù)據(jù)庫管理員(人員)、系統(tǒng)平臺之一——硬件平臺(硬件)、系統(tǒng)平臺之二——軟件平臺(軟件)。

4.D解析:本題考查循環(huán)和指針做函數(shù)參數(shù),程序的功能是將a[0]和a[7]對換,a[1]和a[6]對換,a[2]和a[5]對換,a[3]和a[4]對換,最后輸出。

5.D

6.C

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

8.A運算符“->”適用指針訪問成員變量,運算符“.”適用普通變量訪問成員變量。ptr是指針,只能用“->”,因此選項A錯誤。選項B中,rec.title代表數(shù)組title,選項B正確,同理選項C正確?!?ptr”是結(jié)構(gòu)體變量rec,可以使用運算,因此選項D正確。故本題答案為A選項。

9.B本題考查for循環(huán)的使用。對于第1個for循環(huán),任何一個i,內(nèi)層j的循環(huán)都要使j~0到3,j=4時不符合,所以退出j循環(huán);然后i減1,J仍然要從0~3,j=4時退出J循環(huán)直到i變成0,退出i循環(huán)。第一條for語句執(zhí)行6次,第二條for語句執(zhí)行4次,所以內(nèi)循環(huán)體執(zhí)行6*4=24次。

10.A

11.C解析:在C語言中,除字符數(shù)組外,一個數(shù)組不能通過數(shù)組名對數(shù)姐進(jìn)行整體引用,因此選項A是對的。數(shù)組名中存放的是一個地址常量,它代表整個數(shù)組的首地址,因此選項B是對的。C語言程序在運行過程中,系統(tǒng)不自動檢驗數(shù)組元素的下標(biāo)是否越界,因此選項C是錯誤的。C語官規(guī)定可以通過賦初值來定義數(shù)組的大小,這時數(shù)組說明符的一對方括號中可以不指定數(shù)組的大小,因此選項D也是正確的。所以,4個選項中選項C符合題意。

12.D

\n全局變量是在函數(shù)外部任意位置上定義的變量,它的作用域是從變量定義的位置開始,到整個源文件結(jié)束止。當(dāng)全局變量定義在后,引用它的函數(shù)在前時,應(yīng)該在引用它的函數(shù)中用extern對此全局變量進(jìn)行說明,以便通知編譯程序該變量是一個已在外部定義了的全局變量,這時全局變量的作用域從extern說明處起,延伸到該函數(shù)末尾。

\n

13.A題干中,函數(shù)fun的功能是:判斷形參ch是否為大寫字母,若是大寫字母則改寫成小寫字母,其他字符不變。main函數(shù)中,通過while循環(huán),調(diào)用fun函數(shù),將字符數(shù)組s中的各個字符傳入,將s中的大寫字母改成小寫字母,程序輸出:abc+abc=defdef。本題答案為A選項。

14.B

15.B

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

\n

16.A解析:本題考查靜態(tài)變量的問題。函數(shù)f中c是靜態(tài)變量存放在靜態(tài)存儲區(qū),在程序的整個運行期間都不釋放占據(jù)的存儲單元。函數(shù)f被調(diào)用3次,調(diào)用過程如下。

第1次調(diào)用;a=2、b=0、c=3,執(zhí)行b++和c++后b=1、c=4,f(a)=a+b+c=2+1+4=7

第2次調(diào)用:a=2、b=0、c=4.執(zhí)行b++和c++后b=1、c=5,f(a)=a+b+c=2+1+5=8

第3次調(diào)用:a=2、b=0、c=5,執(zhí)行b++和c++后b=1、c=6,f(a)=a+b+c=2+1+6=9

所以輸出結(jié)果為選項A。

17.C

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

19.D

20.D本題中del(char*s)函數(shù)實現(xiàn)的功能是:逐個讀入S數(shù)組中的字符,如果遇到數(shù)字,則將數(shù)字存在s中,遇到非數(shù)字字符則跳過。所以最后輸出的應(yīng)該是字符串S中所有的數(shù)字的個數(shù)。

21."bi.dat"fp'bi.dat'\r\nfp解析:要向文件bi.dat中寫數(shù)據(jù),所以要打開文件bi.dat。fp是指向文件bi.dat的指針,是將數(shù)據(jù)寫入fp指向的文件中去。

22.

23.66解析:++的優(yōu)先級高于*,先作自加運算,b=++a*++a=2.0*3.0=6.0。b按實型輸出6.000000。

24.c=getchar()

25.c>='a'&&c<='z'c>='a'&&c<='z'解析:小寫字母在內(nèi)存中以ASCII的形式存入,且從a到z依次遞增,所以可以直接用c>='a'&&c<='z'判斷是不是小寫字母;c!='\\n'判斷是用換行符結(jié)束循環(huán)。

26.

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

28.55解析:分析程序,當(dāng)a=3;b=4;c=5時,判斷語句a>b不成立,所以不執(zhí)行后面的語句,直接執(zhí)行“printf('%d\\n',c);”語句,輸出c的值,輸出結(jié)果為5。

29.關(guān)系關(guān)系解析:關(guān)系模型用;維表表示,則每個;維表代表一種關(guān)系。

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

31.調(diào)試調(diào)試

32.0'或0或NULLn++或++n或n=n+1或n+=10'或0或NULL\r\nn++或++n或n=n+1或n+=1

33.從定義到本源文件結(jié)束從定義到本源文件結(jié)束解析:C語言規(guī)定,宏名的有效范圍為從定義宏到本源程序結(jié)束。

34.11解析:本題考查局部變量和全局變量的區(qū)別:局部變量是指作用域在函數(shù)級和塊級的變量,全局變量是指作用域在程序級和文件級的變量。本程序首先定義了一個全局變量m=17,m=17的作用域在整個程序內(nèi)。在fun函數(shù)內(nèi)部定義了一個局部變量m=3,m=3的作用域僅在fun函數(shù)內(nèi)部,通過fun函數(shù)返回兩個形參的積再減m。在主函數(shù)中,輸出fun(a,b)/m=(5*7-3)/17=1。

35.str[i]str[i+1]"%s"strstr[i]\r\nstr[i+1]\r\n'%s',str解析:本題要求將字符串str中的字符用冒泡排序算法從大到小排列,其實現(xiàn)過程是將相鄰兩個字符進(jìn)行比較,如果當(dāng)前字符小于下一個字符,則通過中間變量temp將字符兩兩交換,所以第一空應(yīng)填:str[i],第二空應(yīng)填:str[i+l]。最終打印輸出得到的字符串str,所以第三空應(yīng)填:'%s',str。

36.

解析:冒泡排序法是通過相鄰數(shù)據(jù)元素的交換逐步將線性表變成有序。假設(shè)線性表的長度為n,則在最壞的情況下,冒泡排序需要經(jīng)過遍的從前往后的掃描和遍的從后往前的掃描,需要的比較次數(shù)為。

37.軟件開發(fā)

38.程序調(diào)試程序調(diào)試解析:程序調(diào)試的任務(wù)是診斷和改正程序中的錯誤。程序調(diào)試與軟件測試不同,軟件測試是盡可能多地發(fā)現(xiàn)軟件中的錯誤。先要發(fā)現(xiàn)軟件的錯誤,然后借助于調(diào)試工具找出軟件錯誤的具體位置。軟件測試貫穿整個軟件生命期,而調(diào)試主要在開發(fā)階段。

39.22解析:計算機(jī)存儲一個字符用1個字節(jié),存儲字符串時,每個字符用占用1個字節(jié),另在字符串的有效字符之后存儲1個字符串的結(jié)束標(biāo)記符。所以存儲字符串“X”要占用2個字節(jié),存儲字符'x'只要1個字節(jié)。注意:sizeof()函數(shù)和strlen()函數(shù)的作用。

40.數(shù)據(jù)庫管理系統(tǒng)或DBMS數(shù)據(jù)庫管理系統(tǒng)或DBMS解析:數(shù)據(jù)庫管理系統(tǒng)(DatabaseManagementSystem,DBMS)是一種操縱和管理數(shù)據(jù)庫的大型軟件,是用于建立、使用和維護(hù)數(shù)據(jù)庫,簡稱DBMS。它對數(shù)據(jù)庫進(jìn)行統(tǒng)一的管理和控制,以保證數(shù)據(jù)庫的安全性和完整性。用戶通過DBMS訪問數(shù)據(jù)庫中的數(shù)據(jù),數(shù)據(jù)庫管理員也通過DBMS進(jìn)行數(shù)據(jù)庫的維護(hù)工作。它提供多種功能,可使多個應(yīng)用程序和用戶用不同的方法在同時或不同時刻去建立,修改和詢問數(shù)據(jù)庫。因此,數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)庫管理系統(tǒng)是實現(xiàn)各種數(shù)據(jù)管理功能的核心軟件。本題的答案是數(shù)據(jù)庫管理系統(tǒng)或DBMS。

41.A解析:線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)中的結(jié)點空間是動態(tài)生成的,它們在內(nèi)存中的地址可能是連續(xù)的,也可能是不連續(xù)的。

42.D解析:本題考查的是switch語句。switch語句中的case或default只是一種入口標(biāo)號,它并不形成一種子句的概念。當(dāng)滿足其中某個標(biāo)號的條件而進(jìn)入switch語句中時,如果沒碰到break語句,將一直執(zhí)行到switch語句的結(jié)尾。題目中使用了一個while循環(huán)使k從5遞減到1,當(dāng)k=5或4的時候從default標(biāo)號進(jìn)入switch,碰到break;語句立即跳出,沒有改變n:當(dāng)k=3時,執(zhí)行了一次n+=k;;k=2時,也執(zhí)行了一次n+=k;k=1時,執(zhí)行了兩次n+=k;所以最終n的值為3+2+1+1=7。故應(yīng)該選擇D。

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

44.A樹形結(jié)構(gòu)是一類重要的非線性數(shù)據(jù)結(jié)構(gòu)。樹是n(n≥0)個結(jié)點的集合,對應(yīng)任意一棵非空樹,它具有以下幾點重要的性質(zhì)。

①有且僅有一個特定的稱為根的結(jié)點。

②當(dāng)n>1時,其余結(jié)點可分為m(m>0)個互不相交的有限集T1,T2,…,TM,其中每一個集合本身又是一棵樹,稱為子樹。

因此,本題的正確答案有且只有一個。

45.B(27)B)解析:函數(shù)feof的功能是:測試fp所指的文件的位置是否已達(dá)到文件尾,如果達(dá)到文件尾,則函數(shù)返回非0值,否則返回0,表示文件尚未結(jié)束。

46.C解析:考查二維數(shù)組元素的引用方法。題中通過二維數(shù)組的行、列下標(biāo)來定位元素的位置,從而實現(xiàn)元素的引用。

47.D解析:軟件需求規(guī)格說明書SRS,SoftwareRequirementSpecification)是需求分析階段的最后成果,是軟件開發(fā)中的重要文檔之一。它有以下幾個方面的作用,①便于用戶、開發(fā)人員進(jìn)行理解和交流;②反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù);③作為確認(rèn)測試和驗收的依據(jù)。

48.C解析:C語言中函數(shù)的定義分為有參函數(shù)的定義和無參函數(shù)的定義。無參函數(shù)的定義形式為:

類型標(biāo)識符函數(shù)名()

{說明部分

語句

}

有參函數(shù)的定義有兩種形式:

類型標(biāo)識符函數(shù)名(形式參數(shù)列表)

形式參數(shù)說明

{說明部分

語句

}

類型標(biāo)識符函數(shù)名(類型名形參1,類型名形參2,…)

{說明部分

語句

}

其中函數(shù)名為用戶定義的C語言的合法標(biāo)識符,其前面的類型標(biāo)識符用來說明函數(shù)值的類型,可以是C允許的任何類型,如int、char、float、double和指針類型等。當(dāng)函數(shù)值為整型時類型標(biāo)識符可以省略,如果函數(shù)沒有返回值,類型標(biāo)識符可以是void型。當(dāng)函數(shù)的形參多于一個時,各個形參之間用逗號分隔。

49.D解析:fgetc函數(shù)是指從指定的文件讀入一個字符,該文件必須是以讀或讀寫方式打開的。fgetc函數(shù)的調(diào)用形式為:ch=fgetc(fp);。

50.C解析:修改數(shù)據(jù)庫的物理結(jié)構(gòu)或邏輯結(jié)構(gòu)時,通過兩級映像,可以使得應(yīng)用程序不必修改,保證數(shù)據(jù)的獨立性。數(shù)據(jù)的獨立性包括物理獨立性和邏輯獨立性。

51.C解析:本題考查按位與“&”。因為1&1=1,0&0=0,所以任何數(shù)與自身按位與,結(jié)果仍為此數(shù),不發(fā)生變化。

52.C解析:實參可以是表達(dá)式,在類型上應(yīng)按位置與形參一一對應(yīng)匹配。如果類型不匹配,C編譯程序按賦值兼容的規(guī)則進(jìn)行轉(zhuǎn)換。

53.A解析:程序的執(zhí)行效率是與數(shù)據(jù)的存儲結(jié)構(gòu)密切聯(lián)系的。

54.D解析:輸出格式控制符%c表示將變量以字符的形式輸出;輸出格式控制符%d表示將變量以帶符號的十進(jìn)制整型數(shù)輸出,所以第一個輸出語句輸出的結(jié)果為a,97;第二個輸出語句輸出的結(jié)果為k=12。

55.C解析:p被定義為指針型變量,指向字符數(shù)組a的首地址。執(zhí)行p+=3;指針后移3位,指向d。strcpy(p,'ABCD')將字符串'ABCD'(連同\'\\0\')復(fù)制到p所指向的地址單元中,strlen()函數(shù)計算p所指向的字符串的長度,返回字符串中字符的個數(shù)(不計\'\\0\'),返回值為字符串'ABCD'中字符的個數(shù)4。

56.C解析:語句“p=s;”是使指針p指向字符數(shù)組s。*p則引用了p所指位置的數(shù)組元素。注意:通過指針來引用一維數(shù)組元素。

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

58.C解析:本題考查函數(shù)調(diào)用時的參數(shù)傳遞。選項C)中第一個參數(shù)的表達(dá)式不正確,因此不能得到正確的結(jié)果。

59.B解析:class[10]是結(jié)構(gòu)體型的數(shù)組,class[3]為{'Zhao',16,69}。

60.DD。【解析】本題主要考查對排序算法的理解。冒泡排序法首先將第一個記錄的關(guān)鍵字與第二個記錄的關(guān)鍵字進(jìn)行比較,若逆序則交換,然后比較第二個與第三個,以此類推,直至第n-1個與第n個記錄的關(guān)鍵字進(jìn)行比較。第一趟冒泡排序使最大的關(guān)鍵字元素放到最后。以此類推,進(jìn)行第2~n次冒泡排序。如果在排序過程中不存在逆序,則排序結(jié)束。在最壞情況下,冒泡排序中,若初始序列為“逆序”序列,則需要比較n(D-1)/2次??焖倥判蚴菍γ芭菖判虻囊环N改進(jìn)。它的基本思想是:通過一趟排序?qū)⒋庞涗浄指畛瑟毩⒌膬刹糠?,其中一部分記錄的關(guān)鍵字比另一部分記

溫馨提示

  • 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

提交評論