2021-2022年甘肅省酒泉市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第1頁
2021-2022年甘肅省酒泉市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第2頁
2021-2022年甘肅省酒泉市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第3頁
2021-2022年甘肅省酒泉市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第4頁
2021-2022年甘肅省酒泉市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

2021-2022年甘肅省酒泉市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.

2.有以下程序:#include<stdio.h>#include<string.h>main(){charstr[][10]={“One”,“Three”,“Five”},*p=str[0];printf(“%s,”,p+10);printf(“%d\n”,strlen(p+=10));}程序運行后的輸出結果是()。

A.Three,4B.出錯C.Three,5D.Five,5

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

A.宏替換不占用程序的運行時間

B.預處理命令行必須位于源文件的開頭

C.在源文件的一行上可以有多條預處理命令

D.宏名必須用大寫字母表示

4.下面合法的C語言字符常量是()。

A.'\t'B."A"C.65D.A

5.有以下程序(strcat函數(shù)用于連接兩個字符串):#include<stdio.h>#include<string.h>main(){chara[20]=“ABCD\0EFG\0”,b[]=“UK”;strcat(a,b);printf(“%s\n”,a);}程序的運行結果是()。

A.UKB.ABCDE\0FG\0UKC.ABCDUKD.EFGUK

6.

7.在n個結點的順序表中,算法的時間復雜度是O(1)的操作是()。

A.訪問第i個結點(1<=i<=n)和求第i個結點的直接前驅(2<=i<=n)

B.在第i個結點之后插入一個新結點(1<=i<=n)

C.刪除第i個結點(1<=i<=n)

D.將n個結點從小到大排序

8.

9.在面向對象方法中,一個對象請求另一對象為其服務的方式是通過發(fā)送()。A.調用語句B.命令C.口令D.消息

10.

若輸入“abcdef”“abdef”,下述程序的輸出結果為()。

#include<stdio.h>

#include<string.h>

main

{intn;

chars1[20],s2[20],*p1,*p2;

scanf("%s",s1);

scanf("%S",s2);

p1=s1;

p2=s2;

n=strcmp(p1,p2);

printf("Vood\n",n);

}

A.-1B.0C."abcdef"D."abdef"

11.有以下程序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]);}程序運行后的輸出結果是A.6B.7C.5D.8

12.以下程序的運行結果是______。#include<stdio.h>main(){inta[]:{1,2,3,4,5,6,7,8,9,10,11,12):int*p=a+5,*q=NULL:*q=*(p+5):printf("%d%d\n",*p,*q);}

A.運行后報錯B.66C.612D.55

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

A.在C程序中,每行中只能寫一條語句

B.若a是實型變量,C程序中允許賦值a=10,因此實型變量中允許存放整型數(shù)

C.在C程序中,無論是整數(shù)還是實數(shù),都能被準確無誤地表示

D.在C程序中,%是只能用于整數(shù)運算的運算符

14.sizeof(float)是()。

A.一種函數(shù)調用B.一種函數(shù)定義C.一個浮點表達式D.一個整型表達式

15.若有定義語句:“intx=12,y=8,z;”,在其后執(zhí)行語句“z=0.9+x/y;”,則z的值為()。A.1.9B.1C.2D.2.4

16.有以下程序:#include<stdio.h>intfun(){staticintx=1;x*=2;returnx;}main(){inti,s=1;for(i=1;i<=3;i++)s*=fun();printf(“%d\n”,s);}程序的運行結果是()。

A.10B.30C.0D.64

17.由3個結點可以構造出______種不同形態(tài)的二叉樹。

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

18.第

24

下面程序段的運行結果是

char*p="abcdefgh";

p+=3;

printf("%d\n",strlen(strcpy(p,"ABCD")));

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

19.設有以下程序段:structMP3{charname[20];charcolor;floatprice;}std,*ptr;ptr=&std:若要引用結構體變量std中的color成員,寫法錯誤的是()。A.std.colorB.ptr->colorC.std->colorD.(*ptr)color

20.下面程序輸出的是()。main{intt=l;fun(fun(t));}fun(inth){staticinta[3]={1.2.3};intk;for(k=0;k<3;k++)a[k]+=a[k]-h;for(k=0;k<3;k++)printf("%d",a[k]);printf("\n");return(a[h]);}A.1,2,3,1,5,9,B.1,3,5,1,3,7,C.1,3,5,0,4,8,D.1,3,5,-1,3,7,

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

main()

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

d=(a>b>c);

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

}

22.軟件產品從提出、實現(xiàn)、使用維護到停止使用退役的過程稱為()。

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

