2022年廣東省深圳市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷(含答案)_第1頁(yè)
2022年廣東省深圳市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷(含答案)_第2頁(yè)
2022年廣東省深圳市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷(含答案)_第3頁(yè)
2022年廣東省深圳市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷(含答案)_第4頁(yè)
2022年廣東省深圳市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷(含答案)_第5頁(yè)
已閱讀5頁(yè),還剩30頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2022年廣東省深圳市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.下列寫法正確的是()。

A.main(){inti=3,j;j=5}

B.main(){inti=3;

C.main()

D.main(){;}

2.有如下程序main(){inty=3,x=3,z=1;printf("%d%d\n",(++x,y++),z+2);}運(yùn)行該程序的輸出結(jié)果是______。

A.34B.42C.43D.33

3.有下列程序:fun(intx,inty){staticintm=0,i=2;i+=m+1;m=i+x+y;returnm;}main(){intj=1,m=1,k;k=fun(j,m);printf("%d,",k);k=fun(j,m);printf("%d\n",k);}執(zhí)行后的輸出結(jié)果是()。

A.5,5B.5,11C.11,11D.11,5

4.以下選項(xiàng)中不屬于字符常量的是

A.′C′B.′′C′′C.′\xCC′D.′\072′

5.以下敘述中正確的是()。A.A.break語(yǔ)句只能用在循環(huán)體內(nèi)和switch’語(yǔ)句體內(nèi)

B.continue語(yǔ)句的作用是:使程序的執(zhí)行流程跳出包含它的所有循環(huán)

C.在循環(huán)體內(nèi)使用break語(yǔ)句和continue語(yǔ)句的作用相同

D.break語(yǔ)句只能用于switch語(yǔ)句體中

6.在一個(gè)雙向鏈表中,q的前一個(gè)節(jié)點(diǎn)為p,q的后一個(gè)節(jié)點(diǎn)為n,刪除q所指向節(jié)點(diǎn),則執(zhí)行()

A.deleteq;

B.q->prev->next=q->prev;q->next->prev=q->next;deleteq;

C.q->prev=p->next;p->next=p->prev;deleteq;

D.q->next=q->prev->next;q->prev=q->next->prev;deleteq;

E.q->prev->next=q->next;q->next->prev=q->prev;deleteq;

F.p->prev->next=p->next;p->next->prev=p->prev;deleteq->next;

7.下面程序的運(yùn)行結(jié)果是()。

A.gaeB.gaC.LanguageD.有語(yǔ)法錯(cuò)

8.下列程序的運(yùn)行結(jié)果為()。#include<stdio.h>main{structdate{intyear,month,day;}today;printf("%d\n",sizeof(structdate));}A.8B.6C.10D.12

9.公司中有多個(gè)部門和多名職員,每個(gè)職員只能屬于一個(gè)部門,一個(gè)部門可以有多名職員。則實(shí)體部門和職員間的聯(lián)系是()。

A.1:m聯(lián)系B.m:n聯(lián)系C.1:1聯(lián)系D.m:1聯(lián)系

10.以下能正確定義一維數(shù)組的選項(xiàng)是()。

A.inta[5]={0,1,2,3,4,5};

B.chara[]={0,1,2,3,4,5};

C.chara={'A','B','C'};

D.inta[5]="0123";

11.若有如下程序:intsub(){staticintn=1;intx=1;x*=n;n++;returnx;}main(){intn,t=1;for(n=1;n<6;n++)t*=sub();printf("%d\n",t);}則程序運(yùn)行后的輸出結(jié)果是()

A.15B.120C.34560D.-30976

12.以下程序的輸出結(jié)果是______。charcchar(charch){if(ch>='A'&&ch<='z')ch=ch-'A'+'a';returnch;}main(){chars[]="ABC+abc=defDEF",*p=s;while(*p){*p=cchar(*p);p++;}printf("%s\n",s);}

A.abe+ABC=DEFdef

B.abc+abe=defdef

C.abcaABCDEFdef

D.abcabcdefdef

13.對(duì)稱數(shù)組A中,每個(gè)元素的長(zhǎng)度為4個(gè)字節(jié),行下標(biāo)i從1到8,列下標(biāo)j從1到8。將其下三角中的元素連續(xù)存儲(chǔ)在從首地址SA開始的存儲(chǔ)器內(nèi),該數(shù)組按行存放是,則元素A[5][8]的起始地址為()。

A.SA+124B.SA+128C.SA+132D.136

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

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

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

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

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

15.一個(gè)優(yōu)化的程序可以生成n個(gè)元素集合的所有子集,那么該程序的時(shí)間復(fù)雜度是()

A.O(n!)B.O(nlogn)C.O(n^2)D.O(2^n)

16.

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

A.數(shù)據(jù)庫(kù)系統(tǒng)是一個(gè)獨(dú)立的系統(tǒng),不需要操作系統(tǒng)的支持

B.數(shù)據(jù)庫(kù)技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的共享問題

C.數(shù)據(jù)庫(kù)管理系統(tǒng)就是數(shù)據(jù)庫(kù)系統(tǒng)

D.以上三種說法都不對(duì)

18.

19.設(shè)二維數(shù)組A[1...m,1...n]按行存儲(chǔ)在數(shù)組B中,則二維數(shù)組元素A[i,j]在一維數(shù)組B中的下標(biāo)為()。A.A.n*(i-1)+jB.n*(i-1)+j-1C.i*(j-1)D.j*m+i-1

20.以下有關(guān)scanf函數(shù)的敘述中錯(cuò)誤的是()。

A.在scanf函數(shù)的格式字符前既可以加入正整數(shù)指定輸入數(shù)據(jù)所占的寬度,也可以對(duì)實(shí)數(shù)指定小數(shù)位的寬度

B.scanf函數(shù)有返回值,其值就是本次調(diào)用scanf函數(shù)時(shí)正確讀入的數(shù)據(jù)項(xiàng)個(gè)數(shù)

C.scanf函數(shù)從輸入字符流中按照格式控制指定的格式解析出相應(yīng)數(shù)據(jù),送到指定地址中

D.在scanf函數(shù)中的格式控制字符串不會(huì)輸出到屏幕上

二、2.填空題(20題)21.下列程序段的運(yùn)行結(jié)果是______。

charstr[]="ABCD",*p=str;

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

22.數(shù)據(jù)庫(kù)管理系統(tǒng)是位于用戶與______之間的軟件系統(tǒng)。

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

#include<stdio.h>

int(intx,inty,intcp,intdp)

{cp=x*x+y*y;

dp=x*x-y*y;

}

main()

{inta=1,b=8,c=7,d=9;

t(a,b,c,d);

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

}

24.表示“整數(shù)x的絕對(duì)值大于5”時(shí)值為“真”的C語(yǔ)言表達(dá)式是【】。

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

26.下面程序的輸出是【】

main()

{enumem{eml=3,em2=1,em3};

char*aa[]={"AA',"BB","CC","DD"}

printf("%s%s%\n",aa[em1],aa[em2],aa[em3]);

}

27.在面向?qū)ο蠓椒ㄖ?,類之間共享屬性和方法的機(jī)制稱為______。

28.己定義charch='$';inti=l,j;,執(zhí)行j=!ch&&ii++以后,i的值為【】。

29.以下程序運(yùn)行后的輸出結(jié)果是【】。

#include<stdio,h>

main()

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

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

if(a<e&&b<c)t=b;b=a;a=t;

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

}

