2022-2023年陜西省漢中市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)重點(diǎn)匯總測試卷(含答案)_第1頁
2022-2023年陜西省漢中市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)重點(diǎn)匯總測試卷(含答案)_第2頁
2022-2023年陜西省漢中市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)重點(diǎn)匯總測試卷(含答案)_第3頁
2022-2023年陜西省漢中市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)重點(diǎn)匯總測試卷(含答案)_第4頁
2022-2023年陜西省漢中市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)重點(diǎn)匯總測試卷(含答案)_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2022-2023年陜西省漢中市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)重點(diǎn)匯總測試卷(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.單鏈表中,增加一個(gè)頭結(jié)點(diǎn)的目的是為了()。

A.使單鏈表至少有一個(gè)結(jié)點(diǎn)B.標(biāo)識表結(jié)點(diǎn)中首結(jié)點(diǎn)的位置C.方面運(yùn)算的實(shí)現(xiàn)D.說明單鏈表是線性表的鏈?zhǔn)酱鎯?/p>

2.

3.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。A.abcdefghijklmnopq

B.afgebcdhnopqmijklhnopqmijkl

C.efgabcdmnopqhijkl

D.mijklhnopqebcdafg

4.

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

A.棧是一種先進(jìn)先出的線性表B.隊(duì)列是一種后進(jìn)先出的線性表C.棧與隊(duì)列都是非線性結(jié)構(gòu)D.以上三種說法都不對

6.若變量c為char類型,能正確判斷出c為小寫字母的表達(dá)式是A.A.′a′<=c<=′z′c="">=′a′)||(c<=′z′)

B.(′a′>=c)and(′z′>=c)

C.(′a′<=c)and(′z′>=c)

D.(c>=′a′)&&(c<=′z′)

7.軟件設(shè)計(jì)包括軟件的結(jié)構(gòu)、數(shù)據(jù)接口和過程設(shè)計(jì),其中軟件的過程設(shè)計(jì)是指()

A.模塊間的關(guān)系B.系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換成軟件的過程描述C.軟件層次結(jié)構(gòu)D.軟件開發(fā)過程

8.設(shè)a、b和c都是int型變量,且a=3、b=4、c=5,則下面的表達(dá)式中,值為0的表達(dá)式是______。

A.'a'&&'b'

B.a<=b

C.a||+c&&b-c

D.!((a<b)&&!c||1)

9.有以下程序

#include<stdio.h>

main()

{intx=1,y=2,z=3;

if(x>y)

if(y<z)printf("%d",++z);

elseprintf("%d",++y);

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

}

程序的運(yùn)行結(jié)果是

A.A.331

B.41

C.2

D.1

10.對一個(gè)滿二叉樹,m個(gè)葉子,n個(gè)結(jié)點(diǎn),深度為h,則()。

A.n=h+mB.h+m=2nC.m=h-1D.n=2h-1

11.以下函數(shù)findmax擬實(shí)現(xiàn)在數(shù)組中查找最大值并作為函數(shù)值返回,但程序中有錯(cuò)導(dǎo)致不能實(shí)現(xiàn)預(yù)定功能。#defineMIN-2147483647intfindmax(intx[],intn){inti,max;for(i=0;i<n;i++){max=MIN;if(max<x[i])max=x[i];)returnmax;}造成錯(cuò)誤的原因是()。A.定義語句“inti,max;”中max未賦初值

B.賦值語句“max=MIN;”中,不應(yīng)給max賦MIN值

C.語句“if(max<x[i])max=x[i];”中判斷條件設(shè)置錯(cuò)誤

D.賦值語句“max-MIN;”放錯(cuò)了位置

12.右兩個(gè)關(guān)系R和S如下:

則由關(guān)系R得到關(guān)系S的操作是()。A.自然連接B.并C.選擇D.投影

13.若有定義語句:intX=10;,則表達(dá)式x-=x+X的值為A.-20B.-10C.0D.10

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

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ì)頭指針

15.下面程序的運(yùn)行結(jié)果是()。#include<stdio.h>main(){inty=10;do{y--;}while(--y);printf("%d\n",y--);}

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

16.棧和隊(duì)列的共同點(diǎn)是()。

A.都是先進(jìn)先出B.都是先進(jìn)后出C.只允許在端點(diǎn)處插入和刪除元素D.沒有共同點(diǎn)

17.

18.已知10個(gè)元素(54,28,16,34,,73,62,95,60,26,43),按照依次插入的方法生成一棵二叉排序樹,查找值為62的結(jié)點(diǎn)所需比較次數(shù)為()

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

19.若在線性表中采用折半查找法查找元素,該線性表應(yīng)該()A.元素按值有序B.構(gòu)采用順序存儲結(jié)C.元素按值有序且采用順序存儲結(jié)構(gòu)D.元素按值有序且采用鏈?zhǔn)酱鎯Y(jié)構(gòu)

20.算法的時(shí)間復(fù)雜度是指A.算法的執(zhí)行時(shí)間B.算法所處理的數(shù)據(jù)量C.算法程序中的語句或指令條數(shù)D.算法在執(zhí)行過程中所需要的基本運(yùn)算次數(shù)

