2022年安徽省合肥市全國計算機(jī)等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第1頁
2022年安徽省合肥市全國計算機(jī)等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第2頁
2022年安徽省合肥市全國計算機(jī)等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第3頁
2022年安徽省合肥市全國計算機(jī)等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第4頁
2022年安徽省合肥市全國計算機(jī)等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2022年安徽省合肥市全國計算機(jī)等級考試C語言程序設(shè)計知識點匯總卷(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.

2.對于C語言的函數(shù),下列敘述中正確的是()。

A.函數(shù)的定義不能嵌套,但函數(shù)調(diào)用可以嵌套

B.函數(shù)的定義可以嵌套,但函數(shù)調(diào)用不能嵌套

C.函數(shù)的定義和調(diào)用都不能嵌套

D.函數(shù)的定義和調(diào)用都可以嵌套

3.若有定義和語句:inta,b;scanf("%d,%d",&a,&b);以下選項中的輸人數(shù)據(jù),不能把值3賦給變量a、5賦給變量b的是()。A.3,5,B.3,5,4C.3,5D.3,5

4.若x和y都是int型變量,x=100,y=200,且有程序片段:printf("%d",(x,y));上面程序片段的輸出結(jié)果()

A.200B.100C.100200D.輸出格式符不夠,輸出不確定的值

5.

6.

7.以下敘述中正確的是______。

A.C語言比其他語言高級

B.C語言可以刁;用編譯就能被計算機(jī)識別執(zhí)行

C.C語言以接近英語國家的自然語言和數(shù)學(xué)語言作為語言的表達(dá)形式

D.C語言出現(xiàn)的最晚,具有其他語言的一切優(yōu)點

8.C語言源程序的擴(kuò)展名是()。

A..CB..exeC..objD..cp

9.某堆棧的輸入序列為a,b,c,d,下面的四個序列中,不可能是它的輸出序列的是()。

A.a,c,b,dB.b,c,d,aC.c,d,b,aD.d,c,a,b

10.折半查找法的查找速度一定比順序查找法快()。

A.正確B.錯誤

11.有以下程序:viodfun(inta,intb,intc){a=456;b=567;c=678;}main{intx=10,y=20,z=30;fun(x,y,z);printf("%d,%d,%d\n",x,y,z);}輸出的結(jié)果是()。A.30,20,10B.10,20,30C.456,567,678D.678,567,456

12.有以下程序:main{inta=0,b=0;a=10;/*給a賦值b=20;給b賦值*/printf(“a+b=%d\n”,a+b);/*輸出計算機(jī)結(jié)果*/}程序運行后的輸出結(jié)果是()。A.a+b=10B.a+b=30C.30D.出錯

13.對于棧操作數(shù)據(jù)的原則是()。

A.先進(jìn)先出B.后進(jìn)先出C.后進(jìn)后出D.不分順序

14.有以下程序

#include<stdio.h>

#include<stdlib.h>

main()

{int*a,*b,*c;

a=b=c=(int*)malloc(sizeof(int));

*a=1;*b=2,*c=3;

a=b

printf(”%d,%d,%d\n”,*a,*b,*c);

}

程序運行后的輸出結(jié)果是()。A.3,3,3B.2,2,3C.1,2,3D.1,1,3

15.設(shè)二叉樹的中序序列為BCDA,前序序列為ABCD,則后序序列為()。

A.CBDAB.DCBAC.BCDAD.ACDB

16.下面不能正確表示a*b/(c*d)的表達(dá)式是()。

A.(a*b)/c*dB.a*b/(c*d)C.a/c/d*bD.a*b/c/d

17.數(shù)據(jù)字典(DD)所定義的對象都包含于()。

A.軟件結(jié)構(gòu)圖B.方框圖C.數(shù)據(jù)流圖(DFD圖)D.程序流程圖

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

A.循環(huán)隊列是隊列的一種鏈?zhǔn)酱鎯Y(jié)構(gòu)

B.循環(huán)隊列是隊列的一種順序存儲結(jié)構(gòu)

C.循環(huán)隊列是非線性結(jié)構(gòu)

D.循環(huán)隊列是一種邏輯結(jié)構(gòu)

19.算術(shù)運算符和圓括號有不同的運算優(yōu)先級,對于表達(dá)式“a+b+c*(d+e)”,關(guān)于執(zhí)行順序,以下說法正確的是()。

A.先執(zhí)行“(d+e)”得r2,再執(zhí)行“c*r2”得r3,再執(zhí)行“a+b”得r1,最后執(zhí)行“r1+r3”得表達(dá)式最后結(jié)果

