2021-2022年廣東省韶關(guān)市全國計算機等級考試C語言程序設(shè)計預(yù)測試題(含答案)_第1頁
2021-2022年廣東省韶關(guān)市全國計算機等級考試C語言程序設(shè)計預(yù)測試題(含答案)_第2頁
2021-2022年廣東省韶關(guān)市全國計算機等級考試C語言程序設(shè)計預(yù)測試題(含答案)_第3頁
2021-2022年廣東省韶關(guān)市全國計算機等級考試C語言程序設(shè)計預(yù)測試題(含答案)_第4頁
2021-2022年廣東省韶關(guān)市全國計算機等級考試C語言程序設(shè)計預(yù)測試題(含答案)_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021-2022年廣東省韶關(guān)市全國計算機等級考試C語言程序設(shè)計預(yù)測試題(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.有以下程序:#include<stdio.h>main(){charch=‘D’;while(ch>‘A’){ch--;putchar(ch);if(ch==‘A’)break;putchar(ch+1);}}程序運行后的輸出結(jié)果是()。

A.CBB.BCAC.CCBBD.CDBCA

2.printf函數(shù)中用到格式符%5s,其中數(shù)字5表示輸出的字符串占用5列。如果字符串長度大于5,則輸出按方式()。

A.從左起輸出該字串,右補空格B.按原字符長從左向右全部輸出C.右對齊輸出該字串,左補空格D.輸出錯誤信息

3.

4.有以下程序intfun(intx,inty){return(x+y);}main{inta=1,b=2,C=3,sum;sum=fun((a++,b++,a+b),c++printf("%d\n",sum);)執(zhí)行后的輸出結(jié)果是()。A.6B.7C.8D.9

5.

6.設(shè)有定義“doublea[10],*s=a;”,以下能夠代表數(shù)組元素a[3]的是()。

A.(*s)[3]B.*(s+3)C.*s[3]D.*s+3

7.若串S=,software,其子串的數(shù)目是()。

A.8B.37C.36D.9

8.有以下程序段intm=0,n=0;charc='a';scanf("%d%c%d",&m,&c,&n);printf("%d,%c,%d\n",m,c,n);若從鍵盤上輸入:10A10<回車>,則輸出結(jié)果是

A.10,A,10B.10,a,10C.1O,a,0D.10,A,0

9.如有inta=11;則表達式(a/1)的值是()。

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

10.已知二叉樹后序遍歷序列是dabec,中序遍歷序列是debac,它的前序遍歷序列是()

A.cedbAB.acbeDC.decaBD.deabC

11.在JavaScript語言中,要定義局部變量則可以()。

A.由關(guān)鍵字private在函數(shù)內(nèi)定義

B.由關(guān)鍵字private在函數(shù)外定義

C.由var在函數(shù)內(nèi)定義

D.由關(guān)鍵字var在函數(shù)外定義

12.(7-6-3-5-4-1-2)堆排序,升序排列,3的位置改變幾次()

A.1B.2C.3D.4E.5F.6

13.

14.某某二叉樹的中序序列和后序序列正好相反,則該二叉樹一定是______的二叉樹

A.空或只有一個結(jié)點B.高度等于其結(jié)點數(shù)C.任一結(jié)點無左孩子D.任一結(jié)點無右孩子

15.若有定義“intx[10],*pt=x;”,則對x數(shù)組元素的引用正確的是()。

A.pt+3B.*&x[10]C.*(pt+10)D.*(x+3)

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

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

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

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

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

17.按照標識符的要求,()符號不能組成標識符。A.連接符B.下劃線C.大小寫字母D.數(shù)字字符

18.a、b和c都是int型變量,且a=3,b=4,c=5,則下面的表達式中,值為0的表達式是()

A.'a'&&'b

B.a<=b

C.ab+c&&b-c

D.!((a<b)&&!c1)

19.對于"int*pa[5];"的描述中,正確的是()。

A.pa是一個指向數(shù)組的指針,所指向的數(shù)組是5個int型元素

B.pa是一個指向某數(shù)組中第5個元素的指針,該元素是int型變量

C.pa[5]表示某個元素的第5個元素的值

D.pa是一個具有5個元素的指針數(shù)組,每個元素是一個int型指針

20.線性結(jié)構(gòu)是數(shù)據(jù)元素之間存在一種()。

A.一對多關(guān)系B.多對多關(guān)系C.多對一關(guān)系D.一對一關(guān)系

二、2.填空題(20題)21.軟件維護活動包括以下幾類:改正性維護、適應(yīng)性維護、【】維護和預(yù)防性維護。

22.以下程序的功能是進行位運算main(){unsignedchara,b;a=7^3;b=~4&3;pfintf("%d%d\n",a,b);}程序運行后的輸出結(jié)果是

23.若有以下程序

main()

{inta[4][4]={{1,2;-3,-4},{0,-12,-13,14},{21,23,0,-24},{-31,32,-33;0}};

inti,j,s=0;

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

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

if(a[i][j]<0)continue;

if(a[i][j]==0)break;

s+=a[i][j];

}

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

}

執(zhí)行后輸出結(jié)果是______。

24.一個類可以從直接或間接的祖先中繼承所有屬性和方法。采用這個方法提高了軟件的【】。

25.在先左后右的原則下,根據(jù)訪問根結(jié)點的次序,二叉樹的遍歷可以分為三種;前序遍歷、【】遍歷和后序遍歷。

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

main()

{chars[]="ABCD",*p;

for(p=s+1;p<s+4;p++)printf("%s\n",p);}

27.若輸入字符串:abcde,則以下while循環(huán)體將執(zhí)行【】次。

while((ch=getchar())=='e')printf("*");

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

main()

{ints,i;

for(s=0,i=1;i<3;i++,s+=i);

printf("%d\n".s);

}

29.在關(guān)系運算中,【】運算是對兩個具有公共屬性的關(guān)系所進行的運算。

30.結(jié)構(gòu)化程序設(shè)計方法的主要原則可以概括為自頂向下、逐步求精、______和限制使用goto語句。

31.已有定義:double*p;,請寫出完整的語句,利用malloc函數(shù)使p指向一個雙精度型的動態(tài)存儲單元______。

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

#include<string.h>

char*ss(char*s)

{char*p;t;

p=s+1;t=*s;

while(*p){*(p-1)=*p;p++;}

*(p-1)=t;

returns;

}

main()

{char*p,str[10]="abcdergh";

p=ss(str);

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

}

33.設(shè)在主函數(shù)中有以下定義和函數(shù)調(diào)用語句,且fun函數(shù)為void類型;請寫出fun函數(shù)的首部【】(要求形參名為b)。main(){doubles[10][22];intn;……fun(s);……}

34.語句"int(*ptr)();"的含義是______是指向函數(shù)的指針,該函數(shù)返回一個int型數(shù)據(jù)。

35.數(shù)據(jù)庫的邏輯模型設(shè)計階段的任務(wù)是將______轉(zhuǎn)換成關(guān)系模式。

36.軟件工程的出現(xiàn)是由于【】。

37.以下程序段打開文件后,先利用fseek函數(shù)將文件位置指針定位在文件末尾,然后調(diào)用刪函數(shù)返回當前文件位置指針的具體位置,從而確定文件長度,請?zhí)羁铡?/p>

