2022-2023年江西省南昌市全國計算機(jī)等級考試C語言程序設(shè)計測試卷(含答案)_第1頁
2022-2023年江西省南昌市全國計算機(jī)等級考試C語言程序設(shè)計測試卷(含答案)_第2頁
2022-2023年江西省南昌市全國計算機(jī)等級考試C語言程序設(shè)計測試卷(含答案)_第3頁
2022-2023年江西省南昌市全國計算機(jī)等級考試C語言程序設(shè)計測試卷(含答案)_第4頁
2022-2023年江西省南昌市全國計算機(jī)等級考試C語言程序設(shè)計測試卷(含答案)_第5頁
已閱讀5頁,還剩18頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2022-2023年江西省南昌市全國計算機(jī)等級考試C語言程序設(shè)計測試卷(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.

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

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

3.下列語句組中,正確的是()。

4.二叉樹的第三層最少有________個結(jié)點。

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

5.下面不能正確表示a*b/(c*d)的表達(dá)式是()。

A.(a*b)/c*dB.a*b/(c*d)C.a/c/d*bD.a*b/c/d

6.數(shù)據(jù)庫DB、數(shù)據(jù)庫系統(tǒng)DBS、數(shù)據(jù)庫管理系統(tǒng)DBMS之間的關(guān)系是()。

A.DB包括DBS和DBMSB.DBMS包括DB和DBSC.DBS包括DB和DBMSD.沒有任何關(guān)系

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

8.

9.已知i,j,k為int型變量,若從鍵盤輸入:1,2,3<回車>,使i的值為1,j的值為2,k的值為3,以下選項中正確的輸入語句是A.scanf("%2d%2d%2d",&i,&j,&k);

B.scanf("%d%d%d",&i,&j,&k);

C.scanf("%d,%d,%d",&i,&j,&k);

D.scanf("i=%d,j=%d,k=%d",&i,&j,&k);

10.設(shè)有如下類型說明語句:typedefstruct{intnum;struct{inty,m,d;}date;}PER;則以下定義結(jié)構(gòu)體數(shù)組并賦初值的語句中錯誤的是()。

A.PERst[2]={{1001},2008,8,1,{1002},2006,5,20};

B.PERst[2]={1001,{2008,8,1},1002,{2006,5,20}};

C.PERst[2]={{1001,2008,8,1},{1002,2006,5,20}};

D.PERst[2]={1001,2008,8,1,1002,2006,5,20};

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

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

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

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

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

12.數(shù)據(jù)庫是()的集合,它具有統(tǒng)一的結(jié)構(gòu)格式并存放于統(tǒng)一的存儲介質(zhì),可被各個應(yīng)用程序所共享

A.視圖B.消息C.數(shù)據(jù)D.關(guān)系

13.以下敘述中錯誤的是()。

A.非零的數(shù)值型常量有正值和負(fù)值的區(qū)分

B.常量是在程序運(yùn)行過程中值不能被改變的量

C.定義符號常量必須用類型名來設(shè)定常量的類型

D.用符號名表示的常量叫符號常量

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

A.預(yù)處理命令行必須位于C源程序的起始位置

B.在C語言中,預(yù)處理命令行都以“#”開頭

C.每個C程序必須在開頭包含預(yù)處理命令行:#include

D.C語言的預(yù)處理不能實現(xiàn)宏定義和條件編譯的功能

15.有以下程序

#include<stdio.h>

main()

{charb,c;inti;

b=‘a(chǎn)’;c=‘A’;

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

{if(i%2)putchar(i+b);

elseputehar(i+c);

}printf(“\n”);

}

程序運(yùn)行后的輸出結(jié)果是A.ABCDEFB.AbCdEfC.aBeDeFD.abcdef

16.存儲以下數(shù)據(jù),占用存儲字節(jié)最多的是()。

A.0B.‘0’C.“0”D.0.0

17.下列函數(shù)的類型是()。fun(doublex){floaty;y=3*x-4;returny;}

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

18.在結(jié)構(gòu)化方法中,軟件功能分解屬于下列軟件開發(fā)中的階段是______。

A.詳細(xì)設(shè)計B.需求分析C.總體設(shè)計D.編程調(diào)試

19.下述關(guān)于數(shù)據(jù)庫系統(tǒng)的敘述中,正確的是()。

A.數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余

B.數(shù)據(jù)庫系統(tǒng)避免了一切冗余

C.數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的一致性是指數(shù)據(jù)類型一致

D.數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù)

