2022年內(nèi)蒙古自治區(qū)巴彥淖爾市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第1頁
2022年內(nèi)蒙古自治區(qū)巴彥淖爾市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第2頁
2022年內(nèi)蒙古自治區(qū)巴彥淖爾市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第3頁
2022年內(nèi)蒙古自治區(qū)巴彥淖爾市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第4頁
2022年內(nèi)蒙古自治區(qū)巴彥淖爾市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2022年內(nèi)蒙古自治區(qū)巴彥淖爾市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.計算機高級語言程序的運行方法有編譯執(zhí)行和解釋執(zhí)行兩種,以下敘述中正確的事()。

A.C語言程序僅可以編譯執(zhí)行B.C語言程序僅可以解釋執(zhí)行C.C語言程序既可以編譯執(zhí)行又可以解釋執(zhí)行D.以上說法都不對

2.在面向?qū)ο蠓椒ㄖ校粋€對象請求另一對象為其服務(wù)的方式是通過發(fā)送()。A.調(diào)用語句B.命令C.口令D.消息

3.下述程序向文件輸出的結(jié)果是______。#include<stdio.h>voidmain(){FILE*fp=fopen("TESY","wb");fprintf(fp,"%d%5.0f%c%d",58,76273.0,'-',2278);fclose(fp);}

A.5876273-2278

B.5876273.000000-2278

C.5876273-2278

D.因文件為二進制文件而不可讀

4.有如下說明inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;則數(shù)值為9的表達(dá)式是()

A.*p+9B.*(p+8)C.*p+=9D.p+8

5.

6.一個隊列的入隊序列是1,2,3,4,則隊列的輸出序列是()。

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

7.有以下程序:#include<stdio.h>#defineS(x)x*x/xmain(){intk=6,j=3;printf(“%d,%d\n”,S(k+j+2),S(j+k+2);}程序運行后的輸出結(jié)果是()。

A.11,11B.29,29C.26,29D.121,121

8.下列哪一種圖的鄰接矩陣是對稱矩陣()。

A.有向圖B.無向圖C.AOV網(wǎng)D.AOE網(wǎng)

9.

有以下程序

#include<stdio.h>

#include<string.h>

typedefstrlIct{charname[9];charsex;floatscore[2];}STU;

STUf(STUa)

{STUb={"Zhao",m,85.0,90.0);inti;

strcpy(aname,b.name);

sex:b.sex;

for(i=0;i<2;i++)a.score[i]=b.score[i];

returna;

}

main

{STUc="Qian",f,95.0,92.0},d;

d=f(c).printf("%s,%c,%2.0f,%2.0f",d.Name,d.sex,d.score[0],d.score[1]);

}

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

A.Qian,f,95,92

B.Qian,m,85,90

C.Zhao,m,85,90

D.Zhao,f,95,92

10.對于下述說明,不能使變量p->b的值增1的表達(dá)式是______。structexm{inta;intb;floatc}*p;

A.++p->bB.++(p++)->bC.p->b++D.(++p)->b++

11.

12.在一個具有n個結(jié)點的有序單鏈表中插入一個新結(jié)點并仍然保持有序的時間復(fù)雜度是()。

A.O(1)B.O(n)C.O(n2)D.O(nlog2n)

13.設(shè)有定義:

inta=1,b=2,C=3;

以下語句中執(zhí)行效果與其他三個不同的是()。

