2021年廣東省深圳市全國計算機等級考試C語言程序設計測試卷一(含答案)_第1頁
2021年廣東省深圳市全國計算機等級考試C語言程序設計測試卷一(含答案)_第2頁
2021年廣東省深圳市全國計算機等級考試C語言程序設計測試卷一(含答案)_第3頁
2021年廣東省深圳市全國計算機等級考試C語言程序設計測試卷一(含答案)_第4頁
2021年廣東省深圳市全國計算機等級考試C語言程序設計測試卷一(含答案)_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021年廣東省深圳市全國計算機等級考試C語言程序設計測試卷一(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.計算機算法必須具備輸入、輸出和()等5個特性。

A.可行性、可移植性和可擴充性B.可行性、確定性和有窮性C.確定性、有窮性和穩(wěn)定性D.易讀性、穩(wěn)定性和安全性

2.若已定義:“inta[9],*p=a;”,并在以后的語句中未改變p的值,不能表示a[1]地址的表達式是______。

A.p+1B.a+1C.a++D.++p

3.在E-R圖中,用來表示實體的圖形是______。A.矩形B.橢圓形C.菱形D.三角形

4.若有如下函數(shù)定義:doublefun(intx,inty){return(x+y);}return語句中表達式值的類型與說明的類型不一致,則以下敘述中正確的是()。

A.運行時出錯B.函數(shù)返回的值為int型C.編譯出錯D.函數(shù)返回的值為double型

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

A.{;}B.a=0,b=0,c=0;C.if(a>0);D.if(b==0)m=1;n=2;

6.以下選項中,能用作用戶標識符的是()。

A._0_B.8_8C.voidD.unsigned

7.已知有double型變量x=2.5,y=4.7,整型變量a=7,則表達式x+a%3*(int)(x+y)%2/4的值是()。

A.2.4B.2.5C.2.75D.0

8.將兩個字符串連接起來組成一個字符串時,選用()函數(shù)。A.strlen()B.strcpy()C.strcat()D.strcmp()

9.有以下程序voidf(int*x,int*y){intt;t=*x;*x=*y;*y=t;}main(){inta[8]={1,2,3,4,5,6,7,8},i,*p,*q;p=a;q=&a[7];while(p<q){f(p,q);p++;q--;}for(i=0;i<8;i++)printf("%d,",a[i]);}程序運行后的輸出結果是

A.8,2,3,4,5,6,7,1,

B.5,6,7,8,1,2,3,4,

C.1,2,3,4,5,6,7,8,

D.8,7,6,5,4,3,2,1

10.對長度為n的線性表排序,在最壞情況下,比較次數(shù)不是n(n-1)/2的排序方法是()。

A.快速排序B.冒泡排序C.直接插入排序D.堆排序

11.若有定義“doublex,y,*px,*py;”,執(zhí)行了“px=&x;py=&y;”之后,正確的輸入語句是()。

A.scanf(“%lf%le”,px,py);

B.scanf(“%f%f”,&x,&y);

C.scanf(“%f%f”,x,y);

D.scanf(“%lf%lf”,x,y);

12.有以下程序:Main(){{intx,y,z;x=y=1;z=x++,y++,++y;print(“%d,%d,%d”,x,y,z);}程序運行后的輸出結果是()。A.2,3,3B.2.3.2C.2,3.1D.2.2.1

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

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

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

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

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

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

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

15.若有定義:“inta[2][3];”,則對a數(shù)組的第i行第j列元素的正確引用為()。

A.*(*(a+i)+j)B.(a+i)[j]C.*(a+i+j)D.*(a+i)+j

16.以下敘述錯誤的是()。

A.算術運算符中不包含“=”運算符

B.模運算符“%”是c語言基本的算術運算符

C.算術運算符中只有“*”、“/”優(yōu)先級高于關系運算符

D.自加和自減運算符只能用于變量,而不能用于常量或表達式

17.有以下程序:#include<stdio.h>voidfun(char*t,char*s){while(*t!=0)t++;while((*t++=*s++)!=0);}main(){charss[10]=“acc”,aa[10]=“bbxxyy”;fun(ss,aa);printf(“%s,%s\n”,ss,aa);}程序的運行結果是()。

A.acc,bbxxyy

B.accbbxxyy,bbxxyy

C.accxxyy,bbxxyy

D.accxyy,bbxxyy

18.

19.有以下程序:#include<stdio.h>intchange(int*data){*data=*data%2;return(*data)+1;}main(){intdata=12;change(&data);printf(“%d,”,data);data=change(&data);printf(“%d,”,data);}程序運行后的輸出結果是()。

A.0,0,B.1,2,C.12,13,D.0,1,

20.下列關于C語言數(shù)據(jù)文件的敘述中正確的是A.文件由ASCII碼字符序列組成,C語言只能讀寫文本文件

B.文件由二進制數(shù)據(jù)序列組成,C語言只能讀寫二進制文件

C.文件由記錄序列組成,可按數(shù)據(jù)的存放形式分為二進制文件和文本文件

D.文件由數(shù)據(jù)流形式組成,可按數(shù)據(jù)的存放形式分為二進制文件和文本文件

二、2.填空題(20題)21.在面向?qū)ο蠓椒▽W中,直接反映了用戶對目標系統(tǒng)的要求的模型是【】。

22.語句printf("%f\n",13.0*(1/5));的輸出結果為【】。

23.下列程序?qū)⒍S數(shù)組a的行和列元素互換后存放到另一個二維數(shù)組b中。請?zhí)羁铡?/p>

