2021年浙江省嘉興市全國計算機(jī)等級考試C語言程序設(shè)計真題(含答案)_第1頁
2021年浙江省嘉興市全國計算機(jī)等級考試C語言程序設(shè)計真題(含答案)_第2頁
2021年浙江省嘉興市全國計算機(jī)等級考試C語言程序設(shè)計真題(含答案)_第3頁
2021年浙江省嘉興市全國計算機(jī)等級考試C語言程序設(shè)計真題(含答案)_第4頁
2021年浙江省嘉興市全國計算機(jī)等級考試C語言程序設(shè)計真題(含答案)_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2021年浙江省嘉興市全國計算機(jī)等級考試C語言程序設(shè)計真題(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.

2.

3.算法的時間復(fù)雜度取決于()

A.問題的規(guī)模B.待處理數(shù)據(jù)的初態(tài)C.A和B

4.以下程序段運(yùn)行后x的值為()。inti,j,x=0;for(i=3;i>=1;i--)for(j=1;j<=i;j++)x=x+2A.8B.14C.10D.12

5.C語言中不合法的字符串常量是

A.\121B.'Y'C.\n\nD.ABCD\x6d

6.有以下程序:fun(intx){intp;if(x=0||x==1)return(3);p=x-fun(x-2);returnp;}main(){printf("%d\n",fun(7));}執(zhí)行后的輸出結(jié)果是()。

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

7.具有10個葉子結(jié)點(diǎn)的二叉樹中有()個度為2的結(jié)點(diǎn)。

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

8.設(shè)二叉樹的中序序列為BCDA,前序序列為ABCD,則后序序列為()。

A.CBDAB.DCBAC.BCDAD.ACDB

9.下列關(guān)于宏的敘述中正確的是()。

A.宏替換沒有數(shù)據(jù)類型限制

B.宏定義必須位于源程序中所有語句之前

C.宏名必須用大寫字母表示

D.宏調(diào)用比函數(shù)調(diào)用耗費(fèi)時間

10.判定一個順序棧st(最多元素為MaxSize)為滿的條件是()。A.st->top!B.st->top!C.top==-1D.top==MaxSize

11.

12.有以下程序:#include<stdio.h>#include<strin9.h>main(){printf{"%d\n",strlen("%d\n",strlen("ATS\n012\|"));}程序運(yùn)行后的輸出結(jié)果是()。A.3B.8C.4D.9

13.下列數(shù)據(jù)模型中,具有堅實(shí)理論基礎(chǔ)的是()。

A.層次模型B.網(wǎng)狀模型C.關(guān)系模型D.以上3個都是

14.有種數(shù)據(jù)結(jié)構(gòu)叫跳躍列表(SkipList),它是一種基于并聯(lián)的鏈表的隨機(jī)化數(shù)據(jù)結(jié)構(gòu),其效率可比擬于二叉查找樹(對于大于數(shù)操作需要O(logn)平均時間)。它是按層建造的。底層是一個普通的有序鏈表。每個更高層都充當(dāng)下面列表的“快速跑道”,這里在層i中的元素按概率l/p出現(xiàn)在層i+1中。平均起來,每個元素都在p/(p-1)個列表中出現(xiàn),而最高層的元素(通常是在跳躍列表前段的一個特殊的頭元素)在O(logpn)個列表中出現(xiàn)。調(diào)節(jié)p的大小可以在內(nèi)存消耗和時間消耗上進(jìn)行折中。試分析在該數(shù)據(jù)結(jié)構(gòu)中查找一個元素的平均時間復(fù)雜度。

A.O(logn)B.O(n)C.O(n*logn)D.以上都不正確

15.以下對C語言函數(shù)的有關(guān)描述中,正確的是

A.在C語言中調(diào)用函數(shù)時,只能把實(shí)參的值傳給形參,形參的值不能傳送給實(shí)參

B.C函數(shù)既可以嵌套定義又可以遞歸調(diào)用

C.函數(shù)必須有返回值,否則不能使用函數(shù)

D.函數(shù)必須有返回值,返回值類型不定

16.在Internet中,域名服務(wù)器的主要功能是實(shí)現(xiàn)()的轉(zhuǎn)換。

A.IP地址到域名(主機(jī)名字)B.域名到IP地址C.主機(jī)IP地址和路由器IP地址之間D.路由器IP地址之問

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

A.結(jié)構(gòu)體變量中的成員可以是簡單變量、數(shù)組或指針變量

B.不同結(jié)構(gòu)體的成員名不能相同

C.結(jié)構(gòu)體定義時,其成員的數(shù)據(jù)類型可以是本結(jié)構(gòu)體類型

D.結(jié)構(gòu)體定義時,類型不同的成員項之間可以用逗號隔開

18.請選出以下程序的輸出結(jié)果()#include<stdio.h>sub(x,y,z)intx,y,*z;{*2=y(tǒng)-x;}main(){inta,b,c;sub(10,5,&A);sub(7,a,&B);sub(a,b,&C);printf("%d,%d,%d\n",a,b,C);}

A.5,2,3B.-5,-12,-7C.-5,-12,-17D.5,-2,-7

19.樹是結(jié)點(diǎn)的集合,它的根結(jié)點(diǎn)數(shù)目是()。

A.有且只有1B.1或多于1C.0或1D.至少2

20.若以下選項中的變量已正確定義,則正確的賦值語句是()。

A.x1=26.8%3B.1+2=x2C.x3=0x12D.x4=1+2=3

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

main()

{inta,b,k=4,m=6,*p1=&k,*p2=&m;

a=p1=&m;

b=(*p1)/(*p2)+7;

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

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

}

執(zhí)行該程序后,a值為【】,b值為【】。

22.在對文件進(jìn)行操作的過程中,若要求指針的位置回到文件的開頭,應(yīng)當(dāng)調(diào)用的函數(shù)是【】。

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

24.以下isprime函數(shù)的功能是判斷形參a是否為素數(shù),如果是素數(shù),函數(shù)返回1,否則返回0。

intisprime(inta)

inti;

for(i=2;i<=a/2;i++)

if(a%i==0)【】;

【】;

}

