2021年黑龍江省牡丹江市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第1頁
2021年黑龍江省牡丹江市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第2頁
2021年黑龍江省牡丹江市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第3頁
2021年黑龍江省牡丹江市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第4頁
2021年黑龍江省牡丹江市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021年黑龍江省牡丹江市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.設(shè)無向圖G中有n個頂點e條邊,則其對應(yīng)的鄰接表中的表頭結(jié)點和邊表接點的個數(shù)分別為()。

A.n,eB.e,nC.2n,eD.n,2e

2.以下程序的運行結(jié)果是()。#include<stdio.h>main(){st,uctdate{intyear,month,day;}today;printf("%d\n",sizeof(structdate));}

A.6B.8C.10D.12

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

A.表達式“sizeof(FILE*)==sizeof(int*)”的值為真

B.文件指針的值是一個整數(shù),它的值一定小于文件字節(jié)數(shù)

C.文件指針的值是所指文件的當(dāng)前讀取位置

D.使用fscanf函數(shù)可以向任意類型的文件中寫入任意數(shù)量的字符

4.以三級模式為框架形成的3種數(shù)據(jù)庫中,真實存在于計算機外存的數(shù)據(jù)庫是()。

A.概念數(shù)據(jù)庫B.用戶數(shù)據(jù)庫C.物理數(shù)據(jù)庫D.邏輯數(shù)據(jù)庫

5.下列有關(guān)格式輸入函數(shù)scanf的敘述中正確的是()

A.輸入項可以是C語言中規(guī)定的任何變量,并且在任何變量前必須加地址符號“&”

B.可以只有格式控制項,沒有地址列表項

C.在輸入數(shù)據(jù)時,必須規(guī)定精度。如:scanf("%4.2f",&d);

D.當(dāng)輸入數(shù)據(jù)時,必須指明變量地址

6.設(shè)棧S的初始狀態(tài)為空,棧的容量為5,若入棧元素的順序是e1、e2、e3、e4、e5,則出棧元素的順序不可能是______。

A.e1、e2、e3、e4、e5

B.e5、e4、e3、e2、e1

C.e2、e4、e3、e5、e1

D.e3、e4、e1、e2、e5

7.以下能正確定義字符串的語句是()。

A.charstr=“\x43”;

B.charstr[]=“\0”;

C.charstr=”;

D.charstr[]={‘\064’};

8.以下是if語句的基本形式:

if(表達式.語句

其中“表達式”()。

A.必須是邏輯表達式B.必須是關(guān)系表達式C.必須是邏輯表達式或關(guān)系表達式D.可以是任意合法的表達式

9.有以下程序:#include<stdio.h>main(){inta=0,b=0,c=0,d=0;if(a=1)b=1;c=2;elsed=3;printf(“%d,%d,%d,%d\n”,a,b,c,d);}程序的運行結(jié)果是()。

A.1,1,2,0B.0,0,0,3C.編譯有錯D.0,1,2,0

10.

11.有以下函數(shù):charfun(char*p){returnP;}該函數(shù)的返回值是()。A.無確切的值B.形參p中存放的地址值C.一個臨時存儲單元的地址D.形參p自身的地址值

12.若需要0(nlog2n)的時間內(nèi)完成對數(shù)組的排序,且要求排序是穩(wěn)定的,則可選擇排序方法是()。A.快速排序B.堆排序C.歸并排序D.直接插入排序

13.

14.設(shè)順序表的長度為n,則順序查找的平均比較次數(shù)為()

A.nB.n/2C.(n+1)/2D.(n-1)/2

15.

16.

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

structnode

{chardata;

structnode*next:

}a,b,*p=&a,*q=&b;

A.a.next=q;B.P.next=&b;C.p->next=&b;D.(*p).next=q;

17.有以下程序: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",num[i][j]);printf("\n");}}若要按以下形式輸出數(shù)組右上半三角1234678111216則在程序下劃線處應(yīng)填入的是()。A.i-1B.iC.i+1D.4一i

18.有以下程序main(){inti;for(i=0;i<3;i++)switch(i){case1:printf("%d",i);case2:printf("%d",i);default:printf("%d",i);}}執(zhí)行后輸出的結(jié)果是A.11122B.12C.12020D.120

19.有以下程序:

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

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

20.當(dāng)執(zhí)行下面的程序時,如果輸入ABC,則輸出結(jié)果是()#include<stdio.h>#include<string.h>main(){charss[10]="12345";gets(ss);strcat(ss"6789");printf("%s\n",ss);}

A.ABC6789B.ABC67C.12345ABC6D.ABC456789

二、2.填空題(20題)21.以下程序運行后的輸出結(jié)果是【】。

#include<stdio,h>

#include<stating,h>

voidfun(char*s,intp,intk)

{inti;

for(i=p;i<k-1;i++)s[i]=s[i+2];

}

main()

{chars[]="abedefg";

fun(s,3,strlen(s));puts(s);

}

22.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲結(jié)構(gòu),線性鏈表屬于【】。

23.對二叉排序樹進行查找的方法是:用待查的值與根結(jié)點的值相比,若比根小,則繼續(xù)在【】子樹中找。

24.用以下語句調(diào)用庫函數(shù)malloc,使字符指針st指向具有11個字節(jié)的動態(tài)存儲空間,請?zhí)羁?。st=(char*)【】;

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

