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

下載本文檔

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

文檔簡介

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

一、單選題(20題)1.有以下程序:#include<stdio.h>main(){charx,a=‘A’,b=‘B’,c=‘C’,d=‘D’;x=(a<b)?a:b;x=(x>c)?c:x;x=(d>x)?x:d;printf(“%c\n”,x);}程序運行后的輸出結(jié)果是()。

A.DB.BC.CD.A

2.設(shè)有定義:inta,*pa=&a;以下scanf語句中能正確為變量a讀入數(shù)據(jù)的是()

A.scanf(“%d”,pa);

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

C.scanf(“%d”,&pa);

D.scanf(“%d”,*pa);

3.作為信息處理熱點技術(shù)之一的“多媒體技術(shù)”中的媒體,強(qiáng)調(diào)的是()。

A.存儲媒體B.表現(xiàn)媒體C.傳輸媒體D.感覺媒體

4.當(dāng)接受用戶輸入的含有空格的字符串時,應(yīng)使用()函數(shù)。

A.gets()B.getchar()C.scanf()D.printf()

5.現(xiàn)在有16枚外形相同的硬幣,其中一枚是假幣,且已知假幣比真幣重量輕。先給定一架沒有砝碼的天平,問至少需要多少次稱量才能找到這枚假幣?

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

6.下述關(guān)于數(shù)據(jù)庫系統(tǒng)的敘述中,正確的是()。

A.數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余

B.數(shù)據(jù)庫系統(tǒng)避免了一切冗余

C.數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的一致性是指數(shù)據(jù)類型一致

D.數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù)

7.在"inta[][3]={{1},{3,2},{4,5,6},{0}};"中,a[2][2]的值是()。

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

8.設(shè)有說明:charw;intx;f1oaty;doublez;則表達(dá)式w*x+z-y值的數(shù)據(jù)類型為()。

A.floatB.charC.intD.double

9.下列關(guān)于C語言數(shù)據(jù)文件的敘述中正確的是A.文件由ASCII碼字符序列組成,C語言只能讀寫文本文件

B.文件由二進(jìn)制數(shù)據(jù)序列組成,C語言只能讀寫二進(jìn)制文件

C.文件由記錄序列組成,可按數(shù)據(jù)的存放形式分為二進(jìn)制文件和文本文件

D.文件由數(shù)據(jù)流形式組成,可按數(shù)據(jù)的存放形式分為二進(jìn)制文件和文本文件

10.若變量已正確定義,在“if(W)Printf(“%d\n”,k);”中,以下不可替代W的是()。

A.a<>b+cB.ch=getchar()C.a==b+cD.a++

11.在深度為5的滿二叉樹葉中,葉子結(jié)點的個數(shù)為()。

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

12.索引屬于()。

A.模式B.內(nèi)模式C.外模式D.概念模式

13.有以下程序:#include<stdio.h>#defineN4voidfun(inta[][N],intb[]){inti;for(i=0;i<N;i++)b[i]=a[i][i]-a[i][N-1-i];}main(){intx[N][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},y[N],i;fun(x,y);for(i=0;i<N;i++)printf(“%d”,y[i]);printf(“\n”);}程序的運行結(jié)果是()。

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

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

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

A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA

15.請讀程序:#include<stdio.h>main(){inta;floatb,c;scanf("%2d%3f%4f",&a,&b,&c);printf("\na=%d,b=%f,c=%f\n",a,b,c);}若運行時從鍵盤上輸入9876543210,則上面程序的輸出結(jié)果是______。

A.a=98,b=765,c=4321

B.a=10,b=432,c=8765

C.a=98,b=765.000000,c=4321.000000

D.a=98,b=765.0,c=4321.0

16.以下有關(guān)宏替換的敘述不正確的是()。

A.雙引號中出現(xiàn)的宏名不替換B.使用宏定義可以嵌套C.宏定義儀儀是符號替換D.宏名必須用大寫字母表示

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

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

18.設(shè)有如下定義structss{charname[10];intage;charsex;}std[3],*p=std;下列各輸入語句中錯誤的是_______。

A.scanf("%d",&(*p).age);

B.scanf("%s",&);

C.scanf("%c",&std[0].sex);

D.scanf("%c",&(p->sex));

19.鏈表不具有的特點是A.A.不必事先估計存儲空間

B.可隨機(jī)訪問任一元素

C.插入和刪除不需要移動元素

D.所需空間與線性表長度成正比

20.結(jié)構(gòu)化分析方法是面向()的自頂向下、逐步求精進(jìn)行需求分析的方法

A.對象B.數(shù)據(jù)結(jié)構(gòu)C.數(shù)據(jù)流D.目標(biāo)

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

22.二叉樹的遍歷可以分為三種:前序遍歷、()遍歷和后序遍歷。