二、2.填空題(20題)21.若有如下結(jié)構(gòu)體說明:

structSTRU

{inta,b;charc:doubled;

structSTRU*p1,*p2;

};

請?zhí)羁眨酝瓿蓪數(shù)組的定義,t數(shù)組的每個(gè)元素為該結(jié)構(gòu)體類型。

【】t[20]

22.一個(gè)關(guān)系表的行稱為()。

23.閱讀下面語句,則程序的執(zhí)行結(jié)果是【】。

#include"stdio.h"

main()

{inta=-1,b=1,k;

if((++a<0)&&!(b--<=0))

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

elseprintf("%d,%d\n",b,a);}

24.程序的功能是將文件filel.c的內(nèi)容輸出到屏幕上并復(fù)制到文件file2.c中,請?zhí)羁铡?/p>

#include<stdio.h>

main()

{FILE【】;

fp1=fopen("filel.c","r");

fp2=fopen("file2.c","w");

while(!feof(fp1))putchar(getc(fp1));

rewind(fp1);

while(!feof(fp1))putc(【】);

fclose(fp1);

fclose(fp2);

}

25.性結(jié)構(gòu)中,隊(duì)列的操作順序是先進(jìn)先出,而棧的操作順序是______。

26.設(shè)有以下程序,為使之正確運(yùn)行,請?jiān)谙聞澗€中填入應(yīng)包含的命令行。(注:try_me()函數(shù)在a:\myfile.txt中有定義。)

【】

main()

{printf("\n");

try_me();

printf("\n");}

27.下面程序把從終端讀入的文本(用@作為文本結(jié)束標(biāo)志)輸出到一個(gè)名為bi.dat的新文件中,請?zhí)羁铡?/p>

#include"stdio.h"

FILE*fp;

main()

{charch;

if((fp=fopen(【】))==NULL)exit(0);

while((ch=getchar())!='@')fputc(ch,fp);

fclose(fp);

}

28.以下程序運(yùn)行后的輸出結(jié)果是()。#definePower2(x)x*xmain(){inti=6,j=8;printf("%d\n",Power2(i+j));}

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

30.軟件定義時(shí)期主要包括______和需求分析兩個(gè)階段。

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

main()

{inti=10,j=0;

do

{j=j+i;i-;}

while(i>2);

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

}

32.若a=10,b=20,則表達(dá)式!(a<b)的值是【】。

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

main()

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

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

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

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

}

34.以下程序的功能是:利用指針指向三個(gè)整型變量,并通過指針運(yùn)算找出三個(gè)數(shù)中的最大值,輸出到屏幕上。請?zhí)羁铡?/p>

main()

{intx,y,z,max,*px,*py,*pz,*pmax;

scanf("%d%d%d",&x,&y,&z);

px=&x;py=&y;pz=&z;pmax=&max;

【】;

if(*pmax<*py)*pmax=*py;

if(*pmax<*pz)*pmax=*pz;

printf("max=%d\n",max);}

35.有以下程序:

voidf(inty,int*x)

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

main()

{intx=2,y=4;

f(y,&x);

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

}

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

36.下列程序的運(yùn)行結(jié)果是______。

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

main()

{inti=1;

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

}

37.設(shè)在主函數(shù)中有以下定義和函數(shù)調(diào)用語句,且fun函數(shù)為void類型;請寫出fun函數(shù)的首部【】(要求形參名為b)。main(){doubles[10][22];intn;……fun(s);……}

38.設(shè)一棵二叉樹中有3個(gè)葉子結(jié)點(diǎn),有8個(gè)度為1的結(jié)點(diǎn),則該二叉樹中總的結(jié)點(diǎn)數(shù)為【】。

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

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

d[j]=0;

40.以下sum函數(shù)的功能是計(jì)算下列級數(shù)之和。請給函數(shù)中的各變量正確賦初值。

doublesum(doublex,intn)

{inti;doublea,b,s;

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

{a=a*x;b=b*i;s=s+a/b;}

returns;

}

三、1.選擇題(20題)41.有以下結(jié)構(gòu)體說明和變量定義,如圖所示,指針p、q、r分別指向一個(gè)鏈表中的三個(gè)連續(xù)結(jié)點(diǎn)。structnode{intdata;tractnode*next;}*p,*q,*r;

現(xiàn)要將q和r所指結(jié)點(diǎn)的先后位置交換,同時(shí)要保持鏈表的連續(xù),以下錯(cuò)誤的程序段是

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

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

C.p->next=r;q->next=r->next;r->next=q;

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

42.以下程序的輸出結(jié)果是______。main(){inta[4][4]={{1,3,5},{2,4,6},{3,5,7}};printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1];a[3][0]);}

A.650B.1470C.5430D.輸出值不定

43.有以下程序:main(){unsignedinta;intb=-1;a=b;printf("%u",a);}程序運(yùn)行后的輸出結(jié)果是()。

A.-1B.65535C.32767D.-32768

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

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

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

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

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

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

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

A.ABCDEFB.DABECFC.BDAECFD.DBEFCA

46.以下敘述中錯(cuò)誤的是

