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

下載本文檔

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

文檔簡介

2021-2022年內蒙古自治區(qū)巴彥淖爾市全國計算機等級考試C語言程序設計測試卷(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.假設所有變量均為整型,則表達式(a=2,b=5,b++,a+b)的值是()。

A.7B.8C.6D.2

2.有以下程序:#include<stdio.h>main{intx=4,y;do{y=x;if(!y)printf(“x”);elseprintf(“y”):x--;}while(x);}程序的輸出結果是()。A.xyyxB.yyyyC.yyxxD.yxyx

3.已知:intx,y;doublez;則以下語句中錯誤的函數(shù)調用是()。A.A.scanf("%d,%1x,%1e",&x,&y,&z);

B.scanf("%1d*%d&1f",&x,&y,&z);

C.scanf("%x%*d%o",&x,&y);

D.scanf("%x%o%6.2f",&x,&y,&z);

4.

5.

6.結構化程序設計主要強調的是()。

A.程序的規(guī)模B.程序的效率C.程序設計語言的先進性D.程序的易讀性

7.有以下程序:#include<stdio.h>#include<string.h>main(){printf(“%d\n”,strlen(“0\t\n\0C011\1”));}程序運行后的輸出結果是()。

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

8.有以下程序:#include<stdio.h>main(){inta=2,b=2,C=2;print{("%d\n",a/b&c);}程序運行后的輸出結果是()。A.0B.1C.2D.3

9.有以下程序floatfun(intx,inty){return(x+y);}main(){inta=2,b=5,c=8;printf(“%3.Of\n”,fun((int)fun(a+c,b),a-c));}程序運行后的輸出結果是

A.編譯出錯B.9C.21D.9

10.下面關于哈希(Hash,雜湊)查找的說法正確的是()

A.哈希函數(shù)構造的越復雜越好,因為這樣隨機性好,沖突小

B.除留余數(shù)法是所有哈希函數(shù)中最好的

C.不存在特別好與壞的哈希函數(shù),要視情況而定

D.若需在哈希表中刪去一個元素,不管用任何方法解決沖突都只要簡單地將該元素刪去即可

11.以下不能作為合法常量的是()。

A.'cd'B.1.234e04C.”\a”D.'\011'

12.有以下程序:#include<stdio.h>main(){FILE*fp;inta[10]={1,2,3},i,n;fp=fopen(“d1.dat”,“w”);for(i=0;i<3;i++)fprintf(fp,“%d”,a[i]);fprintf(fp,“\n”);fclose(fp);fp=fopen(“d1.dat”,“r”);fscanf(fp,“%d”,&n);fclose(fp);printf(“%d\n”,n);}程序的運行結果是()。

A.321B.12300C.1D.123

13.計算機識別.存儲和加工處理的對象被統(tǒng)稱為_________

A.數(shù)據(jù)B.數(shù)據(jù)元素C.數(shù)據(jù)結構D.數(shù)據(jù)類型

14.為了隱藏在文本框中輸入的信息,用占位符代替顯示用戶輸入的字符,需要設置的屬性是()。

A.ValueB.ControlSoureeC.InputMaskD.PasswordChar

15.已知A=10,B=20,下類表達式正確的是()。

A.C=(A++)*(--B)=200

B.A-=30

C.C=(A++)+(B--)=30

D.C=(++A)*(--B)=210

16.下列定義數(shù)組的語句中,正確的是()。A.#defineN10;intx[N];

B.intN=10;intx[N];

C.int:x[0.10];

D.intx[];.

17.設有以下定義uniondata{intd1;floatd2;}demo;則下面敘述中錯誤的是A.變量demo與成員d2所占的內存字節(jié)數(shù)相同

B.變量demo中各成員的地址相同

C.變量demo和各成員的地址相同

D.若給demo.d1賦99后,demo.d2中的值是99.0

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

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

19.在具有101個元素的順序表中查找值為x的元素結點時,平均比較元素的次數(shù)為()。

A.50B.51C.100D.101

20.表達式“(int)((double)9/2)-9%2”的值是()。

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

二、2.填空題(20題)21.下列程序的輸出結果是______。

10ngfun5(intn)

{longs;

if((n==1)‖(n==2))

s=2;

else

s=n+fun5(n-1);

return(s);

}

main()

{longx;

x=fun5(4);

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

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

23.Jackson方法是一種面向【】的結構化方法。

24.按照邏輯結構分類,結構可以分為線性結構和非線性結構,棧屬于______。

25.最簡單的交換排序方法是______。

26.下列程序段的輸出結果是【】。

main()

{charb[]="Hello,you";

b[5]=0;

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

}

27.二分法查找僅限于這樣的表:表中的數(shù)據(jù)元素必須有序,其存儲結構必須是______。

28.在樹形結構中,樹根結點沒有______。

29.排序是計算機程序設計中的一種重要操作,常見的排序方法有插入排序、______和選擇排序。

30.已有定義:charc=′′;inta=1,b;(此處c的初值為空格字符),執(zhí)行b=!c&&a;后b的值為【】。

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

#include<stdio.h>

main()

{structstru

{inta;

floatb;

chard[4];

};

printf("%d\n",sizeof(structstru));}

32.以下函數(shù)fun的功能是返回str所指字符串中以形參c中字符開頭的后續(xù)字符串的首地址,例如;str所指字符串為:Hello!,c中的字符為e,則函數(shù)返回字符串:ello!的首地址。若str所指字符串為空串或不包含c中的字符,則函數(shù)返回NULL。請?zhí)羁铡?/p>

char*fun(char*str,charc)

{intn=0;char*p=str;

if(p!=NULL)

while(p[n]!=c&&p[n]!='\O')n++;

if(p[n]='\0')returnNULL;

return(【】);

}

33.語句:x++;、++x;、x=x+1;、x=1+x;,執(zhí)行后都使變量x中的值增1,請寫出一條同一功能的賦值語句(不得與列舉的相同)【】。

34.下面程序的運行結果是【】。

main()

{inty,a;

y=2,a=1;

while(y--!=-1)

{do{a*=y;a++;}while(y--);}

printf("%d,%d",a,y);}

35.數(shù)據(jù)庫系統(tǒng)的三級模式分別為______模式、內部級模式與外部級模式。

36.下面程序的功能是兩個整數(shù)進行交換,請?zhí)羁铡?/p>