20.在目標(biāo)串T[0,n-1]=”xwxxyxy”中,對模式串p[0,m-1]=”xy”進(jìn)行子串定位操作的結(jié)果_______

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

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

#definePR(a)printf("%d\t",(int)(a))

#definePRINT(a)PR(a);printf("ok!")

main()

{inti,a=1;

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

PRINT(a+i);

printf("\n");}

22.以下程序的輸出結(jié)果是()。#include<stdio.h>intfun(intx){staticintt=0;return(t+=x);}main(){ints,i;for(i=1;i<=5;i++)s=fun(i);printf("%d\11",s);}

23.軟件生命周期分為軟件定義期、軟件開發(fā)期和軟件維護(hù)期,詳細(xì)設(shè)計屬于______中的一個階段。

24.軟件測試是保證軟件質(zhì)量的重要手段,而軟件測試的主要和重要的測試方法是通過測試數(shù)據(jù)和【】的設(shè)計來實現(xiàn)。

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

main()

{inti,j,a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12},b[4][3];

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

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

b[j][i]=a[i][j];

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

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

printf("%-3d",b[i][j]);

printf("\n");

}

}

26.在面向?qū)ο蠓椒ㄖ校尽棵枋龅氖蔷哂邢嗨茖傩耘c操作的一組對象。

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

structs

{intx,y;}data[2]={10,100,20,200};

main()

{

structs*p=data;

printf("%d\n",++(p->x));

}

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

#definePOWER(x)((x)*(x))

main()

{inti=1;

printf("%d,%d",POWER(i++),i);

}

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

fun(intx,inty,intz)

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

main()

{inta=31;

fun(6,3,a)

printf("%d,a)

}

30.下列程序用來輸出結(jié)構(gòu)體變量ex所占存儲單元的字節(jié)數(shù)。

structst

{charname[20];doublescore;};

main()

{structstex;

printf("exsize:%d\n",sizeof(【】));

}

31.下面程序的功能是:計算1~10之間的奇數(shù)之和與偶數(shù)之和,請?zhí)羁铡?/p>

#include<stdio.h>

main()

{inta,b,c,i;

a=c=0;

for(i=0;i<=10;i+=2)

{a+=i;

【】;

c+=b;}

printf("偶數(shù)之和=%d\n",a);

printf("奇數(shù)之和=%d\n",c-11);}

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

intn='c':

switch(n++)

{default:printf("error");break;

case'a':printf("good");break;

case'c':printf("moming");

case'd':printf("class");

}

33.設(shè)inta=5,b=6,表達(dá)式(++a==b--)?++a:--b的值是【】。

34.C語言用于結(jié)構(gòu)化程序設(shè)計的3種基本結(jié)構(gòu)是______、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。

35.在數(shù)據(jù)庫的概念結(jié)構(gòu)設(shè)計中,常用的描述工具是【】。

36.有以下定義和語句,則sizeof(a.share)的值是()。

structdate

{unsignedintday;

unsignedintmouth;

unsignedintyear;

union{intshare1;

floatshare2;

}share;

}a;

37.在面向?qū)ο蟮某绦蛟O(shè)計中,類描述的是具有相似性質(zhì)的一組【】。

38.在面向?qū)ο蠓椒ㄖ校畔㈦[蔽是通過對象的______性來實現(xiàn)的。

39.在面向?qū)ο蟪绦蛟O(shè)計中,從外面看只能看到對象有外部特征,而不知道也無需知道數(shù)據(jù)的具體結(jié)構(gòu)以及實現(xiàn)操作的算法,這稱為對象的______。

40.若有以下程序

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é)果是______。

三、1.選擇題(20題)41.在c語言中,變量的隱含存儲類別是()。

A.autoB.staticC.externD.無存儲類別

42.若有以下函數(shù)首部intfun(doublex[10],int*n)則下面針對此函數(shù)的函數(shù)聲明語句中正確的是______。A.intfun(doublex,int*n);

B.intfun(double,int);

C.intfun(double*x,intn);

D.intfun(double*,int*);

43.已知一個文件中存放若干工人檔案記錄,其數(shù)據(jù)結(jié)構(gòu)如下:structa{charnumber[100];intage;floatp[6];};定義一個數(shù)組:structanumber[10];假定文件已正確打開,不能正確地從文件中讀入10名工人數(shù)據(jù)到數(shù)組b中的是()。

