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

下載本文檔

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

文檔簡(jiǎn)介

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

一、單選題(20題)1.下列關(guān)于標(biāo)識(shí)符的說(shuō)法中錯(cuò)誤的是

A.合法的標(biāo)識(shí)符是由字母、數(shù)字和下劃線組成

B.C語(yǔ)言的標(biāo)識(shí)符中,大寫(xiě)字母和小寫(xiě)字母被認(rèn)為是兩個(gè)不同的字符

C.C語(yǔ)言的標(biāo)識(shí)符可以分為三類,即關(guān)鍵字、預(yù)定義標(biāo)識(shí)符和用戶標(biāo)識(shí)符

D.用戶標(biāo)識(shí)符與關(guān)鍵字不同時(shí),程序在執(zhí)行時(shí)將給出出錯(cuò)信息

2.設(shè)x=011050,則x=x&01252的值是()。A.0000001000101000

B.1111110100011001

C.0000001011100010

D.1100000000101000

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

A.構(gòu)成C程序的基本單位是函數(shù)

B.可以在一個(gè)函數(shù)中定義另一個(gè)函數(shù)

C.main函數(shù)必須放在其他函數(shù)之前

D.C函數(shù)定義的格式是K&R格式

4.以下可以正確且安全地用作用戶標(biāo)識(shí)符的一組選項(xiàng)是()。

A._32int,long64B.Switch,unsignedC.Abc,getchD.3break,enter

5.表達(dá)式9!=10的值為()。

A.非零值B.trueC.0D.1

6.從未排序序列中依次取出元素與已排序序列中的元素作比較,將取出的元素放入已排序序列中的正確位置上,此方法稱為_(kāi)_____。

A.歸并排序B.選擇排序C.交換排序D.插入排序

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

A.a是實(shí)型變量,C允許進(jìn)行賦值a=10,但不可以這樣說(shuō):實(shí)型變量中允許存放整型值

B.在賦值表達(dá)式中,賦值號(hào)左邊既可以是變量也可以是任意表達(dá)式

C.執(zhí)行表達(dá)式a=b后,在內(nèi)存中a和b存儲(chǔ)單元中的原有值都將被改變,a的值已由原值改變?yōu)閎的值,b的值由原值變?yōu)?

D.已有a=3,b=5,當(dāng)執(zhí)行了表達(dá)式a=b,b=a之后,使a中的值為5,b中的值為3

8.有以下程序:#include<stdio.h>main(){intt;scanf(“%d”,&t);if(t++<6)printf(“%d\n”,t);elseprintf(“%d\n”,t--);printf(“\n”);}執(zhí)行時(shí)輸入6并按<Enter>鍵,則輸出結(jié)果是()。A.6B.8C.7D.5

9.對(duì)一個(gè)關(guān)系投影操作以后,新關(guān)系的元組個(gè)數(shù)______原來(lái)關(guān)系的元組個(gè)數(shù)。

A.小于B.小于或等于C.等于D.大于

10.

11.設(shè)有如下定義:structsk{inta;floatb;}data;int*p;若要使p指向data中的a域,正確的賦值語(yǔ)句是()

A.p=&a;B.p=data.a;C.p=&data.a,D.*p=data.a;

12.在下列運(yùn)算符中,優(yōu)先級(jí)最低的是()。A.||B.!=C.<D.+

13.

14.查找效率最高的二叉排序樹(shù)是()。

A.所有結(jié)點(diǎn)的左子樹(shù)都為空的二叉排序樹(shù)

B.所有結(jié)點(diǎn)的右子樹(shù)都為空的二叉排序樹(shù)

C.平衡二叉排序樹(shù)

D.沒(méi)有左子樹(shù)的二叉排序樹(shù)

15.

16.樹(shù)最適合用來(lái)表示()。

A.有序數(shù)據(jù)元素B.無(wú)序數(shù)據(jù)元素C.元素之間具有分層次關(guān)系的數(shù)據(jù)D.元素間無(wú)聯(lián)系的數(shù)據(jù)

17.有以下程序:#include<stdio.h>main(){inta=123456,b;while(a){b=a%10;a/=10;switch(b){default:printf(“%d”,b++);case1:case2:printf(“%d”,b++);break;case3:printf(“%d”,b++);break;case4:printf(“%d”,b++);}}}程序運(yùn)行后的輸出結(jié)果是()。

A.76654321B.12345667C.67564321D.654321

18.若有以下說(shuō)明和定義uniondt{inta;charb;doublec;}data;以下敘述中錯(cuò)誤的是

A.data的每個(gè)成員起始地址都相同

B.變量data所占內(nèi)存字節(jié)數(shù)與成員c所占字節(jié)數(shù)相等

C.程序段:data.a=5;printf(“%I'm”,data.C);輸出結(jié)果為5.000000

D.data可以作為函數(shù)的實(shí)參

19.軟件生命周期是指()。A.軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過(guò)程

B.軟件從需求分析、設(shè)計(jì)、實(shí)現(xiàn)到測(cè)試完成的過(guò)程

C.軟件的開(kāi)發(fā)過(guò)程

D.軟件的運(yùn)行維護(hù)過(guò)程

20.

二、2.填空題(20題)21.下面程序運(yùn)行后的輸出結(jié)果是()。

#include<stdio.h>

main()

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

while(i<4)

{k[i-1]=&a[2*i-1];

printf("%d",*k[i-1]);

i++;

}

}

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

