2021年廣東省韶關(guān)市全國計算機等級考試C語言程序設(shè)計重點匯總測試卷(含答案)_第1頁
2021年廣東省韶關(guān)市全國計算機等級考試C語言程序設(shè)計重點匯總測試卷(含答案)_第2頁
2021年廣東省韶關(guān)市全國計算機等級考試C語言程序設(shè)計重點匯總測試卷(含答案)_第3頁
2021年廣東省韶關(guān)市全國計算機等級考試C語言程序設(shè)計重點匯總測試卷(含答案)_第4頁
2021年廣東省韶關(guān)市全國計算機等級考試C語言程序設(shè)計重點匯總測試卷(含答案)_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021年廣東省韶關(guān)市全國計算機等級考試C語言程序設(shè)計重點匯總測試卷(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.

2.下列敘述中正確的是A.程序設(shè)計就是編制程序

B.程序的測試必須由程序員自己去完成

C.程序經(jīng)調(diào)試改錯后還應(yīng)進行再測試

D.程序經(jīng)調(diào)試改錯后不必進行再測試

3.在inta=3,int*p=&a;中,*p的值是()

A.變量a的地址值B.無意義C.變量p的地址值D.3

4.在一個元素個數(shù)為N的數(shù)組里,找到升序排在N/5位置的元素的最優(yōu)算法時間復(fù)雜度是()A.O(n)B.O(nlogn)C.O(n(logn)2)D.O(n3/2)

5.

6.可用作C語言用戶標(biāo)識符的一組標(biāo)識符是()。A.voiddefine+WORDB.a3_b3_123YNC.for-abcCaseD.2aDOsizeof

7.下面關(guān)于B樹和B+樹的敘述中,不正確的結(jié)論是()。

A.B樹和B+樹都能有效的支持順序查找

B.B樹和B+樹都能有效的支持隨機查找

C.B樹和B+樹都是平衡的多叉樹

D.B樹和B+樹都可用于文件索引結(jié)構(gòu)

8.下列敘述中錯誤的是()。

A.一個C語言程序只能實現(xiàn)一種算法

B.c程序可以由多個程序文件組成

C.C程序可以由一個或多個函數(shù)組成

D.一個c函數(shù)可以單獨作為一個C程序文件存在

9.下列程序的運行結(jié)果是()。#include<stdio.h>#defineADD(x)x+xmain(){intm=1,n=2,k=3;ints=ADD(m+n)*k;printf("s=%d",s);}

A.sum=18B.sum=10C.sum=9D.sum=25

10.

11.有三個關(guān)系R、S和T如下:由關(guān)系R和S得到關(guān)系T的操作是()。A.自然連接B.交C.除D.并

12.有以下程序voidf(intn,int*r){intr1=0;if(n%3==0)r1=n/3;elseif(n%5==0)r1=n/5;elsef(--n,&r1);*r=r1;}main(){intm=7,r;f(m,&r);printf("%d",r);}程序運行后的輸出結(jié)果是A.2B.1C.3D.0

13.以下敘述正確的是

A.continue語句的作用是結(jié)束整個循環(huán)的執(zhí)行

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

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

D.從多層循環(huán)嵌套中退出時,只能使用goto語句

14.

15.已知二叉樹后序遍歷序列是dabeC,中序遍歷序列是debaC,它的前序遍歷序列是()。

A.aChedB.deCabC.deabeD.Cedba

16.程序設(shè)計的任務(wù)包括()。

A.編寫程序代碼并上機調(diào)試B.確定所用數(shù)據(jù)結(jié)構(gòu)C.確定所用算法D.以上選項均正確

17.有以下程序:#include<stdio.h>main(){FILE*fp;inti,a[6]={1,2,3,4,5,6},k;fp=fopen(“data,dat”,“w+”);for(i=0;i<6;i++)fprintf(fp,“%d\n”,a[5-i]);rewind(fp);for(i=0;i<6;i++){fscanf(fp,“%d”,&k);printf(“%d,”,k);}fclose(fp);}程序運行后的輸出結(jié)果是()。

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

18.若有定義語句:"inta[4][10],*P,*q[4];"且0≤i<4,則錯誤的賦值是()。

A.D=aB.q[i]=a[i]C.p=a[l]D.P=&a[2][1]

19.一個遞歸的定義可以用遞歸過程求解,也可以用非遞歸過程求解,但單從運行時間來看,通常遞歸過程比非遞歸過程()。

A.較快B.較慢C.相同D.無法確定

20.

二、2.填空題(20題)21.C語言中用______表示邏輯值為“真”,用數(shù)字“0”表示邏輯值為“假”。

22.有以下程序:

#include<string.h>

structSTU

{charname[10];

intnum;};

voidf(char*name,intnum)

{structSTUs[2]={{"SunDan",20044},{"Penghua",20045}};

num=s[0].num;

strcpy(name,s[0].name);

}

main()

{structSTUs[2]={{"YangSan",20041},{"LiSiGuo",20042}},*p;

p=&s[1];f(p->name,p->num);

printf("%s%d\n",p->name,p->num);

}

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

23.數(shù)據(jù)庫系統(tǒng)在其內(nèi)部分為三級模式,即概念模式、內(nèi)模式和外模式。其中,【】給出了數(shù)據(jù)庫物理存儲結(jié)構(gòu)和物理存取方法。

24.mystrlen函數(shù)的功能是計算str所指字符串的長度,并作為函數(shù)值返回。請?zhí)羁铡?/p>