{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.設有定義:intn,*k=&n;以下語句將利用指針變量k讀寫變量n中的內容,請將語句補充家整。

seanf("%d",【】);

printf("%d\n",【】);

25.在對文件操作的過程中,若要求文件的位置指針回到文件的開始處,應當調用的函數(shù)是【】。

26.設有下列宏定義:#defineA2

#defineBA+3

則執(zhí)行賦值語句;t=B*2;t為int型變量后的值是______。

27.以下程序的輸出結果是______。

voidfun()

{staticinta=0;

a+=2;printf("%d",a);

}

main()

{intcc;

for(cc=1;cc<4;cc++)fun();

printf("\n");

}

28.以下程序段的功能是統(tǒng)計鏈表中結點的個數(shù),其中first為指向第一個結點的指針(鏈表帶頭結點)。請在下劃線內填入正確內容。

structlink

{chardata;

structlink*next;};

structlink*p,*first;

intc=0;

p=first;

while(【】)

{c++;

p=【】;}

29.以下程序是求矩陣a、b的和,結果存入矩陣c中,請?zhí)羁铡?include<stdio.h>main(){inta[4][4]={1,2,6,7},{0,4,2,-8},{1,4,5,2},{2,4,6,8}};intb[4][4]={{-4,0,7,9},{2,-7,7,4),{6,9,0,1),{8,8,6,5)};inti,j,c[4][4];for(i=0;i<4;i++)for(j=0;j<4;j++)c[i][j]=();for(i=0;i<4;i++)for(j=0;j<4;j++)printf("%d",c[i][j]);}

30.以下程序的功能是根據(jù)輸入的"y"("Y")與"n"("N"),在屏幕上分別顯示出"ThisisYES."與"ThisisNO."??瞻滋幮枰钊氲膬热菔?/p>

#include<stdio.h>

voidYesNo(charch)

{switch(ch)

{case′y′:

case′Y′:printf("\nThisisYES.\n");

case′n′:

case′N′:printf("\nThisisNO.\n");}

main()

{charch;

printf("\nEnterachary,Yorn,N:");

ch=【】;

printf("ch;%c",ch);

YesNo(ch);}

31.若有如下程序:

main()

{intx=4;y=3,Z=2,t;

t=x<y<z;

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

}

則程序運行后的輸出結果是【】。

32.下列表達式用于判斷y是否為閏年。閏年的判斷條件是:年號能被4整除但不能被100整除或年號能被400整除,請?zhí)羁誣_____。

33.在面向對象方法中,【】描述的是具有相似屬性與操作的一組對象。

34.下面程序的功能是:計算1~10之間的奇數(shù)之和與偶數(shù)之和,請?zhí)羁铡?/p>

#include<stdio.h>

main()

{inta,b,c,i;

a=c=0;

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

{a+=i;

【】;

c+=b;}

printf("偶數(shù)之和=%d\n",a);

printf("奇數(shù)之和=%d\n",c-11);}

35.數(shù)據(jù)庫保護分為:安全性控制、______、并發(fā)性控制和數(shù)據(jù)的恢復。

36.設x、y、z為整型變量,且x=2,y=3,z=4,當執(zhí)行以下語句后,x的值是______。

x*=(y++)+(--z);

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

38.下面函數(shù)的功能是將一個字符串的內容顛倒過來,請?zhí)羁铡?/p>

voidfun(charstr[])

{inti,j,k;

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

{k=str[i];

str[i]=str[j];

str[j]=k;}}

39.以下程序段的輸出結果是【】。

inti=9;

prinff("%o\n",i);

40.在宏定義#definePI3.14159中,用宏名PI代替一個______。

三、1.選擇題(20題)41.若定義inta=10,則表達式a+=a-=a*=a的值是()。

A.0B.-180C.-100D.-90

42.從一個長度為n的順序表中刪除第i個元素(1≤i≤n)時,需向前移動______個元素。

A.n-iB.n-i+1C.n-i-1D.i

43.若有下列說明,則()不是對strcpy庫函數(shù)的正確的調用。strcpy庫函數(shù)用于復制一個字符串:char*str1="abcdt",str2[10],*str3="hijklmn",*str4[2],*str5="aaaa";

A.strcpy(str2,str1)

B.strcpy(str3,str1)

C.strcpy(str4,str1)

D.strcpy(str5,str1)

44.算法的時間復雜度是指______。

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

45.用C語言編寫的代碼程序

A.可立即執(zhí)行B.是一個源程序C.經(jīng)過編譯即可執(zhí)行D.經(jīng)過編譯解釋即可執(zhí)行

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

A.DB包括DBS和DBMSB.DBMS包括DB和DBSC.DBS包括DB和DBMSD.沒有任何關系

47.下列能正確定義一維數(shù)組的選項是()。

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

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

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

D.inta[5]="0123";

48.以下能正確定義二維數(shù)組的是______。

A.inta[][3];

B.inta[][3]={2*3};

C.inta[][3]={};

D.inta[2][3]={{1),{2},{3,4}};