FILE*myf;longfl;

myf=【】("test.t","rb");

fseek(myf,(),SEEK_END);fl+ftell(myf);

fclose(myf);

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

38.下列程序的運行結(jié)果為【】。

main()

{inta,b,c,x,y,z;

a=10;b=2;

c=!(a%b);x=!(a/b);

y=(a<b)&&(b>=0);

z=(a<b)||(b>=0);

printf("c=%d,x=%d,y=%d,z=%d\n",c,x,y,z);

}

39.以下程序的功能是建立一個帶有頭結(jié)點的單向鏈表,鏈表結(jié)點中的數(shù)據(jù)通過鍵盤輸入,當輸入數(shù)據(jù)為-1時,表示輸入結(jié)束(鏈表頭結(jié)點的data域不放數(shù)據(jù),表空的條件是ph->next==NULL),請?zhí)羁铡?/p>

#include<stdio.h>

structlist{intdata;structlist*next;};

structlist*creatlist()

{structlist*p,*q,*ph;inta;ph=(structlist*)malloc(sizeof(structlist));

p=q=ph;printf("Inputanintegernumber;entre-1toend:\n");

scanf("%d",&a);

while(a!=-1)

{p=(structlist*)malloc(sizeof(structlist));

[14]=a;q->next=p;[15]=p;scanf("%d",&a);}

p->next='\0';return(ph);}