intmystrlen(char*str)

{inti;

for(i=0;【】!='\0';i++);

return(i);}

25.當(dāng)數(shù)據(jù)的物理結(jié)構(gòu)(存儲結(jié)構(gòu))改變時,不影響數(shù)據(jù)庫的邏輯結(jié)構(gòu),從而不致引起應(yīng)用程序的變化,這是指數(shù)據(jù)的_______。

以下程序的輸出結(jié)果是#include<stdio.h>voidprt(int*x,int*y,int*z){printf("%d,%d,%d\n",++*x,++*y,*(z++));}main(){inta=10,b=40,c=20;prt(&a,&b,&c);prr(&a,&b,&c);}

26.設(shè)x、y、z均為int型變量,請寫出描述“x或y中至少有一個小于z”的表達式______。

27.算法的復(fù)雜度主要包括時間復(fù)雜度和______復(fù)雜度。

28.以下程序通過函數(shù)指針p調(diào)用函數(shù)fun,請在填空欄內(nèi)寫出定義變量p的語句。

voidfun(int*x,int*y)

{……}

main()

{inta=10,b=20;

【】:

p=fun;p(&a,&b);

……

}

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

main()

{inti,a[10];

a[0]=a[1]=1;

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

a[i]=a[i-2]+a[i-1];

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

{if(i%2==0)printf("\n");

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

}

}

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

#include<stdio.h>

main()

{staticchara[]="language",b[]="program";

char*ptr1=a,*ptr2=b;

intk;

for(k=0;k<7;k++)

if(*(ptr1+k)==*(ptr2+k))

printf("%c",*(ptr1+k));}

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

main()

{

intarr[]={30,25,20,15,10,5},*p=arr;

p++;

printf("%d\n",*(p+3));

}

32.設(shè)有下面的程序段:chars[]="china";char*p;p=S;則下列敘述正確的是

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

main()

{intx=10,y=20,t=0;

if(x==y)t=x;x=Y;Y=t;

printf(“%d,%d\n”,x,y);

}

34.設(shè)有下列程序:

#include<stdio.h>

#include<string.h>

main()

{inti;

chars[10],t[10];

gets(t);

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

{gets(s);

if(strcmp(t,s)<0)strcpy(t,s);

}

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

}

程序運行后,從鍵盤上輸入(<CR>代表回車符):DEF<CR>BADEP<CR>QTHRG<CR>,則程序的輸出結(jié)果是______。

35.下列程序的運行結(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);

}

36.結(jié)構(gòu)化程序設(shè)計的3種基本結(jié)構(gòu)分別是順序、選擇和______。

37.C語言用于結(jié)構(gòu)化程序設(shè)計的3種基本結(jié)構(gòu)是______、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。

