2021-2022年四川省巴中市全國計算機等級考試C語言程序設(shè)計真題(含答案)_第1頁
2021-2022年四川省巴中市全國計算機等級考試C語言程序設(shè)計真題(含答案)_第2頁
2021-2022年四川省巴中市全國計算機等級考試C語言程序設(shè)計真題(含答案)_第3頁
2021-2022年四川省巴中市全國計算機等級考試C語言程序設(shè)計真題(含答案)_第4頁
2021-2022年四川省巴中市全國計算機等級考試C語言程序設(shè)計真題(含答案)_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021-2022年四川省巴中市全國計算機等級考試C語言程序設(shè)計真題(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.軟件生命周期是指()。A.軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用退役的過程

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

C.軟件的開發(fā)過程

D.軟件的運行維護過程

2.有以下程序voidf(int*x,int*y){intt;t=*x;*x=*y;*y=t;}main(){inta[8]={1,2,3,4,5,6,7,8},i,*p,*q;p=a;q=&a[7];while(p<q){f(p,q);p++;q--;}for(i=0;i<8;i++)printf("%d,",a[i]);}程序運行后的輸出結(jié)果是

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

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

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

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

3.在一個有頭結(jié)點的鏈隊列中,假設(shè)f和r分別為隊首和隊尾指針,則插入s所指的結(jié)點的運算是()。

A.f->next=s;f=s;

B.r->next=s;r=s;

C.s->next=r;r=s;

D.s->next=f;f=s;

4.對于只在表的首、尾兩端進行插入操作的線性表,宜采用的存儲結(jié)構(gòu)為()。

A.順序表B.用頭指針表示的循環(huán)單鏈表C.用尾指針表示的循環(huán)單鏈表D.單鏈表

5.下述函數(shù)功能是______。intfun(char*x){char*y=x;while(*y++);returny-x-1;}

A.求字符串的長度B.求字符串存放的位置C.比較兩個字符串的大小D.將字符串x連接到字符串y后面

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

A.a是實型變量,C允許進行賦值a=10,但不可以這樣說:實型變量中允許存放整型值

B.在賦值表達式中,賦值號左邊既可以是變量也可以是任意表達式

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

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

7.下述程序向文件輸出的結(jié)果是______。#include<stdio.h>voidmain(){FILE*fp=fopen("TESY","wb");fprintf(fp,"%d%5.0f%c%d",58,76273.0,'-',2278);fclose(fp);}

A.5876273-2278

B.5876273.000000-2278

C.5876273-2278

D.因文件為二進制文件而不可讀

8.一個隊列的入隊序列是a,b,c,d,則出隊序列是()。

A.a,b,c,dB.a,c,b,dC.d,c,b,aD.a,c,b,d

9.下列運算符中優(yōu)先級最低的算符是()。

A.||B.!=C.<;=D.十

10.下列關(guān)于C語言數(shù)據(jù)文件的敘述中正確的是A.文件由ASCII碼字符序列組成,C語言只能讀寫文本文件

B.文件由二進制數(shù)據(jù)序列組成,C語言只能讀寫二進制文件

C.文件由記錄序列組成,可按數(shù)據(jù)的存放形式分為二進制文件和文本文件

D.文件由數(shù)據(jù)流形式組成,可按數(shù)據(jù)的存放形式分為二進制文件和文本文件

11.算法分析的兩個主要方面是()。

A.空間復(fù)雜性和時間復(fù)雜性B.正確性和簡明性C.可讀性和文檔性D.數(shù)據(jù)復(fù)雜性和程序復(fù)雜性

12.在線索化樹中,每個結(jié)點必須設(shè)置一個標志來說明它的左、右鏈指向的是樹結(jié)構(gòu)信息,還是線索化信息,若0標識樹結(jié)構(gòu)信息,1標識線索,對應(yīng)葉結(jié)點的左右鏈域,應(yīng)標識為()。

A.00B.01C.10D.11

13.數(shù)據(jù)處理的最小單位是()。

A.數(shù)據(jù)B.數(shù)據(jù)元素C.數(shù)據(jù)項D.數(shù)據(jù)結(jié)構(gòu)

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

A.C程序中注釋部分可以出現(xiàn)在程序中任意合適的地方

B.花括號"{"和"}"只能作為函數(shù)體的定界符

C.構(gòu)成C程序的基本單位是函數(shù),所有函數(shù)名都可以由用戶命名

D.分號是C語句之間的分隔符,不是語句的一部分

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

16.最小堆[0,3,2,5,7,4,6,8],在刪除堆頂元素0之后,其結(jié)果是()

A.[3,2,5,7,4,6,8]

B.[2,3,5,7,4,6,8]

C.[2,3,4,5,7,8,6]

D.[2,3,4,5,6,7,8]

17.有如下程序:#include<stdio.h>msin(){chars[]="ABCD",*P;for(p=s+1;p<s+4;p++)Printf("%s\n",p);}該程序的輸出結(jié)果是()。

A.ABCDBCDCDDB.ABCDC.BCDD.BCDCDD

18.設(shè)一棵二叉樹有3個葉子節(jié)點,有8個度為1的節(jié)點,則該二叉樹中總的節(jié)點數(shù)為()

A.12B.13C.14D.15E.16F.17

19.有以下程序#include<stdio.h>structst{intx,y;}data[2]={1,10,2,20};main(){structst*p=data;printf("%d,",p->y);printf("%d\n",(++p)->x);}程序的運行結(jié)果是______。A.10,1B.20,1C.10,2D.20,2

20.有以下程序:

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

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

二、2.填空題(20題)21.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲結(jié)構(gòu),線性鏈表屬于【】。

22.軟件定義時期主要包括______和需求分析兩個階段。

23.當調(diào)用函數(shù)時,實參是一個數(shù)組名,則向函數(shù)傳遞的是【】。

24.若a是血型變量,且a的初值為4,則計算a+=a-=a*a表達式后a的值為______。

25.x、y、x均為int型變量,描述“x、y和z中至少有兩個為正數(shù)”的表達式是______。

26.以下程序的功能是:刪去一維數(shù)組中所有相同的數(shù),使之只剩一個。數(shù)組中的數(shù)已按由小到大的順序排列,函數(shù)返回刪除后數(shù)組中數(shù)據(jù)的個數(shù)。

例如,若一維數(shù)組中的數(shù)據(jù)是:

2223445666677899101010

刪除后,數(shù)組中的內(nèi)容應(yīng)該是:

2345678910。

請?zhí)羁铡?/p>