49.有以下結構體說明和變量定義,如圖所示,指針p、q、r,分別指向此鏈表中的3個連續(xù)結點。Structnode{intdata;Structnode*hext;}*p,*q,

*r;

現(xiàn)要將Q所指結點從鏈表中刪除,同時要保持鏈表的連續(xù),以下不能完成指定操作的語句是

A.p->next=q->next;

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

C.p->next=r;

D.p=q->next;

50.有以下函數(shù):fun(char*a,char*b){while((*a!='\0')&&(*b!:'\0')&&(*a==*b)){a++;b++;}return(*a-*b);}該函數(shù)的功能是()。

A.將b所指字符串連接到a所指字符串中

B.計算a和b所指字符串的長度之差

C.將b所指字符串連接到a所指字符串后面

D.比較a和b所指字符串的大小

51.有以下程序voidswapl(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};swapl(a);swap2(b[0],b[1]);printf("%d%d%d%d\n",a[0],a[1],b[0],b[1]);}其輸出結果是:

A.5353B.5335C.3535D.3553

52.有以下程序:main(){intm=12,n=34;printf("%d%d",m++,++n);printf("%d%d\n",n++,++m);}程序運行后的輸出結果是______。

A.12353514B.12353513C.12343514D.12343513

53.以下語句或語句組中,能正確進行字符串賦值的是______。A.char*sp;*sp="right!";

B.chars[10];s="right!";

C.chars[10];*s="right!";

D.char*sp="right!";

54.下列程序的輸出結果是______。#defineA100main(){inti=0,sum=0;do{if(i==(i/2)*2)continue;sum+=i;}while(++i<A);printf("%d\n",sum);}

A.2500B.2050C.4D.0

55.已知二叉樹后序遍歷序列是dabec,中序遍歷序列是debac,它的前序遍歷序列是

A.acbedB.decabC.deabcD.cedba

56.設棧S初始狀態(tài)為空。元素a、b、c、d、e、f依次通過棧S,若出棧的順序為c、f、e、d、b、a,則棧S的容量至少應該為()。

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

57.若有以下定義,則對a數(shù)組元素地址的正確引用是()。

inta[5],*p=a;A.A.p5B.*a1C.&a1D.&a[0]

58.以下程序的輸出是______。structst{intx;int*y;}*p;intdt[4]={10,20,30,40};structstaa[4]={50,&dt[0],60,&dt[1],60,&dt[2],60,&dt[3]};main(){p=aa;printf("%d\n",++(p->X));}

A.51B.11C.50D.60

59.有以下程序main(){inti;for(i=0;i<3;i++)switch(i){case1:printf("%d",i);case2:printf("%d",i);default:printf("%d",i);}執(zhí)行扣輸出的結果是

A.11122B.12C.12020D.120

60.若有說明inta[][3]={1,2,3,4,5,6,7,8,9},則a數(shù)組第一維的大小是()。

A.2B.3C.4D.無確定值

四、選擇題(20題)61.

62.交換兩個變量的值,不允許用臨時變量,應該使用下列()位運算符。

A.&B.^C.D.E.F.~

63.下面結構體的定義語句中,錯誤的是()。

A.structord{intx;intY;intz;}structorda;

B.structord{intx;imY;imz;};structorda;

C.structord{intx;intY;intZ;}a;

D.struct{intx;intY;intz;}a;

64.C語言可執(zhí)行程序的開始執(zhí)行點是()。

A.包含文件中的第一個函數(shù)B.程序中第一個函數(shù)C.程序中的main()函數(shù)D.程序中第一條語句

65.有以下程序:

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

A.*2*6B.}3*5一C.}5D.*7

66.閱讀以下程序:

#include<stdio.h>

main()

{intcase;floatprintF;

printf("請輸人2個數(shù):");

scanf("%d%fl"&case,&printF);

printf("%dofof\n",case,printF);

}

該程序在編譯時產生錯誤,其出錯原因是()。

A.定義語句出錯,case是關鍵字,不能用做用戶自定義標識符

B.定義語句出錯,printF不能用做用戶自定義標識符

C.定義語句無錯,scanf不能作為輸入函數(shù)使用

D.定義語句無錯,printf不能輸出case的值

67.下面描述中,不屬于軟件危機表現(xiàn)的是()A.軟件過程不規(guī)范B.軟件開發(fā)生產率低C.軟件質量難以控制D.軟件成本不斷提高

68.

下述程序的輸出結果是()。

#include<stdio.h>

main

{inti;

for(i=l;i<=10;i++)

{if(i*i>=20)&&(i*i<=100))

break;

}

printf("%d\n",i*i);

}

A.49B.36C.25D.64

69.

70.下面概念中,不屬于面向對象方法的是()。A.對象B.繼承C.類D.過程調用

71.

