2021-2022年山東省東營市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)真題二卷(含答案)_第1頁
2021-2022年山東省東營市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)真題二卷(含答案)_第2頁
2021-2022年山東省東營市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)真題二卷(含答案)_第3頁
2021-2022年山東省東營市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)真題二卷(含答案)_第4頁
2021-2022年山東省東營市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)真題二卷(含答案)_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2021-2022年山東省東營市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)真題二卷(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.下列程序段的時間復(fù)雜度為()。A.O(i+j)B.O(n)C.O(n2)D.O(i*j)

2.語句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ù)的指針

3.在下面的字符數(shù)組定義中,哪一個有語法錯誤()。A.chara[20]=”abcdefg”;

B.chara[]=”x+y=55.”;

C.chara[15];

D.chara[10]=’5’;

4.計(jì)算機(jī)高級語言程序的運(yùn)行方法有編譯執(zhí)行和解釋執(zhí)行兩種,以下敘述中正確的事()。

A.C語言程序僅可以編譯執(zhí)行B.C語言程序僅可以解釋執(zhí)行C.C語言程序既可以編譯執(zhí)行又可以解釋執(zhí)行D.以上說法都不對

5.某二叉樹共有7個結(jié)點(diǎn),其中葉子結(jié)點(diǎn)只有l(wèi)個,則該二叉樹的深度為(假設(shè)根結(jié)點(diǎn)在第1層)()。

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

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

A.5,5

B.5,11

C.11,11

D.11,5

7.若有運(yùn)算符:>、=、<<、%、sizeof,則它們按優(yōu)先級(由高至低)的正確排列順序?yàn)?)

A.%、sizeof、>、<<、=

B.sizeof、%、>、=、<<

C.sizeof、<<、>、%、=

D.sizeof、%、<<、>、=

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

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

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

C.循環(huán)隊(duì)列中的隊(duì)尾指針一定大于隊(duì)頭指針

D.循環(huán)隊(duì)列中的隊(duì)尾指針一定小于隊(duì)頭指針

9.下面程序的時間復(fù)雜為()A.O(n)B.O(n^2)C.O(n^3)D.O(n^4)

10.若有說明:int*p,m=5,n;以下正確的程序段是

A.p=&n;scanf("%d",&p);

B.p=&n;scanf("%d",*p)

C.scanf("%d",&n);*p=n;

D.p=&n;*p=m;

11.有以下程序:#include<stdio.h>main(){inta;scanf("%d",&a);if(a++<9)printf("%d\n",a);clscprintf("%d\n",a--);}程序運(yùn)行時從鍵盤輸入9<回車>,則輸出結(jié)果是()。A.10B.11C.9D.8

12.檢查軟件產(chǎn)品是否符合需求定義的過程稱為______。

A.確認(rèn)測試B.集成測試C.驗(yàn)證測試D.驗(yàn)收測試

13.若已定義:inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0≤i≤9,則對a數(shù)組元素不正確的引用是______。

A.a[p-a]B.*(&a[i])C.p[i]D.a[10]

14.有以下程序#include<stdio.h>main(){inti,j,m=55;for(i=1;i<=3;i++)for(j=3;j<=i;j++)m=m%j;printf(“%d\n”,m);}程序的運(yùn)行結(jié)果是()A.1B.0C.2D.3

15.能正確表示x>=3或者x<1的關(guān)系表達(dá)式是()。

A.x>=3orx<1B.x>=3|x<1C..x>=3||x<1D.x>=3||x<1

16.

17.下述哪一個是順序存儲結(jié)構(gòu)的優(yōu)點(diǎn)()。

A.存儲密度大B.插入運(yùn)算方便C.刪除運(yùn)算方便D.可方便地用于各種邏輯結(jié)構(gòu)的存儲表示

18.若文件指針fp已正確指向文件,ch為字符型變量,以下不能把字符輸出到文件中的語句是()。

A.fget(f0,ch);

B.foutc(ch,fo);

C.fprinff(fp,”%c”,ch);

D.fwrite(&ch,sizeof(ch),1,fp);

19.若變量均已正確定義并賦值,以下合法的C語言賦值語句是()。

A.x=y==5;B.X=n%2.5:C.x+n=i;D.x=5=4+1:

20.以下程序的輸出結(jié)果是main(){intc=35;printf("%d\n",c&c);}

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

二、2.填空題(20題)21.下面的語句要使指針p指向一個double類型的動態(tài)存儲單元,請?zhí)羁铡?/p>

p=【】malloc(sizeof(double));

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

intk=0;

voidfun(intm)

{m+=k;k+=m;

printf("m=%dk=%d",m,k++)

}

main()

{inti=4;

fun(i++);

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

}

