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

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(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ì)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.設(shè)有定義:floata=2,b=4,h=3;以下c語(yǔ)言表達(dá)式中與代數(shù)式(a+B)h計(jì)算結(jié)果不相符的是()。A.(a+B)*h/2B.(1/2)*(a+B)*hC.(a+B)*h*1/2D.h/2*(a+B)

2.需求分析階段的任務(wù)是確定()

A.軟件開(kāi)發(fā)方法B.軟件開(kāi)發(fā)工具C.軟件開(kāi)發(fā)費(fèi)用D.軟件系統(tǒng)功能

3.設(shè)有inta=15,b=240;,則表達(dá)式(a&b)&b||b的值為_(kāi)_____。

A.0B.1C.真D.假

4.有以下程序:#include<stdio.h>main(){inta=1,b=2,c=3;charflag;flag=b>=2&&c<=3;switch(a){ case1:switch(flag) { case0:printf(“**”);break; case1:printf(“%%”);break; } case0:switch(c) { case1:printf(“$$”);break; case2:printf(“&&”);break; default:printf(“##”); }}printf(“\n”);}程序運(yùn)行后的輸出結(jié)果是()。

A.**$$B.%##C.%&&D.**##

5.表達(dá)式18/4*sqrt(4.0)/8值的數(shù)據(jù)類(lèi)型為()。A.intB.floatC.doubleD.不確定

6.待排序的關(guān)鍵碼序列為(33,18,9,25,67,82,53,95,12,70),要按關(guān)鍵碼值遞增的順序排序,采取以第一個(gè)關(guān)鍵碼為基準(zhǔn)元素的快速排序法,第一趟排序后關(guān)鍵碼33被放到第()個(gè)位置。

A.3B.5C.7D.9

7.下列關(guān)于線(xiàn)性表、棧和隊(duì)列的敘述,錯(cuò)誤的是()。

A.線(xiàn)性表是給定的n(n必須大于零)個(gè)元素組成的序列

B.線(xiàn)性表允許在表的任何位置進(jìn)行插入和刪除操作

C.棧只允許在一端進(jìn)行插入和刪除操作

D.隊(duì)列允許在一端進(jìn)行插入在另一端進(jìn)行刪除

8.

9.若整型變量a、b、c、d中的值依次為2、2、3、4,則條件表達(dá)式a<b?a:c<d?c:d的值是()。A.1B.2C.3D.4

10.假設(shè)整型數(shù)i的地址為0x12345678,指針ip地址為0x21850043,則執(zhí)行以下后,k的值為()。A.0x12345678B.0x21850043C.100D.不確定

11.讀取二進(jìn)制文件的函數(shù)調(diào)用形式為:fread(buffersize,count,fp);,其中buffer代表的是()。

A.一個(gè)文件指針,指向待讀取的文件

B.一個(gè)整型變量,代表待讀取的數(shù)據(jù)的字節(jié)數(shù)

C.一個(gè)內(nèi)存塊的首地址,代表讀人數(shù)據(jù)存放的地址

D.一個(gè)內(nèi)存塊的字節(jié)數(shù)

12.

13.有下列程序:main(){char*P[]={"3697","2584");inti,j;longnum=0;for(i=0;i<2;i++){j=0;while(p[i][j]!=\0){if((p[i][j]-t\0)%2)num=10*num+p[j][j]-0;j+=2;}}printf("%d\n",num);}程序執(zhí)行后的輸出結(jié)果是()。A.35B.37C.39D.3975

14.在長(zhǎng)度為n的順序表的第i個(gè)位置上插入一個(gè)元素(1≤i≤n+1),元素的移動(dòng)次數(shù)為:()。

A.n–i+1B.n–iC.iD.i–1

15.下面關(guān)于編譯預(yù)處理的命令行中,正確的是()。

A.#defineintINT

B.##defineeps0.001

C.##DEFINETRUE

D.#defineE2.88

16.為了使模塊盡可能獨(dú)立,要求()。

A.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量強(qiáng)

B.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量弱

C.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量弱

D.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量強(qiáng)

17.有下列程序:#include<stdio.h>voidfun(char*a,char*B){while(*a=='*')a++;while(*b=*A){b++;a++;}}main(){char*s="*****a*b****",t[80];fun(s,t);puts(t);程序的運(yùn)行結(jié)果是()。A.*****a*bB.a*bC.a*b****D.ab

18.若有定義語(yǔ)句:“charsE10]="1234567\0\0";”,則strlen(s)的值是()。A.A.7B.8C.9D.10

19.已有定義:charc;,程序前面已在命令行中包含ctype.h文件,不能用于判斷c中的字符是否為大寫(xiě)字堪的表達(dá)式是()。

A.isupper(c)B.A<=c<=ZC.A<=c&&c<=ZD.c<=(z-32)&&(a-32)<=c

20.以下定義數(shù)組的語(yǔ)句錯(cuò)誤的是()。

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

B.intnum[][3]={{1,2},3,4,5,6};

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

D.intnum[][4]={1,2,3,4,5,6};

二、2.填空題(20題)21.下列程序的輸出結(jié)果是【】。

intt(intx,inty,intcp,intdp)

{cp=x*x+y*y;

dp=x*x-y*y;

}

main()

{inta=4,b=3,c=5,d=6;

t(a,b,c,d);

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

}

22.在鏈表的運(yùn)算過(guò)程中,能夠使空表與非空表的運(yùn)算統(tǒng)一的結(jié)構(gòu)是______。

23.若s是int型變量,且s=8,則s%3+(s+1)%3表達(dá)式的值為()。

24.下面fun函數(shù)的功能是將形參x的值轉(zhuǎn)換成二進(jìn)制數(shù),所得二進(jìn)制數(shù)的每一位數(shù)放在數(shù)組中返回,二進(jìn)制數(shù)的最低位放在下標(biāo)為0的元素中,其他依此類(lèi)推。請(qǐng)?zhí)羁铡?/p>

Fun(intx,intb[])

{intk=0,r;

do

{r=x%2;

()=r;

x/=2;

}while(x);

}

25.以下程序的功能是建立一個(gè)帶有頭結(jié)點(diǎn)的單向鏈表,鏈表結(jié)點(diǎn)中的數(shù)據(jù)通過(guò)鍵盤(pán)輸入,當(dāng)輸入數(shù)據(jù)為-1時(shí),表示輸入結(jié)束(鏈表頭結(jié)點(diǎn)的data域不放數(shù)據(jù),表空的條件是ph->next==NULL),請(qǐng)?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();}

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

#include<stdio.h>

main()

{intx=1,y=0,a=0,b=0;

switch(x)

{case1:

switch(y)

{case0:a++;break;

case1:b++;break;

}

case2:a++;b++;break;

case3:a++;b++;

}

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

}

27.數(shù)據(jù)字典是各類(lèi)數(shù)據(jù)描述的集合,它通常包括五個(gè)部分,即數(shù)據(jù)項(xiàng)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、【】和處理過(guò)程。

28.以下程序段的運(yùn)行結(jié)果是()。#include<stdio.h>main(){intx=2,y=1:switch(x){case1:switch(y){case0:printf("x=2,y=1\n");break;case1:printf("y=1\n");break;}case2:printf("x=2\n");}}

29.下列程序的運(yùn)行結(jié)果是______。

#include<string.h>

char*ss(char*s)

{returns+strlen(s)/2;}

main()

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

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

}

30.注釋說(shuō)明了程序的功能,它分為【】注釋和功能性注釋。

31.一棵二叉樹(shù)第6層(根結(jié)點(diǎn)為第一層)的結(jié)點(diǎn)最多為_(kāi)_____個(gè)。

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

main()

{intx,y,z;

x=24;

y=024;

z=0x24;

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

}

33.數(shù)據(jù)庫(kù)系統(tǒng)中實(shí)現(xiàn)各種數(shù)據(jù)管理功能的核心軟件稱(chēng)為【】。

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

main()

{chars[]="abcdef";

s[3]='\0';

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

}

35.Jackson方法是一種面向【】的結(jié)構(gòu)化方法。

36.層次模型的典型代表是IBM公司的【】數(shù)據(jù)庫(kù)管理系統(tǒng)。

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

#include<stdio.h>

main()

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

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

fwtite(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++)printf("%d",a[i]);

}

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

39.下面程序的功能是將一個(gè)字符串str的內(nèi)容顛倒過(guò)來(lái),請(qǐng)?zhí)羁铡?/p>

#include<string.h>

main()

