2021-2022年山東省淄博市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第1頁
2021-2022年山東省淄博市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第2頁
2021-2022年山東省淄博市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第3頁
2021-2022年山東省淄博市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第4頁
2021-2022年山東省淄博市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第5頁
已閱讀5頁,還剩30頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021-2022年山東省淄博市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.下列對于線性鏈表的描述中正確的是()

A.存儲空間不一定是連續(xù),且各元素的存儲順序是任意的

B.存儲空間不一定是連續(xù),且前件元素一定存儲在后件元素的前面

C.存儲空間必須連續(xù),且前件元素一定存儲在后件元素的前面

D.存儲空間必須連續(xù),且各元素的存儲順序是任意的

2.設單鏈表中結點的結構為非空的循環(huán)單鏈表first的尾結點(由p所指向)滿足:______A.p->link==NULL;B.p==NULL;C.p->link==first;D.p==first;

3.下列程序的輸出結果是()。#includedstdi0.h>#includedstring.h>voidfun(intb[]){staticinti=0;do{b[i]+=b[i+1];}while(++i<2);}main{intk,a[5]={1,3,5,4,9};fun(a);for(k=0;k<5;k++)printf("%d",a[k]);}A.13579B.48579C.48549D.48999

4.若要用函數(shù)fopen打開一個新的二進制文件,該文件要既能讀也能寫,則應以哪種方式打開文件()。

A.wbB.wb+C.rb+D.rb

5.以下選項中與“(!a==0)”的邏輯值不等價的表達式是()。

A.(a==!0)B.aC.(a>0||a<0)D.(a!=0)

6.若主調用函數(shù)類型為double,被調用函數(shù)定義中沒有進行函數(shù)類型說明,而return語句中的表達式類型為float型,則被調函數(shù)返回值的類型是()。

A.int型B.float型C.double型D.由系統(tǒng)當時的情況而定

7.下面程序的輸出結果是______。main(){inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a+4;printf("%d\n",p[3]);}

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

8.判定一個順序棧st(最多元素為MaxSize)為滿的條件是()。A.st->top!B.st->top!C.top==-1D.top==MaxSize

9.下列結構體類型說明和變量定義中正確的是()。

A.structREC;{intn;charc;};RECt1,t2;

B.typedefstruct{intn;charc;}REC;RECt1,t2;

C.typedefstructREC;{intn=0;charc=‘A’;}t1,t2;

D.struct{intn;charc;}REC;RECt1,t2;

10.依次插入序列(50,72,43,85,75,20,34,45,65,30)后建立的二叉搜索樹中,查找元素30要進行()次元素間的比較。

A.4B.5C.7D.10

11.有以下程序:

程序的運行結果是()。

A.0987654321

B.4321098765

C.5678901234

D.0987651234

12.結構化分析方法是面向()的自頂向下、逐步求精進行需求分析的方法

A.對象B.數(shù)據(jù)結構C.數(shù)據(jù)流D.目標

13.用不帶頭結點的單鏈表存儲隊列,其頭指針指向隊頭結點,尾指針指向隊尾結點,則在進行出隊操作時()。

A.僅修改隊頭指針B.僅修改隊尾指針C.隊頭、隊尾指針都可能要修改D.隊頭、隊尾指針都要修改

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

A.無論指針變量P具有何種基類型,表達式“p=p+1”都代表指針P移動1個字節(jié)

B.指針變量具有基類型,基類型不同的指針變量不能直接相互賦值

C.指針變量的賦值操作“p=0;”是非法的

D.通過指針變量存取某個變量值的方式稱為“直接存取”方式

15.下列表達式中,可以正確表示的關系是()。

A.(x>=1)10(x<=0)B.x>1‖x=0C.x>=1ORx<=0D.X>=1&&x<=0

16.在三級模式之間引入兩層映像,其主要功能之一是()。

