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

下載本文檔

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

文檔簡介

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

一、單選題(20題)1.有以下程序:

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

A.4321098765B.5678901234C.0987654321D.0987651234

2.

3.健壯的算法不會因非法的輸入數(shù)據(jù)而出現(xiàn)莫名其妙的狀態(tài)()

A.對B.錯

4.下列程序段中完全正確的是()。A.int*p;scanf(“%d”,&p);

B.int*p;scanf(“%d”,p);

C.intk,*p=&k;scanf(“%d”,p);

D.intk,*p;*p=&k;scanf(“%d”,p);

5.假定已建立以下鏈表結(jié)構(gòu),且指針p和q已指向如圖所示的結(jié)點:

則以下選項中司將q所指結(jié)點從鏈表中刪除并釋放該結(jié)點的語句組是______。A.(*p).next=(*q).next;free(p);

B.p=q->next;free(q);

C.p=q;free(q);

D.p->next=q->next;free(q);

6.深度為5的二叉樹至多有_____個結(jié)點。

A.16B.32C.31D.10

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

A.在一個函數(shù)中,可以有多條return語句

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

C.函數(shù)必須有返回值

D.不同的函數(shù)中可以使用相同名字的變量

8.

9.對表進(jìn)行水平方向和垂直方向的分割,分別對應(yīng)的關(guān)系運算是()

A.選擇和投影B.投影和選擇C.選擇和聯(lián)接D.投影和聯(lián)接

10.在一個單鏈表HL中,若要在指針q所指結(jié)點的后面插入一個由指針p所指向的結(jié)點,則執(zhí)行____。

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

B.q一>next=p一>next;p一>next=q;

C.p一>next=q一>next;q=p;

D.p一>next=q一>next;q一>next=p;

11.在C語言中,函數(shù)返回值的類型最終取決于()。

A.函數(shù)定義時在函數(shù)首部所說明的函數(shù)類型

B.return語句中表達(dá)式值的類型

C.調(diào)用函數(shù)時主調(diào)函數(shù)所傳遞的實參類型

D.函數(shù)定義時形參的類型

12.順序結(jié)構(gòu)的本質(zhì)特點是()。

A.數(shù)據(jù)元素存儲在地址連續(xù)的內(nèi)存空間

B.數(shù)據(jù)元素緊鄰

C.數(shù)據(jù)元素在內(nèi)存中的相對位置表示數(shù)據(jù)之間的邏輯關(guān)系

D.不使用指針

13.順序查找法適合于存儲結(jié)構(gòu)為()的線性表。

A.散列存儲B.順序存儲或鏈?zhǔn)酱鎯.壓縮存儲D.索引存儲

14.

15.數(shù)據(jù)結(jié)構(gòu)通常是研究數(shù)據(jù)的及它們之間的聯(lián)系______。A.存儲和邏輯結(jié)構(gòu)B.存儲和抽象C.理想和抽象D.理想與邏輯

16.設(shè)有二元關(guān)系R和三元關(guān)系s,下列運算合法的是()。

A.R∩SB.R∪SC.R-SD.R×S

17.數(shù)據(jù)在計算機(jī)存儲器內(nèi)表示時,如果元素在存儲器中的相對位置能反映數(shù)據(jù)元素之間的邏輯關(guān)系,則稱這種存儲結(jié)構(gòu)為()。

A.存儲結(jié)構(gòu)B.邏輯結(jié)構(gòu)C.順序存儲結(jié)構(gòu)D.鏈?zhǔn)酱鎯Y(jié)構(gòu)

18.

19.閱讀以下程序及對程序功能的描述,其中正確的是#include<stdio.h>main(){FILE*in,*out;charch,infile[10],outfile[10];printf(“Entertheinfilename:\n”);scanf(“%s”,infile);printf(“Entertheoutfilename:\n”);scanf(“%s”,outfile);if((in=foen(infile,“r”))==NULL)printf(“cannotopeninfile\n”);exit(0);if((out=fopen(outfile,“w”))==NULL)printf(“cannotopenoutfile\n”);exit(0);while(!feof(in))fputc(fgetc(in),out);fclose(in);fclose(out);A.程序完成將磁盤文件的信息在屏幕上顯示的功能

B.程序完成將兩個磁盤文件合二為一的功能

C.程序完成將一個磁盤文件復(fù)制到另一個磁盤文件中