30.若x和y都是double型變量,且x的初值為3.0,y的初值為2.0,則表達(dá)式pow(y,fabs(x))的值為【】。

31.若已定義inta[10],i;以下fun函數(shù)的功能是,在第一個(gè)循環(huán)中給前10個(gè)數(shù)組元素依次賦1,2,3,4,5,6,7,8,9,10;在第二個(gè)循環(huán)中使a數(shù)組前10個(gè)元素中的值對(duì)稱拆疊,變成1,2,3,4,5,5,4,3,2,1。請(qǐng)?zhí)羁铡?/p>

fun(inta[])

{inti;

for(i=1;i<=10;i++)【】=i;

for(i=0;i<5;i++)【】=a[i];

}

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

#include<stdio.h>

#defineMAX_COUNT4

voidfun()

main()

{intcount;

for(count=1;count<=MAX_COUNT;coun++)fun();

}

voidfun()

{staicinti;

i+=2;

printf(”%d,i);

}

33.若先后輸入county、side,以下程序的運(yùn)行結(jié)果為【】。

main()

{chars1[40],s2[20];inti=0,j=0;

scanf("%s",s1);

scanf("%s",s2);

while(s1[i]!='\0')i++;

while(s2[j]!='\0')s1[i++]=s2[j++];

s1[i]='\0';

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

}

34.函數(shù)fun的功能是:根據(jù)以下公式求p的值,結(jié)果由函數(shù)值返回。m與n為兩個(gè)正數(shù),且要求m>n。

例如:m=12,n=8時(shí),運(yùn)行結(jié)果應(yīng)該是495.000000。請(qǐng)?jiān)陬}目的空白處填寫適當(dāng)?shù)某绦蛘Z(yǔ)句,將該程序補(bǔ)充完整。

#include<stdio.h>

floatfun(intm,intn)

{inti;

doublep=1.0;

for(i=1;i<=m;i++)【】;

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

for(i=1;i<=m-n;i++)p=p/i;

returnp;

}

main()

{printf("p=%f\n",fun(12,8));

}

35.在C語(yǔ)言中,字符的比較就是對(duì)它們的【】碼進(jìn)行比較。

36.下面程序的功能:輸出100以內(nèi)能被3整除且個(gè)位數(shù)為6的所有整數(shù),請(qǐng)補(bǔ)充完整。

main()

{inti,j;

for(i=0;【】;i++)

{j=i*10+6;

if(【】)continue;

printf("%d",j);

}

}

37.為了便于對(duì)照檢查,測(cè)試用例應(yīng)由輸入數(shù)據(jù)和預(yù)期的【】?jī)刹糠纸M成。

38.若有定義語(yǔ)句chars[100],d[100];intj=0,i=0;且s中已賦字符串,請(qǐng)?zhí)羁找詫?shí)現(xiàn)拷貝。(注:不使用逗號(hào)表達(dá)式)

white(s[i]){d[j]=【】;j++;}

d[j]=0;

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

main()

{charc='z';

printf("%c",c-25);}

40.若輸入tc,則程序的運(yùn)行結(jié)果為【】。

#include<stdio.h>

main()

{charstr[40];

fscanf(stdin,"%s",str);

fprintf(stdout,"%s\n",str);

}