25.數(shù)據(jù)結(jié)構(gòu)分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),線性表、棧和隊列都屬于【】。

26.函數(shù)fun的功能是計算xn。

doublefun(doublex,intn)

{inti;doubley=1;

for(i=1;i<=n;i++)y=y*x;

returny;

}

主函數(shù)中已正確定義m、a、b變量并賦值,并調(diào)用fun函數(shù)計算:m=a4+b4-(a+b)3。實(shí)現(xiàn)這一計算的函數(shù)調(diào)用語句為【】。

27.設(shè)一棵二叉樹的中序遍歷結(jié)果為DBEAFC,前序遍歷結(jié)果為ABDECF,則后序遍歷結(jié)果為【】。

28.若a=10,b=20,則表達(dá)式!(a<b)的值是【】。

29.函數(shù)de1ete(s,i,n)的作用是從字符串s中刪除從笫i個字符開始的n個字符,請?zhí)羁铡?/p>

voidde1ete(chars[],inti,intn)

{intj,k,length=O;

whi1e(s[length])

【】

-i;

j=i;

}

if(【】)

{k=i+n;

if(i+n<=length)

whi1e(k<length)

s[j++]=s[k++];

s[j]='\0;}

30.以下定義的結(jié)構(gòu)體類型擬包含兩個成員,其中成員變量info用來存入整形數(shù)據(jù);成員變量link是指向自身結(jié)構(gòu)體的指針,請將定義補(bǔ)充完整。

structnode

{intinfo;

【】link;};

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

#include<stdio.h>

voidswap(int*a,int*b)

{int*t;

t=a;a=b;b=t;

}

main()

{inti=3,j=5,*p=&i,*q=&j;

swap(p,q);printf("%d%d\n",*p,*q);

}

32.若有定義inta=10,b=9,c=8;,接著順序執(zhí)行下列語句,變量b中的值是【】。

c=(a-=(b-5));

c=(a%11)+(b=3);

33.下列程序中字符串中各單詞之間有一個空格,則程序的輸出結(jié)果是【】。

#include<string.h>

main()

{charstr1[]="Howdoyoudo",*p1=str1;

strcpy(str1+strlen(str1)/2,"eshe");

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

}

34.在長度為n的有序線性表中進(jìn)行二分查找。最壞的情況下,需要的比較次數(shù)為【】。

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

36.請在以下程序第一行的下劃線處填寫適當(dāng)內(nèi)容,使程序能正確運(yùn)行。

【】(double,double);

main()

{doublex,y;

scanf("%1f%1f",&x,&y);

printf("%1f\n",max(x,y));

}

doublemax(doublea,doubleB)

{return(a>b?a:b);}

37.數(shù)據(jù)的基本單位是______。

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

#include<stdio.h>

main()

{staticchara[]="language",b[]="program";

char*ptrl=a,*ptr2=b;

intk;

for(k=0;k<7;k++)

if(*(ptrl+k)==*(ptr2+k))

printf("%c",*(ptrl+k));}

39.若有下列定義和語句:

char*s1="12345",*s2="1234";

printf("%d\n",strlen(strcpy(s1,s2)));

則輸出結(jié)果為______。

40.若有以下定義:

chara;intb;

floatc;doubled;

則表達(dá)式a*b+d-c值的類型為【】。

三、1.選擇題(20題)41.下列敘述中正確的是()。

A.黑箱(盒)測試方法完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征

B.黑箱(盒)測試方法主要考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征

C.白箱(盒)測試不考慮程序內(nèi)部的邏輯結(jié)構(gòu)

D.上述3種說法都不對

42.以下不是面向?qū)ο笏枷胫械闹饕卣鞯氖?/p>

A.多態(tài)B.繼承C.封裝D.垃圾回收

43.在數(shù)據(jù)管理技術(shù)的發(fā)展過程中,可實(shí)現(xiàn)數(shù)據(jù)共享的是()

A.人工管理階段B.文件系統(tǒng)階段C.數(shù)據(jù)庫系統(tǒng)階段D.系統(tǒng)管理階段

44.在一棵二叉樹上第5層的結(jié)點(diǎn)數(shù)最多是______。

A.8B.16C.32D.15

45.以下不能正確進(jìn)行字符串賦初值的語句是

A.charstr[5]="good!";

B.charstr[]="good!";