23.若有定義語句chars[100],d[100];intj=0,i=0;且s中已賦字符串,請?zhí)羁找詫崿F(xiàn)拷貝。(注:不使用逗號表達(dá)式)

while(s[i]){d[j]=【】;j++;}

d[j]=0;

24.軟件工程的出現(xiàn)是由于【】。

25.數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括5個部分,即數(shù)據(jù)項、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、______和處理過程。

26.以下程序的運行結(jié)果為【】。

main()

{inti,j,a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12},b[4][3];

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

for(j=0;j<4;j++)

b[j][i]=a[i][j];

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

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

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

printf("\n");

}

}

27.在先左后右的原貝嚇,根據(jù)訪問根結(jié)點的次序,二叉樹的遍歷可以分為三種:前序遍歷、【】遍歷和后序遍歷。

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

29.若有以下程序:

main()

{inta[4][4]={{1,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},{-31,32,-33,0}};

inti,j,s=0;

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

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

{if(a[i][j]<0)

continue;

if(a[i][j]==0)

break;

s+=a[i][j];

}

}

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

}

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

30.數(shù)據(jù)庫系統(tǒng)的主要特點為數(shù)據(jù)集成性、數(shù)據(jù)的高_(dá)_____和低冗余性、數(shù)據(jù)獨立性和數(shù)據(jù)統(tǒng)一管理和控制。

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

main()

{inti=0,j=10,k=2,s=0;

for(;;)

{i+=k;

if(i>j)

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

break;}

s+=i;}}

32.若有如下程序:

main()

{intx=4,y=3,x=2,t;

t=x<y<z;

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

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

33.下列循環(huán)的循環(huán)次數(shù)是______。

intk=2;

while(k=0)

printf["%d",k);

k--;

printf("\n");

34.算法復(fù)雜度主要包括時間復(fù)雜度和【】復(fù)雜度。

35.在程序設(shè)計階段應(yīng)該采取【】和逐步求精的方法,把一個模塊的功能逐步分解,細(xì)化為一系列具體的步驟,進(jìn)而用某種程序設(shè)計語言寫成程序。

36.有以下結(jié)構(gòu)體說明和變量的定義,且指針p指向變量a,指針q指向變量b,則不能把結(jié)點b連接到結(jié)點a之后的語句是【】。

structnode

{chardata;

structnode*next;}a,b

37.下面程序的功能是調(diào)用sub函數(shù)計算數(shù)組a中字符串的長度,請?zhí)羁铡?/p>

sub(chars[])

{intn;

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

return【】;

}

main()

{char*a;intk;

gets(a);

【】

printf("%d",k);

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

#definePOWER(x)((x)*(x))

main()

{inti=1;

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

}

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

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

main()

{inti;

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

{if(i>4)

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

break;}

printf("%d\n",i++);}}

三、1.選擇題(20題)41.以下程序運行后,輸出結(jié)果是

#definePT5.5

#defineS(x)PT*x*x

#include<stdio.h>

main()

{inta=1,b=2;

printf("%4.1f\n",S(a+b));}

A.49.5B.9.5C.22D.45

42.下面程序運行的結(jié)果是______。main(){intx,y,z;x=0;y=z=-1;x+=-z---y;printf("x=%d\n",x);}

A.x=4B.x=0C.x=2D.x=3

43.以下能正確定義數(shù)組并正確賦初值的語句是

A.intN=5,b[N][N];

B.inta[1][2]={{1},{3}};

C.intc[2][1]={{1,2},3,4}};

D.intd[3][2]={{1,2},{34}};

44.有以下程序:main(){intx=0,y=5,z=3;while(z-->0&&++x<5)y=y-1;printf("%d,%d,%d\n",x,y,z);}程序執(zhí)行后的輸出結(jié)果是()。

A.3,2,0B.3,2,-1C.4,3,-1D.5,-2,-5

45.以下敘述中不正確的是

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

B.函數(shù)中的形式參數(shù)是局部變量

C.在一個函數(shù)內(nèi)定義的變量只在本函數(shù)范圍內(nèi)有效

D.在一個函數(shù)內(nèi)的復(fù)合語句中定義的變量在本函數(shù)范圍內(nèi)有效

46.定義下列結(jié)構(gòu)體(聯(lián)合)數(shù)組:structst{charname[15];intage;}a[10]={"ZHAO",14,"WANG",15,"LIU",16,"ZHANG",17};執(zhí)行語句printf["%d,%c",a[2].age,*(a[3].name+2))的輸出結(jié)果為()。

A.15,AB.16,HC.16,AD.17,H

47.若有定義:floatx=1.5;inta=1,b=3,c=2;則正確的switch語句是()。