{infi,j,[13];charstr[]={"1234567"};

for(i=0,j=strlen(str)[14];i<j;i++,j--)

{k=str[i];str[i]=str[i];str[j]=k;}

printf("%s\n",str);}

40.當(dāng)運(yùn)行以下程序時(shí),輸入abcd,程序的輸出結(jié)果是()。insert(charstr[]){inti;i=strlen(str);while(i>0){str[2*i]=str[i];str[2*i-1]='*';i--;}printf("%s\n",str);}main(){charstr[40];scanf("%s\n",str);insert(str);}

三、1.選擇題(20題)41.軟件詳細(xì)設(shè)計(jì)的主要仟?jiǎng)?wù)是確定每個(gè)模塊的

A.算法和使用的數(shù)據(jù)結(jié)構(gòu)B.外部接口C.功能D.編程

42.設(shè)有定義語(yǔ)句:intx[6]={2,4,6,8,5,7},*p=x,i;要求依次輸出x數(shù)組6個(gè)元素中的值,不能完成此操作的語(yǔ)句是()。

A.for(i=0;i<6;i++)printf("%2d",*(p++));

B.for(i=0;i<6;i++)printf("%2d",*(p+i));

C.for(i=0;i<6;i++)printf("%2d",*p++);

D.for(i=0;i<6;i++)printf("%2d",(*p)++);

43.有以下程序main()intk=4,n=0;for(;n<k;){n++;if(n%3!=0)continue;k--;}printf("%d,%d\n",k,n);程序運(yùn)行后的輸出結(jié)果是

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

44.以下不能正確定義二維數(shù)組的選項(xiàng)是

A.inta[2][2]={{1},{2)};

B.inta[][2]={1,2,3,4};

C.inta[2][2]={{1},2,3};

D.inta[2][]={{1,2},{3,4)};

45.下列選項(xiàng)中屬于C語(yǔ)言構(gòu)造類(lèi)型的是()

A.指針類(lèi)型B.空類(lèi)型C.枚舉類(lèi)型D.數(shù)組類(lèi)型

46.軟磁盤(pán)最外邊的磁道數(shù)是()

A.0B.1C.39D.79

47.模塊本身的內(nèi)聚是模塊獨(dú)立性的重要性度量因素之一。在7類(lèi)內(nèi)聚中,具有最強(qiáng)內(nèi)聚的一類(lèi)是__________。

A.順序性?xún)?nèi)聚B.過(guò)程性?xún)?nèi)聚C.邏輯性?xún)?nèi)聚D.功能性?xún)?nèi)聚

48.以下選項(xiàng)中不合法的標(biāo)識(shí)符是A.printB.FORC.&aD._00

49.以下程序中函數(shù)f的功能是將n個(gè)字符串按由大到小的順序進(jìn)行排序:#include<string.h>voidf(charp[][10],intn){chart[20];inti,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++if(strcmp(p[i],p[j])<0){strcpy(t,p[i]);strcpy(p[i],p[j]);strcpy(p[j],t);}}main(){charp[][10]:{"abc","aabdfg","abbd","dcdbe","cd",);inti;f(p,5);printf("%d\n",strlen(p[0]));}程序運(yùn)行后的輸出結(jié)果是()。

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

50.下列程序執(zhí)行后的輸出結(jié)果是______。main(){charx=0xFFFF;printf("%d\n",x--);}

A.-32767B.FFFEC.-1D.-32768

51.程序中對(duì)fun()函數(shù)有如下說(shuō)明void*fun();此說(shuō)明的含義是______。

A.fun函數(shù)無(wú)返回值

B.fun函數(shù)的返回值可以是任意的數(shù)據(jù)類(lèi)型

C.fun函數(shù)的返回值是無(wú)值型的指針類(lèi)型

D.指針fun指向一個(gè)函數(shù),該函數(shù)無(wú)返回值

52.下列程序的輸出結(jié)果是______。#include<stdio.h>f(char8s){char*p=s;while(*p!='\0')p++;return(p-s);}main(){printf("%d\n",f("ABCDEF"));}

A.3B.6C.8D.0

53.以下程序的輸出結(jié)果是______。main(){inta[4][4]={{1,3,5},{2,4,6},{3,5,7}};printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],[3][0]);}

A.650B.1470C.5430D.輸出值不定

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

A.C語(yǔ)言的源程序不必通過(guò)編譯就可以直接運(yùn)行

B.C語(yǔ)言中的每條可執(zhí)行語(yǔ)句最終都將被轉(zhuǎn)換成二進(jìn)制的機(jī)器指令

C.C源程序經(jīng)編譯形成的二進(jìn)制代碼可以直接運(yùn)行

D.C語(yǔ)言中的函數(shù)不可以單獨(dú)進(jìn)行編譯

55.閱讀下面程序,則程序段的功能是

#include"stdio.h"

main()

{intc[]={23,1,56,234,7,0,34},i,j,t;

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

{t=c[i];j=i-1;

while(j>=0&&t>c[j])

{c[j+1]=c[j];j--;}

c[j+1]=t;}

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

printf("%d",c[i]);

putchar(′\n′);}

A.對(duì)數(shù)組元素的升序排列B.對(duì)數(shù)組元素的降序排列C.對(duì)數(shù)組元素的倒序排列D.對(duì)數(shù)組元素的隨機(jī)排列

56.下面對(duì)對(duì)象概念描述,不正確的是

A.任何對(duì)象都必須有繼承性B.對(duì)象是屬性和方法的封裝體C.對(duì)象間的通訊靠消息傳遞D.操作是對(duì)象的動(dòng)態(tài)屬性

57.若有以下定義:chars[20]="programming",*ps=s;則不能代表字符。的表達(dá)式是()

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

58.有以下程序

voidf(int*q)

{inti=0;

for(;i<5;i++)(*q)++;

}

main()

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

f(a);

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

}

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

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

59.下列程序中函數(shù)reverse()的功能是將a所指數(shù)組中的內(nèi)容進(jìn)行逆置。#include<stdio.h>voidreverse(inta[],intn){inti,t;for(i=0;i<n/2;i++){t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;)}main(){intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;reverse(b,10);for(i=0;i<3;i++)s+=b[i];printf("%d\n",s);}程序運(yùn)行后的輸出結(jié)果是()。

A.27B.6C.25D.30

60.若有說(shuō)明:inta[][3]={1,2,3,4,5,6,7};則數(shù)組a第一維的大小是()。

A.2B.3C.4D.無(wú)確定值

四、選擇題(20題)61.有以下程序:

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

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

62.有以下程序:

#include<stdio.h>

main()

{unsignedchara=8,C;

C=a>>3:

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

}

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

A.32B.16C.1D.0

63.設(shè)有下列二叉樹(shù):對(duì)此二叉樹(shù)前序遍歷的結(jié)果為()

A.ZBTYCPXAB.ATBZXCYPC.ZBTACYXPD.ATBZXCPY

64.以下程序中函數(shù)f的功能是:當(dāng)na9為1時(shí),進(jìn)行由小到大排序;當(dāng)na9為0時(shí),進(jìn)行由大到小排序。

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

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

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

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

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

65.以下能正確定義字符串的語(yǔ)句是()。

A.charstr=”\x43”;

B.charstr[]=”、0”;

C.charstr=”;

D.charstr[]={’\064’};

66.

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

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

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

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

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

68.下面不屬于軟件設(shè)計(jì)原則的是()。

A.抽象B.模塊化C.自底向上D.信息隱蔽

69.

70.有以下程序:

#include<stdio.h>

voidmain()

{fILE*fp;inti,a[4]={1,2,3,4},b;

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

for(i=0;i<4;i++)fwrite(&a[i],sizeof(int),1,fp);

fclose(fp)

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

fseek(fp,-2L*sizeof(int),1,fp);/*文件中讀取sizeof(int)字節(jié)的數(shù)據(jù)到變量b中*/

fclose(fp);

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

}

程序中fseek(fp,-2L*sizeof(int),SEEK_END);語(yǔ)句的作用是()。

A.使位置指針從文件末尾向前移2*sizeof(int)字節(jié)

B.使位置指針從文件末尾向前移2字節(jié)

C.使位置指針向文件末尾向前移懂2*sizeof(int)字節(jié)

D.使位置指針向文件末尾移動(dòng)2字節(jié)

71.