72.在結構化分析方法中,數(shù)據(jù)字典的作用是()。

A.存放所有需要處理的原始數(shù)據(jù)

B.存放所有處理的結果

C.存放所有程序文件

D.描述系統(tǒng)中所用到的全部數(shù)據(jù)和文件的有關信息

73.

以下程序的輸出結果是()。

main

{inti,k,a[10],p[3];

k=5;

for(i=0:i<10;i++)a[i]=i;

for(i=0;i<3;i++)p[i]=a[i*(i+1)];

for(i=0;i<3;i++)k+=p[i]*2;

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

}

A.20B.21C.22D.23

74.(22)下列關于棧的敘述中正確的是()

A.在棧中只能插入數(shù)據(jù)

B.在棧中只能刪除數(shù)據(jù)

C.棧是先進先出的線性表

D.棧是先進后出的線性表

75.若有定義:doublea=22;inti=0,k=18;,則不符合c語言規(guī)定的賦值語句是()。

A.i=(a+k)<=(i+k);B.i=a%11;C.a=a++,i++;D.i=!a;

76.有以下程序

77.

78.下列數(shù)據(jù)模型中,具有堅實理論基礎的是()。

A.層次模型B.網(wǎng)狀模型C.關系模型D.以上3個都是

79.有以下程序

80.

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc的功能是:讀入一個字符串(長度<20),將該字符串中的所有字符按ASCII碼升序排序后輸出。例如,輸入opdye,則應輸出deopy。請修改程序中的錯誤,使它能得到正確結果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結構。試題程序:#include<string.h>#include<stdlib.h>#include<conio.h>#include<stdio.h>//****found****intproc(charstr[]){charc;unsignedi,j;for(i=0;i<strlen(str)-1;i++)for(j=i+1;j<strlen(str);j++)if(str[i]>str[j]){c=str[j]://****found****str[j]=str[i++];str[i]=c;}}voidmain{charstr[81];system("CLS");printf("\nPleaseenteracharacterstring:");gets(str);printf("\n\nBeforesorting:\n%s",str);proc(str);printf("\nAftersortingdecendingly:\n%s",str);}

六、程序設計題(1題)82.編寫函數(shù)fun,其功能是:實現(xiàn)兩個字符串的連接(不要使用庫函數(shù)strcat),即把p2所指的字符串連接到

pl所指的字符串的后面。

例如,分別輸入下面兩個字符串:

程序輸出:

注意:部分源程序在文件PROGl.C中。

請勿改動主函數(shù)main和其他函數(shù)中的任何內容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。

參考答案

1.C

2.Cmain函數(shù)定義一個二維字符數(shù)組str,它包含3個字符串,每個字符串存放在一個長度為10的一維數(shù)組中。指針變量P指向str[0],即第1個字符串“One”。由于“One”存放在長度為10的一維數(shù)組中,因此P+10指向下一個字符串“Three”,長度為5。故本題答案為C選項。

3.A宏替換是在編譯階段前的預處理階段,對程序中的宏完成文本替換,因此宏替換不占用運行時間,選項A正確;預處理命令行無須在源文件的開頭,它可以出現(xiàn)在程序的任何一行的開始部位,其作用一直持續(xù)到源文件的末尾,選項B錯誤;在源文件的一行上至多只能有一條預處理命令,選項C錯誤;宏名通常使用大寫字母表示,這并不是語法規(guī)定,只是一種習慣,選項D錯誤。本題答案為A選項。

4.A

5.C字符數(shù)組a中包含兩個‘\\0’。遇到第1個‘\\0’時就表示字符串a結束。字符串處理函數(shù)strcat(字符數(shù)組a,字符數(shù)組b),功能是連接兩個字符串,把字符串b連接到字符串a的后面,結果放在字符數(shù)組a中。連接時將字符串a后的‘\\0’取消,只在新串最后保留一個‘\\0’。本題相當于將“ABCD”和“IJK”連接。故本題答案為C選項。

6.A

7.A

8.D

9.D解析:面向對象的世界是通過對象與對象間彼此的相互合作來推動的,對象間的這種相互合作需要一個機制協(xié)助進行,這樣的機制稱為消息。消息是一個實例與另一個實例之間傳遞的信息,它請求對象執(zhí)行某一處理或回答某一要求的信息,它統(tǒng)一了數(shù)據(jù)流和控制流。

10.D

\n本題考查字符串比較函數(shù)strcmp(s1,s2),若s1>s2,則返回1;若s1=s2,則返回0;若s1<s2,則返回-1。字符串依次比較的是它們字符的ASCIl碼值。

\n

