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

下載本文檔

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

文檔簡介

2021年甘肅省嘉峪關(guān)市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.以下選項中的表達式調(diào)用庫函數(shù)依次求-4.5的絕對值、-4.0的平方根值、30°角的正弦值和2的3次方值。正確的調(diào)用是()

A.abs(-4.5)B.sqrt(-4.0)C.sin(3.1416/6.0)D.paw(2.0,3.0)

2.有以下程序:structSTU{charname[10];intnum;floatTotalScore;};voidf(structSTU*p){structSTUs[2]={{"SunDan",20044,550},{"Penghua",20045,537}},*q=s;++p;++q;*p=*q;}main(){structSTUs[3]={{"YangSan",20041,703},{"LiSiGuo",20042,580}};f(s);printf("%s%d%3.0f\n",s[1].name,s[1].num,s[1].TotalScore);}程序運行后的輸出結(jié)果是______。

A.SunDan20044580

B.Penghua20045537

C.LiSiGUO20042580

D.SunDan20041703

3.

4.有以下程序:#include〈stdio.h〉voidfun(int*s){staticintj=0;do{s[j]=s[j]+s[j+1];}while(++j<2);}main(){inti.a(chǎn)[10]={1,2,3,4,5};for(i=1;i<3;i++)fun(a);for(i=0;i<5;i++)pfintf(“%d”,a[i]);printf(“\n”);}程序運行后的輸出結(jié)果是()。A.12345B.23445C.34756D.35745

5.以下與函數(shù)fseek(fp,0L,SEEK_SET)有相同作用的是

A.feof(fp)B.ftell(fp)C.fgetc(fp)D.rewind(fp)

6.下述關(guān)于數(shù)據(jù)庫系統(tǒng)的敘中正確的是______。

A.數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余

B.數(shù)據(jù)庫系統(tǒng)避免了一切冗余

C.數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的一致性是指數(shù)據(jù)類型的一致

D.數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù)

7.C語言中的變量只能由字母、數(shù)字和下劃線組成,且第一個字符()。

A.必須是字母B.必須是下劃線C.必須是下劃線和字母D.可以是字母.數(shù)字或下劃線中任一一種

8.下列關(guān)于AOE網(wǎng)的敘述中,不正確的是()。

A.關(guān)鍵活動不按期完成就會影響整個工程的完成時間

B.任何一個關(guān)鍵活動提前完成,那么整個工程將會提前完成

C.所有的關(guān)鍵活動提前完成,那么整個工程將會提前完成

D.某些關(guān)鍵活動提前完成,那么整個工程將會提前完成

9.用不帶頭結(jié)點的單鏈表存儲隊列時,其隊頭指針指向隊頭結(jié)點,其隊尾指針指向隊尾結(jié)點,則在進行刪除操作時()。

A.僅修改隊頭指針B.僅修改隊尾指針C.隊頭、隊尾指針都要修改D.隊頭,隊尾指針都可能要修改