A.if(a>B.C=a,a=b,b=C;

B.if(a>B.{C=a,a=b,b=C;}

C.if(a>B.C=a;a=b;b=c;

D.if(a>B.{C=a;a=b;b=c;}

14.對含有16個元素的有序表進行二分查找,關(guān)鍵字比較次數(shù)最多是()

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

15.

16.設(shè)有以下語句

typedefstructS

{intg;charh;}T;

則下面敘述中正確的是()A.可用S定義結(jié)構(gòu)體變量B.可以用T定義結(jié)構(gòu)體變量C.S是struct類型的變量D.T是structS類型的變量

17.某堆棧的輸入序列為a,b,c,d,下面的四個序列中,不可能是它的輸出序列的是()。

A.a,c,b,dB.b,c,d,aC.c,d,b,aD.d,c,a,b

18.若已知一個棧的入棧序列是1,2,3,......,n,其輸出序列為p1,p2,p3,..,pn,若p1=n-1,則pi可能為()

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

19.

20.VC6.0中int類型變量所占字節(jié)數(shù)是()。

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

二、2.填空題(20題)21.下列表達(dá)式用于判斷y是否為閏年。閏年的判斷條件是:年號能被4整除但不能被100整除或年號能被400整除,請?zhí)羁誣_____。

22.閱讀下面程序,則程序的執(zhí)行結(jié)果為【】。

#include"stdio.h"

main()

{inta=30,b=20,z;

z=fun(a+b,a-b);

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

fun(inta,intb)

{intz;

z=a/b;

returnz;}

23.有以下語句段:

intn1=10,n2=20;

printf("【】",n1,n2);

要求按以下格式輸出n1和n2的值:

n1=10

n2=20

每個輸出行從第一列開始,請?zhí)羁铡?/p>

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

#include<stdio.h>

func(a,b)

{staticintm=0,i=2;

i+=m+1;

m=i+a+b;

return(m);

}

main()

{intk=5,m=3,p;

p=func(k,m);

printf("%d",p);

p=func(k,m);

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

}

25.對長度為10的線性表進行冒泡排序,對壞情況下需要比較的次數(shù)為______

26.有以下程序段,且變量已正確定義和賦值。

for(s=1.0,k=1;k<=n;k++)s=s+1.0/(k*(k/1));

printf("s=%f\n\",s);

請?zhí)羁眨瓜旅娉绦蚨蔚墓δ芘c之完全相同。

s=1.0;k=1;

while(【】){s=s+1.0/(k*(k+1));【】;}

printf("s-=%f\n\n",s);

27.在關(guān)系數(shù)據(jù)庫中,用來表示實體之間聯(lián)系的是【】。

28.軟件生命周期包括8個階段。為使各時期的任務(wù)更明確,又可以分為以下3個時期:軟件定義期、軟件開發(fā)期、軟件維護期。編碼和測試屬于【】期。

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

30.有以下程序:

#include<stclio.h>

main()

{charc;

while((c=getchar())!='?')putchar(--c);

}

程序運行時,如果從鍵盤輸入:Y?N?<回車>,則輸出結(jié)果為【】。

31.軟件工程研究的內(nèi)容主要包括:【】技術(shù)和軟件工程管理。

32.若輸入2、2,則下列程序的運行結(jié)果為【】。

main()

{inti,j,(*p)[4],

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

p=a;

scanf("%d%d",&i,&j);

printf("a[%d,%d]=%d\n",i,j,*(*(p+i)+j));

}

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

34.已知字符A的ASCII代碼值為65,以下程序運行時若從鍵盤輸入:B33<回車>。則輸出結(jié)果是______。

#include<stdio,h>

main()

{

chara,b;

a=geCchar();scanf("%d“,&b);

a=a-'A'+‘0';b=b*2;

printf('%c%c\n",a,b);

}

35.下面的程序可對指定字符串中的字符串進行從大到小排序,請將程序完整。(注:程序采用了冒泡排序算法)

#include<stdio.h>

#include<string.h>

main()

{char*str="ABCDabcd",temp;

intn,i;

n=strlen(str);

while(n->1)

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

if(str[i]<str[i+1])

{temp=【】;

str[i]=str[i+1];

【】=temp;

}

printf(【】);

}

36.下面程序把從終端讀入的10個整數(shù)以二進制方式寫入一個名為bi.dat的新文件中。

#include<stdio.h>

FILE*fp;

main()

{inti,j;

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

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

{scanf("%d",&j);

fwrite(&j,sizeof(int),1,【】;

}

fclose(fp);

}

37.以下程序的輸出結(jié)果是______。

main()

{chars[]="abcdef";

s[3]='\0';

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

}

38.觀察題目要求,可以知道以下幾點:}

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

main()

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

printf("%d,",x<y?y:x);

printf("%d,",z<y?x++:y++);

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

}

40.若變量x、y已定義為int類型且X的值為33,y的值為3,請將輸出語句printf((),x/y);補充完整,使其輸出的計算結(jié)果形式為:x/y=11。

三、1.選擇題(20題)41.在C程序中,判斷邏輯值時,分別用()表示邏輯值“真”、“假”。

A.非00B.01C.非0非0D.11

42.在執(zhí)行完下列的C語句段之后,則B的值是()。chara='A';intb;B=((34&&56)&&(a<'b'));

A.0B.1C.TRUED.FALSE

43.下列實體的聯(lián)系中,屬于多對多聯(lián)系的是()

A.學(xué)生與課程B.學(xué)校與校長C.住院的病人與病床D.工資級別與職工

44.以下合法的賦值語句是______。

A.X=Y=100B.D-;C.X+Y;D.C=int(A+B)

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

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

46.定義數(shù)組chara[]=}'0','1','2','3');,則將該數(shù)組中元素按反序轉(zhuǎn)換成整數(shù),正確的程序段是______。

A.intk=0,i;for(i=0;i<4;i++)k=k*10+a[i]-48;

B.intk=0,i;for(i=3;i>=0;i--)k=k*10+a[i]-'0';

C.intk=0,i;for(i=3;i>=0;i--)k=k+a[i]-'0';

D.intk,i;for(i=3;i>=0;i--)k=k*10+a[i]-'0';

47.數(shù)據(jù)結(jié)構(gòu)中,與所使用的計算機無關(guān)的是數(shù)據(jù)的()。A.存儲結(jié)構(gòu)B.物理結(jié)構(gòu)C.邏輯結(jié)構(gòu)D.物理和存儲結(jié)構(gòu)

48.若進棧序列為1,2,3,4,進棧過程中可以出棧,則下列不可能的—個出棧序列是______。

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

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

A.線性鏈表的各元素在存儲空間中的位置必須是連續(xù)的

B.線性鏈表的頭元素一定存儲在其他元素的前面

C.線性鏈表中的各元素在存儲空間中的位置不一定是連續(xù)的,但表頭元素一定存儲在其他元素的前面

D.線性鏈表中的各元素在存儲空間中的位置不一定是連續(xù)的,且各元素的存儲順序也是任意的

50.以下程序的輸出結(jié)果是()main(){charw[][10]={"ABCD","EFGH","IJKL","MNOP"},k;for(k=1,k<3;k++)printf("%s\n",w[k]);}

A.ABCDFGHKL

B.ABCEFGIJM

C.EFGJKO

D.EFGHIJKL

51.下列敘述中正確的是A.線性表是線性結(jié)構(gòu)B.棧與隊列是非線性結(jié)構(gòu)C.線性鏈表是非線性結(jié)構(gòu)D.二叉樹是線性結(jié)構(gòu)

52.設(shè)有如下定義:structsk{intm;floatx;}data,*q;若要使q指向data中的m域,正確的賦值語句是()。

A.q=&data.m;

B.*q=data.m;

C.q=(structsk*)&data.m;

D.q=(structsk*)data.m;

53.以下程序的輸出結(jié)果是______。#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

54.設(shè)有定義語句:charc1=92,c2=92;則以下表達(dá)式中值為零的是()。

A.c1∧c2B.c1&c2C.~c2D.c1|c2

55.下列選項中正確的語句是()。

A.chars[8];s={"Beijing"};

B.char*s:s={Beijing");

C.chars[8]:s="Beijing"};

D.char*s:s="Beijing";

56.下列說法正確的是()。

A.在C語言中,可以使用動態(tài)內(nèi)存分配技術(shù),定義元素個數(shù)可變的數(shù)組

B.在C語言中,數(shù)組元素的個數(shù)可以不確定,允許隨機變動

C.在C語言中,數(shù)組元素的數(shù)據(jù)類型可以不一致

D.在C語言中,定義了一個數(shù)組后,就確定了它所容納的元素的個數(shù)

57.下列屬于C語言語句的是______。

A.pnntf("%d\n,a)

B.#include<stdio.h>

C.a=b;b=c;c=a;

D./*thisisaprogram*/

58.若有如下程序:main(){staticchar*a[3]={"123","456","789");char**b;b=a;++b;printf("%s,%s\n",*a,*a+1);printf("%s,%s\n",*b,b[1]);}則程序運行后的輸出結(jié)果是()。

A.123,456,456,789

B.123,23456,56

C.123,23456,789

D.123,456456,56

59.微型計算機中運算器主要的功能是進行()

A.算術(shù)運算B.邏輯運算C.算術(shù)和邏輯運算D.初等函數(shù)運算

60.有以下程序:#include<stdio.h>main(){intnum[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13;14,15,16}},i,j;for(i=0;i<4;i++){for(j=0;j<=i;j++)printf("%4c",");for(j=______;j<4;j++)printf("%4d",hum[i][j]);printf("\n");}}若要按以下形式輸出數(shù)組右上半三角;1234678111216則在程序下劃線處應(yīng)填入的是()。

A.i-1B.iC.i+1D.4-i

四、選擇題(20題)61.以下關(guān)于C語言數(shù)據(jù)類型使用的敘述中錯誤的是()。

A.若要處理如“人員信息”等含有不同類型的相關(guān)數(shù)據(jù),應(yīng)自定義結(jié)構(gòu)體類型

B.若要保存帶有多位小數(shù)的數(shù)據(jù),可使用雙精度類型

C.若只處理“真”和“假”兩種邏輯值,應(yīng)使用邏輯類型

D.整數(shù)類型表示的自然數(shù)是準(zhǔn)確無誤差的

62.

設(shè)變量已正確定義,則以下能正確計算f=n!的程序是()。

A.f=0:for(i=1;i<=n;i++)f*=i:

B.F=1:for(i=l;i<2n;i++)f*=i:

C.f=l:for(i=n;i>1;i++)f*=i:

D.f=1;for(i=n;i>=2;i--)f*=i:

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

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

64.已知inta=1,b=-1;則語句printf("%d\n",(a--,++b));的輸出結(jié)果是

A.-1B.0C.1D.語句錯誤

65.有以下程序:

#include<stdio.h>

main()

{inta=12,C;

c=(a<<2)<<1;

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

}

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

A.3B.50C.2D.96

66.(13)設(shè)一棵完全二叉樹共有699個結(jié)點,則在該二叉樹中的葉子結(jié)點數(shù)為()

A.349

B.350

C.255

D.351

67.在學(xué)生管理的關(guān)系數(shù)據(jù)庫中,存取一個學(xué)生信息的數(shù)據(jù)單位是()。

A.文件B.數(shù)據(jù)庫C.字段D.記錄

68.

69.

70.數(shù)據(jù)庫設(shè)計中,用E—R圖來描述信息結(jié)構(gòu)但不涉及信息在計算機中的表示,它屬于數(shù)據(jù)庫設(shè)計的()。

A.需求分析階段B.邏輯設(shè)計階段C.概念設(shè)計階段D.物理設(shè)計階段

71.下列選項中,不屬于模塊間耦合的是()。A.數(shù)據(jù)耦合B.標(biāo)記耦合C.異構(gòu)耦合D.公共耦合

72.若有如下說明和定義

structtest

{intml;charm2;floatm3;

unionuu{charul[5];intu2[2];}ua;

}myaa;

則sizeof(structtest)的值是

A.12B.16

C.14D.9

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

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

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

D.軟件的運行維護過程

74.在以下選項中,能IE確聲明數(shù)組并進行初始化的語句是()。

A.str=newDimension(1,2,3);

B.str=newdimension(1,2,3);

C.str:newArray(1,2,3);

D.str=newarray(1,2,3);

75.若有定義語句:“inta=10;doubleb=3.14;”,則表達(dá)式A+a+b值的類型是()。

A.charB.intC.doubleD.float

76.有以下程序

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

A.15B.12C.16D.20

77.

78.以下選項中有語法錯誤的是()。A.char*str[]={"guest"};

B.charstr[][lO]={"guest"};

C.char*str[3];str[t]={"9uest"};

D.charstr[3][lO];str[1]={"guest"};

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

80.程序調(diào)試的目的是

A.發(fā)現(xiàn)程序中的錯誤B.改正程序中的錯誤C.驗證程序的正確性D.改善軟件的性能

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:用冒泡法對6個字符串按由小到大的順序進行排序。請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計題(1題)82.編寫fun()函數(shù),它的功能是:利用以下所示的簡單迭代方法求方程cos(y)-y=0的一個實根。

yn+1=cos(yn)

迭代步驟如下:

(1)取y1初值為0.0;

(2)y0=y1,把y1的值賦給y0;

(3)y1=cos(y0),求出一個新的y1;

(4)若y0=y1的絕對值小于0.000001,則執(zhí)行步驟

(5),否則執(zhí)行步驟(2);

(5)所求y1就是方程COS(y)-y=0的一個實根,作為函數(shù)值返回。

程序?qū)⑤敵鼋Y(jié)果Result=0.739085。

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

部分源程序給出如下。

試題程序:

參考答案

1.A解釋執(zhí)行是計算機語言的一種執(zhí)行方式。由解釋器現(xiàn)場解釋執(zhí)行,不生成目標(biāo)程序。如BASIC便是解釋執(zhí)行。一般解釋執(zhí)行效率較低,低于編譯執(zhí)行。而C程序是經(jīng)過編譯生成目標(biāo)文件然后執(zhí)行的,所以C程序是編譯執(zhí)行。

2.D解析:面向?qū)ο蟮氖澜缡峭ㄟ^對象與對象間彼此的相互合作來推動的,對象間的這種相互合作需要一個機制協(xié)助進行,這樣的機制稱為消息。消息是一個實例與另一個實例之間傳遞的信息,它請求對象執(zhí)行某一處理或回答某一要求的信息,它統(tǒng)一了數(shù)據(jù)流和控制流。

3.C解析:fprintf函數(shù)工作時,多個數(shù)據(jù)間不會自珈口分隔符,選項A錯誤;浮點數(shù)的輸出格式是“%5.0f”表明其小數(shù)部分輸出0位,即沒有輸出,所以選項B也是錯誤的。

4.B解析:在C語言的數(shù)組元素的引用方法,我們在前面已經(jīng)講過了,比如數(shù)組元素a[0],可以用表達(dá)式*(p+0),即*p來引用,對于數(shù)組元素a[1],可以用表達(dá)式*(p+1)來引用,在這里,p+1的值就是數(shù)組元素a[1]的地址,對此地址使用“間接訪問運算符”:*(p+1)就代表存儲單元a[1],注意:一對圓括號不可少。同樣,對于數(shù)組元素a[2],則可以用表達(dá)式。(p+2)來引用…,對于數(shù)組元素a[9],可以用表達(dá)式,(p+9)來引用。因此,當(dāng)指針變量p指向a數(shù)組的起始地址時,若0≤i<10,則數(shù)組元素a[i]可以用*(p+i)來表示。

5.D

6.B

7.B#define命令是C語言中的一個宏定義命令,為了區(qū)分其他標(biāo)識符,標(biāo)識符一般使用大寫。將標(biāo)識符定義為一個字符串,該標(biāo)識符被稱為宏名,被定義的字符串稱為替換文本。宏定義不進行其他操作,僅僅只是替換標(biāo)識符。題目中的S(k+j+2)=k+j+2*k+j+2/k+j+2”,經(jīng)計算可得29?!癝(j+k+2)=j+k+2*k+j+2/j+k+2”,經(jīng)計算可得29。因此輸出為29,29。故本題答案為B選項。

8.B

9.Cf函數(shù)的功能是對形參a的各個成員用結(jié)構(gòu)體變量b的各個成員進行賦值后,然后返回變量a。

10.D解析:p->b應(yīng)作為一個整體看待,++p->b和p->b++都使變量b增1,++(p++)->b先使b增1,再使p后移,D中表達(dá)式的含義是使p+1所指結(jié)構(gòu)體變量中的成員b的值增1。

11.D

12.B

13.C由于a小于b,所以所有選項中的條件都為假,c選項中實際執(zhí)行了a=b;b=c;兩個操作。而A、B、D選項由于條件不成立,所以什么也沒有做,所以選擇c選項。

14.C

15.A

16.B解析:結(jié)構(gòu)體類型的定義格式為:

strcut結(jié)構(gòu)體名

{成員說明列表};

結(jié)構(gòu)體變量的定義有3種形式:第一種:定義結(jié)構(gòu)體型的同時定義結(jié)構(gòu)體變量如:strcut結(jié)構(gòu)體名{成員說明列表}變量;第二種先定義一個結(jié)構(gòu)體類型,然后使用該類型來定義結(jié)構(gòu)體變量,如:strcutstudent{成員說明列表):student變量;第三種:定義一個無名稱的結(jié)構(gòu)體類型的同時定義結(jié)構(gòu)體變量,如:Strctstudent{成員說明列表}變量。和上面三種情況比較我們不難得知只有選項B是正確的。所以,4個選項中選項B符合題意。

17.D

18.D

19.B

20.DVC6.0中基本整型int占4個字節(jié)。

21.(y%4==0)&&(y%100!=0)||(y%400==0)(y%4==0)&&(y%100!=0)||(y%400==0)解析:考查邏輯表達(dá)。年號能被4整除(y%4==0)但不能被100整除(y%100!=0),兩者是與的關(guān)系,年號能被400整除即y%400==0,與前兩項是或的關(guān)系。

22.55解析:函數(shù)調(diào)用的時候,函數(shù)名字必須與所調(diào)用的函數(shù)名完全一致,形參與實參類型要一致,在沒有給出函數(shù)返回值類型的情況下,默認(rèn)為整形,當(dāng)返回值為整型的函數(shù)放到主函數(shù)后面時,可以不需要事先說明就調(diào)用這個函數(shù)。return既可以返回一個普通常量,也可以返回一個指針變量。

23.n1=%d\nn2=%dn1=%d\\nn2=%d解析:根據(jù)輸出結(jié)果,可以確定“格式控制”為n1=%d\\nn2=%d,其中,“n1=”和“n2=”是按原樣輸出的字符,“%d”是按十進制整數(shù)輸出,“\\n”是轉(zhuǎn)義字符,用于輸出回車換行。

24.11231123解析:在主函數(shù)中第一次調(diào)用func子函數(shù)時,m=0,i=2,i=i+m+1=3,m=i+a+b=3+5+3=11。因為在子函數(shù)中將m和i定義成了static類型,所以在子函數(shù)中對m和i進行的改變在下一次調(diào)用子函數(shù)時能進行保存,所以第二次調(diào)用子函數(shù)時,m=11,i=3,則i=i+m+1=15,m=i+a+b=15+5+3=23。

25.在最壞情況下冒泡排序法需要比較的次數(shù)為n(n-1)/2。

26.k<=n或n>=kk++k<=n或n>=k\r\nk++解析:while語句和for語句的作用都是循環(huán)控制語句的執(zhí)行,兩者之間是可以互相轉(zhuǎn)換的。將while(EXP)轉(zhuǎn)換為for語句可以寫成for(;EXP;);將for(EXP1;EXP2;EXP3)轉(zhuǎn)換為while語句可以寫成:EXP1;while(EXP2){...EXP3;}。故本題的兩個空分別應(yīng)填寫for語句的第2和第3個表達(dá)式。即k<=n或n>=k和k++。當(dāng)然也可寫成與之等價的其他形式。

27.關(guān)系關(guān)系解析:在關(guān)系數(shù)據(jù)庫中,用關(guān)系也就是二維表來表示實體之間的聯(lián)系。

28.軟件開發(fā)。軟件開發(fā)。解析:通常,軟件生命周期包括8個階段:問題定義、可行性研究、需求分析、系統(tǒng)設(shè)計、詳細(xì)設(shè)計、編碼、測試、運行維護。還分為3個時期,軟件定義期:包括問題定義、可行性研究和需求分析3個階段;軟件開發(fā)期:包括系統(tǒng)設(shè)計、詳細(xì)設(shè)計、編碼和測試4個階段;軟件維護期:即運行維護階段。

29.物理獨立性物理獨立性

30.XX解析:主函數(shù)中首先定義了一個字符型變量c,接著執(zhí)行下面while語句,在while循環(huán)中,首先從鍵盤上讀入一個字符Y并給賦給字符變量c,賦值表達(dá)式的值不為'?',執(zhí)行輸出語句,輸出字符X。接著判斷while中的循環(huán)條件,讀入一個字符'?'并賦值給c,賦值表達(dá)式的值為'?'循環(huán)條件不再滿足,退出循環(huán)。

31.軟件開發(fā)

32.a[22]=11

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

34.1B1B解析:在C語古中,字符型變量可以看作整型變量來對待,與整型所不同的是字符型變量在內(nèi)存中只占1個字節(jié),而整型是2個字節(jié).字符型變量中所有的數(shù)值是它所表示字符的ASCII碼值.ASCII碼中的一些相關(guān)字符是順序排列的,如'0',的ASCII碼值為48,'1'為49以此類推一直到'9';'A'的ASCII碼值為65,'B'為66以此類推一直到'Z'。本題程序首先定義了兩個字符型變量a和b,然后分別使用getchar()和scanf()函數(shù)讀取輸入的字符'B'和十進制整數(shù)33到a和b中,因為a-'A'+'0'等于,'B'-'A'+'0'='1'+'0'='1',而b*2等于33*2=66'A'+1='B'。所以最終輸出的結(jié)果是:1B。

35.str[i]str[i+1]"%s"strstr[i]\r\nstr[i+1]\r\n'%s',str解析:本題要求將字符串str中的字符用冒泡排序算法從大到小排列,其實現(xiàn)過程是將相鄰兩個字符進行比較,如果當(dāng)前字符小于下一個字符;則通過中間變量temp將字符兩兩交換,所以第一空應(yīng)填:str[i],第二空應(yīng)填:str[i+1]。最終打印輸出得到的字符串str,所以第三空應(yīng)填;'%s',str。

36."bi.dat"fp'bi.dat'\r\nfp解析:打開文件函數(shù)fopen的參數(shù)是文件名,因此有fopen('bi.dat');而寫文件的參數(shù)是文件指針,因此有fwrite(&j,sizeof(int),1,fp);

37.abcabc解析:字符串的結(jié)束標(biāo)記'\\0',當(dāng)輸出一個存放在字符數(shù)組中的字符串時,只需輸出到'\\0'為止,而不管其后有什么數(shù)據(jù)。本題給字符數(shù)組s的元素s[3]賦值為'\\0',故只能輸出3個字符“abc”。

38.p=i;i>=pi<=Np=i;\r\ni>=p\r\ni<=N解析:本題主要考查了插入排序。由于程序中的數(shù)組在開始已經(jīng)按從小到的大順序排好。在插入時,首先要查到第一個大于待插入數(shù)的數(shù)組下標(biāo),即當(dāng)待插入元素小于數(shù)組中當(dāng)前元素時,記下數(shù)組的當(dāng)前下標(biāo)p,并結(jié)束循環(huán)。故第一空目的是為了記下數(shù)組下標(biāo),應(yīng)填p=i;插入的第二部是將大于待插入元素的所有元素都向后移動一位,故在循環(huán)時,要從最后一個元素到第p個元素都要后移一位,因此第二空應(yīng)填i>=p。最后一個循環(huán)是將N+1個元素都輸出,故最后一空應(yīng)為i<=N。(注:本題有多種答案,以上僅提供一種)

39.22132,2,1,3解析:本題考查++,--運算符和條件運算符的使用。

“表達(dá)式1?表達(dá)式2:表達(dá)式3”的功能是:表達(dá)式1的值若非0,則計算表達(dá)式2的值,且表達(dá)式2的值為最終結(jié)果;若表達(dá)式1的值為0,則計算表達(dá)式3的值,且為最終結(jié)果。

本題中,x=1,y=2時,x<y成立,輸出y的值2;y=2,z=3時,z<y不成立,執(zhí)行y++,輸出2后y值增1,所以最后一個輸出x的值不變?yōu)?,y的值為增加后的3。