11.A本題考查的是數(shù)組和函數(shù)。sum()函數(shù)接收一個int型數(shù)組作參數(shù),也可以把它看作是一個int型指針,語句a[0]=a[*1)+a(比的意思就是將參數(shù)指針指向內容的前一個元素和后一個元素的值相加放到指針所指的位置.因此,主函數(shù)中調用sum(&a[2]);的意思就是讓a[2]=a[1]+a[3];,所以最后輸出的結果是6。應該選擇A。

12.A

13.D

14.D解析:sizeof(float)是c語言內部規(guī)定的用于計算單精度型變量(float)在計算機的內存中所占用的字節(jié)數(shù)量的函數(shù),返回一個整數(shù)值。

15.B此題考查除法運算,根據(jù)先乘除后加減,有括號先算括號的原則,先計算x/y,即l2/8=1,所以z=0.9+1=1.9。但是Z是整型的,轉化一下取整除部分,結果Z=1

16.D本題中靜態(tài)局部變量X,在靜態(tài)存儲區(qū)內分配存儲單元,在程序整個運行期間都不釋放。在main函數(shù)中,執(zhí)行for循環(huán),第1次循環(huán),變量s的值為2;第2次循環(huán),函數(shù)的返回值為4,所以變量s的值為8;第3次循環(huán),函數(shù)的返回值為8,所以s的值為64。故本題答案為D選項。

17.C難易程度:易

18.C在本題中,程序段首先定義了字符型指針變量p,并使其指向一個字符串,然后將指針變量p加3,即使其指向字符串的第四個元素。然后執(zhí)行輸出語句,通過輸出語句的輸出格式我們可以知道,最后輸出的是一個十進制數(shù)的整型數(shù)值,其輸出列表為strlen(strcpy(P,″ABCD″))。這就要求我們了解strlen函數(shù)和strcpy函數(shù)的作用。

strcpy的調用格式是:strcpy(目的地址,源地址),其功能是把源地址的字符串復制到目的地址中,這種復制將覆蓋原來的字符串。strcat函數(shù)的功能是將源地址的字符串復制到目的地址字符串的后面。

strlen的調用格式是:strlen(字符串地址),其功能是返回字符串中字符的個數(shù)。

那么程序中執(zhí)行strcpy(P,″ABCD″)后指針變量p所指向的字符串為“ABCD”,該字符串中字符的個數(shù)為4,那么執(zhí)行strlen后,程序最終輸出的結果是4。因此本題正確的答案是C。

19.C【答案】C

【知識點】結構體成員變量的引用

【解析】結構體變量包括一個或多個成員變量,引用其成員變量的語法格式如下:

結構體變量.成員變量。通過結構體指針變量獲得其結構體變量的成員變量的一般形式為:(*結構體指針變量).成員變量,也可以使用:結構體指針變量->成員變量來引用成員變量。

20.D本題考查雙重函數(shù)調用及for循環(huán)使用,fun函數(shù)中第一個for循環(huán)語句的作用是給數(shù)組a賦值。當?shù)谝淮握{用fun函數(shù)時,把實參1傳給形參,輸出a數(shù)組的元素為1,3,5;第二次調用fun函數(shù)時,由于數(shù)組a為靜態(tài)局部變量,故輸出a數(shù)組的元素為一1,3,7。

21.00解析:本題的關鍵在于對變量c的賦值運算:

d=(a>b>c)

d=(5>4>3)

先算5>4,為真,得1,即:d=(1>3),此時1>3,為假,得0。

22.軟件生命周期軟件生命周期解析:軟件產品從提出、實現(xiàn)、使用維護到停止使用退役的過程稱為軟件生命周期。在國家標準“計算機軟件開發(fā)規(guī)范”中,把軟件生命周期劃分為8個階段,即可行性研究與計劃、需求分析、概要設計、詳細設計、實現(xiàn)、綜合測試、確認測試、使用與維護,對每個階段,都明確規(guī)定了該階段的任務、實施方法、實施步驟和完成標志,其中特別規(guī)定了每個階段需要產生的文檔。

23.

24.k[7]*kk[7]*k解析:scanf()函數(shù)有兩個參數(shù),第—個參數(shù)是格式控制部分(格式控制部分是字符串,主要由“%”號和格式字符組成)第二個參數(shù)是一地址列表(地址列表是由多個地址組成,可以是變量的地址,也可以是字符串的首地址)。而第一個空格處位于scanf()函數(shù)的第二個參數(shù)處,所以,第一個空應該填地址k。printf()函數(shù)有兩個參數(shù),第一個參數(shù)是輸出格式字符串(輸出格式字符串是由控制輸出格式的字符和非格式字符組成的,通常是字符常量。非格式字符作為輸出數(shù)據(jù)的間隔,輸出時原樣輸出)第二個參數(shù)為一輸出表達式表(輸出表達式表是由若干個需要計算和輸出的表達式組成的,表達式之間用逗號分隔開)。而第二個空位于printf()函數(shù)的第二個參數(shù)處,所以應該填*K。

25.rewind()或fseek()rewind()或fseek()

26.88解析:本題考查帶參數(shù)的宏定義及相關運算.運算過程為:t=B*2=A+3*2=2+3*2=8。

27.246

28.p!=NULLp->nextp!=NULL\r\np->next解析:結構體變量構成鏈表需要每個節(jié)點中都有一個指向下一個結點的指針,就像本題中的next指針一樣。注意:掌握可以對鏈表進行的操作。

29.a[i][j]+b[i][j]a[i][j]+b[i][j]解析:求兩個矩陣的和只要將對應元素相加即可。

30.getchargetchar解析:考查了字符可以作為整型變量來對待,參與操作。題中要求根據(jù)輸入的字符調用函數(shù)YesNo來判斷輸入的字符是y(Y)還是n(N),字符的輸入可用字符輸入函數(shù)getchar。函數(shù)YesNo用來判斷一個字符是y(Y)還是n(N),主要用了一個switch多分支結構來比較輸入字符與字符\ue008'y',\ue009'Y'、,'n','N'是否相等來實現(xiàn)的。

31.11解析:因為x=4,y=3,所以表達式x<y的值為假(0),又因為z=2,所以0<z的值為真(1),故最終輸出的結果為1。

32.(y%4==0)&&(y%100!=0)||(y%400==0)(y%4==0)&&(y%100!=0)||(y%400==0)解析:考查邏輯表達。年號能被4整除(y%4==0)但不能被100整除(y%100!=0),兩者是與的關系,年號能被400整除即y%400==0,與前兩項是或的關系。

33.類類解析:在面向對象方法中,類描述的是具有相似屬性與操作的一組對象。

34.b=i+1b=i+1解析:本題考查了for循環(huán)語句的執(zhí)行過程。i+=2是修正表達式,執(zhí)行一次循環(huán)體后i的值就增加2,i的初始值為0,每次加2之后和累加至a,所以a的值就是1~10之間的偶數(shù)之后;b的值是1~11之間的奇數(shù)和,但在輸出b值時c去掉多加的11,即為1~10之間的奇數(shù)之和。

35.完整性控制完整性控制

36.12。12。解析:表達式x*=(y++)+(--z)相當于先進行z的自減運算,再執(zhí)行x=x*(y+z),最后y自加。因此,變量x的值為12,y和z的值分別是4和3。

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

38.strlen(str)-1strlen(str)-1解析:程序中的for循環(huán)就是用來完成串反序的,所以應該對循環(huán)的條件進行初始化,所以在[18]應該填入strlen(str)-1。注意,在串反序的時候,不應該把串結束符‘\\0’也反序。

39.1111解析:格式字符。是以八進制無符號形式輸出整數(shù)(不輸出前導符0),因為整數(shù)9的八進制為11,所以輸出結果為11。

40.字符串字符串解析:本題考查字符替換格式:#define標識符字符串。

41.B解析:算術運算符的運算規(guī)則是:從右到左的原則。所以表達式中先計算a=a-a*(上標)a的值是-90,再計算a=a+a的值是-180。

42.A

43.C解析:strcpy(s1,s2)函數(shù)的功能是將字符串s2復制到字符串s1中(注意:要保證s1存儲區(qū)能容納下s2字符串)。

44.C解析:算法的時間復雜度實際上就是執(zhí)行算法程序所需要的計算工作量。為了客觀地反映算法性能,在度量算法的時間復雜度時,應該與編寫算法程序所使用的程序設計語言、執(zhí)行算法程序時所使用的計算的工具以及程序員的水平無關。選項A錯誤,因為同一算法程序在運行速度不同的計算機上運行時,其計算時間是不同的。選項B錯誤,因為算法所編寫的程序長度往往與程序設計語言以及程序員的水平有關,同一個算法,用不同的程序設計語言或者不同的程序員所編寫出的程序其長度可能會大不相同。選項D錯誤,因為根據(jù)一個算法所編制出的程序之中,其指令條數(shù)往往與程序設計語言以及程序員的水平有關,不能用算法程序中的指令條數(shù)來度量算法的時間復雜度。所以,本題正確答案為C。

45.B解析:C語言一種高級語言,C語言源程序經(jīng)過C語言編譯程序編譯之后,生成一個后綴為。OBJ的二進制文件(稱為目標文件),最后還要由稱為“連接程序”(Link)的軟件,把此。OBJ文件與C語言提供的各種庫函數(shù)連接在一起,生成一個后綴.EXE的可執(zhí)行文件。顯然C語言不能立即執(zhí)行,故選項A錯誤;根據(jù)以上定義,選項C和選項D錯誤,所以,4個選項中選項B符合題意。

46.CC。【解析】數(shù)據(jù)庫系統(tǒng)(DBS)由數(shù)據(jù)庫(DBS)、數(shù)據(jù)庫管理系統(tǒng)(DBMS)、數(shù)據(jù)庫管理員、硬件平臺和軟件平臺五個部分組成,可見DB和DBMS都是DBS的組成部分。

47.B解析:在定義數(shù)組時,如果賦給的初始值個數(shù)大于數(shù)值的長度,這樣就會越界,因此選項A)錯誤;選項C)中定義的是一個字符變量C;選項D)中整型數(shù)組,中只能存儲整型數(shù)據(jù),而不能存儲字符串常量“0123”。