main()

{stuctlist*head;head=creatlist();}

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

三、1.選擇題(20題)41.有如下程序:main(){intx=23;do{printf("%d",x--);}while(!x);}程序運行后的輸出結(jié)果是()。

A.321B.23C.不輸出任何內(nèi)容D.陷入死循環(huán)

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

A.一個算法的空間復(fù)雜度大,則其時間復(fù)雜度也必定大

B.一個算法的空間復(fù)雜度大,則其時間復(fù)雜度必定小

C.一個算法的時間復(fù)雜度大,則其空間復(fù)雜度必定小

D.上述三種說法都不對

43.下面概念中,不屬于面向?qū)ο蠓椒ǖ氖?)。A.對象B.繼承C.類D.過程調(diào)用

44.利用fseek函數(shù)可實現(xiàn)的操作是()。

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

45.設(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");

46.有以下程序: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

47.若有定義int(*pt)[3];,則下列說法不正確的是()。

A.int(*pt)[3]是一個數(shù)組指針

B.指針pt指向一個有3個整型變量的數(shù)組

C.定義了一個名為*pt、具有三個元素的整型數(shù)組

D.定義了一個名為pt的指針變量,它可以指向每行有三個整數(shù)元素的二維數(shù)組

48.有以下程序main(){ints=0,a=1,n;seanf("%d",&n);do{s+=1;a=a-2;}while(a!=n);printf("%d\n",s);}若要使程序的輸出值為2,則應(yīng)該從鍵盤給n輸入的值是

A.-1B.-3C.-5D.0

49.下列程序執(zhí)行后的輸出結(jié)果是()#defineMA(x)x*(x-1)main(){inta=1,b=2;printf("%d\n",MA(1+a+B));}

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

50.以下函數(shù)值的類型是_______。fun(floatx){floaty;y=3*x-4;returny;}

A.intB.不確定C.voidD.float

51.有如下程序inta[10]={1,2,3,4,5,6,7,8,9,10};int*p=&a[3],b;b=p[5];則b的值是

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

52.以下敘述中錯誤的是

A.gets函數(shù)用于從終端讀入字符串

B.getehar函數(shù)用于從磁盤文件讀入字符

C.fputs函數(shù)用于把字符串輸出到文件

D.fwrite函數(shù)用于以二進制形式輸出數(shù)據(jù)到文件

53.有以下程序:main(){intk=33;printf("%d,%o,%x",k,k,k);}執(zhí)行后的輸出結(jié)果是()。

A.33,033,0x21B.33,033,21C.3.3041e+007D.33,41,21

54.請選出以下程序的輸出結(jié)果#include<stdio.h>main(){inta[]={1,2,3,4},i;intx=0;for(i=0;i<4;i++){sub(a,x);printf("%d",x);}printf("\n");}sub(s,y)int*s,y;{staticintt=3;y=s[t];t--;}

A.1234B.4321C.0D.4444

55.算法的空間復(fù)雜度是指()。

A.算法程序的長度B.算法程序中的指令條數(shù)C.算法程序所占的存儲空間D.執(zhí)行算法需要的內(nèi)存空間

56.有三個關(guān)系R、s和T如下:

由關(guān)系R和s通過運算得到關(guān)系T,則所使用的運算為()。

A.并B.自然連接C.笛卡爾積D.交

57.設(shè)x,y均是int類型變量,則以下不正確的函數(shù)調(diào)用為______。

A.getchar();

B.putchar('\108');

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

D.putchar('\'');

58.有以下程序:main(){inta;charc=10;floatf=100.0;doublex;a=f/=c*=(x=6.5);printf("%d%d%3.lf%3.lf\n",a,c,f,x);}程序運行后的輸出結(jié)果是

A.16516.5B.1651.56.5C.1651.06.5D.2651.56.5

59.有以下程序:voidfun1(char*p){char*q;q=P;while(*q!='\0'){(*q)++;q++;}}main(){chara[]={"Program"),*p;p=&a[3];funl(p);printf("%s\n",A);}程序執(zhí)行后的輸出結(jié)果是()。

A.ProhsbnB.PrphsbnC.ProgsbnD.Program

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

A.GEDHFBCAB.DGEBHFCAC.ABCDEFGHD.ACBFEDHG

四、選擇題(20題)61.以下選項中關(guān)于C語言常量的敘述錯誤的是()。

A.經(jīng)常被陡用的變量可以定義成常量

B.常量分為整型常量、實型常量、字符常量和字符串常量

C.常量可分為數(shù)值型常量和非數(shù)值型常量

D.所謂常量,是指在程序運行過程中,其值不能被改變的量

62.下列選項中,能正確定義數(shù)組的語句是()。

A.intnum[0..2008];

B.intlllllll[];

C.intN:2008:

D.#defineN2008intnum[N1;intnum[N];

63.設(shè)有如下定義:intx=10,y=3,z;則語句printf("%d\n",z=(x%y,x/y));的輸出結(jié)果是()。

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

64.已定義以下函數(shù):

fun函數(shù)的返回值是()。

A.一個整數(shù)B.不確定的值C.形參P中存放的值D.形參P的地址值

65.

66.下列選項中,能正確定義數(shù)組的語句是()。

A.

B.

C.

D.

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

A.21B.11C.6D.120

68.執(zhí)行下列程序后,變量a,b,C的值分別是()。intx=5,y=4;inta,b,c;a=(--x==y++)?X:++y;b=++x:c=y:A.a=5,b=5,c=5B.a=4,b=5,c=5C.a=5,b=6,c=5D.a=1,b=5,c=6

69.若變量已正確定義并賦值,以下符合C語言語法的表達式是()。

A.a:=b+1B.a=b=c+2C.int18.5%3D.a:a+7:c+b

70.

下述程序的輸出結(jié)果是()。

#include<stdio.h>

main

{inta[2][3]={{1,2,3),{4,5,6}},(*p)[3],i;

p=a;

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

{if(i<2)

p[1][i]=p[1][i]一1;

else

p[1][i]=1;)

printf("%d\n",a[0][1]+a[1][1]+a[1][2]);}

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

71.

72.源程序的文檔不包括()。

A.符合號名的命名要有實際意義B.正確的文檔形式C.良好的視覺組織D.正確的程序注釋

73.

74.有如下程序

#include<stdio.h>

main()

{

FILE*fp1;

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

fprintf(fp1,"abc");

fclose(fp1);

}

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

A.goodabcB.a(chǎn)bcd

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

75.

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

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

77.在C語言中,函數(shù)返回值的類型最終取決于()。

A.函數(shù)定義時在函數(shù)首部所說明的函數(shù)類型

B.return語句中表達式值的類型

C.調(diào)用函數(shù)時主調(diào)函數(shù)所傳遞的實參類型

D.函數(shù)定義時形參的類型

78.以下選項中可用做C程序合法實數(shù)的是()。

A..leOB.3.0e0.2C.E9D.9.12E

79.

80.若有說明:intn=2,*p=&n,*q=p;,則以下非法的賦值語句是()。

A.p=qB.*p=*qC.n=*qD.p=*n

五、程序改錯題(1題)81.下列給定程序中,fun()函數(shù)的功能是:求3個數(shù)的最小公倍數(shù),例如,給變量a、b、c、分別輸入15、11、2,則輸出結(jié)果應(yīng)當是330。請修改函數(shù)中的錯誤,得出正確的結(jié)果。注意:不要改動main()函數(shù),不能增行或減行,也不能更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計題(1題)82.請編寫函數(shù)fun,其功能是:找出一維整型數(shù)組元素中最大的值所在的下標,并通過形參傳回。數(shù)組元素中的值已在主函數(shù)中賦予。

主函數(shù)中x是數(shù)組名,n是x中的數(shù)據(jù)個數(shù),max存放最大值。index存放最大值所在元素的下標。

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

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

試題程序:

參考答案

1.Dputchar函數(shù)的功能是輸出一個字符,由whlie判斷條件和ch初始值可知,只要“ch≠‘A’”,執(zhí)行兩次putchar函數(shù),否則跳出循環(huán)。第1次輸出“CD”,第2次輸出“BC”,第3次輸出“A”后跳出循環(huán)。故本題答案為D選項。

2.B

3.D

4.Csum=fun((a++,b++,a+b),c++)中a++,b++,a+b為逗號表達式,運算后取a+b的值為5,c++為3,故函數(shù)調(diào)用后輸出結(jié)果為8。

5.B

6.B題中,首先定義了double型的數(shù)組a,并將數(shù)組首地址賦給指針s?!?*s)”表示“a[1]”,“s[3]”不是指針變量,不能使用間址運算符“*”,故選項A、C不能表示“a[3]”;選項D的“*s+3”等于“a[0]+3”。故本題答案為B選項。