A.gets函數(shù)用于從終端讀入字符串

B.getehar函數(shù)用于從磁盤文件讀入字符

C.fputs函數(shù)用于把字符串輸出到文件

D.fwrite函數(shù)用于以二進(jìn)制形式輸出數(shù)據(jù)到文件

47.若變量已正確說明為float型,要通過語句scanf("%f%f%f",&a,&b,&c);給a賦予10,0,b賦予22.0,c賦予33.0,下列不正確的輸入形式是

A.10<回車>22<回車>33<回車>

B.10.0,22.0,33.0<回車>

C.10.0<回車>22.033.0<回車>

D.1022<回車>33<回車>

48.數(shù)據(jù)庫的物理設(shè)計(jì)是為一個(gè)給定的邏輯結(jié)構(gòu)選取一個(gè)適合應(yīng)用環(huán)境的______的過程,包括確定數(shù)據(jù)庫在物理設(shè)備上的存儲結(jié)構(gòu)和存取方法。

A.邏輯結(jié)構(gòu)B.物理結(jié)構(gòu)C.概念結(jié)構(gòu)D.層次結(jié)構(gòu)

49.若有以下說明和語句,請選出哪個(gè)是對c數(shù)組元素的正確引用_______。intc[4][5],(*cp)[5];cp=c;

A.cp+1B.*(cp+3)C.*(cp+1)+3D.*(*cp+2)

50.在C語言中,函數(shù)中變量的隱含存儲類別是______。

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

51.假定w、x、y、m均為血型變量,則執(zhí)行下列的語句后,m的值是()。

w=6,x=4,y=3;

m=(w<x)?w:x;

m=(m<y)?m:y;

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

52.如果需要打開一個(gè)已經(jīng)存在的非空文件“Demo"進(jìn)行修改下面正確的選項(xiàng)是

A.fp=fopen("Demo","r");

B.fp=fopen("Demo","ab+");

C.fp=fopen("Demo","w+");

D.fp=fopen("Demo","r+");

53.數(shù)據(jù)結(jié)構(gòu)作為計(jì)算機(jī)的一門學(xué)科,主要研究數(shù)據(jù)的邏輯結(jié)構(gòu)、對各種數(shù)據(jù)結(jié)構(gòu)進(jìn)行的運(yùn)算,以及()。A.A.數(shù)據(jù)的存儲結(jié)構(gòu)B.計(jì)算方法C.數(shù)據(jù)映象D.邏輯存儲

54.有以下程序:#include<stdio.h>main(){intc;while((c=getchar())!='\n'){switch(c-'3'){case0:case1:putchar(c+4);case2:putchar(c+4);break;case3:putchar(c+3);case4:putchar(c+3);break;}}printf("\n");}從第一列開始輸入數(shù)據(jù)(<CR>代表…個(gè)回車符):3845<CR>,則狴序輸出結(jié)果為()。

A.77889B.77868C.776810D.7.78866e+007

55.在下列給出的表達(dá)式中,與while(E)中的(E)不等價(jià)的表達(dá)式是()。

A.(!E==0)B.(E>0‖E<0)C.(E==0)D.(E!=0)

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

A.在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,各個(gè)對象之間具有密切的聯(lián)系

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

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

D.上述三種說法都不對

57.當(dāng)運(yùn)行以下程序時(shí),從鍵盤輸入AhaMA(空格)Aha<CR>,則下面程序的運(yùn)行結(jié)果是

#include<stdio.h>

main()

{chars[80],c=′a′;

inti=0;

scanf("%s",s);

while(s[i]!=′

{if(s[i]==c)s[i]-32;

elseif(s[i]==c-32)s[i]=s[i]+32;

i++;}

puts(s);}

A.ahaMaB.AbAMaC.AhAMa[空格]ahAD.ahAMa[空格]ahA

58.下列程序是用來判斷數(shù)組中特定元素的位置所在的。#include<conio.h>#include<stdio.h>intfun(int*s,intt,int*k){inti;*k=0;for(i=0;i<t;i++)if(s[*k]<s[i])*k=i;returns[*k];}main(){inta[10]={876,675,896,101,301,401,980,431,451,777},k;fun

A.7,431B.6C.980D.6,980

59.若變量已正確定義,有以下程序段inta=3,b=5,c=7;if(a>b)a=b;c=a;if(c!=a)c=b;printf("%d,%d,%d\n",a,b,c);其輸出結(jié)果是

A.程序段有語法錯(cuò)B.3,5,3C.3,5,5D.3,5,7

60.若變量已正確定義并賦值,以下符合C++語言語法的表達(dá)式是()。

A.a:=b+1B.a=b=c+2C.int18.5%3D.a=a+7=c+b

四、選擇題(20題)61.有如下程序:

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

A.0.000000B.0.250000C.0.500000D.1.000000

62.結(jié)構(gòu)化程序設(shè)計(jì)的三種結(jié)構(gòu)是()。

A.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、轉(zhuǎn)移結(jié)構(gòu)

B.分支結(jié)構(gòu)、等價(jià)結(jié)構(gòu)、循環(huán)結(jié)構(gòu)

C.多分支結(jié)構(gòu)、賦值結(jié)構(gòu)、等價(jià)結(jié)構(gòu)

D.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)