#include<stdio.h>

#defineN80

infun(inta[],intn)

{inti,j=1;

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

if(a[j-1]【】a[i])

a[j++]=a[i];

【】;

}

main()

{inta[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10},i,n=19;

printf("Theoriginaldata:\n");

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

n=fun(a,n);

printf("\nThedataafterdeleted:\n");

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

}

27.函數(shù)mycmp(char*s,char*t)的功能是比較字符串s和t的大小,當s等于t時返回0,當s>t時返回正值,當s<t時返回負值。請?zhí)羁铡?/p>

mycmp(char*s,char*t)

{while(*s==*t)

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

++s;++t;

}

return(【】);

}

28.以下程序中函數(shù)f的功能是在數(shù)組x的n個數(shù)(假定n個數(shù)互不相同)中找出最大最小數(shù),將其中最小的數(shù)語第一個數(shù)兌換,把最大的數(shù)語最后一個數(shù)對換。請?zhí)羁铡?/p>

#include<stdio.h>

voidf(intx[],intn)

{intp0,p1,i,j,t,m;

i=j=x[0];p0=p1=0;

for(m=0;m<n;m++)

if(x[m]>i){i=x[m];p0=m;}

elseif(x[m]<j){j=x[m];p1=m;

}

t=x[p0];x[p0]=x[n-1];x[n-1]=t;

t=x[p1];x[p1]=[11];[12]=t;

main()

{inta[10],u;

for(u=0;u<10;u++)scanf("%d",&a[u]);

f(a,10);

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

printf("\n");

}

29.設(shè)有定義:intn,*k=&n;以下語句將利用指針變量k讀寫變量n中的內(nèi)容,請將語句補充完整。

scanf(“%d”,______);

printf(“%d\n”,______);

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

fun(intx)

{if(x/2>0)fun(x/2);

printf("%d",x);

}

main()

{fun(6);}

31.表示條件;10<x<100或x<0的C語言表達式是【】。

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

main()

{inta=10;

a=(3*5,a+4);printf("a=%d\n",a);

}

33.數(shù)據(jù)的邏輯結(jié)構(gòu)有線性結(jié)構(gòu)和______兩大類。

34.對于圖書管理數(shù)據(jù)庫,將圖書表中"人民郵電出版社"的圖書的單價漲價5%。請對下面的SQL語句填空:UPDATE圖書【】WHERE出版單位="人民郵電出版社"

35.軟件的需求分析階段的工作,可以概括為四個方面:【】、需求分析、編寫需求規(guī)格說明書和需求評審。

36.有以下程序:

voidf(inty,int*x)

{y=y+*x;*x=*x+y;}

main()

{intx=2,y=4;

f(y,&x);

ptintf("%d%d\n",x,y);

}

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

37.輸出指針數(shù)組各元素所指的整數(shù)值和它存放的地址值。

#include<stdio.h>

main()

{inti;

inta[5]={1,3,5,7,9};

int*num[5];

int【】;

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

num[i]=【】;

p=num+0;

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

{printf("%d%d\n",【】);

p++;

}

}

38.下列程序的運行結(jié)果是______。

main()

{intx=1,y=2,z=3;

printf("%d,",x<y?y:x);

printf("%d,",z<y?x++:y++);

printf("%d,%d",x,y);

}

39.已有定義:intx;,執(zhí)行以下語句后的輔出結(jié)果是【】。

x=11/3;y=5;

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

40.函數(shù)mycmp(char*s,char*t)的功能提比較字符串s和t的大小,當s等于t時返回0,當s>t返回正值,當s<t時返回負值。請?zhí)羁铡?/p>