A.switch(x){case1.0:printf("*\n");case2.0:printf("**\n");

B.switch((iht)x);{case1:printf("*\n");case2:printf("**\n");}

C.switch(a+b){case1:printf("*\n");case2+1:printf("**\n");}

D.switch(a+b){case1:pfintf("*\n");casec:pfintf("**\n");}

48.以下敘述中錯誤的是______。A.C語言中對二進(jìn)制文件的訪問速度比文本文件快

B.C語言中,隨機(jī)文件以二進(jìn)制代碼形式存儲數(shù)據(jù)

C.語句FILEfp:定義了一個名為fp的文件指針

D.C語言中的文本文件以ASCII碼形式存儲數(shù)據(jù)

49.設(shè)有下列二叉樹:[*]對此二叉樹前序遍歷的結(jié)果為A.ZBTYCPXAB.ATBZXCYPC.ZBTACYXPD.ATBZXCPY

50.下列選項中,不能用作標(biāo)識符的是A._1234_B._1_2C.int_2_D.2_int_

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

52.有以下程序main(){intm=12,n=34;printf("%d%d",m++,++n);printf("%d%d\n",n++,++m);)程序運行后的輸出結(jié)果是

A.12353514B.12353513C.12343514D.12343513

53.下列哪個是面向?qū)ο蟪绦蛟O(shè)計不同于其他語言的主要特點?

A.繼承性B.消息傳遞C.多態(tài)性D.靜態(tài)聯(lián)編

54.有三個關(guān)系R、s和T如下:

由關(guān)系R和s通過運算得到關(guān)系T,則所使用的運算為()。

A.并B.自然連接C.笛卡爾積D.交

55.設(shè)下面程序的可執(zhí)行文件名為“prg.exe”,在該程序所在子目錄下輸入以下命令行:prghellogood<回車>則程序的輸出結(jié)果是______。main()(intargc,char*argv[]){inti;if(argc<=0)return;for(i=1;i<argc;i++)printf("%c",*argv[i]);}

A.hellogoodB.hgC.helD.hellogood

56.以下選項中可作為C語言合法常量的是

A.-80B.-080C.-8e1.0D.-80.0e

57.有以下程序main(){inta=7,b=8,*p,*q,*r;p-&a;q=&b;r=p;p=q;q=r;printf("%d,%d,%d,%d\n",*p,*q,a,b);程序運行后的輸出結(jié)果是

A.8,7,8,7B.7,8,7,8C.8,7,7,8D.7,8,8,7

58.下列關(guān)于單目運算符++、--的敘述中正確的是A.它們的運算對象可以是任何變量和常量

B.它們的運算對象可以是char型變量和int型變量,但不能是float型變量

C.它們的運算對象可以是int型變量,但不能是double型變量和float型變量

D.它們的運算對象可以是char型變量、int型變量和float型變量

59.執(zhí)行下列程序時輸入456<空格>789<空格>123<回車>,輸出結(jié)果是()。#include<stdio.h>main(){charm[80];intc,i;scanf("%c",&C);scanf("%d",&i);scanf("%s",&m);printf("%c,%d,%s\n",c,i,m);}

A.4.56789e+008B.4.78912e+006C.4,56,789,123D.4,56.789

60.下列程序的輸出結(jié)果是()。#include<stdio.h>main(){inta[2][3]={{1,2,3},{4,5,6}},(*p)[3],i;p=a;for(i=0;i<3;i++){if(i<2)p[1][i]=p[1][i]-1;elsep[1][i]=1;}printf("%d\n",a[0][1]+a[1][1]+a[1][2]);}

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

四、選擇題(20題)61.

有以下結(jié)構(gòu)說明和變量定義,指針p、q、r分別指向鏈表中的3個連續(xù)結(jié)點。

structnode

{intdata;structnode*next;)*p,*q,*r;

現(xiàn)要將q所指結(jié)點從鏈表中刪除,同時要保持鏈表的連續(xù),以下不能按要求完成操作的語句是()。

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

B.P-next=P->next->next;

C.p->next=r;

D.p=q->next;

62.

63.有以下程序:

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

A.9,18B.8,11C.7,11D.10,14

64.

有以下程序:

fun(intx)

{intP;

if(x==0||x==l)return(3);

p=x-fun(x-2);

returnp;

}

main

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

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

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

65.下面描述中錯誤的是()。

A.系統(tǒng)總體結(jié)構(gòu)圖支持軟件系統(tǒng)的詳細(xì)設(shè)計

B.軟件設(shè)計是將軟件需求轉(zhuǎn)換為軟件表示的過程

C.數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)庫設(shè)計是軟件設(shè)計的任務(wù)之一

D.PAD圖是軟件詳細(xì)設(shè)計的表示工具