48.B解析:(1)二維數(shù)組的定義

二維數(shù)組的定義方式為:類型說明符數(shù)組名[常量表達式][常量表達式]。

二維數(shù)組在內存中是按行優(yōu)先的順序存放的,即先存放第一行的元素,再存放第二行的元素,依次類推。

(2)二維數(shù)組元素的引用

二維數(shù)組元素的表示形式為:數(shù)組名[下標][下標],下標可以是整型常量或整型表達式;其范圍為:0~(常量表達式-1)。

(3)二維數(shù)組的初始化

可以用以下方法對二維數(shù)組元素初始化。

①分行給二維數(shù)組賦初值,例如;

inta[2][2]=({1,2),{3,4));

這種賦值方式比較直觀,把第1個大括號內的數(shù)據(jù)賦給第1行的元素,第2個大括號內的數(shù)據(jù)賦給第2行的元素,即按行賦值。

②可以將所有數(shù)據(jù)寫在一個大括號內,按數(shù)組排列的順序對各個元素賦初值。

③可以對部分元素賦初值,沒有初始化的元素值為0。

④如果對全部數(shù)組元素賦初值,則定義數(shù)組時對第一維的長度可以不指定,但第二維的長度不能省略。

49.D解析:要刪除鏈表中間的某個結點,只需要使它的前一個結點的next指針指向它的后一個結點-不過,嚴格來講還需要使用free()函數(shù)釋放掉該結點在內存中所占的空間。本題要刪除的是q所指結點(以下簡稱q結點),只需使p結點的next指針指向r結點即可。選項A中,因為Q結點的next指向r結點,所以執(zhí)行p->next=q->next;語句后p結點的next就指向了r結點,故選項A能完成刪除。選項B中,p->next->next等價于q->next,因此也能完成刪除。選項C直接讓p->next指向r結點,當然可以刪除。選項D使指針p指向q->next(即r結點),這樣做不會影響到內存中的鏈表,所以應該選擇D。