B.先執(zhí)行“a+b”得r1,再執(zhí)行“(d+e)”得r2,再執(zhí)行“c*r2”得r3,最后執(zhí)行“r1+r3”得表達(dá)式最后結(jié)果

C.先執(zhí)行“(d+e)”得r2,再執(zhí)行“c*r2”得r3,再執(zhí)行“b+r3”得r4,最后執(zhí)行“a+r4”得表達(dá)式最后結(jié)果

D.先執(zhí)行“a+b”得r1,再執(zhí)行“r1+c”得r5,再執(zhí)行“(d+e)”得r2,最后執(zhí)行“r5*r2”得表達(dá)式最后結(jié)果

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

A.在switch語句中,不一定使用break語句

B.break語句只能用于switch語句

C.break語句必須與switch語句中的case配對使用

D.在switch語句中必須使用default

二、2.填空題(20題)21.軟件測試分為白箱(盒)測試和黑箱(盒)測試。等價類劃分法屬于【】測試。

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

structNode}

intx;

charch;

};

fun(structNode*sn)

}statick=1;

sn->x=20;

Sn->ch='a'+k++;

}

main()

{inti;

staticstructNodest=}10,'a'};

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

fun(&st);

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

}

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

#include<stdio,h>

main()

charc1,c2;

for(el='0',c2='9';e1<c2;c1++,c2--)printf("%c%c",c1,c2);

printf("\n");

}

24.下面程序?qū)⒍S數(shù)a的行和列元素互換后存放另一個二維數(shù)組b中。請?zhí)羁铡?/p>

main()

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

intb[3][2],i,j;

printf("arraya"\n");

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

{for(j=0;【】;j++)

{printf("%5d",a[i][j]);

【】;}

printf("\n");}

printf("arrayb:\n");

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

{for(j=0;j<=1;j++)

printf("%5d",b[i][j]);

printf("\n");}}

25.下面函數(shù)的功能是將一個字符串的內(nèi)容顛倒過來,請?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;}}

26.以下程序的作用是:從名為filea.dat的文本文件中逐個讀入字符并顯示在屏幕上。請?zhí)羁铡?/p>

#include<stdio.h>

main()

{FILE*fp;charch;

fp=fopen(【】);

ch=fgetc(fp);

while(!feof(fp)){putchar(ch);ch=fgetc(fp);}

putchar('\n');fclose(fp);

}

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

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

a=15;

b=0;

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

29.若有如下程序:

voidsub()

{staticintx=6;

x/=2;printf("%d",x);}

main()

{intm;

for(m=0;m<=2;m++)sub();}

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

30.在結(jié)構(gòu)化設(shè)計方法中,數(shù)據(jù)流圖表達(dá)了問題中的數(shù)據(jù)流與加工間的關(guān)系,并且每一個______實際上對應(yīng)一個處理模塊。

31.下列程序?qū)⒍S數(shù)組a的行和列元素互換后存放到另一個二維數(shù)組b中。請?zhí)羁铡?/p>

main()

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

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

{for(j=0;j<30++)

______;

}

}

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

#include<stdio.h>

main()

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

d=(a>b>c);

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

}

33.程序如下:

main()

{inti=4;

printf("%d",-++i);

}

該程序執(zhí)行后的輸出結(jié)果以及i的值分別是______、_______。

34.在Windows環(huán)境下,可以將窗口最小化為【】。

35.以下程序的功能是根據(jù)輸入的“y”(“Y”)與“n”(“N”),在屏幕上分別顯示出“ThisisYES.”與“ThisNO.”。空白處需要填入的內(nèi)容是

#include<stdio.h>

voidYesNo(charch)

{switch(ch)

{case'y':

case'Y':printf("\nThisisYES,\n");

case'n':

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

main()

{charch;

printf("\nEnterachar'y','Y'or'n','N':");

ch=【】;

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

YesNo(ch);}

36.設(shè)有以下結(jié)構(gòu)體類型:

structst

{charname[8];

intnum;

floats[4];

}student[50];

并且結(jié)構(gòu)體數(shù)組student中的元素都已有值。若要將這些元素寫到硬盤文件fp中,請將以下fwrite語句補(bǔ)充完整:

fwrite(student,【】,1,fp);

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

structs

{intx,y;}data[2]={10,100,20,200};

main()

{

structs*p=data;

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

}

38.以下程序中,fun函數(shù)的功能是求3行4列二維數(shù)組每行元素中的最大值。請?zhí)羁铡?/p>

#include<stdio,h>

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;i<3;i++)printf("%4d",b[i]);

prinff("\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])x=ar[i][j];

【】=x;

}

}

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