10.定義學(xué)生選修課程的關(guān)系模式如下:SC(S#,Sn,C#,Cn,G,Cr)(其屬性分別為學(xué)號、姓名、課程號、課程名、成績、學(xué)分)則對主屬性部分依賴的是()。

A.C#→CnB.(S#,C#)→GC.(S#,C#)→S#D.(S#,C#)→C#

11.在一棵高度為5的理想平衡樹中,至少含有16個結(jié)點,最多含有()個結(jié)點。

A.31B.32C.30D.33

12.若x和y都是int型變量,x=100,y=200,且有程序片段:printf("%d",(x,y));上面程序片段的輸出結(jié)果()

A.200B.100C.100200D.輸出格式符不夠,輸出不確定的值

13.

14.下列程序的輸出結(jié)果是()。#include<stdio.h>main{inti;for(i=1;i<=10,i++){if((i*i>=20)&&(i*i<=100))break;}printf("%d\n",i*i;}A.49B.36C.25D.64

15.從堆中刪除一個元素的時間復(fù)雜以為____。

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

16.設(shè)森林F對應(yīng)的二叉樹為B,它有m個結(jié)點,B的根為p,p的右子樹的結(jié)點個數(shù)為n,森林F中第一棵樹的結(jié)點的個數(shù)是()。

A.m-nB.m-n-1C.n+1D.不能確定

17.

18.設(shè)有以下語句:charstr1[]="string",str2[8],*str3,*str4=="string;則______不是對庫函數(shù)的正確調(diào)用。

A.strcpy(str1,"HELLO1");

B.strcpy(str2,"HELLO2");

C.strcpy(str3,"HELLO3");

D.strcpy(str4,"HELLO4")

19.以下是根據(jù)文件大小分配存儲空間的一個算法偽代碼,請問其空間復(fù)雜度是多少()A.O(n)B.O(n^2)C.O(2^n)D.O(n*log(n))

20.視圖設(shè)計一般有3種設(shè)計次序,下列不屬于視圖設(shè)計的是______。

A.自頂向下B.由外向內(nèi)C.由內(nèi)向外D.自底向上

二、2.填空題(20題)21.有以下程序:

#include<stdio.h>

main()

{intn=0,m=1,x=2;

if(!n)x-=1;

if(m)x-=2;

if(x)x-=3;

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

}

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

22.在索引查找或分塊查找中,首先查找【】,然后再查找相應(yīng)的【】,整個索引查找的平均查找長度等于查找索引表的平均查找長度與查找相應(yīng)子表的平均查找長度之和。

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

#include<stdio.h>

main()

{chars[20];

scanf("%s",s);

printf("%s",s);

}

運行程序,輸入HOWAREYOU。

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

structNODE

{intk;

structNODE*link;

};

main()

{structNODEm[5],*p=m,*q=m+4;

inti=0;

while(p!=q){

p->k=++i;p++;

q->k=i++;q--;

}

q->k=i;

for(i=0;i<5;i++)printf("%d",m[i].k);

printf("\n");

}

25.數(shù)據(jù)庫技術(shù)的主要特點為數(shù)據(jù)的集成性、數(shù)據(jù)的高【】和低冗余性、數(shù)據(jù)獨立性和數(shù)據(jù)統(tǒng)一管理與控制。

26.無論對于順序存儲,還是鏈接存儲的棧和隊列來說,進行插入或刪除運算的時間復(fù)雜性均相同,則為【】。

27.下面程序的功能是:輸出100以內(nèi)能被3整除且個位數(shù)為9的所有整數(shù),清填空。main(){inti,j;for(i=0;();i++){j=i*10+9;if(j%3!=0)continue;printf("%d",j);}}

28.數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括5個部分,即數(shù)據(jù)項、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、______和處理過程。

29.【】是數(shù)據(jù)庫設(shè)計的核心。

30.以下程序的功能是根據(jù)輸入的"y"("Y")與"n"("N"),在屏幕上分別顯示出"ThisisYES."與"ThisisNO."??瞻滋幮枰钊氲膬?nèi)容是

#include<stdio.h>

voidYesNo(charch)

{switch(ch)

{case′y′:

case′Y′:printf("\nThisisYES.\n");

case′n′:

case′N′:printf("\nThisisNO.\n");}

main()

{charch;

printf("\nEnterachary,Yorn,N:");

ch=【】;

printf("ch;%c",ch);

YesNo(ch);}

31.以下程序運行后輸出結(jié)果是【】。

#include<stdio,h>

main()

{inta,b,c;

a=10;b:20;c=(a%b<1)‖(a/b>1);

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

}

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

intmystrlen(char*str)

{intI;

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

return(I);}

33.設(shè)函數(shù)findbig已定義為求3個數(shù)中的最大值。以下程序?qū)⒗煤瘮?shù)指針調(diào)用findbig函數(shù)。請?zhí)羁铡?/p>

main()

{intfindbig(int,int,int);

int(*f)(),x,y,z,big;

f=【】;

seanf("%d%d%d",&x,&y,&z);

big=(*f)(x,y,2);

printf("big=%d\n",big);

}

34.實體聯(lián)系模型是一種常用的高級概念數(shù)據(jù)模型,而______是實體聯(lián)系模型中的核心。

35.在深度為7的滿二叉樹中,度為2的結(jié)點個數(shù)為【】。

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

37.設(shè)有下列的程序段;

charstr[]="Hello";

char*ptr;

ptr=str;

執(zhí)行上面的程序段后,*(ptr+5)的值為______。

38.函數(shù)my_cmp()的功能是比較字符串s和t的大小,當s等于t時返回0,否則返回s和t的第一個不同字符的ASCII碼差值,即s>t時返回正值,當s<t時返回負值。請?zhí)羁铡?/p>