mycmp(char*s,char*t)

{while(*s==*t)

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

++s;++t;

}

return(【】)

}

三、1.選擇題(20題)41.設(shè)有以下說明語句typedefstruct{intn;charch[8];}PER;則下面敘述中正確的是

A.PER是結(jié)構(gòu)體變量名

B.PER是結(jié)構(gòu)體類型名

C.typedefstruct是結(jié)構(gòu)體類型

D.struct是結(jié)構(gòu)體類型名

42.結(jié)構(gòu)化程序設(shè)計的核心和基礎(chǔ)是()。

A.結(jié)構(gòu)化分析方法B.結(jié)構(gòu)化設(shè)計方法C.結(jié)構(gòu)化設(shè)計理論D.結(jié)構(gòu)化編程方法

43.若有定義:floatx=1.5;inta=1,b=3,c=2;則正確的switch語句是()。

A.switch(x){case1.0:printf("*\n");case2.0:printf("**\n");

B.switch((iht)x);{case1:printf("*\n");case2:printf("**\n");}

C.switch(a+b){case1:printf("*\n");case2+1:printf("**\n");}

D.switch(a+b){case1:pfintf("*\n");casec:pfintf("**\n");}

44.有以下程序main(){inti=0,s=0;for(;;){if(i==3‖i==5)continue;if(i==6)break;i++;s+=i};printf("%d\n",s)}程序運行后的輸出結(jié)果是

A.10B.13C.21D.程序進入死循環(huán)

45.下列字符串是合法的標識符的是()。

A._HJB.9_studentC.longD.LINE1

46.以下程序的輸出結(jié)果是______。charcchar(charch){if(ch>='A'&&ch<='z')ch=ch-'A'+'a';returnch;}main(){chars[]="ABC+abc=defDEF",*p=s;while(*p){*p=cchar(*p);p++;}printf("%s\n",s);}

A.abe+ABC=DEFdef

B.abc+abe=defdef

C.abcaABCDEFdef

D.abcabcdefdef

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

A.c1c2

B.c1&c2C.c1~c2D.c1|c2

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

A.0000001000101000

B.1111110100011001

C.0000001011100010

D.1100000000101000

49.以下程序的輸出結(jié)果是______。#defineSQR(X)X*Xmain(){inta=10,k=2,m=1;a/=SQR(k+m)/SQR(k+m);printf("d\n",a);}

A.16B.2C.9D.1

50.下列工具中為需求分析常用工具的是()。

A.PADB.PFDC.N-SD.DFD

51.可以在C語言程序中用做用戶標識符的一組標識符是()。

A.voidB.aa123_abcBBNcasC.as+b3D.6f-123DoIfSIG

52.將E-R圖轉(zhuǎn)換到關(guān)系模式時,實體與實體間的聯(lián)系可以表示成()。

A.屬性B.關(guān)系C.鍵D.域

53.下列描述中,錯誤的一條是______。

A.已知a=3、b=2、c=l,則表達式(a>b)氣的值為1

B.C語言的表達式能構(gòu)成語句

C.表達式(x1=3*5,x1*4),x1+5的值為20

D.表達式x1=(b=4)+(c=6)的值為6

54.在下列選項中,______不是一個算法一般應(yīng)該具有的基本特征。

A.確定性B.可行性C.無窮性D.擁有足夠的情報

55.設(shè)有關(guān)鍵碼序列(66,13,51,76,81,26,57,69,23),要按關(guān)鍵碼值遞增的次序排序,若采用快速排序法,并以第一個元素為劃分的基準,那么第一趟劃分后的結(jié)果為()。

A.23,13,51,57,66,26,81,69,76

B.13,23,26,51,57,66,81,76,69

C.23,13,51,57,26,66,81,69,76

D.23,13,51,57,81,26,66,69,76

56.若有以下結(jié)構(gòu)體定義,則______是正確的引用或定義。structexample{intx;inty;}v1;

A.example.x=10

B.examplev2.x=10

C.structv2;v2.x=10

D.structexamplev2={10};

57.軟件需求分析階段的工作可以分為4個方面:需求獲取、需求分析、編寫需求分析說明書和

A.階段性報告B.需求評審C.總結(jié)D.都不正確

58.下列程序執(zhí)行后的輸出結(jié)果是voidfunc(int*a,intb[]){b[0]=*a+6;}main(){inta,b[5];a=0;b[0]=3;func(&a,b);printf("%d\n",b[0]);}

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

59.有以下程序:voidfun(char*c,intd){*c=*c+1;d=d+1;printf("%c,%c,",*c,d);}main(){chara='A',b='a';fun(&b,a);printf("%c,%c\n",a,b);}程序運行后的輸出結(jié)果是()。

A.B,a,B,aB.a,B,a,BC.A,b,A,bD.b,B,A,b

60.若有定義:inta[2][3];,以下選項中對a數(shù)組元素正確引用的是A.a[2][!1]B.a[2][3]C.a[0][3]D.a[1>2][!1]

四、選擇題(20題)61.軟件的()設(shè)計又稱總體結(jié)構(gòu)設(shè)計,其主要任務(wù)是建立軟件系統(tǒng)的總體結(jié)構(gòu)。

A.概要B.抽象C.邏輯D.規(guī)劃

62.C語言用_______表示邏輯“真”值。

A.trueB.t或yC.非零整型值D.整型值0

63.(33)分布式數(shù)據(jù)庫系統(tǒng)不具有的特點是______。

A.分布式

B.數(shù)據(jù)冗余

C.數(shù)據(jù)分布性和邏輯整體性

D.位置透明性和復(fù)制透明性

64.

下列程序中函數(shù)sort()的功能是對數(shù)組a中的數(shù)據(jù)進行由大到小的排序。

#include<stdio.h>

voidsort(inta[],intll)

{inti,j,t;

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

for(j=j+1+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]);

}