C.char*srt="good!";

D.charstr[5]={'g','o','o','d'};

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

A.C程序由函數(shù)組成

B.C程序由主函數(shù)構(gòu)成

C.C程序由函數(shù)和過程構(gòu)成

D.在C程序中無論是整數(shù)還是實(shí)數(shù),都可以正確無誤的表示出來

47.在軟件生產(chǎn)過程中,需求信息的來源是()

A.程序員B.項目經(jīng)理C.設(shè)計人員D.軟件用戶

48.下述關(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ù)

49.數(shù)據(jù)的存儲結(jié)構(gòu)是指()。

A.數(shù)據(jù)所占的存儲空間

B.數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機(jī)中的存放形式

C.數(shù)據(jù)在計算機(jī)中的順序存儲方式

D.存儲在計算機(jī)外存中的數(shù)據(jù)

50.下面程序的運(yùn)行結(jié)果是#include<stdio.h>main(){chara[]="morning",t;inti,j=0;for(i=1;i<7;i++)if(a[j]<a[i])j=i;t=a[j];a[j]=a[7];a[7]=a[j];puts[a];}

A.mrgninrB.moC.moringD.morning

51.若有說明:long*p,a;則不能通過scanf語句正確給輸入項讀入數(shù)據(jù)的程序段是______。

A.*p=&a;scanf("%ld",p);

B.p=(long*)malloc(8);scanf("%ld",p);

C.scanf("%ld",p=&a);

D.scanf("%ld",&a);