intfun(intn)

{intm=0,f=1,i;

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

{m+=i*f;

f=【】;

}

returnm;

}

main()

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

26.數(shù)據(jù)庫管理系統(tǒng)常見的數(shù)據(jù)模型有層次模型、網(wǎng)狀模型和【】3種。

27.如果一個工人可管理多個設(shè)備,而一個設(shè)備只被一個工人管理,則賣體“工人”與實體“設(shè)備”之間存在【】關(guān)系。

28.自動批處理文件名必須是【】。

29.下面的程序?qū)崿F(xiàn)字符串的復(fù)制。

voidcopy_string(from,to)

【】;

{for(;*from;from++,to++)

*to=*from;

【】;

}

main()

{char*a="Iamwang",*b="youareLi";

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

【】;

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

}

30.以下函數(shù)的功能是求x的y次方,請?zhí)羁铡?/p>

doublefun(doublex,inty)

{inti;

doublez;

for(i=1,z=x;i<y;i++)z=z*【】;

returnz;

}

31.在C語言中,可以利用【】,將一個表達式的值轉(zhuǎn)換成指定的類型。

32.設(shè)有下列宏定義:#defineA2

#defineBA+3

則執(zhí)行賦值語句;t=B*2;t為int型變量后的值是______。

33.問題處理方案的正確而完整的描述稱為______。

34.若有下列定義(設(shè)int類型變量占兩個字節(jié)),則i=【】,j=【】。

inti=8,j=9;floatx=123.456;

print("i=%oj=%o\n",i,j);

35.設(shè)有chara,b;,若要通過a&b運算屏蔽掉a中的其他位,只保留第2位和第8位(右起為第1位),則b的二進制是【】。

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

main()

{char*p[]={"BOOL","OPK","H","SP:,};

for(i=3;i>0;i--,i--)printf("%c",*p[i]);

printf("\n");}

37.若有以下程序:

main()

{int,p,a=5;

if(P=a!=0)

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

else

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

}

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

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

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

main()

{inti=1;

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

}

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

main()

{charb[]="Hello,you";

b[5]=0;

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

}

40.算法的復(fù)雜度主要包括時間復(fù)雜度和______復(fù)雜度。

三、1.選擇題(20題)41.下面程序的輸出結(jié)果是()main(){inta=-1,b=4,k;k=(a++<=0)&&(!(b--<=0));prinft("%d%d\n",k,a,b);}

A.003B.012C.103D.112

42.有以下程序:main(){inta=1,b=2,m=0,n=0,k;k=(n=b>a)||(m=a>b);printf("%d,%d\n"m,k,m);}程序運行后的輸出結(jié)果是()。

A.0,0B.O,1C.1,0D.1,1

43.下列程序的運行結(jié)果是()。#include<stdio.h>#defineADD(x)x+xmain(){intm=1,n=2,k=3;ints=ADD(m+n)*k;printf("s=%d",s);}

A.sum=18B.sum=10C.sum=9D.sum=25

44.有以下程序main(){inta=3,b=4,c=5,d=2;if(a>B)if(b>C)printf("%d",d+++1);elseprintf("%d",++d+1);printf("%d\n",D);}程序運行后的輸出結(jié)果是

A.2B.3C.43D.44

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

A.數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)必定是一一對應(yīng)的