三、1.選擇題(20題)41.下列二維數(shù)組初始化語(yǔ)句中,不正確的是()。

A.intb[][2]={1,2,3,4,5,6,7};

B.intb[3][5]={0,0,0};

C.intb[][4]={{1,2},{3,4,5},{6}};

D.intb[3][2]={(1,2),(3,4),(5,6)};

42.關(guān)系模型允許定義3類數(shù)據(jù)約束,下列不屬于數(shù)據(jù)約束的是()。

A.實(shí)體完整性約束B.參照完整性約束C.屬性完整性約束D.用戶自定義的完整性約束

43.結(jié)構(gòu)化程序由三種基本結(jié)構(gòu)組成,三種基本結(jié)構(gòu)組成的算法A.可以完成任何復(fù)雜的任務(wù)B.只能完成部分復(fù)雜的任務(wù)C.只能完成符合結(jié)構(gòu)化的任務(wù)D.只能完成一些簡(jiǎn)單的任務(wù)

44.

(2)

A.*sB.sC.*s++D.(*s)++

45.下列程序的輸出結(jié)果是()。#inelude<stdio.h>main(){inta[5]={2,4,6,8,10},*p,**k;p=a;k=&p;printf("%d",*(p++));printf("%d\n",**k);}

A.4B.22C.24D.46

46.以下程序的輸出結(jié)果是#include<stdio.h>main(){inta=15,b=21,m+0;switch(a%3){case0:m++;bteak;case1:m++;switch(b%2){default:m++;case0:m++;break;}}printf("%d\n",m);}

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

47.有如下程序:#include<stdio.h>main(){intx=1,a=0,b=0;switch(x){casc0:b++;case1:a++;case2:a++;b++;}printf("a=%d,b=%d\n",a,b);}該程序的輸出結(jié)果是()。

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

48.在“文件包含”預(yù)處理語(yǔ)句的使用形式中,當(dāng)#include后面的文件名用"",(雙撇號(hào))括起時(shí),尋找被包含文件的方式是()。

A.直接按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索目錄

B.先在源程序所在的目錄搜索,如沒找到,再按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索

C.僅僅搜索源程序所在目錄

D.僅僅搜索當(dāng)前目錄

49.關(guān)于語(yǔ)句“for(表達(dá)式1;表達(dá)式2;表達(dá)式3)”,下面說法中錯(cuò)誤的是()。

A.for語(yǔ)句中的三個(gè)表達(dá)式不可以同時(shí)省略

B.for語(yǔ)句可以用于循環(huán)次數(shù)不確定的情況

C.for語(yǔ)句中表達(dá)式2可以是關(guān)系表達(dá)式或邏輯表達(dá)式

D.for語(yǔ)句中表達(dá)式1和表達(dá)式3可以是逗號(hào)表達(dá)式

50.若進(jìn)棧序列為1,2,3,4,進(jìn)棧過程中可以出棧,則下列不可能的一個(gè)出棧序列是______。

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

51.下列特征中不是面向?qū)ο蠓椒ǖ闹饕卣鞯氖?)。

A.多態(tài)性B.繼承C.封裝性D.模塊化

52.有以下程序

#include<stdio.h>

main()

{FILE*fp;inti=20,j=30,k,n;

fp=fopen("d1.dat","w");

fprintf(fp,"%d\n",i);fprintf(fp,"%d\n",j);

fclose(fp);

fp=fopen("d1.dat","r");

fscanf(fp,"%d%d",&k,&n);printf("%d%d\n",k,n);

fclose(fp);}

程序運(yùn)行后的輸出結(jié)果是

A.2030B.2050C.3050D.3020

53.若fp是指向某文件的指針,且已讀到文件末尾,則庫(kù)函數(shù)feof(fp)的返回值是______。

A.EOFB.-1C.非零值D.NULL

54.有以下程序

intadd(inta,intb){return(a+b);}

main()

{intk,(*f)(),a=5,b=10;

f=add;

}

則以下函數(shù)調(diào)用語(yǔ)句錯(cuò)誤的是A.k=(*f)(a,b);B.k=add(a,b);C.k=*f(a,b);D.k=f(a,b);

55.下列程序的運(yùn)行結(jié)果為()。

#include<stdio.h>

voidabc(char*str)

{inta,b,i,j;

for(i=j(luò)=0;str[i]!='\0';i++)

if(str[i]!='a')

str[j++]=str[j];

str[j]='\0';

}

voidmain()

{charStr[]="abcdef';

abc(str);

printf("str[]=%s",str);

}

A.str[]=bcdefB.str[]=abcdefC.str[]=aD.str[]=ab

56.下面關(guān)于完全二叉樹的敘述中,錯(cuò)誤的是______。

A.除了最后—層外,每—層上的結(jié)點(diǎn)數(shù)均達(dá)到最大值

B.可能缺少若干個(gè)左右葉子結(jié)點(diǎn)

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

D.具有結(jié)點(diǎn)的完全二叉樹的深度為[log2n]+1

57.某一個(gè)漢字的區(qū)位碼為(2113H),則其內(nèi)碼為()

A.(2199)10B.(C1B3H)C.(C1B3)10D.(B1B3H)

58.設(shè)有定義語(yǔ)句int(*f)(int);,則以下敘述正確的是()。

A.f是基類型為int的指針變量