52.有以下程序:inta=2;intf(int*a){return(*a)++;)main(){ints=0;{inta=5;s+=f(&a);}s+=f(&a);printf("%d\n',s);}執(zhí)行后輸出結(jié)果是()。

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

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

main()

{inta;

a=-4+4*5-6;printf("d",a);

a=4+4%5-6;printf("%d",a);

a=-3+4%6/5;printf("%d",a);

a=(7+6)%5/2;printf("%d",a);

}

A.102-31B.10-221C.11-221D.10221

54.若有結(jié)構(gòu)體定義:structstu{intnum;charsex;intage;}a1,a2;則下列語句中錯誤的是()。

A.printf("%d,%c,%d",a1);

B.a2.age=a1.age;

C.a1.age++;

D.a1.num=5;

55.以下程序運(yùn)行時若要正確輸出函數(shù)的入口地址和輸入數(shù)的絕對值,應(yīng)在程序空缺處填入的正確選項是()。abs(intx){if(x>=0)returnx:elsereturn-x;}main(){inty,z,(*p)(intx)=abs;scanf("%d",&y);z=(*p)(y);______;}

A.printf("%d%d\n",&p,z)

B.printf("%d%d\n",p,z)

C.printf("%d%d\n",*p,z)

D.Printf("%d%d\n",p,*z)

56.若有定義:char*st="howareyou";下列程序段中正確的是

A.chara[11],*p;strcpy(p=a+1,&st[4]);

B.chara[11];strcpy(++a,st);

C.chara[11];strcpy(a,st);

D.chara[],*p;strcpy(p=&a[1],st+2);

57.以下程序運(yùn)行后,輸出結(jié)果是()#include<stdio.h>ss(char*s){char*p=s;while(*p)p++return(p-s);}main(){char*a=“abded”inti;i=ss(a);printf(“%d\n”,i);}A.8B.7C.6D.5

58.以下敘述中正確的是______。

A.C語言比其他語言高級

B.C語言可以不用編譯就能被計算機(jī)識別執(zhí)行

C.C語言以接近英語國家的自然語言和數(shù)學(xué)語言作為語言的表達(dá)形式

D.C語言出現(xiàn)的最晚,具有其他語言的一切優(yōu)點(diǎn)

59.對于下面的程序#include<stdio.h>#include<string.h>char*scmp(char*s1,char*s2){if(strcmp(s1,s2)<0)return(s1);elsereturn(s2);}main(){inti;charstring[20],str[3][20];for(i=0;i<3;i++)gets(str[i]);strcpy(string,scmp(str[0],str[1]));strcpy(string,scmp(string,str[2]));printf("%s\n",string);}若運(yùn)行時依次輸入abcd、abba和abc三個字符串,則輸出結(jié)果為______。

A.abcdB.abbaC.abcD.abca

60.閱讀下列程序,則運(yùn)行結(jié)果為#include"stdio.h"fun(){staticintx=5;x++;returnx;}main(){inti,x;for(i=0;i<3;i++)x=fun();printf("%d\n",x);}

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

四、選擇題(20題)61.以下不能輸出字符A的語句是()(注:字符A的ASCIl碼值為65,字符a的ASCIl碼值為97)。

62.

有以下程序

#include<stdio.h>

main

{inty=9;

for(;y>0;y--)

if(y%3==0)printf("%d",--y);

}

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

A.741B.963C.852D.875421

63.下列選項不符合良好程序設(shè)計風(fēng)格的是()。

A.源程序要文檔化B.數(shù)據(jù)說明的次序要規(guī)范化C.避免濫用goto語句D.模塊設(shè)計原則是高耦合、高內(nèi)聚

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

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

#include<stdio.h>

voidmain()

{inta,b,d=241;

a=d/100%9;

b=(-1)&&(-1);

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

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

66.在長度為n的有序線性表中進(jìn)行二分查找,最壞情況下需要比較的次數(shù)是()。

A.0(n)B.D(n2)C.O(1092n)D.0(nl092n)

67.對線性表進(jìn)行二分法檢索,其前提條件是()。A.A.線性表以順序方式存儲,并按關(guān)鍵碼值排好序B.線性表以順序方式存儲,并按關(guān)鍵碼的檢索頻率排好序

C.線性表以鏈?zhǔn)椒绞酱鎯?,并按關(guān)鍵碼值排好序

D.線性表以鏈?zhǔn)椒绞酱鎯?,并按關(guān)鍵碼的檢索頻率排好序

68.

69.已知longi=32768;執(zhí)行語句printf(“%d”,i);屏幕顯示()。

A.-1B.-32768C.1D.32768

70.

71.有以下函數(shù)定義:

voidfun(intn,doublex){……}

若以下選項中的變量都已正確定義并賦值,則對函數(shù)fun正確調(diào)用的語句是

A.fun(inty,doublem);B.k=fun(10,12.5);

C.fun(x,n);D.voidfun(n,x);

72.

73.

有如下程序:

#include<stdio.h>

main

{FILE*fp1;

fp1=fopen("f1.txt","w");

fprintf(fp1,"abe");

fclose(fp1);

}

若文本文件f1.txt中原有內(nèi)容為:good。則運(yùn)行以上程序后文件f1.txt中的內(nèi)容為()。

A.goodabcB.abcdC.abcD.abcgood

74.設(shè)變量已正確定義并賦值,以下正確的表達(dá)式是()。

A.x=y*5=x+z

B.int(15.8%5.

C.x=y+z+5,++y

D.x=25%5.0

75.有以下程序段

main()

{charx=040;

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

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

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

76.以下結(jié)構(gòu)體類型說明和變量定義中正確的是()。

77.關(guān)系模型允許定義三類數(shù)據(jù)約束,下列不屬于數(shù)據(jù)約束的是()。A.A.實(shí)體完整性約束B.參照完整性約束C.域完整性約束D.用戶自定義的完整性約束

78.

79.有如下程序

#include<stdio.h>

main()

{

FILE*fp1;

fp1=fopen("f1.txt","w");

fprintf(fp1,"abc");

fclose(fp1);

}

若文本文件f1.txt中原有內(nèi)容為good,則運(yùn)行以上程序后,文件f1.txt中的內(nèi)容為

A.goodabcB.a(chǎn)bcd

C.a(chǎn)bcD.a(chǎn)bcgood

80.

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc的功能是:讀入一個字符串(長度<20),將該字符串中的所有字符按ASCII碼升序排序后輸出。

例如,輸入opdye,則應(yīng)輸出deopy。

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

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

試題程序:

#include<string.h>

#include<stdlib.h>

#include<conio.h>

#include<stdio.h>

//****found****

intproc(charstr[])

{

charc;

unsignedi,j;

for(i=0;i<strlen(str)-1;i++)

for(j=i+1;j<strlen(str);j++)

if(str[i]>str[j])

{

c=str[j]:

//****found****

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

str[i]=c;

}

}

voidmain

{

charstr[81];

system("CLS");

printf("\nPleaseenteracharacter

string:");

gets(str);

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

proc(str);

printf("\nAftersortingdecendingly:\n

%s",str);

}

六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,定義了NxN的二維數(shù)組,并在主函數(shù)中自動賦值。請編寫函數(shù)fun(),該函數(shù)的功能是使數(shù)組上三角元素中的值乘以m。若m的值為2,a數(shù)組中的值為197238456則返回主程序后a數(shù)組中的值應(yīng)為2181426164512注意:部分源程序在文件prog1.c中。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:1#include2#include3#include4#include5#defineN56voidfun(inta[][N],intm)7{89}10main()11{12inta[N][N],m,i,j;13FILE*out;14printf("***Thearray***\n");15for(i=0;i<n;i++)16{for(j=0;j<n;i++)27{for(j=0;j38{for(j=0;j<n;j++)39fprintf(out,"%4d",a[i][j]);40fprintf(out,"\n");41}42fclose(out);43/*********found********/44}1voidfun(inta[][n],intm)2{3inti,j;4for(j=0;j<n;j++)5:for(i=0;i<=j;i++)6:a[i][j]=a[i][j]*m;/*上三角元素中的值乘以m*/

參考答案

1.C

2.A

3.C

4.D

5.B解析:字符串常量是由雙引號括起來的一串字符,其中的雙引號不可缺少。由此可知,選項A)、C)、D)都是含法的字符串常量,而選B)是一個字符常量。

6.C解析:x=7,通過遞歸調(diào)用fun函數(shù)后得到結(jié)果。

7.B

8.B二叉樹的前序序列為ABCD,由于前序遍歷首先訪問根節(jié)點(diǎn),可以確定該二叉樹的根節(jié)點(diǎn)是A。再由中序序列為BCDA,可知以A為根節(jié)點(diǎn)的該二叉樹只存在左子樹,不存在右子樹,故后序序列為DCBA。本題答案為B選項。

9.A宏定義寫在函數(shù)的花括號外,作用域為其后的程序,通常在文件的最開頭,所以B選項錯|誤。宏名一般用大寫字母,但不是必須用大寫字母,所以C選項錯誤。宏展開不占運(yùn)行時間,只占編譯時間,函數(shù)調(diào)用占運(yùn)行時間(分配內(nèi)存、保留現(xiàn)場、值傳遞、返回值),所以D選項錯誤。故本題答案為A選項。

10.D

11.D

12.B本題考查strlen函數(shù)和轉(zhuǎn)移字符,strlen函數(shù)的功能是求字符串的長度,在本題中有“\”,C語言中“\”是轉(zhuǎn)義字符,在計算長度時會將轉(zhuǎn)義符以及后面的第一個字符作為1個長度進(jìn)行計算,所以答

13.C在數(shù)據(jù)庫設(shè)計中,目前常用的數(shù)據(jù)模型主要有三種,分別是層次模型、網(wǎng)狀模型和關(guān)系模型。

層次模型是數(shù)據(jù)庫系統(tǒng)中最早出現(xiàn)的數(shù)據(jù)模型。我們通常把滿足以下兩個條件的數(shù)據(jù)模型稱為層次模型。

(1)有且僅有一個結(jié)點(diǎn)無雙親,這個結(jié)點(diǎn)稱為根結(jié)點(diǎn)。

(2)其他結(jié)點(diǎn)有且僅有一個雙親。

層次模型用樹形結(jié)構(gòu)來表示各實(shí)體與實(shí)體間的聯(lián)系。實(shí)體是數(shù)據(jù)庫中數(shù)據(jù)描述的對象,可以是一個人、一種商品等。在層次模型中,每個結(jié)點(diǎn)表示一個記錄類型,記錄之間的聯(lián)系用結(jié)點(diǎn)之間的連線表示,這種聯(lián)系是父子之間一對多的聯(lián)系。記錄就是描述實(shí)體的相關(guān)數(shù)據(jù)。

如果取消層次模型中的兩個限制,即允許一個以上的結(jié)點(diǎn)無雙親,則每一個結(jié)點(diǎn)可以有多個父結(jié)點(diǎn),便形成了網(wǎng)狀。我們把網(wǎng)狀表示實(shí)體之間聯(lián)系的模型稱為網(wǎng)狀模型。

關(guān)系模型用表格形式表示實(shí)體類型及其實(shí)體間的聯(lián)系。關(guān)系模型是目前最重要的一種模型,它是建立在嚴(yán)格的數(shù)學(xué)概念的基礎(chǔ)上的,具有最堅實(shí)的理論基礎(chǔ)。關(guān)系模型的基本數(shù)據(jù)結(jié)構(gòu)是二維表,每一張二維表稱為一個關(guān)系。

14.A

15.A解析:C語言中的函數(shù)可以進(jìn)行遞歸調(diào)用,但不能在函數(shù)中定義函數(shù),即函數(shù)不能嵌套定義。函數(shù)可以沒有返回值,若有返回值,則返回值類型必須確定。

16.B在Internet中,把域名翻譯為IP地址的軟件稱為域名系統(tǒng)DNS,運(yùn)行域名系統(tǒng)的主機(jī)稱為域名服務(wù)器。域名服務(wù)器的主要功能是實(shí)現(xiàn)入網(wǎng)主機(jī)名字和IP地址的轉(zhuǎn)換。

17.A結(jié)構(gòu)體變量中的成員可以是簡單變量、數(shù)組、指針變量或者結(jié)構(gòu)體變量,選項A正確;不同結(jié)構(gòu)體成員名可以相同,選項B錯誤;結(jié)構(gòu)體定義時,其成員的數(shù)據(jù)類型不能是本結(jié)構(gòu)體類型,選項C錯誤;結(jié)構(gòu)體定義時,類型不同的成員項之間使用分號隔開,選項D錯誤。本題答案為A選項。

18.B

19.A樹形結(jié)構(gòu)是一類重要的非線性數(shù)據(jù)結(jié)構(gòu)。樹是n(n≥0)個結(jié)點(diǎn)的集合,對應(yīng)任意一棵非空樹,它具有以下幾點(diǎn)重要的性質(zhì)。

①有且僅有一個特定的稱為根的結(jié)點(diǎn)。

②當(dāng)n>1時,其余結(jié)點(diǎn)可分為m(m>0)個互不相交的有限集T1,T2,…,TM,其中每一個集合本身又是一棵樹,稱為子樹。

因此,本題的正確答案有且只有一個。

20.C解析:賦值的一般形式為:變量名:表達(dá)式;,賦值的方向為由右向左,即將:右側(cè)表達(dá)式的值賦給:左側(cè)的變量,執(zhí)行步驟是先計算再賦值。選項A中運(yùn)算符%的運(yùn)算對象必須為整數(shù),而選項A中26.8不為整數(shù),故選項A不正確;選項B將一個變量賦值給一個常量,這在C語言中是不允許的,故選項B不正確;選項D中也是將一個常量3賦值給一個常量,故選項D不正確;所以,4個選項中選項C符合題意。

21.07

22.rewindrewind解析:庫函數(shù)rewind()的作用是使文件位置指針重新返回文件的開頭,所以本題應(yīng)該填rewind。

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

24.return0或return(0)return1或return(1)return0或return(0)\r\nreturn1或return(1)解析:素數(shù)是指只能被1和其本身整除,不能被其他任何整數(shù)整除的數(shù)。根據(jù)if條件語句,若形參a對i取余等于0,則形參a可以被其他數(shù)整除,所以第一處填return0;若形參a對i取余不等于0,則形參s不可以被其他數(shù)整除,所以第二處填return1。

25.線性結(jié)構(gòu)線性結(jié)構(gòu)解析:本題考查了數(shù)據(jù)結(jié)構(gòu)的基本概念。與棧類似,隊列也是線性表,可以采用鏈?zhǔn)酱鎯Y(jié)構(gòu),所以帶鏈的隊列屬于線性結(jié)構(gòu)。