main()

{inti;

chara[]="Ilovechina!",b[20],*p1,*p2;

p1=a;

p2=b;

while(*p1)

{*p2=*p1;

p1++;

p2++;

}

*p2='\0';

printf("stringbis:%s\n",b);

}

23.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu),線性鏈表屬于【】。

24.以下程序從終端讀入數(shù)據(jù)到數(shù)組中,統(tǒng)計(jì)其中正數(shù)的個(gè)數(shù),并計(jì)算它們之和。請(qǐng)?zhí)羁铡?/p>

main()

{inti,a[20],sum,count;

sum=count=0;

for(i=0;i<20;i++)scanf("%d",(【】);

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

{if(a[i]>0)

{count++;

sum+=(【】);

}

}

printf("sum=%d,count=%dhn",sum,count);

}

25.在關(guān)系數(shù)據(jù)庫(kù)中把數(shù)據(jù)表示成二維表,每一個(gè)二維表稱為【】。

26.以下程序的功能是輸出如下形式的方陣:

13141516

9101112

5678

1234

請(qǐng)?zhí)羁铡?/p>

main()

{inti,j,x;

for(j=4;j>0;j--)

{for(i=1;i<=4;i++)

{x=(j-1)*4+【】;

printf("%4d",x);

}

printf("\n");

}

}

27.若有以下程序

main()

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

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

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

printf("%d%d%dln",a,b,c);

}

執(zhí)行后輸出結(jié)果為_(kāi)_____。

28.以下函數(shù)的功能是計(jì)算s=1+1/2!+1/3!+…+1/n!,請(qǐng)?zhí)羁铡?/p>

doublerun(intn)

{doubles=0.0,fac=1.0;

inti,k=1;

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

{【】;

fac=fac/k;

s=s+fac;

}

}

29.單獨(dú)測(cè)試一個(gè)模塊時(shí),有時(shí)需要一個(gè)【】程序驅(qū)動(dòng)被測(cè)試的模塊。

30.下面程序中函數(shù)creat用于建立一個(gè)帶頭結(jié)點(diǎn)的單向鏈表,新產(chǎn)生的結(jié)點(diǎn)總是插在鏈表的末尾,單向鏈表的頭指針作為函數(shù)值返回。將程序補(bǔ)充完整。

#include<stdiao.h>

structlist

{chardata;structlist*next;};

structlist*creat()

{

structlist*h,*p,*q;charch;

h=【】malloc(sizeof(structlist));

p=q=h;ch=getchar();

while(ch!='?')

{

p=【】malloc(sizeof(structlist));

p->data=ch;q->next=p;q=p;ch=getchar();

}

p->next='\0';

【】;

}

31.最簡(jiǎn)單的交換排序方法是______。

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

fun(inta)

{intb=0;staticintc=3;

b++;c++;

return(a+b+c);

}

main()

{inti,a=5;

for(i=0;i<3;i++)printf("%d%d",i,fun(a));

printf("\n");

}

33.在最壞情況下,冒泡排序的時(shí)間復(fù)雜度為【】。

34.已知字符'A'的ASCII碼值為65,以下語(yǔ)句的輸出結(jié)果是【】。

charch='B';

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

35.數(shù)據(jù)庫(kù)設(shè)計(jì)分為以下6個(gè)設(shè)計(jì)階段:需求分析階段、______、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、實(shí)施階段、運(yùn)行和維護(hù)階段。

36.在面向?qū)ο蠓椒ㄖ校愔g共享屬性和操作的機(jī)制稱為_(kāi)_____。

37.數(shù)據(jù)流圖的類型有【】和事務(wù)型。

38.在宏定義#definePI3.14159中,用宏名PI代替一個(gè)______。

39.以下程序中,函數(shù)SumColumMin的功能是:求出M行N列二維數(shù)組每列元素中的最小值,并計(jì)算它們的和值,和值通過(guò)形參傳回主函數(shù)輸出。請(qǐng)?zhí)羁眨?/p>

#include<stdio.h>

#defineM2

#defineN4

voidSumColumMin(inta[M][N],int*sum)

{inti,j,k,s=0;

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

k=O;

for(j=1;j<M;j++)

if(a[k][i]>a[j][i])k=j;

s+:【】;

}

【】=s;

}

main()

{intx[M][N]={3,2,5,1,4,1,8,3},s;

SumColumMin(【】);

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

}

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

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

三、1.選擇題(20題)41.下列合法的聲明語(yǔ)句是()。

A.int_abc=50;

B.doubleint=3+5e2.5;

C.longdo=1L:

D.float3_asd=3e-3;

42.C語(yǔ)言中main函數(shù)參數(shù)的非法表示形式是()

A.main(char*argv[],intargc)

B.main(inta,char**b)

C.main(inty,char*x[])

D.main(intargv,char*argc[])

43.下面是對(duì)宏定義的描述,不正確的是______。

A.宏不存在類型問(wèn)題,宏名無(wú)類型,它的參數(shù)也無(wú)類型

B.宏替換不占用運(yùn)行時(shí)間

C.宏替換時(shí)先求出實(shí)參表達(dá)式的值,然后代入形參運(yùn)算求值