23.數(shù)據(jù)庫系統(tǒng)的三級模式分別為______模式、內(nèi)部級模式與外部級模式。

24.已有定義如下:

structnode

{intdata;

structnode*next;

}*p;

以下語句調(diào)用malloc函數(shù),使指針p指向一個具有structnode類型的動態(tài)存儲空間。請?zhí)羁铡?/p>

p=(structnode*)malloc(【】);

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

26.以下程序運(yùn)行后的輸出結(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;

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

}

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

#include<stdio.h>

voidswap(int*a,int*b)

{int*t;

t=a;a=b;b=t;

}

main()

{inti=3,j=5,*p=&i,*q=&j;

swap(p,q);printf("%d%d\N,*p,*q))

}

28.當(dāng)線性表采用順序存儲結(jié)構(gòu)實(shí)現(xiàn)存儲時,其主要特點(diǎn)是______。

29.【】是數(shù)據(jù)庫設(shè)計(jì)的核心。

30.下列語句能循環(huán)______次。

ints=12;

while(s);

--s;

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

#include<stdio.h>

main()

{intx=10,y=10,i;

for(i=0;x>8;y=++)

printf("%d%d",X--,y);

}

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

intm=17;

intfun(intx,inty)

{intm=3;

return(x*Y-m);

}

main()

{inta=5,b=7;

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

}

33.軟件的【】設(shè)計(jì)又稱為總體結(jié)構(gòu)設(shè)計(jì),其主要任務(wù)是建立軟件系統(tǒng)的總體結(jié)構(gòu)。

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

fun(inta)

{intb=0;staticintc=3;

b++;c++;

return(a+b+c);

}

main()

{inti,a=5;

for(i=0;i<3;i++)printf("%d%d",i,fun(a));

printf("\n");

}

35.設(shè)有如下變量說明,則a+(int)((int)b+c)>>(int)(b-c)的值為【】。

inta=5;floatb=7.2,c=3.6;

36.下面程序的功能是:計(jì)算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);}

37.問題處理方案的正確而完整的描述稱為______。

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

main()

{

inta,b,c;

a=25;

b=025;

c=0x25;

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

}

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

#include<stdio.h>

fun()

{staticinta=O;

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

}

main()

{intcc;

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

printf("\n");

}

40.若有如下程序:

main()

{ints=8,a=3,b=5,c=6;

if(a>b)s=a;a=b;b=s;

if(a>c){s=a;a=c;b=s);

if(b>c)s=b;b=c;c=s;

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

}

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

三、1.選擇題(20題)41.設(shè)有定義:intn=0,*p=&n,**q=&p;則以下選項(xiàng)中,正確的賦值語句是()A.p=1;B.*q=2;C.q=p;D.*p=5;

42.有以下程序:intf(inta){returna%2;}main(){ints[8]={1,3,5,2,4,6},i,d=0;for(i=0;f(s[i]);i++)d+=s[i];printf("%d\n",d);}程序運(yùn)行后的輸出結(jié)果是()。

A.9B.11C.19D.21

43.在數(shù)據(jù)庫管理系統(tǒng)提供的數(shù)據(jù)語言中,負(fù)責(zé)數(shù)據(jù)的完整性、安全性的定義與檢查以及并發(fā)控制、故障恢復(fù)等功能的是

A.數(shù)據(jù)定義語言B.數(shù)據(jù)轉(zhuǎn)換語言C.數(shù)據(jù)操縱語言D.數(shù)據(jù)控制語言

44.若有定義:inta=8,b=5,c;執(zhí)行語句c=a/b+0.4;后,c的值為

A.1.4B.1C.2D.2

45.設(shè)下面程序段中調(diào)用fun函數(shù)傳送實(shí)參a和b,main(){chara[10],b[10]┇fun(a,b);┇}則在fun函數(shù)首部中,對形參錯誤的定義是()

A.fun(chara[10],b[10]){…}

B.fun(chara1[],chara2[]){…}

C.fun(charp[10],charq[10]){…}

D.fun(char*s1,char*s2){…}

46.下面語句的輸出結(jié)果是______。printf("%d\n",strlen("\t\"\065\xff\n"));

A.14B.8C.5D.輸出項(xiàng)不合法,無正常輸出

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

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

48.若有以下的說明,對初值中整數(shù)2的正確引用方式是()。staticstruct{charch;inti;doublex;}a[2][3]={{{'a',1,3,45},{'b',2,7,98},{'c',31,93}}};

A.a[0][1].chB.a[0][1].iC.a[0][0].iD.a[0][2].i

49.下面程序的輸出是______。main(){intx=3,y=6,a=0;while(x++!=(y-=1)){a+=1if(y<x)break;}printf("x=%d,y=%d,=%d\n",x,y,a);}