B.f是指向函數(shù)的指針變量,該函數(shù)具有一個(gè)int類型的形參

C.f是指向int類型一維數(shù)組的指針變量

D.f是函數(shù)名,該函數(shù)的返回值是基類型為int類型的地址

59.有以下程序:#include<stdio.h>intf1(intx,inty){returnx>y?x:y;}intf2(imx,inty){returnx>y?y:x;}main()inta=4,b=3,c=5,d=2,e,f,g;e=f2(f1(a,b),f1(c,d));f=f1(f2(a,b),f2(e,d));g=a+b+e+d-e-f;printf("%d,%d,%d\n",e,f,g);}程序運(yùn)行后的輸出結(jié)果是()。

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

60.在對(duì)下列函數(shù)調(diào)用中,不正確的是()

A.max(a,b);B.max(3,a+b);C.max(3,5)D.intmax(a,b);

四、選擇題(20題)61.利用fseek函數(shù)可實(shí)現(xiàn)的操作是()。

A.實(shí)現(xiàn)文件的順序讀寫B(tài).改變文件的位置指針C.實(shí)現(xiàn)文件的隨機(jī)讀寫D.以上答案均正確

62.有以下程序:

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

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

63.若fp是指向某文件的指針,且尚未讀到文件末尾,則函數(shù)feof(fp)的返回值是()。

A.EOFB.-lC.非零值D.0

64.以下與存儲(chǔ)類別有關(guān)的四組說明符中,全部屬于靜態(tài)類的一組是()。

A.extem和static

B.auto和static

C.register和static

D.register和ex[erll

65.已知一棵二叉樹前序遍歷和中序遍歷分別為ABDEGCFH和DBGEACHF,則該二叉樹的后序遍歷為()。

A.GEDHFBCAB.DGEBHFCAC.ABCDEFGHD.ACBFEDHG

66.若a為int類型,且其值為3,則執(zhí)行完表達(dá)式a+=a-=a*a后,a的值是()。

A.-3B.9C.-12D.6

67.

68.若有以下說明:inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;則值為6的表達(dá)式是_______。

A.*p+6B.*(p+6)C.*p+=5D.p+5

69.

有以下程序

#include<stdio.h>

structtt

(intx;structtt*y;)*P;

structtta[4]={20,a+1,15,a+2,30,a+3,17,a};

main

{inti;

p=a;

for(i=l;i<=2;i++){printf("%d,",p->x);P=p->y;}

}

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

A.20,30,B.30,17,C.15,30,D.20,15,

70.假定int類型變量占用兩個(gè)字節(jié),其有定義intx[10]={0,2,4};,則數(shù)組x在內(nèi)存中所占字節(jié)數(shù)是

A.3B.6C.10D.20

71.下列SQL語(yǔ)句中,用于修改表結(jié)構(gòu)的命令式是A.A.Alter

B.Create

C.Update

D.Insert

72.設(shè)有圖書(圖書編號(hào),書名,第一作者,出版社.、讀者(借書證號(hào),姓名,單位,職稱.和借閱(借書證號(hào),圖書編號(hào),借書日期,還書日期.三張表,則表借閱的關(guān)鍵字(鍵或碼.為()。

A.借書證號(hào),圖書編號(hào)

B.圖書編號(hào),借書日期

C.借書日期,還書日期

D.借書證號(hào),借書日期

73.關(guān)于以下程序段的描述,正確的是

x=-1;

do

{x=x*x-1;}while(!x);

A.是死循環(huán)B.循環(huán)執(zhí)行兩次

C.循環(huán)執(zhí)行一次D.有語(yǔ)法錯(cuò)誤

74.有以下函數(shù):

函數(shù)的功能是()。

A.將Y所指字符串賦給x所指存儲(chǔ)空間

B.查找x和y所指字符串中是否有

C.統(tǒng)計(jì)x和y所指字符串中最前面連續(xù)相同的字符個(gè)數(shù)

D.統(tǒng)計(jì)x和Y所指字符串中相同的字符個(gè)數(shù)

75.按照c語(yǔ)言規(guī)定的用戶標(biāo)識(shí)符命名規(guī)則,不能出現(xiàn)在標(biāo)識(shí)符中的是()。

A.大寫字母B.下劃線C.數(shù)字字符D.連接符

76.設(shè)以下變量均為int類型,則值不等于7的表達(dá)式是()。

A.(x=y=6,x+y,x+1)

B.(x=y=6,x+y,y+1)

C.(x=6,x+1,y=6,x+y)

D.(y=6,y+1,x=y,x+1)

77.數(shù)據(jù)字典(DD)所定義的對(duì)象都包含于()。

A.軟件結(jié)構(gòu)圖B.方框圖C.數(shù)據(jù)流圖(DFD圖)D.程序流程圖

78.以下不能將a所指字符串正確復(fù)制到所指存儲(chǔ)空間的是()。

79.

80.

五、程序改錯(cuò)題(1題)81.下列給定的程序中,函數(shù)proc()的功能是:用選擇法對(duì)數(shù)組中的n個(gè)元素按從大到小的順序進(jìn)行排序。請(qǐng)修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計(jì)題(1題)82.請(qǐng)編寫函數(shù)fun(),其功能是:找出2M整型二維數(shù)組中最大元素的值,并將此值返回調(diào)用函數(shù)。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入編寫的若干語(yǔ)句。試題程序:

參考答案

1.D解析:本題考查語(yǔ)句的基本構(gòu)成。選項(xiàng)A)中j=5后面少了一個(gè)分號(hào):選項(xiàng)B)中少了“}”;選項(xiàng)C)不是一個(gè)完整的函數(shù)定義格式,一個(gè)完整的函數(shù)定義格式還包括一對(duì)花括號(hào):選項(xiàng)D)正確,是一個(gè)空語(yǔ)句。

