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頁,還剩122頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021-2022年湖南省邵陽市全國計算機等級考試C語言程序設(shè)計學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.有以下程序:

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

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

2.有以下程序:#include<stdio.h>doublef(doublex);main(){doublea=0;inti;for(i=0;i<30;i+=10)a+=f((double)i);printf("%5.of\n",a);}doublef(doublex){returnx*x+1;}程序運行后的輸出結(jié)果是()。A.503B.401C.500D.1404

3.s1和s2已正確定義并分別指向兩個字符串。若要求:當(dāng)s1所指串大于s2所指串時,執(zhí)行語句s;則以下選項中正確的是()。

A.if(s1>s2)S;

B.if(strcmp(s1,s2))S;

C.if(strcmp(s2,sl)>O)S;

D.if(stremp(s1,s2)>O)S;

4.下列程序的輸出結(jié)果是______。main(){charch[2][5]={"6937","8254"},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>'\0';j+=2)s=10*s+p[i][j]-'0';printf("%d\n",s);}

A.69825B.63825C.6385D.693825

5.下列程序段的時間復(fù)雜度為()。A.O(i+j)B.O(n)C.O(n2)D.O(i*j)

6.一個棧的入棧序列是a,b,c,d,e,f,則棧的不可能的輸出序列為()

A.fedcbB.defbcC.defcbD.abcdef

7.寫出a*(b-c*d)+e-f/g*(h+i*j-k)的逆波蘭表達式()。

A.a(b-c*d)*+e-(f/g(h+i*j-k)*)

B.a(b-(cd*))*+e-(fg/(h+ij*-k)*)

C.a(bcd*-)*+e-(fg/hij*+k-*)

D.abcd*-*e+fg/hij*+k-*-

8.以下選項中不能作為C語言合法常量的是()

A.0.1e+6B.‘cd’C.“\a”D.‘\011’

9.若有定義語句:char*s1="OK",*s2="ok";,以下選項中,能夠輸出"OK"的語句是A.A.if(strcmp(s1,s2)==0)puts(s1);

B.if(strcmp(s1,s2)!=0)puts(s2);

C.if(strcmp(s1,s2)==1)puts(s1);

D.if(strcmp(s1,s2)!=0)puts(s1);

10.有以下程序voidf(intx,inty){intt;if(x<y){t=x;x=Y;y=t;)}main{inta=4,b=3,c=5;f(a,b);f(a,c);f(b,c);printf("%d,%d,%d\n",a,b,c);}執(zhí)行后輸出結(jié)果是()。A.3,4,5B.5,3,4C.5,4,3D.4,3,5

11.檢查軟件產(chǎn)品是否符合需求定義的過程稱為______。

A.確認測試B.集成測試C.驗證測試D.驗收測試

12.

13.下列對于軟件測試的描述中正確的是()。

A.軟件測試的目的是證明程序是否正確

B.軟件測試的目的是使程序運行結(jié)果正確

C.軟件測試的目的是盡可能多地發(fā)現(xiàn)程序中的錯誤

D.軟件測試的目的是使程序符合結(jié)構(gòu)化原則

14.有以下程序:#include<stdio.h>main(){inti,data;scanf(“%d”,&data);for(i=0;i<8;i++){if(i<=data)continue;printf(“%d,”,i);}}程序運行時輸入5并按〈Enter〉鍵,則程序輸出結(jié)果為()。

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

15.當(dāng)n=5時,函數(shù)輸出為()A.5B.11C.29D.10

16.在下面的字符數(shù)組定義中,哪一個有語法錯誤()。A.chara[20]=”abcdefg”;

B.chara[]=”x+y=55.”;

C.chara[15];

D.chara[10]=’5’;

17.下列程序的輸出結(jié)果是()。#include<stdio.h>main{structst{inty,x,z;};union{longi;intj;chark;}un;printf("%d,%d\n",sizeof(structst),sizeof(un))}A.6,2B.6,4C.8,4D.8,6

18.已知a,b均被定義為double型,則表達式:b=1,a=b+5/2的值為()。

A.1B.3C.3.0D.3.5

19.下列程序的輸出結(jié)果是()。#include<stdio.h>main{inta=0,i;for(i=1;i<5;i++){switch(i){case0:case3:a+=1;case1;case2:a+=2;default:a+=3;}}printf("%d",a);}A.19B.1C.6D.8

20.檢查軟件產(chǎn)品是否符合需求定義的過程稱為()。

A.確認測試B.集成測試C.驗證測試D.驗收測試

二、2.填空題(20題)21.數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括5個部分,即數(shù)據(jù)項、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、______和處理過程。

22.結(jié)構(gòu)化分析方法是面向______進行分析的方法。

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

main()

{staticchara[]="language",b[]="program";

char*ptrl=a,*ptr2=b;

intk

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

if(*(ptrl+k)==*(ptr2+k))

printf("%c",*(ptr1+k));}

24.以下程序的功能是:從低位開始取出長整型變量s中奇數(shù)位上的數(shù),依次構(gòu)成一個新數(shù)放在t中。高位仍在高位,低位仍在低位。請?zhí)羁铡?include<stdio.h>main(){longs,t,s1=10;pfintf("\n.Pleaseenters:");scanf("%1d",&s);t=s%10;while(s>0){s=s/100;t=();s1=s1*10;}printf("Theresultis:%1d\n",t);}

25.下面程序的輸出結(jié)果是()。

main()

{inti=0,a=0;

while(i<20)

{for(;;)

{if((i%10)==0)break;

elsei--;}

i+=11;

a+=i;

}

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

}

26.設(shè)有以下定義

stnctss

{intinfo;sEruc5ss*link;}x.y,z;

且已建立如下圖所示鏈表結(jié)構(gòu):

請寫出刪除結(jié)點y的賦值語句______。

27.有以下語句段:

intn1=10,n2=20;

printf("【】",n1,n2);

要求按以下格式輸出n1和n2的值:

n1=10

n2=20

每個輸出行從第一列開始,請?zhí)羁铡?/p>

28.在數(shù)據(jù)庫理論中,數(shù)據(jù)庫總體邏輯結(jié)構(gòu)的改變,如修改數(shù)據(jù)模式、增加新的數(shù)據(jù)類型、改變數(shù)據(jù)間聯(lián)系等,不需要相應(yīng)修改應(yīng)用程序,稱為______。

29.在面向?qū)ο蠓椒ㄖ?,【】描述的是具有相似屬性與操作的一組對象。

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

#include<stdio.h>

main()

{staiccharb[]="Goodbye";

char*chp=&b[7];

while(--chp>=&b[0])putchar(*chp);

printf("\n");

}

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

main()

{inta[]={31,27,20,12,6,1),*p=a;

p++;

printf("%d\n",*(p+2));

}

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

voidfun()

{

staticinta=0;

a+=2;printf("%d",A);

}

main()

{intcc;

for(cc=1;cc<4,cc++)fun();

printf("\n");

}

33.以下程序的功能是:處理由學(xué)號和成績組成的學(xué)生記錄,N名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組s中,它的功能是:把分數(shù)最高的學(xué)生數(shù)據(jù)放在h所指的數(shù)組中,注意:分數(shù)高的學(xué)生可能不只一個,函數(shù)返回分數(shù)最高學(xué)生的人數(shù)。請?zhí)羁铡?/p>

#include<stdio.h>

#defineN16

typedefstruct

{charnum[10];

ints;

}STREC;

intfun(STREC*a,STREC*b)

{inti,j=0,max=a[0].s;

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

if(max<a[i].s)max=a[i].s;

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

if(【】)b[j++]=a[i];

returnj;

}

main()