66.以下程序的輸出結(jié)果是()。unionmyun{struct{intx,y,z;)u;intk:}a;main{a.u.x=4;a.u.y=5;a.u.z=6;k=0;printf(%d\n",a.u.x);}A.4B.5C.6D.0

67.

68.

69.

70.在結(jié)構(gòu)化方法中,軟件功能分解屬于下列軟件開發(fā)中的階段是______。

A.詳細(xì)設(shè)計B.需求分析C.總體設(shè)計D.編程調(diào)試

71.下列選項中屬于結(jié)構(gòu)化程序設(shè)計原則的是()。

A.可封裝

B.多態(tài)性

C.自下而上

D.逐步求精

72.

73.若k是int類型變量,且有以下for語句:

for(k=-1;k<O;k++)printf("****\n");

下面關(guān)于語句執(zhí)行情況的敘述中正確的是()。、

A.循環(huán)體執(zhí)行一次

B.循環(huán)體執(zhí)行兩次

C.循環(huán)體一次也不執(zhí)行

D.構(gòu)成無限循環(huán)‘

74.

75.若a為int類型,且其值為3,則執(zhí)行完表達(dá)式a+=a-=a*a后,a的值是()。A.A.-3B.9C.-12D.6

76.以下所列的C語言常量中,錯誤的是()。

A.0xFFB.1.2e0.5C.2LD.‘72’

77.下面的程序段運行后,輸出結(jié)果是()。

A.9B.0C.不確定值D.18

78.

79.C語言中,合法的字符串常量是()。

A."M"B.\tC.100D.MUST

80.有以下程序

#include"stdio.h"

main()

{structdate

{intnumber;

floatfenzhi;

charname;

}stu;

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

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

A.3B.5

C.7D.8

五、程序改錯題(1題)81.下列給定程序中函數(shù)fun的功能是:將tt所指字符串中的小寫字母全部改為對應(yīng)的大寫字母,其他字符不變。

例如,若輸入“Ab,cD”,則輸出“AB,CD”。

請改正程序中的錯誤,使它能得出正確的結(jié)果。

注意:部分源程序在文件MODIl.C中,不得增行或刪行,也不得更改程序的結(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.D題干中,字符變量a、b、c、d都是大寫字母字符。C語言中,大寫字母的ASCII值是按照字母順序連續(xù)遞增的,所以a小于b,b小于c,c小于d。則表達(dá)式“x=(a<b)?a:b”等價于“x=a”;“x=(x>c)?c:x”等價于“x=(a>c)?c:a”,等價于“x=a”;“x=(d>x)?x:d”等價于“x=(d>a)?a:d”,等價于“x=a”;所以程序輸出x的值為A。故本題答案為D選項。

2.A

3.D媒體分為感覺媒體、表示媒體、存儲媒體、傳輸媒體和表現(xiàn)媒體五種,“多媒體技術(shù)”中的媒體強(qiáng)調(diào)的是感覺媒體。

4.A

5.A

6.A解析:數(shù)據(jù)庫是一個通用化的、綜合性的數(shù)據(jù)集合,它可以為各種用戶所共享,具有最小的冗余度和較高的數(shù)據(jù)與程序的獨立性,而且能并發(fā)地為多個應(yīng)用服務(wù),同時具有安全性和完整性。即數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余,但不能避免一切冗余。所以選項A正確,選項B錯誤。在數(shù)據(jù)庫管理階段中,數(shù)據(jù)是結(jié)構(gòu)化的,面向系統(tǒng),數(shù)據(jù)冗余度小,從而節(jié)省了數(shù)據(jù)的存儲空間,也減少了對數(shù)據(jù)的存取時間,提高了訪問效率,避免了數(shù)據(jù)的不一致性。數(shù)據(jù)的不一致性,是指對數(shù)據(jù)的存取方式,選項C錯誤。數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù),并非是數(shù)據(jù)庫系統(tǒng)的特點,選項D錯誤。本題正確答案是A。

7.C

8.D

9.D解析:C語言把文件看成是一個字符(字節(jié))的序列,即由一個一個字符(字節(jié))的數(shù)據(jù)順序組成。根據(jù)數(shù)據(jù)的組織形式,可分為ASCII文件和二進(jìn)制文件。ASCII文件又稱文本文件,它的每一個字節(jié)放一個ASCII代碼,代表一個字符。二進(jìn)制文件是把內(nèi)存中的數(shù)據(jù)按其在內(nèi)存中的存儲形式原樣輸出到磁盤上存放。

10.A選項A是非法的表達(dá)式,C語言中沒有“<>”運算符。故本題答案為A選項。

11.C根據(jù)二叉樹的性質(zhì)及定義,一棵深度為k且有2k-1個結(jié)點的二叉樹為滿二叉樹。滿二叉樹的葉子結(jié)點為最后一層的結(jié)點數(shù),又根據(jù)滿二叉樹的性質(zhì),在滿二叉樹的第i層上至多有2i-1個結(jié)點。因此深度為5的滿二叉樹的葉子結(jié)點數(shù)為25-1=16個。

12.B解析:內(nèi)模式(InternalSchemA)又稱物理模式(PhysicalSchemA),它給出了數(shù)據(jù)庫物理存儲結(jié)構(gòu)與物理存取方法,如數(shù)據(jù)存儲的文件結(jié)構(gòu)、索引、集簇及hash等存取方式與存取路徑。數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)具有高共享性和低冗余性,但不能完全避免數(shù)據(jù)冗余;數(shù)據(jù)的一致性是指在系統(tǒng)中同一數(shù)據(jù)的不同出現(xiàn)應(yīng)保持相同的值。

13.A本題由fun函數(shù)可知,執(zhí)行for循環(huán),當(dāng)i=0時,b[0]=a[0][0]-a[0][3]=1-4=-3;當(dāng)i=1時,b[1]=a[1][1]-a[1][2]=6-7=-1;當(dāng)i=2時,b[2]=a[2][2]-a[2][1]=11-10=1;當(dāng)i=3時,b[3]=a[3][3]-a[3][0]=16-13=3。主函數(shù)中輸出y數(shù)組元素的值為:-3,-1,1,3。故本題答案為A選項。

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

15.C解析:scanf()把用戶從鍵盤錄入的數(shù)字的第1、2位存入整型變量a;把第3、4、5位存入單精度實型變量b,把第6、7、8、9位存入單精度實型變量c,用戶錄入的第10位被scanf()遺棄。這時變量a、b、c的值分別為:98、765.000000、4321.000000。

16.D解析:本題考查宏替換的規(guī)則。宏替換分為簡單的字符替換和帶參數(shù)的宏替換兩類。使用宏時應(yīng)注意以下幾點:①定義僅僅是符號替換,不是賦值語句,因此不做語法檢查;②為了區(qū)別程序中其他的標(biāo)識符,宏名的定義通常用大寫字母,但不是必須用大寫;③雙引號中出現(xiàn)的宏名不替換;④使用宏定義可以嵌套,即后定義的宏中可以使用先定義的宏。

17.D

18.B解析:在C語言中,結(jié)構(gòu)體變量的引用有三種等價方式:

1、結(jié)構(gòu)體變量成員名;2、(*p).成員名;3、p->成員名。

因為std.name是字符數(shù)組名,本身代表地址,其前面不應(yīng)該使用“&”符號,所以選項B錯誤。

19.B鏈表是一種特殊的線性表,鏈表的存儲結(jié)構(gòu)與順序存儲結(jié)構(gòu)不同,它的存儲區(qū)域可以是任意的存儲單元,對存儲系統(tǒng)中零碎的存儲部分具有更好的應(yīng)用,在給其分配存儲單元時,不必事先估計整個存儲單元的空間大??;由于鏈表的元素是通過指針域的指針相連的,用鏈表存儲數(shù)據(jù)時,對其進(jìn)行插入和刪除操作時,不需要移動其他元素,只需改變其直接前驅(qū)指針域,使其指向該結(jié)點,并將該結(jié)點的指針域修改為指向其直接后繼結(jié)點即可。當(dāng)然,不管是鏈表還是順序存儲,所需空間與線性表長度都成正比。在鏈?zhǔn)酱鎯Φ逆湵斫Y(jié)構(gòu)中,由于后一結(jié)點數(shù)據(jù)被存儲在哪里,只有通過前一結(jié)點的指針域才知道,因此,訪問時只能是逐個訪問,而不能實現(xiàn)隨機(jī)訪問。

20.CC?!窘馕觥拷Y(jié)構(gòu)化分析方法是面向數(shù)據(jù)流進(jìn)行需求分析的方法,采用自頂向下、逐層分解,建立系統(tǒng)的處理流程,以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏輯模型。

21.D

22.中序中序解析:二叉樹的遍歷可以分為三種:前序遍歷、中序遍歷和后序遍歷。前序遍歷是指在訪問根結(jié)點、遍歷左子樹與遍歷右子樹這三者中,首先訪問根結(jié)點,然后遍歷左子樹,最后遍歷右子樹;并且遍歷左、右子樹時,仍然先訪問根結(jié)點,然后遍歷左子樹,最后遍歷右子樹。中序遍歷指在訪問根結(jié)點、遍歷左子樹與遍歷右子樹這三者中,首先遍歷左子樹,然后訪問根結(jié)點,最后遍歷右子樹;并且遍歷左、右子樹時,仍然先遍歷左子樹,然后訪問根結(jié)點,最后遍歷右子樹。后序遍歷指在訪問根結(jié)點、遍歷左子樹與遍歷右子樹這三者中,首先遍歷右子樹,然后訪問根

23.s[i++]s[i++]解析:本題中為了能實現(xiàn)字符串的拷貝,需要使字符數(shù)組s從頭到尾依次遍歷其所有元素。本題應(yīng)使用i的自增后置來實現(xiàn)。

24.軟件危機(jī)的出現(xiàn)軟件危機(jī)的出現(xiàn)

25.數(shù)據(jù)存儲數(shù)據(jù)存儲

26.159261037114812159\r\n2610\r\n3711\r\n4812解析:程序的功能是將一個二維數(shù)組的行和列元素互換,存到另一個二維數(shù)組中。

27.中序中序解析:在先左后右的原則下,根據(jù)訪問根結(jié)點的次序,二叉樹的遍歷可以分為三種:前序遍歷、中序遍歷和后序遍歷。前療遍歷是指在訪問根結(jié)點、遍歷左子樹與遍歷右子樹這三者中,首先訪問根結(jié)點,然后遍歷左子樹,最后遍歷右子樹;并且遍歷左、右子樹時,仍然先訪問根結(jié)點,然后遍歷左子樹,最后遍歷右子樹。中序遍歷指在訪問根結(jié)點、遍歷左子樹與遍歷右子樹這三者中,首先遍歷左子樹,然后訪問根結(jié)點,最后遍歷右子樹;并且遍歷左、右子樹時,仍然先遍歷左子樹,然后訪問根結(jié)點,最后遍歷右子樹。后序遍歷指在訪問根結(jié)點、遍歷左子樹與遍歷右子樹這三者中,首先遍歷右子樹,然后訪問根結(jié)點,最后遍歷左子樹;并且遍歷左、右子樹時,仍然先遍歷右子樹,然后訪問根結(jié)點,最后遍歷左子樹。

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

29.5858解析:for循環(huán)語句中continue語句的作用是當(dāng)數(shù)組元素值小于0時,結(jié)束本次j循環(huán),break語句的作用是當(dāng)數(shù)組元素值等于0時,結(jié)束j循環(huán),所以for循環(huán)語句的功能是計算數(shù)組元素a[0][0]、a[0][1]、a[2][1]和a[3][1]之和,即s=1+2+23+32=58。

30.共享性共享性解析:數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)能被不同的應(yīng)用程序使用,實現(xiàn)了數(shù)據(jù)的高度共享,從而降低了數(shù)據(jù)的冗余,這也是數(shù)據(jù)庫的主要目的。