D.程序完成將兩個磁盤文件合并并在屏幕上輸出

20.若有定義:“inta,b,c,*p=&c;”,接著執(zhí)行以下選項中的語句,則能正確執(zhí)行的語句是()。

A.scanf(“%d”,a,b,c);

B.scanf(“%d%d%d”,a,b,c);

C.scanf(“%d”,p);

D.scanf(“%d”,&p);

二、2.填空題(20題)21.在樹形結(jié)構(gòu)中,樹根結(jié)點沒有______。

22.函數(shù)sstrcmp的功能是對兩個字符串進(jìn)行比較。當(dāng)s所指字符串和t所指字符串相等時,返回值為0;當(dāng)s所指字符串大于t所指字符串時,返回值大于0;當(dāng)s所指字符串小于t所指字符串時,返回值小于0(功能等同于庫函數(shù)strcmp)。請?zhí)羁铡?/p>

#include<stdio.h>

intsstrcmp(char*s,char*t)

{while(*s&&*t&&*s==【】)

{s++;t++;}

return【】;

}

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

24.下列軟件系統(tǒng)結(jié)構(gòu)圖的寬度為[]。

25."print("%d\n",strlen("\t\"\023\xABC\n"));”語句的輸出結(jié)果是______。

26.設(shè)Y是int型變量,請寫出判斷Y為奇數(shù)的關(guān)系表達(dá)式【】。

27.語句:x++;、++x;、x=x+1;、x=1+x;,執(zhí)行后都使變量x中的值增1,請寫出一條同一功能的賦值語句(不得與列舉的相同)【】。

28.x、y、x均為int型變量,描述“x、y和z中至少有兩個為正數(shù)”的表達(dá)式是______。

29.若a=1,b=2,則表達(dá)式!(x=A)‖(y=B)&&0的值是______。

30.以下程序的功能是建立—個帶有頭結(jié)點的單向鏈表,鏈表結(jié)點中的數(shù)據(jù)通過鍵盤輸入,當(dāng)輸入數(shù)據(jù)為-1時,表示輸入結(jié)束(鏈表頭結(jié)點的data域不放數(shù)據(jù),表空的條件是ph->next==NULL),請?zhí)羁铡?/p>

#include<stdio.h>

structlist{intdata;structlist*next;};

structlist*creatlist()