structNODE

{inthum;structNODE*next;

};

main()

{structNODEs[3]={{1,'\0'},{2,'\0'},{3,'\0'}},*p,*q,*r;

intsum=0;

s[0].next=s+1;s[1].next=s+2;s[2].next=s;

p=S;q=p->next;r=q->next;

sum+=q=>next->num;sum+=r->next->next->num;

40.以下程序用于判斷a,b,c能否構(gòu)成三角形,若能,輸出YES,否則輸出NO。當(dāng)給a,b,c輸入三角形三條邊長時,確定a,b,c能構(gòu)成三角形的條件是需同時滿足三個條件:a+b>c,a+c>b,b+c>a。請?zhí)羁铡?/p>

#include<stdio.h>

main()

{floata,b,c;

scanf("%f%f%f",&a,&b,&c);

if(【】)printf("YES\n");/*a.b.c能構(gòu)成三角形*/

elseprinff("NO\n");/*a.b.c不能構(gòu)成三解形*/

}

三、1.選擇題(20題)41.下列敘述中,不屬于結(jié)構(gòu)化分析方法的是()。A.A.面向數(shù)據(jù)流的結(jié)構(gòu)化分析方法

B.面向數(shù)據(jù)結(jié)構(gòu)的Jackson方法

C.面向數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)化數(shù)據(jù)系統(tǒng)開發(fā)方法

D.面向?qū)ο蟮姆治龇椒?/p>

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

A.改變函數(shù)形參的值,不會改變對應(yīng)實參的值

B.函數(shù)可以返回地址值

C.可以給指針變量賦一個整數(shù)作為地址值.

D.當(dāng)在程序的開頭包含頭文件stdio.h時,可以給指針變量賦NULL

43.八進(jìn)制數(shù)253.74轉(zhuǎn)換成二進(jìn)制數(shù)是()

A.10101011.1111

B.10111011.0101

C.11001011.1001

D.10101111.1011

44.下列敘述中正確的是()。A.一個邏輯數(shù)據(jù)結(jié)構(gòu)只能有一種存儲結(jié)構(gòu)

B.邏輯結(jié)構(gòu)屬于線性結(jié)構(gòu),存儲結(jié)構(gòu)屬于非線性結(jié)構(gòu)

C.一個邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲結(jié)構(gòu),且各種存儲結(jié)構(gòu)不影響數(shù)據(jù)處理的效率

D.一個邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲結(jié)構(gòu),且各種存儲結(jié)構(gòu)影響數(shù)據(jù)處理的效率

45.下面程序段的運行結(jié)果是chara[]="lanuage",*p;p=a;while(*p!='u'){printf("%c",*p-32);p++;}

A.LANGUAGEB.languageC.LAND.langUAGE

46.執(zhí)行以下語句的結(jié)果為______。y=10;x=y++;

A.x-10,y=10B.x=11,y=11C.x=10,y=11D.x=11,y=10

47.軟件需求分析階段的工作可以分為4個方面:需求獲取、需求分析、編寫需求分析說明書和

A.階段性報告B.需求評審C.總結(jié)D.都不正確

48.數(shù)據(jù)結(jié)構(gòu)中,與所使用的計算機(jī)無關(guān)的是數(shù)據(jù)的()。A.存儲結(jié)構(gòu)B.物理結(jié)構(gòu)C.邏輯結(jié)構(gòu)D.物理和存儲結(jié)構(gòu)

49.設(shè)有說明語句如下:staticcharstr[]="Beijing";若執(zhí)行下列輸出語句:printf("%d\n",strlen(strcpy(str,"China")));則輸出結(jié)果為()。

A.5B.7C.12D.14

50.設(shè)有定義:inta=2,b=3,c=4;則以下選項中值為0的表達(dá)式是()。

A.(!a==1)&&(!b==0)

B.(a<b)&&!c‖1

C.a&&b

D.a‖(b+b)&&(c-a)

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

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