A.使數(shù)據(jù)與程序具有較高的獨立性B.使系統(tǒng)具有較高的通道能力C.保持數(shù)據(jù)與程序的一致性D.提高存儲空間的利用率

17.

18.下列程序的輸出結果是______。main(){charch[2][5]={"6937","8254"},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>'\0';j+=2)s=10*s+p[i][j]-'0';printf("%d\n",s);}

A.69825B.63825C.6385D.693825

19.若已知一個棧的進棧序列是1,2,3,,n,其輸出序列為p1,p2,p3,?,pn,若p1=n,則pi為()。

A.iB.n-iC.n-i+1D.不確定

20.有以下程序:main(){intx[8]={8,7,6,5,O,0},*s;s=x+3;printf("%d\n",s[2]);}執(zhí)行后輸出結果是()。

A.隨機值B.0C.5D.6

二、2.填空題(20題)21.數(shù)據(jù)流的類型有______和事務型。

22.

main()

{printf("Thesum=%d\n",SunFun(10));}

SunFun(intn)

{intx,s=0;

for(x=0;x<=n;x++)s+=F(【】);

returns;

}

F(intx)

{return(【】);)

23.若有如下定義:

int[]={11,24,56,19,29,39),*t=s;

則不移動指針t,且通過指針t引用數(shù)組中值為29的元素的表達式是【】。

24.下列程序的運行結果是______。

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

main()

{inti=1;

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

}

25.以下程序的功能是調用函數(shù)fun計算:m=1-2+3-4+…+9-10,并輸出結果。請?zhí)羁铡?/p>

#include<stdio.h>

intfun(intn)

{intm=0,f=1,i;

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

{m+=i*f;f=【】;}

returnm;

}

main()

{printf("m=%d\n",【】);}

26.以下程序的運行結果是【】。

#include<string.h>

typeaefstructstudent{

charname[10];

longsno;

floatscore;

{STU;

main()

{STUa={"zhangsan",2001,95},b={"Shangxian",2002,90},c={"Anhua",2003,95},d,*p=&d;

d=a;

if(strcmp(a.name,b.name)>0)d=b;

if(strcmp(C.name,)>0)d=C;

printf("%1d%s\n",d.sno,p->name);

}

27.以下程序的輸出結果是【】。

main()

{inta=0;

a+=(a=8);

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

}

28.下面程序的功能是將一個字符串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);}

29.若有以下程序

main()

{inta=4,b=3,c=5,t=0;

if(a<b)t=a;a=b;b=t;

if(a<c)t=a;a=c;c=t;

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

}

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

30.下述函數(shù)統(tǒng)計—個字符串中的單詞個數(shù),單詞是指處在空格之間的字符序列,請?zhí)羁铡?/p>

intword(char*s)

{intnum=0,flag=0;

while(*s)

{if(【】='')flag=0;

elseif(【】){flag=1;num++}

}

return【】;}

31.在程序設計階段應該采取______和逐步求精的方法,把一個模塊的功能逐步分解,細化為一系列具體的步驟,繼而用某種程序設計語言寫成程序。

32.以下程序的功能是輸出如下形式的方陣:

13141516

9101112

5678

1234

請?zhí)羁铡?/p>

main()

{inti,j,x;

for(j=4;j>0;j--)

{for(i=1;i<=4;i++)

{x=(j-1)*4+【】;

printf("%4d",x);

}

printf("\n");

}

}

33.以下程序段打開文件后,先利用fseek函數(shù)將文件位置指針定位在文件末尾,然后調用ftell函數(shù)返回當前文件位置指針的具體位置,從而確定文件長度。請?zhí)羁铡?/p>

FILE*myf;longf1;

myf=【】("test,t","rb");

fseek(myf,0,SEEK_END);f1=ftell(myf);

fclose(myf);

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

34.在關系模型中,把數(shù)據(jù)看成一個二維表,每一個二維表稱為一個______。

35.以下程序運行后的輸出結果是【】。

main()