{structlist*p,*q,*ph;inta;ph=(structlist*)malloc(sizeof(struct

31.軟件危機(jī)出現(xiàn)于20時紀(jì)60年代末,為了解決軟件危機(jī),人們提出了()的原理來設(shè)計軟件,這就是軟件工程誕生的基礎(chǔ)。

32.以下程序的功能是:求出數(shù)組x中各相鄰兩個元素的和依次存放到a數(shù)組中,然后輸出。請?zhí)羁铡?/p>

main()

{intx[10],a[9],i;

for(i=0;i<10;i++)scanf("%d",&x[i]);

for([11];i<10;i++)

a[i-1]=x[i]+[12];

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

printf("");

}

33.下列程序利用指針將2個數(shù)按從大到小的順序輸出。

main()

{inta,b,【】;

printf("inputa,b:");

scanf("%d%d",&a,&b);

【】;

p2=&b;

if(a<b)

{p=p1;

p1=p2;

p2=p;

}

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

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

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

#include<stdio.h>

main()

{inti;

for(i='a';i<'f';i++,i++)printf("%c",i-'a'+'A');

printf("\n");

}

35.對下列二叉樹進(jìn)行中序遍歷的結(jié)果為【】。

36.樹中度為零的結(jié)點稱為______。

37.設(shè)有以下程序,為使之正確運行,請在橫線中填入應(yīng)包含的命令行。(注:try_me()函數(shù)在a:\myfile.txt中有定義。)

______

main()

{printf("\n");

try_me();

printf("\n");}

38.【】是從二維表列的方向進(jìn)行的運算。

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

main()

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

d=(a>b>c);

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

}

40.下面程序的功能是將一個字符串str的內(nèi)容顛倒過來,請?zhí)羁铡?/p>

#include<string.h>

main()

{inti,j,【】;charstr[]={"1234567"};

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

{k=str[i];str[i]=str[j];str[j]=k;}

printf("%s\n",str);}

三、1.選擇題(20題)41.當(dāng)變量c的值不為2、4、6時,值也為"真"的表達(dá)式是

A.(c==2)||(c==4)||(c==6)

B.(c>=2&&c<=6)||(c!=3)||(c!=5)

C.(c>=2&&c<=6)&&!(c%2)

D.(c>=2&&c<=6)&&(c%2!=1)

42.結(jié)構(gòu)化程序設(shè)計所規(guī)定的三種基本控制結(jié)構(gòu)是()

A.輸入、處理、輸出B.樹形、網(wǎng)形、環(huán)形C.順序、選擇、循環(huán)D.主程序、子程序、函數(shù)

43.已有定義:intx=3,y=4,z=5,則表達(dá)式!(x+y)+z-1&&y+x/2的值是

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

44.算法的空間復(fù)雜度是指()。

A.算法程序的長度B.算法程序中的指令條數(shù)C.算法程序所占的存儲空間D.算法執(zhí)行過程中所需要的存儲空間

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

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

46.以下程序的輸出結(jié)果是()main(){inta=5,b=4,c=6,d;printf(”%d\n",d=a>b?(a>c?a:c):(b));}

A.5B.4C.6D.不確定

47.下面的程序執(zhí)行后,文件test.t中內(nèi)容是______。#include<stdio.h>voidfun(char*fname,char*st){FILE*myf;inti;myf=fopen(fname,"W");for(i=0;i<strlen(st);i++)foutc(st[i]myf;fclose(myf);}main(){fun("test.t","newworld");fun("test.t","hello,");}

A.hello,B.newworldhelloC.newworldD.hello,rid

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

#include<stdio.h>

intfun(intx)

{intp;

if(x==0‖x=1)

return3;

else

p=x-fun(x-2);

returnp;

}

voidmain()

{printf("\n%d",fun(5));

}

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

49.以下程序輸出的結(jié)果是_______。main(){inta=65535;printf("%d%u",a,A);}

A.-1-1B.6553565535C.-165535D.65535-1

50.若已定義: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]

51.以下對C語言函數(shù)的有關(guān)描述中,正確的是

A.在C語言中調(diào)用函數(shù)時,只能把實參的值傳給形參,形參的值不能傳送給實參

B.C函數(shù)既可以嵌套定義又可以遞歸調(diào)用

C.函數(shù)必須有返回值,否則不能使用函數(shù)

D.函數(shù)必須有返回值,返回值類型不定

52.下列對于軟件測試的描述中正確的是()。

A.軟件測試的目的是證明程序是否正確

B.軟件測試的目的是使程序運行結(jié)果正確

C.軟件測試的目的是盡可能多地發(fā)現(xiàn)程序中的錯誤

D.軟件測試的目的是使程序符合結(jié)構(gòu)化原則

53.以下正確的說法是

A.用戶若需調(diào)用標(biāo)準(zhǔn)庫函數(shù),調(diào)用前必須重新定義

B.用戶可以重新定義標(biāo)準(zhǔn)庫函數(shù),若如此,該函數(shù)將失去原有含義

C.系統(tǒng)根本不允許用戶重新定義標(biāo)準(zhǔn)庫函數(shù)

D.用戶若需調(diào)用標(biāo)準(zhǔn)庫函數(shù),調(diào)用前不必使用預(yù)編譯命令將該函數(shù)所在文件包括到用戶源文件中,系統(tǒng)自動調(diào)用

54.以下不正確的定義語句是

A.doublex[5]={2.0,4.0,6.0,8.0,10.0};

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

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

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

55.下面程序的輸出是______。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

56.以下不正確的轉(zhuǎn)義字符是()。

A.'\\'B.'\d'C.'\s'D.'088'

57.線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)是一種

A.隨機(jī)結(jié)構(gòu)B.順序結(jié)構(gòu)C.索引結(jié)構(gòu)D.散列結(jié)構(gòu)

58.數(shù)據(jù)的存儲結(jié)構(gòu)是指()。

A.存儲在外存中的數(shù)據(jù)B.數(shù)據(jù)所占的存儲空間量C.數(shù)據(jù)在計算機(jī)中的順序存儲方式D.數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機(jī)中的表示

59.有以下程序main(){char*s[]={"one","two","three"},*P;p=s[1];printf("%c,%s\n",*(p+1),s[0]);}執(zhí)行后輸出結(jié)果是

A.n,twoB.t,oneC.w,oneD.o,two

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

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

四、選擇題(20題)61.

62.有以下程序:

#include<stdio.h>

#defineN3

voidfun(inta[][N],intb[])

{inti,j;

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

{b[i]=a[i][0];

for(j=i;j<N;j++)

if(b[i]<a[i][j])b[i]=a[i][j];

}

}

main()

{intx[N][N]={1,2,3,4,5,6,7,8,9},y[N],i;

fun(x,y);

for(i=0;i<N;i++)printf("%d,",y[i]);

printf("\n");

}

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

A.2,4,8,

B.3,6,9,

C.3,5,7,

D.1,3,5,

63.

64.

65.有如下程序:

則b的值是()。

A.15B.16C.18D.19

66.有以下程序段:

當(dāng)執(zhí)行上述程序段,從鍵盤上輸入555667777abc后,y的值為()。

A.566.0B.55566.0C.7777.0D.566777.0

67.軟件設(shè)計中模塊劃分應(yīng)遵循的準(zhǔn)則是()。A.低內(nèi)聚低耦合

B.高內(nèi)聚低耦合

C.低內(nèi)聚高耦合

D.高內(nèi)聚高耦合

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

A.可行性研究

B.需求分析

C.詳細(xì)設(shè)計

D.軟件維護(hù)

69.對于一個正常運行的C程序,以下敘述中正確的是()。

A.程序的執(zhí)行總是從main函數(shù)開始,在程序的最后一個函數(shù)中結(jié)束

B.程序的執(zhí)行總是從程序的第一個函數(shù)開始,在main函數(shù)結(jié)束.

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

D.程序的執(zhí)行總是從程序的第一個函數(shù)開始,在程序的最后一個函數(shù)中結(jié)束

70.有下列程序:

main

{inty=10;

do{y--;}while(--y);

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

)

當(dāng)執(zhí)行程序時,輸出的結(jié)果是()。

A.-1B.1C.4D.0

71.

72.

現(xiàn)有以下結(jié)構(gòu)體說明和變量定義,如圖所示,指針p、q、r分別指定一個鏈表中連續(xù)的3個結(jié)點。

structnode

{bardata;

structnode*next;}*p,*q,*r;

現(xiàn)要將q和r所指結(jié)點交換前后位置,同時要保持鏈表的結(jié)構(gòu),下列不能完成此操作的語句是()。

A.q->next=r->next;P>next=r;r->next=q;

B.q->next=r;q->next=r->next;r->next=q;

C.q->next=r->next;r->next=q;P->next=r:

D.q->next=q;P->next=r;q->next=r->next;

73.軟件生命周期是指()。A.軟件產(chǎn)品從提出、實現(xiàn)、使用維護(hù)到停止使用退役的過程

B.軟件從需求分析、設(shè)計、實現(xiàn)到測試完成的過程

C.軟件的開發(fā)過程

D.軟件的運行維護(hù)過程

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

A.s=67B.s=61C.S=63D.S=56

75.若a是數(shù)值類型,則邏輯表達(dá)式(a==1)II(a!=1)的值是()。

A.1B.0C.2D.不知道a的值,不能確定

76.

77.有以下程序:

voidf(int*x,int*y)

{int*t;

t=x;x=y;y=t;*x=*y;

}

main()

{inta[8]={1,2,3,4,5,6,7,8},i,*p,*q;

p=a;q=&a[7];

while(p>q)

{f(p,q);p++;q--}

for(i=0;i<8;i++)printf("d,",a[i]);

}

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

A.8,2,3,4,5,6,7,1,

B.5,6,7,8,1,2,3,4,

C.1,2,3,4,5,6,7,8,

D.8,7,6,5,4,3,2,1,

78.

79.

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

A.zB.0C.元素Ch[5]地址D.字符y的地址

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:通過某種方式實現(xiàn)兩個變量值的交換,規(guī)定不允許增加語句和表達(dá)式。例如變量num1中的值原為2,num2中的值原為1,程序運行后,num1中的值為l,num2中的值為2。請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計題(1題)82.規(guī)定輸入的字符串中只包含字母和奉號。編寫函數(shù)fun,其功能是:刪除字符串中所有的。號。編寫函數(shù)時,不得使用c語言提供的字符串函數(shù)。例如,字符串中的內(nèi)容為,刪除后,字符串中的內(nèi)容應(yīng)當(dāng)是“ABCDEFG”。注意:部分源程序給出如下。請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)缸的花括號中填入你編寫的若干語句。試題程序:

參考答案

1.B該程序首先給一維數(shù)組賦值,然后三次調(diào)用fun函數(shù),其中fun(a,0,3);功能是將一維數(shù)組中第1個元素和第4個元素互換,第2個元素和第3個元素互換;其中fun(a,4,9);功能是將一維數(shù)組中第5個元素和第10個元素互換,第6個和第9個元素互換,第7個元素和第8個元素互換;其中fun(a.O,9);功能是將將一維數(shù)組中第l個元素和第10個元素互換,第2個元素和第9個元素互換……依此類推。因此B選項正確。

2.A

3.A

4.CA選項中,沒有對指針進(jìn)行初始化,屬于無效指針,并且在“scanf(“%d”,&p);”中無須再進(jìn)行取地址操作;B選項中,沒有對指針進(jìn)行初始化,屬于無效指針;D選項中,語句“*p=&k;”書寫錯誤,應(yīng)為“P=&k;”。故本題答案為C選項。

5.D解析:本題題面要求刪除q所指結(jié)點并釋放該結(jié)點,而選項A中雖然是刪除了q所指鮚點,但并未釋放q這個結(jié)點,而釋放的是p結(jié)點,所以選項A錯誤;選項B是將q的下一結(jié)點的地址賦值給指針變量p,這意味著p原來的成員變量內(nèi)容被q的下一結(jié)點的成員變量內(nèi)容所代替,即原p結(jié)點也被刪除了,所以選項B錯誤;選項C相當(dāng)于將q的所有成員變量內(nèi)容代替了p的所有成員變量內(nèi)容,即p結(jié)點被刪除,所以錯誤;選項D是將q的下—結(jié)點的地址賦值給p的成員next\u3000(成員next用于存放一結(jié)點的地址),使得p的next成員不再指向q,而是指向q的下一結(jié)點,相當(dāng)于刪除了q這個結(jié)點,同叫用free函數(shù)正確釋放了q這一結(jié)點,所以選項D正確。