B.由于計算機存儲空間是向量式的存儲結(jié)構(gòu),因此,數(shù)據(jù)的存儲結(jié)構(gòu)一定是線性結(jié)構(gòu)

C.程序設(shè)計語言中的數(shù)組一般是順序存儲結(jié)構(gòu),因此,利用數(shù)組只能處理線性結(jié)構(gòu)

D.以上三種說法都不對

46.軟件(結(jié)構(gòu))設(shè)計階段產(chǎn)生的文檔是______。

A.程序流程圖B.系統(tǒng)功能說明書C.系統(tǒng)模型說明書D.模塊結(jié)構(gòu)圖和模塊說明書

47.字符(char)型數(shù)據(jù)在微機內(nèi)存中的存儲形式是______。

A.反碼B.補碼C.EBCDIC碼D.ASCII碼

48.以下各選項企圖說明一種新的類型名,其中正確的是______。

A.typedefv1int;

B.typedefv2=int;

C.typedefintv3;

D.typedefv4:int

49.關(guān)系表中的每一橫行稱為一個()。A.元組B.字段C.屬性D.碼

50.下列循環(huán)體的執(zhí)行次數(shù)是()。#include<stdio.h>main(){inti,j;for(i=0j=1;i<j+1;i+=1,j--)printf("%d\n",j);}

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

51.能將高級語言程序轉(zhuǎn)換成目標語言程序的是______。

A.調(diào)試程序B.解釋程序C.編譯程序D.編輯程序

52.以下不能正確計算代數(shù)式sm2()值的C語言表達式是

A.1/3*sin(1/2)*sin(1/2)

B.sin(0.5)*sin(0.5)/3

C.pow(sin(0.5),2)/3

D.1/3.0*pow(sin(1.0/2),2)

53.下列可作為C語言賦值語句的是______。

A.x=3,y=5;B.a=b=6;C.i--;D.y=int(x);

54.表示關(guān)系a≤b≤c的C語言表達式為()。

A.(a<=B)&&(b<=C)

B.(a<=B)and(b<=C)

C.(a<=b<=C)

D.(a<=B)&(b<=C)

55.在位運算中,操作數(shù)每右移兩位,其結(jié)果相當(dāng)于()。

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

56.若有說明inti,j=2,*p&i;,則能完成i=j賦值功能的語句是______。

A.i=*p;B.*p=*&j;C.i=&j;D.i=**p;

57.下列二維數(shù)組的說明中,不正確的是()。

A.floata[][4]={0,1,8,5,9};

B.inta[3][4]

C.#defineN5floata[N][3]

D.inta[2][9.5];

58.以下程序的輸出結(jié)果是main(){charx=040;printf(“%o\n”,x<<1);}

A.100B.80C.64D.32

59.已知在ASCII代碼中,字母A的序號為65,下列程序的輸出結(jié)果是______。#include<stdio.h>main(){charc1='A',c2='Y';printf("%d,%d\n",c1,c2);}

A.因輸出格式不合法,輸出錯誤信息B.65,90C.'A','Y'D.65,89

60.以下程序的輸出結(jié)果是#include<stdio.h>voidprt(int*x,int*y,int*z){printf("%d,%d,%d\n",++*x,++*y,*(z++));}main(){inta=10,b=40,c=20;prt(&a,&b,&c);prt(&a,&b,&c);}

A.11,42,3112,22,41

B.11,41,2012,42,20

C.11,21,4011,21,21

D.11,41,21.12,42,22

四、選擇題(20題)61.(72)n個頂點的強連通圖的邊數(shù)至少有______。

A.n-1

B.n(n-1)

C.n

D.n+1

62.有如下程序

#defineN2

#defineMN+1

#defineNUM2*M+1

main()