my_cmp(char*s,char*t)

{while(*s==*t)

{if(*s=='\0')return0;

++s;++t;

}return【】;

}

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

#include<string.h>

char*ss(char*s)

{returns+strlen(s)/2;}

main()

{char*p,*str="abcdefgh";

p=ss(str);printf("%s\n",p);

}

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

#include<stdio.h>

intt(intx,inty,intcp,intdp)

{cp=x*x+y*y;

如:dp=x*-y*y;

}

main()

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

t(a,b,c,D);

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

}

三、1.選擇題(20題)41.下面程序段的輸出為#nclude"stdio.h"main(){printf("%d\n",12<<2);}

A.0B.47C.48D.24

42.若有下列定義,則對a數(shù)組元素地址的正確引用是()。inta[5],*p=a;

A.p+5B.a+1C.&a+1D.&a[0]

43.若有以下定義,則不能代表字符。的表達式是______。chars[20]="programming",*ps=s;

A.ps+2B.s[2]C.ps[2]D.ps+=2,*ps

44.已知大寫字母A的ASCII碼值是65,小寫字母a的ASCII碼是97,則用八進制表示的字符常量'\101'是A.字符AB.字符aC.字符eD.非法的常量

45.設(shè)有兩個串p和q,求q在p中首次出現(xiàn)位置的運算稱作______。

A.連接B.模式匹配C.求子串D.求串長

46.計算機中,能夠用來與外存交換信息的是______。

A.鍵盤B.RAMC.顯示器D.ROM

47.下列描述中正確的是()。

A.軟件工程只是解決軟件項目的管理問題

B.軟件工程主要解決軟件產(chǎn)品的生產(chǎn)率問題

C.軟件工程的主要思想是強調(diào)在軟件開發(fā)過程中需要應(yīng)用工程化原則

D.軟件工程只是解決軟件開發(fā)過程中的技術(shù)問題

48.下列不是合法的C語言語句是()。

A.a=5B.{inti;i++;}C.;D.{;}

49.有以下程序段charch;intk;ch='a';k=12;printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);已知字符a的ASCII碼值為97,則執(zhí)行上述程序段后輸出結(jié)果是

A.因變量類型與格式描述符的類型不匹配輸出無定值

B.輸出項與格式描述符個數(shù)不符,輸出為零值或不定值

C.a,97,12k=12

D.a,97,k=12

50.以下程序的運行結(jié)果為#include"stdio.h"main(){intm,n;for(m=0,n=10;m<n;m+=3,n--);printf("%d,%d\n",m,n);}

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

51.數(shù)據(jù)庫DB、數(shù)據(jù)庫系統(tǒng)DBS、數(shù)據(jù)庫管理系統(tǒng)DBMS之間的關(guān)系是()。

A.DB包括DBS和DBMSB.DBMS包括DB和DBSC.DBS包括DB和DBMSD.沒有任何關(guān)系

52.索引屬于()。

A.模式B.內(nèi)模式C.外模式D.概念模式

53.設(shè)下面程序的可執(zhí)行文件名為“prg.exe”,在該程序所在子目錄下輸入以下命令行:prghellogood<回車>則程序的輸出結(jié)果是______。main()(intargc,char*argv[]){inti;if(argc<=0)return;for(i=1;i<argc;i++)printf("%c",*argv[i]);}

A.hellogoodB.hgC.helD.hellogood

54.有如下程序#defineN2#defineMN+1#defineNUM2*M+1main(){inti;for(i=1;i<=NUM;i++)printf("%d\n"i)}該程序中的for循環(huán)執(zhí)行的次數(shù)是______。

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

55.在“文件包含”預(yù)處理語句的使用形式中,當#include后面的文件名用"",(雙撇號)括起時,尋找被包含文件的方式是()。

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

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

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

D.僅僅搜索當前目錄

56.有如下程序main(){charch[2][5]={"6937","8254"},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>'\0';j+=2)s=10*s+p[i][j]-'0';printf("%d\n",s);}該程序的輸出結(jié)果是

A.69825B.63825C.6385D.693825

57.已知、棵二叉樹的后序遍歷序列是dabec,中序遍歷序列是debac,則它的前序遍歷序列是()。

A.acbedB.decabC.deabcD.cedba

58.在計算機中,算法是指()

A.加工方法B.解題方案的準確而完整的描述C.排序方法D.查詢方法