A.fread(b,sizeof(structA),10,fp);

B.for(i=0;i<10;i++)fread(b[i],sizeof(structA),1,fp);

C.for(i=0;i<10;i++)fread(b+i,sizeof(structA),1,fp);

D.for(i=0;i<5;i+=2)fread(b+i,sezeof(structA),2,fp);

44.請讀程序:#include<stdio.h>main(){inta,b;for(a=1,b=1;a<=100;a++){if(b>=20)break;if(b%3==1){b+=3;continue;}b-=5;}printf("%d\n",a);}上面程序的輸出結(jié)果是()。

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

45.有下列程序段:structst{intx;int*y;}*pt;inta[]={1,2},b[]={3,4};structstc[2]={10,a,20,b};pt=c;下列選項中表達(dá)式的值為11的是()。

A.*pt->yB.pt->xC.++pt->xD.(pt++)->X

46.若x是整型變量,pb是基類型為整型的指針變量,則正確的賦值表達(dá)式是______。

A.pb=&x;B.pb=x;C.*pb=&x;D.*pb=*x

47.微機(jī)顯示器一般有兩組引線,它們是()

A.電源線與信號線B.電源線與控制線C.電源線與地線D.控制線與地線

48.下面程序的輸出結(jié)果是()。#definePI3.1415#defineARE(X)PI*x*xmain(){intr=2;printf("%.2f",ARE(r+1));}

A.28.26B.28.26C.9.28D.9.28

49.sizeof(char)是()。

A.一種函數(shù)調(diào)用B.一個整型表達(dá)式C.一個字符型表達(dá)式D.一個不合法的表達(dá)式

50.若有以下程序:main(){intk=2,i=2,m;m=(k+=i*=k);printf(“%d,%d\n”,m,i);}執(zhí)行后的輸出結(jié)果是

A.8,6B.8,3C.6,4D.7,4

51.已知大寫字母F的ASCII碼為70,以下程序的運(yùn)行結(jié)果為()#include<stdio.h>main(){charc1='F',c2='p';printf("%d,%d\n",c1,c2);}

A.70,80B.70,81C.70,82D.70,83

52.閱讀下述程序段:y=-1;if(x!=0)if(x>0)y=1;elsey=0;該程序段所描述的數(shù)學(xué)關(guān)系是()

A.

B.

C.

D.

53.有以下程序#include<stdio.h>#definePT5.5#defineS(x)PT*x*xmain(){inta=1,b=2;printf("%4.1f\n",S(a+b));}程序運(yùn)行后的輸出結(jié)果是()

A.49.5B.9.5C.22D.45

54.執(zhí)行以下程序后,test.txt文件的內(nèi)容是(若文件能正常打開)()。#include<stdio.h>#include<stdlib.h>main(){FILE*fp;char*s1="Fortran",*s2="Basic";if((fp=fopen("test.txt","wb"))==NULL){prinff("Can'topentest.txtfile\n");exit(1);}fwrite(s1,7,1,fp);/*把從地址s1開始到7個字符寫到fp所指文件中*/fseek(fp,OL,SEEK_SET);/*文件位置指針移到文件開頭*/fwrite(s2,5,1,fp);felose(fp);}

A.BasieanB.BasieFortranC.BasicD.FortranBasie

55.不能與do…while(exp)語句中的(exp)等價的表達(dá)式是()。

A.(!exp==0)B.(exp>0‖exp<0)C.(exp==0)D.(exp!=0)

56.有以下程序:main(){inty=10;while(y--);printf("y=%d\n",y);}程序執(zhí)行后的輸出結(jié)果是()。

A.y=0B.y=-1C.y=1D.while構(gòu)成無限循環(huán)

57.以下選項中非法的表達(dá)式是()。

A.0<=x<100B.i=j==0C.(char)(65+3)D.x+1=x+1

58.設(shè)有以下程序段intx=0,s=0;while(!x!=0)s+=++x;printf("%d",s);則

A.運(yùn)行程序段后輸出0B.運(yùn)行程序段后輸出1C.程序段中的控制表達(dá)式是非法的D.程序段執(zhí)行無限次

59.若有說明:int*p,m=5,n;以下正確的程序段是

A.p=&n;scanf("%d",&p);

B.p=&n;scanf("%d",*p)

C.scanf("%d",&n);*p=n;

D.p=&n;*p=m;

60.在下列敘述中,正確的一條是()