6.C

7.C

8.B

9.A解析:從關(guān)系中找出滿足給定條件的那些元組稱為選擇,是從行的角度進(jìn)行的運算,即水平方向抽取元組。從關(guān)系模式中挑選若干屬性組成新的關(guān)系稱為投影,是從列的角度進(jìn)行的運算,相當(dāng)于對關(guān)系進(jìn)行垂直分解。所以,本題選擇A。

10.D

11.A解析:在C語言中,應(yīng)當(dāng)在定義函數(shù)時指定函數(shù)值的類型。凡不加類型說明的函數(shù),默認(rèn)按整型處理。在定義函數(shù)時對函數(shù)值說明的類型一般應(yīng)該和return語句中的表達(dá)式類型一致。如果函數(shù)值的類型和return語句中的表達(dá)式類型不一致,則以函數(shù)值的類型為準(zhǔn),由系統(tǒng)自動進(jìn)行轉(zhuǎn)換,即函數(shù)類型決定返回值的類型。

12.C

13.B

14.D

15.A

16.D本題給出的兩個關(guān)系R與S的表結(jié)構(gòu)是不同的(R是二元關(guān)系,S是三元關(guān)系),它們不能進(jìn)行∩、∪、一運算。而兩個不同結(jié)構(gòu)的關(guān)系是可以進(jìn)行笛卡兒積(×)運算的。

17.C

18.B

19.C

20.Cscanf函數(shù)要求為:輸入的變量為地址形式。4個選項中,C選項符合要求。故本題答案為C選項。

21.前件前件

22.*t或t[0]*s-*t或*s-t[0]或s[0]-*t或s[0]-t[0]*t或t[0]\r\n*s-*t或*s-t[0]或s[0]-*t或s[0]-t[0]解析:函數(shù)sstrcmp()有兩個字符型指針變量,用來指向兩個字符串。比較兩個字符串的大小方法是:從第一個字符開始依次向后比較,若對應(yīng)的字符相等則接著比較下一個字符,一直到兩個字符串中對應(yīng)字符不等,或者有一個為\\0,此時字符的ASCII碼大的字符串就大。故循環(huán)條件是*s和*t不為\\0,且*s和*t相同,第一處應(yīng)填“*t”或其他等價形式。根據(jù)題意可知第二處應(yīng)填*s-*t或其等價形式。

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