main()

{inta[2][3]={{1,2,3},{4,5}},b[3][2],i,j;

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

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

}

}

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

#include<stdio.h>

main()

fintx=0;

sub(&x,16,2);

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

}

sub(int*a,intn,intk)

{if(k<=n)sub(a,n/2,2*k);

*a+=k;

}

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

26.數(shù)據(jù)結構分為邏輯結構與存儲結構,線性鏈表屬于【】。

27.下列程序執(zhí)行輸出的結果是______。

#include<stdio.h>

f(intA)

{intb=0;

staticc=7;

a=c++;b++;

return(A);

}

main()

{inta=2,i,k;

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

k=f(a++);

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

}

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

#include<stdio.h>

main()

{inta,b,c;

a=3;b=4;c=5;

if(a>b)

if(a>c)

printf("%d",a);

elseprintf("%d",b);

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

}

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

fun(intt[],intn)

{inti,m;

if(n==1)returnt[0];

elseif(n>=2){m=fun(t,n-1);returnm;}

}

main()

{inta[]={11,4,6,3,8,2,3,5,9,2};

printf("%d\n",fun(a,10));

}

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

31.當運行以下程序時,輸入abcd,程序的輸出結果是:()。

insert(charstr[])

{inti;

i=strlen(str);

while(i>0)

{str[2*i]=str[i];str[2*i-1]='*';i--;}

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

}

main()

{charstr[40];

scanf("%s",str);insert(str);

}

32.x、y、x均為int型變量,描述“x、y和z中至少有兩個為正數(shù)”的表達式是______。

33.軟件的可移植性是用來衡量軟件【】的重要尺度之一。

34.在關系模型中,二維表的行稱為______。

35.設有如下宏定義

#defineMYSWAP(z,x,y)

{z=x;x=y;y=z;}

以下程序段通過宏調(diào)用實現(xiàn)變量a,b內(nèi)容交換,請?zhí)羁铡?/p>

floata=5,b=16,c;

MYSWAP(【】a,b);

36.數(shù)據(jù)模型是用來描述數(shù)據(jù)庫的結構和語義的,數(shù)據(jù)模型有概念數(shù)據(jù)模型和結構數(shù)據(jù)模型兩類,E-R模型是【】

37.下列程序段中循環(huán)體的執(zhí)行次數(shù)是______。

a=15;

b=0;

do{b+=2;a-=2+b;}while(a>=0);

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

#include<stdio.h>

main()

{ints[]={1,2,3,4},i;

intx=0;

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

{x=sb(s,x);

printf("%d",x);}

printf("\n");}