{

chara[]="Language",b[]="Programe";

char,p1,*p2;

intk;

p1=a,p2=b;

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

if*(p1+k)==*(p2+k))printf("%c",*(p1+k));

}

36.若有定義doublea[5];,則a數(shù)組元素下標的上限為______。

37.以下程序運行后的輸出結果是【】。

#defineS(x)4*x*x+1

main()

{inti=6,j=8;

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

}

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

39.C語言中用______表示邏輯值為“真”,用數(shù)字“0”表示邏輯值為“假”。

40.函數(shù)delete(s,i,n)的作用是從字符串s中刪除從第i個字符開始的n個字符,請?zhí)羁铡?/p>

voiddelete(chars[],inti,intn)

{intj,k,length=0;

whiles(length])

【】;

-i;

j=i;

}

if(【】)

{k=i+n;

if(i+n<=length)

while(k<length)

s[j++]=s[k++];

s[j]='\0';

}

三、1.選擇題(20題)41.以下程序的輸出結果是______。#defineM(x,y,z)x*y+zmain(){inta=1,b=2,c=3;printf("%d\n",M(a+b,b+c,c+a));}

A.19B.17C.15D.12

42.設有下列二叉樹:

對此二叉樹中序遍歷的結果為______。

A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA

43.若有說明: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;

44.在結構化方法中,軟件功能分解屬于下列軟件開發(fā)中

A.詳細設計階段B.需求分析階段C.總體設計階段D.編程調試階段

45.下列關于棧的敘述中正確的是()

A.在棧中只能插入數(shù)據(jù)B.在棧中只能刪除數(shù)據(jù)C.棧是先進先出的線性表D.棧是先進后出的線性表

46.若變量x、y已正確定義并賦值,以下符合C語言語法的表達式是A.++x,y=x--B.x+1=yC.x=x+10=x+yD.double(x)/10

47.若有下列定義,則對a數(shù)組元素地址的正確引用是()。

inta[5],*p=a;

A.p+5B.*a+1C.&a+1D.&a[0]

48.下列描述中,不是線性表順序存儲結構特征的是

A.不便于插入和刪除B.需要連續(xù)的存儲空間C.可隨機訪問D.需另外開辟空間來保存元素之間的關系

49.在位運算中,操作數(shù)每右移兩位,其結果相當于()。

A.操作數(shù)乘以2B.操作數(shù)除以2C.操作數(shù)除以4D.操作數(shù)乘以4

50.以下程序的輸出結果是______。intx=1;fun(intp){intx=4;x+=p++;printf("%d",x);}main(){inta=3;fun(a);x+=a++;printf("%d\n",x);}

A.84B.45C.74D.95

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

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

52.下列敘述中正確的是A.線性表是線性結構B.棧與隊列是非線性結構C.線性鏈表是非線性結構D.二叉樹是線性結構

53.有如下函數(shù)調用語句func(rec1,rec2+rec3,(rec4,rec5));該函數(shù)調用語句中,含有的實參個數(shù)是______。

A.3B.4C.5D.有語法錯誤

54.在軟件生命周期中,能準確地確定軟件系統(tǒng)必須做什么和必須具備哪些功能的階段是()

A.需求分析B.詳細設計C.軟件設計D.概要設計

55.下列程序段選擇項,使i的運行結果為3的程序段是()。

A.inti=0,j=O;(i=2,(j++)+i);

B.inti=1,j=0;j=i=((i=3)*2);

C.inti=0,j=1;(j=1)?(i=1):(i=3);

D.inti=1,j=1;i+=j+=1;

56.以下程序的輸出結果是main(){charcf[3][5]={"AAAA","BBB","CC"};printf("\"%s\"\n",cf[1]);;}

A.AAAAB.BBBC.BBBCCD.CC

57.有以下函數(shù)定義:voidfun(intn,doubx){……}若以下選項中的變量都已正確定義并賦值,則對函數(shù)fun的正確調用語句是()。