7.B

8.A解析:本題考核的知識點是scallf()函數(shù)輸入格式。格式字符“%d”用于輸入整數(shù),“%C”用來輸入字符。在輸入時,系統(tǒng)把第一個10作為整數(shù)10賦給m,把隨后的A作為字符賦值給c,后面的10作為整數(shù)賦給n,最后輸出的結(jié)果為10,A,10所以,A選項為所選。

9.D

10.A

11.C

12.B

13.C

14.C

15.D選項A中,“pt+3”使指針變量Pt移動3個單元,指向第4個元素,不能正確引用。運算符“*”與“&”放在一起,其作用相互抵消,且下標10超出了數(shù)組下標范圍,所以B選項錯誤?!?(pt+i)”表示引用指針pt所指元素后的第i個元素,引用數(shù)組第11個元素,C選項錯誤。故本題答案為D選項。

16.D循環(huán)隊列的隊頭指針與隊尾指針都不是固定的,隨著入隊與出隊操作要進行變化。因為是循環(huán)利用的隊列結(jié)構(gòu),所以隊頭指針有時可能大于隊尾指針,有時也可能小于隊尾指針。

17.A

18.D

19.D

20.D

21.完善性軟件維護活動包括以下幾類:改正性維護,適應(yīng)性維護、完善性維護和預(yù)防性維護,完善性維護是指為了滿足用戶對軟件提出的新功能與性能要求,需要修改或再開發(fā)軟件,以擴充軟件功能、增強軟件性能、改進加工效率、提高軟件的可維護性。