A.x=4,y=4,a=1B.x=5,y=5,a=1C.x=5,y=4,a=3D.x=5,y=4,a=1

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

A.C程序中注釋部分可以出現(xiàn)在程序中任何合適的地方

B.花括號“{”和“}”只能作為函數(shù)體的定界符

C.構(gòu)成C程序的基本單位是函數(shù),所有函數(shù)名都可以由用戶命名

D.分號是C語句之間的分隔符,不是語句的一部分

51.需求分析階段的任務(wù)是確定()

A.軟件開發(fā)方法B.軟件開發(fā)工具C.軟件開發(fā)費(fèi)用D.軟件系統(tǒng)功能

52.將E-R圖轉(zhuǎn)換到關(guān)系模式時,實(shí)體與聯(lián)系都可以表示成________。

A.屬性B.關(guān)系C.鍵D.域

53.若輸入12345、abc,程序的輸出結(jié)果為______。main(){inta;charch;scanf("%3d,%3c",&a,&ch);printf("%d,%c",a,ch);}

A.123,abcB.123,4C.123,aD.12345,abc

54.設(shè)有以下說明,則不正確的敘述是()。unionun{inta;chatb:floatc;}arr;

A.arr所占的內(nèi)存長度等于成員c的長度

B.arr的地址和它的各成員的地址都是同一地址

C.arr可以作為函數(shù)參數(shù)

D.不能在定義art時對它初始化

55.有以下程序:#include<stdio.h>main(){inti=0,a=0;while(i<20){for(;;){if((i%5)==0)break;elsei--;}i+=13,a+=i;}pfintf("%d\n",A);}程序的輸出結(jié)果是()。

A.62B.63C.23D.36

56.有以下程序:main(){intc=35;printf("%d\n",e&c);}程序運(yùn)行后的輸出結(jié)果是______。

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

57.下面程序的運(yùn)行結(jié)果是______。main(){unsigneda=3,b=10;printf("%d\n",a<<2|b>>1);}

A.3B.10C.13D.14

58.若有說明inti,j=2,*p=&i;,則能完成i=j賦值功能的語句是______。

A.i=*p;B.*p=*&j;C.i=&j;D.i=**p;

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

A.break語句只能用于swish語句體中

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

C.break語句只能用在循環(huán)體內(nèi)和switch語句體內(nèi)

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

60.擁有PC機(jī)并以撥號方式接入網(wǎng)絡(luò)的用戶需要配置()

A.CD-ROMB.ModemC.電話機(jī)D.鼠標(biāo)

四、選擇題(20題)61.

62.

63.有以下程序:

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

A.let=4B.m=2C.m=6D.m=5

64.

65.

66.

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

A.一個算法的空間復(fù)雜度大,則其時間復(fù)雜度也必定大

B.一個算法的空間復(fù)雜度大,則其時間復(fù)雜度必定小

C.一個算法的時間復(fù)雜度大,則其空間復(fù)雜度必定小

D.上述三種說法都不對

68.下列選項(xiàng)中屬于軟件生命周期中開發(fā)階段任務(wù)的是()。

A.詳細(xì)設(shè)計(jì)B.運(yùn)行維護(hù)C.可行性研究D.需求分析

69.

70.

71.有以下函數(shù):

函數(shù)的功能是()。

A.將Y所指字符串賦給x所指存儲空間

B.查找x和y所指字符串中是否有

C.統(tǒng)計(jì)x和y所指字符串中最前面連續(xù)相同的字符個數(shù)

D.統(tǒng)計(jì)x和Y所指字符串中相同的字符個數(shù)

72.有以下說明和定義語句

structstudent

{

intage;charnum[8];

};

structstudentstu[3]={{20,"200401"},{21,"200402"},{10\9,"200403"}};

structstudent*p=stu;

以下選項(xiàng)中引用結(jié)構(gòu)體變量成員的表達(dá)式錯誤的是

A.(p++)->numB.p->numC.(*p).numD.stu[3].age

73.

74.算法分析的目的是()。

A.找出數(shù)據(jù)結(jié)構(gòu)的合理性B.找出算法中輸入和輸出之間的關(guān)系C.分析算法的易懂性和可靠性D.分析算法的效率以求改進(jìn)

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

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

A.951B.741C.753D.963

76.有以下程序:

#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

77.

78.有以下程序:

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

A.9.One*World

B.9.One*Dream!

C.10.One*Dream!

D.10.One*World

79.有如下嵌套的if語句:

以下選項(xiàng)中與上述if語句等價的語句是()。

A.

B.

C.

D.

80.數(shù)據(jù)庫設(shè)計(jì)中反映用戶對數(shù)據(jù)要求的模式是()。