26.m=fun(a4)+fun(b4)-fun(a+b3);m=fun(a,4)+fun(b,4)-fun(a+b,3);解析:函數(shù)fun(x,n)的作用是求xn,因此a4應(yīng)該調(diào)用函數(shù)fun(a,4),b4應(yīng)該調(diào)用函數(shù)fun(b,4),(a+b)3應(yīng)該調(diào)用函數(shù)fun(a+b,3),所以題目中的數(shù)學(xué)表達(dá)式,寫成C程序中的語句為m=fun(a,4)+fun(b,4)-fun(a+b,3)。

27.DEBFCA

28.00解析:已知a=10,b=20,所以邏輯表達(dá)式a<b的值為true,即為1,在這個表達(dá)式前面有一個邏輯運(yùn)算符!,表示反操作,所以整個語句的值應(yīng)當(dāng)為false,即為0。

29.length++i<lengthlength++\r\ni<length解析:第—個循環(huán)極有可能是計算串的長度,在i<=length時字符才被刪除,被刪除的是從第i個到第i+n或最后—個間的所有字符。刪除前,應(yīng)判斷i<=length。由于已經(jīng)進(jìn)行了-i運(yùn)算,故實(shí)際應(yīng)填入i<length。

30.structnode*structnode*解析:本題中的結(jié)構(gòu)類型名為structnode,所以空白處應(yīng)填:structnode*。即定義一個指向自身的結(jié)構(gòu)體指針。