38.閱讀下列程序,則程序的輸出結(jié)果為【】。

#include"stdio.h"

structty

{intdata;

charc;};

main()

{structtya={30,'x'};

fun(a);

printf("%d%c",a.data,a.c);}

fun(structtyb)

{b.data=20;

b.c='y';}

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

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

#include<stdio.h>

main()

{inta=25;

fun(&A);

}

fun(int*x)

{printf("%d\n",++*x);

}

三、1.選擇題(20題)41.1.以下選項中屬于C語言數(shù)據(jù)類型的是()

A.復(fù)數(shù)型B.邏輯型C.雙精度型D.集合型

42.若有下面的說明和定義,則sizeof(structaa)的值是______。structaa{intr1;doubler2;floatr3;unionuu{charul[5];longu2[2]}ua;}mya;

A.30B.29C.24D.22

43.設(shè)有如下說明typedefstruct{intn;charc;doubleX;}STD;則以下選項中,能正確定義結(jié)構(gòu)體數(shù)組并賦初值的語句是

A.STDtt[2]={{1,'A',62},{2,'B',75}};

B.STDtt[2]={1,"A",62,2,"B",75};

C.structtt[2]={{1,'A'),{2,'B'}};

D.structtt[2]={{1,"A",62.5},{2,"B",75.0}};

44.設(shè)有以下說明語句structex{intX;floaty;charz;}example;則下面的敘述中不正確的是

A.struct結(jié)構(gòu)體類型的關(guān)鍵字

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

C.x,y,z都是結(jié)構(gòu)體成員名

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

45.現(xiàn)有如下程序段

#include"stdio.h"

#include"string.h"

main()

{chara[]="acfijk";/*這里是有序的字符序列*/

charb[]="befijklqswz";/*這里是有序的字符序列*/

charc[80],*p;

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

while(a[i]!=′\0′&&b[j]!=′\0′)

{if(a[i]<b[j])c[k++]=a[i++];

elseif(a[i]>b[j])c[k++]=b[j++];

else{c[k++]=b[j++];

i++;}}

while(a[i]==′\0′&&b[j]!=′\0′)

c[k++]=b[j++];

while(a[i]!=′\0′&&b[j]==′\0′)

c[k++]=a[i++];

c[k]=′\0′;

puts(c);}

則輸出結(jié)果是

A.acfijkbefijklqswz

B.abceffiijjkklqswz

C.befijklqswzacfijk

D.abcefijklqswz

46.已知二叉樹BT的后后序遍歷序列是dabec,中序遍歷序列是debac,它的前序遍序列是______。

A.cedbaB.acbedC.decabD.deabc

47.設(shè)棧S的初始狀態(tài)為空,棧的容量為5,若入棧元素的順序是e1、e2、e3、e4、e5,則出棧元素的順序不可能是______。

A.e1、e2、e3、e4、e5

B.e5、e4、e3、e2、e1

C.e2、e4、e3、e5、e1

D.e3、e4、e1、e2、e5

48.若函數(shù)中有定義語句:inta;,則()。

A.系統(tǒng)將自動給a賦初值0B.這時a中的值是和隨機數(shù)C.系統(tǒng)將自動給a賦初值-1D.這a中無任何值

49.有如下程序inta[10]={1,2,3,4,5,6,7,8,9,10};int*p=&a[3],b;b=p[5];則b的值是

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

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

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

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

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

52.利用fseek函數(shù)可以實現(xiàn)的操作是

A.改變文件的位置指針B.文件的順序讀寫C.文件的隨機讀寫D.以上答案均正確

53.在下列定義中的共用體所占內(nèi)存字節(jié)數(shù)是()。union{chark[6];struct{intm;floarf;}a;doubled;}b;

A.8B.14C.18D.10

54.有以下程序:main(){intm,n,p;scanf("m=%dn=%dp=%d",&m,&n,&p);print("%d%d%d\n",m,n,p);}若想從鍵盤上輸入數(shù)據(jù),使變量m中的值為123,n中的值為456,p中的值為789,則正確的輸入是()。

A.m=123n=456P=789