A.語句int*pt中的*pt是指針變量名

B.語句"int*p=a;"等價于"int*p;p=&a[0];”

C.運(yùn)算符*和&都是取變量地址的運(yùn)算符

D.已知指針變量p指向變量a,則&a和*p值相同,都是變量a的值

四、選擇題(20題)61.

62.不能實現(xiàn)函數(shù)之間數(shù)據(jù)傳遞的是()。

A.全局變量B.局部變量C.函數(shù)接口D.函數(shù)返回值

63.下列數(shù)據(jù)結(jié)構(gòu)中屬于非線性結(jié)構(gòu)的是()。

A.隊列

B.線性表

C.二叉樹

D.棧

64.有以下程序:

intfun(intx)

{intp;

if(x==0||x==1)return(3);

p=x-fun(x-2);

returnp;

}

main

{printf("%d\n",fun(7));}

執(zhí)行后的結(jié)果是()。A.A.7B.3C.2D.065.以下函數(shù)的功能是:通過鍵盤輸入數(shù)據(jù),為數(shù)組中的所有元素賦值。

#include<stdio.h>

#defineN10

voidfun(intx[N])

{inti=0;

while(i<N)scanf("%d",

);

}

在程序中下劃線處應(yīng)填入的是()A.x+i

B.&x[i+1]

C.x+(i++)

D.&x[++i]

66.

67.與“y=(x>0?1:x<0?-1:0)”;的功能相同的if語句是()。A.A.if(x>0)y=1;elseif(x<0)y=1;else=""y="0;

B."x="">0)y=1;elseif(x<0)y=-l;else=""y="0;"

C.y="-l"x="">O)y=1;elseif(x=-0)y=0;elsey=-l;

D.y=0;if(x>=0)if(x>=0)y=1;elsey=-l;

68.已知inta=15,執(zhí)行語句a=a<<2以后,變量a的值是()。

A)20B)40

C)60D)80

69.設(shè)整型變量n的值為2,執(zhí)行語句“n+=n-=n*n;”后,n的值是__________

A.0B.4C.-4D.2

70.在結(jié)構(gòu)化程序設(shè)計方法中,下面內(nèi)聚性最弱的是()。

A.邏輯內(nèi)聚B.時間內(nèi)聚C.偶然內(nèi)聚D.過程內(nèi)聚

71.軟件設(shè)計中劃分模塊的一個準(zhǔn)則是()。

A.低內(nèi)聚低耦合B.高內(nèi)聚低耦合C.低內(nèi)聚高耦合D.高內(nèi)聚高耦臺

72.

73.若程序中有以下說明和定義。

structabc

{

intx;chary;

}

structabcs1,s2;

則會發(fā)生的情況是

A.編譯時出錯B.程序?qū)㈨樞蚓幾g、連接、執(zhí)行

C.能順序通過編譯、連接,但不能執(zhí)行D.能順序通過編譯,但連接出錯

74.

75.

76.在面向?qū)ο蠓椒ㄖ校粚儆凇皩ο蟆被咎攸c的是A.一致性B.分類性C.多態(tài)性D.標(biāo)識唯一性

77.

78.有以下程序段

#include<stdio.h>

voidfun(char*fname,char*st)

{FILE*myf;

inti;

myf=fopen(fname,"w");

for(i=0;i<strlen(st);i++)fputc(st[i],myf);

fclose(myf);

}

main()

{fun("test.t","newworld");

fun("test.t","hello,");}

程序執(zhí)行后,文件test.t中的內(nèi)容是A.A.hello,

B.newworldhello,

C.newworld

D.hello,rld

79.

80.已知二叉樹后序遍歷序列是dabeC,中序遍歷序列是debaC,它的前序遍歷序列是()。

A.aChedB.deCabC.deabeD.Cedba

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:從m個學(xué)生的成績中統(tǒng)計出低于平均分的學(xué)生人數(shù),此人數(shù)由函數(shù)值返回,平均分存放在形參aver所指的存儲單元中。例如輸入8名學(xué)生的成績:987867563489.578.576.5則低于平均分的學(xué)生人數(shù)為3(平均分為72.187500)。請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計題(1題)82.編寫函數(shù)fun,其功能是:將所有大于1小于整數(shù)m的非素數(shù)存人XX所指數(shù)組中,非素數(shù)的個數(shù)通過k返回。