sub(int*x,int*y)

{【】

z=*x;*x=*y;*y=z;

return;}

main()

{intm,n,*t1,*t2;

scanf("%d,%d",&m,&n);

t1=&m;t2=&n;

【】

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

37.mystrlen函數(shù)的功能是計算str所指字符串的長度,并作為函數(shù)值返回。請?zhí)羁铡?/p>

intmystrlen(char*str)

{inti;

for(i=0;【】!='\0';i++);

return(i);}

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

#include<stdio.h>

msin()

{inti,n[]={0,0,0,0,0};

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

{n[i]=n[i-1]*2+1;

printf("%d",n[i]);

}

}

39.數(shù)據(jù)庫三級模式體系結構的劃分,有利于保持數(shù)據(jù)庫的【】。

40.下列程序段是從鍵盤輸入的字符中統(tǒng)計小寫字母的個數(shù),用換行符結束循環(huán)。請?zhí)羁铡?/p>

intn=0,c;

c=getchar();

while(c!='\n')

{if(______)

n++;

}

三、1.選擇題(20題)41.設有數(shù)組定義:chararray[]="China";則數(shù)組array所占的空間是()。

A.4個字節(jié)B.5個字節(jié)C.6個字節(jié)D.7個字節(jié)

42.以下能正確定義二維數(shù)組的是______。

A.inta[][3];

B.inta[][3]={2*3};