31.3535解析:考查swap()函數(shù)。函數(shù)swap(int*a,int*b)的功能是實(shí)現(xiàn)*a和*b中兩個數(shù)據(jù)的交換,在主函數(shù)中調(diào)用swap(p,q)后,參形指針變量a和b分別指向i和j,在swap(int*a,int*b)執(zhí)行完后,指針變量a和b分別指向j和i,而指針變量p,q所指向變量的值沒有發(fā)生變化,所以輸出結(jié)果為35。

32.33解析:這里:b-5=4,a-=4之后a的值為6,并把它賦給c。此時b的值并未被改變。在第2個表達(dá)式中,也只有賦值表達(dá)式b=3改變了b的值。所以兩行語句執(zhí)行完畢,b的值應(yīng)該為3。

33.HowdoesheHowdoeshe解析:本題的關(guān)鍵在于表達(dá)式str1+strlen(str1)/2,注意“/”的用法,可得str1+13/2=str1+6。

34.log2n

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

36.doublemax或externdoublemaxdoublemax或externdoublemax解析:本題中main()函數(shù)需要調(diào)用max()函數(shù),在main()之前就需要聲明函數(shù)max(),并且可以用extern說明符使變量的作用域擴(kuò)充到需要用到它的函數(shù),所以,填寫doublemax(或externdoublemax)。

37.數(shù)據(jù)元素。數(shù)據(jù)元素。

38.gaga解析:用字符指針處理字符串,首先要使指針指向這個字符串,即題中的ptr1=a和ptr2=b。然后就是通過指針的移動可以引用到字符串中的每一個字符。題中的*(ptr1+k)是使指針ptr1向后移動k個位置,然后取出指向的字符。注意:用字符數(shù)組作為字符串和用指針指向的一個字符串之間的區(qū)別。

39.44解析:strcpy(s1,s2)函數(shù)的作用是將字符串s2中的內(nèi)容拷貝到字符串s1中的內(nèi)容覆蓋。strlen()函數(shù)是求字符串的長度。本題實(shí)際上是要求s2字符串的長度,即是4。

40.double或雙精度型double或雙精度型解析:C語言中,如果運(yùn)算符兩邊的數(shù)據(jù)類型不同,將進(jìn)行類型轉(zhuǎn)換,根據(jù)轉(zhuǎn)換規(guī)則,短整型轉(zhuǎn)為長整型;整型轉(zhuǎn)換為實(shí)型。注意:數(shù)據(jù)類型的強(qiáng)制轉(zhuǎn)換。

41.A解析:黑箱測試方法完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征,而只是根據(jù)程序功能導(dǎo)出測試用例,選項A是正確的,選項B錯誤。白箱測試是根據(jù)對程序內(nèi)部邏輯結(jié)構(gòu)的分析來選取測試用例,選項C錯誤。

42.D解析:面向?qū)ο笏枷胫械娜齻€主要特征是:封裝性、繼承性和多態(tài)性。