sb(s1,y)

int*s1,y;

{staticinti1=3;

y=s1[i1];

i1--;

return(y);}

39.下列程序運行后的輸出結果是______。

#include<stdio.h>

main()

{chars[20];

scanf("%s",s);

printf("%s",s);

}

運行程序,輸入HOWAREYOU。

40.數(shù)據(jù)庫系統(tǒng)中實現(xiàn)各種數(shù)據(jù)管理功能的核心軟件是______。

三、1.選擇題(20題)41.下面語句的輸出結果是_______。printf("%d\n",strlen("\t\"\065\xff\n"));

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

42.下列程序執(zhí)行后輸出的結束是______。intd=1;fun(intp){intd=5;d+=p++;printf("%d,",d);}main(){inta=3;fun(a);d+=a++;printf("%d\n",d);}

A.8,12B.9,13C.8,4D.9,5

43.已定義c為字符型變量,則下列語句中正確的是()。

A.c='97'B.c="97"C.c=97D.c="a"

44.數(shù)據(jù)庫系統(tǒng)的核心是()A.數(shù)據(jù)模型B.數(shù)據(jù)庫管理系統(tǒng)C.軟件工具D.數(shù)據(jù)庫

45.設有下列二叉樹:

對此二叉樹后序遍歷的結果為

A.ABCDEFB.BDAECFC.ABDCEFD.DBEFCA

46.若有如下程序段,其中s、a、b、c均已定義為整型變量,且a、c均已賦值(c大于0)s=a;for(b=1;b<=c;b++)s=s+1;則與上述程序段功能等價的賦值語句是()。

A.s=a+b;B.s=a+c;C.s=s+c;D.s=b+c;

47.以下敘述中錯誤的是______。

A.用戶所定義的標識符允許使用關鍵字

B.用戶所定義的標識符應盡量做到“見名知意”

C.用戶所定義的標識符必須以字母或下劃線開頭

D.用戶所定義的標識符中,大、小寫字母代表不同標識

48.數(shù)字字符0的ASCⅡ值為48,若有以下程序:main(){chara='1',b='2';printf("%c,",b++);printf("%d\n",b-A);}程序運行后的輸出結果是()。

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

49.以下程序的輸出結果是______。main(){char*s="121";intk=0,a=0,b=0;do{k++;if(k%2==0){a=a+s[k]-'\0';continue;}b=b+s[k]-'\0';a=a+s[k]-'\0';}while(s[k+1]);printf("k=%da=%db=%d\n",k,a,b);}

A.k=3a=98b=49

B.k=3a=99b=50

C.k=2a=99b=50

D.k=2a=98b=49

50.標有/$$$/的語句的執(zhí)行次數(shù)是______。inty,i;for(i=0;i<20;i++){if(i%2==0)continue;y+=i;/$$$/;}

A.20B.19C.10D.9

51.有以下程序:#include<stdio.h>main(){inta,b,d=25;a=d/10%9;b=a&&(-1);printf("%d,%d\n",a,b);}程序運行后的輸出結果是()。

A.6,1B.2,1C.6,0D.2,0

52.在C語言中,形參的缺省存儲類是

A.autoB.registerC.staticD.extern

53.下面程序段中,輸出*的個數(shù)是char*s="\ta\018bc";for(;*s!='\0';s++)printf("*");

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

54.設有定義:inta=2,b=3,c=4;,則以下選項中值為0的表達式是

A.(!a==1)&&(!b==0)

B.(a<b)&&!c‖1

C.a&&b

D.all(b+b)&&(c-a)

55.以下程序的輸出結果是()。#include<stdio.h>main(){inta,i;a=0;for(i=1;i<5;i++){switch(i){case0:case3:a+=2;case1:case2:a+=3;default:a+=5;}}printf("%d\n",a);}

A.31B.13C.10D.20

56.下列程序的運行結果是()。#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

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

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

58.在順序表(3,6,8,10,12,15,16,18,21,25,30)中,用二分法查找關鍵碼值11,所需的關鍵碼比較次數(shù)為______。

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