2.D解析:逗號(hào)表達(dá)式(++x,y++)的值應(yīng)該是y++的值,由于y++是先引用后自增,所以y++的值是3。

3.B解析:子函數(shù)fun(intx,inty),將變量m和i聲明為局部靜態(tài)變量,因此第1次調(diào)用主函數(shù)后,局部靜態(tài)變量m和i的值為5和3,第1次函數(shù)調(diào)用結(jié)束時(shí),它們的值不釋放保持不變,所以第2次調(diào)用時(shí),局部靜態(tài)變量m和i的初始值分別為5和3,即在執(zhí)行“i+=m+1”時(shí),i的值為9,因此最終m的值為11。

4.B解析:在C語(yǔ)言程序中,用單引號(hào)把一個(gè)字符或反斜線后跟一個(gè)特定的字符括起來表示一個(gè)字符常量。選項(xiàng)A)、C)和D)為正確的字符常量,而選項(xiàng)B)是用雙引號(hào)括起來的字符,表示一個(gè)字符串常量。

5.A本題主要考查的知識(shí)點(diǎn)是:break和IContinue語(yǔ)句。break語(yǔ)句可以用于swhitCh或循環(huán)體內(nèi),作用是跳/出switCh或循環(huán)體。Continue語(yǔ)句只能用于循環(huán)體內(nèi),作用是結(jié)束當(dāng)前循環(huán),進(jìn)入下次循環(huán)。故本題中只有選項(xiàng)A)是正確的。

6.E

7.A考查用指針來引用字符數(shù)組元素的方法。指針pl+k相當(dāng)于指針pl向后移動(dòng)了k個(gè)字符的位置,指針p2同理。

8.Bstructdate中包含year、month、day這3個(gè)整型變量,一個(gè)整型變量占2個(gè)字節(jié);sizeof是求所占字節(jié)數(shù)的運(yùn)算符。

9.A部門到職員是一對(duì)多的,職員到部門是多對(duì)一的,因此,實(shí)體部門和職員間的聯(lián)系是l:m聯(lián)系。

10.B解析:選項(xiàng)A)定義的是長(zhǎng)度為5的數(shù)組元素,但初值有6個(gè)元素,所以錯(cuò)誤;選項(xiàng)C)不符合數(shù)組定義形式,數(shù)組名后應(yīng)加上“[];選項(xiàng)D)的類型說明符錯(cuò)誤,應(yīng)改為char;選項(xiàng)B)中的0,1,2,3,4,5分別表示對(duì)應(yīng)字符的ASCII碼,所以正確。

11.B

12.B解析:字符數(shù)組元素作函數(shù)參數(shù)是單向的值傳遞。函數(shù)cchar的功能是將大寫字母轉(zhuǎn)換為小寫字母。主函數(shù)中while循環(huán)語(yǔ)句的條件是判斷指針p當(dāng)前指向的字符是否為空,若不為空,則調(diào)用函數(shù)cchar,即主函數(shù)中通過循環(huán)語(yǔ)句將字符串'ABC+abc=defDEF'中的大寫字母全部轉(zhuǎn)換為小寫字母,因此printf的輸出結(jié)果為選項(xiàng)B。

13.B

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

15.D

16.B

17.B解析:本題考查數(shù)據(jù)庫(kù)系統(tǒng)的基本概念和知識(shí)。

數(shù)據(jù)庫(kù)系統(tǒng)除了數(shù)據(jù)庫(kù)管理軟件之外,還心須有其他相關(guān)軟件的支持。這些軟件包括操作系統(tǒng)、編譯系統(tǒng)、應(yīng)用軟件開發(fā)工具等。對(duì)于大型的多用戶數(shù)據(jù)庫(kù)系統(tǒng)和網(wǎng)絡(luò)數(shù)據(jù)庫(kù)系統(tǒng),還需要多用戶系統(tǒng)軟件和網(wǎng)絡(luò)系統(tǒng)軟件的支持。因此,選項(xiàng)A的說法是錯(cuò)誤的。

數(shù)據(jù)庫(kù)可以看成是長(zhǎng)期存儲(chǔ)在計(jì)算機(jī)內(nèi)的、大量的、有結(jié)構(gòu)的和可共享的數(shù)據(jù)集合。因此,數(shù)據(jù)庫(kù)具有為各種用戶所共享的特點(diǎn)。不同的用戶可以使用同一個(gè)數(shù)據(jù)庫(kù),可以取出它們所需要的子集,而且容許子集任意重疊。數(shù)據(jù)庫(kù)的根本目標(biāo)是要解決數(shù)據(jù)的共享問題。因此,選項(xiàng)B的說法是正確的。