72.若有以下說(shuō)明和定義,以下敘述中錯(cuò)誤的是(

)。uniondt{

int

a;char

b;double

c;}data;A.兩個(gè)共用體變量之間可以相互賦值B.變量data所占內(nèi)存字節(jié)數(shù)與成員c所占字節(jié)數(shù)相等C.程序段:data.a=5;printf("%f\n",data.c);輸出結(jié)果為5.000000D.共用體在初始化時(shí)只能用第一個(gè)成員的類(lèi)型進(jìn)行初始化

73.

設(shè)有定義:“inta;floatb;”,執(zhí)行“scanf("%2d%f",&a,&b);”語(yǔ)句時(shí),若從鍵盤(pán)輸入876543.0<回車(chē)>,a和b的值分別是()。

A.876和543.000000

B.87和6.000000

C.87和543.000000

D.76和543.000000

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

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

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

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

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

75.有以下程序

#include<stdio.h>

intfun(int(*s)[4],intn,intk)

{intm,i;

m=s[0][k];

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

if(s[i][k]>m)m=s[i][k];

returnm;

}

main()

{inta[4][4]={{1,2,3,4},{11,12,13,14},{2l,22,23,24},{31,32,33,34}};

printf("%d\n",fun(a,4,0));

}

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

A.4B.34

C.31D.32

76.有以下程序#include<stdio.h>main(){inti,j,m=55;for(i=1;i<=3;i++)for(j=3;j<=i;j++)m=m%j;printf(“%d\n”,m);}程序的運(yùn)行結(jié)果是()A.1B.0C.2D.3

77.有以下程序:

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

A.ABCDDEFEDBD

B.abcDDfefDbD

C.abcAAfefAbA

D.Abcddfefdbd

78.有以下程序:

執(zhí)行時(shí)輸入:aBeDefG##<;回車(chē)>;,則輸出結(jié)果是()。

A.AbCdEFgB.ABCDEFGC.BCDEFGHD.bedefgh

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

A.棧是“先進(jìn)先出”的線(xiàn)性表

B.隊(duì)列是“先進(jìn)后出”的線(xiàn)性表

C.循環(huán)隊(duì)列中元素的個(gè)數(shù)是由隊(duì)頭指針和隊(duì)尾指針共同決定的

D.循環(huán)隊(duì)列中隊(duì)頭指針是固定不變的

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

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

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:根據(jù)整型形參n的值,計(jì)算如下公式的值。t=1-1/(2*2)-1/(3*3)-…-l/(n*n)例如,當(dāng)n=7時(shí),t=0.488203。請(qǐng)修改函數(shù)proc()中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計(jì)題(1題)82.假定輸入的字符串中只包含字母和*號(hào)。請(qǐng)編寫(xiě)函數(shù)proc(),它的功能是:除了尾部的*號(hào)之外,將字符串中其他*號(hào)全部刪除。形參P已指向字符串中最后一個(gè)字母。在編寫(xiě)函數(shù)時(shí),不得使用C語(yǔ)言的字符串函數(shù)。例如,若字符串中的內(nèi)容為****a*bc*def*g****,刪除后,字符串中的內(nèi)容應(yīng)當(dāng)是abcdefg****。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填人所編寫(xiě)的若干語(yǔ)句。試題程序:

參考答案

1.B解析:選項(xiàng)B中由于1和2都是整型,其1/2的運(yùn)算結(jié)果為0,故整個(gè)表達(dá)式的值為0,所以它的結(jié)果和題目中要求的代數(shù)式的討算結(jié)果不相符,所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。

2.D解析:結(jié)構(gòu)化分析方法,數(shù)據(jù)流圖,數(shù)據(jù)字典,軟件需求規(guī)格說(shuō)明書(shū)

評(píng)析,需求分析是軟件定義時(shí)期的最后一個(gè)階段,它的基本任務(wù)就是詳細(xì)調(diào)查現(xiàn)實(shí)世界要處理的對(duì)象(組織,部門(mén)、企業(yè)等),充分了解原系統(tǒng)的工作概況,明確用戶(hù)的各種需求,然后在此基礎(chǔ)上確定新系統(tǒng)的功能.選項(xiàng)A)軟件開(kāi)發(fā)方法是在總體設(shè)計(jì)階段完成的任務(wù);選項(xiàng)B)軟件開(kāi)發(fā)工具是在實(shí)現(xiàn)階段需完成的任務(wù):選項(xiàng)C)軟件開(kāi)發(fā)費(fèi)用是在可行性研究階段需完成的任務(wù)。

3.B

4.Bmain函數(shù)中,根據(jù)“b=2,c=3”可知表達(dá)式“b>=2&&c<=3”為真,flag值為1。由“a=1”和外層switch語(yǔ)句的case標(biāo)號(hào)沒(méi)有break語(yǔ)句,可知外層switch語(yǔ)句執(zhí)行case1,case0。對(duì)于外層case1:嵌套的switch語(yǔ)句根據(jù)“flag=1”執(zhí)行case1,執(zhí)行“printf(“%%”);”,輸出“%”,接著執(zhí)行break語(yǔ)句,結(jié)束內(nèi)層switch執(zhí)行外層;對(duì)于外層case0:嵌套的switch語(yǔ)句根據(jù)“c=3”執(zhí)行default語(yǔ)句,執(zhí)行“printf(“##”);”,輸出“##”。故本題答案為B選項(xiàng)。

5.C因?yàn)閏語(yǔ)言數(shù)據(jù)進(jìn)行計(jì)算時(shí)數(shù)據(jù)類(lèi)型會(huì)由低級(jí)向高級(jí)進(jìn)行隱式轉(zhuǎn)化,sqrt函數(shù)得到的是double類(lèi)型,比其他的int數(shù)據(jù)類(lèi)型高,所以整個(gè)結(jié)果得到的是double類(lèi)型。

6.BB.【解析】快速排序的基本思想是:從表中選取一個(gè)元素(如本題中的33),將表中小于此元素的移到前面,大于此元素的移到后面,結(jié)果把線(xiàn)性表分割成兩部分(兩個(gè)子表),此元素插入到其分界線(xiàn)的位置處。然后分別對(duì)兩個(gè)子表再次分割……本題中33作為分割的中界線(xiàn),第一趟排序后排在比它小的18、9、25、12后面。

7.A解析:線(xiàn)性表的插入和刪除允許在任何位置進(jìn)行,所以B選項(xiàng)的說(shuō)法是正確的;棧的操作只允許在棧頂進(jìn)行,因此,棧稱(chēng)為先進(jìn)后出表(FILO,FirstInLastOut),或“后進(jìn)先出”表(LIFO,LastInFirstOut),所以C選項(xiàng)說(shuō)法也是正確的;隊(duì)列(queue)是只允許在一端刪除,在另一端插入的順序表,允許刪除的一端叫做隊(duì)頭(front),允許插入的一端叫做隊(duì)尾(rear),因此隊(duì)列亦稱(chēng)作先進(jìn)先出(FIFO,FirstInFirstOut)的線(xiàn)性表,或后進(jìn)后出(LILO,LastInLastOut)的線(xiàn)性表。所以D選項(xiàng)說(shuō)法也是正確的。

8.D\r\n

9.C本題考查三目運(yùn)算符a<b?a:c<d?c:d也可寫(xiě)成a<b?a:(c<d?c:d),所以根據(jù)優(yōu)先級(jí),先算括號(hào)內(nèi)的,c小于d為真取C的值,再看a小于b為假,所以取C的值。

10.C

11.Cfread函數(shù)中的參數(shù)buffer是內(nèi)存塊的首地址,輸入的數(shù)據(jù)存入此內(nèi)存塊中。

12.B

13.D執(zhí)行第一次for循環(huán)時(shí),用表達(dá)式p[i][J]!=\o來(lái)判斷字符串?dāng)?shù)組指針P是否到達(dá)字符串的結(jié)尾,如果沒(méi)有到達(dá),繼續(xù)執(zhí)行while中的語(yǔ)句。if語(yǔ)句表示(p[i][j]-\o)除2的余數(shù)不為0時(shí),即字符串所有奇數(shù),執(zhí)行后面的語(yǔ)句。所以退出第1次for的循環(huán)體時(shí),輸出為397,執(zhí)行第2次循環(huán)體。對(duì)字符串“2584”進(jìn)行處理,輸出結(jié)果為5,因而最后輸出結(jié)果為3975。

14.A

15.D選項(xiàng)A中,int是關(guān)鍵字,不能作為用戶(hù)標(biāo)識(shí)符;選項(xiàng)B中,兩個(gè)“#”錯(cuò)誤;選項(xiàng)C中兩個(gè)“#”錯(cuò)誤,另外DEFINE大寫(xiě)也是錯(cuò)誤的。故本題答案為D選項(xiàng)。