{STRECs[N]={{"GA005",85},{"GA003",76},{"GA002",69},{"GA004",85},

{"GA001",91},{"GA007",72},{"GA008",64},{"GA006",87},

{"GA015",85},{"GA013",91},{"GA012",64},{"GA014",91},

{"GA011",66},{"GA017",64},{"GA018",64},{"GA016",72}

};

STRECh[N];

inti,n;FILE*out;

n=fun(s,h);

printf("The%dhighestscore;\n",n);

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

printf("%s%4d\n",h[i].num,h[i].s);

printf("\n");

out=fopen("out15.dat","w");

fprintf(out,"%d\n",n);

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

fprintf(out,"%4d\n",h[i].s);

fclose(out);

}

34.下面程序的功能是根據(jù)公式e=1+1/1!+1/2!+1/3!+1/4!+...計算e的近似值,精度要求為10-5。請?zhí)羁铡?/p>

main()

{intn;

doublee=1.0,t=1.0;

for(n=1;【】n++);

{【】e+=t;}

printf("%f\n",e);}

35.對于軟件測試,從是否需要執(zhí)行被測軟件的角度,可以分為靜態(tài)測試和動態(tài)測試。代碼檢查屬于______測試。

36.以下程序調(diào)用invert函數(shù)按逆序重新放置a數(shù)組元素的值。a數(shù)組中的值在main函數(shù)中讀入。

#include<stdio.h>

#defineN10

invert(s,i,j)

int*s,i,j;

{intt;

if(i<j)

{t=*(s+i);

*(s+i)=(s+j);

*(s+j)=t;

invert(s,【】,j-1);

}

}

main()

{

inta[N],i;

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

invert(a,0,N-1);

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

printf("\n")

}

37.一般來說,數(shù)據(jù)庫的設(shè)計過程要經(jīng)歷3個大的階段,即可行性分析與研究階段、系統(tǒng)設(shè)計階段、設(shè)計實施與系統(tǒng)運行階段。概念設(shè)計、邏輯結(jié)構(gòu)設(shè)計、物理結(jié)構(gòu)設(shè)計屬于數(shù)據(jù)庫設(shè)計的【】階段。

38.有以下程序

intfa(intx){returnx*x;}

intfb(intx){returnx*x*x;}

intf(int(*fl)(),int(*f2)(),intx}

{returnf2(x)-f1(x);}

main()

{inti;i=f(fa,fb,2);printf("%d\n",i);}

程序運行后,輸出結(jié)果是【】。

39.下列程序的字符串中各單詞之間有一個空格,則程序的輸出結(jié)果是【】。

#include<stdio.h>

#include<string.h>

main()

{charstr1[]="Howdoyoudo",*p1=str1;

strcpy(str1+strlen(str1)/2,"esshe");

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

}

40.若下面程序的輸出結(jié)果是4,請?zhí)羁铡?/p>

main()

{inti,j,k;

k=0;i=j=【】;

k+=-(i+j);printf("%d\n",k);

}

三、1.選擇題(20題)41.下面的關(guān)鍵字中,不能夠從循環(huán)體中跳到循環(huán)體外的是______。

A.gotoB.breakC.returnD.continue

42.已知year為整型變量,不能使表達式(year%4==0&&year%100!=O)||year%400==0的值為“真”的數(shù)據(jù)是______。

A.1990B.1992C.1996D.2000

43.結(jié)構(gòu)化程序由三種基本結(jié)構(gòu)組成,三種基本的結(jié)構(gòu)組成的算法

A.可以完成任何復(fù)雜的任務(wù)B.只能完成部分復(fù)雜的任務(wù)C.只能完成符合結(jié)構(gòu)化的任務(wù)D.只能完成些簡單的仟務(wù)

44.假定建立了以下鏈表結(jié)構(gòu),指針p、q分別指向如圖所示的結(jié)點,則以下可以將q所指結(jié)點從鏈表中刪除并釋放該結(jié)點的語句組是()

A.free(q);p->Next=q->next;

B.(*p).next=(*q).nexy;free(q);

C.q=(*q).next;(*p).next=q;free(q);

D.q=q->next;p->next=q;p=p->next;free(p);

45.有以下程序:main(){inty=1,x=2,z=3;printf("%d,%d\n",(++x,y++),z+2);}執(zhí)行后的輸出結(jié)果是()。

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

46.算法具有五個特性,以下選項中不屬于算法特性的是_____。A.有窮性B.簡潔性C.可行性D.確定性

47.下列程序的運行結(jié)果是()。#include<stdio.h>#defineADD(x)x+xmain(){intm=1,n=2,k=3;ints=ADD(m+n)*k;printf("s=%d",s);}

A.sum=18B.sum=10C.sum=9D.sum=25

48.下列關(guān)于E-R圖的描述中正確的是()。

A.E-R圖只能表示實體之間的聯(lián)系

B.E-R圖只能表示實體和屬性之間的聯(lián)系

C.E-R圖只能表示實體和屬性

D.E-R圖能表示實體、屬性和實體之間的聯(lián)系

49.下列數(shù)據(jù)模型中,具有堅實理論基礎(chǔ)的是()。

A.層次模型B.網(wǎng)狀模型C.關(guān)系模型D.以上3個都是

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

A.C語言的源程序不必通過編譯就可以直接運行

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

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

D.C語言中的函數(shù)不可以單獨進行編譯

51.若有函數(shù)max(a、b),為了讓函數(shù)指針變量p指向函數(shù)max,當(dāng)調(diào)用該函數(shù)時,正確的賦值方法是

A.(*p)max(a,b)B.*pmax(a,b)C.p=max(a,b)D.*p=max(a,b)

52.相對于數(shù)據(jù)庫系統(tǒng),文件系統(tǒng)的主要缺陷有數(shù)據(jù)關(guān)聯(lián)差、數(shù)據(jù)不一致性和()。

A.可重用性差B.安全性差C.非持久性D.冗余性

53.以下程序的輸出結(jié)果是#include<stdio.h>main(){unionun{inti;longk;charc;};structbyte{inta;longb;unionunc;}r;printf("%d\n",sizeof(r));}

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

54.有以下程序:mam(){chars[]="ABCD",*p;for(p=s+1;p<s+4;p++)printf("%s\n",p);}程序運行后的輸出結(jié)果是()。

A.ABCDBCDDB.ABCDC.BCDD.BCDCDD

55.以下能正確定義且賦初值的語句是______。

A.iht=n1=n2=10;

B.charc=32;

C.floatf=f+1.1;

D.doublex=12.3E2.5

56.下面程序段的輸出為#include"stdio.h"main(){printf("%d\n",12<<2);}

A.0B.47C.48D.24

57.

對兩個數(shù)組a和b進行下列初始化:

charm[]="1234567";

charn[]={1,2,3,4,5,6,7};

則下列敘述正確的是()。

A.數(shù)組m與數(shù)組n完全相同B.數(shù)組m與數(shù)組n長度相同C.數(shù)組m比數(shù)組n長1D.數(shù)組m與數(shù)組n中都存放字符串

58.下面函數(shù)的功能是______。exchange(int*ptr1,*ptr2){int*ptr;ptr=-ptr1;ptr1=ptr2;ptr2=ptr;}

A.交換*ptr1和*ptr2的值

B.無法改變*ptr1和*ptr2的值

C.可能造成系統(tǒng)故障,因為使用了空指針

D.交換*ptr1和*pb2的地址

59.下列苯于C語言數(shù)據(jù)文件的敘述中正確的是()。

A.文件由ASCII碼字符序列組成,C語言只能讀寫文本文件

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

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

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

60.下列程序中的for循環(huán)執(zhí)行的次數(shù)是______。#defineN2#defineMN+1#defineNUM2*M+1#main(){inti;for(i=1;i<=NUM;i++)printf("%d\n",i);}

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

四、選擇題(20題)61.軟件設(shè)計包括軟件的結(jié)構(gòu)、數(shù)據(jù)接口和過程設(shè)計,其中軟件的過程設(shè)計是指()

A.模塊間的關(guān)系B.系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換成軟件的過程描述C.軟件層次結(jié)構(gòu)D.軟件開發(fā)過程