C.inta[][3]={};

D.inta[2][3]={{1),{2},{3,4}};

43.有以下程序:main(){inty=10;while(y--);printf("y=%d\n",y);}程序執(zhí)行后的輸出結果是()。

A.y=0B.y=-1C.y=1D.while構成無限循環(huán)

44.如果需要打開一個已經(jīng)存在的非空文件“Demo”進行修改,下面選項中正確的是

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

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

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

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

45.執(zhí)行以下的程序段后,m的值是______。inta[2][3]={{1,2,3},{4,5,6}};intm,*p;p=&a[0][0];m=p[4];

A.4B.5C.3D.不確定

46.下列敘述中錯誤的是()。

A.線性表是由n個元素組成的一個有限序列

B.線性表是一種線性結構

C.線性表的所有結點有且僅有一個前件和后件

D.線性表可以是空表

47.模塊本身的內聚是模塊獨立性的重要性度量因素之—。在7類內聚中,具有最強內聚的—項是______。

A.順序性內聚B.過程性內聚C.邏輯性內聚D.功能性內聚

48.下面四個選項中,均是不正確的八進制數(shù)或十六進制數(shù)的選項是

A.0160x8f018

B.0abc0170xa

C.010-0x110x16

D.0a127ff-123

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

A.一個邏輯數(shù)據(jù)結構只能有一種存儲結構

B.數(shù)據(jù)的邏輯結構屬于線性結構,存儲結構屬于非線性結構

C.一個邏輯數(shù)據(jù)結構可以有多種存儲結構,且各種存儲結構不影響數(shù)據(jù)處理的效率

D.一個邏輯數(shù)據(jù)結構可以有多種存儲結構,且各種存儲結構影響數(shù)據(jù)處理的效率

50.下面的程序段運行后,輸出結果是

inti,j,x=0;

staticinta[8][8];

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

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

a[i][j]=2*i+j;

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

x+=a[i][j];

printf("%d",x);

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

51.語句“printf("%d\n",12&012);”的輸出結果是______。

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

52.請選擇以下語句的輸出結果()。printf("%d\n",strlen("\t\"\065\xff\n"));

A.5B.14C.8D.輸出項不合法,無正常輸出

53.C語言結構體類型變量在程序運行期間

A.TC環(huán)境在內存中僅僅開辟一個存放結構體變量地址的單元

B.所有的成員一直駐留在內存中

C.只有最開始的成員駐留在內存中

D.部分成員駐留在內存中

54.下列哪個是面向對象程序設計不同于其他語言的主要特點?

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

55.定義int*swap()指的是______。

A.一個返回整型值的函數(shù)swap()

B.一個返回指向整型值指針的函數(shù)swap()

C.一個指向函數(shù)swap()的指針,函數(shù)返回一個整型值

D.以上說法均錯