16.B解析:模塊獨(dú)立性是指每個(gè)模塊只完成系統(tǒng)要求的獨(dú)立的子功能,并且與其他模塊的聯(lián)系最少且接口簡(jiǎn)單。耦合性與內(nèi)聚性是模塊獨(dú)立性的兩個(gè)定性標(biāo)準(zhǔn),耦合與內(nèi)聚是相互關(guān)聯(lián)的。在程序結(jié)構(gòu)中,各模塊的內(nèi)聚性越強(qiáng),則耦合性越弱。一般較優(yōu)秀的軟件設(shè)計(jì),應(yīng)盡量做到高內(nèi)聚,低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨(dú)立性。本題答案為B。

17.C解析:主函數(shù)main()定義了指向字符串的指針和一個(gè)字符數(shù)組,接著調(diào)用fun(s,t)函數(shù),進(jìn)行實(shí)參向形參傳遞,函數(shù)fun()第一個(gè)while語(yǔ)句判斷*a中的值為“*”時(shí)繼續(xù)掃描,當(dāng)遇到不是“*”時(shí)結(jié)束,接著第二個(gè)while循環(huán)語(yǔ)句,將*a中從“a”開(kāi)始的后續(xù)所有字符都賦予*b,也就是t[80]中的內(nèi)容為“a*b****”,所以此題的運(yùn)行結(jié)果為選項(xiàng)C)。

18.A"\0"表示空字符,strlen函數(shù)求得的是不包括字符串結(jié)束符'\0'的長(zhǎng)度。故選A。

19.B選項(xiàng)B先計(jì)算關(guān)系表達(dá)式“A<=c”的值是0還是l,再比較該值與字符z之間的大小關(guān)系,不能實(shí)現(xiàn)題目所要求的功能。

20.B二維數(shù)組的定義有3種形式,第一種是分行為兩位數(shù)組賦值,即intnum[]={{12},{3,4},{5,6}},第二種是按照數(shù)組排列順序進(jìn)行賦值,即intnum[]={1,2,3,4,5,6},第三種為對(duì)部分元素賦初值,即intnum[]={{1,2}{},{3,4},{5,6}},所以錯(cuò)誤的為B。

21.5656解析:本題中a,b,c,d足實(shí)參,x,y,cp,dp是形參。C語(yǔ)言規(guī)定,實(shí)參變量對(duì)形參變量的數(shù)據(jù)傳遞是“值傳遞”,即單向傳遞,只由實(shí)參傳給形參,而不能由形參傳回來(lái)給實(shí)參。在內(nèi)存中,實(shí)參單元與形參單元是不同的單元。在調(diào)用函數(shù)時(shí),給形參分配存儲(chǔ)單元,并將實(shí)參對(duì)應(yīng)的值傳遞給形參,調(diào)用結(jié)束后,形參單元被釋放,實(shí)參單元仍保留并維持原值。因此,程序的輸出結(jié)果是56。

22.循環(huán)鏈表循環(huán)鏈表解析:在循環(huán)鏈表中,由于設(shè)置了一個(gè)頭結(jié)點(diǎn),因此在任何情況下,循環(huán)鏈表中至少有一個(gè)結(jié)點(diǎn)存在,從而使空表與非空表的運(yùn)算統(tǒng)一。

23.22解析:考查基本表達(dá)式的計(jì)算,“%”運(yùn)算符的功能是取余。題中條件s=8,則s%3=2,(s+1)%3=9%3=0,所以表達(dá)式s%3+(s+1)%3=2+0=2。

24.b[k++]b[k++]解析:本題的考查點(diǎn)是do-while語(yǔ)句。形參x默認(rèn)為十進(jìn)制,要想將一個(gè)十進(jìn)制的數(shù)轉(zhuǎn)換成二進(jìn)制,可以使用整除求余法,題中的程序段也表明了將使用這種方法,將一個(gè)十進(jìn)制的數(shù)轉(zhuǎn)換成二進(jìn)制要用這個(gè)十進(jìn)制數(shù)不斷的整除2,將每次的余數(shù)記錄下來(lái),直至無(wú)法再除,此時(shí),整除得到的第一個(gè)元素即為二進(jìn)制數(shù)的最低位,其余依次類(lèi)推,所以在程序段中的橫線(xiàn)處,應(yīng)當(dāng)填寫(xiě)“b[k++]”。

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

26.a=2b=1a=2,b=1解析:本題考查了switch結(jié)構(gòu)的內(nèi)容。C語(yǔ)言中,程序執(zhí)行完一個(gè)case標(biāo)號(hào)的內(nèi)容后,如果沒(méi)有break語(yǔ)句,控制結(jié)構(gòu)會(huì)轉(zhuǎn)移到下一個(gè)case繼續(xù)執(zhí)行,因?yàn)閏ase常量表達(dá)式只是起語(yǔ)句標(biāo)號(hào)作用,并不是在該處進(jìn)行條件判斷。本題程序在執(zhí)行完內(nèi)部switch結(jié)構(gòu)后,繼續(xù)執(zhí)行了外部switch結(jié)構(gòu)的case2分支,最后a和b的值分別為2和1。

27.數(shù)據(jù)存儲(chǔ)數(shù)據(jù)存儲(chǔ)

28.x=2

29.efghefgh解析:本題考核的知識(shí)點(diǎn)是通過(guò)指針引用字符串.函數(shù)“的作用是讓形參指針s指向該字符串的右半部分.主函數(shù)中首先定義了一個(gè)字符型指針變量p和字符型指針str;并初始化為“abcdefgh”,然后調(diào)用函數(shù)ss,將實(shí)參str傳給形參s,因此可知該函數(shù)返回的指針,指向str所指的字符串“abcdefgh”的右半部分,即指向字符串“efgh”,所以最后輸出指針p(指針p的值為調(diào)用函數(shù)ss(sD)的返回值)所指向的字符串為“efgh。

30.序言性序言性解析:注釋一般分為序言性注釋和功能性注釋。

31.3232解析:二叉樹(shù)第k層上,最多有2k-1(k≥1)個(gè)結(jié)點(diǎn)。第6層的結(jié)點(diǎn)數(shù)最多是26-1=32。注意區(qū)別“二叉樹(shù)的結(jié)點(diǎn)最多數(shù)”和“某一層的結(jié)點(diǎn)最多數(shù)”。前者的計(jì)算是深度為m的二叉樹(shù)最多有2m-1個(gè)結(jié)點(diǎn)。

32.242036

33.數(shù)據(jù)庫(kù)管理系統(tǒng)數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)

34.abcabc解析:字符串的結(jié)束標(biāo)記'\\0',當(dāng)輸出一個(gè)存放在字符數(shù)組中的字符串時(shí),只需輸出到'\\0'為止,而不管其后有什么數(shù)據(jù)。本題給字符數(shù)組s的元素s[3]賦值為'\\0',故只能輸出3個(gè)字符“abc”。

35.數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)解析:Jackson方法是—‘種面向數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)化方法。

36.IMS(informationManagementSystem)

37.12300123001,2,3,0,0,1,2,3,0,0,解析:本題考查文件讀寫(xiě)函數(shù)fread和fwrite的用法。fwrite函數(shù)將數(shù)組a的前5個(gè)元素輸出到文件fp中兩次,共10個(gè)字節(jié),再調(diào)用fread函數(shù)從文件fp中讀取這10個(gè)字節(jié)的數(shù)據(jù)到數(shù)組a中,此時(shí)數(shù)組a的內(nèi)容就變?yōu)閧1,2,3,0,0,1,2,3,0,0},最后的輸出結(jié)果為“1,2,3,0,0,1,2,3,0,0”。

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

39.顛倒一個(gè)字符串中的字符,就是首尾對(duì)應(yīng)的元素兩兩交換。簡(jiǎn)單地可用兩個(gè)游標(biāo)變量i和j,i是前端元素的下標(biāo),j是后端元素的下標(biāo),交換以這兩個(gè)變量值為下標(biāo)的元素str[i]和str[j]。開(kāi)始時(shí),i的值為0,j的值為字符串末元素的下標(biāo)(字符串長(zhǎng)度減1)。每次交換后,i增1,j減1。繼續(xù)交換的條件是str[i]位于str[j]的前面,即i<j字符串末元素的下標(biāo)是它的長(zhǎng)度減1,所以在第二個(gè)空框處應(yīng)填入-1。程序?yàn)榱私粨Qstr[i]和str[j],使用了變量k,該變量應(yīng)在程序的變量定義部分中—起定義,所以在第—個(gè)空\(chéng)r\n\r\n

