2021-2022年廣東省汕頭市全國計算機等級考試C語言程序設(shè)計預(yù)測試題(含答案)_第1頁
2021-2022年廣東省汕頭市全國計算機等級考試C語言程序設(shè)計預(yù)測試題(含答案)_第2頁
2021-2022年廣東省汕頭市全國計算機等級考試C語言程序設(shè)計預(yù)測試題(含答案)_第3頁
2021-2022年廣東省汕頭市全國計算機等級考試C語言程序設(shè)計預(yù)測試題(含答案)_第4頁
2021-2022年廣東省汕頭市全國計算機等級考試C語言程序設(shè)計預(yù)測試題(含答案)_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021-2022年廣東省汕頭市全國計算機等級考試C語言程序設(shè)計預(yù)測試題(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.有以下程序:#include<stdio.h>main(){inti,j,m=1;for(i=1;i<3;i++){for(j=3;j>0;j--){if(i*j>3)break;m*=i+j;}}printf("m=%d\n",m);}程序運行后的輸出結(jié)果是()。A.m=6B.m=2C.m=4D.m=3

2.

3.已知廣義表LS=((a,b,c),(d,e,f)),運用head和tail函數(shù)取出LS中原子e的運算是()。

A.head(tail(LS))

B.tail(head(LS))

C.head(tail(head(tail(LS)))

D.head(tail(tail(head(LS))))

4.二維數(shù)組A按行順序存儲,其中每個元素占1個存儲單元。若A[1][1]的存儲地址為420,A[3][3]的存儲地址為446,則A[5][5]的存儲地址為_______

A.470B.471C.472D.473

5.

6.設(shè)有定義:int?x=2,以下表達式中,值不為6的是()。

A.2*<.x+=2B.x++.2*xC.x=x*(1+x)D.x*=x+1

7.按照標識符的要求,()符號不能組成標識符。

A.連接符B下劃線B.大小寫字母C.數(shù)字字符

8.以下不正確的定義語句是A.A.doublex[5]={2.0,4.0,6.0,8.0,10.0};

B.inty[5.3]={0,1,3,5,7,9};

C.charc1[]={′1′,′2′,′3′,′4′,′5′};

D.charc2[]={′\x10′,′\xa′,′\x8′};

9.以下說法正確的是()。

A.C程序總是從第一個函數(shù)開始執(zhí)行

B.在C程序中,被調(diào)用的函數(shù)必須在main函數(shù)中定義

C.C程序總是從main函數(shù)開始執(zhí)行

D.C程序中的main函數(shù)必須放在程序的開始部分

10.下列程序的運行結(jié)果是()。main{intx=1,y=3,a=0;while(x++!=(y-=l)){a+=1;if(y<x)break;}printf("%d,%d,%d\n",x,y,a);}A.2,3,2B.2,3,1C.1,3,3D.3,1,2

11.若串S=,software,其子串的數(shù)目是()。

A.8B.37C.36D.9

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

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

13.

14.根據(jù)二叉樹的定義可知道二叉樹共有種不同形態(tài)的二叉樹()。

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

15.若有以下定義,則能使值為3的表達式是intk=7,x=12;

A.x%=(k%=5)B.x%=(k-k%5)C.x%=k-k%5D.(x%=k)-(k%=5)

16.有以下程序main(){intnum[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j;for(i=0;i<4;i++){for(j=0;j<=i;j++)printf("%4c",");for(j=______;j<4;j++)printf("%4d",num[i][j]);prrintf("\n");}}若要按以下形式輸出數(shù)組右上半三角1234678111216則在程序下劃線處應(yīng)填入的是

A.i-1B.iC.i+1D.4-i

17.設(shè)q1和q2是指向一個float型一維數(shù)組的指針變量,k為float型變量,則不能正確執(zhí)行的語句是()。

A.k=*q1+*q2;B.q1=k;C.q1=q2;D.k=*q1*(*q2);

18.表達式9!=10的值為()。

A.非零值B.trueC.0D.1

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

20.

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

#include<stdio.h>

intt(intx,inty,intcp,intdp)

{cp=x*x+y*y;

dp=x*x-y*y;

}

main()

{inta=1,b=8,c=7,d=9;

t(a,b,c,D);

primf("%d,%d%d\n",c,D);

}

22.數(shù)據(jù)流圖的類型有【】和事務(wù)型。

23.下面程序的功能是:計算110之間的奇數(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);}

24.當線性表的元素總數(shù)基本穩(wěn)定,且很少進行插入和刪除操作,并要求以很快的速度存取線性表中的數(shù)據(jù)元素時,應(yīng)采用【】存儲結(jié)構(gòu)。

25.常用的軟件結(jié)構(gòu)設(shè)計工具是結(jié)構(gòu)圖(SC),也稱程序結(jié)構(gòu)圖。其中,用矩形表示______,用帶空心圓的箭頭表示傳遞的是數(shù)據(jù)。

26.以下程序運行時若從鍵盤輸入:102030<回車>。輸出結(jié)果是【】。

#include<stdio.h>

main()

{

inti=0,j=0,k=0;

scanf("%d%*d%d",&i,&j,&k);

printf("%d%d%d\n",i,j,k);

}

27.某二叉樹中度為2的結(jié)點有n個,則該二叉樹中有【】個葉子結(jié)點。

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

fun(intx,inty,intz)

{z=x*x+y*y;}

main()

{inta=31;

fun(6,3,a)

printf("%d,a)

}

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

main()

/inti,j,a[][3]={1,2,3,4,5,6,7,8,9};

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

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

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

{for(j=0;j<3;j++)printf("%d",a[i][j]);

printf("\n");

}

}

30.軟件生命周期分為軟件定義期、軟件開發(fā)期和軟件維護期,詳細設(shè)計屬于______中的一個階段。

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

main()

{intx,a=1,b=2,c=3,d=4;

x=(a<b)?a:b;x=(x<c)?x:c;x=(d>x)?x:d;

pfintf("%d\n",x);

}

32.以下程序的運行結(jié)果是()。#defineA4#defineB(x)A*x/2main(){floatc,a=8.0;c=B(A;printf("%f\n",C);}

33.有以下程序:

#include<stdio.h>

main()

{charch1,ch2;intn1,n2;

ch1=getchar();ch2=getehar();

n1=ch1-'0';n2=n1*10+(ch2-'0');

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

}

程序運行時輸入:12<回車>,執(zhí)行后的輸出結(jié)果是【】。

34.數(shù)據(jù)的獨立性分為邏輯獨立性與物理獨立性。當數(shù)據(jù)的存儲結(jié)構(gòu)改變時,其邏輯結(jié)構(gòu)可以不變,因此,基于邏輯結(jié)構(gòu)的應(yīng)用程序不必修改,這稱為______。

35.以下scanf函數(shù)調(diào)用語句中對結(jié)構(gòu)體變量成員的引用不正確的是{charname[20];}pup[5],*p;

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

37.按照“先進先出”的原則組織數(shù)據(jù)的結(jié)構(gòu)是______。

38.買來一張新盤后,在存入文件前,必須進行【】處理。

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

40.以下程序的輸出結(jié)果是()。#definePR(ar)printf("ar=%d”,ar)main(){intj,a[]={1,8,3,7,6,13,17,15},*p=a+5;for(j=3;j;j--)switch(j){case1:case2:PR(*p++);break;case3:PR(*(--p));}}

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

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

42.有以下程序intx=3;do{printf("%d",x-=2);}while(!(--x));程序運行后的輸出結(jié)果是()

A.1B.30C.1,-2D.死循環(huán)

43.打開一個已經(jīng)存在的非空文本文件,若文件名為stu,則正確的打開語句為()

A.FILE*fp;fp=fopen("stu.txt","r")

B.FILE*fp;fp=fopen(stu.txt,r)

C.FILE*fp;fP=fopen("stu,txt","wb")

D.FILE*fp;fp=fopen("stu.txt",wb)

44.在數(shù)據(jù)流圖(DFD)中,帶有名字的箭頭表示______。

A.控制程序的執(zhí)行順序B.模塊之間的調(diào)用關(guān)系C.數(shù)據(jù)的流向D.程序的組成成分

45.設(shè)有下列二叉樹:

對此二叉樹先序遍歷的結(jié)果為

A.ABCDEFB.DBEAFCC.ABDECPD.DEBFCA

46.若有如下程序:main(){chara[]={"1234"};inti,t=0;for(i=0;a[i]>='0'&&a[i]<='9';i+=2)t=10*t+a[i]一-'0';printf("%d\n',t);}則程序運行后的輸出結(jié)果是()。

A.13B.1234C.24D.123

47.若有定義“char,*p2,*p3,*p4,ch;”,則不能正確賦值的程序語句為()

A.p1=&ch;scanf("%c",p1);

B.p2=(char*)malloc(1);scanf("%c",p2);

C.p3=getchar();

D.p4=&ch;*p4=getchar();

48.下面程序的輸出是______。main(){char*s="12134211";intv1=0,v2=0,v3=0,v4=0,k;for(k=0;s[k];k++)switch(s[k]){default:v4++;case'1':v1++;case'3':v3++;case'2':v2++;}printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4);}

A.v1=4,v2=2,v3=1,v4=1

B.v1=4,v2=9,v3=3,v4=1

C.v1=5,v2=8,v3=6,v4=1

D.v1=8,v2=8,v3=8,v4=8

49.線性表若采用鏈式存儲結(jié)構(gòu)時,要求內(nèi)存中可用存儲單元的地址()

A.必須是連續(xù)的B.部分地址必須是連續(xù)的C.一定是不連續(xù)的D.連續(xù)不連續(xù)都可以

50.在深度為5的滿二叉樹中,葉子結(jié)點的個數(shù)為A.32B.31C.16D.15

51.下述程序段的輸出結(jié)果是()intx=10;inty=x++;printf("%d,%d",(x++,y),y++);

A.11,10B.11,11C.10,10D.10,11

52.下列字符序列中,不可用作C語言標識符的是______。

A.b70B.#abC._symbolD.al

53.下列程序的輸出結(jié)果是()。#include<stdio.h>voidmain(){inta=0,b=1,c=2;if(++a>0‖++b>0)++c;printf("%d,%d,%d",a,b,c);}

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

54.不合法的main函數(shù)命令行參數(shù)表示形式是

A.main(inta,char*c[])

B.mmn(intarc,char**arv)

C.main(intargc,char*argv)

D.majn(intargv,char*atgc[])

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

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

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

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

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

56.定義結(jié)構(gòu)體數(shù)組:

structstu

{intnum;

charname[20];

}x[5]={1,"LI",2,"ZHAO",3,"WANG",4,"ZHANG",5,"LIU"};

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

printf("%d%c",x[i].num,x[i].name[2];

以上程序段的輸出結(jié)果為()。

A.2A3N4A5UB.112A3H41C.1A2N3A4UD.2H3A4H51

57.在下列幾種排序方法中,要求內(nèi)存量最大的是______。

A.插入排序B.選擇排序C.快速排序D.緊并排序

58.若x是int型變量,且有下面的程序片段:for(x=3;x<6;x++)printf(x%2)?("**%d"):(”##%d\n”),x);上面程序片段的輸出結(jié)果是()

A.**3##4**5

B.##3**4##5

C.##3**4##5

D.**3##4**5

59.在C語言中,變量的隱含存儲類別是

A.autoB.staticC.extemD.無存儲類別

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

A.在面向?qū)ο蟮某绦蛟O(shè)計中,各個對象之間具有密切的關(guān)系

B.在面向?qū)ο蟮某绦蛟O(shè)計中,各個對象都是公用的

C.在面向?qū)ο蟮某绦蛟O(shè)計中,各個對象之間相對獨立,相互依賴性小

D.上述3種說法都不對

四、選擇題(20題)61.語句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ù)的指針

62.

63.有以下程序:

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

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

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

fun(char*p2,char*p1)

{

while((*p2=*p1)!=’\0’){p1++;p2++;}

}

函數(shù)的功能是

A.將p1所指字符串復(fù)制到p2所指內(nèi)存空間B.將p1所指字符串的地址賦給指針p2

C.對p1和p2兩個指針所指字符串進行比較D.檢查p1和p2兩個指針所指字符串中是否有’\0’

65.

66.有下面程序段:

則程序段的輸出結(jié)果是()。

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

67.

68.下面的函數(shù)調(diào)用語句中func函數(shù)的實參個數(shù)是()。func((f2v1,v2),(v3,v4,v5),(v6,max(v7,v8)))

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

69.設(shè)有定義:intX=2;,以下表達式中,值不為6的是()。

A.2*x.x+=2B.x++,2*xC.x*=(1+x)D.x*!x+1

70.有以下程序:#include〈stdio.h〉intabe(intu,intv);main{inta=24,b=16,c;c=abc(a,b);printf(“%d\n”,c);}intabc(intu,intv){intw;while(v){w=u%v;u=v;v=w;)returnu;}輸出結(jié)果是()。A.6B.7C.8D.9

71.

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

A.inta[][3];

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

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

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

73.以下選項中不屬于字符常量的是()。

A.

B.

C.

D.

74.以下敘述中正確的是()。A.A.break語句只能用在循環(huán)體內(nèi)和switch’語句體內(nèi)

B.continue語句的作用是:使程序的執(zhí)行流程跳出包含它的所有循環(huán)

C.在循環(huán)體內(nèi)使用break語句和continue語句的作用相同

D.break語句只能用于switch語句體中

75.

76.有以下程序:

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

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

77.有以下程序:

#include<stdio.h>

main

{inty=10;

while(y--);

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

}

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

A.y=0B.y=-1C.y=lD.while構(gòu)成無限循環(huán)

78.以下選項中不合法的標識符是()。

A.&aB.FORC.printD._00

79.有以下程序:

#include<stdio.h>

#include<strin9.h>

main()

{printf{"%d\n",strlen("%d\n",strlen("ATS\n012\|"));}

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

A.3B.8C.4D.9

80.

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc的功能是:讀入一個字符串(長度<20),將該字符串中的所有字符按ASCII碼升序排序后輸出。例如,輸入opdye,則應(yīng)輸出deopy。請修改程序中的錯誤,使它能得到正確結(jié)果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#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);}

六、程序設(shè)計題(1題)82.請編寫函數(shù)proc(),其功能是:將str所指字符串中下標為偶數(shù)的字符刪除,串中剩余字符形成的新串放在t所指數(shù)組中。

例如,當str所指字符串中的內(nèi)容為abcdefg,則在t所指數(shù)組中的內(nèi)容應(yīng)是bdf。

注意:部分源程序給出如下。

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

試題程序:

參考答案

1.A本題考查了多重for循環(huán)。當(i*j)>3時,跳出循環(huán),本題中i=1,j=3,i*J后值為3,所以執(zhí)行下邊語句:m*=i+j,也可寫成m=m*i+j,這時要注意優(yōu)先級,所以m的值為6。

2.B

3.C

4.C

5.A

6.A?A)選項中逗號表達式先計算第一表達式2*x,然后計算表達式x+=2的值,即x=x+2即4,整個逗號表達式為第二個表達式的值4,所以選A)。B)選項中首先計算逗號表達式中第一一個表達式x++,此時x為3,再執(zhí)行第二個表達式2*x=2*3=6,所以逗號表達式為第二個表達式的值6。C)選項的賦值表達式可以表示為x=x*(1+x)=2*(1+2)=6。D)選項中的表達式可以表示為x=x*(x+1)=2*3=6。