62.

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

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

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

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

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

64.若有定義語句:

65.以下敘述中正確的是()。A.A.break語句只能用在循環(huán)體內(nèi)和switch’語句體內(nèi)

B.continue語句的作用是:使程序的執(zhí)行流程跳出包含它的所有循環(huán)

C.在循環(huán)體內(nèi)使用break語句和continue語句的作用相同

D.break語句只能用于switch語句體中

66.

67.

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

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

B.1,2,3,4,10,12,14,16,9,10,

C.1,2,6,8,10,12,7,8,9,10,

D.1,2,6,8,10,12,14,16,9,10,

69.有以下程序段:

為使程序段不陷入死循環(huán),從鍵盤鍵入的數(shù)據(jù)應(yīng)該是()。

A.任意正奇數(shù)B.任意負偶數(shù)C.任意正偶數(shù)D.任意負奇數(shù)

70.程序調(diào)試的目的是

A.發(fā)現(xiàn)程序中的錯誤B.改正程序中的錯誤C.驗證程序的正確性D.改善軟件的性能

71.

72.

73.一棵二叉樹共有25個結(jié)點,其中5個是葉子結(jié)點,則度為l的結(jié)點數(shù)為()。

A.16B.10C.6D.4

74.有以下函數(shù)定義:

voidfun(intn,doublex){……}

若以下選項中的變量都已正確定義并賦值,則對函數(shù)fun正確調(diào)用的語句是

A.fun(inty,doublem);B.k=fun(10,12.5);

C.fun(x,n);D.voidfun(n,x);

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

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

76.數(shù)據(jù)庫的故障恢復(fù)一般是由

A.?dāng)?shù)據(jù)流圖完成的B.?dāng)?shù)據(jù)字典完成的C.DBA完成的D.PAD圖完成

77.程序運行后的輸出結(jié)果是()。A.Qian,f,350,Sun,f,350

B.Qiamf,350,Qian,f,350

C.Qian,f,350,Sun,m,370

D.Zha0,m,290,Sun,m,370

78.

79.非空循環(huán)鏈表所表示的數(shù)據(jù)結(jié)構(gòu)()。

A.有根結(jié)點也有葉子結(jié)點B.沒有根結(jié)點但有葉子結(jié)點C.有根結(jié)點但沒有葉子結(jié)點D.沒有根結(jié)點也沒有葉子結(jié)點

80.若i、j已定義成mt型,則下列程序段中內(nèi)循環(huán)體的總執(zhí)行次數(shù)是()。for(i=6;i>0;i--)for(j=0;j<4;j++){…}A.20B.24C.25D.30

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:根據(jù)以下公式求π的值,并作為函數(shù)值返回。例如,給指定精度的變量eps輸人0.0001時,應(yīng)當(dāng)輸出Pi=3.141358。π/2=1+t/3+1/3*e/5+1/3*2/5*3/7+1/3*2/5*3/7*4/9……請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:,

六、程序設(shè)計題(1題)82.某學(xué)生的記錄由學(xué)號、8門課程成績和平均分組成,學(xué)號和8門課程的成績已在主函數(shù)中給出,請編寫函數(shù),其功能是:求出該學(xué)生的平均分,并放入記錄的ave成員中。例如,學(xué)生的成績是:85.5,76,69.5,85,91,72,64.5,87.5,則他的平均分應(yīng)為78.875。注意:部分源程序給出如下。請勿改動main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun部位中填入你編寫的若干語句。試題程序:#include<stdio.h>#defineN8typedefstruct{charnum[10];doubles[N];doubleave;}STREC;voldfun(STREC*a){}voidmainSTRECs={"GA005",85.5,76,69.5,85,91,72,64.5,87.5};inti;fun(&s);printf("The%ssstudentdata:\n",s.num);for(i=0;i<N;i++)printf("%4.1fkn",s.s[i]);printf("\nknave=%7.3fkn",s.aVe);printf("\n");}

參考答案

1.D調(diào)用f(a,b)函數(shù)返回3,調(diào)用f(a,c)函數(shù)返回6,所以外層調(diào)用f(f(a,b),f(a,c));即調(diào)用f(3,6)函數(shù)返回9。

2.A此題是一個簡單的函數(shù)調(diào)用,當(dāng)i=0并且i<30,執(zhí)行i+=10,并且調(diào)用函數(shù)f,所以當(dāng)i=0時,結(jié)果為1,當(dāng)i=10時,結(jié)果為101,當(dāng)i=20時,結(jié)果為401,所以a=1+101+401=503。

3.D在C語言中,不能直接比較兩個字符串的大小,必須用特定的函數(shù)來完成,選項A錯誤;選項B不管大于還是小于都執(zhí)行S,不符合題意;選項C正好相反,當(dāng)s2大于s1時,執(zhí)行語句S,可知選項D正確。

4.C

5.C

6.B

7.D

8.B字符串常量應(yīng)該用雙引號標注,即“cd”,單引號標注的單個字符表示字符常量,所以B選項中的表示方法錯誤。故本題答案為B選項。

9.D解析:strcmp(s1,s2)的作用是比較字符串s1和s2。參數(shù)str1,str2如果相同,則返回0,如果str1大于str2則返回一個正整數(shù),如果str1小于str2則返回一個負整數(shù)。本題中s1,s2不相同,A)選項不會輸出任何字符,B)選項輸出ok,C)選項不輸出任何字符,D)選項會輸出OK。

10.Da、b、C都是按值傳遞給函數(shù)f,函數(shù)f不能改變它們的值。所以,a、b、t的值仍然是4、3、5。

11.A本題主要考查軟件測試的基本知識。軟件測試的步驟可分為單元測試(模塊測試)、集成測試、確認測試和系統(tǒng)測試。

(1)單元測試是針對每個模塊進行的測試,它可從程序的內(nèi)部結(jié)構(gòu)出發(fā)設(shè)計測試用例,多個模塊可以平行、對立地測試。單元測試主要用于發(fā)現(xiàn)詳細設(shè)計和編程時犯下的錯誤。單元測試多采用白盒測試,輔之以黑盒測試。

(2)集成測試是在單元測試的基礎(chǔ)上,根據(jù)模塊結(jié)構(gòu)圖將各個模塊連接起來,必須精心計劃,應(yīng)提交集成測試計劃、集成測試規(guī)格說明和集成測試分析報告。主要目標是發(fā)現(xiàn)與接口有關(guān)的問題。集成測試可以發(fā)現(xiàn)概要設(shè)計時犯的錯誤。

(3)確認測試用于驗證軟件的功能和性能及其他特性是否與用戶的要求一致。確認測試主要用于發(fā)現(xiàn)需求分析時犯下的錯誤,一般使用黑盒法測試,以表明軟件符合需求說明書的要求,應(yīng)該仔細設(shè)計測試用例和測試過程。確認測試必須有用戶參加,或以用戶為主,用戶應(yīng)參與設(shè)計測試用例,通常情況下,主要使用生產(chǎn)中的實際數(shù)據(jù)進行測試,測試數(shù)據(jù)通過用戶接口輸入。

(4)系統(tǒng)測試是將已經(jīng)通過確認測試的軟件,作為整個計算機系統(tǒng)的元素與計算機硬件、外設(shè)和網(wǎng)絡(luò)等其他因素結(jié)合在一起,進行一系列的組裝測試和確認測試。系統(tǒng)測試的目的是通過與系統(tǒng)的需求定義做比較,發(fā)現(xiàn)軟件與系統(tǒng)的定義不符合的地方。系統(tǒng)測試可以發(fā)現(xiàn)問題定義時犯下的錯誤。

12.B

13.C解析:關(guān)于軟件測試的目的,GrenfordJ.Myers在《TheArtofSoftwareTesting》一書中給出了深刻的闡述:軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程;一個好的測試用例是指很可能找到迄今為止尚未發(fā)現(xiàn)的錯誤的用例;一個成功的測試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯誤的測試。整體來說,軟件測試的目的就是盡可能多地發(fā)現(xiàn)程序中的錯誤。本題答案為C。