A.內(nèi)模式B.概念模式C.外模式D.設(shè)計(jì)模式

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:用冒泡法對6個字符串按由小到大的順序進(jìn)行排序。請修改程序中的錯誤,使它能得到正確結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個源程序文件prog1.c。在此程序中,規(guī)定輸入的字符串中只包含字母和*號。請編寫函數(shù)fun(),其功能是使字符串中尾部的*號不多于n個,若多于n個,則刪除多余的*號;若少于或等于n個,則不做任何操作,字符串中間和前面的*號不刪除。例如,字符串中的內(nèi)容為“****A*BC*DEF*G*******”,若n的值為4,刪除后,字符串中的內(nèi)容應(yīng)為“****A*BC*DEF*G****”;若n的值為7,則字符串中的內(nèi)容仍為“****A*BC*DEF*G*******”。n的值在主函數(shù)中輸入。編寫函數(shù)時,不得使用C語言提供的字符串函數(shù)。注意:部分源程序給出如下。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#include<stdio.h>voidfun(char*a,intn){}main(){ chars[81];intn; printf("Enterastring:\n”); gets(s); printf(“Entern:”); scanf(“%d”,&n); fun(s,n); printf(“Thestringafterdeleted:\n”); puts(s);}

參考答案

1.C

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

3.D

4.A解釋執(zhí)行是計(jì)算機(jī)語言的一種執(zhí)行方式。由解釋器現(xiàn)場解釋執(zhí)行,不生成目標(biāo)程序。如BASIC便是解釋執(zhí)行。一般解釋執(zhí)行效率較低,低于編譯執(zhí)行。而C程序是經(jīng)過編譯生成目標(biāo)文件然后執(zhí)行的,所以C程序是編譯執(zhí)行。

5.D根據(jù)二叉樹的基本性質(zhì)3:在任意一棵二叉樹中,度為0的葉子結(jié)點(diǎn)總比度為2的結(jié)點(diǎn)多一個,因此本題中度為2的結(jié)點(diǎn)為l一1=0個,據(jù)此可以知道本題目中的二叉樹的每一個結(jié)點(diǎn)都有一個分支,所以共7個結(jié)點(diǎn)共7層,即深度為7,選擇D)。

6.Bmain函數(shù)中的局部變量m與fun函數(shù)中的靜態(tài)局部變量m同名,因此main訪問的是其局部變量m,所以main中的兩次函數(shù)調(diào)用,實(shí)際上都是調(diào)用fun(1,1)。

第一次調(diào)用時,i=i+(m+1)=2+(0+1)=3,m=i+x+y=3+1+1=5。

第二次調(diào)用時,i=i+(m+1)=3+(5+1)=9,m=i+x+y=9+1+l=11。

所以程序輸出5,11。

7.D解析:主要考查運(yùn)算符的優(yōu)先級。sizeof的優(yōu)先級最高,后面的順序是:%、<<、>,優(yōu)先級最低的是“=”。

8.B在實(shí)際應(yīng)用中,隊(duì)列的順序存儲結(jié)構(gòu)一般采用循環(huán)隊(duì)列的形式。當(dāng)循環(huán)隊(duì)列為滿或者為空時,隊(duì)尾指針=隊(duì)頭指針。本題答案為B選項(xiàng)。

9.B

10.D解析:“&”是求址運(yùn)算符,“*”是指變量說明符。選項(xiàng)A)、B)應(yīng)改為scanf('%d',p);選項(xiàng)C)中指針變量p未指向一確定的內(nèi)存單元,不能為其賦值,并且這樣做很危險(xiǎn),建議不使用。

11.A本題考查簡單的運(yùn)算符操作.當(dāng)輸入9時,(a++<9)為假,所以執(zhí)行else語句中的printf("%d\n",a--),在執(zhí)行時此時a經(jīng)過a++操作a=10,所以答案為A。

12.A本題主要考查軟件測試的基本知識。軟件測試的步驟可分為單元測試(模塊測試)、集成測試、確認(rèn)測試和系統(tǒng)測試。

(1)單元測試是針對每個模塊進(jìn)行的測試,它可從程序的內(nèi)部結(jié)構(gòu)出發(fā)設(shè)計(jì)測試用例,多個模塊可以平行、對立地測試。單元測試主要用于發(fā)現(xiàn)詳細(xì)設(shè)計(jì)和編程時犯下的錯誤。單元測試多采用白盒測試,輔之以黑盒測試。

(2)集成測試是在單元測試的基礎(chǔ)上,根據(jù)模塊結(jié)構(gòu)圖將各個模塊連接起來,必須精心計(jì)劃,應(yīng)提交集成測試計(jì)劃、集成測試規(guī)格說明和集成測試分析報(bào)告。主要目標(biāo)是發(fā)現(xiàn)與接口有關(guān)的問題。集成測試可以發(fā)現(xiàn)概要設(shè)計(jì)時犯的錯誤。