程序運行后的輸出結(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,

65.在C語言中,合法的長整型常數(shù)是()。

A.0.123456B.4962717C.9LD.5.321e2

66.軟件設(shè)計中,有利于提高模塊獨立性的一個準則是______。A.低內(nèi)聚低耦合B.低內(nèi)聚高耦合C.高內(nèi)聚低耦合D.高內(nèi)聚高耦合

67.

68.c語言規(guī)定,在一個源程序中,main函數(shù)的位置()。

A.必須在最開始B.必須在系統(tǒng)調(diào)用的庫函數(shù)的后面C.可以任意D.必須在最后

69.有以下程序:

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

70.

71.

72.數(shù)字字符0的ASCIl值為48,若有以下程序:

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

A.3,2B.50,2C.2,2D.2,50

73.以下描述錯誤的是

A.C程序中,函數(shù)可以直接或間接調(diào)用自己

B.函數(shù)調(diào)用時,函數(shù)名必須與所調(diào)用的函數(shù)名字完全一致

C.函數(shù)說明語句中的類型必須與函數(shù)返回值的類型一致

D.實參個數(shù)可以與形參個數(shù)不一致

74.

75.

76.有以下程序:

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

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

77.有以下程序

78.有以下程序

intf(intn)

{if(n==1)return1;

elsereturnf(n-1)+1;}

main()

{inti,j=0;

for(i=1;i<3;i++)j+=f(i);

printf("%d\n",j);}

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

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

79.

80.設(shè)有定義語句

則以下敘述正確的是().

A.f是指向函數(shù)的指針變量,該函數(shù)具有_個int類型的形參

B.f是基類型為int的指針變量

C.f是指向int類型一維數(shù)組的指針變量

D.f是函數(shù)名,該函數(shù)的返回值是基類型為int類型的地址

五、程序改錯題(1題)81.下列給定程序中,函數(shù)fun的功能是:計算整數(shù)n的階乘。請改正程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計題(1題)82.編寫函數(shù)proc(),它的功能是:根據(jù)公式求p的值,結(jié)果由函數(shù)值帶回。m與n為兩個正數(shù)且要求m>;n。p=m!/(n!(m-n)!),例如,m=20,n=10時,運行結(jié)果為184756.000000。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:

參考答案

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

2.D解析:本題考查循環(huán)和指針做函數(shù)參數(shù),程序的功能是將a[0]和a[7]對換,a[1]和a[6]對換,a[2]和a[5]對換,a[3]和a[4]對換,最后輸出。

3.B

4.C

5.A解析:在函數(shù)體內(nèi)定義一字符型指針并指向形參,然后遍歷其中各字符直到NULL,最后返回字符串首尾地址的差值,即字符串的長度。

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

7.C解析:fprintf函數(shù)工作時,多個數(shù)據(jù)間不會自珈口分隔符,選項A錯誤;浮點數(shù)的輸出格式是“%5.0f”表明其小數(shù)部分輸出0位,即沒有輸出,所以選項B也是錯誤的。

8.A

9.AC語言中規(guī)定運算符的優(yōu)先順序:一元算術(shù)運算符一>二元算術(shù)運算符一>關(guān)系運算符一>邏輯運算符一>賦值運算符,A項中為邏輯運算符,B項和c項都為關(guān)系運算符,D項為一元運算符。因此最低的是A項。

10.D解析:C語言把文件看成是一個字符(字節(jié))的序列,即由一個一個字符(字節(jié))的數(shù)據(jù)順序組成。根據(jù)數(shù)據(jù)的組織形式,可分為ASCII文件和二進制文件。ASCII文件又稱文本文件,它的每一個字節(jié)放一個ASCII代碼,代表一個字符。二進制文件是把內(nèi)存中的數(shù)據(jù)按其在內(nèi)存中的存儲形式原樣輸出到磁盤上存放。

11.A

12.D

13.C解析:數(shù)據(jù)處理的最小單位是數(shù)據(jù)項;由若干數(shù)據(jù)項組成數(shù)據(jù)元素;而數(shù)據(jù)是指能夠被計算機識別、存儲和加工處理的信息載體;數(shù)據(jù)結(jié)構(gòu)是指數(shù)據(jù)之間的相互關(guān)系和數(shù)據(jù)運算。故正確答案為選項C)。