B.m=123n=456p=789

C.m=123,n=456,p=789

D.123456789

55.若有下面的說明和定義:unionun{chars[10];longd[3];}ua;struetstd{charc[10];doubled;inta;unionunvb;}a;則printf("%d\n",sizeof(structstd)+sizeof(unionun));輸出的值為______。

A.34B.52C.54D.64

56.以下各選項企圖說明一種新的類型名,其中正確的是______。

A.typedefv1int;

B.typedefv2=int;

C.typedefintv3;

D.typedefv4:int

57.有定義語句:ihtb;charc[10];,則正確的輸入語句是

A.scanf("%d%s",&b,&c);

B.scanf("%d%s",&b,c);

C.scanf("%d%s",b,c);

D.scanf("%d%s",b,&c);

58.有以下程序:main(){unsignedchara,b,c;a=0x3;b=a│0x8;c=b<<1;printf("%d%d\n",b,C);}程序運行后的輸出結(jié)果是()。

A.-1112B.-19C.1224D.1122

59.下列程序的運行結(jié)果是()。#include<stdio.h>main(){inta=2,b=3,c=4;if(a<B)if(b<0)c=0;elsec+=1;printf("%d\n",C);}

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

60.在設(shè)計程序時,應(yīng)采納的原則之一是______。

A.程序結(jié)構(gòu)應(yīng)有助于讀者理解B.不限制goto語句的使用C.減少或取消注解行D.程序越短越好

四、選擇題(20題)61.下列4個關(guān)于C語言的結(jié)論中錯誤的是()。

A.可以用do—while語句實現(xiàn)的循環(huán)一定可以用while語句實現(xiàn)

B.可以用for語句實現(xiàn)的循環(huán)一定可以用while語句實現(xiàn)

C.可以用while語句實現(xiàn)的循環(huán)一定可以用for語句實現(xiàn)

D.do-while語句與while語句的區(qū)別僅是關(guān)鍵字“while”出現(xiàn)的位置不同

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

A.軟件測試應(yīng)該由程序開發(fā)者來完成

B.程序經(jīng)調(diào)試后一般不需要測試

C.軟件維護只包括對程序代碼的維護

D.以上三種說法都不對

63.下列關(guān)于棧的敘述正確的是()。

A.棧按“先進先出”組織數(shù)據(jù),B.棧按“先進后出”組織數(shù)據(jù)C.只能在棧底插入數(shù)據(jù)D.不能刪除數(shù)據(jù)

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

inta[5]={2,4,6,8,10},*P,**k;

p=a;k=&p;

printf("%d",*(p++));

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

A.44B.22C.24D.46

65.對長度為n的線性表排序,在最壞情況下,比較次數(shù)不是n(n-1)/2的排序方法是()。

A.快速排序B.冒泡排序C.直接插入排序D.堆排序

66.有以下程序:

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

A.Zhao,m,85,90B.Qian,m,85,90C.Zhao,f,95,92D.Qian,f,95,92

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

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

A.Zha0,m,85,90,Qian,f,95,92

B.Zha0,m,85,90,Zha0,m,85,90

C.Qian.f,95,92,Qian,f,95,92

D.Qian,f,95,92,Zha0,m,85,90

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

A.用E—R圖能夠表示實體集之間一對一的聯(lián)系、一對多的聯(lián)系、多對多的聯(lián)系

B.用E—R圖只能表示實體集之間一對一的聯(lián)系

C.用E—R圖只能表示實體集之間一對多的聯(lián)系

D.用E—R圖表示的概念數(shù)據(jù)模型只能轉(zhuǎn)換為關(guān)系數(shù)據(jù)模型

70.若某二叉樹的前序遍歷訪問順序是abdgcefh,中序遍歷訪問順序是dgbaechf,則其后序遍歷的結(jié)點訪問順序是()。

A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca

71.

72.

73.

74.

75.

76.若以下選項中的變量已正確定義,則正確的賦值語句是()。

A.x1=26.8%3B.1+2=x2C.x3=0x12D.x4=1+2=3

77.

78.下列敘述中錯誤的是()。