40.x/y=%dx/y=%d解析:本題考查prinff語句的輸出格式。printf()函數(shù)是格式化輸出函數(shù),一般用于向標(biāo)準(zhǔn)輸出設(shè)備按規(guī)定格式輸出信息。在編寫程序時經(jīng)常會用到此函數(shù)。printf()函數(shù)的調(diào)用格式為:printf('<格式化字符串>”,<參最表>)其中,格式化字符串包括兩部分內(nèi)容。一部分足正常字符,這些字符將按原樣輸出;另一部分是格式化規(guī)定字符,以“%”開始,后跟一個或幾個規(guī)定字符,用來確定輸出內(nèi)容格式。參量表是需要輸出的一系列參數(shù),其個數(shù)必須與格式化字符串所說明的輸出參數(shù)個數(shù)一樣多,各參數(shù)之間用“,”分開,且順序一一

41.A解析:在C程序中,判斷邏輯值時,用非0表示“真”,用0表示“假”。計算邏輯表達(dá)式時,邏輯表達(dá)式的值為“真”是用1表示的,若邏輯表達(dá)式的值為“假”,則用0表示。

42.B解析:本題考查C語言3個知識點:①將一個字符賦給一個字符變量時,并不是將該字符本身存儲到內(nèi)存中,而是將該字符對應(yīng)的ASCII碼存儲到內(nèi)存單元中;②大寫字母的ASCII碼值小于其對應(yīng)小寫字母的ASCII碼值;③只要邏輯與運算符&&的兩個運算對象都為非零,返回值就是1。

43.AA本題考查關(guān)系數(shù)據(jù)庫中實體之間的聯(lián)系。實體之間的聯(lián)系有3種:一對一關(guān)系、一對多關(guān)系和多對多關(guān)系。一個學(xué)生可以選擇多門課程,一門課程可被多個學(xué)生選擇,所以學(xué)生與課程之間是多對多的聯(lián)系

44.B解析:本題中的答案A與D都缺少“;”,而答案C中,表達(dá)式是不能獨立成為語句的,答案B使用了C語言的自減運算符它就相當(dāng)于D=D-1,所以答案B為一賦值語句。

45.C解析:數(shù)據(jù)流相當(dāng)于一條管道,并有一級數(shù)據(jù)(信息)流經(jīng)它。在數(shù)據(jù)流圖中,用標(biāo)有名字的箭頭表示數(shù)據(jù)流。數(shù)據(jù)流可以從加工流向加工,也可以從加工流向文件或從文件流向加工,并且可以從外部實體流向系統(tǒng)或從系統(tǒng)流向外部實體。

46.B解析:將字符數(shù)組中的元素按反序轉(zhuǎn)換成整數(shù),數(shù)組第一個元素應(yīng)當(dāng)是四位整數(shù)的個位,依次類推,字符數(shù)字轉(zhuǎn)換為數(shù)字的基本方法是將該字符的ASCII碼值減去字符0的ASCII碼值,程序的輸出結(jié)果是3210。

47.C數(shù)據(jù)結(jié)構(gòu)概念一般包括3個方面的內(nèi)容,數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲結(jié)構(gòu)(物理結(jié)構(gòu))及數(shù)據(jù)上的運算集合。數(shù)據(jù)的邏輯結(jié)構(gòu)只抽象地反映數(shù)據(jù)元素之間的邏輯關(guān)系,即數(shù)據(jù)元素之間的前后件關(guān)系,而不管它在計算機中的存儲表示形式。

48.C解析:棧是—種后進先出表,選項C中,先出棧的是3,說明此時棧內(nèi)必然有1,2,由于1先于2進棧,所以1不可能在2之前出棧,故選項C這種出棧序列是不可能的。

49.DD.【解析】在線性鏈表中,各元素在存儲空間中的位置是任意的,各元素的順序也是任意的,依靠指針來實現(xiàn)數(shù)據(jù)元素的前后件關(guān)系。

50.D

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

52.C利用強制類型轉(zhuǎn)換(structsk*)把整數(shù)型地址&data.m轉(zhuǎn)換成結(jié)構(gòu)體變量指針賦給結(jié)構(gòu)體指針變量q。

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

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

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

54.A解析:按位異或“^”運算,是當(dāng)對應(yīng)位上的二進制數(shù)值相同時結(jié)果為0,否則為1。因為c1,c2的值相同,所以異或的結(jié)果為0,選項A)正確。按位與“&”運算符只有當(dāng)所有對應(yīng)位上的數(shù)都不相同時結(jié)果才為0,所以c1&c2的值不可能為0,選項B)錯誤。“~”是按位取反,由于十進制數(shù)92轉(zhuǎn)化成二進制數(shù)并不是全為1,所以即使取反也不能得到全為。的答案,所以錯誤。“|”是按位或運算,由于十進制數(shù)92轉(zhuǎn)化為二進制數(shù)也不是全為0,所以按位或運算后也不會全為0。