14.A解析:/*與*/之間的信息稱為注釋信息,在C語言中,允許在任何能夠插入空格符的位置插入注釋,但C語言的注釋不能進行嵌套,故選項A正確:在C語言中,函數(shù)體是從花括號{開始,到花括號}結(jié)束。但沒有規(guī)定花括號{和}只能作為函數(shù)體定界符,故選項B錯誤;選項C中前半句是正確的,C程序由一個或多個函數(shù)所組成,但不是所有的函數(shù)都由用戶自己命名,有些函數(shù),比如主函數(shù)main()就不能由用戶來命名,故選C不正確;在C語言中明確規(guī)定每條語句以分號;結(jié)束,分號是語句不可缺少的一部分,故選項D不正確。所以,4個選項中選項A符合題意。

15.C

16.C

17.D解析:本題考查指向字符串指針的運算方法。執(zhí)行p=s+1后,指針變量p就指向字符串中的第二個字符“B”,然后輸出字符串“BCD”并換行;下面繼續(xù)執(zhí)行循環(huán)語句,指針變量p指向下一個字符“C”,輸出字符串“CD”,最后一次循環(huán),p指向字符“D”,輸出字符串“D”。

18.B

19.C解析:本題定義了一個包含兩個元素(data[0]、data[1])的結(jié)構(gòu)體數(shù)組data,其中data[0].x=1;data[0].y=10;data[1].x=2;\u3000data[1].y=20。在主函數(shù)中,定義了一個指向結(jié)構(gòu)體數(shù)組的結(jié)構(gòu)體指針變量p,使得p指向結(jié)構(gòu)體數(shù)組的首地址,所以p->y訪問的是第一個鮚構(gòu)體數(shù)組元素的第二個值,即data[0].y;(++p)->x訪問的是第二個結(jié)構(gòu)體數(shù)組元素的第一個值,即\u3000data[1].x,所以程序輸出結(jié)果為10,2。