A.fun(inty,doublem);

B.k=fun(10,12.5);

C.fun(x,n);

D.voidfum(n,x);

58.以下對枚舉類型名的定義中正確的是______。

A.enuma={one,two,three};

B.enuma{one=9,two=-1,three};

C.enuma={one","two","three"};

D.enuma{"one","two","three"};

59.有以下程序:main(){chara,b,c,*d;a='\';b='\xbc';c='\0xab';d="\017";printf("%c%c%c\n",a,b,c,*d);}編譯時出現(xiàn)錯誤,以下敘述中正確的是()。

A.程序中只有“a='\';”語句不正確

B.“b='\xbc';”語句不正確

C.“d="\0127";”語句不正確

D.“a='\';”和“c='\0xab';”語句都不正確

60.設x=015,則x=x017的值是()。

A.1111B.11111101C.10D.11000000

四、選擇題(20題)61.以下敘述中錯誤的是()。A.用戶定義的函數(shù)中可以有多個return語句,以便可以調用二次返回多個函數(shù)值

B.用戶定義的函數(shù)中可以沒有return語句

C.用戶定義的函數(shù)中若沒有retum語句,則應當定義函數(shù)為void類型

D.函數(shù)的return語句中可以沒有表達式

62.有下列二叉樹.對此二叉樹前序遍歷的結果為()。

A.ACFXDBEYZB.ABEFXYZCDC.ABCDEFXY7D.ABDYECFXZ

63.

64.設有條件表達式:(EXP)?i++;j--,則以下表達式中(EXP)完全等價的是()。

A.(EXP==0)B.(EXP!=0)C.(EXP==1)D.(EXP!=1)

65.(36)下列工具中屬于需求分析常用工具的是()

A.PAD

B.PFD

C.N-S

D.DFD

66.

67.

68.

69.設intx=7,則~x的值是()。

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

70.以下4個選項中,不能看作一條語句的是()。

A.;B.a=5,b=2.5,c=3.6;C.if(b!=5)x=2;y=6;D.returnj;

71.

72.一間工廠可有多個工人,則實體工廠和工人之間的聯(lián)系是

A.一對一B.一對多C.多對一D.多對多

73.

74.下列變量聲明合法的是()。A.shorta=1.4e-1;

B.doubleb=1+3e2.8;

C.longdo=0xfdaL;

D.float2aaa=1e-3;

75.

76.

77.

78.

若有下列定義和語句:

intu=011,v=0x11,w=11;

printf("%o,%x,%d\n",u,v,w);

則輸出結果是()。

A.9,17,11B.9,11,11C.11,11,11D.11,17,11

79.以下程序的輸出結果是()。

main()

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

d=!a&&!b║!c;

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

}

A)1B)0

C)非0的數(shù)D)-1

80.

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc的功能是:從字符串str中,刪除所有大寫字母F。

請修改程序中的錯誤,使它能得到正確結果。

注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結構。

試題程序:

#include<stdio.h>

voidproc(char*str)

{

inti,j;

//****found****

for(i=j=0;str[i]一0;i++)

if(str[i]!=F)

//****found****

str[i]=str[i];

str[j]=\0;

}

voidmain

{

charstr[80];

printf("\nEnterastring:");

gets(str);

printf("Theoriginalstring:");

puts(str);

proc(str);

printf("Thestringafterdeleted:");

puts(str);

printf("\n\n");}

六、程序設計題(1題)82.請編寫函數(shù)proc(),該函數(shù)的功能是:將str所指字符串中ASCⅡ值為偶數(shù)的字符刪除,串中剩余字符形成一個新串放在t所指的數(shù)組中。例如,若str所指字符串中的內(nèi)容為aBcdef9789,其中字符8的ASCⅡ碼值為偶數(shù)……字符8的ASCⅡ碼值為偶數(shù)……都應當刪除,其他依此類推。最后t所指的數(shù)組中的內(nèi)容應是ace979。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.A本題考查的是線性單鏈表、雙向鏈表與循環(huán)鏈表的結構及其基本運算。\n在鏈式存儲結構中,存儲數(shù)據(jù)結構的存儲空間可以不連續(xù),各數(shù)據(jù)結點的存儲順序與數(shù)據(jù)元素之間的邏輯關系可以不一致,而數(shù)據(jù)元素之間的邏輯關系是由指針域來確定的。故本題答案為A。