63.高有定義inta;floatb;執(zhí)行scanf("%2d%f",&a,&b);語句時(shí),若從鍵盤輸入876<空格>854.0<回車>,a和b的值分別是()。

A.876和543.000000

B.87和6.000000

C.87和543.000000

D.76和543.000000

64.

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

#include<stdio.h>

main{inta=1,b=2,c=3,x;

x=(a^b)&c;printf("%d\n",x);}

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

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

A.程序執(zhí)行的效率與數(shù)據(jù)的存儲結(jié)構(gòu)密切相關(guān)

B.程序執(zhí)行的效率只取決于程序的控制結(jié)構(gòu)

C.程序執(zhí)行的效率只取決于所處理的數(shù)據(jù)量

D.以上三種說法都不對

67.若有定義語句:“charsE10]="1234567\0\0";”,則strlen(s)的值是()。

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

68.設(shè)有以下說明語句:

則下面敘述中正確的是()。

A.PER是結(jié)構(gòu)體變量名

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

C.typedefstruct是結(jié)構(gòu)體類型

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

69.有以下程序:

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

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

70.以下關(guān)于retllm語句的敘述中正確的是()。

A.一個(gè)自定義函數(shù)中必須有一條return語句

B.一個(gè)自定義函數(shù)中可以根據(jù)不同情況設(shè)置多條retum語句

C.定義成void類型的函數(shù)中可以有帶返回值的return語句

D.沒有return語句的自定義函數(shù)在執(zhí)行結(jié)束時(shí)不能返回到調(diào)用處

71.

72.

程序運(yùn)行后的輸出結(jié)果是()。A.1002,ZhangDa,1202.0

B.1002,ChangRon9。1202.0

C.1001,ChangRon9,1098.0

D.1001,ZhangDa,1098.0

73.結(jié)構(gòu)化程序設(shè)計(jì)的基本原則不包括A.多態(tài)性B.自頂向下C.模塊化D.逐步求精

74.

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

#include<stdio.h>

main

{structst

{inty,x,z;

};

union

{longi;

intj;

chark;

}un;

printf("%d,%d\n",sizeof(structst),sizeof(un))

}

A.6,2B.6,4C.8,4D.8,6

75.一棵二叉樹共有25個(gè)結(jié)點(diǎn),其中5個(gè)是葉子結(jié)點(diǎn),則度為l的結(jié)點(diǎn)數(shù)為()。

A.16B.10C.6D.4

76.

77.

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

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

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

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

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

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

80.

五、程序改錯(cuò)題(1題)81.下列給定程序中,proc()函數(shù)的功能是:根據(jù)形參m,計(jì)算下列公式的值。t=1+1/2+1/3+1/4+…+1/m例如,若輸入10,則應(yīng)輸出2.928968。請修改程序中的錯(cuò)誤,使它能計(jì)算出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計(jì)題(1題)82.請編寫函數(shù)proc,該函數(shù)的功能是:將M行N列的二維數(shù)組中的數(shù)據(jù),按行的順序依次放到一維數(shù)組中,一維數(shù)組中數(shù)據(jù)的個(gè)數(shù)存放在形參n所指的存儲單元中。

例如,若二維數(shù)組中的數(shù)據(jù)為

13233343

14243444

15253545

則一維數(shù)組中的內(nèi)容應(yīng)該是132333431424344415253545。

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

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

試題程序:

#include<stdio.h>

voidproc(int(*s)[103,int*b,int*n,intrain.intnn)

{}

voidmain

{

intarr[10][10]={{33,33,33,33),{44,44,44,44},

{55,55,55,55}),i,j;

inta[l00]={o),n=o;

printf("Thematrix:\n");

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

{

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

printf("%3d",arr[i][j]):

printf("\n");

}

proc(arr,a,&n,3,4):

printf("TheAarray:\n");

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

printf("%3d",a[i]):

printf("\n\n");

}

參考答案

1.C

2.C

3.B程序首先定義二維字符數(shù)組v,使用4個(gè)字符串初始化,另外定義字符指針數(shù)組P。通過第1個(gè)for循環(huán),將v的4個(gè)字符串的首地址賦給p。第2for循環(huán)通過兩層內(nèi)嵌循環(huán)將p中元素指向的字符串首字母進(jìn)行排序交換。規(guī)則是將指向的字符串的首字母字符按照字母表中的順序排序后交換。注意,這里交換的是首字母,而不是整個(gè)字符串,所以程序輸出:afgebcdhnopqmijkl。本題答案為B選項(xiàng)。

4.A

5.D【答案】:D

【知識點(diǎn)】:棧和隊(duì)列

【解析】:棧和隊(duì)列都是線性結(jié)構(gòu),所以選項(xiàng)C錯(cuò)誤;棧是一種先進(jìn)后出的線性表,故選項(xiàng)A錯(cuò)誤;隊(duì)列是一種先進(jìn)先出的線性表,故選項(xiàng)B錯(cuò)誤,所以選D。

6.D

7.B軟件設(shè)計(jì)包括軟件的結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)接口設(shè)計(jì)和過程設(shè)計(jì)。其中軟件結(jié)構(gòu)設(shè)計(jì)主要包括系統(tǒng)由哪些子系統(tǒng)構(gòu)成,以及這些子系統(tǒng)之間的關(guān)系是怎樣的,并將這些內(nèi)容編寫成文檔;數(shù)據(jù)接口設(shè)計(jì)的任務(wù)是為每個(gè)子系統(tǒng)設(shè)計(jì)其與其他子系統(tǒng)間的接口,并編寫成文檔,這個(gè)接口要是一個(gè)無二義的接口,不需要子系統(tǒng)的操作知識就可以使用;過程設(shè)計(jì)是指系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換成軟件的過程描述。