56.有以下程序main(){inti=0,s=0;do{if(i%2){i++;continue;}i++;s+=i;while(i<7);printf("%d\n",s);}執(zhí)行后輸出的結果是

A.16B.12C.28D.21

57.關系表中的每一行記錄稱為一個()。

A.字段B.元組C.屬性D.關鍵碼

58.下面關于完全二叉樹的敘述中,錯誤的是______。

A.除了最后一層外,每_層上的結點數(shù)均達到最大值

B.可能缺少若干個左右葉子結點

C.完全二叉樹一般不是滿二叉樹

D.具有結點的完全二叉樹的深度為[log2n]+1

59.下面各選項中,均是C語言合法標識符的選項組是

A.33weautoB._23me_3ewC._433e_elseD.ER-DF32

60.閱讀下列程序,則執(zhí)行后的結果為#include"stdio.h"main(){intc[][4]={1,2,3,4,5,6,7,34,213,56,62,3,23,12,34,56};printf("%x,%x\n",c[2][2],*(*(c+1)+1));}

A.3e,6B.62,5C.56,5D.3E,6

四、選擇題(20題)61.

62.設有二元關系R和三元關系s,下列運算合法的是()。

A.R∩SB.R∪SC.R-SD.R×S

63.在軟件設計中,不屬于過程設計工具的是()。

A.PDLB.DFD圖C.PAD圖D.N—S圖

64.

65.設有下列二叉樹:對此二叉樹前序遍歷的結果為()

A.ZBTYCPXAB.ATBZXCYPC.ZBTACYXPD.ATBZXCPY

66.有以下程序

67.

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

#include<stdio.h>

main()

{inta=2,b=3,P;

p=f(a,b);

printf(”%d”,p);

}

intf(a,b)

{intc;

if(a>b)c=1;

elseif(a==b)c=0;

elsec=-l;

return(c);

}

A.-lB.0C.1D.2

68.計算機能直接執(zhí)行的程序是()。A.可執(zhí)行程序B.目標程序C.匯編程序D.源程序

69.軟件(程序)調試的任務是()。

A.診斷和改正程序中的錯誤B.盡可能多地發(fā)現(xiàn)程序中的錯誤C.發(fā)現(xiàn)并改正程序中的所有錯誤D.確定程序中錯誤的性質

70.

71.

有以下程序

#include<stdio.h>

main

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

x=(a^b)&C;printf("%d",x);

}

程序的運行結果是()。

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

72.下列敘述中正確的是()。A.A.只能在循環(huán)體內和switch語句體內使用break語句B.cotinue語句的作用是結束整個循環(huán)的執(zhí)行

C.在循環(huán)體內使用break語句或continue語句的作用相同

D.從多層循環(huán)嵌套中退出時,只能使用got0語句

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

A.有一個以上根結點的數(shù)據(jù)結構不一定是非線性結構

B.只有一個根結點的數(shù)據(jù)結構不一定是線性結構

C.循環(huán)鏈表是非線性結構

D.雙向鏈表是非線性結構

74.C語言中最簡單的數(shù)據(jù)類型包括()。

A.整型、實型、邏輯型B.整型、實型、字符型C.整型、字符型、邏輯型D.字符型、實型、邏輯型

75.

76.

77.

78.

79.非空循環(huán)鏈表所表示的數(shù)據(jù)結構()。

A.有根結點也有葉子結點B.沒有根結點但有葉子結點C.有根結點但沒有葉子結點D.沒有根結點也沒有葉子結點

80.

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:通過某種方式實現(xiàn)兩個變量值的交換,規(guī)定不允許增加語句和表達式。例如變量num1中的值原為2,num2中的值原為1,程序運行后,num1中的值為l,num2中的值為2。請修改程序中的錯誤,使它能得出正確的結果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結構。試題程序:

六、程序設計題(1題)82.請編一個函數(shù)fun(char*str),該函數(shù)的功能是把字符串中的內容逆置。例如,字符串中原有的字符串為asdfg,則調用該函數(shù)后,串中的內容為gfdsa。請勿改動main()函數(shù)和其他函數(shù)中的任何內容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.B

2.B本題考查do-while語句和if…else語句。do-while語句的功能是先執(zhí)行循環(huán)體再判斷條件,所以,先判斷if語句的條件,y=-4,!y為邏輯0,條件不成立,執(zhí)行下面的else語句,輸出y,然后將x的值減1,x=3,條件不成立,執(zhí)行下面的else語句,輸出Y,然后將X的值減1,x=2,滿足while循環(huán)條件,繼續(xù)循環(huán)。第三次循環(huán):先判斷if語句的條件,y=2,!y為邏輯0,條件不成立,執(zhí)行下面的else語句,輸出y,然后將X的值減1,x=l,滿足while循環(huán)條件,繼續(xù)循環(huán)。第四次循環(huán):先判斷if語句的條件,y=-1,!y為邏輯0,條件不成立,執(zhí)行下面的else語句,輸出Y,然后將x的值減1,x=0,不滿足while循環(huán)條件,結束循環(huán)。所以B正確。