20.D在程序中指針變量P初始指向a[3],執(zhí)行P減1后,P指向a[2],語句y=*P的作用是把a[2]的值賦給變量y,所以輸出為y=3。

21.存儲結(jié)構(gòu)

22.可行性研究可行性研究解析:軟件生命周期一般包括可行性研究與需求分析、設(shè)計、實現(xiàn)、測試、交付使用及維護等,還可以將軟件生命周期分為三個階段:①軟件定義階段:可行性研究和需求分析;②軟件開發(fā)階段:設(shè)計、實現(xiàn)和測試;③軟件運行維護階段:交付使用和維護。

23.數(shù)組的首地址數(shù)組的首地址解析:在函數(shù)中,可以通過指針變量來引用調(diào)用函數(shù)中對應(yīng)的數(shù)組元素,此操作是通過傳遞數(shù)組的首地址來實現(xiàn)的。

24.-24-24解析:本題考查賦值運算符a+=b等價于a=a+b;a-=a*a等價于a-a-a*a=4-4*4=-12:a+=a,即a=a+a=-24。

25.((x>0)&&<y>0))‖(x>0)&&(z>0)‖y>0)&&(z>0))((x>0)&&<y>0))‖(x>0)&&(z>0)‖y>0)&&(z>0))解析:題目要求“x、y和z中至少有兩個為正數(shù)”,即x、y和x這3個數(shù)中必須有兩個是正數(shù),且這3個數(shù)中的哪兩個數(shù)都有可能是正數(shù),所以它們之間是或的關(guān)系。

26.!=returnj!=\r\nreturnj解析:本題程序的流程是:讓i,j都從1開始其中j用于控制刪除后剩下的數(shù)中的下標,i用于搜索原數(shù)組中的元素。j始終是新數(shù)組已有元素中最后一個元素的下一個元素的下標,所以if()中的條件是a[j-1)!=a[i],其中a[j-1]就是新數(shù)組中的最后一個元素,若條件成立則表示出現(xiàn)了不同的值,所以a[i]要留下到新數(shù)組中。注本題中i,j的初值都要從1開始。該算法只能用于數(shù)組已排序的題目中。

27.*s-*t*s-*t解析:本題考查比較字符串的大小。函數(shù)的兩個形參是兩個字符指針變量,指針變量的值是字符串的首地址,*s和*t表示s和t指向的第一個字符,在while循環(huán)中,通過s和t指針的移動,不斷改變所指字符,通過返回s和t的第一個不同字符的ASCII碼的差值*s-*t得到結(jié)果。

28.x[0]x[0]x[0]x[0]解析:函數(shù)f()通過for循環(huán)逐個比較數(shù)組x中的元素,循環(huán)結(jié)束后,p0和p1分別表示最大值和最小值在數(shù)組中的下標位置,然后按照題意將最大值x[p0]和數(shù)組的最后一個元素x[n-1)交換位置,再將最小值x[p1]和第一個元素(x[0])進行交換,所以空白處應(yīng)該填入x[0]。

29.k*kk*k解析:本題考查的知識點是scarf()函數(shù)和printf()函數(shù)的用法。scanf()函數(shù)有兩個參數(shù),第一個參數(shù)是格式控制部分(格式控制部分是字符串,主要由“%”號和格式字符組成)第二個參數(shù)是一地址列表(地址列表是由多個地址組成,可以是變量的地址,也可以是字符串的首地址)。而第一個空格處位于scanf()函數(shù)的第二個參數(shù)處,所以,第一個空應(yīng)該填地址k。printf()函數(shù)有兩個參數(shù),第一個參數(shù)是輸出格式字符串(輸出格式字符串是由控制輸出格式的字符和非格式字符組成的,通常是字符常量。非格式字符作為輸出數(shù)據(jù)的間隔,輸出時原樣輸出)第二個參數(shù)為一輸出表達式表(輸出表達式表是由若干個需要計算和輸出的表達式組成的,表達式之間用逗號分隔開)。而第;個空位于printf()函數(shù)的第二個參數(shù)處,所以應(yīng)該填*K。

30.136136解析:本題考核的知識點是函數(shù)遞歸。主函數(shù)調(diào)用函數(shù)fun(6),由于6/2>0為真遞歸調(diào)用fun(3),接著遞歸調(diào)用fun(1),輸出1,返回上一層輸出3,在返回上一層輸出6。故空格處應(yīng)該填136。

31.(x>10&&x<100)||x<0

32.a=14a=14解析:逗號表達式的值是以逗號分隔的最后一個表達式的值。所以題目中的語句a=(3*5,a+4);就等價于a=a+4;。故本題輸出結(jié)果是a=14。