D.宏替換只不過(guò)是字符替代而已

44.下列程序中函數(shù)sort()的功能是對(duì)數(shù)組a中的數(shù)據(jù)進(jìn)行由大到小的排序。#include<stdio.h>voidsort(inta[],intn){inti,j,t;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){inta[10]={1,2;3,4,5,6,7,8,9,10},i;sort(&a[1],7);for(i=0;i<10;i++)printf("%d,",a[i]);}程序運(yùn)行后的輸出結(jié)果是()。

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

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

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

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

45.下列選項(xiàng)中,不能作為合法常最的是()。

A.1.2340000B.1.234.4C.1.2340000D.1.234

46.有以下程序charfun(charx,chary){if(x<y)returnx;returny;}main(){inta='9',b='8',c='';printf("%c\n",fun(fun(a,b),fun(b,c)));}程序的執(zhí)行結(jié)果是

A.函數(shù)調(diào)用出錯(cuò)B.8C.9D.7

47.下面程序的輸出結(jié)果是______。#include<stdio.h>main(){char*p[]="BOOL","OPK","H","SP"};inti;for(i=3;i>=0;i-,i-)printf("%c",*p[i]);printf("\n");}

A.SOB.SPC.SPOPKD.SHOB

48.若有定義語(yǔ)句:inta[2][3],*p[33;,則以下語(yǔ)句中正確的是()。

A.p=a;B.p[0]=a;C.p[0]=&a[1][2];D.p[1]=&a

49.有以下程序#include<stdlib.h>main(){char*p,*q;p=(char*)malloc(sizeof(char)*20);q=p;scanf(“%s%s”,p,q);printf(“%s%s\n”,p,q);}若從鍵盤(pán)輸入:abcdef<回車>,則輸出結(jié)果是

A.defdefB.abcdefC.abcdD.dd

50.以下敘述中錯(cuò)誤的是______。A.用戶所定義的標(biāo)識(shí)符允許使用關(guān)鍵字

B.用戶所定義的標(biāo)識(shí)符應(yīng)盡量做到“見(jiàn)名知意”

C.用戶所定義的標(biāo)識(shí)符必須以字母或下劃線開(kāi)頭

D.用戶定義的標(biāo)識(shí)符中,大、小寫(xiě)字母代表不同標(biāo)識(shí)

51.設(shè)有定義:intn=0,*p=&n,**q=&p;則下列選項(xiàng)中正確的賦值語(yǔ)句是()。

A.p=1;B.*q=2;C.q=p;D.*p=5;

52.下列關(guān)于棧的描述中,正確的是()

A.在棧中只能插入元素B.在棧中只能刪除元素C.只能在一端插入或刪除元素D.只能在一端插入元素,而在另一端刪除元素

53.有以下程序structSTU{charnum[10];floatscore[3];};main(){structSTUs[3]={{"20021",90,95,85},{"20022",95,80,75},{"20023",100,95,90}},*p=s;inti;floatsum=0;for(i-0;i<3,i++)sum=sum+p->score[i];printf("%6.2f\n",sum};}程序運(yùn)行后的輸出結(jié)果是

A.260B.270C.280D.285

54.下面程序的輸出結(jié)果為_(kāi)_____。#include<string.h>main(){charP[17]="abc"="ABC".STR[50]="xyz";strcpy(str,strcat(p1,p2));printf(%s,str);}

A.xyzabcABCB.abcABCC.xyzabcD.xyzABC

55.執(zhí)行下面程序時(shí),若輸入1、-5、6,則輸出結(jié)果為()。#include<stdio.h>#include<math.h>#definedisc(a,b,c)b*b-4*a*cmain(){floatx1,x2;inta,b,c;scanf("%d,%d,%d",&a,&b,&c);x1=(-b+sqrt(disc(a,b,c)))/(2*a);x2=(-b-sqrt(disc(a,b,c)))/(2*a);printf("%5.1f.%5.1f",x1,x2);}

A.3,2B.3.0,2.0C.-3,-2D.程序出錯(cuò)

56.下列合法的變量名是()

A.#33B.3D64C.a>bD.sum

57.棧底至棧頂依次存放元素A、B、C、D,在第五個(gè)元素E入棧前,棧中元素可以出棧,則出棧序列可能是

A.ABCEDB.DCBEAC.DBCEAD.CDABE

58.下列程序的輸出結(jié)果是()。#include<stdio.h>main(){inta=4printf("%d\n",(a+=a-=a*A));}

A.-8B.14C.0D.-24

59.有以下結(jié)構(gòu)體說(shuō)明,變量定義和賦值語(yǔ)句:structSTD{charname[10];intage;char***;}s[5],*ps;ps=&s[0];則以下scanf函數(shù)調(diào)用語(yǔ)句中錯(cuò)誤的結(jié)構(gòu)體變量成員是()。

A.scanf("%s",s[0].name);

B.scanf("%d",&s[0].age);

C.scanf("%c",&(ps->***));

D.scanf("%d",ps->age);

60.若一個(gè)外部變量的定義形式為staticintx;,那么,其中static的作用應(yīng)該是______。

A.將變量存儲(chǔ)在靜態(tài)存儲(chǔ)區(qū)B.使變量x可以由系統(tǒng)自動(dòng)初始化C.使x只能在本文件內(nèi)引用D.使x的值可以永久保留

四、選擇題(20題)61.已知一棵二叉樹(shù)前序遍歷和中序遍歷分別為ABDEGCFH和DBGEACHF,則該二叉樹(shù)的后序遍歷為()。

A.GEDHFBCAB.DGEBHFCAC.ABCDEFGHD.ACBFEDHG

62.下面的函數(shù)調(diào)用語(yǔ)句中func函數(shù)的實(shí)參個(gè)數(shù)是()。func((f2v1,v2),(v3,v4,v5),(v6,max(v7,v8)))

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

63.若有下面的程序段

#include"stdio.h"

main()

{inti=6;

while(i--)

printf("%d",--i);

printf("\n");

}

那么程序的輸出結(jié)果為

A.531B.420

C.654321D.死循環(huán)

64.下列選項(xiàng)中不合法的十六進(jìn)制數(shù)是()。

A."0"xffB."0"X11C."0"x1gD.”0”Xabc

65.(51)在計(jì)算機(jī)中,算法是指()

A.查詢方法

B.加工方法

C.解題方案的準(zhǔn)確而完整的描述

D.排序方法

66.(48)軟件調(diào)試的目的是()

A.發(fā)現(xiàn)錯(cuò)誤

B.改正錯(cuò)誤

C.改善軟件的性能

D.挖掘軟件的潛能

67.在數(shù)據(jù)庫(kù)管理系統(tǒng)的層次結(jié)構(gòu)中,處于最上層的是()。

A.應(yīng)用層B.語(yǔ)言翻譯處理層C.數(shù)據(jù)存取層D.數(shù)據(jù)存儲(chǔ)層

68.(38)索引屬于()

A.模式

B.內(nèi)模式

C.外模式

D.概念模式

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

#include<stdio.h>

main{inta=1,b=2,c=3,x;

x=(a^b)&c;printf("%d\n",x);}

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

70.

71.

72.

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

main

{intx=0.5;charz='a';

printf("%d\n",(x&1)&&(z<'2'));}A.A.0B.1C.2D.3

74.

75.函數(shù)fseek的正確調(diào)用形式是()。

A.fseek(位移量,起始點(diǎn),文件類型指針);

B.fseek(文件類型指針,位移量,起始點(diǎn));

C.fseek(文件類型指針,起始點(diǎn),位移量);

D.fseek(起始點(diǎn),位移量,文件類型指針);

76.某二叉樹(shù)有5個(gè)度為2的結(jié)點(diǎn),則該二叉樹(shù)中的葉子結(jié)點(diǎn)數(shù)是A.10B.8C.6D.4

77.要求通過(guò)while循環(huán)不斷讀入字符,當(dāng)讀人字母N時(shí)結(jié)束循環(huán),若變量已正確定義,下列正確的程序段是()。A.B.C.D.A.A.AB.BC.CD.D

78.以下敘述中正確的是(

)。A.C語(yǔ)言中的全部數(shù)據(jù)類型都是基本類型B.C語(yǔ)言中的全部數(shù)據(jù)類型都是構(gòu)造類型C.C語(yǔ)言中的數(shù)據(jù)類型只有兩種,即基本類型和構(gòu)造類型D.以上都不對(duì)

79.

80.定義無(wú)符號(hào)整數(shù)類為UInt,下面可以作為類UInt實(shí)例化值的是()。

A.-369B.369C.0.369D.整數(shù)集合{1,2,3,4,5}

五、程序改錯(cuò)題(1題)81.下列給定的程序中,函數(shù)proc()的功能是:為一個(gè)偶數(shù)尋找兩個(gè)素?cái)?shù),這兩個(gè)素?cái)?shù)之和等于該偶數(shù),并將這兩個(gè)素?cái)?shù)通過(guò)形參指針傳回主函數(shù)。