52.下列程序的執(zhí)行結(jié)果是______。in(f(char*s){char*p=s;while(*p!='\0')p++;return(p-s);}main(){printf("%d\n",f("goodbye!"));}

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

53.設(shè)有以下說明語句typedefstruct{intn;charch[8];}PER;則下面敘述中正確的是

A.PER是結(jié)構(gòu)體變量名

B.PER是結(jié)構(gòu)體類型名

C.typedefstruct是結(jié)構(gòu)體類型

D.struct是結(jié)構(gòu)體類型名

54.結(jié)構(gòu)化程序設(shè)計的一種基本方法是()

A.篩選法B.遞歸法C.歸納法D.逐步求精法

55.下面程序運行后的輸出結(jié)果是_____。structabc{inta,b,c;}main(){structabcs[2]={{1,2,3},{4,5,6}};intt=s[0].a+s[1].b;printf("%d\n",t);}

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

56.有以下程序:main(){intx=3,y=2,z=1;printf("%d\n",x/y&~z);}程序運行后的輸出結(jié)果是______。

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

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

A.C語言的整型變量可以分為int、short、long、unsignedint、unsignedshort、unsignedlong等幾種類型,因此整型常量也可以分為這幾種類型

B.C語言的字符數(shù)據(jù)與整型數(shù)據(jù)可以互相賦值

C.若對字符型變量的定義為:charc;可使用語句c="a",對變量c賦值

D.已知x為float型,執(zhí)行語句(int)x后,x為int型

58.有以下程序:main(){inta=15,b=21,m=0;switch(a%3){case0:m++;break;case1:m++;switch(b%2){default:m++;case0;m++;break;}}printf("%d\n",m);}程序運行后的輸出結(jié)果是()。

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

59.fgets(str,n,fp)函數(shù)從文件中讀入一個字符串,以下錯誤的敘述是()。

A.字符串讀入后會自動加入'\0'

B.fp是指向該文件的文件型指針

C.fgets函數(shù)將從文件中最多讀入n個字符

D.fgets函數(shù)將從文件中最多讀入n-1個字符

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

A.ACBEDGFHB.ABDGCEHFC.HGFEDCBAD.ABCDEFGH

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

A.一個C程序中可以包含多個不同名的函數(shù)

B.一個C程序只能有一個主函數(shù)

C.C程序在書寫時,有嚴(yán)格的縮進(jìn)要求,否則不能編譯通過

D.C程序的主函數(shù)必須用main作為函數(shù)名

62.(36)下列工具中屬于需求分析常用工具的是()

A.PAD

B.PFD

C.N-S

D.DFD

63.以下函數(shù)按每行8個輸出數(shù)組中的數(shù)據(jù):

下劃線處應(yīng)填入的語句是()。

A.

B.

C.

D.

64.

有以下程序

#include<stdi0.h>

main

{FILE*fp;inta[0]一{1,2,3,0,0},i;

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

fwrite(a,sizeof(int),5,fp);

fwrite(a,sizeof(int),5,fp);

fclose(fp);

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

fread(a.sizeof(int),10,fp);

fclose(fp);

for(i=0;i<10;i++)printft("%d",a[i]);

}

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

A.1,2,3,0,0,o,0,0,0,0,

B.1,2,3,1,2,3,0,0,0,0,

C.123,0,0,0,0,123,0,0,0,0,

D.1,2,3,0,0,1,2,3,0,0,

65.

有下列程序:

#include<stdio.h>

main

{inta=6,b=7,m=1;

switch(a%2)

{case0:m++;break;

case1:m++;

switch(b%2)

{default:m++;

case0:m++;break;

}

}

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

}

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

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

66.有以下程序:

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

A.45B.20C.25D.36

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

charstr[15]=”hello!”;

printf(“%d\n”,strlen(str));

A.15B.14C.7D.6

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

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

69.下列關(guān)于棧的描述錯誤的是()。

A.棧按“先進(jìn)后出”組織數(shù)據(jù)B.棧是特殊的線性表,只能在一端插入或刪除數(shù)據(jù)C.棧具有記憶功能D.棧只能順序存儲

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

A.ACFXDBEYZB.ABEFXYZCDC.ABCDEFXY7D.ABDYECFXZ

71.為用戶與數(shù)據(jù)庫系統(tǒng)提供接口的語言是

A.高級語言B.數(shù)據(jù)描述語言(DDL)C.數(shù)據(jù)操縱語言(DML)D.匯編語言

72.

73.

74.為了提高軟件的獨立性,模塊之間最好是()。

A.控制耦合B.公共耦合C.內(nèi)容耦合D.數(shù)據(jù)耦合

75.

有以下程序.

#include<stdio.h>

main

{charc1,c2,c3,c4,c5,c6;

scanf("%c%c%c%c",&c1,&c2,&c3,&c4);

c5=getchar;c6=getchar;

putchar(c1);putchar(c2);

printf("%c%c\n",c5,c6);

}

程序運行后,若從鍵盤輸入(從第l列開始)

123<回車>

45678<回車>

則輸出結(jié)果是()。

A.1267B.1256C.1278D.1245

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

A.算法就是程序B.設(shè)計算法時只需要考慮數(shù)據(jù)結(jié)構(gòu)的設(shè)計C.設(shè)計算法時只需要考慮結(jié)果的可靠性D.以上三種說法都不對

77.對如下二叉樹進(jìn)行后序遍歷的結(jié)果為()。

A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA

78.有下列程序:fun(intx,inty){staticintm=0,i=2;i+=m+1;m=i+x+y;returnm;}main(){intj=1,m=1,k;k=fun(j,m);printS(”%d,”,k);k=fun(j,m);printf(”%d\n”,k);)執(zhí)行后的輸出結(jié)果是()。A.5,5B.5,11C.11,11D.11,5

79.

80.若運行以下程序時,從鍵盤輸入ADescriptor<CR>(<CR>表示回車),則下面程序的運行結(jié)果是()。

A.v0=7,vl=4,v2=7

B.v0=8,vl=4,v2=8

C.v0=11,vl=4,v2=11

D.v0=13,vl=4,v2=12

五、程序改錯題(1題)81.下列給定程序中,函數(shù)fun()的功能是:將tt所指字符串中的小寫字母全部改為對應(yīng)的大寫字母,其他字符不變。例如,若輸入“Ab,cD”,則輸出“AB,CD”。請改正程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:

六、程序設(shè)計題(1題)82.規(guī)定輸入的字符串中只包含字母和*號。請編寫函數(shù)fun,其功能是:除了字符串前導(dǎo)的。號之外,將串中其他*號全部刪除。在編寫函數(shù)時.不得使用C語言提供的字符串函數(shù).

參考答案

1.A

2.A

3.C在輸入3和5之間除逗號外不能有其他字符。

4.A

5.D

6.D

7.C解析:計算機(jī)語言分為低級語言、匯編語言和高級語言,C語言屬于高級語言,但并不是說C語言比其他語言高級,所以選項A錯誤;除了低級語言外,其他各種語言都必須譯成能被計算機(jī)識別的二進(jìn)制數(shù)才能執(zhí)行,選項B錯誤;C語言出現(xiàn)從1972年到1973年間,并不是出現(xiàn)最晚的語言,所以選項D也是錯誤的。

8.AC語言源程序的擴(kuò)展名是.C,目標(biāo)文件的擴(kuò)展名是.obj,可執(zhí)行文件的擴(kuò)展名是.exe。故本題答案為A選項。

9.D

10.B

11.B本題考查實參與形參調(diào)用,從實參傳遞到形參時,只是數(shù)值的傳遞,調(diào)用函數(shù)中值的改變不會影響主函數(shù)中的值,因此原樣輸出。

12.AC語言規(guī)定,注釋語句可以換行寫,并且一個“/*”和其后緊跟的第一個“*/”中間的部分是注釋內(nèi)容,并且注釋部分的內(nèi)容不參與程序的執(zhí)行,因此本題中沒有執(zhí)行“b=20”;這條語句。

13.B

14.A解析:本題中,首先創(chuàng)建開辟一個動態(tài)內(nèi)存,然后將地址分別存入指針a、b、c中,即a、b、c都指向相同的變量。分別給a、b、C所指的變量賦值,最終a、b、c所指的變量中的值為3,最后打印a、b、c所指的變量的值,即3,3,3。所以選A。

15.B二叉樹的前序序列為ABCD,由于前序遍歷首先訪問根節(jié)點,可以確定該二叉樹的根節(jié)點是A。再由中序序列為BCDA,可知以A為根節(jié)點的該二叉樹只存在左子樹,不存在右子樹,故后序序列為DCBA。本題答案為B選項。

16.A

17.C數(shù)據(jù)字典(DD)是指對數(shù)據(jù)的數(shù)據(jù)項、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、數(shù)據(jù)存儲、處理邏輯、外部實體等進(jìn)行定義和描述,其目的是對數(shù)據(jù)流程圖中的各個元素做出詳細(xì)的說明。

18.B本題主要考查循環(huán)隊列的概念,循環(huán)隊列作為隊列的一種也應(yīng)該是線性結(jié)構(gòu)。隊列是一種邏輯結(jié)構(gòu),而循環(huán)隊列是一種順序存儲結(jié)構(gòu)的隊列。

19.B題干表達(dá)式中,圓括號的優(yōu)先級最高,乘法運算符次之,加法運算符最低。同優(yōu)先級中,加法運算符的結(jié)合性從左向右結(jié)合,所以題干中的表達(dá)式執(zhí)行順序是:先執(zhí)行“a+b”得r1,再執(zhí)行“(d+e)”得r2,再執(zhí)行“c*r2”得r3,最后執(zhí)行“r1+r3”得表達(dá)式最后結(jié)果。故本題答案為B選項。

20.Aswitch語句中不一定使用break語句,選項A正確;break語句除了用于switch語句,還可以用于循環(huán)語句中,選項B、C錯誤;switch語句不一定需要使用default語句,選項D錯誤。本題答案為A選項。

21.黑箱或黑盒黑箱或黑盒解析:黑箱測試是根據(jù)程序規(guī)格說明所規(guī)定的功能來設(shè)計測試用例,它不考慮程序的內(nèi)部結(jié)構(gòu)和處理過程。常用的黑箱測試技術(shù)分為等價類劃分、邊界分析、錯誤猜測以及因果圖等。

22.20c。20,c。解析:函數(shù)fun的功能是給結(jié)構(gòu)體指針變量所指的結(jié)構(gòu)體變量的各成員賦值,主函數(shù)兩次調(diào)用函數(shù)fun,第一次調(diào)用,實參st兩個成員的值是20和字符b,調(diào)用結(jié)束時,靜態(tài)局部變量k沒有釋放,值為2:第二次調(diào)用,實參st兩個成員的值是20和字符c,調(diào)用結(jié)束時,靜態(tài)局部變量k沒有釋放,值為3;因此,輸出結(jié)果是20和c。

23.918273645918273645解析:程序通過for循環(huán)將字符'0'~'9'從前向后,同時從后向前依次輸出,所以輸出結(jié)果為:0918273645。

24.j<2b[j][i]=a[i][j]i<=2j<2\r\nb[j][i]=a[i][j]\r\ni<=2解析:本題考查了二維數(shù)組元素的引用。a[i][j]表示的是二維數(shù)組a的第i+1,第j+1列的元素。

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

26.“filea.dat”“r”“filea.dat”,“r”解析:fopen函數(shù)的調(diào)用方式通常為fopen(文件名,使用文件方式)。本題中要求程序可以打開filea.dat文件,并且是要讀取文件中的內(nèi)容,所以空白處應(yīng)當(dāng)填入'filea.dat','r'。

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

28.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)。