A.C程序可以由多個程序文件組成

B.一個c語言程序只能實現(xiàn)一種算法

C.c程序可以由一個或多個函數(shù)組成,

D.一個C函數(shù)可以單獨作為一個C程序文件存在

79.

80.(64)在單鏈表中,增加頭結(jié)點的目的是()

A.方便運算的實現(xiàn)

B.使單鏈表至少有一個結(jié)點

C.標(biāo)識表結(jié)點中首結(jié)點的位置

D.說明單鏈表是線性表的鏈?zhǔn)酱鎯崿F(xiàn)

五、程序改錯題(1題)81.下列給定程序中,函數(shù)fun的功能是:計算整數(shù)n的階乘。請改正程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計題(1題)82.請編寫一個函數(shù)proc,它的功能是:求出1~m(含m)能被7或11整除的所有整數(shù)放在數(shù)組a中,通過n返回這些數(shù)的個數(shù)。

例如,若傳給m的值為70,則程序輸出:

7111421222833354244495556636670

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

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

試題程序:

#include<stdlib.h>

#include<conio.h>

#include<stdio.h>

#defineN100

voidproc(intm,int*a,int*n)

{}

voidmain

{

intarr[N],n,k;

system("CLS");

proc(70,arr,&n);

for(k=0;k<n;k++)

if((k+1)%20==0)//每行輸出20個數(shù)

{printf("%4d",arr[k]);

printf("\n");

}

else

printf("%4d",arr[k]);

printf("\n");

}

參考答案

1.B

2.C解析:軟件設(shè)計的基本目標(biāo)是用比較抽象概括的方式確定目標(biāo)系統(tǒng)如何完成預(yù)定的任務(wù),軟件沒計是確定系統(tǒng)的物理模型。軟件測試即使用人工或自動手段來運行或測定某個系統(tǒng)的過程,其日的在于檢驗它是否滿足規(guī)定的需求或是弄清預(yù)期結(jié)果與實際結(jié)果之間的差別。軟件調(diào)試后要進行回歸測試,防止引進新的錯誤。

3.D

4.A

5.A

6.B

7.A

8.A答案A

解析:一個C程序可以有一個或多個程序文件,也可以有一個或多個函數(shù),所以一個C語言程序可以實現(xiàn)多種算法。

9.B解析:本題考查帶參數(shù)的宏的定義及相關(guān)運算:S=m+n+m+n*k=1+2+1+2*3=10。

10.A

11.C由圖所知,其中,C中只有一個屬性,是除操作。

12.A解析:本題考查了函數(shù)的遞歸調(diào)用。在f函數(shù)中,當(dāng)m=7時,程序執(zhí)行“f(--n,&r1);”語句,遞歸調(diào)用f(6,&r1),程序執(zhí)行“r1=n/3;”語句,即r1=\u30006/3=2,然后執(zhí)行“*r=r1;”語句,所以輸出結(jié)果為2。

13.B解析:continue是結(jié)束本次循環(huán),直接進入到下次循環(huán)中,break用于循環(huán)語句中的作用是直接跳出本層循環(huán),能從多層循環(huán)中退出的語句除了goto語句,exit,return等語句也能直接跳出多層循環(huán)。注意:continue和break語句在while語句中的作用。

14.B

15.D二叉樹的遍歷有3種:前序、中序和后序。①前序遍歷訪問根結(jié)點,然后按左右順序遍歷子結(jié)點;②中序首先遍歷左子樹,然后訪問根結(jié)點,最后遍歷右子樹;③后序遍歷首先遍歷左子樹,然后遍歷右子樹,最后訪問根結(jié)點。本題根據(jù)后序和中序遍歷的結(jié)果可以得出二叉樹的結(jié)構(gòu),然后再對其進行前序遍歷,正確答案選項為D。

16.D程序設(shè)計是一門技術(shù),需要相應(yīng)的理論、技術(shù)、方法和工具來支持。程序設(shè)計的任務(wù)包括選項A)、B)、c)等方面。