3.BB項的格式應該為scanf("%1d*%d%1f",&x,&y,&z);

4.B

5.B

6.D解析:程序不僅是編寫完就結束了,為了測試和維護程序,往往還有其他人閱讀和跟蹤程序,因此程序設計的風格應該強調簡單和清晰,即程序的易讀性,“清晰第一,效率第二”。

7.AC語言中的轉義字符也是一個字符。字符串“0\\t\\n\\0C011\\1”,共有字符‘0’、‘\\t’、‘\\n’3個字符。strlen遇到‘\\0’字符計數(shù)結束,因此計數(shù)為3。故本題答案為A選項。

8.A根據(jù)C語言運算符的優(yōu)先級與結合性,先計算a/b,結果為l,再將a/b的結果與C做按位與運算,即l與2做按位與運算,其結果為0。

9.B解析:fun()函數(shù)是將傳進來的兩個整型參數(shù)相加,把和作為函數(shù)值返回,注意返回值為float型。在主函數(shù)調用了兩次fun()函數(shù),第一次調用時把表達式“a+c”和變量“b”的值求和,得到15轉換為15.0作為函數(shù)的返回值。第二次調用把第一次調用的返回值通過強制類型轉換成int型15,再和表達式“a-c”相加,得到結果9,轉換成float型作為函數(shù)值返回。由于輸出格式符為“%3.of輸出時沒有小數(shù)位,故輸出為9。

10.C

11.A字符常量是使用單引號標注的單個字符,選項A錯誤;選項B屬于浮點數(shù)常量,正確;選項C屬于轉義字符常量,正確;選項D屬于轉義字符,代表八進制數(shù)011的ASCII值的字符,正確。本題答案為A選項。

12.D程序首先將數(shù)組a中的元素1、2、3分別寫入了d1.dat文件中,再將d1.dat文件中的數(shù)據(jù)“123”整體寫到變量n的空間中,所以輸出的數(shù)據(jù)為123。故本題答案為D選項。

13.A

14.DD?!窘馕觥勘究虻腜asswordChar屬性用來指定文本框是顯示用戶輸入的字符還是顯示占位符,指定用做占位符的字符。

15.C

16.A[解析]數(shù)組說明的一般形式為:類型說明符數(shù)組名[常量表達式]。B)中N是變量,不能用變量定義數(shù)組長度。C)選項中數(shù)組長度是非法的一串數(shù)字。定義數(shù)組時必須為其指明長度,D)選項中數(shù)組長度為空,所以非法。\u3000\u3000

17.D解析:聯(lián)合體的所有成員共占同一段內存,所以聯(lián)合體變量的長度與它的最長成員所占長度…致,本題中float所占內存字節(jié)數(shù)為4,而\u3000int類型在TurboC\u30002.0中是占2字節(jié)、在VisualC++6.0中占4字節(jié),所以int類型所占內存字節(jié)數(shù)不會超過float,那demo就與成員d2所占字節(jié)數(shù)是相同的,選項A的說法正確。聯(lián)合體的所有成員的首地址都是相同的,和聯(lián)合體變量的地址一致。故選項B和C都是正確的。由于int類型數(shù)據(jù)和float類型數(shù)據(jù)在內存中的存放格式是不一樣的,所以給d1賦99后,d2中不會得到99.0這個值。故選項D不正確,答案應該選擇D。

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

19.B

20.B先將int型數(shù)據(jù)9強制轉換成double型,然后除以2,得到的結果與double型保持一致,即4.5;然后將4.5強制轉換成int型數(shù)據(jù)4,再計算9%2的值為1;最后計算4-1的值為3。故本題答案為B選項。

21.99解析:考查ifelse語句,n==4不滿足條件,所以fun5(4)=4+fun5(3),n==3也不滿足條件,fun5(3)=3+fun5(2),n==2滿足條件fun5(2)=2,故x=4+3+2=9。

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