29.310

30.加工加工解析:數(shù)據(jù)流圖是從數(shù)據(jù)傳遞和加工的角度,來刻畫數(shù)據(jù)流從輸入到輸出的移動變換過程。其中的每一個加工對應(yīng)一個處理模塊。

31.b[j][i]=a[i][j]b[j][i]=a[i][j]解析:本題考查二維數(shù)組的基本知識。它是要將一個二維數(shù)組,的行和列元素互換后存放到另一個二維數(shù)組b中,只要將數(shù)組a的行標(biāo)和列標(biāo)互換,然后賦給數(shù)組b即可。

32.00解析:在本題中,d=(a>b>c);相當(dāng)于d=(5>4>3);其計算過程為:先算5>4,結(jié)果為真,得1,即d=(1>3);然后計算1>3,結(jié)果為假,得0。

33.-55。

34.圖標(biāo)或按鈕圖標(biāo)或按鈕

35.getchargetchar解析:題中要求根據(jù)輸入的字符調(diào)用函數(shù)YesNo來判斷輸入的字符是y(Y)還是n(N),字符的輸入可用字符輸入函數(shù)getchar。函數(shù)YesNo用來判斷一個字符是y(Y)還是n(N),主要用了一個switch多分支結(jié)構(gòu)來比較輸入字符與字符'y','Y'、,'n','N'是否相等來實現(xiàn)的。注意:用于字符串處理的函數(shù)。