例如,若輸入17,則應(yīng)輸出:46891012141516。注意:部分源程序在文件PROGl.C中。

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

參考答案

1.A

2.A參數(shù)r的傳遞是地址傳遞,函數(shù)調(diào)用會改變其值。函數(shù)f的功能是:判斷n是否為3或5的倍數(shù),如果是,則將指針r所指的內(nèi)存空間賦值為n除以3或5的商;否則n遞減,直到它可以被3或5整除。初始時調(diào)用函數(shù)f(7,&r);n=7,執(zhí)行else子句,調(diào)用f(6,&r1);后n=6,執(zhí)行語句if(n%3==0)r1=n/3;,此后執(zhí)行語句*r=rl;。所以r=6/3=2。

3.A字符型指針變量可以用選項A)的賦值方法:char*s;s=”O(jiān)lympictt;,選項C)的寫法:char*s,s={1.Olympic”};是錯誤的。字符數(shù)組可以在定義的時候初始化:chars[]_IfIOlympic”l;或者chars[]=”O(jiān)lympic'1.都是正確的,但是不可以在定義字符數(shù)組后,對數(shù)組名賦值(數(shù)組名是常量,代表數(shù)組首地址)。所以選項B)和選項D)都是錯誤的。對于本例,選項B)、D)中字符數(shù)組S的大小至少為8,才能存放下字符串(字符串的末尾都有結(jié)束標(biāo)志“\0”)。

4.B

5.A

6.CC。【解析】數(shù)據(jù)庫系統(tǒng)(DBS)由數(shù)據(jù)庫(DBS)、數(shù)據(jù)庫管理系統(tǒng)(DBMS)、數(shù)據(jù)庫管理員、硬件平臺和軟件平臺五個部分組成,可見DB和DBMS都是DBS的組成部分。

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

8.D

9.C

10.A結(jié)構(gòu)體PER類型定義了兩個成員:num為整型,date為嵌套的結(jié)構(gòu)體類型。初始化時,成員值的順序必須與成員定義的順序相同,num必須是整數(shù),date必須是用花括號標(biāo)注的嵌套的3個整數(shù)。選項A中,{1001}和{1002}都不是整數(shù),所以選項A錯誤。故本題答案為A選項。

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

12.C解析:數(shù)據(jù)庫是數(shù)據(jù)的集合,其中的數(shù)據(jù)是按數(shù)據(jù)所提供的數(shù)據(jù)模式存放的,它能構(gòu)造復(fù)雜的數(shù)據(jù)結(jié)構(gòu),以建立數(shù)據(jù)之間的內(nèi)在聯(lián)系與復(fù)雜的關(guān)系。

13.C在C語言中,可以用一個標(biāo)識符來表示一個常量,稱之為符號常量。符號常量在使用之前必須先定義,其一般形式為:#define標(biāo)識符常量。

14.B本題是對基本知識點的理解,預(yù)處理命令行的位置沒有規(guī)定,只是習(xí)慣寫在起始位置而已,當(dāng)需要時才用#include<stdio.h>頭文件,預(yù)處理的作用就是實現(xiàn)宏定義和條件編譯。

15.B解析:變量b和c中分別存放字符a和A的ASCII碼,當(dāng)i的值對2求余非零時輸出ASCII碼為i+b)的字符;當(dāng)i的值對2求余為零時輸出ASCII碼為i+c的字符。分析程序可知本題選B。

16.D

17.A本題考查函數(shù)值的類型。在函數(shù)調(diào)用時,盡管Y的類型是float.x的類型是double,但是因為函數(shù)定義時沒有指定類型說明,系統(tǒng)默認(rèn)函數(shù)值的類型為int型,所以計算后Y的類型是int型。

18.C解析:軟件系統(tǒng)結(jié)構(gòu)的總體設(shè)計包括:基于功能層次結(jié)構(gòu)建立系統(tǒng)、按功能劃分成模塊的層次結(jié)構(gòu)、確定每個模塊的功能、建立與已確定的軟件需求的對應(yīng)關(guān)系、確定模塊間的調(diào)用關(guān)系和模塊間的接口、評估模塊劃分的質(zhì)量等方面。詳細(xì)設(shè)計的任務(wù)是:在使用程序設(shè)計語言編制程序以前,對所采用算法的邏輯關(guān)系進(jìn)行分析,設(shè)計出全部必要的過程細(xì)節(jié),并給予清晰的表達(dá)。需求分析是指用戶對目標(biāo)軟件系統(tǒng)在功能、行為、性能、設(shè)計約束等方面的期望。需求分析的任務(wù)是發(fā)現(xiàn)需求、求精、建模和定義需求,通常包括:功能需求、性能需求、環(huán)境需求、可靠性需求、安全保密要求、用戶界面需求、資源使用需求、成本消耗需求、開發(fā)進(jìn)度需求等。編程調(diào)試的任務(wù)是診斷和改正程序中潛在的錯誤。綜上所述。軟件功能分解只能發(fā)生在總體設(shè)計階段。

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