8.D解析:選項(xiàng)A:'a'&&'b'是字符a與b的相與,不為0:選項(xiàng)B:a<=b,由題中變量賦值可知,結(jié)果為1。選項(xiàng)C:a||+c&&b-c,結(jié)果為1;選項(xiàng)D:!((a<B)&&!c||1),運(yùn)算結(jié)果為0。

9.D本題考查if-else語句的使用。if-else語句可以在條件為“真”或?yàn)椤凹佟睍r(shí)執(zhí)行指定的動作,由if引導(dǎo)條件為“真”時(shí)執(zhí)行的操作;由else引導(dǎo)條件為“假”時(shí)執(zhí)行的操作。else語句要與上面最近的if語句進(jìn)行匹配,如果要嵌套調(diào)用if-else語句,需要將嵌套部分用{}括起來,避免程序報(bào)錯(cuò)。題目中給出了一個(gè)if語句和一個(gè)if-else語句,if-else語句為第一個(gè)if語句的子語句。首先執(zhí)行外層if語句,執(zhí)行條件為x>y,由于x=1,y=2,故該條件為假,不執(zhí)行if的子語句,直接執(zhí)行語句printf("%d\\n",x++);,該語句先輸出x的值,然后進(jìn)行x++操作。x的初始值為1,輸出結(jié)果為1。

10.D

11.D“max=MIN;”語句應(yīng)放在for循環(huán)之前,否則每次循環(huán)時(shí)都重新賦值,值沒有變化。

12.C選擇:是在數(shù)據(jù)表中給予一定的條件進(jìn)行篩選數(shù)據(jù)。投影:是把表中的某幾個(gè)屬性的數(shù)據(jù)選擇出來。連接:有自然連接、外連接,內(nèi)連接等,連接主要用于多表之間的數(shù)據(jù)查詢。并:與數(shù)學(xué)中的并是一樣的。兩張表進(jìn)行并操作,要求它們的屬性個(gè)數(shù)相同并且需要相容。

13.B解析:x-=x+x可化為:x=x-(x+x),由于x初始值為10,所以計(jì)算后,x=10-20=-10,因此選B)。

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

15.D解析:本題考查“++”和“--”運(yùn)算符,運(yùn)算符“++”是操作數(shù)加1,而“--”則是操作數(shù)減1。在do-while循環(huán)中,首先執(zhí)行y--,再執(zhí)行--y。當(dāng)y=2時(shí),執(zhí)行y--,y的值變?yōu)?,--y使y值變?yōu)?,循環(huán)結(jié)束。執(zhí)行輸出時(shí),先輸出y的值0,然后執(zhí)行y--,使y的值變?yōu)?1。

16.C解析:棧和隊(duì)列都是一種特殊的操作受限的線性表,只允許在端點(diǎn)處進(jìn)行插入和刪除。二者的區(qū)別是:棧只允許在表的一端進(jìn)行插入或刪除操作,是一種“后進(jìn)先出”(或“先進(jìn)后出”)的線性表;而隊(duì)列只允許在表的一端進(jìn)行插入操作,在另一端:進(jìn)行刪除操作,是一種“先進(jìn)先出”(或“后進(jìn)后出”)的線性表。因此棧和隊(duì)列的共同點(diǎn)是只允許在端點(diǎn)處插入和刪除元素。

17.A

18.B

19.C

20.DD。【解析】算法的時(shí)間復(fù)雜度是指算法需要消耗的時(shí)間資源。一般來說,計(jì)算機(jī)算法是問題規(guī)模。09函數(shù)fin),算法的時(shí)間復(fù)雜度也因此記做T(n)=O(f(n))。因此,問題的規(guī)模n越大,算法執(zhí)行的時(shí)間的增長率與f(n)的增長率正相關(guān),稱作漸進(jìn)時(shí)間復(fù)雜度(AsymptoticTimeComplexity)。簡單來說就是算法在執(zhí)行過程中所需要的基本運(yùn)算次數(shù)。

21.strudctSTRUstrudctSTRU解析:結(jié)構(gòu)件類型是構(gòu)造數(shù)據(jù)類型,是用戶自己定義的一種類型。

結(jié)構(gòu)體類型的定義:

struct結(jié)構(gòu)體類型名

{

成員項(xiàng)表;

};

定義結(jié)構(gòu)體變量的的形式為:

struct結(jié)構(gòu)體類型名變量1,變量2,...?