22.A

23.5858解析:本題中處理二維數(shù)組元素用了兩重循環(huán),外循環(huán)變量i表示數(shù)組的行,內(nèi)層循環(huán)變量j表示數(shù)組的列。在第二重循環(huán)中首先判斷數(shù)組元素的值是否小于0,若是則處理該行的下一個元素:若不是則判斷a[i][j],田的值是否等于0,若等于0則退出內(nèi)層循環(huán)開始處理下一行;其他情況下,把a[i][j]的值加到變量s中。所以本程序段的功能是把每行值為0的元素前面的所有大于。的元素值加到變量s中。

24.可重用性繼承的優(yōu)點:相似的對象可以共享程序代碼和數(shù)據(jù)結(jié)構(gòu),從而大大減少了程序中的冗余,提高軟件的可重用性。

25.中序中序解析:在先左后右的原則下,根據(jù)訪問根結(jié)點的次序,二叉樹的遍歷可以分為三種:前序遍歷、中序遍歷和后序遍歷.前序遍歷是指在訪問根結(jié)點、遍歷左子樹與遍歷右子樹這三者中,首先訪問根結(jié)點,然后遍歷左子樹,最后遍歷右子樹;并且遍歷左、右子樹時,仍然先訪問根結(jié)點,然后遍歷左子樹,最后遍歷右子樹。中序遍歷指在訪問根結(jié)點、遍歷左了樹與遍歷右子樹這三者中,首先遍歷左子樹,然后訪問根結(jié)點,最后遍歷右子樹:并且遍歷左、右子樹時,仍然先遍歷左子樹,然后訪問根結(jié)點,最后遍歷右子樹。后序遍歷指在訪問根結(jié)點、遍歷左子樹與遍歷右子樹這三者中,首先遍歷右子樹,然后訪問根結(jié)點,最后遍歷左子樹;并且遍歷左、右子樹時,仍然光遍歷右子樹,然后訪問根結(jié)點,最后遍歷左子樹。