7.A

8.B

9.C解析:C程序是由main函數(shù)開始運行,通過main函數(shù)調(diào)用其他函數(shù),所以,選項A)錯誤;在C程序中,函數(shù)不能嵌套定義,即不能在一個函數(shù)中定義另一個函數(shù),選項B)錯;C程序總是從main函數(shù)開始執(zhí)行,但main函數(shù)不必放在最前面,故選項D)錯。

10.D本題考查"drhile循環(huán)。第一次循環(huán),y=y-1,y=2,循環(huán)條件成立,x=1,X++后值為1,x自加變成2,進入循環(huán),a=a+1=1,判斷if語句條件是否成立,y<x不成立,接著執(zhí)行下一次循環(huán)。第二次循環(huán),x=2,y-1=1,循環(huán)條件成立,進入循環(huán),a=a+1=2,判斷if語句的控制條件是否成立,y<X成立,執(zhí)行break語句,退出循環(huán)。結(jié)果為D。

11.B

12.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ù)組的首地址。

13.D

14.B

15.D解析:運算符“%”的兩側(cè)都應(yīng)該是整型數(shù)。另外,本題需要掌握的知識點是:x%=k,等價于x=x%k。注意:強制類型轉(zhuǎn)換表達式。

16.B解析:本題考查循環(huán)嵌套,外層循環(huán)控制每一行的輸出,內(nèi)層循環(huán)的第一個for循環(huán)控制空格的輸出,第二個for循環(huán)控制的輸出。而在第i行,輸出的第一個元素是num[i][i],所以下劃線處應(yīng)填i。