14.Cmain函數(shù)首先定義一個整型變量data,使用scanf函數(shù)輸入一個整數(shù)賦給data。接著執(zhí)行for循環(huán),i的值為0~7。當(dāng)i的值不大于data的值時,使用continue語句跳過當(dāng)前循環(huán),進入下一輪循環(huán)。若從鍵盤輸入5,data的值為5,i取值為0~5時,都不執(zhí)行printf語句。當(dāng)i取值為6、7時,執(zhí)行printf語句,輸出6,7。故本題答案為C選項。

15.C

16.D

17.B本題主要考查結(jié)構(gòu)和聯(lián)合內(nèi)存使用的一些區(qū)別:結(jié)構(gòu)中每個成員相互獨立,一個結(jié)構(gòu)所占內(nèi)存空間的大小是結(jié)構(gòu)中每個成員所占內(nèi)存空間大小的總和;聯(lián)合所占用內(nèi)存空間是指最長的成員占用的空間。

18.D

19.A本題考查switch語句。當(dāng)i一1時,執(zhí)行case1,因為沒有遇到break語句,所以依次往下運行,“a=a+2=2,a=a+3=5”;當(dāng)i=2時,執(zhí)行case2,因為沒有遇到break語句,所以依次往下執(zhí)行,“a=a+2=7,a=a+3=10”;當(dāng)i=3時,執(zhí)行case3,a=a+1=11,因為沒有遇到break語句,所以依次往下運行,a—a+2—13,a—a+3一l6:當(dāng)i=4時,執(zhí)行default,a=a+3=19,結(jié)束循環(huán)。

20.A本題主要考查軟件測試的基本知識。軟件測試的步驟可分為單元測試(模塊測試)、集成測試、確認測試和系統(tǒng)測試。

(1)單元測試是針對每個模塊進行的測試,它可從程序的內(nèi)部結(jié)構(gòu)出發(fā)設(shè)計測試用例,多個模塊可以平行、對立地測試。單元測試主要用于發(fā)現(xiàn)詳細設(shè)計和編程時犯下的錯誤。單元測試多采用白盒測試,輔之以黑盒測試。

(2)集成測試是在單元測試的基礎(chǔ)上,根據(jù)模塊結(jié)構(gòu)圖將各個模塊連接起來,必須精心計劃,應(yīng)提交集成測試計劃、集成測試規(guī)格說明和集成測試分析報告。主要目標是發(fā)現(xiàn)與接口有關(guān)的問題。集成測試可以發(fā)現(xiàn)概要設(shè)計時犯的錯誤。

(3)確認測試用于驗證軟件的功能和性能及其他特性是否與用戶的要求一致。確認測試主要用于發(fā)現(xiàn)需求分析時犯下的錯誤,一般使用黑盒法測試,以表明軟件符合需求說明書的要求,應(yīng)該仔細設(shè)計測試用例和測試過程。確認測試必須有用戶參加,或以用戶為主,用戶應(yīng)參與設(shè)計測試用例,通常情況下,主要使用生產(chǎn)中的實際數(shù)據(jù)進行測試,測試數(shù)據(jù)通過用戶接口輸入。

(4)系統(tǒng)測試是將已經(jīng)通過確認測試的軟件,作為整個計算機系統(tǒng)的元素與計算機硬件、外設(shè)和網(wǎng)絡(luò)等其他因素結(jié)合在一起,進行一系列的組裝測試和確認測試。系統(tǒng)測試的目的是通過與系統(tǒng)的需求定義做比較,發(fā)現(xiàn)軟件與系統(tǒng)的定義不符合的地方。系統(tǒng)測試可以發(fā)現(xiàn)問題定義時犯下的錯誤。

21.數(shù)據(jù)存儲數(shù)據(jù)存儲

22.數(shù)據(jù)流數(shù)據(jù)流解析:結(jié)構(gòu)化分析方法的實質(zhì)是著眼于數(shù)據(jù)流,自頂向下,逐層分解,建立系統(tǒng)的處理流程,以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏輯模型。

23.

24.s%10*s1+t

25.3232解析:while(表達式)的功能是:首先計算表達式的值.若為真,則執(zhí)行循環(huán)體語句,執(zhí)行完畢,再計算表達式的值.若仍為真,則重復(fù)執(zhí)行循環(huán)體語句,直到表達式的值為假,結(jié)束while語句的執(zhí)行,繼續(xù)執(zhí)行while語句后面的語句;i=0時滿足循環(huán)條件,也滿足if的條件,執(zhí)行語句得i=11,a=11,第2次循環(huán)不滿足if的條件,執(zhí)行i--,i=10,執(zhí)行i+=11;a+=i后,得i=21,a=32,不滿足i<20,循環(huán)結(jié)束。

26.x.link=&z;或x.link=y.link;或x.1ink=x.1ink->link;或x.1ink=*(x.link).link;x.link=&z;或x.link=y.link;或x.1ink=x.1ink->link;或x.1ink=*(x.link).link;解析:本題考核的知識點是鏈表中結(jié)點的刪除。要刪除結(jié)點y,只需要讓結(jié)點x的指針域指向y結(jié)點的指針域所指向的后續(xù)結(jié)點就可,因此只需把結(jié)點2的地址賦給x的指針域就可以了即讓結(jié)點x的指針域指向結(jié)點2。而結(jié)點z得地址保存在節(jié)點y的指針域中,因此只需把節(jié)點y的指針城賦值給節(jié)點x的指針域即可。

27.n1=%d\nn2=%dn1=%d\\nn2=%d解析:根據(jù)輸出結(jié)果,可以確定“格式控制”為n1=%d\\nn2=%d,其中,“n1=”和“n2=”是按原樣輸出的字符,“%d”是按十進制整數(shù)輸出,“\\n”是轉(zhuǎn)義字符,用于輸出回車換行。

28.邏輯獨立性邏輯獨立性解析:數(shù)據(jù)庫總體邏輯結(jié)構(gòu)改變,而不需要相應(yīng)修改應(yīng)用程序叫做邏輯獨立性。

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

30.eybdooG

31.1212解析:本題考查如何用指針引用數(shù)組元素。分析程序,首先定義了一個指向數(shù)組a的指針p,p指向數(shù)組的首地址,通過p++,將p指向a[1],p+2是將指針后移2位指向a[3],*(p+2)即是取a[3]的值12。

32.246246解析:static聲明的外部變量只限于被本文件引用,而不能被其他文件引用。用static來聲明一個變量的作用有:①對局部變量用static聲明,則為該變量分配的空間在整個程序執(zhí)行期間始終存在;②全部變量用static聲明,則該變量的作用域只限于本文件模塊(即被聲明的文件中)。

33.max==a[i].smax==a[i].s解析:該程序使用循環(huán)嵌套,第1個for語句的作用是找出最大值。第2個循環(huán)的作用是找出與max相等的成績,也即最高成績的學(xué)生,并存入b中。

34.t>=le-5;t=t/n;

35.靜態(tài)靜態(tài)解析:靜態(tài)測試包括代碼檢查、靜態(tài)結(jié)構(gòu)分析,代碼質(zhì)量度量等。靜態(tài)測試不實際運行軟件。

36.i+1i

37.系統(tǒng)設(shè)計系統(tǒng)設(shè)計解析:系統(tǒng)設(shè)計階段是系統(tǒng)的具體設(shè)計過程,主要包括概念設(shè)計、邏輯結(jié)構(gòu)設(shè)計、物理結(jié)構(gòu)設(shè)計3個步驟。這3個不同層次上的設(shè)計過程,是把實體以及相互之間的聯(lián)系轉(zhuǎn)換為“數(shù)據(jù)”并落實于計算機中。