40.a*b*c*d*a*b*c*d*解析:本題考查的是函數(shù)與一個(gè)簡(jiǎn)單的算法結(jié)合在一起的應(yīng)用。首先定義一個(gè)int型變量來(lái)存放字符串str的長(zhǎng)度,執(zhí)行while條件語(yǔ)句。通過(guò)分析可知,字符串2*i項(xiàng)的值可由第i項(xiàng)的值得到;第2*i-1項(xiàng)直接賦值為*,i遞減,如此反復(fù)直到不滿(mǎn)足i>0的條件時(shí),輸出運(yùn)行后的字符串。

41.A解析:從軟件開(kāi)發(fā)的工程化觀點(diǎn)來(lái)看,在使用程序設(shè)計(jì)語(yǔ)言編制程序以前,需要對(duì)所采用算法的邏輯關(guān)系進(jìn)行分析,設(shè)計(jì)出全部必要的過(guò)程細(xì)節(jié),并給予清晰的表達(dá)。詳細(xì)設(shè)計(jì)的任務(wù)就是要決定各個(gè)模塊的實(shí)現(xiàn)算法,并精確表達(dá)出這些算法。

42.D解析:*p=x的作用是將x的首地址賦給指針變量p。選項(xiàng)A)正確,*(P++)中括號(hào)內(nèi)的++是在P的后面,所以它先取*P的值x[0],再執(zhí)行p++;選項(xiàng)B)正確,p+i表示x[i]的地址,*(p+i)表示x[i]的值;選項(xiàng)C)中的*和++處于同一優(yōu)先級(jí)別,而結(jié)合方向?yàn)樽杂叶?,因?p++相當(dāng)于*(p++),與選項(xiàng)A)相同;選項(xiàng)D)中的(*p)++是使*p的值+1,即x[0]的值加1,它不能實(shí)現(xiàn)指針的移動(dòng),每次循環(huán)只是x[0]的值在改變,而P的值并沒(méi)有改變,所以不能實(shí)現(xiàn)6個(gè)元素的輸出。

43.C解析:本題考核的知識(shí)點(diǎn)是for語(yǔ)句和continue語(yǔ)句的綜合應(yīng)用。在本程序的for循環(huán)中,用到了一個(gè)continue語(yǔ)句,continue語(yǔ)句的作用是停止本次循環(huán),即不執(zhí)行循環(huán)體內(nèi)continue語(yǔ)句后面的其他語(yǔ)句,繼續(xù)下次循環(huán)的條件判斷。首先在for循環(huán)中n自加1(值變?yōu)?),然后執(zhí)行后面的if語(yǔ)句,由于if語(yǔ)句后面括號(hào)的表達(dá)式(1%3!=0)的值為真,程序執(zhí)行continue語(yǔ)句,回到for循環(huán)的開(kāi)始部分,并且判斷for循環(huán)中的條件表達(dá)式(n<k)為真,重復(fù)執(zhí)行“n++;”語(yǔ)句,如此循環(huán)直到n=3時(shí),if語(yǔ)句判定條件中表達(dá)式(3%3!0)的值為假,程序執(zhí)行if語(yǔ)句后面的“k--”語(yǔ)句,此時(shí)k的值為3,不滿(mǎn)足“n<k”,退出for循環(huán)。故最后的k和n的值為3和3,選項(xiàng)C符合題意。

44.D解析:本題考核的知識(shí)點(diǎn)是二維數(shù)組的定義和初始化。在定義中如果對(duì)所有元素賦初值,其第1維的長(zhǎng)度可以省略,故選項(xiàng)B正確;二維數(shù)組初始化也可以只對(duì)每行或前若干個(gè)行的前若干個(gè)元素賦初值,故選項(xiàng)A和選項(xiàng)C正確;在二維數(shù)組定義時(shí)不能省略第二維的長(zhǎng)度,故選項(xiàng)D錯(cuò)誤。所以,4個(gè)選項(xiàng)中選項(xiàng)D符合題意。

45.D解析:構(gòu)造類(lèi)型數(shù)據(jù)是由基本類(lèi)型數(shù)據(jù)按一定規(guī)則組成的。C語(yǔ)言中的構(gòu)造類(lèi)型數(shù)據(jù)只有3種,它們是數(shù)組類(lèi)型、結(jié)構(gòu)體類(lèi)型和共用體類(lèi)型。故應(yīng)該選擇D。

46.A

47.D解析:內(nèi)聚性是一個(gè)模塊內(nèi)部各元素間彼此結(jié)合的緊密程度的度量。內(nèi)聚是從功能角度來(lái)度量模塊內(nèi)的聯(lián)系。內(nèi)聚共有7類(lèi),它們之㈨的內(nèi)聚性由弱到強(qiáng)排列順序?yàn)椋号既粌?nèi)聚、邏輯內(nèi)聚、時(shí)間內(nèi)聚、過(guò)程內(nèi)聚、通信內(nèi)聚、順序內(nèi)聚和功能內(nèi)聚。

48.C解析:C語(yǔ)言中標(biāo)識(shí)符的命名必須遵守一定的規(guī)則:標(biāo)識(shí)符由字母、數(shù)字和下劃線(xiàn)組成,并且第一個(gè)字符必須是字母或下劃線(xiàn)。同時(shí),在C語(yǔ)言的標(biāo)識(shí)符中是區(qū)分大小寫(xiě)字母的。C選項(xiàng)中的標(biāo)識(shí)符以&開(kāi)頭,不符合C語(yǔ)言中標(biāo)識(shí)符的命名規(guī)則。

49.C解析:函數(shù)strcmp(字符串1,字符串2)作用是將“字符串1”和“字符串2”進(jìn)行比較,如果“字符串1”>“字符串2”,返回一個(gè)人于0的整數(shù)值;如果“字符串1”<“字符串2”,返回一個(gè)小于0的整數(shù)值;如果“字符串1”=“字符串2”,返回0。

函數(shù)strcpy(字符串?dāng)?shù)組名,字符串,[整型表達(dá)式])的作用是將“字符串”的前“整型表達(dá)式”個(gè)字符存入到指定的“字符數(shù)組”中,若省略“整型表達(dá)式”,則將整個(gè)“字符串”存入“字符數(shù)組”中。

函數(shù)f()的功能是利用選擇法把一個(gè)具有n行的二維數(shù)組中按行存放的n個(gè)字符串由大到小排序。在主函數(shù)中定義了一個(gè)二維字符數(shù)組p并給它按行賦初值,然后調(diào)用f()函數(shù),把它按行從大到小排列。字符串比較大小的標(biāo)準(zhǔn)是從第一個(gè)字符開(kāi)始依次向右比較,遇到某一個(gè)字符大,該字符所在的字符串就是較大的字符串。由此可知最大的字符串為“dcdbe”,排序后存放在第一行,其首地址為p[0],在輸出語(yǔ)句輸出的p[0]指向的字符串長(zhǎng)度是5。

50.C

51.C解析:C語(yǔ)言中函數(shù)的定義分為有參函數(shù)的定義和無(wú)參函數(shù)的定義。無(wú)參函數(shù)的定義形式為:

類(lèi)型標(biāo)識(shí)符函數(shù)名()

{說(shuō)明部分

語(yǔ)句

}

有參函數(shù)的定義有兩種形式:

類(lèi)型標(biāo)識(shí)符函數(shù)名(形式參數(shù)列表)

形式參數(shù)說(shuō)明

{說(shuō)明部分

語(yǔ)句

}

類(lèi)型標(biāo)識(shí)符函數(shù)名(類(lèi)型名形參1,類(lèi)型名形參2,…)

{說(shuō)明部分

語(yǔ)句

}

其中函數(shù)名為用戶(hù)定義的C語(yǔ)言的合法標(biāo)識(shí)符,其前面的類(lèi)型標(biāo)識(shí)符用來(lái)說(shuō)明函數(shù)值的類(lèi)型,可以是C允許的任何類(lèi)型,如int、char、float、double和指針類(lèi)型等。當(dāng)函數(shù)值為整型時(shí)類(lèi)型標(biāo)識(shí)符可以省略,如果函數(shù)沒(méi)有返回值,類(lèi)型標(biāo)識(shí)符可以是void型。當(dāng)函數(shù)的形參多于一個(gè)時(shí),各個(gè)形參之間用逗號(hào)分隔。