43.C解析:本題考查了考生對數(shù)據(jù)庫基礎(chǔ)知識的記憶。數(shù)據(jù)庫技術(shù)的主要目的是有效地管理和存取數(shù)據(jù)資源,包括提供數(shù)據(jù)的共享性,使多個用戶能夠同時訪問數(shù)據(jù)庫中的數(shù)據(jù);減少數(shù)據(jù)的冗余度,以提交數(shù)據(jù)的一致性和完整性;提供數(shù)據(jù)與應(yīng)用程序的獨(dú)立性,從而減少應(yīng)用程序的開發(fā)和維護(hù)代價。數(shù)據(jù)庫的人工管理階段和文件系統(tǒng)階段,數(shù)據(jù)都不能實(shí)現(xiàn)共享,出現(xiàn)數(shù)據(jù)冗余現(xiàn)象。選項D)的說法是錯誤的。

44.B[答案]B

[考點(diǎn)]數(shù)據(jù)結(jié)構(gòu)與算法

[評析]依次從上到下,可得出:

第1層結(jié)點(diǎn)數(shù)為1;

第2層結(jié)點(diǎn)數(shù)為2*1=2;

第3層結(jié)點(diǎn)數(shù)為2*2=4;

第n層結(jié)點(diǎn)數(shù)為2的n-1次冪

45.A解析:本題考核的知識點(diǎn)是字符數(shù)組和字符指針變量的初始化。選項A定義了一個字符數(shù)組str,具有5個元素,但賦初值的時候,初值個數(shù)卻是6個(有一個'\\0'),故選項A錯誤的;選項B定義了一個字符數(shù)組str并給它賦初值,由于省去了長度定義,長度由初值個數(shù)確定,相當(dāng)于str[6],選項B正確;選項C定義了一個字符型指針變量并用一個字符串給它賦初值,使該字符型指針指向了該字符串,選項C正確;選項D是對字符型數(shù)組中單個元素依次賦初值,選項D正確。所以,4個選項中A為所選。

46.A解析:本題涉及C語言最基本的兩個知識點(diǎn):①C程序是由函數(shù)構(gòu)成的,有且僅有一個主函數(shù),也可以有其他的函數(shù);②整數(shù)在允許的范圍內(nèi)可以準(zhǔn)確無誤的表示出來,但計算機(jī)的存儲能力有限,不能表示無限精度的實(shí)數(shù)。

47.DD)【解析】軟件需求是指用戶對目標(biāo)軟件系統(tǒng)在功能、性能、設(shè)計約束等方面的要求,是由用戶提出的。

48.A解析:數(shù)據(jù)庫是一個通用化的、綜合性的數(shù)據(jù)集合,它可以為各種用戶所共享,具有最小的冗余度和較高的數(shù)據(jù)與程序的獨(dú)立性,而且能并發(fā)地為多個應(yīng)用服務(wù),同時具有安全性和完整性。即數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余,但不能避免一切冗余。所以選項A正確,選項B錯誤。在數(shù)據(jù)庫管理階段中,數(shù)據(jù)是結(jié)構(gòu)化的,面向系統(tǒng),數(shù)據(jù)冗余度小,從而節(jié)省了數(shù)據(jù)的存儲空間,也減少了對數(shù)據(jù)的存取時間,提高了訪問效率,避免了數(shù)據(jù)的不一致性。數(shù)據(jù)的不一致性,是指對數(shù)據(jù)的存取方式,選項C錯誤。數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù),并非是數(shù)據(jù)庫系統(tǒng)的特點(diǎn),選項D錯誤。本題正確答案是A。

49.B解析:數(shù)據(jù)的存儲結(jié)構(gòu),又稱為數(shù)據(jù)的物理結(jié)構(gòu),是數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機(jī)中的存放形式,數(shù)據(jù)的存儲結(jié)構(gòu)有順序結(jié)構(gòu)、鏈?zhǔn)浇Y(jié)構(gòu)、散列結(jié)構(gòu)和索引結(jié)構(gòu)等。

50.B解析:本題考查了一維數(shù)組元素的引用方法。題中數(shù)組a為一字符串?dāng)?shù)組,通過數(shù)組首地址和下標(biāo)可以引用數(shù)組中的每個元素。因為字符數(shù)組相當(dāng)于字符串,所以可以用字符串輸出函數(shù)puts()來輸出字符數(shù)組中的各個字符。

51.A

52.C解析:本題中定義了一個全局變量a和局部變量a。在主函數(shù)中定義一個整型變量s并賦初值為0,接著定義了一個局部變量a并賦值為5,由于該局部變量的和全局變量a同名,全局變量在復(fù)合語句中將不起作用,然后調(diào)用函數(shù)f(&a)(該函數(shù)的作用是返回存儲變量a中的值,并讓該值加1,分析程序可知返回值為5,并讓a值加1變?yōu)?),并將返回值加到s中。此時s的值為5,再執(zhí)行該復(fù)合語句外的其他語句,同樣調(diào)用函數(shù)f(&a),傳遞的參數(shù)是全局變量a,故其返回值為2,加到s中后s的值變?yōu)?,最后輸出的s值為7,所以,4個選項中選項C符合題意。