24.33解析:軟件系統(tǒng)結(jié)構(gòu)圖的寬度:整體控制跨度(最大模塊數(shù)的層)的表示。

25.66解析:strlen()函數(shù)的作用是計算字符串的長度并作為函數(shù)的返回值,這里的長度不包括串尾的結(jié)束標(biāo)志,\'\\0\'。

\'\\t\',是轉(zhuǎn)義字符,代表橫向跳若干格;\'\\\''是轉(zhuǎn)義字符,代表雙引號;\'\\023\'只代表一個字符,而不管轉(zhuǎn)義字符后面有幾個字符:\'\\xAB\'是以兩位十六進(jìn)制數(shù)AB表示的ASCII碼字符,只代表一個字符:\'\\n\'是轉(zhuǎn)義字符,代表回車換行?!?/p>

5個子符常量各代表一個字符,再加上字母C,所以返回的長度是6。

26.Y%2=1或Y%2!=0Y%2=1或Y%2!=0解析:判斷變量是否為奇數(shù)可以用變量與2取模,判斷結(jié)果是為1或下為0。本題具體做法如下:Y%2=1或Y%2!=0。

27.x+=1;

28.((x>0)&&<y>0))‖(x>0)&&(z>0)‖y>0)&&(z>0))((x>0)&&<y>0))‖(x>0)&&(z>0)‖y>0)&&(z>0))解析:題目要求“x、y和z中至少有兩個為正數(shù)”,即x、y和x這3個數(shù)中必須有兩個是正數(shù),且這3個數(shù)中的哪兩個數(shù)都有可能是正數(shù),所以它們之間是或的關(guān)系。

29.00解析:根據(jù)運算符的運算順序可知,該表達(dá)式最后運算的是與(&&)運算,而任何表達(dá)式與“0”進(jìn)行“與”運算,結(jié)果都為0。

30.解析:本題考查的是鏈表這一數(shù)據(jù)結(jié)構(gòu)對結(jié)構(gòu)體變量中數(shù)據(jù)的引用。鏈表的特點是結(jié)構(gòu)體變量中有兩個域,一個是數(shù)據(jù),另一個是指向該結(jié)構(gòu)體變量類型的指針,用以指明鏈表的下一個結(jié)點。

31.軟件工程學(xué)軟件工程學(xué)解析:為了消除軟件危機(jī),通過認(rèn)真研究解決軟件危機(jī)的方法,認(rèn)識到軟件工程是使計算機(jī)軟件走向工程科學(xué)的途徑。逐步形成了軟件工程的概念,開辟了工程學(xué)的新興領(lǐng)域——軟件工程學(xué)。

32.i=1x[i-1]i=1\r\nx[i-1]解析:對于10個數(shù),相鄰的兩個數(shù)相加取和,總共要進(jìn)行9次加法運算,所以空11處應(yīng)填入i=1。相鄰的兩個數(shù)相加取和,放在數(shù)組a中,x[0]與x[1]的和存放在a[0]中,所以空12處應(yīng)填入x[i-1]。

33.*p*p1*p2p1:&a*p1*p2

34.ACEACE解析:在本題中,for循環(huán)體每執(zhí)行完一次,變量i的值自加兩次。i的初值為“a”,執(zhí)行一次循環(huán)后變?yōu)椤癱”,之后再變成“e”,當(dāng)其變?yōu)椤癵”時,循環(huán)條件若不滿足,循環(huán)終止,故本題共輸出3個字符。表達(dá)式“i-'a'+'A'”即表示輸出i對應(yīng)的大寫字母,結(jié)果為ACE。

35.ACBDFEHGPACBDFEHGP解析:中序遍歷方法的遞歸定義;當(dāng)二叉樹的根不為空時,依次執(zhí)行如下3個操作:①按中序遍歷左子樹。②訪問根結(jié)點。③技中序遍歷右子樹。根據(jù)遍歷規(guī)則來遍歷本題中的二叉樹。首先遍歷F的左子樹,同樣按中序遍歷。先遍歷C的左子樹,即結(jié)點A,然后訪問C,接著訪問C的右子樹,同樣按中序遍歷C的右子樹,先訪問結(jié)點B,然后訪問結(jié)點D,因為結(jié)點D沒有右子樹,因此遍歷完C的右子樹,以上就遍歷完根結(jié)點F的左子樹。然后訪問根結(jié)點F,接下來遍歷F的右子樹,同樣按中序遍歷。首先訪問E的左子樹,E的左子樹為空,則訪問結(jié)點E,然后訪問結(jié)點E的右子樹,同樣按中序遍歷。首先訪問G的左子樹,即H,然后訪問結(jié)點G,最后訪問G的右子樹P。以上就把整個二叉樹遍歷一遍,中序遍歷的結(jié)果為ACBDFEHGP。因此,劃線處應(yīng)填入“ACBDFEHGP”。