其中變量包括;一般變量、指針變量、數(shù)組變量等。

22.元組元組解析:一個(gè)關(guān)系表中的行稱為元組,列稱為屬性。

23.101,0解析:與運(yùn)算兩邊的語句必須同時(shí)為真時(shí),結(jié)果才為真。當(dāng)執(zhí)行完if((++a<0)&&!(b--<=0))時(shí),a,b的值已經(jīng)發(fā)生了變化。

24.*fp1*fp2getc(fp1)fp2*fp1,*fp2\r\ngetc(fp1),fp2解析:本題主要考查函數(shù)intputc(intch,FILE*fp)的功能,把ch中的字符輸出到fp所指文件,以及intgetc(FILE*fp),從fp所指文件中讀取一個(gè)字符。

25.先進(jìn)后出先進(jìn)后出解析:隊(duì)列和棧都是線性結(jié)構(gòu),但是不同之處在于隊(duì)列的操作順序是先進(jìn)先出,而棧的操作順序是先進(jìn)后出。

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

27.dat""w"或"bi.dat""w+"或"bi.dat""r+"dat','w'或'bi.dat','w+'或'bi.dat','r+'解析:本題的考點(diǎn)是fopen()函數(shù),此函數(shù)的格式是fopen(文件名,使用文件方式),題目的要求是將從鍵盤讀入的文本寫到文件中,因此選擇的打開方式應(yīng)該是'w'(只寫)?;蛘呤亲x寫“r+”或“w+”。

28.6262解析:本題考查的是宏定義。帶參數(shù)的宏定義是按#indefine命令行中指定的字符串從左到右進(jìn)行轉(zhuǎn)換。本題中替換的式子為:6+8*6+8,代入i,j的值得到62。

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

30.可行性研究可行性研究解析:軟件生命周期一般包括可行性研究與需求分析、設(shè)計(jì)、實(shí)現(xiàn)、測試、交付使用及維護(hù)等,還可以將軟件生命周期分為三個(gè)階段:①軟件定義階段:可行性研究和需求分析;②軟件開發(fā)階段:設(shè)計(jì)、實(shí)現(xiàn)和測試;③軟件運(yùn)行維護(hù)階段:交付使用和維護(hù)。

31.5252解析:do...while語句的形式為:

do

{

語句;

}while(條件表達(dá)式)

當(dāng)條件表達(dá)式為非零時(shí),繼續(xù)執(zhí)行循環(huán)體,直到條件表達(dá)式為零時(shí)退出循環(huán)。

32.00解析:已知a=10,b=20,所以邏輯表達(dá)式a<b的值為true,即為1,在這個(gè)表達(dá)式前面有一個(gè)邏輯運(yùn)算符!,表示反操作,所以整個(gè)語句的值應(yīng)當(dāng)為false,即為0。

33.11解析:條件運(yùn)算表達(dá)式:“表達(dá)式1?表達(dá)式2:表達(dá)式3”,但表達(dá)式1的值為非0時(shí),此時(shí)表達(dá)式2的值就是整個(gè)條件表達(dá)式的值,反之為表示式3的值。解析易知結(jié)果為1。

34.*pmax=*px*pmax=*px解析:首先將變量x的值放到max中,然后依次和變量y、z進(jìn)行比較。若有比max大的數(shù),將該數(shù)存放到max中,這樣最后在max中的值就是x、y、z中的最大值。

35.8484解析:函數(shù)f(y,*x)的作用是讓y的值加上指針x所指向變量的值,讓指針x所指向變量的值加上y的值。由于形參y是傳值的,形參x是傳地址的,故調(diào)用該函數(shù)后,作為實(shí)參的y的值將不改變,而實(shí)參x的值將改變,故最后輸出的y的值為4,而x的值為8。

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

37.

38.1313解析:在任意一棵二叉樹中,葉子結(jié)點(diǎn)總是比度為2的結(jié)點(diǎn)多一個(gè)。本題中的二叉樹有3個(gè)葉子結(jié)點(diǎn),所以,該二叉樹有3-1=2個(gè)度為2的結(jié)點(diǎn);又知本題中的二叉樹有8個(gè)度為1的結(jié)點(diǎn)。所以,本題中的二叉樹總結(jié)點(diǎn)數(shù)為:葉子結(jié)點(diǎn)數(shù)+度為l的結(jié)點(diǎn)數(shù)+度為2的結(jié)點(diǎn)數(shù)=3+8+2=13。所以,本題的正確答案為13。

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