17.B解析:選項A)是將指針q1和q2所指向的變量值相加,然后賦給k;選項B)中,float型數(shù)據(jù)和指針型數(shù)據(jù)之間不能進行賦值運算:選項C)中,是兩個指針變量之間的賦值:選項D)中,是兩個指針型變量所指向的兩個float型數(shù)據(jù)相乘。

18.D

19.A

20.C

21.7979解析:因為在調(diào)用子函數(shù)時進行的是數(shù)值傳遞,調(diào)用子函數(shù)并不能改變實參的值,所以經(jīng)過調(diào)用子函數(shù),c、d的值并沒有發(fā)生變化還是原來的值。

22.變換型典型的數(shù)據(jù)流類型有兩種:變換型和事務(wù)型。變換型是指信息沿輸入通路進入系統(tǒng),同時由外部形式變換成內(nèi)部形式,進入系統(tǒng)的信息通過變換中心,經(jīng)加工處理以后再沿輸出通路變換成外部形式離開軟件系統(tǒng);在很多軟件應(yīng)用中,存在某種作業(yè)數(shù)據(jù)流,它可以引發(fā)一個或多個處理,這些處理能夠完成該作業(yè)要求的功能,這種數(shù)據(jù)流就叫做事務(wù)。

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

24.順序順序