59.sizeof(float)是()。

A.一種函數(shù)調(diào)用B.一種函數(shù)定義C.一個浮點表達式D.一個整型表達式

60.以下數(shù)據(jù)結構中不屬于線性數(shù)據(jù)結構的是______。

A.隊列B.線性表C.二叉樹D.棧

四、選擇題(20題)61.若要求定義具有10個int型元素的一維數(shù)組a,則以下定義語句中錯誤的是()。

62.

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

A.Zha0,m,85,90,Qian,f,95,92

B.Zha0,m,85,90,Zha0,m,85,90

C.Qian.f,95,92,Qian,f,95,92

D.Qian,f,95,92,Zha0,m,85,90

64.對長度為n的線性表排序,在最壞情況下'比較次數(shù)不是n(n一1),2的排序方法是()。

A.快速排序B.冒泡排序C.直接插入排序D.堆排序

65.

66.

67.面向?qū)ο蠓椒ㄖ?,繼承是指()。

A.一組對象所具有的相似性質(zhì)B.一個對象具有另一個對象的性質(zhì)C.各對象之間的共同性質(zhì)D.類之間共享屬性和操作的機制

68.

69.

70.

71.(12)下列敘述中正確的是______。

A.線性表是線性結構

B.棧與隊列是非線性結構

C.線性鏈表是非線性結構

D.二叉樹是線性結構

72.

73.有以下程序:

#include<stdio.h>

main()

{chara[20],b[20],c[20];

scanf("%s%s",a,b);

gets(c);

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

}

程序運行時從第一列開始輸入:

Thisisacat!<回車>

則輸出結果是()。

A.Thisisacat!

B.Thisisa

C.Thisisacat!

D.Thisisacat!

74.以下不能輸出字符A的語句是()。(注:字符A的ASCIl碼值為65,字符a的ASCIl碼值為97)

75.有如下程序:

main()

{intx=1,a=0,b=0;

switch(x)

{

case0:b++;

casel:a++;

case2:a++;b++;

}

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

}

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

A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2

76.有三個關系R、S和T如下:

則由關系R和s得到關系T的操作是()。

A.自然連接B.并C.交D.差

77.以下程序的輸出結果是()。main{inta=3:printf("%d\n",(a+a-=a*a));}A.-6B.12C.0D.-12

78.

79.有以下程序:

以上程序執(zhí)行后abc.dat文件的內(nèi)容是()。

A.ChinaB.ChinangC.ChinaBeijingD.BeijingChina

80.以下程序的輸出結果是______。main(){charst[20]="hello'、0\t\\";printf("%d%d\n",strlen(st),sizeof(st));}

A.99B.520C.1320D.2020

五、程序改錯題(1題)81.下列給定程序中,函數(shù)fun()的功能是:將長整型數(shù)中各位上為奇數(shù)的數(shù)依次取出,構成一個新數(shù)放在t中。高位仍在高位,低位仍在低位。例如,當s中的數(shù)為87653142時,t中的數(shù)為7531。請改正程序中的錯誤,使它能得出正確的結果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結構!試題程序:

六、程序設計題(1題)82.請編寫函數(shù)proc(),該函數(shù)的功能是:將M行N列的二維數(shù)組中的數(shù)據(jù),按行的順序依次放到一維數(shù)組中,一維數(shù)組中數(shù)據(jù)的個數(shù)存放在形參n所指的存儲單元中。例如,若二維數(shù)組中的數(shù)據(jù)為:132333431424344415253545則一維數(shù)組中的內(nèi)容應該是132333431424344415253545。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.B

2.C

3.A解析:在E-R圖中,用三種圖框分別表示實體、屬性和實體之間的聯(lián)系,其規(guī)定如下:用矩形框表示實體,框內(nèi)標明實體名;用橢圓狀框表示實體的屬性,框內(nèi)標明屬性名;用菱形框表示實體間的聯(lián)系,框內(nèi)標明聯(lián)系名。所以,選項A正確。