50.D解析:兩個字符串的比較是從左至右對兩個字符串對應位置上的字符逐個進行比較,即按其ASCII碼值的大小比較,直到出現(xiàn)不同的字符或遇到,'\\0'為止。若全部字符都相同,則兩個字符串相等,返回0;若出現(xiàn)不相同的字符,則返回第一個不相等字符的ASCII碼的差值。fun函數(shù)實現(xiàn)了該功能。

51.B解析:函數(shù)間的參數(shù)的傳遞有兩種情況,第一種情況變量作為形參時的參數(shù)傳遞,變量作為形參時,要求對應的實參應為變量或表達式,變量作為函數(shù)的參數(shù)其傳遞方式是“值傳遞”,該種情況下,形參被賦值為實參的值,然后實參與形參再無聯(lián)系。也就是說對形參的改變將不再影響實參;第二種情況是地址或數(shù)組名作為形參時的參數(shù)傳遞,該種情況下對形參的改變將對實參產生影響。本題中函數(shù)swapl()是傳遞的地址。所以對該形參c的改變將影響實參,分析可知該函數(shù)的作用,是使數(shù)組c的第一個元素和第二個元素的值互換。主函數(shù)中調用該函數(shù)將a作為實參傳遞給形參c,故執(zhí)行該函數(shù)后a的第一個元素和第二個元素的值將交換。分別為5和2。函數(shù)swap2()是值傳遞的,所以該函數(shù)執(zhí)行后對數(shù)組b將沒有任何改變,此時該數(shù)組的第一個和第二個元素依然為3和5,因此最后的輸出為5、3、3和5。

52.A解析:自增運算符“++”,放在變量之前表示在使用變量之前,先使變量的值加1;放在變量之后表示在使用變量之后,再使變量的值加1。第一條輸出語句,先輸出m=12,m再自加1,變成13,n先自加1再輸出,輸出n=35;第二條輸出語句,先輸出n=35,n再自加1,變成36,m先自加1再輸出,輸出m=14。