請(qǐng)修改函數(shù)proc()中的錯(cuò)誤,使它能得出正確的結(jié)果。

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

試題程序:

六、程序設(shè)計(jì)題(1題)82.下列程序判斷字符串s是否對(duì)稱,對(duì)稱則返回1,否則返回0;如f("abba")返回1,f("abab")返回0。

參考答案

1.D解析:用戶標(biāo)識(shí)符與關(guān)鍵字相同時(shí),程序在編譯過(guò)程中將給出出錯(cuò)信息。注意:選項(xiàng)D)應(yīng)該改為用戶標(biāo)識(shí)符與關(guān)鍵字相同,程序在編譯時(shí)將給出出錯(cuò)信息。注意:合法的標(biāo)識(shí)符第一個(gè)字符必須為字母或下劃線。

2.A本題考查按位與運(yùn)算,按位與就是相同為1,不同為0,把x=011050化成二進(jìn)制為0001001000101000,把01252化成二進(jìn)制為0000001010101010,兩者相與得0000001000101000。

3.A解析:本題考查C語(yǔ)言的綜合基礎(chǔ)知識(shí)。構(gòu)成C程序的基本單位是函數(shù),一個(gè)C程序總是從main函數(shù)開(kāi)始執(zhí)行,而不論main函數(shù)在整個(gè)程序中的位置如何。C語(yǔ)言的函數(shù)定義都是互相平行、獨(dú)立的,在定義函數(shù)時(shí),一個(gè)函數(shù)內(nèi)不能定義另一個(gè)函數(shù)。C函數(shù)定義的一般格式有兩種:傳統(tǒng)格式和現(xiàn)代格式。傳統(tǒng)格式也稱K&R格式,是早期編譯系統(tǒng)使用的格式;現(xiàn)代格式又稱ANSI格式,是現(xiàn)代編譯系統(tǒng)使用的格式。