25.模塊模塊解析:矩形表示的是模塊,箭頭表示的是模塊間的調(diào)用關(guān)系。用帶實心圓的箭頭表示傳遞的是控制信息,用帶空心圓的箭頭表示傳遞的是數(shù)據(jù)。

26.1030010300解析:本題的scanf()函數(shù)要求用戶輸入三個十進制整數(shù),但只接受第一和第三個到函數(shù)的第二和第三個參數(shù)所指的內(nèi)存地址中。所以本題的輸出為:10300。

27.n+1n+1解析:在任意一棵二叉樹中,度為0的結(jié)點(即葉子結(jié)點)總是比度為0的結(jié)點多一個。

28.3131解析:在函數(shù)調(diào)用時,形參值和改變,不會改變實參的值。

29.123\n056\n009123\\n056\\n009解析:數(shù)組是用于按順序存儲同類型數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),如果有一個一維數(shù)組,它的每一個元素是類型相同的一維數(shù)組,就形成了一個二維數(shù)組。在內(nèi)存中數(shù)組的元素是連續(xù)順序存放的,對;維數(shù)組來說,先存放第一行,再存放第;行,…,因為每一行都是其廣義一維數(shù)組的元素,并且在給出全部數(shù)組元素的初值后,二維數(shù)組的定義中可以將第一維的下標省略。本題中,定義了一個元素類型為整型的二維數(shù)組敢a[][3]={1,2,3,4,5,6,7,8,9),它相當于一個3*3的矩陣,for(i=0;i<3:i++)for(j=i+1;j<3;j++)a[j][i]=0;將行下標i大于列下標j的元素s[1][0],a[2][0],a[2][1]賦值為0,最后for(j=0;j<3;j++)prinff('%n',a[i][j]);printf('\\n');進行換行輸出,所以輸出結(jié)果為