53.D解析:本題考查了考生對字符串常量的理解。字符串常量是一段以雙引號括起來的字符序列,它既可以出現(xiàn)在對字符數(shù)組的初始化中,也可以出現(xiàn)在表達式中。當它用于對字符數(shù)組的初始化時,應注意系統(tǒng)自動為其添加的結束標志'\\0'。而當它出現(xiàn)在表達式中時,應該將其看作一個constchar*類型的指針常量。在選項A中,首先定義了一個字符指針sp,然后將一個字符串賦給甲所指的地址,這是錯誤的。因為sp是一個未經(jīng)初始化的野指針,不知其指向哪兒,往一個不確定的地址中寫數(shù)據(jù)很容易讓程序出錯。選項B首先定義了一個字符數(shù)組,然后將一個字符串賦給數(shù)組名,這是錯誤的。因為數(shù)組名是一個指針常量,不可以被改變。選項C首先定義了一個字符數(shù)組,然后將一個字符串賦給數(shù)組的第一個元素,這也是錯誤的。因為字符串在表達式中相當于一個常字符指針,將一個指針值賦給一個字符型變量是行不通的。選項D是定義一個字符指針sp,同時使其指向一個字符串常量,即將一個常字符型指針賦給sp。這是可行的。所以,4個選項中選項D符合題意。

54.A解析:本題程序的功能是求1到99之間(包括1和99)所有奇數(shù)之和。程序中的while循環(huán)的終止條件為++i=100,在while循環(huán)體內,如果i是偶數(shù),則執(zhí)行continue,跳過這一次循環(huán),執(zhí)行下—次循環(huán),否則求和和。最后輸出的值是1到99之間(包括1和99)所有奇數(shù)之和(1+99)*50/2=2500。

55.D解析:中序遍歷的遞歸算法如下:①遍歷左子樹;②訪問根結點;③遍歷右子樹。前序遍歷的遞歸算法如下:①訪問根結點;②遍歷左子樹;③遍歷右子樹。后序遍歷的遞歸算法如下:①遍歷左子樹;②遍歷右子樹;③訪問根結點。由后序遍歷結果dabec可知c是根結點,且無右子樹。再由左子樹的后序遍歷結果dabe可知,e是左子樹的根結點,且由左子樹的中序遍歷結果deba可知,d是左子樹的左子樹結點,b和a是左子樹的右子樹結點。再次由后序遍歷結果ab可知,a是左子樹結點。b是根結點。至此,各結點在樹中的位置已完全確定。

56.B解析:根據(jù)題中給定的條件,可做如下模擬操作:

①元素a、b、c進棧,棧中有3個元素,分別為a、b、c;

②元素c出棧后,元素d、e、f進棧,棧中有5個元素,分別為a、b、d、e、f;

③元素f、e、d、a、b出棧,棧為空??梢钥闯?,進棧的順序為a、b、c、d、e、f,出棧的順序為c、f、e、d、b、a,滿足題中所提出的要求。

在每一次進棧操作后,棧中最多有3個元素,因此,為了順利完成這些操作,棧的容量應至少為5。本題答案為B。

57.D本題考查如何引用數(shù)組元素的地址。選項A)中,p5引用的是af51的地址,而數(shù)組a只有5個元素,即a[0]、a[1]、a[2]、a[3]、a[4],所以引用錯誤;選項B)中,*a1指的是將數(shù)組a的第一個元素加1;選項C)中,這種引用方式錯誤;選項D)中,&a[0]引用的是數(shù)組的首地址。

58.A解析:p是指向結構aa的結構指針,++(p->x)是對p的x成員的值進行加1。p=aa使得p指向aa的首地址,p->x的值為50,那么++(p->X)就等于51。

59.A解析:本題考核的知識點是for循環(huán)和switch語句的綜合運用。for循環(huán)執(zhí)行了3次,第一次時i的值為0,執(zhí)行其后的switch語句,沒有匹配的case,執(zhí)行default語句后的pdntf語句,輸出為0;第二次循環(huán)時i的值為1,執(zhí)行其后的switch語句,與第一個case分支匹配,執(zhí)行其后的printf語句,輸出1,由于沒有遇到break語句,所以一直向下執(zhí)行,又輸出了兩個1,第三次循環(huán)時i值為2,執(zhí)行其后的switch語句,同理輸出兩個2。所以,A選項為所選。

60.B解析:本題考查二維數(shù)組第一維的大小如何確定。二維數(shù)組第一維的大小由下列規(guī)則確定:①當初值的個數(shù)能被第二維的常量表達式的值除盡時,所得商數(shù)就是第一維的大?。孩诋敵踔档膫€數(shù)不能被第二維的常量表達式的值除盡時,第一維的大小等于所得商數(shù)加1。

61.D

62.B按邏輯位運算特點:①用按位與運算將特定位清為0或保留特定位;②用按位或運算將特定的位置為1;③用按位異或運算將某個變量的特定位翻轉或交換兩個變量的值。

63.AA選項stnletonl{intx;inty;int2;struetoraa;錯誤,不

溫馨提示

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

評論

0/150

提交評論