17.A函數(shù)fopen(“data.dat”,“w+”)中的“w+”表示打開可讀寫文件,若文件存在則文件長度清為零,即該文件內(nèi)容會消失;若文件不存在則建立該文件?!皉ewind(fp);”使文件fp的位置指針指向文件開始。函數(shù)“fprintf(fp,“%d\\n”,a[5-i]);”將a[i]輸出到fp指向的文件中。函數(shù)“fscanf(fp,“%d”,&k);”將fp讀入變量k中。第1個for循環(huán)將數(shù)組中元素倒著輸入fp指向的文件中。rewind則指向文件開始,因此輸出的是數(shù)組a的倒敘:6,5,4,3,2,1,。故本題答案為A選項。

18.A數(shù)組名是一個存放一個數(shù)組首地址的值,是一個地址常量。而p=a不是合法的,因為p和a的基本類型不同。

19.B

20.C

21.非0非0解析:邏輯運算中,非0表示邏輯“真”,用。表示邏輯“假”。

22.SunDan20042SunDan20042解析:f函數(shù)中形參1用的是顯式傳地址的方式,因此p->name的值發(fā)生改變,而形參2用的傳值的方式,在調(diào)用時不改變實參的值,因此p->num的值不發(fā)生變化。

23.內(nèi)模式內(nèi)模式解析:內(nèi)模式又稱為物理模式,它給出了數(shù)據(jù)庫物理存儲結(jié)構(gòu)與物理存取方法。

24.*(str+i)或str[i]*(str+i)或str[i]解析:str是指針變量,它指向字符型數(shù)據(jù),在循環(huán)過程中,可以用*(str+i)來訪問字符串中的第i個元素,判斷是否是結(jié)束標(biāo)志,如果不是,i=i+1,繼續(xù)取下一個元素進行判斷,直到*(str+i)的值為'\\0'為止,也可以用下標(biāo)的方式引用字符,如*(str+i)相當(dāng)于str[i]。

25.B

26.x<z‖y<zx<z‖y<z解析:本題考查邏輯運算符和邏輯表達式。x或y中至少有一個小于z,即x<z或y<z,是“或”的關(guān)系。

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

28.void(*p)();void(*p)();解析:要定義p為指向函數(shù)的指針變量,需寫成void(*p)();,注意*p兩側(cè)的括弧不可以省略,表示P先與*結(jié)合,是指針變量,再與后面的()結(jié)合,表示此指針變量指向函數(shù),這個函數(shù)無返回值(同fun()函數(shù))。

29.11<CR>23<CR>5(<CR代表換行)11<CR>23<CR>5(<CR,代表換行)解析:本題通過語句“for(i=2;i<5;i++)a[i]=a[i-2]+a[i-];”將數(shù)組中前面兩項的和賦值給數(shù)組當(dāng)前元素,得到a的值應(yīng)為(1,1,2,3,5)。語句if(i%2==0)pfintf('\\n')是要將數(shù)組中的元素以每行2個的形式輸出。

30.gaga解析:考查了用字符指針處理字符串的方法。用字符指針處理字符串,首先要使指針指向這個字符串,即題中的ptr1=a和ptr2=b,然后就是通過指針的移動可以引用到字符串中的每一個字符。題中的*(ptr1+k)是使指針ptr1向后移動k個位置,然后取出指向的字符。

31.1010解析:整型指針最初被賦的值是數(shù)組arr的頭指針,即指向數(shù)組的第一個元素30,p++后,指針指向數(shù)組的下一個元素,即*p=arr[1]=25,在執(zhí)行*(p+3)時,則相當(dāng)于a[1+3],即10。因此,輸出應(yīng)為100。

32.D

33.20020,0解析:在主函數(shù)中首先定義了三個整型變量x、y、t,并分別給它們賦初值為10,20,0,接著執(zhí)行if語句,在if后面括號內(nèi)的條件表達式中,條件“x==y”即“10==20”不成立,則不執(zhí)行其后的語句“t=x”,然后退出if語句,順序執(zhí)行語句x=Y;Y=t;。執(zhí)行完這兩條語句后x的值變?yōu)?0,y的值變?yōu)?,所以最后輸出x,y的值為20和0。