2.C

3.C本題考查do-while循環(huán),在fun函數(shù)中,首先定義了靜態(tài)變量i=0,do-while循環(huán)要實現(xiàn)的功能是以b[0]=b[0]+b[1],b[1]=b[1]+b[2],其他元素不變的規(guī)則重新給b數(shù)組賦值。在主函數(shù)中,通過調用fun函數(shù),按上面的規(guī)則對數(shù)組a重新賦值,最后輸出數(shù)組a。

4.B解析:本題考查文件使用方式標識符。方式“wb”為輸出打開一個二進制文件;方式“wb+”為讀寫建立一個新的二進制文件;方式“rb+”為讀寫打開一個二進制文件:方式“rb”為輸入打開一個二進制文件。

5.A運算符邏輯非“!”和“==”,邏輯非“!”的優(yōu)先級高于“==”,選項A等價于“(!a)==0”。如果a不等于0,則表達式為真,否則表達式為假。故本題答案為A選項。

6.A

7.B解析:指針變量p指向數(shù)組a的第5個元素,p[3]在原指向基礎上移3個單位,指針變量p將指向第8個元素(下標為7的元素),值為7。

8.D

9.B選項A中“structREC”后面不能有分號。C選項中“typedefstructREC”的后面也不能有分號。選項D中“REC”是結構體變量,不能當作結構體類型來使用。故本題答案為B選項。

10.B

11.C函數(shù)fun(int*s,intn1,intn2)的功能是對數(shù)組s中的元素進行首尾互相調換。所以在主函數(shù)中,當fun(a,0,3)執(zhí)行完后,數(shù)組a[12]={4,3,2,1,5,6,7,8,9,0};再執(zhí)行fun(a,4,9),數(shù)組a[12]={4,3,2,1,0,9,8,7,6,5};再執(zhí)行fun(a,0,9)后,數(shù)組a[12]={5,6,7,8,9,0,1,2,3,4}。所以正確答案為c)。

12.CC。【解析】結構化分析方法是面向數(shù)據(jù)流進行需求分析的方法,采用自頂向下、逐層分解,建立系統(tǒng)的處理流程,以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏輯模型。

13.C

14.B指針自增或自減1,移動的字節(jié)數(shù)與指針變量的基類型有關,假設指針變量p基類型為int類型,那么“p=p+1”表示指針P移動4個字節(jié)(通常int類型占4個字節(jié)),選項A錯誤;指針變量具有基類型,基類型不同的指針變量不能直接相互賦值,選項B正確;將0賦給指針變量,表示指針變量的值為空,這是合法的,選項C錯誤;通過指針變量存儲指向變量的地址并通過指針存取變量的值,稱為“間接存取”方式,選項D錯誤。故本題答案為B選項。

15.A解析:題中要求x的取值是小于等于0或者大于等于1,這說明表達式是或的關系,所以在寫成C語言表達式應是邏輯或的關系,邏輯或運算符是'‖'。

16.AA.【解析】數(shù)據(jù)庫管理系統(tǒng)在數(shù)據(jù)庫的三級模式之間提供了兩層映像,保證了數(shù)據(jù)庫中數(shù)據(jù)的較高的邏輯獨立性和物理獨立性。使系統(tǒng)具有較高的通道能力和提高存儲空間的利用率是操作系統(tǒng)的職能,而不是數(shù)據(jù)庫管理系統(tǒng)的職能。在數(shù)據(jù)庫系統(tǒng)中沒有“數(shù)據(jù)和程序一致性”這一概念。