52.B

53.A解析:對(duì)未給出初始值的整數(shù)數(shù)組元素,被默認(rèn)初始化為零。

54.B解析:本題考核的知識(shí)點(diǎn)是C程序從編寫(xiě)到生成可執(zhí)行文件的步驟。C語(yǔ)言采用編譯方式將源程序轉(zhuǎn)換為二進(jìn)制的目標(biāo)代碼,編寫(xiě)好一個(gè)C程序到完成運(yùn)行一般經(jīng)過(guò)以下幾個(gè)步驟:編輯;編譯,就是將已經(jīng)編輯好的源程序翻譯成二進(jìn)制的目標(biāo)代碼,經(jīng)編譯后的得到的二進(jìn)制代碼還不能直接執(zhí)行,因?yàn)槊恳粋€(gè)模塊往往是單獨(dú)編譯的,必須把經(jīng)過(guò)編譯的各個(gè)模塊的目標(biāo)代碼與系統(tǒng)提供的標(biāo)準(zhǔn)模塊連接后才能運(yùn)行;連接,將各模塊的二進(jìn)制目標(biāo)代碼與系統(tǒng)標(biāo)準(zhǔn)模塊經(jīng)連接處理后,得到具有絕對(duì)地址的可執(zhí)行文件,它是計(jì)算機(jī)能直接執(zhí)行的文件;執(zhí)行,執(zhí)行一個(gè)經(jīng)過(guò)編譯和連接的可執(zhí)行的目標(biāo)文件。由以上定義可知,選項(xiàng)A、C、D均不正確。所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。

55.B解析:讀懂兩個(gè)循環(huán)的關(guān)系,是解這個(gè)題目的關(guān)鍵,本題的第一個(gè)for循環(huán)的作用是實(shí)現(xiàn)對(duì)數(shù)組元素的遍歷,第二個(gè)循環(huán)的作用是排序。while(j>=0&&t>c[j]),這個(gè)語(yǔ)句是控制排序的關(guān)鍵語(yǔ)句,它即實(shí)現(xiàn)了比較兩個(gè)元素大小的作用,又實(shí)現(xiàn)了元素向后移動(dòng)的作用,不斷地把大的數(shù)據(jù)向前移動(dòng),直到找到一個(gè)比它小的,或到數(shù)據(jù)的上界為止。

56.A解析:有時(shí)為了保護(hù)某些特有的對(duì)象,可以通過(guò)定義其為私有屬性達(dá)到不被繼承的目的。

57.A

58.B解析:調(diào)用函數(shù)f()時(shí),將數(shù)組a的地址傳遞給了指針q,此時(shí)q指向的就是數(shù)組a的第一個(gè)元素a[0]。在5次循環(huán)過(guò)程中,q始終指向a[0],因此a[0]的值增加了5。最后的輸出結(jié)果為“6,2,3,4,5”。

59.A解析:本題考查函數(shù)調(diào)用時(shí)的參數(shù)傳遞。函數(shù)reverse將數(shù)組b進(jìn)行了逆置,此時(shí)的b[10]={10,9,8,7,6,5,4,3,2,1},后面for語(yǔ)句的功能是將b中的前3個(gè)數(shù)累加,將結(jié)果放在s中,最后將s輸出,結(jié)果s=10+9+8=27。

60.B解析:本題考查二維數(shù)組的定義方式。第一維的大小由以下方法判斷:

①當(dāng)初值的個(gè)數(shù)能被第二維的常量表達(dá)式的值除盡時(shí),所得商數(shù)就是第一維的大??;

②當(dāng)初值的個(gè)數(shù)不能被第二維的常量表達(dá)式的值除盡時(shí),則第一維的大?。核玫纳虜?shù)+1。

61.A首先打印b=a+b=1+0=1的值l,此時(shí)已給b賦值為1。然后打印a=2}b=2{1=2的值2。所以結(jié)果是1,2。

62.C\n題中定義了無(wú)符號(hào)數(shù),c=a>>3;是指右移3位,然后輸出。結(jié)果為C。

\n

63.B解析:所謂二叉樹(shù)的前序遍歷(DLR)是指在訪問(wèn)根結(jié)點(diǎn)、遍歷左子樹(shù)與遍歷右子樹(shù)這3者中,首先訪問(wèn)根結(jié)點(diǎn),然后遍歷左子樹(shù),最后遍歷右子樹(shù),并且,在遍歷左右子樹(shù)時(shí),上述規(guī)則同樣適用,即“根-左-右”。故該二叉樹(shù)的前序遍歷結(jié)果為“ATBZXCYP”。對(duì)于本題,若使用后序遍歷和中序遍歷的結(jié)果分別為“ZBTYCPXA”和“TZBACYXP”。

64.B本題重點(diǎn)考察函數(shù)的參數(shù)傳遞,函數(shù)的參數(shù)傳遞分為傳值和傳地址兩種情況。本題就是結(jié)合數(shù)組考查參數(shù)傳遞的情形。函數(shù)f完成的功能是對(duì)數(shù)據(jù)進(jìn)行排序,語(yǔ)句f(&a[2],5,O)的作用是對(duì)從a[2]開(kāi)始的5個(gè)元素進(jìn)行從大到小排序。注意:這里傳遞的是地址&a[2],所以排序操作可看作是直接對(duì)數(shù)組a操作,執(zhí)行后的結(jié)果為5,4,7,6,3,2,1,8,9,10。語(yǔ)句f(a,5,1)對(duì)數(shù)組a的前5個(gè)元素從小到大排序,排序后數(shù)組為:3,4,5,6,7,2,1,8,9,10。因此B選項(xiàng)正確。

65.BC語(yǔ)言中,字符串是用一對(duì)雙引號(hào)括起來(lái)的字符序列,并用字符型數(shù)組來(lái)存放,故c選項(xiàng)和D選項(xiàng)不屬于字符串,A選項(xiàng)定義的是一個(gè)字符變量s拄,卻用來(lái)存放字符串,顯然也不正確,因此B選項(xiàng)正確。

66.D

67.B#include"文件名",預(yù)處理程序首先在引用被包含文件的源文件所在的目錄下搜索指定的文件,如沒(méi)找到,再按系統(tǒng)指定的標(biāo)準(zhǔn)目錄搜索。

68.C解析:軟件設(shè)計(jì)遵循軟件工程的基本目標(biāo)和原則,建立了適用于在軟件設(shè)計(jì)中應(yīng)該遵循的基本原理和與軟件設(shè)計(jì)有關(guān)的概念。①抽象是一種思維工具,就是把事物本質(zhì)的共同特性抽出來(lái)而不考慮其他細(xì)節(jié)。②模塊是指可以單獨(dú)命名且可編址的元素。如高級(jí)語(yǔ)言中的過(guò)程、函數(shù)、子程序等。③信息隱蔽是指在一個(gè)模塊內(nèi)包含的信息(過(guò)程或數(shù)據(jù)),對(duì)于不需要這些信息的其他模塊來(lái)說(shuō)是不能訪問(wèn)的。④模塊獨(dú)立性是指每個(gè)模塊只完成系統(tǒng)要求的獨(dú)立的子功能,并且與其他模塊的聯(lián)系最少且接口簡(jiǎn)單。因此,本題的正確答案是C。

69.A

70.Afseek用于二進(jìn)制方式打開(kāi)的文件,移動(dòng)文件讀寫(xiě)指針位置.

71.A

72.C浮點(diǎn)型占8個(gè)字節(jié),整型占4個(gè)字節(jié),當(dāng)把整型數(shù)據(jù)用浮點(diǎn)型格式輸出時(shí),結(jié)果為0.000000

73.B

\n本題考查scanf函數(shù),輸入格式符%2d%f表示只接收了字符,其中a輸入的值為2位的十進(jìn)制整數(shù),即87,然后將緊接著的6賦給b,因?yàn)閎的值為單精度數(shù)在,即6.000000,故選擇B選項(xiàng)。

\n

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