26.BCDCDDBCD\r\nCD\r\nD解析:本題考查指向字符串的指針的運算方法。指針變量p首先指向字符串中的第一個字符A,執(zhí)行p=s+1后,p指向字符串中的第二個字符B,然后輸出值'BCD'并換行,依次執(zhí)行循環(huán)語句。

27.00解析:函數(shù)getchar()是從鍵盤得用戶輸入的一個字符。用戶輸入的第1個字符a,不管后面輸入的是什么ch的值都是'a',因此條件(ch=getchar())=='e'為假,這個循環(huán)不會被執(zhí)行。

28.55解析:此程序中,for循環(huán)語句后面直接跟了一個“;”,表明循環(huán)體為空.輸出語句不在for循環(huán)體內(nèi),所以在循環(huán)執(zhí)行完畢后才輸出s的值.s、i的初值分別為0和1,判斷循環(huán)條件,表達式“1<3”成立,執(zhí)行“i++,s+=i”后,i和s的值分別為2和1,繼續(xù)判斷循環(huán)條件,表達式“2<3”成立,執(zhí)行“i++,s+=i”后,i和s的值分別為3,再次判斷循環(huán)條件,表達式“3<3”不成立,循環(huán)結(jié)束。

29.自然連接自然連接解析:在關(guān)系運算中,自然連接運算是對兩個具有公共屬性的關(guān)系所進行的運算。

30.模塊化模塊化

31.p=(double*)malloc(sizeof(double)):或p=(double*)malloc(8);p=(double*)malloc(sizeof(double)):或p=(double*)malloc(8);解析:malloc()函數(shù)只有一個參數(shù),該參數(shù)指定了需要分配多少字節(jié)的內(nèi)存。然后將分配好的內(nèi)存塊的首地址作為void*(未知類型指針)返回.故標準的調(diào)用形式應(yīng)該寫成:

p(double*)malloc(sizeof(double));

32.bcdefghabcdefgha解析:在本題定義的ss()函數(shù)中首先定義了一個指針p和一個字符變量t,然后讓p指向參數(shù)指針s的下一個位置s+1,并讓t保存s位置的字符。然后使用一個while循環(huán)將p指向的內(nèi)容賦給它前面一個位置,即將參數(shù)s所指的字符串從第2個字符開始整體往前移動一位。循環(huán)結(jié)束時,p指向原s串的結(jié)束標志處,所以讓*(p-1)=t;即是將原s串的第1個字符復(fù)制到s串的最后一個位置。整個函數(shù)實現(xiàn)的是讓一個字符串循環(huán)左移一位。故主函數(shù)中最后輸出的字符串是'bcdefgha'。

33.

34.ptrptr解析:本題考查函數(shù)指針的概念。函數(shù)指針的定義格式是:類型標識符(*旨針變量名)()。注:“類型標識符”為函數(shù)返回值的類型。

35.E-R圖E-R圖解析:數(shù)據(jù)庫邏輯設(shè)計的任務(wù)是將概念模型進一步轉(zhuǎn)化成相應(yīng)的數(shù)據(jù)模型。而E-R圖是主要的概念模型,因此數(shù)據(jù)庫的邏輯設(shè)計的主要工作是將E-R圖轉(zhuǎn)換成關(guān)系模式。

36.軟件危機的出現(xiàn)軟件危機的出現(xiàn)

37.fopenfopen解析:C語言中的文件分為:ASCII文件與二進制文件。文件在使用前打開,使用后要關(guān)閉。

打開文件的函數(shù)為:fopen(),調(diào)用形式為:fp=fopen(“文件名”,“使用文件方式”);

關(guān)閉文件的函數(shù)為:fclose(),調(diào)用形式為:fclose(fp);其中fp為文件指針。