17.B

18.C

19.C

20.B解析:通過賦值語句“s=x+3”,使指針變量s指向數(shù)組元素x[3],輸出語句中的spl等價于*(s+2),即x[5]值為0。所以,B選項為所選。

21.變換型變換型

22.xx*x+1或1+x*xx\r\nx*x+1或1+x*x解析:題目中要求從x=0開始將f(x)的值累加起來,直到x=10。在SunFun()函數(shù)中用了一個for循環(huán),每循環(huán)一次將f(x)累加到s中,所以在本題的第一個空白處應該填x,然后x+1,共循環(huán)10次。F()函數(shù)的功能應該是求數(shù)學表達式f(x)的值,所以其返回值應該為x*x+1。

23.*(t+4)*(t+4)解析:本題定義了指針變量t,并用數(shù)組s的首地址給它賦初值。t+4代表數(shù)組第6個元素的地址,*(t+4)是取得該地址中的值即29,而此時并沒有移動指針t。

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

25.(-1)*ffun(10)(-1)*f\r\nfun(10)解析:本題利用一個fun函數(shù)來完成題目要求的計算。程序中變量f起的作用是控制i*f的符號,偶數(shù)位都為負值,第一處填(-1)*f。在main函數(shù)中要輸出fun函數(shù)返回的m值,因此第二處填fun(10),實參10傳給形參n。

26.2002Shanxian2002Shanxian解析:本題中第一個if語句將結構體變量a.name和結構體變量b.name中較小的那個賦值給結構體變量d,第二個if語句將結構體變量c.name和結構體變量d.name較大的那個賦給結構體變量d。通過函數(shù)strcmp比較。strcmp()函數(shù)有兩個參數(shù),分別為被比較的兩個字符串。如果第一個字符串大于第二個字符串返回值大于0,若第一個小于第二個返回值小于0,相等時返回值為0。字符串比較大小的標準是從第一個字符開始依次向右比較,遇到某一個字符大,該字符所在的字符串就是較大的字符串,如果遇到某一個字符小,該字符所在的字符串就是較小的字符串。本程序中第一個if語句strcmp(a.name,b.name)>0為真,故將b的值賦給d,第二個if語句strcmp(c.name,d.name)>0為假,故不執(zhí)行后面的語句,最后d的值為b的值,因此d.sno和p->name的值為2002Shangxian。

27.1616解析:在程序中首先將8賦值給變量a,然后在進行復合賦值運算。即a=a+a=8+8=16,所以該空格處應該填16。

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

29.503503解析:如果if后面的條件為真,只執(zhí)行其后的一條語句或一條復合語句,如果if后面的條件為假,只執(zhí)行else后面的一條語句或一條復合語句。先判斷表達式“a<b”為假,不執(zhí)行“t=a”,但執(zhí)行“a=b;b=t;”,a的值為3,b的值為0。在判斷表達式“a<c”,值為真,所以執(zhí)行后面的3條語句“t=a;a=c;c=t”,結果a的值為5,c的值為3,所以最后輸出的結果為5、0和3。

30.*s++flag=0或*(s-1)=''num*s++\r\nflag=0或*(s-1)=''\r\nnum解析:在統(tǒng)計字符串單詞個數(shù)的算法中,本題的flag是為了記錄—個單詞是否結束。第18空應填*s++;如果某個字符不是空格,則必須判斷它是否是單詞,如是,則使得flag的標志為1,num的值加1。本題判斷方法是:先判斷s所指向的字符是否為空格,如果是則使得flag=0,否則判斷前—個字符是否是空格,如果是則說明這個字符是—個單詞的開始,將flag標志為1,num的值加1,如果不是,則不必記錄。故第19空應填flag=0或*(s-1)='';最后—個空格需填寫的是返回的單詞的個數(shù),即num。