{

inti;

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

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

}

該程序中for循環(huán)執(zhí)行的次數(shù)是

A.5B.6

C.7D.8

63.

64.

65.

66.(64)在單鏈表中,增加頭結(jié)點的目的是()

A.方便運算的實現(xiàn)

B.使單鏈表至少有一個結(jié)點

C.標識表結(jié)點中首結(jié)點的位置

D.說明單鏈表是線性表的鏈式存儲實現(xiàn)

67.有以下程序main(){union{charch[2];intd;}s;s.d=0x4321;printf("%x,%x\n",s.ch[0],s.ch[1]);}在16位編譯系統(tǒng)上,程序執(zhí)行后的輸出結(jié)果是______。A.21,43B.43,21C.43,00D.21,00

68.給出以下定義:

則正確的敘述為()。

A.數(shù)組m和數(shù)組n等價B.數(shù)組m和數(shù)組n的長度相同C.數(shù)組m的長度小于數(shù)組n的長度D.數(shù)組m的長度大于數(shù)組n的長度

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

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

A.ACBDEFB.DEBFCAC.ABDECFD.DBEAFC

70.計算機能直接執(zhí)行的程序是()。

A.源程序B.目標程序C.匯編程序D.可執(zhí)行程序

71.

下列程序的運行結(jié)果為()。

#defineMAX(x,y)(x)>(y)?(x):(y)

main

{inta=2,b=3,C=1,d=3,t:

printf("%d\n",(MAX(a+h,c+d))*100):

}

A.500B.5C.4D.400

72.

73.

74.有以下說明和定義語句

structstudent

{

intage;charnum[8];

};

structstudentstu[3]={{20,"200401"},{21,"200402"},{10\9,"200403"}};

structstudent*p=stu;

以下選項中引用結(jié)構(gòu)體變量成員的表達式錯誤的是

A.(p++)->numB.p->numC.(*p).numD.stu[3].age

75.

76.有以下程序:

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

A.一263B.2C.0D.一26

77.

有以下程序:

voidswap(char*x,char*y)

{chart;

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

}

main

{char*s1="abe",*s2="123":

swap(s1,s2);

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

}

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

A.123,abeB.abc.123C.1bc,a23D.321,cba

78.有以下程序

#include<stdio.h>

voidprt(int*x,int*y,int*z)

{printf("%d,%d,%d\n",++*x,++*y,*z++);}

main()

{inta=10,b=40,c=20;

prt(&a,&b,&c);

prt(&a,&b,&c);

}

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

79.

80.有下列程序

main()

{

inta[5]={2,4,6,8,10},*p,**k;

p=a;

k=&p;

printf("%d",*(p++));

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

}

運行該程序,其輸出結(jié)果是

A.4B.22

C.24D.46

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc的功能是:從字符串str中,刪除所有大寫字母F。請修改程序中的錯誤,使它能得到正確結(jié)果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#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");}