20.C

21.123ok!123ok!解析:本題主要考查了printf函數(shù)用在了宏替換中。宏替換不是函數(shù)調(diào)用,只是一種簡單的字符替代。所以本題中PRINT(a+i)展開為:printf(“%d\\t”,(int)(a+i)),當(dāng)i=0時,輸出1;當(dāng)i=1時,輸出2;當(dāng)i=2時;輸出3;for循環(huán)結(jié)束后輸出ok!。

22.1515解析:在函數(shù)fun(intx)中定義了局部靜態(tài)整形變量t,并初始化為0。這個函數(shù)的返回值為t+x。所以在主函數(shù)的for循環(huán)中,5次連續(xù)調(diào)用fun(i),實現(xiàn)了從1到5連續(xù)數(shù)字的相加運(yùn)算。因而最后結(jié)果等于15。

23.軟件開發(fā)軟件開發(fā)解析:軟件生命周期分為3個時期共8個階段:軟件定義期(問題定義、可行性研究和需求分析)、軟件開發(fā)期(系統(tǒng)設(shè)計、詳細(xì)設(shè)計、編碼和測試)、軟件維護(hù)期(即運(yùn)行維護(hù)階段)。

24.測試實例測試實例解析:進(jìn)行軟件測試時,應(yīng)精心設(shè)計測試實例和選擇測試數(shù)據(jù),以對系統(tǒng)進(jìn)行全面測試。

25.159261037114812159\r\n2610\r\n3711\r\n4812解析:程序的功能是將一個二維數(shù)組的行和列元素互換,存到另一個二維數(shù)組中。

26.類類解析:在面向?qū)ο蠓椒ㄖ校惷枋龅氖蔷哂邢嗨茖傩耘c操作的一組對象。

27.1111解析:程序中結(jié)構(gòu)體數(shù)組data首地址(即&data[0])賦值給結(jié)構(gòu)體指針變量p,++(P->x)表示先將p所指向的結(jié)構(gòu)體變量的成員x值加1,然后將此x(即data[0].x)輸出。

28.111,1解析:POWER(i++)中先引用i的值1,再將i的值加1,POWER(i++)=1*1=1。

29.3131解析:在函數(shù)調(diào)用時,形參值和改變,不會改變實參的值。

30.ex或structstex或structst

31.b=i+1b=i+1解析:本題考查了for循環(huán)語句的執(zhí)行過程。i+=2是修正表達(dá)式,執(zhí)行一次循環(huán)體后i的值就增加2,i的初始值為0,每次加2之后和累加至a,所以a的值就是1~10之間的偶數(shù)之后;b的值是1~11之間的奇數(shù)和,但在輸出b值時c去掉多加的11,即為1~10之間的奇數(shù)之和。

32.morningclassmorningclass解析:本題考查了兩個知識點:①“++、--”運(yùn)算后綴形式是先使用變量原來的值,使用完后再使其增1或減1;②在switch語句中,當(dāng)n=\'c\'時,執(zhí)行“case\'c\':”,輸出morning;因為此句中沒有break語句,因此接著執(zhí)行'case\'d\':”,輸出class,最終輸出結(jié)果為morningclass。

33.77解析:此表達(dá)式為三目運(yùn)算符,++a的值為6,b--的值為6,則整個表達(dá)式的值為++a的值,++a的值為7。請注意前綴++,--和后綴++,--的區(qū)別。

34.順序結(jié)構(gòu)順序結(jié)構(gòu)解析:結(jié)構(gòu)化程序有3種摹本結(jié)構(gòu),即順序結(jié)構(gòu)、選擇結(jié)構(gòu)(包括if語句和switch語句)和循環(huán)結(jié)構(gòu)(包括for語句、while語句、do…while語句)。

35.E-R圖E-R圖解析:E-R圖是設(shè)計概念模型的有力工具。

36.4