31.自頂向下自頂向下解析:在程序設計時,應先考慮總體,后考慮細節(jié),逐步使問題具體化,對復雜的問題,應該設計一些子目標作為過渡,上述方法概括為:自頂向下,逐步細化。

32.ii解析:外循環(huán)是遞減的,方陣中的每個元素為(j-1)*4+i,因此空格處填i。

33.fopen

34.關系關系解析:關系模型用;維表表示,則每個;維表代表一種關系。

35.gaegae解析:本題定義了兩個字符串數(shù)組a[],b[],字符型指針變量p1和p2,且分別指向字符串數(shù)組a和b,抽打for循環(huán),當if(*(p1+k)==*(p2+k))條件為真,執(zhí)行輸出*(p1+k)對應的字符。即當k=0時,*(p1+k)對應的字符串數(shù)組a中的字符L,*(p2+k)對應的字符串數(shù)組b中字符P,因此if(*(p1+k)==*(p2+k))條件為假,不執(zhí)行printf語句,依此類推,將字符串數(shù)組a和b中對應位置上的字符——比較,如果對應位置上的字符相同,則輸出該字符。

36.44解析:一維數(shù)組元素的定義形式為:數(shù)組名[N],則該數(shù)組中元素的下限是0,上限是N-1。

37.8181解析:將S(i+j)展開來有:S(i+j)=S(6+8)=4×6+8×6+8+1=81。

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

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

40.length++i<lengthlength++\r\ni<length解析:第—個循環(huán)極有可能是計算串的長度,在i<=length時字符才被刪除,被刪除的是從第i個到笫i+n或最后—個間的所有字符。刪除前,應判斷i<=length。由于已經(jīng)進行了-i運算,故實際應填入i<length。

41.D解析:C語言的宏定義包括不帶參數(shù)的宏定義與帶參數(shù)的宏定義。本題為帶參數(shù)的宏定義,其形式為:

#define宏名(形參表)字符串

本題的M(a+b,b+c,c+a)被字符串a(chǎn)+b*b+c+c+a代替。

42.B解析:所謂中序遍歷是指在訪問根結點、遍歷左子樹與遍歷右子樹這三者中,首先遍歷左子樹,然后訪問根結點,最后遍歷右子樹;并且在遍歷左、右子樹時,仍然先遍歷左子樹,然后訪問根結點,最后遍歷右子樹。

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

44.C解析:詳細設計的任務是:在使用程序設計語言編程以前,對所采用算法的邏輯關系進行分析,并給予清晰的表達。需求分析是指用戶對目標軟件系統(tǒng)在功能、行為、性能、設計約束等方面的希望。編程調試任務是診斷和改正程序中潛在的錯誤。軟件功能分解只能發(fā)生在總體設計階段。

45.D解析:棧是一種特殊的線性表,這種線性表只能在固定的一端進行插入和刪除操作,允許插入和刪除的一端稱為棧頂,另一端稱為棧底。一個新元素只能從棧頂一端進入,刪除時,只能刪除棧頂?shù)脑?,即剛剛被插入的元素,所以棧也被稱為“先進后出”表或“后進先出”表。

46.A解析:在C語言的賦值表達式中,賦值對象必須是一個變量,而在選項B中其子表達式x+1代表的是一個臨時常量,因此不能將y賦給x+1,選項B錯誤。而選項C中由于“=”運算符是從右至左運算的,即原表達式相當于x=(x+10=x+y),所以也犯了對一個臨時常量賦值的錯誤。選項D中,將x強制轉換為double類型的表達式應該為(double)x,所以選項D也不正確。故本題的正確答案為選項A。

47.D解析:本題考查如何引用數(shù)組元素的地址。

選項A)中,p+5引用的是a[5]的地址,而數(shù)組a只有5個元素,即a[0]、a[1]、a[2];a[3]、a[4],所以引用錯誤;選項B)中,*a+1指的是將數(shù)組a的第一個元素加1;選項C)中,這種引用方式錯誤;選項D)中,&a[0]引用的是數(shù)組的首地址。