4.AC語(yǔ)言中,合法的標(biāo)識(shí)符由字母、數(shù)字和下劃線組成,并且第1個(gè)字符必須是字母或下劃線。選項(xiàng)D中的“3break”錯(cuò)誤;用戶標(biāo)識(shí)符不能是C語(yǔ)言中的關(guān)鍵字或函數(shù),選項(xiàng)B中的“unsigned”是關(guān)鍵字,不是合法的用戶標(biāo)識(shí)符,“Switch”是合法的用戶標(biāo)識(shí)符;選項(xiàng)C中的“getch”是庫(kù)函數(shù)名,不是合法的用戶標(biāo)識(shí)符,而C語(yǔ)言區(qū)分字母大小寫(xiě),“Abc”是合法的用戶標(biāo)識(shí)符;選項(xiàng)A中的兩個(gè)標(biāo)識(shí)符都是合法的用戶標(biāo)識(shí)符。故本題答案為A選項(xiàng)。

5.D

6.D

7.AC語(yǔ)言中語(yǔ)法上規(guī)定實(shí)型變量是不能存放整型類型的數(shù)據(jù)的,整型數(shù)據(jù)也不能存放實(shí)型數(shù)據(jù)。是為了避免類型轉(zhuǎn)換之間可能會(huì)發(fā)生的錯(cuò)誤。

8.C后綴自增運(yùn)算“t++”表示先運(yùn)算,再自加。語(yǔ)句“if(t++<6)printf(“%d\\n”,t);elseprintf(“%d\\n”,t--);”中t的初值為6,則“t++<6”,條件為假,t自增至7,執(zhí)行“printf(“%d\\n”,t--);”,此時(shí)t=7,輸出t值為7,之后進(jìn)行自減操作t=6。因此輸出的結(jié)果為7。故本題答案為C選項(xiàng)。

9.B解析:投影操作是從關(guān)系中選擇某些列,投影后消去了某些屬性,就可能出現(xiàn)重復(fù)元組,根據(jù)關(guān)系的性質(zhì),應(yīng)消去這些完全相同的元組。這樣使得新關(guān)系的元組數(shù)小于或等于原來(lái)的元組數(shù)。

10.C

11.C解析:data是—結(jié)構(gòu)體變量,a是它的成員,因此引用a域的正確方法是:data.a,取它的地址賦值給指針變量p的語(yǔ)句應(yīng)該是:p=&data.a。選項(xiàng)A,將a的地址直接賦給了p,而忽略了a為結(jié)構(gòu)體內(nèi)部的一個(gè)成員,而不是一單獨(dú)的變量,故選項(xiàng)A不正確;選項(xiàng)B在p=data.a表達(dá)式中右邊為一個(gè)結(jié)構(gòu)體變量的成員不是地址,而左邊為一指針應(yīng)該將一地址賦給它,故選項(xiàng)B不正確;選項(xiàng)D表達(dá)式*p=data.a是將結(jié)構(gòu)體變量中的成員a的值賦給指針p所指向的變量值,而不是使指針p指向data中的a域,故選項(xiàng)D不正確:4個(gè)選項(xiàng)中只有C正確。

12.A

13.C

14.C對(duì)于結(jié)點(diǎn)個(gè)數(shù)相同的二叉排序樹(shù),平衡二叉排序樹(shù)的深度最小。而二叉排序樹(shù)的查找效率取決于二叉排序樹(shù)的深度。

15.A

16.C

17.C程序中變量a的初值為123456,while循環(huán)的終止條件是a為0。循環(huán)開(kāi)始將a的最后一位數(shù)字賦給b,a除以10后(丟棄最后一位)重新賦給a。在循環(huán)過(guò)程中,變量a和b的取值分別為:124566、123455、12344、1233、122、11。循環(huán)體中,執(zhí)行switch(b)語(yǔ)句,當(dāng)b的數(shù)值不等于1、2、3、4時(shí),首先執(zhí)行default語(yǔ)句,輸出b并將b自增1,再執(zhí)行case1、case2語(yǔ)句,輸出自增后的b值;當(dāng)b的數(shù)值等于1、2、3、4時(shí),只執(zhí)行case語(yǔ)句,輸出b的值。綜上,當(dāng)b為6、5時(shí),分別輸出67、56;當(dāng)b為4、3、2、1時(shí),分別輸出4、3、2、1。最終程序輸出結(jié)果為67564321。故本題答案為C選項(xiàng)。

18.C解析:本題考查的共用體的概念。共用體變量中的所有成員共享一段公共存儲(chǔ)區(qū),所以共用體變量所占內(nèi)存字節(jié)數(shù)與其成員中占字節(jié)數(shù)最多的那個(gè)成員相等.本題定義的共用體中成員C所占的內(nèi)存最多,因此選項(xiàng)B是正確的。由于共用體變量中的所有成員共享存儲(chǔ)空間,因此變量中的所有成員的首地址相同,選項(xiàng)A是正確的。同結(jié)構(gòu)體變量一樣,共用體類型的變量可以作為實(shí)參進(jìn)行傳遞,也可以傳送共用體變量的地址,選項(xiàng)D也是正確的。在內(nèi)存中,實(shí)數(shù)與整數(shù)的存放形式完全不一樣,共用體的成員共用的是同一塊內(nèi)存,而不是同一個(gè)數(shù)值,因此選項(xiàng)C是錯(cuò)誤的。