通常將引入數(shù)據(jù)庫(kù)技術(shù)的計(jì)算機(jī)系統(tǒng)稱為數(shù)據(jù)庫(kù)系統(tǒng)。一個(gè)數(shù)據(jù)庫(kù)系統(tǒng)通常由五個(gè)部分組成,包括相關(guān)計(jì)算機(jī)的硬件、數(shù)據(jù)庫(kù)集合、數(shù)據(jù)庫(kù)管理系統(tǒng)、相關(guān)軟件和人員。

因此,選項(xiàng)C的說法是錯(cuò)誤的。

因此,本題的正確答案是選項(xiàng)B。

18.D

19.A

20.A在scanf函數(shù)的格式字符前可以加入一個(gè)正整數(shù)指定輸入數(shù)據(jù)所占的寬度,但不可以對(duì)實(shí)數(shù)指定小數(shù)位的寬度,選項(xiàng)A錯(cuò)誤,其他選項(xiàng)正確。故本題答案為A選項(xiàng)。

21.6868解析:本題考查如何用指針引用數(shù)組元素。本題先定義了一個(gè)指向字符型數(shù)組str的指針p,指針p指向數(shù)組str的首地址,p+3將指針指向str[3],*(p+3)指的是字符“D”,輸出時(shí)是以“%d”格式輸出的,即輸出其相應(yīng)ASCII碼值68。

22.操作系統(tǒng)操作系統(tǒng)解析:數(shù)據(jù)庫(kù)管理系統(tǒng)是幫助用戶創(chuàng)建和管理數(shù)據(jù)庫(kù)的應(yīng)用程序的集合。因此,數(shù)據(jù)庫(kù)管理系統(tǒng)需要操作系統(tǒng)的支持,為用戶提供服務(wù)。

23.7979解析:因?yàn)樵谡{(diào)用子函數(shù)時(shí)進(jìn)行的是數(shù)值傳遞,調(diào)用于函數(shù)并不能改變實(shí)參的值,所以經(jīng)過調(diào)用子函數(shù),c、d的值并沒有發(fā)生變化還是原來的值。

24.x>5||x<-5或abs(x)>5x>5||x<-5或abs(x)>5解析:要使整數(shù)x的絕對(duì)值大于5,則x大于5或x小于-5,用C語(yǔ)言表示即為:x>5||x<-5或者abs(x)>5。

25.關(guān)系關(guān)系解析:關(guān)系模型用;維表表示,則每個(gè);維表代表一種關(guān)系。

26.DDBBCCDDBBCC解析:C語(yǔ)言對(duì)枚舉的定義規(guī)定:在枚舉中聲明的各個(gè)枚舉元素,如果沒有明確指出某個(gè)枚舉元素的值,它的上—個(gè)元素存在并有明確值的情況下,這個(gè)牧舉元素的值為其上一個(gè)元素的值+1。在本題中,沒有明確說明枚舉元素em3的值,則em3=cm2+1=1+1=2,進(jìn)而可知,在printf()打印函數(shù)中,要打印的數(shù)組元素是aa[3]、aa[1]、aa[2],因此最后的打印結(jié)果應(yīng)當(dāng)為'DDBBCC'。

27.繼承繼承解析:在面向?qū)ο蟮某绦蛟O(shè)計(jì)方法中,某些屬性和方法是可以共享的,由于類從父類中繼承而來,這樣提高了軟件的可重用性。

28.11解析:本題中的ch是一個(gè)字符變量,其初始值為'$'(非0值即為真),所以!ch的結(jié)果為假,此時(shí)&&右邊的i++被“短路”,即不會(huì)被計(jì)算。由此可見,i的值不會(huì)改變,故本題應(yīng)該填1。

29.45994599解析:要注意每條證語(yǔ)句后面是三條語(yǔ)句,而不是一條語(yǔ)句。執(zhí)行第一條if語(yǔ)句時(shí),條件表達(dá)式不成立,執(zhí)行a=c;c=t;,此時(shí)a=5,c=99;執(zhí)行第二條if語(yǔ)句時(shí),條件表達(dá)式成立,執(zhí)行t=b;b=a;a=t;交換a,b的值,輸出結(jié)果為4,5和99。

30.88解析:fabs函數(shù)功能是求x的絕對(duì)值,計(jì)算結(jié)果為double型。pow功能是計(jì)算x的y次方的值,計(jì)算結(jié)果同樣為double型。所以本題表達(dá)式相當(dāng)于2.0的3.0次方,結(jié)果為8.000000。

31.a[i-1]或a[-1+i]a[9-i]或a[-i+9]a[i-1]或a[-1+i]\r\na[9-i]或a[-i+9]

32.2468(若字符間有空格扣1分)2468(若字符間有空格扣1分)

33.countryside

34.p=p*ip=p/ip=p*ip=p/i解析:本題中,欲求p的值,需要先求m!,n!,(m-n)!,可分別用循環(huán)語(yǔ)句實(shí)現(xiàn)。

35.ASCⅡ

36.i<10i%3!=0i<10\r\ni%3!=0解析:本題要求輸出100以內(nèi)能被3整除且個(gè)位數(shù)為6的所有整數(shù),程序中j=i*10+6;語(yǔ)句是求個(gè)位數(shù)為6的整數(shù),由此可得出程序的循環(huán)次數(shù)為i<10。然后通過if語(yǔ)句判斷整數(shù)是否能被3整除,若不能則繼續(xù)下一次循環(huán),若能則輸出該整數(shù),所以邏輯表達(dá)式為j%3!=0。