4.D題干中“x+y”是整型,函數(shù)的返回值是double類型,由于整型可以自動轉換成double類型,因此函數(shù)值返回時自動轉換成double類型。故本題答案為D選項。

5.D解析:在if后面只能有一條語句,或一條復合語句,即用花括號將多條語句括起來。選項D)中沒有將兩條語句括起來,不能看成一條語句。

6.AC語言的標識符由字母、數(shù)字、下劃線組成,且第1個字符必須是字母或下劃線。另外,關鍵字不能作為標識符。B選項中以數(shù)字8開頭,所以錯誤。C選項與D選項中用的是關鍵字“void”與“unsigned”,所以錯誤。故本題答案為A選項。

7.B

8.C將兩個字符串連接起來組成一個字符串,選用strcat函數(shù)來連接。

9.D解析:本題考查循環(huán)和指針做函數(shù)參數(shù),程序的功能是將a[0]和a[7]對換,a[1]和a[6]對換,a[2]和a[5]對換,a[3]和a[4]對換,最后輸出。

10.D各種排序方法中最壞情況下需要比較的次數(shù)分別為:冒泡排序n(n-1)/2、快速排序n(n-1)/2、簡單插入排序n(n-1)/2、希爾排序0(n1.5)、簡單選擇排序n(n-1)/2、堆排序O(nlog2n)

11.A因為x和y都是double型數(shù)據(jù),輸入時的格式字符應為%lf,B、C選項錯誤。D選項中的“scanf(“%lf%lf”,x,y);”應為“scanf(“%lf%lf”,&x,&y);”。故本題答案為A選項。

12.C整型變量x、y的初值都為1,“x++,y++,++y”是一個逗號表達式,程序執(zhí)行“z=x++,y++,++y”之后,x的值為2,y的值為3,z取逗號表達式中的第二個表達式的值,為1。因此本題的答案為選項C。

13.A"\0"表示空字符,strlen函數(shù)求得的是不包括字符串結束符\0的長度。故選A。

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

15.A解析:本題考查如何通過地址來引用數(shù)組元素。通過地址來引用數(shù)組元素的方法有下列5種:

①a[i][j];②*(a[i]+j);③*(*(a+i)+j);④*(a[i])[j];⑤*(&a[0][0]+3*i+j)。

16.C

17.B在函數(shù)fun中,前一個while循環(huán)的作用是,如果形參指針t所指內(nèi)容不為0,則讓t增1,直到它指向0;后一個while循環(huán)的作用是,將s所指內(nèi)容賦給t所指地址,然后兩者同時增1,直到賦給t的內(nèi)容為0。由此可見,函數(shù)fun的作用就是將形參s所指字符串連接到形參t所指字符串末尾,相當于庫函數(shù)strcat。主函數(shù)中使用fun將數(shù)組aa中的字符串連接到數(shù)組ss中原有字符串之后,所以執(zhí)行完后,ss中的字符串為“accbbxxyy”。程序最后輸出的結果是accbbxxyy,bbxxyy。故本題答案為B選項。

18.D

19.Dchange函數(shù)接收一個整型指針data,然后將data指向的數(shù)對2求余,求余后的值重新賦給data指向的變量,最后將data指向的變量值加1后返回。注意,此處data指向的數(shù)對2求余會改變實參指針指向的值,但返回值并不影響data指向的值。程序第1次調(diào)用change函數(shù),傳入實參data的地址,將data的值修改為0(12%2=0),此時輸出data的值是0;再次調(diào)用change傳入data的地址,將data的值修改為0(0%2=0),然后將返回值1重新賦給主函數(shù)變量data,所以此時輸出data的值是1。綜上,程序輸出0,1,。故本題答案為D選項。

20.D解析:C語言把文件看成是一個字符(字節(jié))的序列,即由一個一個字符(字節(jié))的數(shù)據(jù)順序組成。根據(jù)數(shù)據(jù)的組織形式,可分為ASCII文件和二進制文件。ASCII文件又稱文本文件,它的每一個字節(jié)放一個ASCII代碼,代表一個字符。二進制文件是把內(nèi)存中的數(shù)據(jù)按其在內(nèi)存中的存儲形式原樣輸出到磁盤上存放。