36.sizeof(structst)*50sizeof(structst)*50解析:fwrite函數(shù)的一般調(diào)用形式為:fwrite(buffer,size,count,fp);其中:buffer是一個指針變量,是要輸出數(shù)據(jù)的起始地址;size是要寫的字節(jié)數(shù);count是要寫多少個size字節(jié)的數(shù)據(jù)項;fp是文件指針。

37.1111解析:程序中結(jié)構(gòu)體數(shù)組data首地址(即&data[0])賦值給結(jié)構(gòu)體指針變量p,++(P->x)表示先將p所指向的結(jié)構(gòu)體變量的成員x值加1,然后將此x(即data[0].x)輸出。

38.br[i]或*(br+i)br[i]或*(br+i)解析:程序中的數(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)則從一行的4個數(shù)中找出最大數(shù)x,然后將最大值x賦給數(shù)組br,故空格處應(yīng)填br[i]或*(br+i)。

39.解析:程序通過語句“s[0]next=s+1;s[1].next=s+2;s[2].next=s;”將結(jié)構(gòu)體變量s中各結(jié)點連接成了一個循環(huán)鏈表,即最后一個結(jié)點的指針域指向了頭結(jié)點,整個鏈表形成了一個環(huán),并通過語句“p=s;q=p->next;r=q->next;”將結(jié)構(gòu)體指針變量p、q、r指向了各結(jié)點。