48.D解析:線性表的順序存儲是用一片連續(xù)的空間來存放數(shù)據(jù)元素,其特點是邏輯上相鄰的元素在物理位置上也相鄰。數(shù)據(jù)元素之間邏輯上的先后關系自動隱含在物理位置的相鄰元素之中,因此,不需要另外開辟空間來保存元素之間的關系。

49.C解析:在位運算中,操作數(shù)每右移兩位,相當于在操作數(shù)的左側添0,最右面的兩位被移出,即操作數(shù)除以4。

50.C解析:本題考查局部變量和全局變量的關系。在調用fun函數(shù)時,形參p值為3(實參a傳遞的),在x+=p++中,x是局部變量(局部優(yōu)先),x和p的和7放在變量x中,p再自加變?yōu)?,顯示輸出x的值7;主函數(shù)中的x是全局變量,值為1,x和a的和4放在變量x中,a再自加變?yōu)?,顯示輸出x的值4。

51.C解析:賦值的一般形式為:變量名:表達式;,賦值的方向為由右向左,即將:右側表達式的值賦給:左側的變量,執(zhí)行步驟是先計算再賦值。選項A中運算符%的運算對象必須為整數(shù),而選項A中26.8不為整數(shù),故選項A不正確;選項B將一個變量賦值給一個常量,這在C語言中是不允許的,故選項B不正確;選項D中也是將一個常量3賦值給一個常量,故選項D不正確;所以,4個選項中選項C符合題意。

52.A根據(jù)數(shù)據(jù)結構中各數(shù)據(jù)元素之間前后件關系的復雜程度,一般將數(shù)據(jù)結構分為兩大類型:線性結構與非線性結構。如果一個非空的數(shù)據(jù)結構滿足下列兩個條件:1,有且只有一根節(jié)結點,2,每一個結點最多有一個前件,也最多有一個后件,則稱該數(shù)據(jù)結構為線性結構,又稱線性表。所以線性表、棧與隊列、線性鏈表都是線性結構,而二叉樹是非線性結構。

53.A解析:(rec4,rec5)是逗號表達式,它的值是rec5的值。所以該函數(shù)調用語句含有的實參個數(shù)是3。

54.AA)【解析】軟件生命周期的主要活動階段為:可行性研究和計劃制定、需求分析、軟件設計、軟件實現(xiàn)、軟件測試、運行和維護。其中需求分析是對開發(fā)軟件提出的需求進行分析并給出詳細定義,即準確地確定軟件系統(tǒng)的功能,編寫軟件規(guī)格說明書及初步的用戶手冊,提交評審。

55.D

56.B解析:維字符數(shù)組可以看成由若干個一維字符數(shù)組組成,每行是一個一維字符數(shù)組。本題首先定義了一個數(shù)組ch[3][5]并給它們按行賦初值,即相當于給ch[0]賦值“AAAA”,給ch[1]賦值“BBB”,給ch[2]賦值“BBB”,最后輸出轉義字符“'\\'”、ch[1]和轉義字符“\\”,因此輸出為“BBB”.所以,4個選項中B為所選。

57.C解析:選項A中應將y和m前面的函數(shù)的類型說明符去掉,故選項A不正確;選項B中函數(shù)傳了2個參數(shù),其中一個為整型—個為浮點型,而fun()函數(shù)在定義時聲明的2個參數(shù),一個為整型一個為雙精度型,其參數(shù)類型不一致,故選項B不正確;選項D在調用函數(shù)時,不應該再聲明其返回類型,故選項D不正確。所以,4個選項中選項C符合題意.

58.B解析:聲明枚舉類型用enum開頭。例如:enumweekday(sun,mon,tue,wed,thu,fri,sat);說明:1、在C編譯中,對枚舉元素按常量處理,同時可以改

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論