123

056

009

30.軟件開發(fā)軟件開發(fā)解析:軟件生命周期分為3個時期共8個階段:軟件定義期(問題定義、可行性研究和需求分析)、軟件開發(fā)期(系統(tǒng)設(shè)計、詳細設(shè)計、編碼和測試)、軟件維護期(即運行維護階段)。

31.因為在條件表達式(a<b)?a:b中,比較表達式a<b為真,所以x的值等于a的值等于1,后面兩個條件表達式中的比較表達式都為真,所以最終x的值等于1。\r\n\r\n

32.16.0

33.1212解析:程序中的ch1與ch2為字符型變量,輸入12后,ch1得到字符'1',ch2得到字符'2'。n1=ch1-'0'將字符1,轉(zhuǎn)換為數(shù)值1,同理,n2為1*10+2=12。程序執(zhí)行后輸出十進制整數(shù)12。

34.物理獨立性物理獨立性解析:數(shù)據(jù)的獨立性是指數(shù)據(jù)和應(yīng)用程序相互獨立,分為物理獨立性和邏輯獨立性。其中物理獨立性是指數(shù)據(jù)的物理結(jié)構(gòu)(包括存儲結(jié)構(gòu)、存取方式)改變時,不需要修改應(yīng)用程序。而邏輯獨立性是指當邏輯結(jié)構(gòu)改變時,不需要修改應(yīng)用程序。