59.運行下列程序時,若輸入的數(shù)據(jù)為“1,2,3”,則輸出結(jié)果是()。main(){floata,b,c,t;scanf("%f,%f,%f",&a,&b,&c);if(a<

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";

60.對下述程序,正確的判斷是()。main(){inta,b;scanf("%d",&a);scanf("%d",&b);if(a>b)a+=b;b++;elseb+=a;a++;printf("%d,%d",a,b);}

A.有語法錯誤,不能通過編譯

B.若輸入數(shù)據(jù)2和5,則輸出3和7

C.若輸入數(shù)據(jù)5和2,則輸出7和3

D.若輸入數(shù)據(jù)5和5,則輸出6和10

四、選擇題(20題)61.

62.下列不屬于C語言關(guān)鍵字的是()。A.A.default

B.register

C.enum

D.external

63.以下程序的功能是:給r輸入數(shù)據(jù)后計算半徑為r的圓面積s。程序在編譯時出錯。

main()

/*Beginning*/

{intr;floats;

scanf("%d",&r);

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

}

若想糾正錯誤,應(yīng)該()。

A)更改注釋語句書寫位置B)存放圓半徑的變量r應(yīng)該定義為整型

C)輸出語句中不能加“s=”D)給計算面積的PI變量賦值

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