21.功能模型功能模型

22.00解析:/表示整除,1/5為0,0乘以任何數(shù)都得零,但是與浮點型相乘,要轉化為浮點型,所以結果為0.000000。注意:在一個運算符的兩邊如果一個是字符型,一個是整型,則把字符型轉換為整型之后再進行運算。

23.b[j][i]=a[i][j]b[j][i]=a[i][j]解析:本題考查二維數(shù)組的基本知識。它是要將一個二維數(shù)組,的行和列元素互換后存放到另一個二維數(shù)組b中,只要將數(shù)組a的行標和列標互換,然后賦給數(shù)組b即可。

24.1414解析:本題考查遞歸函數(shù)的調(diào)用。在主函數(shù)中調(diào)用sub(&x,16,2)函數(shù),此時n=16,k=2,if語句的控制的條件k<=n成立,所以執(zhí)行下面的語句,調(diào)用sub(x,8,4),此時n=8,k=4,if語句的控制條件k<=n成立,所以執(zhí)行下面的語句,調(diào)用sub(x,4,8),此時n=4,k=8,if語句控制的條件k<=n不成立,因此,最后得x=2+4+8=14。

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

26.存儲結構

27.88解析:第1次for循環(huán),i=0,調(diào)用函數(shù)f(2),然后將a的值加1,在f()函數(shù)中,變量c為static類型,所以c=8:第2次for循環(huán),i=1,調(diào)用函數(shù)f(3),然后將a的值加1,調(diào)用函數(shù)f(3)時,a=c++=8,所以k=8。

28.55解析:分析程序,當a=3;b=4;c=5時,判斷語句a>b不成立,所以不執(zhí)行后面的語句,直接執(zhí)行“printf('%d\\n',c);”語句,輸出c的值,輸出結果為5。

29.1111解析:此題涉及函數(shù)的調(diào)用和if語句。程序先執(zhí)行第二個if語句,然后再執(zhí)行第一個if語句,最后用return返回數(shù)值。

30.交換排序交換排序解析:常見的排序方法有插入排序(包括簡單插入排序法和希爾排序法等)、交換排序(包括冒泡排序和快速排序法等)和選擇排序(包括簡單選擇排序和堆排序等)。注意:常見的排序方法及其作用機制和區(qū)別。

31.a*b*c*d*a*b*c*d*解析:字符處理函數(shù)strlen()測試字符串常量的長度,不包括‘\\0’在內(nèi)。因此,函數(shù)insert()實現(xiàn)了將字符數(shù)組中每個非‘\\0’的字符后插入字符‘*’的功能。故輸出結果是a*b*c*d*。

32.((x>0)&&<y>0))‖(x>0)&&(z>0)‖y>0)&&(z>0))((x>0)&&<y>0))‖(x>0)&&(z>0)‖y>0)&&(z>0))解析:題目要求“x、y和z中至少有兩個為正數(shù)”,即x、y和x這3個數(shù)中必須有兩個是正數(shù),且這3個數(shù)中的哪兩個數(shù)都有可能是正數(shù),所以它們之間是或的關系。

33.質(zhì)量質(zhì)量

34.元組元組解析:在關系型數(shù)據(jù)庫中,用二維表來表示關系,二維表的表名即關系名,二維表的行稱為關系的元組,二維表的列,稱為關系的屬性。

35.cc解析:該題考查以下兩個知識點:

(1)用一個指定的標識符(即名字)來代表一個字符串,它的一般形式為#define標識符字符串

(2)在MYSWAP宏定義中,利用中間變量z來交換x和y的值,所以要實現(xiàn)a和b的交換,只需通過中間變量即可,所以,此處應填c。

36.概念數(shù)據(jù)模型概念數(shù)據(jù)模型

37.33解析:本題考查do…while語句形式:

do循環(huán)體

while表達式