38.44解析:在主函數(shù)中調(diào)用函數(shù)f,函數(shù)f有三個參數(shù),形參f1與f2分別是兩個指向函數(shù)的指針。在f中執(zhí)行f2(x)-f1(x),實際上是執(zhí)行了fb(2)-fa(2),故執(zhí)行i=(fa,fb,2)后i的齜23-22=4。

39.HowdoessheHowdoesshe解析:程序中的strlen(str1)是求str1字符串的長度,結(jié)果為13,然后除以2結(jié)果為6。strcpy函數(shù)是把字符串“esshe”拷貝到str1后的第6個字符后面,也就是說,拷貝后的結(jié)果是“Howdoesshe”。

40.-2-2解析:題目中定義并初始化了變量k為0,最后輸出k的值,要求為4,而在此期間只有k+=-(i+j);這條語句改變了k的值,即要求表達式-(i+j)的值為4。所以,答案應(yīng)該為-2,因為只有i=j=-2時,表達式-(i+j)的值才為4。

41.B解析:在C語言中,可以用break語句和continue語句跳出本層循環(huán)和結(jié)束本次循環(huán)。goto語句可跳出多層循環(huán),如果在函數(shù)的循環(huán)體內(nèi)使用return語句,就會直接結(jié)束循環(huán)返回函數(shù)值。

42.A

43.A解析:本題考核的知識點是C程序的三種基本結(jié)構(gòu)。C程序由三種基本的結(jié)構(gòu)組成,分別為順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu),這三種結(jié)構(gòu)可以組成任何復(fù)雜的C程序,即可以完成任何復(fù)雜的任務(wù),故選項B、選項C和選項D都不正確。所以,4個選項中選項A符合題意。

44.B

45.D解析:本題考查逗號表達式。逗號表達武的求解步驟是先求解表達式1,然后依次求解表達式2,直到表達式N的值。整個逗號表達式的值就足最后一個表達式N的值。(++x,y++)這個表達式的返回值是y++,先使用y的債,然后將y加1,所以輸出第一個值為1。第二個輸出的值為z+2=3+2=5。

46.B解析:一個算法應(yīng)當(dāng)具有以下5個特性:有窮性;確定性;可行性;有零個或多個輸入;由一個或多個輸出.簡潔性不屬于這5個特性,所以本題應(yīng)該選擇B。

47.B解析:本題考查帶參數(shù)的宏的定義及相關(guān)運算:S=m+n+m+n*k=1+2+1+2*3=10。

48.D解析:E-R圖不僅可以描述實體及其相互之間的聯(lián)系,還可以描述多個實體集之間的聯(lián)系和一個實體集內(nèi)部實體之間的聯(lián)系。

49.C在數(shù)據(jù)庫設(shè)計中,目前常用的數(shù)據(jù)模型主要有三種,分別是層次模型、網(wǎng)狀模型和關(guān)系模型。

層次模型是數(shù)據(jù)庫系統(tǒng)中最早出現(xiàn)的數(shù)據(jù)模型。我們通常把滿足以下兩個條件的數(shù)據(jù)模型稱為層次模型。

(1)有且僅有一個結(jié)點無雙親,這個結(jié)點稱為根結(jié)點。

(2)其他結(jié)點有且僅有一個雙親。

層次模型用樹形結(jié)構(gòu)來表示各實體與實體間的聯(lián)系。實體是數(shù)據(jù)庫中數(shù)據(jù)描述的對象,可以是一個人、一種商品等。在層次模型中,每個結(jié)點表示一個記錄類型,記錄之間的聯(lián)系用結(jié)點之間的連線表示,這種聯(lián)系是父子之間一對多的聯(lián)系。記錄就是描述實體的相關(guān)數(shù)據(jù)。

如果取消層次模型中的兩個限制,即允許一個以上的結(jié)點無雙親,則每一個結(jié)點可以有多個父結(jié)點,便形成了網(wǎng)狀。我們把網(wǎng)狀表示實體之間聯(lián)系的模型稱為網(wǎng)狀模型。

關(guān)系模型用表格形式表示實體類型及其實體間的聯(lián)系。關(guān)系模型是目前最重要的一種模型,它是建立在嚴格的數(shù)學(xué)概念的基礎(chǔ)上的,具有最堅實的理論基礎(chǔ)。關(guān)系模型的基本數(shù)據(jù)結(jié)構(gòu)是二維表,每一張二維表稱為一個關(guān)系。

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

51.C解析:考查指向函數(shù)的指針變量的使用。在本題中,將函數(shù)的入口地址賦給指針后就可以用該指針調(diào)用函數(shù)了。

52.D解析:文件系統(tǒng)所管理的數(shù)據(jù)文件基本上是分散的、相互獨立的,因此相對于數(shù)據(jù)庫系統(tǒng),以此為基礎(chǔ)的數(shù)據(jù)處理存在3個缺點,數(shù)據(jù)冗余大、數(shù)據(jù)的不一致性、程序與數(shù)據(jù)的相互依賴(簡稱為數(shù)據(jù)依賴)。注意:文件系統(tǒng)和數(shù)據(jù)庫系統(tǒng)各自的特點,人工管理階段及數(shù)據(jù)庫系統(tǒng)三代的特點。

53.A解析:本題主要考查了結(jié)構(gòu)體和共用體數(shù)據(jù)的存儲形式。共用體的一個特點是所有數(shù)據(jù)成員共用一段存儲單元,而結(jié)構(gòu)體每個數(shù)據(jù)成員都單獨占據(jù)一段存儲單元。共用體所占存儲單元的大小由長度最長的數(shù)據(jù)成員的長度決定。題中共用體變量c占據(jù)4個字節(jié)的長度,結(jié)構(gòu)體r所占存儲空間的大小為int(2個字節(jié))+long(4個字節(jié))+共用體c(4個字節(jié))=10個字節(jié),所以答案為A)。

54.D解析:本題中首先定義一個字符數(shù)組s,井將字符串“ABCD”存到數(shù)組s中,定義了一個字符指針變量p,在接下來for循環(huán)中,循環(huán)體共執(zhí)行了三次,第一次p指向s[1],所以此時輸出的p所指的字符串的值為BCD,第二次循壞p指向s[2],所以此時輸出的p所指的字符串的值為CD,第三次循環(huán)p指向s[3],因此此時輸出的p所指的字符串的值為D。所以,4個選項中選項D符合題意。

55.A解析:B選項中32應(yīng)加單引號,C選項中f=f+1.1兩邊都是不定值,不正確;D中E后要用整型數(shù),且E后必須要有數(shù)字。

56.C解析:<<為左移運算符,運算符的左邊是移位對象;右邊是整型表達式,代表左移的位數(shù),左移時,右端(低位)補0;左端(高位)移出的部分舍棄。

57.C解析:本題考查字符數(shù)組和字符串賦值給數(shù)組的一些區(qū)別。語句“charm[]='1234567';”定義了一個字符型數(shù)組并進行了初始化,C語言規(guī)定,在字符串的末尾自動加上串結(jié)束標記\'\\0\',因此數(shù)組m的長度是8;而數(shù)組n是按照字符方式對數(shù)組進行初始化,系統(tǒng)不會自動加上串結(jié)束標記\'\\0\',因此數(shù)組n的長度是7。

58.B解析:函數(shù)中將指針變量ptr1和ptr2中的值交換,而不是交換指針ptr1和ptr2所指變量中的值。

59.D解析:C語言數(shù)據(jù)文件由數(shù)據(jù)流形式組成,可按數(shù)據(jù)的存放形式分為二進制文件和文本文件,選項A)、B)、C)錯誤。ASCII文件又稱文本文件,它的每一個字節(jié)代表一個字符。二進制文件是把內(nèi)存中的數(shù)據(jù)按其在內(nèi)存中的存儲形式原樣輸出到磁盤上存放。

60.B