31.3030解析:考查for循環(huán)的使用。題目中for(;;)表示:for循環(huán)的初始化表達(dá)式,條件表達(dá)式和修正表達(dá)式都省略了,表示進(jìn)行for循環(huán)和for循環(huán)的終止都沒有限制。

32.1

33.00解析:解答本題需要注意表達(dá)式“k=0”,它是賦值表達(dá)式而不是關(guān)系表達(dá)式,不論k為何值,表達(dá)式k=0總會使k為0,所以不能進(jìn)入循環(huán)。

34.空間空間解析:程序在計算機(jī)上運行時所耗費的時間由程序運行時所需輸入的數(shù)據(jù)總量、對源程序進(jìn)行編譯所需時間、計算機(jī)執(zhí)行每條指令所需時間、程序中的指令重復(fù)執(zhí)行的次數(shù)等決定。習(xí)慣上常常把語句重復(fù)執(zhí)行的次數(shù)作為算法運行時間的相對量度,稱作算法的時間復(fù)雜度。算法在運行過程中需輔助存儲空間的大小稱為算法的空間復(fù)雜度。

35.自頂而下自頂而下

36.a.next=aba.next=ab解析:選項A)中,指針變量q保存的就是變量b的地址,選項B)中的p是指針變量,應(yīng)該是p->next=&b;在選項D)中,用*運算符取出結(jié)構(gòu)體變量,并且保存的就是b的地址。