六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),其功能是將一個數(shù)字字符串轉(zhuǎn)換成與其面值相同的長整型整數(shù)??烧{(diào)用strlen函數(shù)求字符串的長度。例如,在鍵盤輸入字符串2345210,函數(shù)返回長整型整數(shù)2345210。注意:部分源程序存放在文件prog1.c中,請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()指定的部位填入所編寫的若干語句。試題程序:

參考答案

1.A

2.A解析:結(jié)構(gòu)體變量的長度是其內(nèi)部成員總長度之和,在本題中,structdate中包含year,month,day三個整型變量。通常一個整型變量占2個字節(jié),因此,用sizeof求得該結(jié)構(gòu)體變量的長度為6個字節(jié)。

3.A“sizeof(FILE*)=4”,因為“file*”為指針,指針變量占用字節(jié)數(shù)為4,所以“sizeof(int*)=4”,選項A正確。文件指針的值是地址,是一個十六進制數(shù),它的值不一定小于文件字節(jié)數(shù),因此選項B錯誤。文件指針是所指文件的當(dāng)前讀取位置,而不是文件指針的值,因此選項C錯誤?!癷ntfscanf(FILE*Stream,constchar*format,[argument...]);”,fScanf函數(shù)可以向任意類型的文件寫入任意數(shù)量的數(shù)據(jù)(不能超過系統(tǒng)的緩沖區(qū)),寫文件先寫入緩沖區(qū),最后一起寫入文件,因此選項D錯誤。故本題答案為A選項。

4.B

\n①以內(nèi)模式為框架所組成的數(shù)據(jù)庫,1物理數(shù)據(jù)庫;②以概念模式為框架所組成的數(shù)據(jù)庫叫概念數(shù)據(jù)庫;③以外模式為框架所組成的數(shù)據(jù)庫叫用戶數(shù)據(jù)庫。它是真實存在于計算機外存中的數(shù)據(jù)庫。

\n

5.D解析:如果是指針型變量或數(shù)組名,則變量前不加地址符號&,所以選項A的說法有誤。必須有地址列表項才能實現(xiàn)正確輸入,所以選項B的說法有誤。在輸入數(shù)據(jù)時,不可以指定實型數(shù)據(jù)的精度,所以選項C的說法有誤。只有選項D的說法正確。

6.D解析:棧是僅在表頭和表尾進行插入和刪除元素操作的線性表,其特點是“先進后出”。本題中,進棧的過程中可以出棧。選項D中,如果第一個出棧的元素為e3,由于入棧順序是e1、e2、e3,那么e3出棧后,棧中元素必定有e1和e2,因為e1先入棧,故e1應(yīng)在e2后出棧,所以選項D是不可能的出棧順序。

7.BC語言中,字符串是用一對雙引號標識的字符序列,并用字符型數(shù)組來存放。C選項和D選項不屬于字符串,A選項定義的是一個字符變量str,但賦值字符串,顯然也不正確。故本題答案為B選項。

8.D解析:本題主要考查關(guān)于if語句的說明,if后面圓括號中的表達式,可是任意合法的C語言表達式(如:邏輯表達式、關(guān)系表達式、算術(shù)表達式、賦值表達式等),也可以是任意類型的數(shù)據(jù)(如:整型、實型、字符型、指針型等。)

9.C本題中“if(a=1)b=1”與“elsed=3;”之間多了語句“c=2;”,所以會出現(xiàn)else語句的位置錯誤的編譯失敗提示。故本題答案為C選項。

10.A

11.B

12.C

13.B

14.C

15.D

16.B

\n本題考查結(jié)構(gòu)體指針變量的賦值方法,要把結(jié)點b連接到結(jié)點;l的后面,必須把b的地址給a的next指針。故8正確。

\n

17.B本題中要求輸出右上半角的數(shù),對角線上的數(shù)的下標相同,所以j=i。

18.A解析:當(dāng)執(zhí)行switch語句時,首先計算緊跟其后一對括號中的值,然后在語句體內(nèi)尋找與該值吻合的case標號。若相等,則執(zhí)行該標號后開始的各語句,包括在其后的所有case和default后的語句,直到switch語句體結(jié)束。

19.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選項正確。

20.A

21.abcfgabcfg解析:fun函數(shù)中for循環(huán)語句的作用是將s所指的字符串中從第5個字符到第7個字符依次向前移動兩個位置。輸出結(jié)果為abcfg。

22.存儲結(jié)構(gòu)

23.左左解析:對二叉排序樹進行查找,若待查的值與根結(jié)點的值相比,若比根小,則繼續(xù)在左子樹中找;若比根大,則在右子樹中找。

24.malloc(11)malloc函數(shù)的格式是void*(或char*)malloc(size),size表示應(yīng)分配的存儲區(qū),此題要分配11字節(jié)的單元,把11代入即可。

25.=-ffun(10)=-f\r\nfun(10)解析:本題要求調(diào)用fun()函數(shù)計算m的值,故在主函數(shù)中的空白處應(yīng)該填調(diào)用fun()函數(shù)的語句。fun()函數(shù)有一個形參n,為每次參加計算的值個數(shù),故在主函數(shù)中的空白處應(yīng)該填fun(10),在fun()函數(shù)中用到了一個for循環(huán),共循環(huán)n次,當(dāng)循環(huán)第i次的時候,m的值等于m=1-2+…+[(-1)的i-1次方]*i,所以在fun()函數(shù)的空白處應(yīng)該填使f改變符號的語句,故應(yīng)填-f或其他等價形式。

26.關(guān)系模型關(guān)系模型解析:數(shù)據(jù)庫管理系統(tǒng)是位于用戶與操作系統(tǒng)之間的一層系統(tǒng)管理軟件,是一種系統(tǒng)軟件,是用戶與數(shù)據(jù)庫之間的一個標準接口。其總是基于某種數(shù)據(jù)模型,可以分為層次模型、網(wǎng)狀模型和關(guān)系模型。

27.一對多一對多解析:實體之間的聯(lián)系有3類:一對一,一對多,多對多。設(shè)有兩個實體集E1和E2,如果E2中的每一個實體與E1中的任意個實體(包括零個)有聯(lián)系,而E1中的每一個實體最多與E2中的一個實體有聯(lián)系,則稱這樣的聯(lián)系為“從E2到E1的一對多的聯(lián)系”,通常表示為“l(fā):n的聯(lián)系”。由此可見,工人和設(shè)備之間是一對多關(guān)系。

28.AUTOEXEC.BAT

29.char*from*to*to='\0'copy_string(ab)char*from,*to\r\n*to='\\0'\r\ncopy_string(a,b)解析:函數(shù)copy_string()用到了形參from,to是指針變量,實參a、b是字符串指針,第一個空格應(yīng)填形參說明語句“char*from,*to”。當(dāng)from所指的字符串全部復(fù)制給to所指的字符串時,有可能to所指原字符串長度大于from所指字符串長度,即可能to所指串的后面字符仍留在復(fù)制后的to所指串中。為避免這種情況,必須在from所指串復(fù)制完后,馬上給to所指串加上串結(jié)束符。因此,第二個空格應(yīng)填*to='\\0'。main()函數(shù)應(yīng)調(diào)用copy_string()函數(shù),第三個空格應(yīng)填copy_string(a,b)。

30.xx解析:函數(shù)的定義形式為;

函數(shù)類型函數(shù)名(形參表)

{

類型說明語句;

執(zhí)行語句;

}

本題中函數(shù)的功能是:累積變量以求得變量的Y次方。

31.強制類型轉(zhuǎn)換強制類型轉(zhuǎn)換

32.88解析:本題考查帶參數(shù)的宏定義及相關(guān)運算.運算過程為:t=B*2=A+3*2=2+3*2=8。

33.算法或程序或流程圖算法或程序或流程圖解析:算法是問題處理方案正確而完整的描述。

34.1011

35.1000001010000010解析:運算“&”的規(guī)則是只有當(dāng)兩個相應(yīng)的二進制位都為1時,該位的結(jié)果才為1。要保留第2、8位,只要將其與二進制數(shù)10000010相與。

36.

37.11解析:首先計算if語句后面的表達式,根據(jù)運算符的優(yōu)先級可知,先算“a!=0”,該值為1,再把1賦值給p,結(jié)果為1(真),執(zhí)行其后的printf語句,輸出的值為1。

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

39.HelloHello解析:字符串中,數(shù)值0或符號'/0'表示字符串的結(jié)束。本題中,b[5]被賦了0值,表明字符串b的第六個字符就是結(jié)束標志。因此,只輸出前五個字符,即Hello。

40.空間空間解析:算法的復(fù)雜度主要包括時間復(fù)雜度和空間復(fù)雜度。所謂算法的時間復(fù)雜度,是指執(zhí)行算法所需要的計算工作量。一個算法的空間復(fù)雜度,一般是指執(zhí)行這個算法所需要的內(nèi)存空間。

41.C

42.C解析:在||運算中當(dāng)其左邊的表達式為真,右邊的表達式將不再執(zhí)行。主函數(shù)中,||左邊的表達式k=(n=b>a),2>1為真,所以n被賦值為1,接著k被賦值1,即||運算符左邊表達式為真,此時不再計算||右邊的表達式,因此m的值沒有被改變?nèi)詾?,最后的輸出結(jié)果1,0。所以,4個選項中選項C符合題意。