19.A通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過(guò)程稱為軟件生命周期。也就是說(shuō),軟件產(chǎn)品從考慮其概念開(kāi)始,到該軟件產(chǎn)品不能使用為止的整個(gè)時(shí)期都屬于軟件生命周期。

20.D

21.246

22.stringbis:Ilovechina!

23.存儲(chǔ)結(jié)構(gòu)

24.&a[i]或a+Ia[i]或*(a+i)&a[i]或a+I\r\na[i]或*(a+i)解析:主函數(shù)中一開(kāi)始定義了一個(gè)長(zhǎng)度為20的整形數(shù)組,然后通過(guò)一個(gè)循環(huán),循環(huán)20次給它的每個(gè)元素賦初值,所以在第一個(gè)空格處應(yīng)填各個(gè)元素的地址,即填&a[i]或a+i,然后再通過(guò)一個(gè)循環(huán)執(zhí)行20次,每循環(huán)一次,先判斷該循環(huán)是否大于0,如果大于0將其累加到變量sum中,所以第二個(gè)空格處應(yīng)該填入數(shù)組元素,即應(yīng)該填a[i]或*(a+i)。

25.關(guān)系或一個(gè)關(guān)系關(guān)系或一個(gè)關(guān)系解析:在關(guān)系數(shù)據(jù)庫(kù)中,把數(shù)據(jù)表示成二維表,而一個(gè)二維表就是一個(gè)關(guān)系。

26.ii解析:外循環(huán)是遞減的,方陣中的每個(gè)元素為(j-1)*4+i,因此空格處填i。

27.503503解析:此處需注意的是:如果if后面的條件為真,只執(zhí)行其后的一條語(yǔ)句或一條復(fù)合語(yǔ)句,如果if后面的條件為假,只執(zhí)行else后面的一條語(yǔ)句或一條復(fù)合語(yǔ)句。先判斷表達(dá)式“a<b”為假,不執(zhí)行“t=a”,但執(zhí)行“a=b;b=t;”,s的值為3,b的值為0。在判斷表達(dá)式“a<c”,值為真,所以執(zhí)行后面的3條語(yǔ)句“t=a;a=c;c=t”,結(jié)果a的值為5,c的值為3,所以最后輸出的結(jié)果為5、0和3。

28.k=k*ik=k*i解析:本題小通過(guò)for循環(huán)求s表達(dá)式中每一項(xiàng)的和,表達(dá)式“fac=fac/k;”求的是每一項(xiàng)的值,所以k的值應(yīng)為n!,在求n!的時(shí)候,可以用上次循環(huán)階乘的值乘i,就可以直接得此次n!,故木題填k=k*i。

29.驅(qū)動(dòng)驅(qū)動(dòng)

30.(structlist*)(structlist*)return(h)

31.冒泡排序冒泡排序解析:交換排序是指借助數(shù)據(jù)元素之間的互相交換進(jìn)行排序的一種方法。冒泡排序是一種最簡(jiǎn)單的交換排序方法,它是通過(guò)相鄰元素之間的相互交換逐步將線性表變成有序。

32.010111212010111212解析:本題考查的是靜態(tài)局部變量的運(yùn)用。靜態(tài)局部變量的作用域與普通局部變量一樣,但它的生存期將延長(zhǎng)到程序運(yùn)行結(jié)束。本題的主函數(shù)中使用一個(gè)for循環(huán)輸出循環(huán)變量i和fun(a)的值,由于a的值一直沒(méi)被修改過(guò),所以三次調(diào)用的都是fun(5)。第1次調(diào)用,b=0,c=3,所以返回值為5+1+4=10;第2次調(diào)用,因?yàn)閏是靜態(tài)局部變量,它仍然保存著上次調(diào)用結(jié)束時(shí)的值4,而b重新被創(chuàng)建和初始化為0,所以返回值為5+1+5=11;同理,第3次調(diào)用返回的是12。所以,程序最終輸出為:010111212。

33.

解析:冒泡排序法是通過(guò)相鄰數(shù)據(jù)元素的交換逐步將線性表變成有序。假設(shè)線性表的長(zhǎng)度為n,則在最壞的情況下,冒泡排序需要經(jīng)過(guò)遍的從前往后的掃描和遍的從后往前的掃描,需要的比較次數(shù)為。

34.B66B66解析:字符B的ASCII碼值為66,因此,按%c形式輸出B,按%d形式輸出66,輸出結(jié)果為:B66。

35.概念設(shè)計(jì)階段(數(shù)據(jù)庫(kù)概念設(shè)計(jì)階段)概念設(shè)計(jì)階段(數(shù)據(jù)庫(kù)概念設(shè)計(jì)階段)

36.繼承繼承