A.每個C語言程序文件中都必須要有一個main(.函數(shù)

B.在c語言程序中main(.函數(shù)的位置是固定的

C.c語言程序中所有函數(shù)之間都可以相互調(diào)用,與函數(shù)所在位置無關(guān)

D.在c語言程序的函數(shù)中不能定義另一個函數(shù)

65.下列關(guān)于數(shù)據(jù)流圖的描述正確的是()。

A.數(shù)據(jù)流圖是描述數(shù)據(jù)處理過程的工具

B.數(shù)據(jù)流圖間接支持系統(tǒng)的功能建模

C.數(shù)據(jù)流圖中帶箭頭的線段表示控制流

D.數(shù)據(jù)流圖是軟件詳細設(shè)計的工具

66.若有以下的定義:‘intt[3][2];”,能正確表示t數(shù)組元素地址的表達式是()。

A.&t[3][2]B.t[3]C.t[l]D.t[2][2]

67.對于循環(huán)隊列,下列敘述中正確的是()。

A.隊頭指針是固定不變的

B.隊頭指針一定大于隊尾指針

C.隊頭指針一定小于隊尾指針

D.隊頭指針可以大于隊尾指針,也可以小于隊尾指針

68.

有以下程序

#include<stdi0.h>

main

{FILE*fp;inta[0]一{1,2,3,0,0},i;

fp=fopen("d2.dat,"wb");

fwrite(a,sizeof(int),5,fp);

fwrite(a,sizeof(int),5,fp);

fclose(fp);

fp=fopen("d2.dat","rb");

fread(a.sizeof(int),10,fp);

fclose(fp);

for(i=0;i<10;i++)printft("%d",a[i]);

}

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

A.1,2,3,0,0,o,0,0,0,0,

B.1,2,3,1,2,3,0,0,0,0,

C.123,0,0,0,0,123,0,0,0,0,

D.1,2,3,0,0,1,2,3,0,0,

69.

70.有以下程序:

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

A.y=一1B.Y=0C.y=1D.while構(gòu)成無限循環(huán)

71.

有以下程序:

main

{inti,j;

for(j=10;j<11;j++)

{for(i=9;i<j;i++)

if(!(j%i))break;

if(i==j-1)

printf("%d",j);

}

}

輸出結(jié)果是()。

A.11B.10C.9D.1011

72.對于算法的每一步,指令必須是可執(zhí)行的。算法的()要求算法在有限步驟之后能夠達到預(yù)期的目的。

A.可行性B.有窮性C.正確性D.確定性

73.

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

A.c1^c2B.c1&c2C.~c2D.c1E.c2

74.

75.

76.如果在C程序中要用到庫函數(shù)中的字符串比較函數(shù)strcmp(),那么在程序前面應(yīng)該添加的頭文件是()。

A.stdio.hB.string,hC.a(chǎn)lloc.hD.math.H

77.

78.表達式3.6-5/2+1.2+5%2的值是()。A.3.8B.4.8C.3.3D.4.3

79.當用戶要求輸入的字符串中含有空格時,應(yīng)使用的輸入函數(shù)是()。

A.seanf

B.getchar

C.gets

D.getc

80.

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的作用是:將字符串tt中的大寫字母都改為對應(yīng)的小寫字母,其他字符不變。

例如,若輸入“I,anl,A,Student”,則輸出“i,am,a,student”。

請修改程序中的錯誤。使它能得到正確結(jié)果。

注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。

試題程序:

六、程序設(shè)計題(1題)82.請編寫函數(shù)proc,該函數(shù)的功能是:將放在字符串數(shù)組中的M個字符串(每串的長度不超過N),按順序合并組成一個新的字符串。

例如,若字符串數(shù)組中的M個字符串為:

ABCD

BCDEFG

CDEFGHI

則合并后的字符串內(nèi)容應(yīng)該是ABCDBCDEFGCDEF—GHl。

注意:部分源程序給出如下。

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

試題程序:

#include<stdio.h>

#include<conio.h>

#defineM3

#defineN20

voidproc(chararr[M][N],char*b)

{}

voidmain

{

charstr[M][N]={"ABCD","BCDEFG","

CDEFGHI"},i;

chararr[100]={"#############

#####");

printf("Thestring:\n");

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

puts(str[i]);

printf("\n");

proc(str,arr);

printf("TheAstring:\n");

printf("%s",arr);

printf("\n\n");

}

參考答案

1.C

2.B解析:f函數(shù)用了顯式傳地址的方式,因此主函數(shù)中的s值發(fā)生了變化。

3.D

4.D本題考查靜態(tài)變量,靜態(tài)變量有儲存已經(jīng)操作過的值,所以fun(a)s[O]=3,s[1]=5,s[2]=7,所以答案選擇D。

5.D解析:本題考查的是文件操作函數(shù).題目中fseek(fp,0L,SEEK_SET)的作用將文件指針定位到文件開始。feof(fp)的作用是判斷文件指針是否已到文件結(jié)尾,因此選項A不對。ftell(fp)的作用是獲取當前文件指針的位置,因此選項B不對。fgetc(fp)的作用是從文件中讀取一個字節(jié),因此選項C不對。rewind(中)的作用是將文件指針重定位到文件開頭,所以應(yīng)該選擇D。

6.A解析:由于數(shù)據(jù)的集成性使得數(shù)據(jù)可為多個應(yīng)用所共享,特別是在網(wǎng)絡(luò)發(fā)達的今天,數(shù)據(jù)庫與網(wǎng)絡(luò)的結(jié)合擴大了數(shù)據(jù)關(guān)系的應(yīng)用范圍。數(shù)據(jù)的共享自身又可極大地減少數(shù)據(jù)冗余性,不僅減少了不必要的存儲空間,更為重要的是可以避免數(shù)據(jù)的不一致性。所謂數(shù)據(jù)的一致性是指在系統(tǒng)中同一數(shù)據(jù)的不同出現(xiàn)應(yīng)保持相同的值,而數(shù)據(jù)的不一致性指的是同一個數(shù)據(jù)在系統(tǒng)的不同拷貝處有不同的值。

7.C

8.B

9.D

10.A關(guān)系SC中的主鍵是(S#,C#),但C#(課程號)單獨就可以決定Cn(課程名),存在著對主鍵的部分依賴。本題答案為A選項。

11.A

12.A

13.B

14.C本題考查for循環(huán)及if語句。當執(zhí)行到第一個滿足(i*i>一20)&&(i*i<=100)這個條件的i出現(xiàn)時,break跳出循環(huán),執(zhí)行下列的printf語句。

15.B

16.A

17.B本題考查標準輸入輸出函數(shù)和循環(huán)語句。gets(s)函數(shù)的作用是將輸入的字符讀入字符串s,直到遇到回車。而scanf函數(shù)接收字符串時的結(jié)束標志為回車或者空格。因此選項B)不能,選項C)和選項D)中按字符逐個讀入字符串s中,直到讀入的字符是換行符為止,因此B正確。

18.C解析:C語言中:strcpy(st1,st2);,其兩個參數(shù)均為字符指針或字符數(shù)組,選項C中的目的中指針str3沒有指向具體有效的存儲單元,故是錯誤的調(diào)用。

19.C

20.B解析:視圖設(shè)汁一般有3種設(shè)計次序,它們分別是自頂向下、自底向上和由內(nèi)

向外,它們又為視圖設(shè)計提供了具體的操作方法,設(shè)計者可根據(jù)實際情況靈活掌握,可以

單獨使用也可混合使用。

注意:數(shù)據(jù)庫概念設(shè)計的過程:首先選擇局部應(yīng)用,再進行局部視圖設(shè)計,最后

對局部視圖進行集成得到概念模式。

21.-4-4解析:因為n=0,所以!n為真,執(zhí)行x-=1;得到x=x=2-1=1;m=1為真,執(zhí)行x-=2;得到x=x-2=1-2=-1;x=-1為真,執(zhí)行x-=3;得到x=x-3=-1-3=-4。

22.索引表塊索引表\r\n塊

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

24.1343113431解析:初始化時,指針p指向m[0]的地址,指針q指向m[4]的地址,p!=q滿足循環(huán)條件,執(zhí)行循環(huán)語句,得到m[0].k=1,m[4].k=1,此時i=2,指針p指向m[1]的地址,指針q指向m[3]的地址,p!=q滿足循環(huán)條件,執(zhí)行循環(huán)語句,得到m[1].k=3,k=3,此時i=4,指針q指向m[2]的地址,p==q不滿足循環(huán)條件,則退出循環(huán),m[2].k=4。所以最后輸出為13431。

25.共享性共享性解析:數(shù)據(jù)庫技術(shù)的主要特點有以下幾個方面:數(shù)據(jù)的集成性,數(shù)據(jù)的高共享性與低冗余性,數(shù)據(jù)的獨立性,數(shù)據(jù)統(tǒng)一管理與控制。

26.O(2)

27.i<10i<10解析:分析程序,當(i=0,1,2,…)時,“j=i*10+9”語句的運行結(jié)果是(9,39,69,99)個位數(shù)為9的所有整數(shù);題中要求是100以內(nèi)的整數(shù),所以i<10;“if(j%3!=0)continue;”語句的功能是當條件不能被3整除時,繼續(xù)循環(huán)不執(zhí)行操作,直到能被3整除時輸出該數(shù),即輸出的數(shù)滿足條件100以內(nèi)能被3整除且個位數(shù)為9。

28.數(shù)據(jù)存儲數(shù)據(jù)存儲

29.數(shù)據(jù)模型數(shù)據(jù)模型

30.getchargetchar解析:考查了字符可以作為整型變量來對待,參與操作。題中要求根據(jù)輸入的字符調(diào)用函數(shù)YesNo來判斷輸入的字符是y(Y)還是n(N),字符的輸入可用字符輸入函數(shù)getchar。函數(shù)YesNo用來判斷一個字符是y(Y)還是n(N),主要用了一個switch多分支結(jié)構(gòu)來比較輸入字符與字符\ue008'y',\ue009'Y'、,'n','N'是否相等來實現(xiàn)的。

31.1020010200解析:程序中(a%b<1)||(a/b>1)的運算順序為先算括號→算術(shù)運算符→關(guān)系運算符→邏輯運算符。首先計算a%b=10,a/b=0,因為a%b<1為假(0),a/b>1也為假(0),所以整個表達式的結(jié)果為假(0),最后輸出a,b,c的值為10200。

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

33.findbigfindbig解析:本題首先定義了一個指向函數(shù)的指針變量f,如果希望讓它指向某個函數(shù),只需把函數(shù)名賦給該指針變量即可。所以說本題的空格處應(yīng)該填入函數(shù)名findbig。

34.實體聯(lián)系圖或E-R圖實體聯(lián)系圖或E-R圖解析:實體聯(lián)系圖(B-R圖)是實體聯(lián)系模型中的核心。由于E-R圖描述的是數(shù)據(jù)流圖中數(shù)據(jù)存儲及其之間的關(guān)系,因此它是數(shù)據(jù)庫觀念設(shè)計的最常用的工具。

35.63或26-163或26-1解析:在滿二叉樹中,每層結(jié)點都是滿的,即每層結(jié)點都具有最大結(jié)點數(shù)。深度為k的滿二叉樹,一共有2k-1個結(jié)點,其中包括度為2的結(jié)點和葉子結(jié)點。因此,深度為7的滿二叉樹,一共有27-1個結(jié)點,即127個結(jié)點。根據(jù)二叉樹的另一條性質(zhì),對任意一棵二叉樹,若終端結(jié)點(即葉子結(jié)點)數(shù)為n0,而其度數(shù)為2的結(jié)點數(shù)為n2,則n0=n2+1。設(shè)深度為7的滿二叉樹中,度為2的結(jié)點個數(shù)為x,則改樹中葉子結(jié)點的個數(shù)為x+1。則應(yīng)滿足x+(x+1)=127,解該方程得到,x的值為63。結(jié)果上述分析可知,在深度為7的滿二叉樹中,度為2的結(jié)點個數(shù)為63。

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

37.'\0''\\0'解析:本題涉及字符數(shù)組和指針的兩個知識點:①在C語言中,字符型數(shù)組在存放字符串時會自動在末尾加上字符串結(jié)束標識符'\\0'所以題中數(shù)組str有6個元素。②ptr指向數(shù)組str的首地址,ptr+5是指向str[5],*(ptr+5)是引用str[5]的值,即'\\0'。

38.*s-*t*s-*t解析:兩字符串大小比較必須從它們的首字符開始,在對應(yīng)字符相等情況下循環(huán),直至不相等結(jié)束。相等時,若字符串已到了字符串的結(jié)束標記符,則兩字符串相同,函數(shù)返回0值;如還有后繼字符,則準備比較下一對字符。對應(yīng)字符不相同,循環(huán)結(jié)束。循環(huán)結(jié)束時,就以兩個當前字符的差返回。所以在空框處應(yīng)填入*s-*t,保證在e>t時返回正值,當s<t時返回負值。

39.efghefgh解析:函數(shù)ss返回形參s所指向的符號串的后半部分,故p='efgh'。

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

41.C

42.D解析:本題考查如何引用數(shù)組元素的地址。

選項A)中,p+5引用的是a[5]的地址,而數(shù)組a只有5個元素,即a[0]、a[1],a[2]、a[3]、a[4],所以引用錯誤;選項B)中,*a+1指的是將數(shù)組a的第一個元素加1;選項C)中,這種引用方式錯誤;選項D)中,&a[0]引用的是數(shù)組的首地址。