(3)確認(rèn)測試用于驗(yàn)證軟件的功能和性能及其他特性是否與用戶的要求一致。確認(rèn)測試主要用于發(fā)現(xiàn)需求分析時犯下的錯誤,一般使用黑盒法測試,以表明軟件符合需求說明書的要求,應(yīng)該仔細(xì)設(shè)計(jì)測試用例和測試過程。確認(rèn)測試必須有用戶參加,或以用戶為主,用戶應(yīng)參與設(shè)計(jì)測試用例,通常情況下,主要使用生產(chǎn)中的實(shí)際數(shù)據(jù)進(jìn)行測試,測試數(shù)據(jù)通過用戶接口輸入。

(4)系統(tǒng)測試是將已經(jīng)通過確認(rèn)測試的軟件,作為整個計(jì)算機(jī)系統(tǒng)的元素與計(jì)算機(jī)硬件、外設(shè)和網(wǎng)絡(luò)等其他因素結(jié)合在一起,進(jìn)行一系列的組裝測試和確認(rèn)測試。系統(tǒng)測試的目的是通過與系統(tǒng)的需求定義做比較,發(fā)現(xiàn)軟件與系統(tǒng)的定義不符合的地方。系統(tǒng)測試可以發(fā)現(xiàn)問題定義時犯下的錯誤。

13.D解析:通常,引用一個數(shù)組元素可以用下標(biāo)法,如a[P-a]形式,或指針法,如*(&a[i])的形式。本題中a[9]=9,a[10]顯然超出了數(shù)組范圍,注意,數(shù)組的下標(biāo)是從0開始的。

14.A雖為嵌套的for循環(huán),但“m=m%j”只執(zhí)行1次,即當(dāng)i=3時,內(nèi)層循環(huán)條件成立,m=55%3=1,故選A。

15.C

16.B

17.A

18.A函數(shù)fgete()從文件讀入一個字符到指定變量。函數(shù)fputc()將指定字符寫入審文件中,函數(shù)fprinff(),fwrite()均是寫入文件操作函數(shù)。因此選項(xiàng)B,c。D錯誤。答案為A選項(xiàng)。

19.AB選項(xiàng)中運(yùn)算符“%”的運(yùn)算對象為整數(shù)。C選項(xiàng)中不能將變量賦給表達(dá)式“x+n”。D選項(xiàng)中不能將表達(dá)式“4+1”賦給常量5。故本題答案為A選項(xiàng)。

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

21.(double*)(double*)解析:本題考查強(qiáng)制類型轉(zhuǎn)換。函數(shù)malloc的默認(rèn)返回是void*,若要使指針指向double類型,必須進(jìn)行類型轉(zhuǎn)換,類型轉(zhuǎn)換格式為:(數(shù)據(jù)類型*)。

22.m=4k=4i=5k=5m=4k=4i=5k=5解析:main()函數(shù)首先定義了1個變量i,并初始化為4。然后用表達(dá)式i++的值為實(shí)參調(diào)用函數(shù)fun(),因?yàn)楹缶Y”表達(dá)式的值為增1之前的值,故此時傳遞給函數(shù)的參數(shù)m值為4。fun()函數(shù)中,首先讓形參m自增k,由于此時k還是0,所以m不變,然后讓k自增m,執(zhí)行后k的值和m相同為4。最后fun()函數(shù)輸出m和k廿的值,兩個值都是4,故首先輸出了“m=4k=4”,輸出完后,k自增1(k變?yōu)?)。fun()函數(shù)執(zhí)行完畢,返回main()函數(shù)中,此時i會被自增1變?yōu)?,故接著又輸出的i和k的值都是5。故最終輸出結(jié)果是“m=4k=4i=5k=5”。

23.概念(或概念級)概念(或概念級)

24.sizeof(structnode)或4sizeof(structnode)或4解析:malloc(sizeof(struetnode))的作用是開辟一個長度為sizeof(struetnode)的內(nèi)存區(qū)。(structnode*)的作用是使malloc返回的指針轉(zhuǎn)換為指向structnode類型數(shù)據(jù)的指針。

25.

26.11解析:因?yàn)樵跅l件表達(dá)式(a<b)?a:b中,比較表達(dá)式a<b為真,所以x的值等于a的值等于1,后面兩個條件表達(dá)式中的比較表達(dá)式都為真,所以最終x的值等于1。

27.3535解析:函數(shù)swap(int*a,int*b)的功能是實(shí)現(xiàn)*a和*b中兩個數(shù)據(jù)的交換,在主函數(shù)中調(diào)用swap(p,q)后,形參指針變量a和b分別指向i和j,在swap(int*a,int*b)執(zhí)行完后,指針變量a和b分別指向j和i,而指針變量p,q所指向變量的值沒有發(fā)生變化,所以輸出結(jié)果為35。