37.輸出結(jié)果輸出結(jié)果解析:注意:測(cè)試的基本方法和步驟。

38.s[i++]s[i++]解析:本題中為了能實(shí)現(xiàn)字符串的拷貝,需要使字符數(shù)組s從頭到尾依次遍歷其有元素。本題應(yīng)使用i舶自增后置來實(shí)現(xiàn)。

39.aa解析:“z”的ASCII碼值為122,經(jīng)過c-25運(yùn)算后得97,以字符形式輸出是a。

40.tc

41.D解析:在對(duì)二維數(shù)組元素賦初值時(shí),可以只對(duì)部分元素賦初值,未賦初值的元素自動(dòng)取0;C語(yǔ)言規(guī)定,對(duì)于二維數(shù)組,只可以省略第1個(gè)方括號(hào)中的常量表達(dá)式,而不能省略第2個(gè)方括號(hào)中的常量表達(dá)式;賦的初值不能多于事先定義好的數(shù)組元素個(gè)數(shù)。

在選項(xiàng)D)賦值表達(dá)式中,對(duì)每一維的元素賦初值應(yīng)用{},而不是()。

42.C詳細(xì)解答:

關(guān)系模型允許3類數(shù)據(jù)約束,它們是:

實(shí)體完整性約束

該約束要求關(guān)系的主鍵中屬性值不能為空值,這是數(shù)據(jù)庫(kù)完整性的最基本要求。

參照完整性約束

該約束是關(guān)系之間相關(guān)聯(lián)的基本約束,它不允許關(guān)系引用不存在的元組:即在關(guān)系中的外鍵要么是所關(guān)聯(lián)關(guān)系中實(shí)際存在的元組,要么就為空值。

用戶定義的完整性約束

用戶定義的完整性就是針對(duì)某一具體關(guān)系數(shù)據(jù)庫(kù)的約束條件,它反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語(yǔ)義要求。cC

43.A解析:C程序由順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)三種基本的結(jié)構(gòu)組成,這三種結(jié)構(gòu)可以組成任何復(fù)雜的C程序,即可以完成任何復(fù)雜的任務(wù)。

44.A

45.C解析:指針變量p指向數(shù)組a的首地址,并把指針變量p的地址賦給指向指針的指針變量k。第一個(gè)printf函數(shù)輸出2,第二個(gè)printf函數(shù)輸出4。

46.A

47.A解析:該程序的關(guān)鍵是要搞清楚程序執(zhí)行的路線。由于x的值等于1,所以在switch語(yǔ)句中,程序從case1后面的語(yǔ)句開始執(zhí)行。由于case1后面沒有break語(yǔ)句,所以程序順序執(zhí)行case2后面的語(yǔ)句。程序共執(zhí)行了三條語(yǔ)句:a++;a++;b++;所以,變量a和b最后的值分別為2和l。選項(xiàng)A)正確。

48.B解析:本題考查庫(kù)函數(shù)調(diào)用的知識(shí)點(diǎn)。格式1:#include<文件名>,預(yù)處理程序在標(biāo)準(zhǔn)目錄下查找指定的文件;格式2:#include'文件名',預(yù)處理程序首先在引用被包含文件的源文件所在的目錄下搜索指定的文件,如沒找到,再按系統(tǒng)指定的標(biāo)準(zhǔn)目錄搜索。

49.A解析:for語(yǔ)句中的3個(gè)表達(dá)式可以同時(shí)省略,但兩個(gè);不能省略。所以選項(xiàng)A的說法錯(cuò)誤。

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

51.DD?!窘馕觥棵嫦?qū)ο笤O(shè)計(jì)方法與面向過程設(shè)計(jì)方法有本質(zhì)的不同,其基本原理是:使用現(xiàn)實(shí)世界的概念抽象地思考問題從而自然地解決問題。其特點(diǎn)包括:分類性、多態(tài)性、封裝性、模塊獨(dú)立性、繼承和多態(tài)性等。模塊化是結(jié)構(gòu)化程序設(shè)計(jì)的特點(diǎn)。

52.A解析:本題中,最主要的是掌握幾個(gè)有關(guān)文件函數(shù)的應(yīng)用。

函數(shù)名:fopen

功能:打開一個(gè)文件

調(diào)用方式FILE*fp;

fp=fopen(文件名,使用文件方式);

函數(shù)名:fprintf

功能:傳送格式化輸出到一個(gè)文件中

調(diào)用方式:fprintf(文件指針,格式字符串,輸出表列);

函數(shù)名:fclose

功能:關(guān)閉一個(gè)文件

調(diào)用方式:fclose(文件指針);

函數(shù)名:fscanf

功能:從磁盤文件執(zhí)行格式化輸入

調(diào)用方式:fscanf(文件指針,格式字符串,輸入列表)。

53.C

54.C答案C

解析:在語(yǔ)句“k=*f(a,b)”中,由于“()”的優(yōu)先級(jí)高于“*”,所以“*f(a,b);”表示其返回類型為指針的帶有兩個(gè)整型參數(shù)的函數(shù)。

55.A解析:本題考查函數(shù)調(diào)用時(shí)的參數(shù)傳遞。通過函數(shù)abc的執(zhí)行,將字符串中的字母a去掉,保留剩下的。由于是通過指針調(diào)用,所以改變字符串的結(jié)果。

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

57.B