37.s[n]!='\0';或s[n];nk=sub(a);s[n]!='\\0';或s[n];\r\nn\r\nk=sub(a);解析:函數(shù)sub()通過for循環(huán)計算字符串的長度,當(dāng)字符串沒有結(jié)束時循環(huán),因此判斷循環(huán)與否的條件是看字符串是否結(jié)束。故第1空應(yīng)該填寫s[n];或其他等價表達(dá)式。循環(huán)結(jié)束返回字符串長度值,循環(huán)變量n中累計了循環(huán)的次數(shù)即字符串的長度,故第2空應(yīng)該填n。主函數(shù)中的空白處應(yīng)該是一條調(diào)用函數(shù)sub()的語句,將字符串的首地址作為實參傳遞給形參,并將返回值賦值給變量k。故第3空應(yīng)該填k=sub(a);。

38.111,1解析:POWER(i++)中先引用i的值1,再將i的值加1,POWER(i++)=1*1=1。

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

40.1351\r\n3\r\n5解析:本題考查了for循環(huán)語句的使用,break語句用在本題中是結(jié)束for循環(huán)直接跳出循環(huán)體外。當(dāng)i=1時,因為if語句條件不滿足,所以直接執(zhí)行printf('%d\\n',i++);輸出1,同時i自加1;執(zhí)行第二次for循環(huán)時,i=3;同樣的if語句條件不滿足,所以直接執(zhí)行printf('%d\\n',i++);輸出3,同時i自加1;執(zhí)行第三次for循環(huán)時,i=5,if語句條件滿足,所以執(zhí)行printf('%d\\n',i),輸出5,然后break語句跳出了for循環(huán)。