23.數(shù)據(jù)結構數(shù)據(jù)結構解析:Jackson方法是—‘種面向數(shù)據(jù)結構的結構化方法。

24.線性結構線性結構解析:數(shù)據(jù)的邏輯結構是指數(shù)據(jù)元素之間的邏輯關系,分為線性結構和非線性結構。常見的線性結構有線性表、棧和隊列等,常見的非線性結構有樹、二叉樹等。

25.冒泡排序冒泡排序解析:交換排序是指借助數(shù)據(jù)元素之間的互相交換進行排序的一種方法。冒泡排序是一種最簡單的交換排序方法,它是通過相鄰元素之間的相互交換逐步將線性表變成有序。

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

27.順序存儲(順序方式存儲)順序存儲(順序方式存儲)解析:二分法查找對表的要求是有序的順序表,即第一要求是數(shù)據(jù)元素有序,第二要求是按順序方式存儲。

28.前件前件

29.交換排序交換排序解析:所謂排序是指將一個無序序列整理成按值非遞減順序排列成的有序序列,常用的排序方法有:交換排序、插入排序和選擇排序。其中交換排序包括冒泡排序和快速排序,插入排序包括簡單插入排序和希爾排序,選擇排序包括直接選擇排序和堆排序。

30.11解析:字符空格的ASCII碼不為0,所以本題中表達式\ue008!c\ue009的值為0,b=0&&1的結果顯然為0。

31.14

32.&P(n)或p+n&P(n)或p+n解析:因為n被初始化為0、p被初始化指向str所指字符串的首地址,所以while循環(huán)的功能是從str所指字符串的第1個字符開始比較,若等于c或等于字符串結束符'\\0'就跳出循環(huán)。故循環(huán)結束后,若p[n]為'\\0',則證明str所指字符串不包含c中的字符,應該返回NULL,否則應該返回p[n]的地址值。返回NULL在第2條if語句中已經(jīng)實現(xiàn),所以我們應該填入的表達式為p[n]的地址值,即&p[n]或p+n。

33.x+=1;

34.1-21,-2解析:題中外層while循環(huán)的循環(huán)條件是y--!=-1,即y>=0;內層do…while循環(huán)的循環(huán)條件是y--即y-->0,y>=1。注意:break和continue語句在循體中的作用。

35.概念(或概念級)概念(或概念級)

36.intz;sub(t1t2);

37.*(str+i)或str[i]*(str+i)或str[i]解析:str是指針變量,它指向字符型數(shù)據(jù),在循環(huán)過程中,可以用*(str+i)來訪問字符串中的第i個元素,判斷是否是結束標志,如果不是,i=i+1,繼續(xù)取下一個元素進行判斷,直到*(str+i)的值為'\\0'為止,也可以用下標的方式引用字符,如*(str+i)相當于str[i]。

38.1371513715解析:程序中n是一個有5個元素,且元素值全為0的數(shù)組。在for循環(huán)中,當i=1時,n[1]=n[0]*2+1,此時n[1]=1;i=2時,n[2]=n[1]*2+1,此時n[2]=3;i=3時,n[3]=n[2]*2+1,此時n[3]=7;i=4時,n[4]=n[3]*2+1,此時n[4]=15,循環(huán)結束。輸出函數(shù)中%d后有空格,因此輸出結果為13715。

39.數(shù)據(jù)獨立性數(shù)據(jù)獨立性解析:數(shù)據(jù)庫的三級模式體系結構把數(shù)據(jù)的組織管理工作進行了劃分,把數(shù)據(jù)的具體組織留給DBMS管理,使用戶能邏輯地、抽象地處理數(shù)據(jù),而不必關心數(shù)據(jù)在計算機中的具體表示方式與存儲方式,保證了數(shù)據(jù)的獨立性。