55.D解析:寧符數(shù)組初始化可以有兩種方式:方式一,按單個字符的方式賦初值。方式二,把一個字符串作為初值賦給字符數(shù)組。比如:charch[5]={'abc'),選項A屬于這種情況,但是選項A定義的字符數(shù)組長度為8,由于最后還要加一個“\\0”做結(jié)束標(biāo)志,所以賦給他的字符串長度應(yīng)小于等于7,所以選項A不正確;在給字符數(shù)組賦初值的時候,應(yīng)該用花括號“{”和“}”將字符串括起來,故選項C不正確。將字符型指針變量指向字符串也有兩種方法,一是在定義指針變量時就給其賦初值,比如:char*p='student'二是給指針變量賦值,比如:p='student';(p已經(jīng)被定義為字符型指針變量:),故選項D正確,而選項C中的花括號是多余的,應(yīng)該去掉,所以,4個選項中選項D符合題意。

56.D解析:本題考查數(shù)組的兩個知識點:①在C語言中,數(shù)組元素的個數(shù)是確定的,不允許隨機變動,數(shù)組定義好之后,它所能容納的元素的個數(shù)也就確定了;②同一個數(shù)組中所有元素的類型是一樣的。

57.C解析:在C語言中,一個完整的C語句必須在語句末尾出現(xiàn)分號,分號是C語句的必要組成部分。本題答案為C。