61.B軟件設(shè)計包括軟件的結(jié)構(gòu)設(shè)計、數(shù)據(jù)接口設(shè)計和過程設(shè)計。其中軟件結(jié)構(gòu)設(shè)計主要包括系統(tǒng)由哪些子系統(tǒng)構(gòu)成,以及這些子系統(tǒng)之間的關(guān)系是怎樣的,并將這些內(nèi)容編寫成文檔;數(shù)據(jù)接口設(shè)計的任務(wù)是為每個子系統(tǒng)設(shè)計其與其他子系統(tǒng)間的接口,并編寫成文檔,這個接口要是一個無二義的接口,不需要子系統(tǒng)的操作知識就可以使用;過程設(shè)計是指系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換成軟件的過程描述。

62.D

63.B本題考查字符處理函數(shù)和文件操作函數(shù)。屬于基礎(chǔ)知識,其中B選項9etchar函數(shù)是用于從終端讀人一個字符。

64.A++優(yōu)先級高于*,*p++值為year下一個變量的值(如果有的話),不能滿足題意,所以選擇A)

65.A本題主要考查的知識點是:break和IContinue語句。break語句可以用于swhitCh或循環(huán)體內(nèi),作用是跳/出switCh或循環(huán)體。Continue語句只能用于循環(huán)體內(nèi),作用是結(jié)束當(dāng)前循環(huán),進入下次循環(huán)。故本題中只有選項A)是正確的。

66.A

67.A

68.C函數(shù)f的功能是將數(shù)組中第3、4、5、6個元素乘以2,因此f(a)操作的結(jié)果是將元素(3,4,5,6)乘以2,操作結(jié)束后,數(shù)組a為(1,2,6,8,10,12,7,8,9,10)。

69.D此題目中變量s是迷惑考生的,變量t賦初值為1,由語句t=t-2;將使t得到的是負奇數(shù)。所以選項D)是正確答案。

70.B調(diào)試也稱排錯或糾錯。它與成功的測試形影相隨,測試成功的標志是發(fā)現(xiàn)錯誤。根據(jù)錯誤跡象,診斷錯誤的原因和位置,進而改正程序中的錯誤,這就是調(diào)試的任務(wù)。

調(diào)試分為靜態(tài)調(diào)試和動態(tài)調(diào)試,靜態(tài)調(diào)試就是指對源程序進行分析,然后確定可能出錯的地方并進行排錯。動態(tài)調(diào)試是指對程序的運行進行跟蹤并觀察其出錯點,然后進行排錯。

靜態(tài)調(diào)試通??梢圆捎萌缦聝煞N方法。

(1)輸出寄存器的內(nèi)容

在測試中出現(xiàn)問題,設(shè)法保留現(xiàn)場信息。把所有的寄存器和主存中有關(guān)部分的內(nèi)容打印出來(通常以八進制或十六進制的形式打?。M行分析研究。用這種方法調(diào)試,輸出的是程序的靜止?fàn)顟B(tài)(程序在某一時刻的狀態(tài)),效率非常低,不得已才采用。

(2)為取得關(guān)鍵變量的動態(tài)值,在程序中插入打印語句。這是取得動態(tài)信息的簡單方法,并可檢驗在某事件后某個變量是否按預(yù)期要求發(fā)生了變化。此方法的缺點是可能輸出大量需要分析的信息,必須修改源程序才能插入打印語句,這可能改變關(guān)鍵的時序關(guān)系,引入新的錯誤。

動態(tài)調(diào)試通常利用程序語言提供的調(diào)試功能或?qū)iT的調(diào)試工具來分析程序的動態(tài)行為。一般程序語言和工具提供的調(diào)試功能有檢查主存和寄存器;設(shè)置斷點,即當(dāng)執(zhí)行到特定語句或改變特定變量的值時,程序停止執(zhí)行,以便分析程序此時的狀態(tài)。

71.C

72.A

73.A根據(jù)二叉樹的性質(zhì),n=n0+n1+n2(n表示總結(jié)點數(shù),n0表示葉子結(jié)點數(shù),nl表示度數(shù)為1的結(jié)點數(shù),n2表示度數(shù)為2的結(jié)點數(shù)),而葉子結(jié)點數(shù)總是比度數(shù)為2的結(jié)點數(shù)多1,所以n2=n1-1=5-1=4,而n=25,所以nl=n-n0-n2=25-5-4=16。

74.C選項A中,fun(inty,doublem);中變量y和m前不需要類型說明;因為函數(shù)fun(10,12.5)沒有返回值,所以選項B錯誤;調(diào)用函數(shù)fun時,不需要在函數(shù)前面加上void,所以選項D錯誤。故本題的正確答案是選項C。

75.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。

76.C數(shù)據(jù)庫的故障恢復(fù)是數(shù)據(jù)庫數(shù)據(jù)保護機制中的一種完整性控制。所有的系統(tǒng)都免不了會發(fā)生故障,其原因有可能是硬件失靈,有可能是軟件系統(tǒng)崩潰,也有可能是其他外界的原因。在系統(tǒng)發(fā)生故障后,要求DBMS要有一套發(fā)生故障后的數(shù)據(jù)恢復(fù)機構(gòu)來保證數(shù)據(jù)庫能夠恢復(fù)到一致的、正確的狀態(tài),這就是數(shù)據(jù)庫的故障恢復(fù)。

在本題給出的四個選項中,數(shù)據(jù)流圖用來描繪系統(tǒng)的邏輯模型,它以圖形的方式描繪數(shù)據(jù)在系統(tǒng)中流動和處理的過程,反映系統(tǒng)必須完成的邏輯功能。

數(shù)據(jù)字典是關(guān)于數(shù)據(jù)信息的集合,也就是對數(shù)據(jù)流圖中包含的所有元素定義的集合,是對數(shù)據(jù)流圖進行補充。

DBA即數(shù)據(jù)庫管理員,它的工作主要有數(shù)據(jù)庫安裝、數(shù)據(jù)庫配置和管理、權(quán)限設(shè)置和安全管理、監(jiān)控和性能調(diào)節(jié)、備份和恢復(fù)等。

PAD圖即問題分析圖,是一種程序結(jié)構(gòu)可見性好、結(jié)構(gòu)唯一、易于編制、易于檢查和易于修改的詳細設(shè)計表現(xiàn)方法。

根據(jù)上面的分析,我們可以知道數(shù)據(jù)庫的故障恢復(fù)是由數(shù)據(jù)庫管理員來完成的。因此,本題的正確答案是C。

77.Ac語言函數(shù)參數(shù)傳遞大致分為:1、值傳遞過程中。被調(diào)函數(shù)的形參作為被調(diào)函數(shù)的局部變量處理,即在內(nèi)存的堆棧中開辟空間以存放由主調(diào)函數(shù)放進來的實參的值,從而成為了實參的一個拷貝。值傳遞的特點是被調(diào)函數(shù)對形參的任何操作都是作為局部變量進行,不會影響主調(diào)函數(shù)的實參變量的值。2、地址傳遞過程中,被調(diào)函數(shù)的形參雖然也作為局部變量在堆棧中開辟了內(nèi)存空間,但是這時存放的是由主調(diào)函數(shù)放進來的實參變量的地址。被調(diào)函數(shù)對形參的任何操作都被處理成間接尋址,即通過堆棧中存放的地址訪問主調(diào)函數(shù)中的實參變量。正因為如此,被調(diào)函數(shù)對形參做的任何操作都影響了主調(diào)函數(shù)中的實參變量。結(jié)構(gòu)體中nanle是數(shù)組,做實參傳遞,會退化為指針,因此調(diào)用f(),b.nanle發(fā)生修改,其他的成員,傳遞的是拷貝,不會被修改。因此輸出Sun,f,350。故答案為A選項。

78.B