37.對象對象解析:將屬性、操作相似的對象歸為類,也就是說,類是具有共同屬性、共同方法的對象的集合。

38.封裝封裝

39.對象具有5個基本特點:①標(biāo)識唯一性;②分類性;③多態(tài)性;④封裝性;⑤模塊獨立性好。其中,封裝性是指從外面看只能看到對象的外部特征,對象的內(nèi)部特征即處理能力的實行和內(nèi)部狀態(tài),對外是不可見的,對象的內(nèi)部狀態(tài)只能由其自身改變。\r\n\r\n

40.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(bǔ)[i][j]的值加到變量s中。所以本程序段的功能是把每行值為0的元素前面的所有大于。的元素值加到變量s中。

41.A解析:auto變量:無static聲明的局部變量。用auto作存儲類別的聲明時,可以不寫auto,存儲類別隱含確定為auto(自動存儲類別),是動態(tài)存儲方式。大多數(shù)變量是自動變量。用static聲明的局部變量是靜態(tài)局部變量。函數(shù)調(diào)用結(jié)束后靜態(tài)局部變量占據(jù)的內(nèi)存存儲單元空間不釋放,局部變量保留原值,下次調(diào)用時可以繼續(xù)使用該值。用extern聲明外部變量,外部變量即全局變量,可以用extern聲明來改變?nèi)肿兞康淖饔糜?實際上,關(guān)鍵字'auto'可以省略,auto不寫則隱含確定為'自動存儲類別',屬于動態(tài)存儲方式。

42.D解析:函數(shù)聲明可以照寫已定義的函數(shù)的首部,再加一個號就成為了對函數(shù)的聲明,在函數(shù)聲明中也可以不寫形參名,而只寫形參的類型,但要保證與函數(shù)首部寫法上的—致,即函數(shù)類型、函數(shù)名、參數(shù)個數(shù)、參數(shù)類型和參數(shù)順序相同。字符數(shù)組可用指針來表示,所以選頂D正確。

43.B

44.B解析:本題考查break語句和continue語句。程序要輸出循環(huán)結(jié)束時循環(huán)變量a的值,執(zhí)行第一次循環(huán)時,條件(b%3==1)為真,b=4,繼續(xù)下一次循環(huán),如此反復(fù),當(dāng)b=22時,條件(b>=20)為真,跳出循環(huán),此時共循環(huán)8次,即a=8。

45.C解析:由題目的已知條件可知,Pt指向結(jié)構(gòu)體數(shù)組c[2]的第一元素c[O],所以pt->x=10,執(zhí)行自加運(yùn)算后為11。

46.A解析:選項A將變量x的地址賦紿指針變量pb,使pb指向x‘選項B是烙x的值當(dāng)作地址賦給指針pb,pb指向一個地址等于x值的內(nèi)存單元;選項c將x的地址賦給指針pb指向的地址等于x的內(nèi)存單元。

47.A

48.C解析:帶參數(shù)的宏展開是在編譯時進(jìn)行的,是一種純粹文字性的替換過程。本題定義了一個帶參數(shù)宏#defineARE(x)PI*x*x,在printf()函數(shù)中使用了這個宏,展開過程為:ARE(r+1)=>PI*r+1*r+1=>3.1415*r+1*r+1,其結(jié)果為3.1415*2+1*2+1=6.283+2+1=9.283,由于輸出格式限定為兩位小數(shù),故輸出結(jié)果為9.28,應(yīng)該選擇C。

49.B解析:sizeof(char)是一個C語言的關(guān)鍵字,它不是函數(shù)調(diào)用。sizeof的功能是計算出運(yùn)算對象在計算機(jī)的內(nèi)存中所占用的字節(jié)數(shù)量,該表達(dá)式的返回值是一個整數(shù),而不是一個字符型表達(dá)式。

50.C解析:在復(fù)合賦值語句中,應(yīng)該由右向左依次賦值,在表達(dá)式中,右端由i*=k得i=2*2為4,k=k+i,即k值為6,m=k故m=6。

51.A

52.C解析:y的初值為-1,第一個if語句的判斷條件為x!=0,即當(dāng)x!=0時y的值變化,x=0時y的值不變,仍為-1。第二個if語句的判斷條件為x>O,如果x>0則y=1,否則y=0,即x<O時,y=O。4個選項中C符合題意。

53.B