首先執(zhí)行循環(huán)體語句,然后檢測循環(huán)控制條件表達式的值,若為真,則重復執(zhí)行循環(huán)體語句,否則退出循環(huán)。第1次循環(huán):b+=2,b=2,a-=2+b,a=11;第2次循環(huán):b=4,a=5;第3次循環(huán):b=6,a=-3,此時再判斷循環(huán)條件不滿足,退出循環(huán)。

38.43214321解析:靜態(tài)存儲類的局部變量其生存期為整個程序的運行期間,作用域卻只是定義它的函數(shù)或局部范圍。注意:局部變量和全局變量的作用域。

39.HOWHOW解析:在scanf()函數(shù)中,使用空格作為分隔符,如果輸入含有空格的字符中,則不能使用scanf()數(shù),所以本題中輸入空格就返回了'\\0\\,s數(shù)組也就確定了,后面的輸入就不再讀入數(shù)組s中。

40.數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)解析:數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫的管理機構,它是一種系統(tǒng)軟件,負責數(shù)據(jù)庫中的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護、控制及保護和數(shù)據(jù)服務等。

41.C解析:在C語言中,以“\\”開頭的字符均為轉義字符,其中“\\”后可跟1~3位八進制數(shù)或在“\\”后跟字母x及1~2位十六進制數(shù),以此來代表一個特定的字符。

42.C解析:本題執(zhí)行過程如下:首先調(diào)用fun函數(shù),使得實參a的值3傳遞給形參p,得到局部變量d=8,打印出局部變量d的值8:返回主函數(shù)執(zhí)行“d+=a++”,此處的d為全局變量,所以d=1+3=4(由于本題是值傳遞,所以在函數(shù)fun中對p值的改變并不能引起a的改變),故本題的輸出是8,4。

43.C解析:本題考核的知識點是字符型變量的基本概念。用單引號括起來的一個字符稱為字符常量,而選項B和選項D中用的是雙引號,而用雙引號括起來的字符為字符串常量,故選項B和選項D不正確。因為在C語言中,字符常量在存儲時,并不是把該字符本身放到內(nèi)存單元中去,而是將該字符的相應的ASCII代碼放到存儲單元中,所以C語言使字符型數(shù)據(jù)和整形數(shù)據(jù)之間可以通用,選項C正確.而選項A中,給字符型變量賦值時只能賦一個字符,而9,7作為字符時為兩個字符且必須分別為單引號括起來,故選項A不正確,所以,4個選項中選項C符合題意。

44.B數(shù)據(jù)庫管理系統(tǒng)DBMS是數(shù)據(jù)庫系統(tǒng)的核心。DBMS是負責數(shù)據(jù)庫的建立、使用和維護的軟件。DBMS建立在操作系統(tǒng)之上,實施對數(shù)據(jù)庫的統(tǒng)一管理和控制。用戶使用的各種數(shù)據(jù)庫命令以及應用程序的執(zhí)行,最終都必須通過DBMS。另外,DBMS還承擔著數(shù)據(jù)庫的安全保護工作,按照DBA所規(guī)定的要求,保證數(shù)據(jù)庫的完整性和安全性。

45.D解析:二叉樹的遍歷分為先序、中序、后序三種不同方式。本題要求后序遍歷,其遍歷順序應該為:后序遍歷左子樹→后序遍歷右子樹→訪問根結點。按照定義,后序遍歷序列是DBEFCA,故答案為D。

46.B解析:本題考核的知識點是for循環(huán)次數(shù)的計算.本程序中for循環(huán)的次數(shù)為c-1+1共循環(huán)了c次,而每循環(huán)一次s的值加1,所以s的值為s+c.而最開始s的值為a,故4個選項中選項B符合題意.

47.A解析:在C語言中,用戶所定義的標識符不能使用關鍵字。

48.C

49.C解析:第1次循環(huán)中,k=1,不執(zhí)行if分支,s[k]=‘2’,因此b=2,a=2因s[k+1]=‘1’進入第2次循環(huán),k=2,執(zhí)行if分支,s[k]=‘1’,使a=3,進而提前結束本次循環(huán),s[k+1]=‘\\0’,則退出循環(huán),所以k=2,a=3,b=2。