79.A在單鏈表的第一個結(jié)點前增加一個表頭結(jié)點,隊頭指針指向表頭結(jié)點,最后一個結(jié)點的指針域的值由NULL改為指向表頭結(jié)點,這樣的鏈表稱為循環(huán)鏈表。循環(huán)鏈表是線性結(jié)構(gòu),有且只有一個根結(jié)點,每一個結(jié)點最多有一個前件,也最多有一個后件。循環(huán)鏈表表頭結(jié)點為根結(jié)點,鏈表的最后一個結(jié)點為葉子節(jié)點,雖然它含有一個指向表頭結(jié)點的指針,但是表頭結(jié)點并不是它的一個后件。故選擇A選項。

80.B本題考查for循環(huán)的使用。對于第1個for循環(huán),任何一個i,內(nèi)層j的循環(huán)都要使j~0到3,j=4時不符合,所以退出j循環(huán);然后i減1,J仍然要從0~3,j=4時退出J循環(huán)直到i變成0,退出i循環(huán)。第一條for語句執(zhí)行6次,第二條for語句執(zhí)行4次,所以內(nèi)循環(huán)體執(zhí)行6*4=24次。

81.(1)錯誤:while(tDeps)

正確:while(tD=eps)

(2)錯誤:return(s);

82.voidfun(STREC*a){inti;a->ave=0.0;for(i=0;i<N;i++)a->ave=a->ave+a->s[i];/*求各門課程成績的總和*/a->ave=a->ave/N;/*求平均分*/}【解析】本題考查的是指向結(jié)構(gòu)體類型的指針變量做參數(shù)和結(jié)構(gòu)體類型成員的運算。fun函數(shù)中求出平均成績,要帶回主函數(shù)則必須定義一個指針類型的形參STREC*a,同時引用成員使用指向運算符,a->ave和a->s[i]。2021-2022年湖南省邵陽市全國計算機等級考試C語言程序設(shè)計學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.有以下程序:

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

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

2.有以下程序:#include<stdio.h>doublef(doublex);main(){doublea=0;inti;for(i=0;i<30;i+=10)a+=f((double)i);printf("%5.of\n",a);}doublef(doublex){returnx*x+1;}程序運行后的輸出結(jié)果是()。A.503B.401C.500D.1404

3.s1和s2已正確定義并分別指向兩個字符串。若要求:當(dāng)s1所指串大于s2所指串時,執(zhí)行語句s;則以下選項中正確的是()。

A.if(s1>s2)S;

B.if(strcmp(s1,s2))S;

C.if(strcmp(s2,sl)>O)S;

D.if(stremp(s1,s2)>O)S;

4.下列程序的輸出結(jié)果是______。main(){charch[2][5]={"6937","8254"},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>'\0';j+=2)s=10*s+p[i][j]-'0';printf("%d\n",s);}

A.69825B.63825C.6385D.693825

5.下列程序段的時間復(fù)雜度為()。A.O(i+j)B.O(n)C.O(n2)D.O(i*j)

6.一個棧的入棧序列是a,b,c,d,e,f,則棧的不可能的輸出序列為()

A.fedcbB.defbcC.defcbD.abcdef

7.寫出a*(b-c*d)+e-f/g*(h+i*j-k)的逆波蘭表達式()。

A.a(b-c*d)*+e-(f/g(h+i*j-k)*)

B.a(b-(cd*))*+e-(fg/(h+ij*-k)*)

C.a(bcd*-)*+e-(fg/hij*+k-*)

D.abcd*-*e+fg/hij*+k-*-

8.以下選項中不能作為C語言合法常量的是()

A.0.1e+6B.‘cd’C.“\a”D.‘\011’

9.若有定義語句:char*s1="OK",*s2="ok";,以下選項中,能夠輸出"OK"的語句是A.A.if(strcmp(s1,s2)==0)puts(s1);

B.if(strcmp(s1,s2)!=0)puts(s2);

C.if(strcmp(s1,s2)==1)puts(s1);

D.if(strcmp(s1,s2)!=0)puts(s1);

10.有以下程序voidf(intx,inty){intt;if(x<y){t=x;x=Y;y=t;)}main{inta=4,b=3,c=5;f(a,b);f(a,c);f(b,c);printf("%d,%d,%d\n",a,b,c);}執(zhí)行后輸出結(jié)果是()。A.3,4,5B.5,3,4C.5,4,3D.4,3,5

11.檢查軟件產(chǎn)品是否符合需求定義的過程稱為______。

A.確認測試B.集成測試C.驗證測試D.驗收測試

12.

13.下列對于軟件測試的描述中正確的是()。

A.軟件測試的目的是證明程序是否正確

B.軟件測試的目的是使程序運行結(jié)果正確

C.軟件測試的目的是盡可能多地發(fā)現(xiàn)程序中的錯誤

D.軟件測試的目的是使程序符合結(jié)構(gòu)化原則

14.有以下程序:#include<stdio.h>main(){inti,data;scanf(“%d”,&data);for(i=0;i<8;i++){if(i<=data)continue;printf(“%d,”,i);}}程序運行時輸入5并按〈Enter〉鍵,則程序輸出結(jié)果為()。

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

15.當(dāng)n=5時,函數(shù)輸出為()A.5B.11C.29D.10

16.在下面的字符數(shù)組定義中,哪一個有語法錯誤()。A.chara[20]=”abcdefg”;

B.chara[]=”x+y=55.”;

C.chara[15];

D.chara[10]=’5’;

17.下列程序的輸出結(jié)果是()。#include<stdio.h>main{structst{inty,x,z;};union{longi;intj;chark;}un;printf("%d,%d\n",sizeof(structst),sizeof(un))}A.6,2B.6,4C.8,4D.8,6

18.已知a,b均被定義為double型,則表達式:b=1,a=b+5/2的值為()。

A.1B.3C.3.0D.3.5

19.下列程序的輸出結(jié)果是()。#include<stdio.h>main{inta=0,i;for(i=1;i<5;i++){switch(i){case0:case3:a+=1;case1;case2:a+=2;default:a+=3;}}printf("%d",a);}A.19B.1C.6D.8

20.檢查軟件產(chǎn)品是否符合需求定義的過程稱為()。

A.確認測試B.集成測試C.驗證測試D.驗收測試

二、2.填空題(20題)21.數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括5個部分,即數(shù)據(jù)項、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、______和處理過程。

22.結(jié)構(gòu)化分析方法是面向______進行分析的方法。

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

main()

{staticchara[]="language",b[]="program";

char*ptrl=a,*ptr2=b;

intk

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

if(*(ptrl+k)==*(ptr2+k))

printf("%c",*(ptr1+k));}

24.以下程序的功能是:從低位開始取出長整型變量s中奇數(shù)位上的數(shù),依次構(gòu)成一個新數(shù)放在t中。高位仍在高位,低位仍在低位。請?zhí)羁铡?include<stdio.h>main(){longs,t,s1=10;pfintf("\n.Pleaseenters:");scanf("%1d",&s);t=s%10;while(s>0){s=s/100;t=();s1=s1*10;}printf("Theresultis:%1d\n",t);}

25.下面程序的輸出結(jié)果是()。

main()

{inti=0,a=0;

while(i<20)

{for(;;)

{if((i%10)==0)break;

elsei--;}

i+=11;

a+=i;

}

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

}

26.設(shè)有以下定義

stnctss

{intinfo;sEruc5ss*link;}x.y,z;

且已建立如下圖所示鏈表結(jié)構(gòu):

請寫出刪除結(jié)點y的賦值語句______。

27.有以下語句段:

intn1=10,n2=20;

printf("【】",n1,n2);

要求按以下格式輸出n1和n2的值:

n1=10

n2=20

每個輸出行從第一列開始,請?zhí)羁铡?/p>

28.在數(shù)據(jù)庫理論中,數(shù)據(jù)庫總體邏輯結(jié)構(gòu)的改變,如修改數(shù)據(jù)模式、增加新的數(shù)據(jù)類型、改變數(shù)據(jù)間聯(lián)系等,不需要相應(yīng)修改應(yīng)用程序,稱為______。