35.D

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

37.隊列隊列解析:隊列是一種特殊的線性表,只允許在表的一端插入元素,在表的另一端刪除元素,插入元素的一端叫做“隊尾”,刪除元素的一端叫做“隊頭”,先插入的元素先被刪除,是按先進先出的原則組織數(shù)據(jù)的。

38.格式化(或初始化、FORMAT)格式化(或初始化、FORMAT)

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

40.ar=6ar=6ar=13ar=6ar=6ar=13解析:通過*p=a+5將指針P指向a[5],第1次循環(huán),i=3時,switch(3),執(zhí)行case3,*(-p)-a[4]=6,所以輸出ar=6;第2次循環(huán),j=2時,switch(2),執(zhí)行case2,(*p++)是先引用a[4]的值6,輸出ar=6,再將指針P移位指向a[5];第3次循環(huán),j=1時,switch(1),執(zhí)行case1,case1后沒有break語句,接著執(zhí)行case2,(*p++)是先引用a[5]的值13,輸出ar=13,再將指針P移位指向a[6]。

41.D解析:位與運算符“&”,按二進位進行“與”運算,如果兩個相應(yīng)的二進制位都為1,則該位的結(jié)果值為1,否則為0;取反運算符“~”,用來對一個二進制按位取反,即將0變1,1變0。在prinf()函數(shù)的表達式中,“&”前面表達式的值為1(3/2=1)表示為二進制為00000001,而按位取反運算符“~”的優(yōu)先級高于按位與運算符“&”,先計算“&”后面的取反運算符“~”。z的二進制表示為00000001,取反后為11111110,最后進行“&”,即“00000001&11111110”可知結(jié)果為00000000,故最后的值為0。

42.C

43.A