28.邏輯結(jié)構(gòu)中相鄰的結(jié)點(diǎn)在存儲結(jié)構(gòu)中仍相鄰。邏輯結(jié)構(gòu)中相鄰的結(jié)點(diǎn)在存儲結(jié)構(gòu)中仍相鄰。解析:順序存儲結(jié)構(gòu)的主要特點(diǎn)是數(shù)據(jù)元素按線性表的邏輯次序,依次存放在一組地址連續(xù)的存儲單元中。在存儲單元中,各元素的物理位置和邏輯結(jié)構(gòu)中各結(jié)點(diǎn)間的相鄰關(guān)系是一致的。

29.數(shù)據(jù)模型數(shù)據(jù)模型

30.無限無限解析:分析程序“while(s)”語句后面有一個“;”不能執(zhí)行后面的語句,只是執(zhí)行空語句,所以s=12保持不變,因此,沒有條件限制的能循環(huán)無限次(即死循環(huán))。

31.101091101091解析:for(表達(dá)式1;表達(dá)式2;表達(dá)式3)語句的功能是:首先計(jì)算表達(dá)式1的值,然后檢測表達(dá)式2的值,若其值為真,則執(zhí)行循環(huán)體語句,執(zhí)行完畢后,再計(jì)算表達(dá)式3的值。然后再檢測表達(dá)式2的值是否為真,若為真,繼續(xù)執(zhí)行循環(huán)體語句,若為假,則退出循環(huán);第1次循環(huán)x>8成立,輸出x=10,y=10后,x的值減1,i=1,執(zhí)行y=++i操作,y的值變?yōu)?;判斷條件還成立,輸出x=9,y=1,然后x的值減1,循環(huán)條件不成立,則退出循環(huán)。

32.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。

33.概要概要

34.010111212010111212解析:本題考查的是靜態(tài)局部變量的運(yùn)用。靜態(tài)局部變量的作用域與普通局部變量一樣,但它的生存期將延長到程序運(yùn)行結(jié)束。本題的主函數(shù)中使用一個for循環(huán)輸出循環(huán)變量i和fun(a)的值,由于a的值一直沒被修改過,所以三次調(diào)用的都是fun(5)。第1次調(diào)用,b=0,c=3,所以返回值為5+1+4=10;第2次調(diào)用,因?yàn)閏是靜態(tài)局部變量,它仍然保存著上次調(diào)用結(jié)束時的值4,而b重新被創(chuàng)建和初始化為0,所以返回值為5+1+5=11;同理,第3次調(diào)用返回的是12。所以,程序最終輸出為:010111212。

35.11解析:在表達(dá)式a+(int)((int)b+c)>>(int)(b-c)中圓括號最優(yōu)先,其次為類型轉(zhuǎn)換(int)、加法+、減法-、右移運(yùn)算>>。所以先看兩個圓括號((int)b+c)和(b-c),前者b先被轉(zhuǎn)換為int型7,然后與c相加得10.6,后者結(jié)果是3.6,現(xiàn)在表達(dá)式為a+(iot)10.6>>(int)3.6。C語言中,float型轉(zhuǎn)換為int型是截尾取整,所以表達(dá)式進(jìn)一步簡化為5+10>>3=>15>>3。由于15的二進(jìn)制為000011112(下標(biāo)),所以15>>3的結(jié)栗是000000012(下標(biāo)),即1。

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

37.算法或程序或流程圖算法或程序或流程圖解析:算法是問題處理方案正確而完整的描述。

38.252137252137解析:本題中先定義了整型變量a、b和c,然后分別給賦值a為25,b為八進(jìn)制的025,c為十六進(jìn)制0x25。然后調(diào)用pruntf()函數(shù)將a、b和c分別用十進(jìn)制輸出,且中間用空格隔開,八進(jìn)制025轉(zhuǎn)換為十進(jìn)制的值為21,十六進(jìn)制的0x25轉(zhuǎn)換為十進(jìn)制的值為37,故最后的輸出結(jié)果為252137。

39.3691236912解析:本題考查最基本的for循環(huán):for(cc=1;cc<5;cc++)規(guī)定循環(huán)次數(shù)為4次,每次a+=3即每次a的值增3,但因?yàn)閒un函數(shù)中變量a為static類型,所以每次調(diào)用完子函數(shù)之后,變量a所做的改變都要保存。