40.a=1;b=1;s=1;或a=b=s=1;或a=1.b=1s=1或給abs賦1或1.0或1.a=1;b=1;s=1;或a=b=s=1;或a=1.b=1,s=1或給a,b,s賦1或1.0或1.解析:sum函數(shù)的功能是求表達(dá)式s的級數(shù)之和,該函數(shù)的大致思路是:在該函數(shù)中,定義了—個(gè)整型變量i用作循環(huán)計(jì)數(shù)器,定義一個(gè)變量a用來表示各個(gè)子項(xiàng)的分子,初始為第一個(gè)子項(xiàng)的分子,故為1,定義了一個(gè)變量b用來表示各個(gè)子項(xiàng)大分母,初始為第一個(gè)子項(xiàng)的分母,故為1,定義一個(gè)變量s存放累加和,初始為第一個(gè)子項(xiàng)的值即為1,然后給各個(gè)定義的變量初始化,然后通過一個(gè)for循環(huán)將題目中的數(shù)學(xué)表達(dá)式的各個(gè)子項(xiàng)求出來并累加到s中,所以說,在該題的空格處應(yīng)該填寫將a、b和s賦初值的語句,即為a=1;b=1;s=1:(說明:語句的順序可任意)或a=b=s=1;(說明:變量的順序可任意)或a=1,b=1,s=1(說明:賦值表達(dá)式的順序可任意)給a,b,s賦1或1.0或1都可以。

41.A解析:題目中要求將q和r所指結(jié)點(diǎn)的先后位置交換,即要求p所指結(jié)點(diǎn)的指針域指向r所指向的結(jié)點(diǎn),r所指向的結(jié)點(diǎn)的指針域指向q所指向的結(jié)點(diǎn),q所指向的結(jié)點(diǎn)的指針域指向r所指向的結(jié)點(diǎn)。選項(xiàng)A首先讓r所指向的指針的指針域指向q所指向的結(jié)點(diǎn),這樣就將r所指向的結(jié)點(diǎn)的指針域指向的結(jié)點(diǎn)丟失了。選項(xiàng)B首先q所指向的結(jié)點(diǎn)的指針域指向r所指向的結(jié)點(diǎn)的指針域所指向的結(jié)點(diǎn),然后,讓p所指向結(jié)點(diǎn)的指針域指向r所指向的結(jié)點(diǎn),最后讓r所指向的結(jié)點(diǎn)的指針域指向q所指向的結(jié)點(diǎn),滿足要求。選項(xiàng)C首先讓p所指向結(jié)點(diǎn)的指針域指向r所指向的結(jié)點(diǎn),然后讓q所指向的結(jié)點(diǎn)的指針域指向r所指向的結(jié)點(diǎn)的指針域所指向的結(jié)點(diǎn),最后讓r所指向的結(jié)點(diǎn)的指針域指向q所指向的結(jié)點(diǎn),滿足要求。選項(xiàng)D首先讓q所指向的結(jié)點(diǎn)的指針域指向r所指向的結(jié)點(diǎn)的指針域所指向的結(jié)點(diǎn),然后,讓r所指向的結(jié)點(diǎn)的指針域指向q所指向的結(jié)點(diǎn),最后讓P所指向結(jié)點(diǎn)的指針域指向r所指向的結(jié)點(diǎn),滿足要求。

42.A解析:對未給出初始值的整數(shù)數(shù)組元素,被默認(rèn)初始化為零。

43.B當(dāng)運(yùn)算對象為不同的類型時(shí),數(shù)據(jù)的轉(zhuǎn)換方向?yàn)閕nt→unsigned→long→double。本題程序中的變量b為int型,先要轉(zhuǎn)換為unsigned型,int型變量的數(shù)值范圍為-32768~32767,最高位為符號位,而unsigned所表示的數(shù)的范圍為0~65535,它的最高位為數(shù)值位。由于內(nèi)存中是以補(bǔ)碼形式存儲數(shù)據(jù)的,所以,整型的“-1”在內(nèi)存中表示為16個(gè)1,最高位的“1”表示符號負(fù),將它轉(zhuǎn)換為unsigned類型,即將原符號位表示符號的“1”看成數(shù)值,就可得到16個(gè)數(shù)值位1,即65535。

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

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

46.B

47.B解析:在C語言中,當(dāng)一次輸入多個(gè)數(shù)據(jù)的時(shí)候,數(shù)據(jù)之間要用間隔符,合法的間隔符可以是空格、制表符和回車符。逗號不是合法的間隔符。

48.B解析:根據(jù)數(shù)據(jù)庫物理設(shè)計(jì)的概念可知:為一個(gè)給定的邏輯數(shù)據(jù)模型選取一個(gè)最合適應(yīng)用要求的物理結(jié)構(gòu)的過程,就是數(shù)據(jù)庫的物理設(shè)計(jì)。數(shù)據(jù)庫的物理結(jié)構(gòu)就是指數(shù)據(jù)庫在物理設(shè)備上的存儲結(jié)構(gòu)與存取方法。

49.D解析:cp=c這個(gè)語句是將數(shù)組第0行的地址賦給了cp。cp+1使指針指向二維數(shù)組c的第一行;*(cp+3)是數(shù)組c的第三行的第0列的地址值;*(cp+1)+3是數(shù)組c的第一行第三列的地址值。

50.A解析:函數(shù)中變量的存儲類別包括auto,static,extern,其中auto為隱含存儲類別,static為靜態(tài)存儲類別,register是寄存器存儲類別。

51.A解析:條件表達(dá)式“a?b:c”的含義是:當(dāng)a為真時(shí),其值等于表達(dá)式b的值,當(dāng)a為假時(shí),其值等于表達(dá)式c的值。第一個(gè)表達(dá)式:w=6<x=4為假,所以返回x的值,即m=x=4:第二個(gè)表達(dá)式:m=4<y=3為假,所以返回y的值,即m=y=3。