50.C解析:程序中標有/$$$/的語句y+=i在for循環(huán)中,由于該語句前面的條件語句使循環(huán)變量i在對2求余為0時就結束本次循環(huán),直接跳過標有/$$$/的語句,因此該語句執(zhí)行了10次。

51.B解析:“/”表示整除,“%”表示求余。程序中表達式a=d/10%9的值為25/10%9=2,則b=a&&(-1)=2&&(-1)=1(注意:-1表示真,0表示假),所以a,b的值分別為2,1。

52.A解析:本題考核的知識點是定義函數(shù)時形參的缺省存儲類。在C語言中,形參的缺省存儲類為auto。

53.C解析:本題中,格式符。表示的是八進制無符號形式輸出整型數(shù)(不帶前導0),字符常量在內(nèi)存中占一個字節(jié),存放的是ACSII碼代碼值。C語言規(guī)定,所有字符常量都作為整型量來處理,在計算機內(nèi)部,其對應的整數(shù)值就是ACSII字符集中該字符的序號,即&*s中有幾個字符就輸出幾個*。

54.A解析:計算邏輯表達式要注意的問題有三個:一、3個邏輯表達式的優(yōu)先級從高到低依次是!(邏輯非)、&&(邏輯與)、‖(邏輯或);二、運算符&&或‖的左邊運算分量分別為“假”或“真”的時候已經(jīng)能夠得出整個表達式的值,故右邊運算分量將被“短路”,即忽略右邊的表達式.三、邏輯值能夠自動轉換為整數(shù)值:“真”=1、“假’=0;整數(shù)值也能自動轉換為邏輯值:0=“假”,非0=“真”。選項A中(!a=1)&&(!b==0)→(12==1)&&(!b==0)→(0==1)&&(!b==0)→0&&(!b==0)→0(&&右邊表達式(!b==0)被“短路”);選項B中(a<b)&&!c‖1→(2<3)&&!4‖1→1&&0‖→0‖→1;選項C中a&&b→2&&3→1選項Da‖(b+b)&&(c-a)→2‖(b+b)&&(c,a)→1(‖右邊表達式(b+b)&&(c-a)被“短路”)。所以本題選A。

55.A解析:多分支選擇switch語句的一般形式為:

switch(表達式)

{case常量表達式1:語句1;

case常量表達式2:語句2;

case常量表達式n:語句n;

default:語句n+1;

}

其語義是:計算表達式的值,并逐個與其后的常量表達式值相比較,當表達式的值與某個常量表達式的值相等時,即執(zhí)行其后的語句,不再進行判斷,繼續(xù)執(zhí)行后面所有case后的語句。如果表達式的值與所有case后的常量表達式均不相同時,則執(zhí)行default后的語句。

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

57.B解析:本題考查函數(shù)的綜合知識。首先,我們可以利用強制轉換類型轉換運算符將一個表達式轉換成所需類型。如:(double)a是將a轉換成double類型;(int)(x+y)是將x+y的值轉換成整型。

本題可按部就班地逐步運算:

fun((int)fun(a+c,b),a-c)

fun((int)fun(10,5),2-8)

fun((int)15.000000,-6)

fun(15,-6)

9

58.C解析:二分法查找是一種線性查找方法,其基本方法是:首先要用要查找的關鍵碼與線性表中間位置結點的關鍵碼值進行比較,這個中間結點把線性表分為兩個子表,比較相等則查找完畢,不等則根據(jù)查找結果確定下一步的查找應該在哪一個子表中進行,如此下去,直到找到滿足條件的結點:或者確定表中沒有這樣的結點。用二分法查找關鍵碼值11的順序如下所示,其中[]內(nèi)為本次栓索的子表,()內(nèi)為該子表的中間結果。從圖中可以看出,經(jīng)四次查找后,確定表中沒有這樣的結點。因此本題正確答案為選項C(4)。

第一次:[3,6,8,10,12,(15),16,18,21,25,30]

第二次:[3,6,(8),10,12],15,16,18,21,25,30

第三次:[3,6,8,[(10),(

溫馨提示

  • 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

提交評論