34.函數(shù)strcmp(t,s)用來比較t和s所指字符串的大小,若t>s,則函數(shù)值大于0;若t=s,則函數(shù)值等于0;若t<s,則函數(shù)值小于0。函數(shù)strcpy(t,s)的功能:把字符數(shù)組s所指字符串的內(nèi)容復(fù)制到字符數(shù)組t所指存儲空間中。

本題中,t[10]='CDEF'。第一次循環(huán),s[10]='BADEF',if語句的控制條件strcmp(t,s)<0不成立,接著執(zhí)行第二次循環(huán),s='QTHRG',if語句的控制條件strcmp(t,s)<0成立,執(zhí)行下列的語句,將字符數(shù)組s所指字符串的內(nèi)容復(fù)制到字符數(shù)組t

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

36.重復(fù)(循環(huán))重復(fù)(循環(huán))解析:結(jié)構(gòu)化程序設(shè)計包括3種基本的結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)和重復(fù)結(jié)構(gòu)(循環(huán)結(jié)構(gòu)),利用這3種結(jié)構(gòu)就足以表達出各種其他形式結(jié)構(gòu)的程序設(shè)計方法。其中利用循環(huán)結(jié)構(gòu),可以簡化大量的程序執(zhí)行。

37.順序結(jié)構(gòu)順序結(jié)構(gòu)解析:結(jié)構(gòu)化程序有3種摹本結(jié)構(gòu),即順序結(jié)構(gòu)、選擇結(jié)構(gòu)(包括if語句和switch語句)和循環(huán)結(jié)構(gòu)(包括for語句、while語句、do…while語句)。

38.30x30x解析:本題的參數(shù)傳遞屬于值傳遞,所以函數(shù)內(nèi)不能改變調(diào)用函數(shù)中的數(shù)據(jù)。

39.1919解析:根據(jù)二叉樹的性質(zhì):在任意一棵二叉樹中,度為。的結(jié)點(即葉子結(jié)點)總是比度為2的結(jié)點多一個。本題中度為2的結(jié)點數(shù)為18,故葉子結(jié)點數(shù)為18+1=19個。

40.2626解析:在主函數(shù)中只調(diào)用了fun函數(shù),調(diào)用時把變量a的地址傳遞給形參。fun函數(shù)的形參x是一個指針,其基類型與主函數(shù)中a的類型一致,因此在調(diào)用時得到的是a的地址,輸出項是++*x,*x代表的就是主函數(shù)中變量a的存儲單元,++*x就是使主函數(shù)中a的值加1,輸出26。

41.C解析:C語言的數(shù)據(jù)類型分為基本類型、構(gòu)造類型、指針類型、空類型四大類,其中,基本類型分為整型、字符型、實型三類。實型又稱浮點型,包括單精度型和雙精度型兩種。

42.D解析:結(jié)構(gòu)體變量所占內(nèi)存長度是各成員占的內(nèi)存長度之和,每個成員分別占有自己的內(nèi)存單元;共用伸變量所占的內(nèi)存長度等于最長的成員的長度。結(jié)構(gòu)件變量aa中,成員r1占2個字節(jié),r2占8個字節(jié),r3占4個字節(jié),共用體ua占8個字節(jié),所以共占用2+8+4+8=22個字節(jié)。

43.A解析:本題定義了一個結(jié)構(gòu)體類型并自定義類型名為STD,用戶自定義類型后,就可以利用它進行變量與數(shù)組的定義。定義的方法,與c語言中其他類型的定義完全一樣,定義結(jié)構(gòu)型數(shù)組并賦初值時,每個元素用一對“{”和“}”括起來,字符型元素用“'”括起來,選項A,B、C、D中只有選項A符合條件。所以,A選項為所選。

44.B解析:本題中,structex是結(jié)構(gòu)體類型名,ex-ample是結(jié)構(gòu)體變量名。

45.D解析:這個題目的功能是實現(xiàn)兩個有序字符串,合并成一個新的有序的字符串。