43.B解析:本題考查帶參數(shù)的宏的定義及相關(guān)運算:S=m+n+m+n*k=1+2+1+2*3=10。

44.A解析:本題考核的知識點是if-else語句的程序分析。我們首先看程序中if-else的匹配,由于C語言中規(guī)定else總是與最近的if搭配,因此程序中else與第二個訂搭配,即該if-else語句為第一個if語句的執(zhí)行部分,接著判斷第一個if后面括號里的表達式的值“a>b”為假('3>4'為假),因此不執(zhí)行后面if-else語句,程序?qū)?zhí)行下面的輸出語句輸出d,而d一直未被改變故為原來的值2,所以,4個選項中選項A符合題意。

45.D解析:一般來說,一種數(shù)據(jù)的邏輯結(jié)構(gòu)根據(jù)需要可以表示成多種存儲結(jié)構(gòu),因此,數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)不一定是一一對應(yīng)的。選項A中的說法是錯誤的。雖然計算機的存儲空間是向量式的存儲結(jié)構(gòu),但由于一種數(shù)據(jù)的邏輯結(jié)構(gòu)根據(jù)需要可以表示成多種存儲結(jié)構(gòu),例如,線性鏈表是線性表的鏈式存儲結(jié)構(gòu)。一般來說,性表的鏈式存儲結(jié)構(gòu)中,各數(shù)據(jù)結(jié)點的存儲序號是不連續(xù)的,并且各結(jié)點在存儲空間中的位置關(guān)系與邏輯關(guān)系也不一致。性鏈表中,各數(shù)據(jù)元素之間的前后件關(guān)系是由各結(jié)點的指針域來指示的。因此,數(shù)據(jù)的存儲結(jié)構(gòu)不一定是線性結(jié)構(gòu)。選項B中的說法也是錯誤的。雖然程序設(shè)計語言中的數(shù)組一般是順序存儲結(jié)構(gòu),但是,利用數(shù)組也能處理非線性結(jié)構(gòu)。例如,滿二叉樹與完全二叉樹是非線性結(jié)構(gòu),但對于滿二叉樹與完全二叉樹來說,根據(jù)完全二叉樹的性質(zhì)6,可以按層序進行順序存儲,即利用程序設(shè)計語言中的數(shù)組來存儲,這樣,不僅節(jié)省了存儲空間,又能方便地確定每一個結(jié)點的父結(jié)點與左右子結(jié)點的位置。對于一般的二叉樹來說,也可以將二叉樹中每一個結(jié)點的左指針、右指針以及數(shù)據(jù)域分別用三個數(shù)組中的對應(yīng)元素來存儲,即實際上也是利用了程序設(shè)計語言中的數(shù)組來處理二叉樹這樣的非線性結(jié)構(gòu)。選項C中的說法也是錯誤的。綜上所述,選項A、B與C中的說法都是錯誤的。