58.C解析:a為指針數(shù)組,a[0]即數(shù)組a的數(shù)組名指向字符串'123'的首地址,輸出*a為'123',*a+1將指針下移1個存儲單元,輸出字符串為”23”。a[1]指向字符串'456'的首地址,a[2]指向字符串'789'的首地址。b為指針的指針,它的值為數(shù)組a的首地址。

59.C

60.B解析:本程序為二重循環(huán),外循環(huán)控制輸出數(shù)據(jù)的行數(shù),內(nèi)循環(huán)控制輸出數(shù)據(jù)的列數(shù)。本題需要輸出4行4列,外層循環(huán)語句for(i=0;i<4;i++)控制輸出4行,內(nèi)層的第一條for循環(huán)控制每行輸出的空格數(shù),第二條for循環(huán)用于控制每行的數(shù)字輸出,由于每一行的數(shù)字個數(shù)比前一行少1個,所以內(nèi)層的第二條for循環(huán)每次循環(huán)的次數(shù)需要遞減1,那么j的初始值應(yīng)該遞增,因為第一行輸出的是4個數(shù),所以空格中應(yīng)填i。

61.CC語言中沒有邏輯類型,所以選項C錯誤。若要保存帶有多位小數(shù)的數(shù)據(jù),可以用單精度類型,也可以用雙精度類型。處理包含不同類型的相關(guān)數(shù)據(jù)可以自定義結(jié)構(gòu)體類型。整數(shù)類型可以無誤差地表示自然數(shù)。故本題答案為C選項。