46.A解析:二叉樹BT的后序遍歷序列為dabec,故BT的根結(jié)點為c:而BT的中序遍歷序列是debac,即遍歷序列中最后—個結(jié)點為跟結(jié)點,說明BT的右子樹為空。由BT的的后序遍歷序列和中序遍歷序列可知BT的左子樹(LST)的后序遍歷序序列和序遍歷序列分別為dabe和deba(樹是遞歸定義的):故LST的根結(jié)點是e,在由LST的中序遍歷序列可知其左子樹為d。因此BT的前序遍歷序列為cedba。

47.D解析:棧是僅在表頭和表尾進行插入和刪除元素操作的線性表,其特點是“先進后出”。本題中,進棧的過程中可以出棧。選項D中,如果第一個出棧的元素為e3,由于入棧順序是e1、e2、e3,那么e3出棧后,棧中元素必定有e1和e2,因為e1先入棧,故e1應(yīng)在e2后出棧,所以選項D是不可能的出棧順序。

48.B本題考查變量賦值基本概念。在聲明一個變量后,如果未顯式的對其進行賦值,則它的值是一個隨機值。

49.C解析:p=&a[3]將指針指向數(shù)組a的第4個元素,p[5]指向數(shù)組a的第9個元素,而a[8]=9,所以b=9。

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

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

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

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

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

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

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

52.D解析:用fseek函數(shù)可以實現(xiàn)改變文件的位置指針,從而實現(xiàn)對文件的順序和隨機讀寫。

53.A解析:結(jié)構(gòu)體變量所占的存儲空間是各個分量所占空間的總和。共用體變量中的所有成員占有同一個存儲空間,其字節(jié)數(shù)與成員中占字節(jié)數(shù)最多的那個成員相等。m占2個字節(jié),f占4個字節(jié),因此結(jié)構(gòu)體變量a所占的存儲空間為6字節(jié)。k[6]占6個字節(jié),d占8個字節(jié)。共用體變量b所占的存儲空間與占存儲空間最多的d所占存儲空間的字節(jié)數(shù)相同。所以,A選項為所選。

54.A解析:本題若想使變量m的值為123、n為456、p為789,則應(yīng)該輸入的字符串為:用這三個數(shù)據(jù)按m、n、p出現(xiàn)在scaaf()函數(shù)中的位置順序替換掉scant()函數(shù)格式控制串中的格式控制符后所得到的格式控制串,即'm=123n=456p=789'。所以,4個選項十選項A符合題意。

55.B解析:結(jié)構(gòu)體中的每個成員分別占用獨立的存儲空間,因此它所占的內(nèi)存字節(jié)數(shù)是其成員所占字節(jié)數(shù)的總和;共用體變量所占內(nèi)存字節(jié)數(shù)與其成員中占字節(jié)數(shù)最多的那個成員相等。

56.C解析:C語言中可以使用typedef來重新定義已有的數(shù)據(jù)類型,相當(dāng)于為數(shù)據(jù)類型取個別名。

57.B解析:定義b為整型數(shù),c為字符數(shù)組,所以在輸入語句的地址表列中,要在b前加上取址符“&”,而c就是字符數(shù)組的首地址,所以不用加上取址符&。

58.D解析:將a的值轉(zhuǎn)換為二進制位:00000011,再與0x8的二進制“00001000”位與,得到結(jié)果“00001011”賦值給b,b的值為11,再將b左移一位得到;00010110,賦值給c,c的值為22,所以最后輸出的b,c的值位11,22。所以4個選項中D正確。

59.C解析:本題考查ifelse語句。第一個if語句,先判斷條件,發(fā)現(xiàn)a<b條件成立,執(zhí)行下列的語句;第二個if語句,先判斷條件,發(fā)現(xiàn)b<0條件不成立,則執(zhí)行與其配對的else語句,c+=1,得c=5。

60.A解析:程序設(shè)計的風(fēng)格主要強調(diào)程序的簡單、清晰和可理解性,以便讀者理解。因此選項A是正確答案。程序濫用goto語句將使程序流程無規(guī)律,可讀性差;添加的注解行有利于對程序的理解,不應(yīng)減少或取消;程序的長短要依照實

溫馨提示

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

評論

0/150

提交評論