75.C本題考查的重點(diǎn)還是二維數(shù)組的操作。題目將二維數(shù)組與函數(shù)相結(jié)合,考查了函數(shù)對(duì)二維數(shù)組的調(diào)用。程序主體分為兩個(gè)部分:主函數(shù)main和函數(shù)fun。main函數(shù)結(jié)構(gòu)較簡(jiǎn)單,功能很明確,首先初始化了一個(gè)二維數(shù)組,隨后將fun(a,4,0)作為printf函數(shù)的實(shí)參輸出。下面分析一下fun函數(shù)的作用,fun函數(shù)包括三個(gè)形參,其中一個(gè)形參為用指針定義的二維數(shù)組,另外兩個(gè)為整型常量n和k。在fun函數(shù)中,先定義了一個(gè)整型變量m=s[0][k],表示m為s中第1行第k+1列的數(shù)據(jù)。下面的for循環(huán)是題目的關(guān)鍵,該for循環(huán)的意義是令m為數(shù)組s中k+1列從第1行到第n行的數(shù)據(jù)中最大的數(shù)值。題目中m的初始值為a[0][0],即m=1,從第1行到第4行第1列上的數(shù)值分別為1,11,21,31。最大的數(shù)為31,令m=31,返回m,并將m作為結(jié)果輸出。

76.A雖為嵌套的for循環(huán),但“m=m%j”只執(zhí)行1次,即當(dāng)i=3時(shí),內(nèi)層循環(huán)條件成立,m=55%3=1,故選A。

77.B在內(nèi)存中,字符數(shù)據(jù)以ASCIl碼存儲(chǔ),它的存儲(chǔ)形式與整數(shù)的存儲(chǔ)形式類(lèi)似。c語(yǔ)言中,字符型數(shù)據(jù)和整型數(shù)據(jù)之間可以通用,也可以對(duì)字符型數(shù)據(jù)進(jìn)行算術(shù)運(yùn)算,此時(shí)相當(dāng)于對(duì)它們的ASCIl碼進(jìn)行算術(shù)運(yùn)算,在本題中,s++相當(dāng)于s=s+1,即讓s指向數(shù)組中的下一個(gè)元素。

78.C循環(huán)的作用是將輸入的字符串轉(zhuǎn)化為大寫(xiě),9etchar()每次讀入一個(gè)字符,putchar()每次輸出一個(gè)字符,當(dāng)遇到#字符結(jié)束。putchar(++C),表示將字符變量C加1后輸出。因此,輸入aBcDefG##,得到的結(jié)果是BCDEFGH。故答案為c選項(xiàng)。

79.C棧是“先進(jìn)后出”的線(xiàn)性表;隊(duì)列是“先進(jìn)先出”的線(xiàn)性表;在循環(huán)隊(duì)列結(jié)構(gòu)中,每進(jìn)行一次入隊(duì)運(yùn)算,隊(duì)尾指針就加1,每進(jìn)行一次出隊(duì)運(yùn)算,隊(duì)頭指針就加1,隊(duì)頭指針和隊(duì)尾指針一起反映了隊(duì)列中元素的動(dòng)態(tài)變化情況。

80.A本題主要考查的是遞歸函數(shù)。題目中的f()函數(shù)直接調(diào)用了自身,是一個(gè)遞歸函數(shù)。主函數(shù)中調(diào)用f()函數(shù)時(shí)傳入的參數(shù)是3,所以會(huì)跳過(guò)if語(yǔ)句,執(zhí)行Y=x*x—f(x一2);,也就是Y=3*3一f(1);,再次調(diào)用f()函數(shù),傳人參數(shù)1,此時(shí)滿(mǎn)足if語(yǔ)句的條件,返N3。所以前面My=3*3-f(1);就等價(jià)于y=3*3—3;。結(jié)果是6,所以返回給主函數(shù)的結(jié)果是6。故本題應(yīng)該選擇A)。

81.(1)錯(cuò)誤:for(i=2;i%n;i++)

正確:for(i=2;i<=n;i++)

(2)錯(cuò)誤:y-=l/(i*i);

正確:y-=1.0/(i*i);

【解析】根據(jù)題目中所給公式t=1-1/(2×2)-1/(3×3)=…-1/(n×n),可知需要循環(huán)至i=n,因此,“for(i=2;i<n;i++)”應(yīng)改為“for(i-2;i<=n;i++)”;根據(jù)C語(yǔ)言中的語(yǔ)法規(guī)則,整數(shù)與整數(shù)相除結(jié)果仍為整數(shù),要得到浮點(diǎn)數(shù)在分?jǐn)?shù)中,分子或分母最少有一個(gè)是浮點(diǎn)數(shù),因此,“y-=1/(i*i);”應(yīng)改為“y-=1.0/(i*i);”。

82.

題目中要求除了尾部的*號(hào)之外,將字符串中其他*號(hào)全部刪除。首先將所有不是*的字符放在字符串str中,然后將尾部的*接在字符的后面,最后為字符串str加上結(jié)束符。

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

一、單選題(20題)1.設(shè)有定義:floata=2,b=4,h=3;以下c語(yǔ)言表達(dá)式中與代數(shù)式(a+B)h計(jì)算結(jié)果不相符的是()。A.(a+B)*h/2B.(1/2)*(a+B)*hC.(a+B)*h*1/2D.h/2*(a+B)

2.需求分析階段的任務(wù)是確定()

A.軟件開(kāi)發(fā)方法B.軟件開(kāi)發(fā)工具C.軟件開(kāi)發(fā)費(fèi)用D.軟件系統(tǒng)功能

3.設(shè)有inta=15,b=240;,則表達(dá)式(a&b)&b||b的值為_(kāi)_____。

A.0B.1C.真D.假

4.有以下程序:#include<stdio.h>main(){inta=1,b=2,c=3;charflag;flag=b>=2&&c<=3;switch(a){ case1:switch(flag) { case0:printf(“**”);break; case1:printf(“%%”);break; } case0:switch(c) { case1:printf(“$$”);break; case2:printf(“&&”);break; default:printf(“##”); }}printf(“\n”);}程序運(yùn)行后的輸出結(jié)果是()。

A.**$$B.%##C.%&&D.**##

5.表達(dá)式18/4*sqrt(4.0)/8值的數(shù)據(jù)類(lèi)型為()。A.intB.floatC.doubleD.不確定

6.待排序的關(guān)鍵碼序列為(33,18,9,25,67,82,53,95,12,70),要按關(guān)鍵碼值遞增的順序排序,采取以第一個(gè)關(guān)鍵碼為基準(zhǔn)元素的快速排序法,第一趟排序后關(guān)鍵碼33被放到第()個(gè)位置。

A.3B.5C.7D.9

7.下列關(guān)于線(xiàn)性表、棧和隊(duì)列的敘述,錯(cuò)誤的是()。

A.線(xiàn)性表是給定的n(n必須大于零)個(gè)元素組成的序列

B.線(xiàn)性表允許在表的任何位置進(jìn)行插入和刪除操作

C.棧只允許在一端進(jìn)行插入和刪除操作

D.隊(duì)列允許在一端進(jìn)行插入在另一端進(jìn)行刪除

8.

9.若整型變量a、b、c、d中的值依次為2、2、3、4,則條件表達(dá)式a<b?a:c<d?c:d的值是()。A.1B.2C.3D.4

10.假設(shè)整型數(shù)i的地址為0x12345678,指針ip地址為0x21850043,則執(zhí)行以下后,k的值為()。A.0x12345678B.0x21850043C.100D.不確定

11.讀取二進(jìn)制文件的函數(shù)調(diào)用形式為:fread(buffersize,count,fp);,其中buffer代表的是()。

A.一個(gè)文件指針,指向待讀取的文件

B.一個(gè)整型變量,代表待讀取的數(shù)據(jù)的字節(jié)數(shù)

C.一個(gè)內(nèi)存塊的首地址,代表讀人數(shù)據(jù)存放的地址

D.一個(gè)內(nèi)存塊的字節(jié)數(shù)

12.

13.有下列程序:main(){char*P[]={"3697","2584");inti,j;longnum=0;for(i=0;i<2;i++){j=0;while(p[i][j]!=\0){if((p[i][j]-t\0)%2)num=10*num+p[j][j]-0;j+=2;}}printf("%d\n",num);}程序執(zhí)行后的輸出結(jié)果是()。A.35B.37C.39D.3975

14.在長(zhǎng)度為n的順序表的第i個(gè)位置上插入一個(gè)元素(1≤i≤n+1),元素的移動(dòng)次數(shù)為:()。

A.n–i+1B.n–iC.iD.i–1

15.下面關(guān)于編譯預(yù)處理的命令行中,正確的是()。

A.#defineintINT

B.##defineeps0.001

C.##DEFINETRUE

D.#defineE2.88

16.為了使模塊盡可能獨(dú)立,要求()。

A.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量強(qiáng)

B.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量弱

C.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量弱

D.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量強(qiáng)