40.5685,6,8解析:首先要清楚當(dāng)滿足第1個if的判斷條件時只執(zhí)行一條語句“s=a;”,當(dāng)滿足第2個if的判斷條件時執(zhí)行一條復(fù)合語句“{s=a;a=c;b=s};”,當(dāng)滿足第3個if的判斷條件時只執(zhí)行一條語句“s=b;”。執(zhí)行程序:判斷a>b,由于a=3,b=5則3>5為假,不執(zhí)行“s=a;”,執(zhí)行“a=b;”和“b=s;”,則a=5,b=8。判斷a>c,由于a=5,c=6則5>6為假,不執(zhí)行“{s=a;a=c;b=s};”。判斷b>c,由于b=5,c=6則5>6為假,不執(zhí)行“s=b;”,執(zhí)行“b=c;”和“c=s;”,則b=6,c=8。最后輸出5,6,8。

41.D解析:本題考核的知識點(diǎn)是指針變量定義和賦值語句的基本應(yīng)用。在使用一個指針變量之前,先要用聲明語句對其進(jìn)行定義,在定義了一個指針變量之后,系統(tǒng)就為這個指針變量分配了一個存儲單元,用它來存放地址。在C語言中有兩個有關(guān)指針的運(yùn)算符:&運(yùn)算符,為取地址運(yùn)算符,*運(yùn)算符是指針運(yùn)算符,*p代表p所指向的變量。本題中首先定義了整型變量n,其初值為0,接著定義一個指針變量p并讓它指向n,然后定義了一個指向指針的指針變量q并讓它指向p,選項(xiàng)A中將常量1賦給指針p不正確;選項(xiàng)B也是將常量2賦給*p,故選項(xiàng)B不正確;選項(xiàng)C中P不是指向指針的指針變量,而將他賦值給一個指向指針的指針變量小顯然不正確,所以,4個選項(xiàng)中選項(xiàng)D符合題意。

42.A解析:函數(shù)f()的作用是形參a為偶數(shù)的時候返回0,主函數(shù)中首先定義了一個長度為8的一維數(shù)組,然后給它賦初值使得s[0]=1、s[1]=3、s[2]=5、s[3]=2、s[4]=4、s[5]=6。其他沒有賦值的數(shù)組元素將自動賦值為0。for循環(huán)中,當(dāng)s[i]不為偶數(shù)的時,將s[i]相加,即當(dāng)i=3時,s[i]=2為偶數(shù),退出循環(huán),此時d的值為d=s[0]+s[1]+s[2]=1+3+5=9,因此最后輸出的d的值為9。

43.D解析:在數(shù)據(jù)庫管理系統(tǒng)提供的數(shù)據(jù)語言中,數(shù)據(jù)控制語言負(fù)責(zé)數(shù)據(jù)的完整性、安全性的定義與檢查以及并發(fā)控制、故障恢復(fù)等功能。

44.B解析:在表達(dá)式中根據(jù)運(yùn)算的結(jié)合性和運(yùn)算符的優(yōu)先級,首先計(jì)算的是a/b(8/5=1),再將1+0.4賦值給c,由于c為整型變量所以要將1.4轉(zhuǎn)換為整型,即舍棄小數(shù)位(c的值變?yōu)?)。

45.A

46.C解析:在C語言中,以“\\”開頭的字符均為轉(zhuǎn)義字符,其中“\\”后可跟1~3位八進(jìn)制數(shù)或在“\\”后跟字母x及1~2位十六進(jìn)制數(shù),以此來代表一個特定的字符。

47.CC?!窘馕觥繕渚哂忻黠@的層次關(guān)系,即樹是一種層次結(jié)構(gòu)。在樹結(jié)構(gòu)中,根結(jié)點(diǎn)在第一層上。當(dāng)樹為非空時,樹中有且只有一個根結(jié)點(diǎn),當(dāng)樹為空時,樹中根結(jié)點(diǎn)的數(shù)目為0。

48.B解析:結(jié)構(gòu)體數(shù)組中對結(jié)構(gòu)體成員的引用要先引用到數(shù)組元素,然后像對待普通的結(jié)構(gòu)體變量一樣來對待結(jié)構(gòu)體數(shù)組元素就可以了。注意:引用結(jié)構(gòu)體變量中的數(shù)據(jù)。

49.D解析:注意的是x++中x值的引用時,這里應(yīng)當(dāng)是先引用,后自加,具體執(zhí)行過程如下:第—次while循環(huán):條件為真,執(zhí)行a=a+1=1;此時,x的值已為4,判斷y<x不成立,繼續(xù)執(zhí)行循環(huán);第二次while循環(huán);條件為假,此時x的值已為5,退出while循環(huán),執(zhí)行printf。

50.A解析:花括號“{”和“}”不僅可以作為函數(shù)體的定界符,而且可以作為復(fù)合語句的定界符,選項(xiàng)B錯誤;main()函數(shù)不可以由用戶命名,選項(xiàng)C錯誤;分號是C語句的結(jié)束符,是構(gòu)成C語句的必要組成部分,選項(xiàng)D錯誤。