46.D

47.D解析:將—個字符常量放到一個字符變量中,實際上并不是把該字符本身放到內(nèi)存單元中去,而是將該字符的ASCII碼值放到存儲單元中。

48.C解析:C語言中可以使用typedef來重新定義已有的數(shù)據(jù)類型,相當(dāng)于為數(shù)據(jù)類型取個別名。

49.A解析:關(guān)系表中,每一行稱為一個元組,對應(yīng)表中的一條記錄;每一列稱為表中的一個屬性,對應(yīng)表中的一個字段;在二維表中凡能惟一標識元組的最小屬性集稱為該表的鍵或碼。

50.C解析:本題考查for循環(huán)。第一次循環(huán)前先判斷循環(huán)條件,此時i=0,j=1,i<j+1成立,循環(huán)第一次;第二次循環(huán)前先判斷循環(huán)條件,此時i=1,j=0,(j--是先使用j的值再減1),i<j+1不成立,結(jié)束循環(huán)。

51.C解析:用高級語言編寫的程序稱為“源程序”,而計算機只能識別和執(zhí)行由O和1組成的二進指令,所以高級語言必須先用—種稱為“編譯程序”的軟件,把源程序翻譯成二進制形式的“目標程序”。

52.A解析:當(dāng)運算符“/”的左右兩邊運算分量都是整數(shù)的時候,運算結(jié)果也是一個整數(shù),如果除不凈則舍去小數(shù)部分。若兩個運算分量有一個是實數(shù),才會返回真正除法上的實數(shù)結(jié)果。選項A中傳遞給sin()函數(shù)的參數(shù)表達式1/2計算出來的結(jié)果為整數(shù)0,所以不能正確計算出題目要求的值,而其余選項中,除號兩邊都至少有一個運算分量是實數(shù),故應(yīng)該選擇A。