33.非線性結(jié)構(gòu)非線性結(jié)構(gòu)

34.SET單價=單價*1.05SET單價=單價*1.05解析:更新表中元組的值,使用UPDATE命令,一次可以更新表中的一個或多個屬性值。UPDATE短語之后指定更新數(shù)據(jù)所屬的表,將新的屬性值或表達式賦值給對應(yīng)的屬性名(SET單價=單價*1.05),并置于SET短語之后。要求對人民郵電出版社的圖書漲5%,需要用WHERE短語對元組進行限制,即對符合條件的元組進行更新。

35.需求獲取需求獲取解析:軟件的需求分析階段的工作,可以概括為四個方面:需求獲取、需求分析、編寫需求規(guī)格說明書和需求評審。需求獲取的目的是確定對目標系統(tǒng)的各方面需求;需求分析是對獲取的需求進行分析和綜合,最終給出系統(tǒng)的解決方案和目標系統(tǒng)的邏輯模型;編寫需求規(guī)格說明書作為需求分析的階段成果,可以為用戶、分析人員和設(shè)計人員之間的交流提供方便,可以直接支持目標軟件系統(tǒng)的確認,又可以作為控制軟件開發(fā)進度的依據(jù);需求評審是對需求分析階段的工作進行的復(fù)審,驗證需求文檔的一致性、可行性、完整性和有效性。

36.8484解析:“值傳遞”指實參將值傳遞給形參后,實參與形參再無聯(lián)系。也就是說對行參的改變將不影響實參;地址傳遞是指地址或數(shù)組名作為形參時的參數(shù)傳遞,這種情況下對形參的改變將對實參產(chǎn)生影響。函數(shù)f(y,*x)的作用是讓y的值加上指針x所指向變量的值,讓指針x所指向變量的值加上y的值。由于形參y是傳值的,形參x是傳地址的,故調(diào)用該函數(shù)后,作為實參y的值將不改變,而實參x的值將改變,故最后輸出的y值為4,而x的值為8。

37.**pa+I**p*p

38.22132,2,1,3解析:本題考查++,--運算符和條件運算符的使用。

“表達式1?表達式2:表達式3”的功能是:表達式1的值若非0,則計算表達式2的值,且表達式2的值為最終結(jié)果;若表達式1的值為0,則計算表達式3的值,且為最終結(jié)果。

本題中,x=1,y=2時,x<y成立,輸出y的值2;y=2,z=3時,z<y不成立,執(zhí)行y++,輸出2后y值增1,所以最后一個輸出x的值不變?yōu)?,y的值為增加后的3。

39.%d%3

40.*s-*t或-*t+*s*s-*t或-*t+*s解析:函數(shù)的兩個形參是兩個字符指針變量,字符串的首地址是指針變量的值,*s和*t表示字符串數(shù)組s和t的第一個字符,在while循環(huán)中,是通過s和t值的不斷變化來改變指針所指向的字符,要改變s和t所指不同字符的ASCII碼的差值,必須使用“*s-*t”得出。

41.B解析:本題中,typedef聲明新的類型名PER來代替已有的類型名,PER代表上面指定的一個結(jié)構(gòu)體類型,此時,也可以用PER來定義變量。

42.CC。【解析】結(jié)構(gòu)化程序設(shè)計的核心和基礎(chǔ)是結(jié)構(gòu)化設(shè)計理論,其中包括:結(jié)構(gòu)化分析方法、結(jié)構(gòu)化設(shè)計方法和結(jié)構(gòu)化編程方法。

43.C解析:選項A)中case后面的表達式為浮點型,選項D)中case后面的表達式存在字符變量c,故選項A)、D)錯誤;在選項B)中,switch后面的表達式加了分號顯然有錯。

44.D解析:本題考核的知識點是for循環(huán),continue語句和break語句的運用。程序中for循環(huán)中省略了判斷退出循環(huán)的表達式,for循環(huán)將由里面的break語句控制是否結(jié)束循環(huán),第一次循環(huán),第一條if語句后面括號里的表達式的值為假,所以該if語句不被執(zhí)行,執(zhí)行下面的第二條語句,此時該if語句表達式的值為假,所以該if語句也不執(zhí)行,執(zhí)行下面的語句,i++、s+=i,執(zhí)行完畢后i的值為1,s的值為1,如此循環(huán),直到第三次之后i,s的值都為3,繼續(xù)第四次循環(huán),顯然這時滿足第一條if語句的,執(zhí)行后面的continue;該次循環(huán)結(jié)束從頭開始下次循環(huán),而i的值為3一直沒有改變,所以第一條語句始終要執(zhí)行,因此for循環(huán)將一直循環(huán)下去,所以,4個選項中選項D符合題意。