41.A解析:考查宏替換的使用。宏替換用'#define宏名宏體'的形式來定義。在進(jìn)行編譯預(yù)處理時,將把程序中宏定義之后的所有宏名用宏體替換。宏雖然可以帶參數(shù),但宏替換過程中不像函數(shù)那樣要進(jìn)行參數(shù)值的計算、傳遞及結(jié)果返回等操作;宏替換只是簡單的字符替換,不進(jìn)行計算,因而本題中的S(a+b)進(jìn)行宏替換后為PT*1+2*1+2=5.5*1+2*1+2=9.5。

42.C解析:表達(dá)式“x+=-z---y”等價于“x=x+(-z-(-(-y)))=0+(1-(-1))=2”。

43.D解析:選項A中,數(shù)組的長度使用了變量N,而在C中是不能用變量來定義數(shù)組的的長度的。在C語言中,給二維數(shù)組賦初值時,行數(shù)不能超過定義的行數(shù),每行的初值個數(shù)不能超過定義時的列數(shù)。選項C數(shù)組的第二維下標(biāo)缺省,而在C語言中,數(shù)組的第二維下標(biāo)不能缺省。

44.B解析:本題中首先定義了3個整型變量x、y和z,并分別賦值為0、5和3,while循環(huán)的判定條件為z-->0&&++x<5,由于z的初值為3,所以當(dāng)z--執(zhí)行3次后,z-->O將不再成立,又由于x的初值為0,所以++x執(zhí)行5次,++x<5將不再成立,而它們兩個表達(dá)式的值為邏輯與的關(guān)系,故當(dāng)z-->O不成立時整個表達(dá)式的值為假,因此該循環(huán)共執(zhí)行了3次,即語句y=y-1:共執(zhí)行了三次,但while循環(huán)的判定表達(dá)式卻執(zhí)行了四次,故最后輸出的x、y、z的值分別為3,2,-1,所以,4個選項中選項B符合題意。

45.D解析:C語言在函數(shù)中說明的變量為局部變量,只在函數(shù)內(nèi)起作用但不會影響到其他函數(shù)。所以在不同的函數(shù)中使用相同的函數(shù)名不代表是同一函數(shù),A)項正確。在函數(shù)定義時聲明的參數(shù)只在函數(shù)內(nèi)部起作用,是函數(shù)的局部變量,B)正確。在一個函數(shù)中定義的變量是這個函數(shù)的局部變量,所以只在這個函數(shù)內(nèi)起作用,C)正確。復(fù)合語句中定義的變量其作用域是這個復(fù)合語句,不會擴(kuò)大到整個函數(shù),所以D)項錯誤。注意:函數(shù)的書寫風(fēng)格。

46.C解析:本題主要考查結(jié)構(gòu)體數(shù)組。a[2].age為結(jié)構(gòu)體a[2]的age成員,即16。a[3].name為指向結(jié)構(gòu)體a[3]的name成員的第一個元素的指針,即指向“Z”,(a[3].name+2)將指針后移兩位指向第三個元素“A”,*(a[3].name+2))是取指針?biāo)赶虻刂返膬?nèi)容。

47.C解析:選項A)中case后面的表達(dá)式為浮點型,選項D)中case后面的表達(dá)式存在字符變量c,故選項A)、D)錯誤;在選項B)中,switch后面的表達(dá)式加了分號顯然有錯。

48.C解析:FILE是由系統(tǒng)定義的一個結(jié)構(gòu)體類型,并用該類型來定義若干個FILE類型的變量,以便存放若干個文件。所以用FILE定義的變量必須是數(shù)組或指針,所以選項C中的“FILE\u3000\u3000fp;”改為“FILE*fp;”就對了。

49.B解析:所謂二叉樹的前序遍歷(DLR)是指在訪問根結(jié)點、遍歷左子樹與遍歷右子樹這3者中,首先訪問根結(jié)點,然后遍歷左子樹,最后遍歷右子樹,并且,在遍歷左右子樹時,上述規(guī)則同樣適用,即“根-左-右”。故該二叉樹的前序遍歷結(jié)果為“ATBZXCYP”。注意:對于本題,若使用后序遍歷和中序遍歷的結(jié)果分別為"ZBTYCPXA"和"TZBACYXP"。