29.在面向?qū)ο蠓椒ㄖ?,【】描述的是具有相似屬性與操作的一組對象。

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

#include<stdio.h>

main()

{staiccharb[]="Goodbye";

char*chp=&b[7];

while(--chp>=&b[0])putchar(*chp);

printf("\n");

}

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

main()

{inta[]={31,27,20,12,6,1),*p=a;

p++;

printf("%d\n",*(p+2));

}

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

voidfun()

{

staticinta=0;

a+=2;printf("%d",A);

}

main()

{intcc;

for(cc=1;cc<4,cc++)fun();

printf("\n");

}

33.以下程序的功能是:處理由學(xué)號和成績組成的學(xué)生記錄,N名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組s中,它的功能是:把分數(shù)最高的學(xué)生數(shù)據(jù)放在h所指的數(shù)組中,注意:分數(shù)高的學(xué)生可能不只一個,函數(shù)返回分數(shù)最高學(xué)生的人數(shù)。請?zhí)羁铡?/p>

#include<stdio.h>

#defineN16

typedefstruct

{charnum[10];

ints;

}STREC;

intfun(STREC*a,STREC*b)

{inti,j=0,max=a[0].s;

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

if(max<a[i].s)max=a[i].s;

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

if(【】)b[j++]=a[i];

returnj;

}

main()

{STRECs[N]={{"GA005",85},{"GA003",76},{"GA002",69},{"GA004",85},

{"GA001",91},{"GA007",72},{"GA008",64},{"GA006",87},

{"GA015",85},{"GA013",91},{"GA012",64},{"GA014",91},

{"GA011",66},{"GA017",64},{"GA018",64},{"GA016",72}

};

STRECh[N];

inti,n;FILE*out;

n=fun(s,h);

printf("The%dhighestscore;\n",n);

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

printf("%s%4d\n",h[i].num,h[i].s);

printf("\n");

out=fopen("out15.dat","w");

fprintf(out,"%d\n",n);

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

fprintf(out,"%4d\n",h[i].s);

fclose(out);

}

34.下面程序的功能是根據(jù)公式e=1+1/1!+1/2!+1/3!+1/4!+...計算e的近似值,精度要求為10-5。請?zhí)羁铡?/p>

main()

{intn;

doublee=1.0,t=1.0;

for(n=1;【】n++);

{【】e+=t;}

printf("%f\n",e);}

35.對于軟件測試,從是否需要執(zhí)行被測軟件的角度,可以分為靜態(tài)測試和動態(tài)測試。代碼檢查屬于______測試。

36.以下程序調(diào)用invert函數(shù)按逆序重新放置a數(shù)組元素的值。a數(shù)組中的值在main函數(shù)中讀入。

#include<stdio.h>

#defineN10

invert(s,i,j)

int*s,i,j;

{intt;

if(i<j)

{t=*(s+i);

*(s+i)=(s+j);

*(s+j)=t;

invert(s,【】,j-1);

}

}

main()

{

inta[N],i;

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

invert(a,0,N-1);

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

printf("\n")

}

37.一般來說,數(shù)據(jù)庫的設(shè)計過程要經(jīng)歷3個大的階段,即可行性分析與研究階段、系統(tǒng)設(shè)計階段、設(shè)計實施與系統(tǒng)運行階段。概念設(shè)計、邏輯結(jié)構(gòu)設(shè)計、物理結(jié)構(gòu)設(shè)計屬于數(shù)據(jù)庫設(shè)計的【】階段。

38.有以下程序

intfa(intx){returnx*x;}

intfb(intx){returnx*x*x;}

intf(int(*fl)(),int(*f2)(),intx}

{returnf2(x)-f1(x);}

main()

{inti;i=f(fa,fb,2);printf("%d\n",i);}

程序運行后,輸出結(jié)果是【】。

39.下列程序的字符串中各單詞之間有一個空格,則程序的輸出結(jié)果是【】。

#include<stdio.h>

#include<string.h>

main()

{charstr1[]="Howdoyoudo",*p1=str1;

strcpy(str1+strlen(str1)/2,"esshe");

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

}

40.若下面程序的輸出結(jié)果是4,請?zhí)羁铡?/p>

main()

{inti,j,k;

k=0;i=j=【】;

k+=-(i+j);printf("%d\n",k);

}

三、1.選擇題(20題)41.下面的關(guān)鍵字中,不能夠從循環(huán)體中跳到循環(huán)體外的是______。

A.gotoB.breakC.returnD.continue

42.已知year為整型變量,不能使表達式(year%4==0&&year%100!=O)||year%400==0的值為“真”的數(shù)據(jù)是______。

A.1990B.1992C.1996D.2000

43.結(jié)構(gòu)化程序由三種基本結(jié)構(gòu)組成,三種基本的結(jié)構(gòu)組成的算法

A.可以完成任何復(fù)雜的任務(wù)B.只能完成部分復(fù)雜的任務(wù)C.只能完成符合結(jié)構(gòu)化的任務(wù)D.只能完成些簡單的仟務(wù)

44.假定建立了以下鏈表結(jié)構(gòu),指針p、q分別指向如圖所示的結(jié)點,則以下可以將q所指結(jié)點從鏈表中刪除并釋放該結(jié)點的語句組是()

A.free(q);p->Next=q->next;

B.(*p).next=(*q).nexy;free(q);

C.q=(*q).next;(*p).next=q;free(q);

D.q=q->next;p->next=q;p=p->next;free(p);

45.有以下程序:main(){inty=1,x=2,z=3;printf("%d,%d\n",(++x,y++),z+2);}執(zhí)行后的輸出結(jié)果是()。

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

46.算法具有五個特性,以下選項中不屬于算法特性的是_____。A.有窮性B.簡潔性C.可行性D.確定性

47.下列程序的運行結(jié)果是()。#include<stdio.h>#defineADD(x)x+xmain(){intm=1,n=2,k=3;ints=ADD(m+n)*k;printf("s=%d",s);}

A.sum=18B.sum=10C.sum=9D.sum=25

48.下列關(guān)于E-R圖的描述中正確的是()。

A.E-R圖只能表示實體之間的聯(lián)系

B.E-R圖只能表示實體和屬性之間的聯(lián)系

C.E-R圖只能表示實體和屬性

D.E-R圖能表示實體、屬性和實體之間的聯(lián)系

49.下列數(shù)據(jù)模型中,具有堅實理論基礎(chǔ)的是()。

A.層次模型B.網(wǎng)狀模型C.關(guān)系模型D.以上3個都是

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

A.C語言的源程序不必通過編譯就可以直接運行

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

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

D.C語言中的函數(shù)不可以單獨進行編譯

51.若有函數(shù)max(a、b),為了讓函數(shù)指針變量p指向函數(shù)max,當(dāng)調(diào)用該函數(shù)時,正確的賦值方法是

A.(*p)max(a,b)B.*pmax(a,b)C.p=max(a,b)D.*p=max(a,b)

52.相對于數(shù)據(jù)庫系統(tǒng),文件系統(tǒng)的主要缺陷有數(shù)據(jù)關(guān)聯(lián)差、數(shù)據(jù)不一致性和()。

A.可重用性差B.安全性差C.非持久性D.冗余性

53.以下程序的輸出結(jié)果是#include<stdio.h>main(){unionun{inti;longk;charc;};structbyte{inta;longb;unionunc;}r;printf("%d\n",sizeof(r));}

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

54.有以下程序:mam(){chars[]="ABCD",*p;for(p=s+1;p<s+4;p++)printf("%s\n",p);}程序運行后的輸出結(jié)果是()。

A.ABCDBCDDB.ABCDC.BCDD.BCDCDD

55.以下能正確定義且賦初值的語句是

溫馨提示

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

評論

0/150

提交評論