51.D解析:結(jié)構(gòu)化分析方法,數(shù)據(jù)流圖,數(shù)據(jù)字典,軟件需求規(guī)格說明書

評析,需求分析是軟件定義時期的最后一個階段,它的基本任務(wù)就是詳細(xì)調(diào)查現(xiàn)實(shí)世界要處理的對象(組織,部門、企業(yè)等),充分了解原系統(tǒng)的工作概況,明確用戶的各種需求,然后在此基礎(chǔ)上確定新系統(tǒng)的功能.選項(xiàng)A)軟件開發(fā)方法是在總體設(shè)計(jì)階段完成的任務(wù);選項(xiàng)B)軟件開發(fā)工具是在實(shí)現(xiàn)階段需完成的任務(wù):選項(xiàng)C)軟件開發(fā)費(fèi)用是在可行性研究階段需完成的任務(wù)。

52.B解析:關(guān)系數(shù)據(jù)庫邏輯設(shè)計(jì)的主要工作是將\ue008E-R\ue009圖轉(zhuǎn)換成指定RDBMS中的關(guān)系模式。首先,從E-R圖到關(guān)系模式的轉(zhuǎn)換是比較直接的,實(shí)體與聯(lián)系都可以表示成關(guān)系,E-R圖中屬性也可以轉(zhuǎn)換成關(guān)系的屬性,實(shí)體集也可以轉(zhuǎn)換成關(guān)系。

53.B解析:指定輸入數(shù)據(jù)所占列數(shù)之后,系統(tǒng)自動按它截取所需數(shù)據(jù),無須分界符。程序中指定整型變量a占3列,輸入12345、abc后,系統(tǒng)自動將數(shù)據(jù)前3列123賦給變量a,而剩余的數(shù)據(jù)則根據(jù)具體情況賦給其他變量或作為多余數(shù)據(jù)處理。因程序中還需對字符變量ch輸入數(shù)據(jù),雖然指定輸入3列字符,但字符型數(shù)據(jù)只能有一個字符,因此把剩余的“45、abc”中第1個數(shù)據(jù)4賦給變量ch,故正確答案為選項(xiàng)B。

54.C解析:本題主要考查聯(lián)合體的內(nèi)存使用:聯(lián)合體所占用的內(nèi)存空間為最長的成員所占用的空間,int占2個字節(jié),char占1個字節(jié),float占4個字節(jié),所以arr所占的內(nèi)存長度等于成員c的長度;arr的地址和它的各成員的地址都是同一地址;不能直接對arr賦值,即不能在定義arr時對它初始化;arr也不可以作為函數(shù)參數(shù)。

55.D

56.C解析:“&”表示按位與,c&c=c,因此輸出結(jié)果為c的值。

57.C解析:本題考查移位運(yùn)算和按位或運(yùn)算,注意按位或運(yùn)算時只要對應(yīng)的二進(jìn)制位中有一個為1,結(jié)果為1;若都為0,結(jié)果為00

58.B解析:指針是—種用來存放變量地址的特殊變量。本題中指針變量p用于存放整型變量i的地址,改變*p的值即為改變i的值。又因?yàn)椤?”和“*”兩個運(yùn)算符的優(yōu)先級相同,按自右而左的方向結(jié)合,所以*&j運(yùn)算選進(jìn)行&j運(yùn)算,得j的地址,再進(jìn)行*運(yùn)算,取所得地址里面的值,故*&j與j等價。

59.C解析:只能在循環(huán)體內(nèi)和swish語句體內(nèi)使用break語句。當(dāng)break出現(xiàn)在循環(huán)體的switch語句體內(nèi)時,其作用只是跳出該switch語句體,并不能中止循環(huán)體的執(zhí)行。若想強(qiáng)行中止循環(huán)體的執(zhí)行,可以在循環(huán)體中,但并不在switch語句中設(shè)置break語句,滿足某種條件則跳出本層循環(huán)體。

60.B

61.B

62.B

63.C第一次外循環(huán)i的值為l,第一次內(nèi)循環(huán)j的值為3,不滿足條件執(zhí)行in}=i}j即m的值為3;第二次j的值為2,不滿足條件執(zhí)行m·=i*j,即m的值為6;第三次j的值為1,不滿足條件執(zhí)行nl*=i*j,即m的值仍為6。第二次外循環(huán)i的值為2,j的值為3,滿足條件,執(zhí)行break語句,跳出循環(huán)。

64.C

65.C

66.C

67.D解析:時間復(fù)雜度是指一個算法執(zhí)行時間的相對度量;空間復(fù)雜度是指算法在運(yù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

提交評論