50.D解析:本題考核的知識點是用戶的標(biāo)識符。在C語言中,合法的標(biāo)識符由字母、數(shù)字和下劃線組成,并且第一個字符必須為字母或者下劃線,如:acd,d_ad、_adf124,_124等都是合法的標(biāo)識符號.而2asdf、_sd/=都不是合法的標(biāo)識符.在C語言中大寫字母和小寫字母被認(rèn)為是兩個不同的字符,如:ACD和acd是兩個不同的標(biāo)識符號。選項D中用下劃線作為第一個字符,這是不合法的,故選項D不正確,所以,4個選項中選項D符合題意。

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

52.A解析:本題考查的是自加運算符的運用。自加運算符有前綴和后綴兩種不同的形式,對于變量本身來說,無論是前綴還是后綴其作用的效果都是相同的,使變量值增1。但作為表達(dá)式來說卻有著不同的值,前綴時自增表達(dá)式的值是變量增1,后的值,而后綴時自增表達(dá)式的值是變量增1前的值。本題程序開始定義了兩個整型變量m和n,并分別初始化為12和34.第一條輸出語句是按整型格式輸出表達(dá)式m++和++n的值,根據(jù)前面所述,表達(dá)式m++的值為12,++n的值為35,所以第一次輸出的字符串是'1235',執(zhí)行完后m和n的值都自增1,分別是13和35.接下來第二條輸出語句也是按整型格式輸出表達(dá)式n++和++m的值,分別是35和14,故最終的輸出應(yīng)該為“12353514”,所以,4個選項中選項A符合題意。

53.A解析:繼承是一個子類直接使用父類的所有屬性和方法。它可以減少相似的類的重復(fù)說明,從而體現(xiàn)出一般性與特殊性的原則,這使得面向?qū)ο蟪绦蛟O(shè)計語言有了良好的重用性,也是其不同于其他語言的主要特點。故答案為A。

54.D關(guān)系R與s經(jīng)交運算后所得到的關(guān)系是由那些既在R內(nèi)又在S內(nèi)的共有元組組成的,記為RnS。

55.B

56.A解析:C語言的常量分為整型常量、實型常量和字符型常量。本題中包含整型常量和實型常量。選項B)以0打頭,應(yīng)該屬于八進(jìn)制整數(shù),而八進(jìn)制整數(shù)只能用數(shù)字0~7表示,所以選項B)不合法;選項C)和D)從形式上看屬于實型常量,但對于指數(shù)形式的實型常量,e(或E)之前必須有數(shù)字,且e后面的指數(shù)必須為整數(shù),所以選項C)和D)都不合法;選項A)屬于實型常量中正確的十進(jìn)制小數(shù)形式。

57.C解析:本題考核的知識點是指針變量的基本應(yīng)用。程序中定義了兩個變量a和b,并分別賦初值為7和8,定義了三個指針變量p、q、r,并讓指針p指向變量a,讓Q指向變量b,然后通過一個中間指針變量r,使指針變量p和q互換,互換后p指向q所指的內(nèi)容即b,Q指向開始p所指向的內(nèi)容即a,因此最后輸出的*p,*q的值為8,7,a,b的值沒有改變?nèi)詾?,8,所以,4個選項中選項C符合題意。

58.D本題主要考查自加與自減運算符。在C語言中,自加與自減運算符具有以下性質(zhì):

(1)自加運算符“++”和自減運算符“--”的運算本身是一種賦值運算,其結(jié)果是使運算對象的值增1或減1。

(2)++、--運算符是單目運算符,運算對象可以是整型變量或字符型變量,也可以是實型變量,但不能是常量和表達(dá)式。

(3)自加、自減運算符無論是作為前綴還是后綴運算符,對于變量而言,其效果相同,但作為表達(dá)式來說,其值不同。

(4)++和--運算符的結(jié)合方向是“自右向左”。

(5)不要在一個表達(dá)式中對同一個變量進(jìn)行多次自增或自減運算??梢灾辣绢}正確的答案是D。

59.D

60.B解析:第1次執(zhí)行for循環(huán),p[1][0]=p[1][0]-1=3:第2次執(zhí)行for循環(huán),p[1][1]=p[1][1]-1=4:第3次執(zhí)行for循環(huán),p[1][2]=1,最后輸出的是a[0][1]+a[1][1]+a[1][2]=2+4+1=7。

61.D

\n本題考查鏈表結(jié)點的刪除,q一>next中存放的是r所指結(jié)點的首地址,將r所指結(jié)點的首地址存于p--next中,則實現(xiàn)刪除q所指點的功能,并保持鏈表連續(xù),P所指點與r所指結(jié)點相連。

\n

6

溫馨提示

  • 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

提交評論