43.A解析:ps是指針變量,ps+2是地址值,表示s[2]的地址,并不能代表s[2]的值‘o’;選項B、C、D均能代表s[2]的值‘o’。

44.A本題考查的知識點是轉(zhuǎn)義字符。題目中的關(guān)鍵是八進制101的十進制是多少.八進制的101轉(zhuǎn)換為十進制為65,也就是字符A的ASCII。

45.B解析:子串的定位操作通常稱作串的模式匹配,是各種串處理系統(tǒng)中最重要的操作之一,算法的基本思想是:從主串的開始字符起,與模式的第一個字符比較,若相等,則繼續(xù)比較后續(xù)字符,否則從主串的下一個字符起再重新與模式的字符比較,依次類推,直至模式中的每一個字符依次和主串中的一個連續(xù)的字符序列相等,稱匹配成功,否則稱匹配不成功。

46.B解析:RAM中存儲著當前使用的程序、數(shù)據(jù)、中間結(jié)果和與外存交換的數(shù)據(jù),CPU根據(jù)需要可以直接讀/寫RAM中的內(nèi)容。

47.CC?!窘馕觥寇浖こ淌侵笇⒐こ袒乃枷霊?yīng)用于軟件的開發(fā)、應(yīng)用和維護的過程,包括軟件開發(fā)技術(shù)和軟件工程管理。