40.c>='a'&&c<='z'c>='a'&&c<='z'解析:小寫字母在內存中以ASCII的形式存入,且從a到z依次遞增,所以可以直接用c>='a'&&c<='z'判斷是不是小寫字母;c!='\\n'判斷是用換行符結束循環(huán)。

41.C解析:在定義字符數(shù)組時,可以用一個字符串作為初值,對數(shù)組進行初始化。要注意的是,數(shù)組array的長度不是5,而是6,因為系統(tǒng)將自動在字符串常量的后面加上一個'\\0',因此,題干中的初始化語句與chararray[]={'C','h','i','n','9','\\0'};等價。

42.B解析:(1)二維數(shù)組的定義

二維數(shù)組的定義方式為:類型說明符數(shù)組名[常量表達式][常量表達式]。

二維數(shù)組在內存中是按行優(yōu)先的順序存放的,即先存放第一行的元素,再存放第二行的元素,依次類推。

(2)二維數(shù)組元素的引用

二維數(shù)組元素的表示形式為:數(shù)組名[下標][下標],下標可以是整型常量或整型表達式;其范圍為:0~(常量表達式-1)。

(3)二維數(shù)組的初始化

可以用以下方法對二維數(shù)組元素初始化。

①分行給二維數(shù)組賦初值,例如;

inta[2][2]=({1,2),{3,4));

這種賦值方式比較直觀,把第1個大括號內的數(shù)據(jù)賦給第1行的元素,第2個大括號內的數(shù)據(jù)賦給第2行的元素,即按行賦值。

②可以將所有數(shù)據(jù)寫在一個大括號內,按數(shù)組排列的順序對各個元素賦初值。

③可以對部分元素賦初值,沒有初始化的元素值為0。

④如果對全部數(shù)組元素賦初值,則定義數(shù)組時對第一維的長度可以不指定,但第二維的長度不能省略。

43.B解析:本題中有一個陷阱,很多考生會根據(jù)程序的書寫格式來判斷:while循環(huán)的循環(huán)體為printf('y=%d\\n',y);語句。其實while的循環(huán)體是一條空語句,即y--后面的那個分號就是while的循環(huán)體。所以本題只要弄清楚表達式y(tǒng)--何時為“假”,即等于0,就能得出結果了。因為--運算符是后綴形式,所以表達式y(tǒng)--的值是y自減之前的值,即y等于。時,表達式y(tǒng)--就等于0了。但此時的y還要被減1,所以循環(huán)結束后,y的值為-1。故應該選擇B。

44.D

45.B解析:程序中定義了一個指向整型變量的指針變量,并對其賦值為二維整型數(shù)組a的首元素的地址。p[4]等階于*(p-4),即二維數(shù)組a中第四個元素的值,而a是一個2*3的二維數(shù)組,其第四個元素為a[1][1],即5。

46.CC.【解析】線性表是一種線性結構,由n(n≥0)個元素組成,所以線性表可以是空表。但是在線性表中,第一個結點沒有前件,最后一個結點沒有后件,其他結點有且只有一個前件和后件,所以選項C.是錯誤的。

47.D解析:內聚性是—個模塊內部各元素間彼此結合的緊密程度的度量。內聚共有7類,它們之間的內聚性由弱到強排列順序為:偶然內聚、邏輯內聚,時間內聚、過程內聚、通信內聚、順序內聚和功能內聚。

48.D解析:八進制中,不可能包括8以上的數(shù)字,它的范圍只在07之間,以0開頭。同樣,十六進制是以0x開頭,數(shù)字在0~9和A~F之間。

49.D解析:數(shù)據(jù)的邏輯結構是對數(shù)據(jù)元素之間的邏輯關系的描述,它可以用一個數(shù)據(jù)元素的集合和在此集合中定義的若干關系來表示。數(shù)據(jù)的邏輯結構在計算機存儲空間中的存放形式稱為數(shù)據(jù)的存儲結構(也稱數(shù)據(jù)的物理結構)。一種數(shù)據(jù)的邏輯結構根據(jù)需要可以表示成多種存儲結構,常用的存儲結構有順序、鏈接等存儲結構。但是不同的存儲結構的數(shù)據(jù)的處理效率不同。