38.c=1x=Oy=Oz=1

39.p->dataqp->data\r\nq解析:本題考查的是鏈表這一數(shù)據(jù)結(jié)構(gòu)對結(jié)構(gòu)體變量中數(shù)據(jù)的引用。鏈表的特點是結(jié)構(gòu)體變量中有兩個域,一個是數(shù)據(jù),另一個是指向該結(jié)構(gòu)體變量類型的指針,用以指明鏈表的下一個結(jié)點。

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

41.B解析:本題中使用do-while循環(huán),每執(zhí)行一次循環(huán)體輸出x的值后將x減1。當x=23,執(zhí)行循環(huán)體輸出x為23,X=X-1=23-1=22,判斷循環(huán)條件是否成立,因為x=22,!x的值為0,終止循環(huán),因此只輸出23。

42.D解析:時間復(fù)雜度是指一個算法執(zhí)行時間的相對度量;空間復(fù)雜度是指算法在運行過程中臨時占用所需存儲空間大小的度量。人們都希望選擇一個既省存儲空間、又省執(zhí)行時間的算法。然而,有時為了加快算法的運行速度,不得不增加空間開銷;有時為了能有效地存儲算法和數(shù)據(jù),又不得不犧牲運行時間。時間和空間的效率往往是一對矛盾,很難做到兩全。但是,這不適用于所有的情況,也就是說時間復(fù)雜度和空間復(fù)雜度之間雖然經(jīng)常矛盾,但是二者不存在必然的聯(lián)系。因此,選項A、B、C的說法都是錯誤的。故本題的正確答案是D。

43.D[答案]D

[考點]軟件工程基礎(chǔ)

[評析]

面向?qū)ο?對象+類+繼承+通過消息的通信

對象:一組屬性及其上的操作的封裝體

類:一組有相同屬性和操作的對象的集合

繼承:一個類為另一個類上的擴充的方式,子類繼承父類,主要目的是代碼復(fù)用

消息:對象間通信的手段

D是結(jié)構(gòu)化程序設(shè)計或過程式(函數(shù)式)語言中的,一般的面向?qū)ο蟪绦蛟O(shè)計語言兼容這種方式,但不是其特征,故最佳選項為D

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

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

46.B解析:本題的fun()函數(shù)中定義的變量m和i是靜態(tài)局部變量,第1次調(diào)用fun()函數(shù)時m=0、i=2,執(zhí)行i+=m+1后,i的值變?yōu)?,再執(zhí)行m=i+x+y后,m的值變?yōu)?,所以第1次輸出的整數(shù)是5。第2次調(diào)用fun()函數(shù)時m=5、i=3,執(zhí)行i+=m+1,i變?yōu)?,再執(zhí)行m=i+x+y,m變?yōu)?1,所以第2次輸出的整數(shù)是11。故本題應(yīng)該選擇B。

47.D解析:首先,pt跟*結(jié)合,所以是一個指針,所指向的對象是含有3個元素的數(shù)組。所定義的指針沒加const,所以是個指針變量,還可以指向類似對象的其他元素,也就是說還可以指向其他含有3個元素的數(shù)組。

48.B解析:根據(jù)題目要求,最后要使輸出的s值為2,在程序中改變。的值語句只有循環(huán)體中的s+=1;語句,而初始9的值為o,顯然要使s的值變?yōu)?,該語句必須執(zhí)行,兩次,即do-while循環(huán)中的循環(huán)體要執(zhí)行兩次,而在do-while中,首先不進行條件而執(zhí)行do后面的循環(huán)體語句,然后再判斷while循環(huán)條件。所以說不管循環(huán)判斷條件是否為真s+=1;語句至少執(zhí)行一次,根據(jù)分析,只需要while后面括號的循環(huán)判斷表達式的值為真一次且只能為真一次,將四個選項中的內(nèi)容依次代入該程序中不難得到只有n=-3剛好使循環(huán)判斷條件a!=n為真一次。

49.D解析:本題中的宏調(diào)用MA(1+a+b)展開后的結(jié)果是1+a+b*(1+a+b-1)=1+1+2*(1+1+2-1)=2+2*3=8。所以輸出的結(jié)果是8,選項D正確。