53.A解析:本題考查%和/運(yùn)算符的使用。如果兩個數(shù)不能整除,只取結(jié)果的整數(shù)部分,小數(shù)部分全部舍去。運(yùn)算符“%”要求兩個運(yùn)算對象都為整型,其結(jié)果是整數(shù)除法的余數(shù)。表達(dá)式:a=-4+4*5-6=-4+20-6=10;表達(dá)式:a=4+4%5-6=4+4-6=2:表達(dá)式:a=-3+4%6/5=-3+0=-3:表達(dá)式:a=(7+6)%5/2=13%5/2=1。

54.A解析:題中a1和a2兩個結(jié)構(gòu)體變量名所對應(yīng)的成員相同,可以與運(yùn)算“++’相結(jié)合。結(jié)構(gòu)體變量的輸出格式為:printf('要輸出變量名;%d\\t',結(jié)構(gòu)變量名.要輸出的成員變量名),

55.B解析:可以使用函數(shù)指針來調(diào)用函數(shù)。調(diào)用形式為:(*指針變量)(實(shí)參表列)。注意:調(diào)用函數(shù)和被調(diào)用函數(shù)之間的數(shù)據(jù)傳遞。

56.A解析:本題綜合考查字符數(shù)組的賦值和strcpy函數(shù)的用法。C語言不允許用賦值表達(dá)式對字符數(shù)組賦值,如下面的語句就是非法的:strl=“China”,如果想把“China”這5個字符放到數(shù)組strl中,除了逐個地輸入外,還能使用strcpy函數(shù),該函數(shù)的功能是將一個字符串復(fù)制到一字符數(shù)組中。例如:strcpy(strl,“China”);或strcpy(strl,str2);注意,不能企圖用以下語句來實(shí)行賦值(將str2的值傳給strl):strl=str2;不能用賦值語句將一個字符串常量或字符數(shù)組直接給一個字符數(shù)組。

strcpy函數(shù)的結(jié)構(gòu)是:strcpy(字符數(shù)組1,字符串2)

其中,需要注意的是,字符數(shù)組1的長度不應(yīng)小于字符串2的長度,“字符數(shù)組1”必須寫成數(shù)組名形式,如(strl),“字符串2”可以是字符數(shù)組名,也可以是字符串常量,不能用賦值語句將一個字符串常量或字符數(shù)組直接給一個字符數(shù)組。

57.D

58.C解析:計算機(jī)語言分為低級語言、匯編語言和高級語言,C語言屬于高級語言,但并不是說C語言比其他語言高級,所以選項A錯誤;除了低級語言外,其他各種語言都必須編譯成能被計算機(jī)識別的二進(jìn)制數(shù)才能執(zhí)行,選項B錯誤;C語言出現(xiàn)在1972年到1973年間,并不是出現(xiàn)最晚的語言,所以選項D也是錯誤的。

59.B解析:本題自定義函數(shù)scmp()的作用是比較字符串s1和s2的大小,如果s1<s2,函數(shù)返回s1的值,否則返回s2的值。若運(yùn)行時依次輸入abcd、abba和abc三個字符串,執(zhí)行strcpy(string,scmp(str[0],str[1]));后,string的值為abba,再執(zhí)行strcpy(string,scmp(string,str[2]));,由于scmp(stringstr[2])返回string的值abba,再拷貝到字符串?dāng)?shù)組string中,所以本題輸出abba。

60.D解析:在整個程序運(yùn)行期間,靜態(tài)局部變量在內(nèi)存的靜態(tài)存儲區(qū)中占據(jù)著永久的存儲單元,即使退出函數(shù)以后,下次再進(jìn)入該函數(shù)時,靜態(tài)局部變量仍使用原來的存儲單元,靜態(tài)局部變量的初值是在編譯的時候賦予的,在程序執(zhí)行期間不再賦予初值。本題由于連續(xù)三次調(diào)用函數(shù)fun(),三次對靜態(tài)變量x進(jìn)行操作,x的值應(yīng)依次為6,7,8。

61.A%d輸出整數(shù),所以選擇A)。

62.C

\n在for循環(huán)中,當(dāng)y的值為9、6或3時,執(zhí)行輸出語句,輸出表達(dá)式--Y的值。Y先自減l,然后再輸出y的值。

\n

63.D在程序設(shè)計中,對于軟件設(shè)計中的模塊設(shè)計要保證高內(nèi)聚和低耦合,源程序要有文檔說明,同時對程序中數(shù)據(jù)的說明要規(guī)范化。而goto語句破壞程序的結(jié)構(gòu),要盡量避免使用。所以選項D不正確。

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

65.B241/100=2,2%9=2,所以a=2,b為兩個非零的值的邏輯與,結(jié)果為1,。

66.C當(dāng)有序線性表為順序存儲時才能用二分法查找??梢宰C明的是對于長度為n的有序線性表,在最壞情況下,二分法查找只需要比較l092n次,而順序查找需要比較n次。

67.A對線性表進(jìn)行二分法檢索,要求線性表是按順序方式存儲的,并按關(guān)鍵碼值的大小排好序。

68.B

69.D整型的數(shù)據(jù)占4個字節(jié),即-2147483648~2147483648,32768在其表達(dá)的范圍之內(nèi)

溫馨提示

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

評論

0/150

提交評論