17.有下列程序:#include<stdio.h>voidfun(char*a,char*B){while(*a=='*')a++;while(*b=*A){b++;a++;}}main(){char*s="*****a*b****",t[80];fun(s,t);puts(t);程序的運(yùn)行結(jié)果是()。A.*****a*bB.a*bC.a*b****D.ab

18.若有定義語(yǔ)句:“charsE10]="1234567\0\0";”,則strlen(s)的值是()。A.A.7B.8C.9D.10

19.已有定義:charc;,程序前面已在命令行中包含ctype.h文件,不能用于判斷c中的字符是否為大寫(xiě)字堪的表達(dá)式是()。

A.isupper(c)B.A<=c<=ZC.A<=c&&c<=ZD.c<=(z-32)&&(a-32)<=c

20.以下定義數(shù)組的語(yǔ)句錯(cuò)誤的是()。

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

B.intnum[][3]={{1,2},3,4,5,6};

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

D.intnum[][4]={1,2,3,4,5,6};

二、2.填空題(20題)21.下列程序的輸出結(jié)果是【】。

intt(intx,inty,intcp,intdp)

{cp=x*x+y*y;

dp=x*x-y*y;

}

main()

{inta=4,b=3,c=5,d=6;

t(a,b,c,d);

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

}

22.在鏈表的運(yùn)算過(guò)程中,能夠使空表與非空表的運(yùn)算統(tǒng)一的結(jié)構(gòu)是______。

23.若s是int型變量,且s=8,則s%3+(s+1)%3表達(dá)式的值為()。

24.下面fun函數(shù)的功能是將形參x的值轉(zhuǎn)換成二進(jìn)制數(shù),所得二進(jìn)制數(shù)的每一位數(shù)放在數(shù)組中返回,二進(jìn)制數(shù)的最低位放在下標(biāo)為0的元素中,其他依此類(lèi)推。請(qǐng)?zhí)羁铡?/p>

Fun(intx,intb[])

{intk=0,r;

do

{r=x%2;

()=r;

x/=2;

}while(x);

}

25.以下程序的功能是建立一個(gè)帶有頭結(jié)點(diǎn)的單向鏈表,鏈表結(jié)點(diǎn)中的數(shù)據(jù)通過(guò)鍵盤(pán)輸入,當(dāng)輸入數(shù)據(jù)為-1時(shí),表示輸入結(jié)束(鏈表頭結(jié)點(diǎn)的data域不放數(shù)據(jù),表空的條件是ph->next==NULL),請(qǐng)?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();}

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

#include<stdio.h>

main()

{intx=1,y=0,a=0,b=0;

switch(x)

{case1:

switch(y)

{case0:a++;break;

case1:b++;break;

}

case2:a++;b++;break;

case3:a++;b++;

}

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

}

27.數(shù)據(jù)字典是各類(lèi)數(shù)據(jù)描述的集合,它通常包括五個(gè)部分,即數(shù)據(jù)項(xiàng)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、【】和處理過(guò)程。

28.以下程序段的運(yùn)行結(jié)果是()。#include<stdio.h>main(){intx=2,y=1:switch(x){case1:switch(y){case0:printf("x=2,y=1\n");break;case1:printf("y=1\n");break;}case2:printf("x=2\n");}}

29.下列程序的運(yùn)行結(jié)果是______。

#include<string.h>

char*ss(char*s)

{returns+strlen(s)/2;}

main()

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

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

}

30.注釋說(shuō)明了程序的功能,它分為【】注釋和功能性注釋。

31.一棵二叉樹(shù)第6層(根結(jié)點(diǎn)為第一層)的結(jié)點(diǎn)最多為_(kāi)_____個(gè)。

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

main()

{intx,y,z;

x=24;

y=024;

z=0x24;

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

}

33.數(shù)據(jù)庫(kù)系統(tǒng)中實(shí)現(xiàn)各種數(shù)據(jù)管理功能的核心軟件稱(chēng)為【】。

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

main()

{chars[]="abcdef";

s[3]='\0';

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

}

35.Jackson方法是一種面向【】的結(jié)構(gòu)化方法。

36.層次模型的典型代表是IBM公司的【】數(shù)據(jù)庫(kù)管理系統(tǒng)。

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

#include<stdio.h>

main()

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

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

fwtite(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++)printf("%d",a[i]);

}

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

39.下面程序的功能是將一個(gè)字符串str的內(nèi)容顛倒過(guò)來(lái),請(qǐng)?zhí)羁铡?/p>

#include<string.h>

main()

{infi,j,[13];charstr[]={"1234567"};

for(i=0,j=strlen(str)[14];i<j;i++,j--)

{k=str[i];str[i]=str[i];str[j]=k;}

printf("%s\n",str);}

40.當(dāng)運(yùn)行以下程序時(shí),輸入abcd,程序的輸出結(jié)果是()。insert(charstr[]){inti;i=strlen(str);while(i>0){str[2*i]=str[i];str[2*i-1]='*';i--;}printf("%s\n",str);}main(){charstr[40];scanf("%s\n",str);insert(str);}

三、1.選擇題(20題)41.軟件詳細(xì)設(shè)計(jì)的主要仟?jiǎng)?wù)是確定每個(gè)模塊的

A.算法和使用的數(shù)據(jù)結(jié)構(gòu)B.外部接口C.功能D.編程

42.設(shè)有定義語(yǔ)句:intx[6]={2,4,6,8,5,7},*p=x,i;要求依次輸出x數(shù)組6個(gè)元素中的值,不能完成此操作的語(yǔ)句是()。

A.for(i=0;i<6;i++)printf("%2d",*(p++));

B.for(i=0;i<6;i++)printf("%2d",*(p+i));

C.for(i=0;i<6;i++)printf("%2d",*p++);

D.for(i=0;i<6;i++)printf("%2d",(*p)++);

43.有以下程序main()intk=4,n=0;for(;n<k;){n++;if(n%3!=0)continue;k--;}printf("%d,%d\n",k,n);程序運(yùn)行后的輸出結(jié)果是

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

44.以下不能正確定義二維數(shù)組的選項(xiàng)是

A.inta[2][2]={{1},{2)};

B.inta[][2]={1,2,3,4};

C.inta[2][2]={{1},2,3};

D.inta[2][]={{1,2},{3,4)};

45.下列選項(xiàng)中屬于C語(yǔ)言構(gòu)造類(lèi)型的是()

A.指針類(lèi)型B.空類(lèi)型C.枚舉類(lèi)型D.數(shù)組類(lèi)型

46.軟磁盤(pán)最外邊的磁道數(shù)是()

A.0B.1C.39D.79

47.模塊本身的內(nèi)聚是模塊獨(dú)立性的重要性度量因素之一。在7類(lèi)內(nèi)聚中,具有最強(qiáng)內(nèi)聚的一類(lèi)是__________。

A.順序性?xún)?nèi)聚B.過(guò)程性?xún)?nèi)聚C.邏輯性?xún)?nèi)聚D.功能性?xún)?nèi)聚

48.以下選項(xiàng)中不合法的標(biāo)識(shí)符是A.printB.FORC.&aD._00

49.以下程序中函數(shù)f的功能是將n個(gè)字符串按由大到小的順序進(jìn)行排序:#include<string.h>voidf(charp[][10],intn){chart[20];inti,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++if(strcmp(p[i],p[j])<0){strcpy(t,p[i]);strcpy(p[i],p[j]);strcpy(p[j],t);}}main(){charp[][10]:{"abc","aabdfg","abbd","dcdbe","cd",);inti;f(p,5);printf("%d\n",strlen(p[0]));}程序運(yùn)行后的輸出結(jié)果是()。

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

50.下列程序執(zhí)行后的輸出結(jié)果是______。main(){charx=0xFFFF;printf("%d\n",x--);}

A.-32767B.FFFEC.-1D.-32768

51.程序中對(duì)fun()函數(shù)有如下說(shuō)明void*fun();此說(shuō)明的含義是______。

A.fun函數(shù)無(wú)返回值

B.fun函數(shù)的返回值可以是任意的數(shù)據(jù)類(lèi)型

C.fun函數(shù)的返回值是無(wú)值型的指針類(lèi)型

D.指針fun指向一個(gè)函數(shù),該函數(shù)無(wú)返回值

52.下列程序的輸出結(jié)果是______。#include<stdio.h>f(char8s){char*p=s;while(*p!='\0')p++;return(p-s);}main(){printf("%d\n",f("ABCDEF"));}

A.3B.6C.8D.0

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

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論