44.C解析:數(shù)據(jù)流相當于一條管道,并有一級數(shù)據(jù)(信息)流經(jīng)它。在數(shù)據(jù)流圖中,用標有名字的箭頭表示數(shù)據(jù)流。數(shù)據(jù)流可以從加工流向加工,也可以從加工流向文件或從文件流向加工,并且可以從外部實體流向系統(tǒng)或從系統(tǒng)流向外部實體。

45.C解析:二叉樹的遍歷分為先序,中序、后序三種不同方式.本題要求先序遍歷,其遍歷順序應(yīng)該為:訪問根結(jié)點->,先序遍歷左子樹->先序遍歷右子樹。按照定義,先序遍歷序列是ABDECF,故答案為C。

46.A解析:程序中首先以字符串常量定義并初始化了一個字符數(shù)組a,此時數(shù)組a包含5個元素{'1','2','3','4','\\0'},然后定義了一個變量t,并初始化為0。接下來是一個for循環(huán),循環(huán)變量i從0開始每次遞增2,循環(huán)條件a[i]是一個數(shù)字字符。因為a[0]、a[2]分別是數(shù)字字符'1'、'3'而a[4]不是,所以循環(huán)體執(zhí)行了兩次,第一次執(zhí)行前t為0,執(zhí)行后t=10*t+a[i]-'0'=10*0+'1'-'0'=1,所以第二次執(zhí)行結(jié)果為t=10*t+a[i]-'0'=10*1+'3'-'0'=13。程序運行后的輸出結(jié)果是13,本題選A。

47.C

48.C解析:當switch后面括弧內(nèi)的表達式的值與某一個case后面的常量的表達式的值相等時,就執(zhí)行此case后面的語句,若所有的case中的常量表達式的值都沒有與表達式的值匹配的,就執(zhí)行default后面的語句。

49.D解析:在鏈式存儲結(jié)構(gòu)中,存儲數(shù)據(jù)結(jié)構(gòu)的存儲空間可以不連續(xù),各數(shù)據(jù)接點的存儲順序與數(shù)據(jù)元素之間的邏輯關(guān)系可以不一致,而數(shù)據(jù)元素之間的邏輯關(guān)系是由指針域來確定的。

50.C2(n-1)

=2(5-1)=16

51.A

52.B

53.C解析:本題考查if語句。先判斷if語句的條件是否成立,++a=1>0,此條件成立,又因為是進行邏輯或運算,在已知其中一個運算對象為真的情況下,不必判斷另外一個運算符的真假,即不進行++b操作,就可以直接得出整個表達式的值為邏輯1,執(zhí)行下列的++c。

54.C解析:main()函數(shù)可以帶有參數(shù),并且參數(shù)只能有兩個,第一個參數(shù)類型為整型,用來記下命令行的參數(shù)個數(shù),第二個參數(shù)為一個字符型指針數(shù)組,或字符型二級指針變量(指向一個數(shù)組,數(shù)組元素又是一個一級字符指針),其各個元素用來記下從命令行各參數(shù)字符串的首地址.故本題只有C選項不符合要求。所以,4個選項中C為所選。

55.C解析:C語言是于1972—1973年,由D.M.Ritehie在貝爾實驗室為描述和實現(xiàn)UNIX操作系統(tǒng)而在B語言的基礎(chǔ)上設(shè)計出來的。C語言同時具備高級語言和低級語言的特點,既適用于編寫系統(tǒng)軟件,義可用于編寫應(yīng)用軟件。計算機不能直接執(zhí)行C語言的源程序,必須編譯生成目標程序后才能執(zhí)行。

56.A解析:本題主要考查結(jié)構(gòu)體數(shù)組的使用。x[i].num為結(jié)構(gòu)體x[i]中的num成員,x[i].name[2]是結(jié)構(gòu)體x[i]中name成員的第3個元素。程序執(zhí)行循環(huán)過程時:第1次循環(huán),i=1,輸出x[1].num,x[1].name[2]的值,即2A;第2次循環(huán),i=2,輸出x[2].num,x[2].name[2]的值,即3N;第3次循環(huán),i=3,輸出x[3].num,x[3].name[2]的值,即4A;第4次循環(huán),i=4,輸出x[4].num,x[4].name[2]的值,即5U。