54.A解析:程序以“只寫”方式打開一個名為test.txt的文件,并向該文件寫入指針變量s1指向的7個字符'Fortran',執(zhí)行fseek函數(shù),使文件位置指針移到文件的開頭,再次向文件輸入指針變量s2指向的5個字符'Basic'這時系統(tǒng)會覆蓋原有的內(nèi)容'Fortr',所以最后test.txt里的內(nèi)容為:Basican。

55.C解析:本題考查.do…while循環(huán)。在do…while循環(huán)中,當(dāng)表達(dá)式的值為非零(真)時,執(zhí)行循環(huán),不能與其等價的是為零的表達(dá)式,即(exp==0)。

56.B解析:本題中有一個陷阱,很多考生會根據(jù)程序的書寫格式來判斷:while循環(huán)的循環(huán)體為printf('y=%d\\n',y);語句。其實while的循環(huán)體是一條空語句,即y--后面的那個分號就是while的循環(huán)體。所以本題只要弄清楚表達(dá)式y(tǒng)--何時為“假”,即等于0,就能得出結(jié)果了。因為--運(yùn)算符是后綴形式,所以表達(dá)式y(tǒng)--的值是y自減之前的值,即y等于。時,表達(dá)式y(tǒng)--就等于0了。但此時的y還要被減1,所以循環(huán)結(jié)束后,y的值為-1。故應(yīng)該選擇B。

57.D解析:選項A)在C語言中是一個合法的關(guān)系表達(dá)式,但它并不代表數(shù)學(xué)式o<=x<100。計算0<=x<100時,從左到右結(jié)合,先計算0<=x,其結(jié)果只能是0或1,然后再比較0<100或1<100。根據(jù)運(yùn)算符的優(yōu)先級,選項B)先判斷j==0是否成立,其結(jié)果只能是0或1,然后再將0或1賦給i。選項C)中,(char)(65+3)為類型強(qiáng)制轉(zhuǎn)換,將整數(shù)型數(shù)據(jù)轉(zhuǎn)換為字符型。選項D)是將一個數(shù)據(jù)賦給一個表達(dá)式,等號左邊不合要求,所以錯誤。

58.B解析:本題考查while語句的使用。本題考查邏輯非運(yùn)算符和不等于運(yùn)算符的區(qū)別,邏輯非運(yùn)算符'!'的優(yōu)先級大于不等于運(yùn)算符'!='的優(yōu)先級。

59.D解析:“&”是求址運(yùn)算符,“*”是指變量說明符。選項A)、B)應(yīng)改為scanf('%d',p);選項C)中指針變量p未指向一確定的內(nèi)存單元,不能為其賦值,并且這樣做很危險,建議不使用。

60.D

61.A

62.B局部變量的作用域僅局限于函數(shù)體內(nèi)。不能在函數(shù)之間進(jìn)行數(shù)據(jù)傳遞。

63.C線性結(jié)構(gòu)滿足兩個條件:有且只有一個根結(jié)點;每個節(jié)點最多只有一個前件,也最多只有一個后件。棧、隊列、線性表都屬于線性結(jié)構(gòu),二叉樹是一種非線性結(jié)構(gòu),因為它除葉子節(jié)點外,每個節(jié)點都有兩個后件,不滿足線性結(jié)構(gòu)的條件。

64.C調(diào)用函數(shù)fun(7)時,由于x的值為7,執(zhí)行語句“p=x-fun(x-2);”,相當(dāng)于執(zhí)行p=7-fun(5);

調(diào)用函數(shù)fun(5)時,由于x的值為5,執(zhí)行語句“p=x-fun(x-2);”,相當(dāng)于執(zhí)行p=7-fun(3);

調(diào)用函數(shù)fun(3)時,由于x的值為3,執(zhí)行語句“p=x-fun(x-2);”,相當(dāng)于執(zhí)行p=7-fun(1);

調(diào)用函數(shù)fun(1)時,由于X的值為1,執(zhí)行語句“return(3);”,函數(shù)的返回值為3。

因此函數(shù)調(diào)用fun(7)等價于7-(5-fun(3)),即7-(5-(3-fun(1))),即7-(5-(3-3)),所以函數(shù)fun(7)的返回值為2。答案為C。

65.Cx為數(shù)組x[N]的首地址也就等于&x[0];A中i都為0則只對X[0]賦值,B對數(shù)組第二位賦值;D從數(shù)組第二位開始賦值;故選c。

66.D

67.By=(x=)071:x<0?-1:0)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論