36.葉子結(jié)點葉子結(jié)點解析:樹中度為零的結(jié)點,也就是沒有后件的結(jié)點,稱為葉子結(jié)點。

37.#include<a:\myfile.txt>#include<a:\\myfile.txt>解析:本題考查了函數(shù)的存儲分類的概念。如果沒有特別說明,函數(shù)的存儲范圍是從定義函數(shù)的位置到文件的結(jié)尾,如果其他文件想使用這個函數(shù),需要用ginclude文件包含命令將定義函數(shù)的文件包含進(jìn)來。

38.投影投影解析:在關(guān)系模型的數(shù)據(jù)語言中,一般除了運用常規(guī)的集合運算,(并、交,差、笛卡爾積等)外,還定義了一些專門的關(guān)系運算,如投影、選擇、連接等。投影是從二維表的列方向上進(jìn)行的運算。

39.00解析:本題的關(guān)鍵在于對變量c的賦值運算:

d=(a>b>c)

d=(5>4>3)

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

40.k-1k,-1解析:顛倒一個字符串中的字符,就是首尾對應(yīng)的元素兩兩交換。簡單地可用兩個游標(biāo)變量i和j,i是前端元素的下標(biāo),j是后端元素的下標(biāo),交換以這兩個變量值為下標(biāo)的元素str[i]和str[j]。開始時,i的值為0,j的值為字符串末元素的下標(biāo)(字符串長度減1)。每次交換后,i增1,j減1。繼續(xù)交換的條件是str[i]位于str[j]的前面,即i<j。字符串末元素的下標(biāo)是它的長度減1,所以在第二個空框處應(yīng)填入-1。程序為了交換str[i]和str[j],使用了變量k,該變量應(yīng)在程序的變量定義部分中一起定義,所以在第一個空框處應(yīng)填入k。

41.B解析:滿足表達(dá)式(c>=2&&c<=6)的整型變量c的值是2,3,4,5,6。當(dāng)變量c的值不為2,4,6時,其值只能為3或5,所以表達(dá)式c!=3和c!=5中至少有一個為真,即不論c為何值,選項B中的表達(dá)式都為'真'。

42.C

43.D解析:本題中,&&左邊的表達(dá)式!(x+y)為!(3+7),結(jié)果為假,即為0。再加上z,然后減1,相當(dāng)于0+5-1。左邊等于4,&&右邊的表達(dá)式y(tǒng)+z/2相當(dāng)于4+5/2為6,所以整個表達(dá)式相當(dāng)于4&&6為真,即為1。

44.D【解析】算法的空間復(fù)雜度是指執(zhí)行這個算法所需要的內(nèi)存空間。一個算法所占用的存儲空間包括算法程序所占的空間、輸入的初始數(shù)據(jù)所占的存儲空間以及算法執(zhí)行中所需要的額外空間。其中額外空間包括算法程序執(zhí)行過程中的工作單元以及某種數(shù)據(jù)結(jié)構(gòu)所需要的附加存儲空間。如果額外空間量相對于問題規(guī)模來說是常數(shù),則稱該算法是原地工作的。在許多實際問題中,為了減少算法所占的存儲空間,通常采用壓縮存儲技術(shù),以便盡量減少不必要的額外空間。

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

46.C

47.A解析:C語言中文件有文本文件與二進(jìn)制文件,對文件的使用前必須先打開,打開方式有只讀、寫入、讀寫等方式。

48.A解析:本題考查函數(shù)的遞歸調(diào)用。在函數(shù)遞歸調(diào)用時,fun(5):a=5-fun(3)->fun3:a=3-fun(1)->fun(1):a=3,反推回去fun(3):a=3-3=O->fun(5):a=5-0=5,最后的計算結(jié)果為5。