57.D解析:快速排序的基本思想是,通過一趟排序?qū)⒋判蛴涗浄指畛瑟毩⒌膬刹糠?,其中一部分記錄的關(guān)鍵字均比另一部分記錄的關(guān)鍵字小,再分別對這兩部分記錄繼續(xù)進行排序,以達到整個序列有序;插入排序的基本操作是指將無序序列中的各元素依次插入到已經(jīng)有序的線性表中,從而得到一個新的序列;選擇排序的基本思想是:掃描整個線性表,從中選出最小的元素,將它交換到表的前面(這是它應(yīng)有的位置),然后對乘下的子表采用同樣的方法,直到表空為止;歸并排序是將兩個或兩個以上的有序表組合成一個新的有序表。

58.D

59.A解析:auto變量:無static聲明的局部變量。用auto作存儲類別的聲明時,可以不寫auto,存儲類別隱含確定為auto(自動存儲類別),是動態(tài)存儲方式。大多數(shù)變量是自動變量。用static聲明的局部變量是靜態(tài)局部變量。函數(shù)調(diào)用結(jié)束后靜態(tài)局部變量占據(jù)的內(nèi)存存儲單元空間不釋放,局部變量保留原值,下次調(diào)用時可以繼續(xù)使用該值。用extern聲明外部變量,外部變量即全局變量,可以用extern聲明來改變?nèi)肿兞康淖饔糜颍瑢嶋H上,關(guān)鍵字“auto”可以省略,auto不寫則隱含確定為“自動存儲類別”,屬于動態(tài)存儲方式

60.C本題考查對面向?qū)ο蟮睦斫狻C嫦驅(qū)ο蟮某绦蛟O(shè)計是對象模擬問題領(lǐng)域中的實體,各對象之間相對獨立,相互依賴性小,通過消息來實現(xiàn)對象之間的相互聯(lián)系。

61.C本題考查的是指向函數(shù)的指針。函數(shù)指針定義的基本格式為:類型標識符(*指針變量名)()?!邦愋蜆俗R符”為函數(shù)返回值的類型。

62.D

63.A語句pc=eh;使得指針變量指向字符數(shù)組ch的首地址,即指向字符‘u’,則pc+5指向的是字符向后移動5位,指向字符‘z’。所以輸出的$pc+5的值即為‘Z’。因此A選項正確。

64.A本題主要考查字符串的操作。從題目的選項中我們可以看出,本題給出的程序是對字符串進行相應(yīng)的操作。

本題的程序是一個fun函數(shù),該函數(shù)帶有兩個指針類型的形參p1和p2,它們分別指向兩個需要被操作的字符串,程序中主要是一個while循環(huán),循環(huán)的判斷條件是(*p2=*p1)!=’\0’,這個表達式的作用是將指針變量p1所指向的字符串的當前字符賦值給指針變量p2所指向的存儲空間,并判斷該字符串是否為字符串結(jié)束標識,如果不是結(jié)束標識,則兩個指針都后移一位,即分別指向下一個存儲單元。

通過上面對程序的分析我們可以看出,程序是將指針變量p1所指向的字符串復(fù)制到指針變量p2所指向的存儲空間中,直到字符串結(jié)束。因此,本題的答案選A。

65.C

66.B字符串連接函數(shù)strcat的調(diào)用形式如下:strcat(sl,s2)。此函數(shù)將s2所指字符串的內(nèi)容連接到sl所指的字符串后面,并自動覆蓋sl串末尾的尾標,函數(shù)返回sl的地址值。本題中首先將二維數(shù)組中各行的字符串都復(fù)制到了指針P所指向的一維數(shù)組k的地址空間,然后用strlen函數(shù)求得k數(shù)組的長度i,即l9。

67.D

68.A解析:本調(diào)用語句func中

溫馨提示

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

評論

0/150

提交評論