50.C解析:本題主要考查的是用二維數(shù)組首地址和下標來引用二維數(shù)組元素的方法。通過分析可知,程序中的雙重循環(huán)定義了一個如下的二維數(shù)組:

012

234

456

由于數(shù)組的下標是從0開始的,所以二維數(shù)組元素a[i][j]表示的是二維數(shù)組a的第i+1行、第j+1列對應位置的元素。

51.B解析:012是八進制數(shù),轉換成十進制為10,12&10轉換成二進制為00001100&00001010=00001000,00001000轉換成十進制為8。

52.A解析:本題考查用strlen函數(shù)計算字符串長度的方法。該字符串中包含的字符是:'\\t'(跳格符)、'\\''(雙引號)、'\\065'(ASCII值為八進制065,也即十進制為53的字符)、'\\xff'(ASCII值為十六進制ff,也即十進制為255的字符)、'\\n'(換行符)。

53.B解析:結構體類型的變量在程序運行期間要作為一個整體占用連續(xù)的內存單元。

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

55.B解析:一個函數(shù)可以帶回—個整型值、字符值、實型值等,但也可以帶回指針型數(shù)據(jù),即地址。本題的定義中,包括括號和*號,由于()優(yōu)先級高于*。故它是一個返回整型指針的函數(shù)。

56.A解析:在循環(huán)體中有一條if語句,其后面表達式為“i%2”,當i的值為奇數(shù)時,其值為真,執(zhí)行其后面的語句,i的值加1,重新開始循環(huán),當i的值為偶數(shù)時,“i%2”為假,執(zhí)行“i++;s+1”。在循環(huán)中i為偶數(shù)時的值分別為0、2、4、6,加1過后的值分別為1、3、5、7,s中存放的是它們的和,值為16.所以,A選項為所選。

57.BB)【解析】在關系表中,每一列稱為一個屬性,對應表中的一個字段;每一行稱為一個元組,對應表中的一條記錄。

58.B解析:滿二叉樹指除最后一層外每一層上所有結點都有兩個子結點的二叉樹。完全二叉樹指除最后一層外,每一層上的結點數(shù)均達到最大值,在最后一層上只缺少右邊的若干子結點(葉子結點)的二叉樹。

59.B解析:合法的標識符是由字母、數(shù)字和下劃線組成,并且第一個字符必須為字母或下劃線,用戶定義的標識符不能與關鍵字相同。選項A),數(shù)字不能為第一個字母,auto為關鍵字;選項C)中,也是數(shù)字不能為第一個字母,else為關鍵字;選項D)中負號不合法。

60.A解析:數(shù)組a[5][5],0<=i<5,0<=j<5,則可以用5種表達式來引用,a[i][j],*a(a[i]+j),*(*(a+i)+j),(*(a+i))[j],*(&a[0][0]+5*i+j)。數(shù)組的下限為0,%后面為小寫的x,所以輸出的結果為小寫字母表示的十六進制。

61.C

62.D本題給出的兩個關系R與S的表結構是不同的(R是二元關系,S是三元關系),它們不能進行∩、∪、一運算。而兩個不同結構的關系是可以進行笛卡兒積(×)運算的。

63.B常見的過程設計工具有圖形土具(程序流程圖、N—S圖、PAD圖、HIP0圖)、表格工具(判定表)和語言工具(PDL)。DFD是數(shù)據(jù)流圖,是描述數(shù)據(jù)處理過程的工具。

64.C

65.B解析:所謂二叉樹的前序遍歷(DLR)是指在訪問根結點、遍歷左子樹與

溫馨提示

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

評論

0/150

提交評論