45.A解析:標識符是以字母、數(shù)字和下劃線組成的字符串,且只能是字符或下劃線開頭,且C語言的關(guān)鍵字不能用作用戶自定義的標識符。注意:熟記C語言中常用的關(guān)鍵字。

46.B解析:字符數(shù)組元素作函數(shù)參數(shù)是單向的值傳遞。函數(shù)cchar的功能是將大寫字母轉(zhuǎn)換為小寫字母。主函數(shù)中while循環(huán)語句的條件是判斷指針p當前指向的字符是否為空,若不為空,則調(diào)用函數(shù)cchar,即主函數(shù)中通過循環(huán)語句將字符串'ABC+abc=defDEF'中的大寫字母全部轉(zhuǎn)換為小寫字母,因此printf的輸出結(jié)果為選項B。

47.A解析:選項A為異或運算符,如果參加運算的兩個位相同,結(jié)果為0,否則為1。顯然選項A中參加運算c1和c2相同,故其值位0;選項B為位與運算,如果參加運算的兩位都為1,則結(jié)果為1,否則結(jié)果為0,選項B中參加運算的c1和c2都為真,所以結(jié)果為1;選項C為取反運算,用來對一個二進制取反,顯然c2取反后不為0,選項D為異或運算,參加運算的兩位只要有一個為1,那么運算結(jié)果為1,顯然參加運算的c1和c2都不為0,故運算結(jié)果不為0。

48.A解析:本題主要考查按位與運算,x=011050的二進制形式為0001001000101000,01252的二進制形式為0000001010101010,兩者相與得00000010001010000。

49.D解析:本題考查帶參數(shù)的宏調(diào)用。a/=SQR(k+m)/SQR(k+m)進行宏替換后得:a=a/(SQR(k+m)/SQR(k+m))=a/(k+m*k+m/k+m*k+m)=10/(2+1*2+1/2+1*2+1)=10/(2+2+0+2+1)=10/7/1。

50.D解析:需求分析常用的工具有數(shù)據(jù)流圖(DFD)、數(shù)據(jù)字典(DD)、判定樹和判定表。PAD(問題分析圖)、PFD(程序流程圖)、N-S(盒式圖)都是詳細設(shè)計的常用工具,不是需求分析的工具。

51.B解析:C語言規(guī)定,標識符是由字母、數(shù)字或下劃線組成,并且它的第一個字符必須是字母或者下劃線。

52.B解析:將E-R圖轉(zhuǎn)換成指定RDBMS中的關(guān)系模式是數(shù)據(jù)庫邏輯設(shè)計的主要工作。從E-R圖到關(guān)系模式的轉(zhuǎn)換是比較直接的,實體和聯(lián)系都可以表示成關(guān)系。

53.D

54.C解析:作為一個算法,一般應(yīng)具有以下幾個基本特征。①可行性②確定性③有窮性④擁有足夠的情報

55.AA)【解析】快速排序是起泡排序的改進。在快速排

序中,任取一個記錄,以它為基準用交換的方法將所有的記錄分成兩部分,關(guān)鍵碼值比它小的在一部分,關(guān)鍵碼值比它火的在另一部分,再分別對兩個部分實施上述過程,一直重復(fù)到排序完成。

56.D解析:在定義結(jié)構(gòu)體變量時,不能只用結(jié)構(gòu)體名example或關(guān)鍵字struct進行定義,必需要用結(jié)構(gòu)缽類型名structexample定義,在引用結(jié)構(gòu)體成員變量時,需要用結(jié)構(gòu)體變量名進行引用,所以選D。

57.B解析:本題考查軟件需求分析的四個階段,分別為需求獲取、需求分析、編寫需求分析說明書和需求評審。

58.A解析:函數(shù)的參數(shù)不僅可以是整型、實型、字符型等數(shù)據(jù),還可以是指針型。它的作用是將一個變量的地址傳遞到另一個函數(shù)中。當數(shù)組名作參數(shù)時,如果形參數(shù)組中的各元素的值發(fā)生變化,實參數(shù)組元素的值也將隨之發(fā)生變化。

59.D解析:程序中定義了

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論