62.D由i"11的數(shù)字定義可知n!=n*(n-1)*(n-2)*…*1。在選項A中,由于f的初值為0,在for循環(huán)語句中,f依次乘以1,2,3,…,n,最后計算得到f=n!一0,所以選項A不正確。在選項B中,f的初值為1,在for循環(huán)語句中,f依次乘以1,2,3,…,(n-1),最后計算得到f=(n-1)!,所以選項B不正確。在選項C中,f的初值為1,在for循環(huán)語句中,f依次乘以n,n+1,n+2,……,所以選項c不正確。在選項D中,f的初值為l,在for循環(huán)語句中,f依次乘以n,n-1,n-2,…,2,最后計算得到f=n!,所以選項D正確。

63.A第一個嵌套的for循環(huán)功能將對角線上的數(shù)據(jù)從大到小排序,其他數(shù)據(jù)不變,排序完成后,a[0][0]值為6,輸出第一行為6432,答案選擇A)

64.B表面上看,題目中是給出一個輸出函數(shù),實際上是考查printf函數(shù)輸出表列為逗號表達(dá)式的情況。逗號表達(dá)式的一般形式為:表達(dá)式1,表達(dá)式2,……,表達(dá)式n,整個逗號表達(dá)式的值為表達(dá)式n的值。題目中的實際輸出是++b的值,初始時,b=-1,先將b進行++運算,然后將結(jié)果輸出,輸出結(jié)果為0。

65.D\n本題考查左移運算符,左移運算符相當(dāng)于乘以2的2n,所以a<<2=12*22=48,所以(a<<2)<1—48*2=96。

\n

66.B注:利用公式n=n0+n1+n2、n0=n2+1和完全二叉數(shù)的特點可求出

67.D解析:在關(guān)系數(shù)據(jù)表中,行稱為元組,對應(yīng)存儲文件中的記錄,列稱為屬性,對應(yīng)存儲文件中的字段,所以本題答案為D。

68.A

69.C

70.CC?!窘馕觥縀—R(Entity—Relationship)圖為實體一聯(lián)系圖,提供了表示實體型、屬性和聯(lián)系的方法,用來描述現(xiàn)實世界的概念模型。

71.C解析:模塊之間的耦合程度反映了模塊的獨立性,也反映了系統(tǒng)分解后的復(fù)雜程度。按照耦合程度從弱到強,可以將其

溫馨提示

  • 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

提交評論