48.A解析:選項A)是一個表達式,它后面沒有分號結(jié)尾(C語言中規(guī)定語句必須以分號結(jié)束),所以它不是語句;選項B)用一個花括號把幾條語句括起來了,這是一個復(fù)合語句;選項C)中只有一個分號,是一個空語句;選項D)是個復(fù)合語句,也是一個空語句。

49.D解析:輸出格式控制符%c表示將變量以字符的形式輸出;輸出格式控制符%d表示將變量以帶符號的十進制整型數(shù)輸出,所以第一個輸出語句輸出的結(jié)果為a,97;第二個輸出語句輸出的結(jié)果為k=12。

50.C解析:for后一對括號中的表達式可以是任意有效的C語言表達式。該題目的循環(huán)體部分為空語句,循環(huán)控制條件為m<n,每一次m增3,n減1,每當循環(huán)體執(zhí)行結(jié)束時,循環(huán)控制變量m,n就會分別被增3和減1。

51.CC。【解析】數(shù)據(jù)庫系統(tǒng)(DBS)由數(shù)據(jù)庫(DBS)、數(shù)據(jù)庫管理系統(tǒng)(DBMS)、數(shù)據(jù)庫管理員、硬件平臺和軟件平臺五個部分組成,可見DB和DBMS都是DBS的組成部分。