49.C解析:printf函數(shù)中不同類型的數(shù)據(jù)用不同的格式字符,其中%d是按整型數(shù)據(jù)的實際長度輸出十進(jìn)制整數(shù)。變量a=65535以%d格式輸出時溢出輸出值為該數(shù)的補碼值,即-1:%u用來輸出unsigned型數(shù)據(jù),無符號整型變量的數(shù)值范圍為0~65535,所以變量a=65535以%u格式輸出的值為65535。

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

51.A解析:C語言中的函數(shù)可以進(jìn)行遞歸調(diào)用,但不能在函數(shù)中定義函數(shù),即函數(shù)不能嵌套定義。函數(shù)可以沒有返回值,若有返回值,則返回值類型必須確定。

52.C解析:關(guān)于軟件測試的目的,GrenfordJ.Myers在《TheArtofSoftwareTesting》一書中給出了深刻的闡述:軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程;一個好的測試用例是指很可能找到迄今為止尚未發(fā)現(xiàn)的錯誤的用例;一個成功的測試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯誤的測試。整體來說,軟件測試的目的就是盡可能多地發(fā)現(xiàn)程序中的錯誤。本題答案為C。

53.B解析:用戶調(diào)用標(biāo)準(zhǔn)庫函數(shù)前不必重新定義,而只需使用預(yù)編譯命令將該函數(shù)所在文件包括到用戶源文件中即可。而且,系統(tǒng)允許用戶重新定義標(biāo)準(zhǔn)庫函數(shù),但此時該函數(shù)將失去原有含義。因此,正確答案為選項B)。調(diào)用函數(shù)時,必須要注意以下語法:

①函數(shù)名必須與所調(diào)用的函數(shù)名字完全一致;

②實參的個數(shù)與形參的個數(shù)一致;

③函數(shù)必須先定義,后調(diào)用。如果被調(diào)用的函數(shù)的返回值為int型或char型,則被調(diào)用函數(shù)的定義也可以放在調(diào)用的位置之后。

如果在函數(shù)調(diào)用之前沒有對函數(shù)作聲明,則編譯系統(tǒng)會把第一次遇到的該函數(shù)形式作為函數(shù)的聲明,并將函數(shù)類型默認(rèn)為int型。

54.B解析:在一維數(shù)組中要注意的是作為下標(biāo)表達(dá)式的常量表達(dá)式的值必須是大于等于0,選項B)中定義有5個元素,但賦值時有6個元素,所以是錯誤的。

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

56.D解析:'\\\\'是反斜線符,'\\d'是整型變量轉(zhuǎn)義字符,'\\s'是字符串型轉(zhuǎn)義字符,C語言中沒有規(guī)定'088'為轉(zhuǎn)義字符。

57.B解析:線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)中的每一個存儲結(jié)點不僅含有一個數(shù)據(jù)元素,還包括指針,每一個指針指向一個與本結(jié)點有邏輯關(guān)系的結(jié)點。此類存儲方式屬于順序存儲。

58.D數(shù)據(jù)的邏輯結(jié)構(gòu)是指數(shù)據(jù)元素之間的邏輯關(guān)系的數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)的存儲結(jié)構(gòu)則是數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機(jī)中的物理實現(xiàn),有時也稱作數(shù)據(jù)的物理結(jié)構(gòu)。兩者的區(qū)別是數(shù)據(jù)的邏輯結(jié)構(gòu)只涉及到數(shù)據(jù)之間抽象的數(shù)學(xué)關(guān)系。存儲結(jié)構(gòu)則涉及到如何在計算機(jī)中通過對數(shù)據(jù)的物理存儲進(jìn)行組織來表達(dá)數(shù)據(jù)元素之間的邏輯關(guān)系。比如在線性表的順序存儲中是利用物理存儲空間上的連續(xù)性來表達(dá)線性表中數(shù)據(jù)的前后件關(guān)系;在線性表的鏈?zhǔn)酱鎯χ惺峭ㄟ^指針域構(gòu)成的邏輯鏈條來表達(dá)數(shù)據(jù)的前后件關(guān)系。一般的,一種數(shù)據(jù)的邏輯結(jié)構(gòu)對應(yīng)的物理實現(xiàn),即數(shù)據(jù)的存儲結(jié)構(gòu)不止一種。因此選項D正確。

59.C解

溫馨提示

  • 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

提交評論