40.(a+b>c)&&(a+c>b)&&(b+c>a)(a+b>c)&&(a+c>b)&&(b+c>a)解析:根據(jù)構(gòu)成三角形的條件:兩邊之和大于第三邊,得出空格應(yīng)該填(a+b>c)&&(a+c>b)&&(b+c>a)或與其等價的形式。

41.D解析:常見的需求分析方法有結(jié)構(gòu)化分析方法和面向?qū)ο蟮姆治龇椒▋深悺F渲薪Y(jié)構(gòu)化分析方法又包括面向數(shù)據(jù)流的結(jié)構(gòu)化分析方法(SA-Structuredanalysis),面向數(shù)據(jù)結(jié)構(gòu)的Jackson方法(JSD-Jacksonsystemdevelopmentmethod)和面向數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)化數(shù)據(jù)系統(tǒng)開發(fā)方法(DSSD-Datastructuredsystemdevelopmentmethod)。

42.C解析:函數(shù)形參和實參分別占用不同的內(nèi)存單元,改變形參的值不會影響對應(yīng)實參的值,選項A)正確。指針類型的函數(shù)可以返回地址值,選項B)正確。在文件stdio.h中,NULL被定義為void型的指針,選項D)也正確。指針變量的值只能是存儲單元地址,而不能是一個整數(shù),選項C)錯誤。

43.A

44.DD)【解析】數(shù)據(jù)的存儲結(jié)構(gòu)是指數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機(jī)存儲空間中的存放形式,一種數(shù)據(jù)結(jié)構(gòu)可以根據(jù)需要采用不同的存儲結(jié)構(gòu),常用的存儲結(jié)構(gòu)有順序和鏈?zhǔn)浇Y(jié)構(gòu)。采用不同的存儲結(jié)構(gòu),其處理的效率是不同的。

45.C解析:本段程序的作用是輸出字符串“l(fā)anuage”中字母u之前的字符,并將其轉(zhuǎn)化為大寫字母。注意:如果一個字符數(shù)組用來作為字符串使用,那么在定義該字符數(shù)組時,數(shù)組的大小就應(yīng)該比它將要實際存放的最長字符多一個元素,以存放‘\\0’。

46.C解析:執(zhí)行語句x=y++,是先將y的值10賦給x,然后y自增。

47.B解析:本題考查軟件需求分析的四個階段,分別為需求獲取、需求分析、編寫需求分析說明書和需求評審。

48.C數(shù)據(jù)結(jié)構(gòu)概念一般包括3個方面的內(nèi)容,數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲結(jié)構(gòu)(物理結(jié)構(gòu))及數(shù)據(jù)上的運算集合。數(shù)據(jù)的邏輯結(jié)構(gòu)只抽象地反映數(shù)據(jù)元素之間的邏輯關(guān)系,即數(shù)據(jù)元素之間的前后件關(guān)系,而不管它在計算機(jī)中的存儲表示形式。

49.A解析:本題考查求字符串的長度。數(shù)組str初始化的長度是7,使用strcpy函數(shù)將新字符串賦給str后,strlen函數(shù)返回的是新字符串的字符個數(shù)5。

50.A解析:邏輯運算符的優(yōu)先級由高到低運算次序如下:!(非)→&&(與)→||(或),選項A)的表達(dá)式中,先計算!a,結(jié)果為0,由于'0==1'不成立,故整個表達(dá)式的值為0。

51.A解析:該程序通過main函數(shù)循環(huán)凋用sum函數(shù)。

當(dāng)i=2時,將實參aa[2]的地址傳遞給形參,此時a[0]=a[1]=aa[3]=4,即aa[2]=4;

當(dāng)i=1時,將實參aa[1]的地址傳遞給形參,此時a[0]=a[1]=aa[2]=4,即aa[1]=4;

當(dāng)i=0時,將實參aa[0]的地址傳遞給形參,此時a[0]=a[1]=aa[1]=4,即aa[0]=4;

當(dāng)i=-1時,不滿足條件i>=0,跳出循環(huán),程序執(zhí)行后數(shù)組aa中的值為4,4,4,4,5,6,7,8,9,10,所以aa[0]=4。

52.C解析:字符在內(nèi)存中占一個字節(jié)的存儲空間,按字符的存儲順序,其地址依次遞增,在函數(shù)f中循環(huán)過后,p指向字符串的結(jié)束位置,s指向字符串首地址,p-s即為字符串長度。