52.D解析:此題考查文件打開方式對文件操作的影響。由于打開文件進(jìn)行修改,可見選項(xiàng)A)是錯(cuò)誤的,因?yàn)榇朔N方式打開時(shí),只能讀,不能寫,當(dāng)然無法修改。選項(xiàng)B)是以追加方式“ab+”打開文件讀寫。以這種方式打開時(shí),新寫入的數(shù)據(jù)只能追加在文件原有內(nèi)容之后,但可以對以前的數(shù)據(jù)讀出。換言之,“ab+”或“a+”方式打文件后,對于寫操作,文件指針只能定位在文件的原有內(nèi)容之后,但對于讀操作,文件指針可以定位在全文件范圍內(nèi),可見,按此種方式打開文件不能實(shí)現(xiàn)文件內(nèi)容的修改。選項(xiàng)C)以“w+”方式打開文件,此時(shí),原文件中已存在的內(nèi)容都被清除。但新寫入文件的數(shù)據(jù)可以被再次讀出或再次寫入,故也不能實(shí)現(xiàn)對文件的修改。只有以“r+”方式打開文件時(shí),才允許將文件原來數(shù)據(jù)讀出,也允許在某些位置上再寫入,從而實(shí)現(xiàn)對文件的修改。

53.A解析:數(shù)據(jù)結(jié)構(gòu)作為計(jì)算機(jī)的一門學(xué)科,主要研究和討論以下三個(gè)方面的問題:①數(shù)據(jù)集合中各數(shù)據(jù)元素之間所固有的邏輯關(guān)系,即數(shù)據(jù)的邏輯結(jié)構(gòu);②在對數(shù)據(jù)進(jìn)行處理時(shí),各數(shù)據(jù)元素在計(jì)算機(jī)中的存儲關(guān)系,即數(shù)據(jù)的存儲結(jié)構(gòu);③對各種數(shù)據(jù)結(jié)構(gòu)進(jìn)行的運(yùn)算。

54.A

55.B解析:在while(E)中,表達(dá)式E可以是C語言中任意合法的條件表達(dá)式,但不能為空,由它來控制循環(huán)體是否執(zhí)行。在選項(xiàng)B)中表達(dá)式E>0‖E<0是一個(gè)邏輯表達(dá)式。

56.C解析:在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,對象是面向?qū)ο蟮能浖幕灸K,它是由數(shù)據(jù)及可以對這些數(shù)據(jù)施加的操作所組成的統(tǒng)一體,而且對象是以數(shù)據(jù)為中心的,操作圍繞對其數(shù)據(jù)所需做的處理來設(shè)置,沒有無關(guān)的操作。從模塊的獨(dú)立性考慮,對象內(nèi)部各種元素彼此結(jié)合得很緊密,內(nèi)聚性強(qiáng)。由于完成對象功能所需要的元素(數(shù)據(jù)和方法)基本上都被封裝在對象內(nèi)部,它與外界的聯(lián)系自然就比較少,所以,對象之間的耦合通常比較松。所以,選項(xiàng)A與B錯(cuò)誤,選項(xiàng)C正確。

57.A解析:本題主要考查的知識點(diǎn)是大寫字母比它對應(yīng)的小寫字母ASCII碼值小32,并且字符可以看作整數(shù)進(jìn)行算術(shù)運(yùn)算等操作。

58.D解析:本題中直接使用指針變量k,但在使用時(shí)要注意對k的指針運(yùn)算。此外,一開始應(yīng)知道*k的值為數(shù)組中的某一下標(biāo)值,即*k=0,本函數(shù)的功能是找出數(shù)組中的最大元素的位置及最大元素的值。

59.B解析:本題考查if條件語句。a=3,b=5,因此a>b條件不成立,c=a=3。此時(shí)c!=a條件不成立,不執(zhí)行c=b;語句,c的值仍然為5。結(jié)果a=3,b=5,c=3。

60.B解析:a=b=c+2實(shí)際上相當(dāng)于a=(b=c+2),進(jìn)而可分解為兩個(gè)表達(dá)式:b=c+2和a=b。注意:選項(xiàng)A)中包含一個(gè)不合法的運(yùn)算符“:=”;選項(xiàng)C)應(yīng)改為(int)18.5%3;選項(xiàng)D)可理解為兩個(gè)表達(dá)式:a+7=c+b和a=a+7,其中第一個(gè)是錯(cuò)的,因?yàn)镃++語言規(guī)定賦值號的左邊只能是單個(gè)變量,不能是表達(dá)式或常量等。注意:C++語言賦值語句的運(yùn)用,

61.D本題考查if語句的嵌套。if語句中的一

種表達(dá)方式,即:if…elseif…。

該表達(dá)式的語句是:

if(表達(dá)式1)

語句l

elseif(表達(dá)式2)

語句2

elseif(表達(dá)式3)

語句3

else

語句4

本題執(zhí)行elsey=1.0,并且以”%f”輸出。

62.D結(jié)構(gòu)化程序設(shè)計(jì)以模塊化設(shè)計(jì)

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論