52.B解析:內(nèi)模式(InternalSchemA)又稱物理模式(PhysicalSchemA),它給出了數(shù)據(jù)庫物理存儲結(jié)構(gòu)與物理存取方法,如數(shù)據(jù)存儲的文件結(jié)構(gòu)、索引、集簇及hash等存取方式與存取路徑。數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)具有高共享性和低冗余性,但不能完全避免數(shù)據(jù)冗余;數(shù)據(jù)的一致性是指在系統(tǒng)中同一數(shù)據(jù)的不同出現(xiàn)應(yīng)保持相同的值。

53.B

54.B解析:該題目測試考生對宏替換的理解。這是一種簡單的情況:不帶參數(shù)的宏。關(guān)鍵要注意在對2*M+1進行宏替換時,要將宏名M原封不動地代進去,得到NUM的形式為2*N+1+1(千萬不要隨意給N+1加上小括號,使NUM變?yōu)?。(N+1)+1,這就是宏名和變量名之間的區(qū)別),在將N代進去,得到NUM的值為6。

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

56.C解析:該題稍微難一點。主要要搞清楚以下幾點:①定義了一個指針數(shù)組char.p[2]后,程序中第一個循環(huán)for(i=0;i<2;i++)p[i]=ch[i];的作用,是使指針數(shù)組的p[0]元素(它本身是一個指針)指向了二維數(shù)組ch的第一行字符串,并使指針數(shù)組的p11)元素指向了二維數(shù)組ch的第二行字符串,這樣,就使指針數(shù)組p和二維數(shù)組ch建立起了一種對應(yīng)關(guān)系,以后對二維數(shù)組ch的某個元素的引用就有兩種等價的形式:ch[i][j]或p[i][j]。②對二維數(shù)組ch的初始化,使其第一行ch[0]中存入了字符串'6937',第二行ch[1]中的內(nèi)容為字符串'8254'。③程序中第二個循環(huán)中的循環(huán)體s=e*10+p[i][j]-‘0’;的功能是這樣的,每執(zhí)行一次,將s中的值乘以10(也即,將s中的數(shù)值整體向左移動一位,并在空出來的個位上添一個0),再將當前p[i][j]中的字符量轉(zhuǎn)換為相應(yīng)的數(shù)字,然后把這個數(shù)字加到s的個位上。④注意到內(nèi)層循環(huán)的循環(huán)條件p[i][j]>,0,是指p[i][j]中的字符只要不是字符串結(jié)束標志,\\0,就繼續(xù)循環(huán),語句j+=2;是使下標j每次增加2,也即一個隔一個地從p[i]所指向的字符串中取出字符。經(jīng)過上述解析后,不難看出,該程序首先從p[0]所指向的字符串'6937'中一個隔一個地取出字符,分別是‘6’和‘3’,然后從p[1]所指向的字符串'8254'中一個隔一個地取出字符,分別是‘8’和‘5’,同時經(jīng)過轉(zhuǎn)換和相加運算后,結(jié)果s中的值應(yīng)該是6385,所以,正確答案是C)。

57.D解析:依據(jù)后序遍歷序列可確定根結(jié)點為c,由中序遍歷序列可知其左子樹由deba構(gòu)成,右子樹為空;又由左子樹的后序遍歷序列可知其根結(jié)點為e,由中序遍歷序列可知其左子樹為d,右子樹由ba構(gòu)成,如圖所示。由此可知該二叉樹的前序遍歷序列為選項D)。

58.B在計算機中,算法被定義為對一個問題求解步驟的一種描述,是求解問題的方法,它是指令的有限序列,其中每條指令表示一個或者多個操作。算法具有有窮性、確定性、可行性、輸入和輸出五大特點。

在本題中,選項A、C、D的說法明顯偏離了算法的定義,因此正確答案選B。

59.B解析:在定義數(shù)組時,如果賦給的初始值個數(shù)大于數(shù)值的長度

溫馨提示

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

評論

0/150

提交評論