50.A解析:函數(shù)定義時如果數(shù)據(jù)類型默認,則默認為int。函數(shù)中如果有“retum(表達式):”語句,表達式的類型可能與函數(shù)的類型不一致,但它并不能改變函數(shù)的類型,實際情況是把表達式轉(zhuǎn)換為函數(shù)值的類型作為返回值,因此本題的函數(shù)值類型是int。

51.C解析:p=&a[3]將指針指向數(shù)組a的第4個元素,p[5]指向數(shù)組a的第9個元素,而a[8]=9,所以b=9。

52.B

53.D解析:本題考查不同進制間的轉(zhuǎn)換。printf輸出函數(shù)中輸出變量的格式,由輸出格式符決定。題中“%o”格式符表示以八進制的形式輸出;“%x”格式符表示以十六進制的形式輸出?!?3”的八進制和十六進制分別是41和21。

54.C解析:若指針s指向數(shù)組a,則s[t]可以引用數(shù)組a中下標為t的元素。注意:通過數(shù)組的首地址引用數(shù)組元素。

55.D解析:算法的復(fù)雜度主要包括算法的時間復(fù)雜度和算法的空間復(fù)雜度。所謂算法的時間復(fù)雜度是指執(zhí)行算法所需要的計算工作量;算法的空間復(fù)雜度一般是指執(zhí)行這個算法所需要的內(nèi)存空間。

56.D關(guān)系R與s經(jīng)交運算后所得到的關(guān)系是由那些既在R內(nèi)又在S內(nèi)的共有元組組成的,記為RnS。

57.B解析:八進制中的基本數(shù)為0~7,不可能出現(xiàn)8。

58.B解析:主函數(shù)中先定義了一個整型變量a,一個字符變量c并賦初值10,一個浮點型變量f并賦初值100.00和一個double型x,接著執(zhí)行“a=f/=C*=x=6.5)”,該語句從右向左計算,先把6.5賦值給x(該括號表達式的值也為6.5),此時x的值的變?yōu)?.5,然后執(zhí)行“c*=(x=6.5)”相當于執(zhí)行“c=c*(x=6.5)”,此時c的值為65,接著向左執(zhí)行“f/c*=(x=6.5)”,語句相當于執(zhí)行“f=f/c”接著向最右邊執(zhí)行“a=f”,由于a是整型變量,所以a最后去f的整數(shù)部分為1。程序最后輸出的a、c、f和x的值分別為1、65、1.5、6.5。所以,4個選項中選項B符合題意。

59.A解析:函數(shù)funl()實現(xiàn)的功能為將實參p所指的字符串順序按位加1,而實參p通過“p=&a[3];”指向字符串數(shù)組a[]中的gram,敞輸出結(jié)果為Prohsbn。

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

最后得到整棵樹的結(jié)構(gòu)后,按照后序遍歷寫出所有結(jié)點的順序:DGEBHFCA。

61.A常量是在程序運行時,其值不能被改變的量,跟是否經(jīng)常使用沒關(guān)系.

62.DC語言不允許定義動態(tài)數(shù)組,定義數(shù)組的大小必須為常量表達式。A選項錯誤,C語言中數(shù)組沒有此類型的定義方法;B選項錯誤,定義數(shù)組應(yīng)指明數(shù)組大小,如果不指明數(shù)組大小,需要給定初值的個數(shù);c選項錯誤,N為變量,不能用來定義數(shù)組大小。因此D選項正確。

63.D

64.A返回值為指針變量指向的數(shù)據(jù),該數(shù)據(jù)已被定義為整型。因此A選項正確。

65.A

66.D選項A)不符合c語言的語法要求;選項

B)中沒有指定數(shù)組的大?。贿x項c)中數(shù)組大小不能用變量來指定。

67.A循環(huán)調(diào)用fun函數(shù),依次返回值為23456,s原值為l,累加以上返回值,最終結(jié)果為21,所以答案選擇A)。

68.B本題考查自加(++)、自減(--)運算符

溫馨提示

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

評論

0/150

提交評論