53.B解析:本題中,typedef聲明新的類型名PER來代替已有的類型名,PER代表上面指定的一個結(jié)構(gòu)體類型,此時,也可以用PER來定義變量。

54.D解析:在結(jié)構(gòu)化程序設(shè)計中,通常采取自頂向下、逐步求精的方法,尤其是在詳細(xì)設(shè)計和編碼階段,其總的思想就是先全局后局部、先整體后細(xì)節(jié)、先抽象后具體、程序自頂向下、逐步細(xì)化。而篩選法、遞歸法和歸納法指的都是程序的某種具體算法。逐步求精法是結(jié)構(gòu)化程序設(shè)計中很重要的思想,一定要牢記!

55.B解析:在main函數(shù)中定義了一個structabc類型的數(shù)組,同時分別利用{1,2,3}及{4,5,6}對數(shù)組中兩個元素進(jìn)行初始化。在該結(jié)構(gòu)體,依次對其中的a,b,c三個變量進(jìn)行初始化。故s[0].a=1,s[1].b=5,所以本題輸出為6。

56.D解析:本題中表達(dá)式x/y&~z中運算符優(yōu)先級的順序為:~(按位取反)、/(除)、&(按位與),即首先執(zhí)行~z得11111110,然后執(zhí)行x/y=3/2=1,最后執(zhí)行1&11111110=00000001&11111110=00000000=0。

57.B

58.A解析:在switch語句中break語句的作用是退出分支語句,若沒有break語句則一直向下執(zhí)行。本題中首先計算switch后面括號里的表達(dá)式a%3,即15%3為0:執(zhí)行case0:后面的語句“m++;”,m自加1,即m為1;遇到break語句;然后跳出switch語句,所以最后輸出的m值為1。所以選項A正確。

59.C解析:字符串輸入函數(shù)fgets()的調(diào)用形式為:fgets(s,n,fp)。s可以是一個字符數(shù)組名,或是指向字符串的指針;n為要讀取的最多的字符個數(shù):fp是指向該文件的文件型指針。字符串輸入函數(shù)的功能是:從fp所指向的文件中讀取長度不超過n-1個字符的字符串,并將該字符串存放到字符數(shù)組s中。

60.B解析:對二叉樹的前序遍歷是指:先訪問根結(jié)點,然后訪問左子樹,最后訪問右子樹,并且,在訪問左、右子樹時,先訪問根結(jié)點,再依次訪問其左,右子樹。

61.C【答案】C

【知識點】C程序的函數(shù)

【解析】C程序必須有且只有一個主函數(shù)main()。一個C程序可以包含多個不重名的子函數(shù)。C程序在書寫時沒有嚴(yán)格的縮進(jìn)要求,語句前的縮進(jìn)隨意。

62.D

63.C在c語言循環(huán)語句中continue用來跳出當(dāng)次循環(huán),因此B)項和D)項不正確。if(i/8==0)是指當(dāng)i除以8的商等于0,即i的值小于8時,打印換行,因此A)項不正確。if(i%8==0)是指當(dāng)i除以8的余數(shù)等于0,即當(dāng)間隔8個數(shù)時,打印換行,因此選項c)正確。

64.D

\n本題程序首先用函數(shù)fopen以“wb”的方式開打文件“d2.dat”,然后調(diào)用兩次fwrite函數(shù)將數(shù)組a的5個元素,依次輸出到文件fp中,共10個字節(jié),關(guān)閉文件。再次打開文件,使用文件指針指向文件的開頭,調(diào)用head函數(shù)從文件印中讀取這10個字節(jié)的數(shù)據(jù)到數(shù)組a中。型數(shù)組bb中,因此,【2】處填“str[i]-0”;由函數(shù)proc可知,變量n中存放整型數(shù)組bb中的元素個數(shù),最后要返回到主函數(shù)當(dāng)中,因此,【3】處填“n”。\n

65.B

\n本題考查switch語句及break的用法。第一個switch語句,因為a=6.a(chǎn)%2=0,所以執(zhí)行“case0,m++;”,將m加1,遇到break語句跳出switch語句,結(jié)束循環(huán)。不執(zhí)行下面的switch。

\n

66.C統(tǒng)計1~9九個數(shù)中的奇數(shù)和,此題重點考察指向數(shù)組的指針。c語言規(guī)定數(shù)組名代表數(shù)組的首地址,也就是第一個元素的地址。因此*(t+i)代表數(shù)組的第i+1個元素。程序運行的結(jié)果是l+3+5+7+9=25。1

67.D

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

最新文檔

評論

0/150

提交評論