37.變換型典型的數(shù)據(jù)流類型有兩種:變換型和事務(wù)型。變換型是指信息沿輸入通路進(jìn)入系統(tǒng),同時(shí)由外部形式變換成內(nèi)部形式,進(jìn)入系統(tǒng)的信息通過(guò)變換中心,經(jīng)加工處理以后再沿輸出通路變換成外部形式離開(kāi)軟件系統(tǒng);在很多軟件應(yīng)用中,存在某種作業(yè)數(shù)據(jù)流,它可以引發(fā)一個(gè)或多個(gè)處理,這些處理能夠完成該作業(yè)要求的功能,這種數(shù)據(jù)流就叫做事務(wù)。

38.字符串字符串解析:本題考查字符替換格式:#define標(biāo)識(shí)符字符串。

39.a[k][i]*sumx&sa[k][i]\r\n*sum\r\nx,&s解析:程序段for(j=1;j<M;j++)if(a[k][i]>a[j][i]))k=j;是找出第i列的最小值,第一處應(yīng)該是每列最小值累加,所以填a[k][i];和值要通過(guò)形參傳回主函數(shù),第二處應(yīng)該填*sum;根據(jù)形參可以確定第三處應(yīng)該填x,&s。

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

41.A解析:C語(yǔ)言規(guī)定,標(biāo)識(shí)符是由字母、數(shù)字或下劃線組成,并且它的第一個(gè)字符必須是字母或者下劃線。另外C語(yǔ)言規(guī)定了一些專用的標(biāo)識(shí)符,它們有著固定的含義,不能更改。int就是表達(dá)變量類型的標(biāo)識(shí)符,它不能再用做變量名和函數(shù)名,所以選項(xiàng)B)不正確。do是C語(yǔ)言的一個(gè)關(guān)鍵字,也不能再用做變量名和函數(shù)名,所以選項(xiàng)C)不正確。

42.A

43.C解析:宏替換實(shí)質(zhì)上就是字符替代,它不可能進(jìn)行計(jì)算,故C錯(cuò)誤。帶參數(shù)的宏與函數(shù)相比,宏在程序編譯之前已經(jīng)將代碼替換到程序內(nèi),執(zhí)行時(shí)不會(huì)產(chǎn)生類似于函數(shù)調(diào)用的問(wèn)題,可以說(shuō)不占用運(yùn)行時(shí)間。

44.C解析:本程序中的函數(shù)sort(inta[],intn)實(shí)現(xiàn)的功能是將數(shù)組a中的前n個(gè)數(shù)進(jìn)行從大到小排序。sort(&a[1],7)是將數(shù)組中從a[1]到a[7]這7個(gè)數(shù)進(jìn)行從大到小排序,其他數(shù)不變。

45.B

46.D解析:經(jīng)過(guò)分析得出函數(shù)fun()的功能是比較形參x和形參y的大小,返回較小的一個(gè)。函數(shù)fun()有兩個(gè)參數(shù)。本題中,首先定義了三個(gè)整型變量a、b和c,分別賦初值為9、8和7。然后執(zhí)行函數(shù)fun(fun(a,b),fun(b,c))。在該函數(shù)中分別將fun(a,b)和fun(b,c)函數(shù)的返回值作為該函數(shù)的兩個(gè)實(shí)參。在函數(shù)fun(a,b)中,由于a>b,故返回較小值b即8,在函數(shù)fun(b,c)中,由于b<c,故返回較小值c即為7,因此調(diào)用函數(shù)fun(fun(a,b),fun(b,c))相當(dāng)于執(zhí)行函數(shù)fun(8,7),返回較小值即7。

47.A解析:p[0]存放的是“BOOL\\0”的首地址;p[1]存放的是“OPK\\0”的首址等。在printf語(yǔ)句中輸出的*p[i]表示p[i]字符串的第—個(gè)字符。在for循環(huán)中,i的初值為3,那么輸出的第—個(gè)字符為“S”,接著兩次i-,則輸出的值為*p[1],即字符“O”,所以本題的輸出為SO。

48.B解析:本題考查的重點(diǎn)是指針數(shù)組與二維數(shù)組的關(guān)系。因?yàn)?p[3]定義成指針數(shù)組,從而指針數(shù)組中的任何元素都是一個(gè)地址,因此,選項(xiàng)B是正確的。

49.A解析:本題首先定義兩個(gè)字符型指針變量p和q,通過(guò)malloc()函數(shù)申請(qǐng)20個(gè)字符的存儲(chǔ)空間,并把它的首地址賦給p,再把p的值賦給q,p和q指向同一個(gè)存儲(chǔ)區(qū)。在scanf()語(yǔ)句中讀取字符串到p和q指向的字符串,先把“abc”讀取到P指向的存儲(chǔ)區(qū)中,第一個(gè)空格是結(jié)束標(biāo)記,第二個(gè)空格是分隔符,再把“def”存放到q指向的存儲(chǔ)區(qū),把原先的內(nèi)容覆蓋。所以p和q指向的存儲(chǔ)區(qū)中內(nèi)容是“def”,所以最后輸出為def,def。

50.A解析:C語(yǔ)言規(guī)定標(biāo)識(shí)符只能由字母、數(shù)字和下劃線三種符號(hào)組成,而且第一個(gè)字符必須是字母或下劃線。大寫(xiě)字母和小寫(xiě)字母被認(rèn)為是兩個(gè)不同的字符,用戶在定義標(biāo)識(shí)符時(shí)應(yīng)盡量做到“見(jiàn)名知意”,且不允許使用關(guān)鍵字作標(biāo)識(shí)符。