58.B本題考查的是指向函數(shù)的指針。語(yǔ)句“int(*f)(int);”是對(duì)一個(gè)函數(shù)的聲明,其中f是指向該函數(shù)的指針,該函數(shù)有一個(gè)整型的參數(shù),函數(shù)返回值類型為整型。故答案選B)。

59.A解析:函數(shù)f1的功能是返回兩個(gè)數(shù)中的較大數(shù),熳的功能是返回兩個(gè)數(shù)中較小的數(shù)。具體執(zhí)行過程如下:

①執(zhí)行f1(a,b),即f1(4,3),返回值引執(zhí)行f1(c,d),即f1(5,2),返回值5;執(zhí)行e=f2(f1(a,b),f1(c,d)),即f2(4,5),返回值4。

②執(zhí)行f2(a,b),即f2(4,3),返回值3;執(zhí)行f2(c,d),即f2(5,2),返回值2;執(zhí)行f=f1(f2(a,b),f2(c,d)),即f1(3,2),返回值3。

③執(zhí)行g(shù)=a+b+c+d+e+f,即g=7。所以,程序輸出結(jié)果為4,3,7。

60.D

61.D解析:改變文件位置指針函數(shù)fseek()的功能:①改變文件的位置指針;②輔助實(shí)現(xiàn)文件的順序讀寫;③輔助實(shí)現(xiàn)文件的隨機(jī)讀寫。

62.A在函數(shù)point函數(shù)調(diào)用時(shí),系統(tǒng)自動(dòng)為函數(shù)的形參P分配內(nèi)存空間,并賦值為實(shí)參P的值。當(dāng)執(zhí)行語(yǔ)句P+=3;時(shí),系統(tǒng)操作的是形參P的內(nèi)存空間,更改形參P的內(nèi)容,而實(shí)參指針變量P的值未受影響,即指針變量作為函數(shù)參

63.D本題考查leon(tp)函數(shù),其功能是:測(cè)試所指的文件的位置指針是否已達(dá)到文件尾,如果已達(dá)到文件尾,則函數(shù)返回非0值;否則返回0,表示文件未結(jié)束。

64.Aauto用于聲明變量的生存期為自動(dòng),即將不在任何類、結(jié)構(gòu)、枚舉、聯(lián)合和函數(shù)中定義的變量視為全局變量,而在函數(shù)中定義的變量視為局部變量。這個(gè)關(guān)鍵字通常會(huì)被省,因?yàn)樗械淖兞磕J(rèn)就是aut0的。register定義的變量告訴編譯器盡可能的將變量存在CPU內(nèi)部寄存器中而不是通過內(nèi)存尋址訪問以提高效率。static變量會(huì)被放在程序的全局存儲(chǔ)區(qū)中,這樣可以在下一次調(diào)用的時(shí)候還可以保持原來的賦值。這一點(diǎn)是它與堆棧變量和堆變量的區(qū)別。變量用static告知編譯器,自己僅僅在變量的作用范圍內(nèi)可見。這一點(diǎn)是它與全局變量的區(qū)別。當(dāng)static用來修飾全局變量時(shí),它就改變了全局變量的作用域。extern限制在了當(dāng)前文件里,但是沒有改變其存放位置,還是在全局靜態(tài)儲(chǔ)存區(qū)。extem外部聲明,該變量在其他地方有被定義過。因此,答案為A選項(xiàng)。

65.B遍歷是按照一定規(guī)則對(duì)樹中全部結(jié)點(diǎn)逐一訪問的方法。二叉樹可由根結(jié)點(diǎn)、左子樹和右子樹三個(gè)部分組成。根據(jù)對(duì)根結(jié)點(diǎn)訪問的先后順序,可將遍歷方法分為先序遍歷、中序遍歷和后序遍歷三種。先序遍歷首先訪問根結(jié)點(diǎn),再先序遍歷左子樹,最后先序遍歷右子樹,可見遍歷是一個(gè)遞歸的過程。求樹的遍歷這種問題的關(guān)鍵在于認(rèn)清每棵子樹的根結(jié)點(diǎn)的訪問順序。題目給出了一棵樹的先序遍歷和中序遍歷的結(jié)點(diǎn)順序,先序遍歷的第一個(gè)結(jié)點(diǎn)為整棵樹的根結(jié)點(diǎn),即根結(jié)點(diǎn)為A,而在中序遍歷的順序中,結(jié)點(diǎn)A的前面還有DBGE四個(gè)結(jié)點(diǎn),表示這四個(gè)結(jié)點(diǎn)構(gòu)成以A為結(jié)點(diǎn)的二叉樹的左子樹,同理,中序遍歷中A結(jié)點(diǎn)后面的CHF三個(gè)結(jié)點(diǎn)構(gòu)成以A為結(jié)點(diǎn)的二叉樹的右子樹。于是原來的對(duì)一棵二叉樹的分析變?yōu)閷?duì)該二叉樹的左右子樹的分析。以左子樹為例,左子樹結(jié)點(diǎn)的先序遍歷為BDEG,中序遍歷為DBGE,該子樹的根結(jié)點(diǎn)為B,B結(jié)點(diǎn)的左子樹為一個(gè)結(jié)點(diǎn)D,右子樹為以E為根結(jié)點(diǎn),結(jié)點(diǎn)G是E的左孩子。同理,可對(duì)CH

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論