53.C

54.A解析:本題考查邏輯與運算符&&。在C語言中使用運算符“&&”連接兩個表達式,也可以表示邏輯與運算符。在C語言中不允許出現(xiàn)a<=b<=c這種格式。

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

56.B解析:指針是一種用來存放變量地址的特殊變量。本題中指針變量P用于存放整型變量i的地址,改變*P的值即為改變i的值。又因為“&”和“*”兩個運算符的優(yōu)先級別相同,按自右而左的方向結(jié)合,所以*&j先進行&j運算,得j的地址,再進行*運算,取所得地址里面的值,故*&j與j等價。

57.D解析:C語言規(guī)定,對于二維數(shù)組,只可以省略第一個方括號中的常量表達式,而不能省略第二個方括號中的常量表達式:二維數(shù)組的一般定義格式是:類型說明符數(shù)組名[常量表達式][常量表達式]。

58.A解析:首先將八進制040轉(zhuǎn)換成二進制數(shù)000100000,在將此二進制數(shù)左移一位為001000000,輸出時轉(zhuǎn)換成八進制數(shù)100。

59.D

60.B解析:盡管C語言以傳值方式進行函數(shù)調(diào)用,但也可以通過傳遞指針的值(變量的地址)來達到修改實參變量值的目的,這是此題主要說明的問題。其次,應(yīng)注意表達式。(z++)的值是*z,其后的z++在程序中無實際作用。函數(shù)調(diào)用時,由于x,y和z分指向a,b和c,因此,*x,*y和*z就是a,b和c。第一次調(diào)用函數(shù)時,*x=a=10,*y=b=40,*z=c=20輸出結(jié)果為11,41,20,至此,已經(jīng)可以肯定選項B)是正確的。在第一次輸出后,a=11,b=41,c=20,第二次輸出為:12,42,20。注意:指針作為參數(shù)的函數(shù)調(diào)用的執(zhí)行過程。

61.C

62.B分別將N、M的宏定義代入NUM的表達式中,可以得到NUM=2*2+1+1=6,所以當(dāng)常數(shù)NUM作為for循環(huán)的終止條件時,應(yīng)當(dāng)循環(huán)6次。

63.D

64.C

65.D

66.A

67.A結(jié)構(gòu)體和共用體;在“聯(lián)合”中,各成員共享一段內(nèi)存空間,一個聯(lián)合變量的長度等于各成員中最長的長度。應(yīng)該說明的是,這里所謂的共享不是指把多個成員同時裝入一個聯(lián)合變量內(nèi),而是指該聯(lián)合變量可被賦予任一成員值,但每次只能賦一種值,賦入新值則沖去舊值

68.D按照m方式聲明的數(shù)組,系統(tǒng)會在數(shù)組尾部自動添加字符’\0’,因此m的長度比n大l。

69.D前序遍歷:ABDECF\n中序:DBEAFC\n后序:DEBFCA

70.D計算機能直接執(zhí)行的程序是可執(zhí)行程序,其擴展名為.exe。故本題答案為D選項。

71.A

\n本題考查帶參數(shù)宏的定義,運算符:(x)>(y)?(x):(y)當(dāng)表達式為真時輸出X,否則輸出Y,調(diào)用(MAX(a+b,c+d))*100時,(a+b=5)>(c+d=4),輸出a+b=5,所以x=5*100。

\n

72.C

73.D

74.D引用形式有以下三種:①結(jié)構(gòu)體變量.成員名;②(*p).成員名;③p→成員名。所以A、B、C答案都是正確的。故本題答案為D。

75.B

76.Dis

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論