51.D解析:選項(xiàng)A),B),C)的指針賦值表達(dá)方式都不正確,*p=5表達(dá)整數(shù)5放到指針p所指向的存儲(chǔ)單元中。注意:通過(guò)指針引用一個(gè)存儲(chǔ)單。

52.C\nC)【解析】棧實(shí)際也是線性表,只不過(guò)是一種特殊的線性表。棧是只能在表的~端進(jìn)行插入和刪除運(yùn)算的線性表,通常稱插入、刪除的這一端為棧頂另一端為棧底。當(dāng)表中沒(méi)有元素時(shí)稱為空棧。棧頂元素總是最后被插入的元素,從而也是最先被刪除的元素;棧底元素總是最先被插入的元素,從而也是最后才能被刪除的元素。

\n

53.B解析:本題考查的知識(shí)點(diǎn)是結(jié)構(gòu)體數(shù)組元素的成員元素的引用。程序中首先定義了一個(gè)結(jié)構(gòu)體,其成員為一字符數(shù)組和一浮點(diǎn)型數(shù)組。在main()首先定義了一個(gè)結(jié)構(gòu)體數(shù)組并初始化.接下來(lái)在for循環(huán)中遍歷了結(jié)構(gòu)體數(shù)組中的第一個(gè)元素中數(shù)組成員即{'20021',90,95,85'}循環(huán)結(jié)果為90+95+85=270最后sum為270,又輸出格式為“%6.2f\\n”要求保留兩位小數(shù)故最后輸出為270.00。所以4個(gè)選項(xiàng)中B正確。

54.B解析:strcpy(strl,s1):作用是將字符串s1拷貝到字符數(shù)組strl中去。strcat(字符數(shù)組1,字符數(shù)組2):把字符串2接到字符串1的后面,結(jié)果放在字符數(shù)組1中,函數(shù)調(diào)用后返回字符數(shù)組1的地址。本題定義了三個(gè)字符數(shù)組pl,p2,str,strcat(pl,p2)函數(shù)的作用是將字符串?dāng)?shù)組p2接到字符串p1的后面,結(jié)果放在字符數(shù)組p1中,再通過(guò)strcpy()函數(shù)將該字符串拷貝到str數(shù)組中,原str數(shù)組中的字符串xyz被覆蓋,因此打印輸出字符串str即可得到abcABC。

55.B解析:本題是使用帶參數(shù)的宏來(lái)求解一元二次方程的兩個(gè)根。表達(dá)式x1=(-b+sqrt(disc(a,b,c)))/(2*a)宏展開(kāi)后為:x1=(-b+sqrt(b*b-4*a*c))/(2*a)=(5+sqrt(25-24))/2=6/2=3。表達(dá)式x2=(-b-sqrt(disc(a,b,c)))/(2*a)宏展開(kāi)后為:x2=(-b-sqrt(b*b-4*a*c))/(2*a)=(5-sqrt(25-24))/2=4/2=2。所以程序輸出結(jié)果為3.0,2.0,應(yīng)該選擇B。

56.D

57.B解析:棧操作原則上“后進(jìn)先出”,棧底至棧頂依次存放元素A、B、C、D,則表明這4個(gè)元素中D是最后進(jìn)棧,B、C處于中間,A最早進(jìn)棧。所以出棧時(shí)一定是先出D,再出C,最后出A。

58.D解析:表達(dá)式a+=a-=a*a看起來(lái)復(fù)雜,其實(shí)將它分成兩個(gè)表達(dá)式來(lái)計(jì)算就簡(jiǎn)單了:①第一個(gè)表達(dá)式(a-=a*a)=(a=a-a*a=-12);②第二個(gè)表達(dá)式(a+=a-=a*a)=(a=a+a=-24)。

59.D

60.C解析:事實(shí)上,無(wú)論有無(wú)static修飾,外部變量都具有A、B和C三種特性。作為一種修飾,static僅是限制此類型外部變量韻引用范圍:只能在定義它的文件范圍內(nèi)使用。

61.B遍歷是按照一定規(guī)則對(duì)樹(shù)中全部結(jié)點(diǎn)逐一訪問(wèn)的方法。二叉樹(shù)可由根結(jié)點(diǎn)、左子樹(shù)和右子樹(shù)三個(gè)部分組成。根據(jù)對(duì)根結(jié)點(diǎn)訪問(wèn)的先后順序,可將遍歷方法分為先序遍歷、中序遍歷和后序遍歷三種。先序遍歷首先訪問(wèn)根結(jié)點(diǎn),再先序遍歷左子樹(shù),最后先序遍歷右子樹(shù),可見(jiàn)遍歷是一個(gè)遞歸的過(guò)程。求樹(shù)的遍歷這種問(wèn)題的關(guān)鍵在于認(rèn)清每棵子樹(shù)的根結(jié)點(diǎn)的訪問(wèn)順序。題目給出了一棵樹(shù)的先序遍歷和中序遍歷的結(jié)點(diǎn)順序,先序遍歷的第一個(gè)結(jié)點(diǎn)為整棵樹(shù)的根結(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)的二叉樹(shù)的左子樹(shù),同理,中序遍歷

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論