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

下載本文檔

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

文檔簡介

2021-2022年廣東省揭陽市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷一(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.以下函數(shù)的功能是()intfun(char*A){char*b=a;while(*B)b++;{returnb-a;}}

A.比較兩個字符串的大小B.字符串的復(fù)制C.計(jì)算字符串的長度D.字符串的連接

2.以下選項(xiàng)中與“(!a==0)”的邏輯值不等價的表達(dá)式是()。

A.(a==!0)B.aC.(a>0||a<0)D.(a!=0)

3.線性表L=(a1,a2,a3,…ai,…an),下列說法正確的是()

A.每個元素都有一個直接前件和直接后件

B.線性表中至少要有一個元素

C.表中諸元素的排列順序必須是由小到大或由大到小

D.除第一個元素和最后一個元素外,其余每個元素都有一個且只有一個直接前件和直接后件

4.數(shù)據(jù)庫管理系統(tǒng)中負(fù)責(zé)數(shù)據(jù)模式定義的語言是()。A.數(shù)據(jù)定義語言B.數(shù)據(jù)管理語言C.數(shù)據(jù)操縱語言D.數(shù)據(jù)控制語言

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

#deflneMAX(x,y)(x)>(y)(x):(y)

main()

{inta=2,b=3,c=1,d=3,t;

printf("%d\n",(MAX(a+b,c+D))*100);

}A.A.500B.5C.4D.400

6.若有以下程序:inta=1,b=2:a=a^b:b=b^a:則執(zhí)行以上語句后a和b的值分別是()。

A.a=1,b=2B.a=3,b=lC.a=3,b=2D.a=2.b=1

7.設(shè)有以下說明語句structnum{inta;floatb;}numl;則下面的敘述不正確的是______。

A.struct是結(jié)構(gòu)體類型的關(guān)鍵字

B.structnum是用戶定義的結(jié)構(gòu)體類型

C.numl是用戶定義的結(jié)構(gòu)體類型名

D.a和b都是結(jié)構(gòu)體成員名

8.下面關(guān)于哈希(Hash,雜湊)查找的說法正確的是()

A.哈希函數(shù)構(gòu)造的越復(fù)雜越好,因?yàn)檫@樣隨機(jī)性好,沖突小

B.除留余數(shù)法是所有哈希函數(shù)中最好的

C.不存在特別好與壞的哈希函數(shù),要視情況而定

D.若需在哈希表中刪去一個元素,不管用任何方法解決沖突都只要簡單地將該元素刪去即可

9.

10.以下選項(xiàng)中合法的C語言常量是()。

A.2.0KbB.”C++’C.”\2.0D.1.01

11.有以下程序

#include<stdio.h>

main()

{structnode{intn;structnode*next;}*p;

structnodex[3]={{2,x+1},{4,x+2},{6,NULL}};

p=x:

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

printf("%d\n",P->next->n);

}

程序運(yùn)行后的輸出結(jié)果是A.A.2,3B.2,4C.3,4D.4,6

12.輸入序列為(A,B,C,D),不可能得到的輸出序列是______.

A.(A,B,C,D)B.(D,C,B,A)C.(A,C,D,B)D.(C,A,B,D)

13.

若輸入“abcdef”“abdef”,下述程序的輸出結(jié)果為()。

#include<stdio.h>

#include<string.h>

main

{intn;

chars1[20],s2[20],*p1,*p2;

scanf("%s",s1);

scanf("%S",s2);

p1=s1;

p2=s2;

n=strcmp(p1,p2);

printf("Vood\n",n);

}

A.-1B.0C."abcdef"D."abdef"

14.

15.以下程序擬實(shí)現(xiàn)計(jì)算s=1+2*2+3*3+…+n*n+…,直到s>1000為止。#include<stdio.h>main(){ints,n;s=1;n=1;do{n=n+1;s=s+n*n;}while(s>1000);printf(“s=%d\n”,s);}程序運(yùn)行后,不能得到正確結(jié)果,以下修改方案正確的是()。

A.把“while(s>1000);”改為“while(s<=1000);”

B.把“s=1”改為“s=0”

C.把“n=1;”改為“n=0;”

D.把“n=n+1”改為“n=n*n”

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

A.確認(rèn)測試B.集成測試C.驗(yàn)證測試D.驗(yàn)收測試

17.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。A.efg,h,z,q,bcd

B.efg,d,zyz,wbbcd

C.efgabcdsnopqhijkIxyz,h,z,q,bcd

D.efgabcdsnopqhijkIxyz,d,zyz,w,bbcd

18.對關(guān)系S和R進(jìn)行集合運(yùn)算,結(jié)果中既包含S中的所有元組也包含R中的所有元組,這樣的集合運(yùn)算稱為()

A.并運(yùn)算B.交運(yùn)算C.差運(yùn)算D.積運(yùn)算

19.

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

A.一個C程序中可以包含多個不同名的函數(shù)

B.一個C程序只能有一個主函數(shù)

C.C程序在書寫時,有嚴(yán)格的縮進(jìn)要求,否則不能編譯通過

D.C程序的主函數(shù)必須用main作為函數(shù)名

二、2.填空題(20題)21.若a是血型變量,則表達(dá)式(a=2*3,a*2),a+6的值為______。

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

#include<stdio.h>

main()

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

if(x<y)

if(y<0)z+0;

elseZ+=1;

primf(“%d\n",z);

}

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

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

main()

{chara[]="Language",b[]="Programe";

char*p1,*p2;

intk;

p1=a;p2=b;

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

if(*(p1+k)==*(p2+k))printf("%c,*(p1+k));

}

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

voidfun()

{staticinta=0;

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

}

main()

{intcc;

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

printf("\n");

}

26.在結(jié)構(gòu)化設(shè)計(jì)方法中,數(shù)據(jù)流圖表達(dá)了問題中的數(shù)據(jù)流與加工間的關(guān)系,并且每一個______實(shí)際上對應(yīng)一個處理模塊。

27.下面程序的輸出是()。

main()

{intarr[8],i,k=0;

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

arr[i]=i;

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

k+=arr[i]+i;

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

}

28.在C語言中(以16位PC機(jī)為例),一個float型數(shù)據(jù)在內(nèi)存中所占的字節(jié)數(shù)為4;一個double型數(shù)據(jù)在內(nèi)存中所占的字節(jié)數(shù)為【】。

29.在內(nèi)存中,存儲字符'x'要占用1個字節(jié),存儲字符串"x"要占用【】個字節(jié)。

30.下列程序段中循環(huán)體的執(zhí)行次數(shù)是______。

a=15;

b=0;

do{b+=2;a-=2+b;}while(a>=0);

31.設(shè)x、y、z均為int型變量,請寫出描述“x或y中至少有一個小于z”的表達(dá)式______。

32.若x和a均是int型變量,則計(jì)算完x=(a=4,6*2)后的x值為______。

33.某二叉樹中度為2的節(jié)點(diǎn)有18個,則該二叉樹中有()個葉子節(jié)點(diǎn)。

34.若a是血型變量,且a的初值為4,則計(jì)算a+=a-=a*a表達(dá)式后a的值為______。

35.若fp已下確定義為一個文件指針,d1.dat為二進(jìn)制文件,請?zhí)羁?,以便為“讀”而打開此文件:fp=fopen(【】);。

36.算法的復(fù)雜度主要包括【】復(fù)雜度和空間復(fù)雜度。

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

#include<stdlib.h>

main()

{char*s1,*s2,m;

s1=s2=(char*)malloc(sizeof(char));

*s1=15;*s2=20;m=*s1+*s2;

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

}

38.軟件測試按功能劃分的方法劃分,通常分為【】測試方法和黑盒測試方法。

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

intx=5;

do{printf("%d",x-=4);

}while(!(--x));

40.下面程序的功能是實(shí)現(xiàn)變量x、y內(nèi)容交換,請?zhí)羁铡?/p>

#defineEXCHANGE(a,b,c){a=b;b=c;c=a;}

main()

{intx=10,y=8,z;

【】

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

三、1.選擇題(20題)41.若有如下程序:voids(char*m,intn){*m=*m+3;n=n+3;printf("%c,%c,",*m,n);}main(){charp='b',q='B';s(&q,p);printf("%c,%c\n",p,q);}則程序運(yùn)行后的輸出結(jié)果是()

A.E,e,b,EB.e,E,b,F(xiàn)C.E,e,e,ED.e,E,b,E

42.軟件測試是保證軟件質(zhì)量的重要措施,它的實(shí)施應(yīng)該是在______。

A.軟件運(yùn)行階段B.軟件開發(fā)全過程C.程序編碼階段D.軟件設(shè)計(jì)階段

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

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

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

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

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

44.有以下程序段

intj;floaty;charname[50];

scanf("%2d%f%s",&j,&y,name);

當(dāng)執(zhí)行上述程序段,從鍵盤上輸入555667777abc后,y的值為

A.55566.0B.566.0C.7777.0D.566777.0

45.對下述程序的判斷中,正確的是

#include<stdio.h>

voidmain()

{char*p,s[128];

p=s;

while(strcmp(s,"End"))

{printf("Inputastring:");gets(s);

while(*p)

putchar(*p++);}}

A.此程序循環(huán)接收字符串并輸出,直到接收字符串"End"為止

B.此程序循環(huán)接收字符串,接收到字符串"End"則輸出,否則程序終止

C.此程序循環(huán)接收字符串并輸出,直到接收字符串"End"為止,但因?yàn)榇a有錯誤,程序不能正常工作

D.此程序循環(huán)接收字符串并將其連接在一起,直到接收字符串"End"為止,輸出連接在一起的字符串

46.設(shè)有如下3個關(guān)系表:

下列操作中正確的是()。

A.T=R∩SB.T=R∪SC.T=R×SD.T=R/S

47.結(jié)構(gòu)化分析方法是面向()的自頂向下、逐步求精進(jìn)行需求分析的方法

A.對象B.數(shù)據(jù)結(jié)構(gòu)C.數(shù)據(jù)流D.目標(biāo)

48.下列關(guān)于隊(duì)列的敘述中正確的是______。A.在隊(duì)列中只能插入數(shù)據(jù)B.在隊(duì)列中只能刪除數(shù)據(jù)C.隊(duì)列是先進(jìn)先出的線性表D.隊(duì)列是先進(jìn)后出的線性表

49.在C語言中,合法的字符常量是()

A.'\084'B.'\x43'C.'ab'D.'\0'

50.以下敘述中正確的是

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

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

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

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

51.設(shè)函數(shù)fun的定義形式為voidfun(charch,floatx){…}則以下對函數(shù)fun的調(diào)用語句中,正確的是

A.fun("abc",3.0);

B.t=fun('D',16.5);

C.fun('65',2.8);

D.fun(32,32);

52.假設(shè)線性表的長度為n,則在最壞情況下,冒泡排序需要的比較次數(shù)為

A.logn2

B.n2

C.O(n1.5)D.n(n-1)/2

53.函數(shù)fseek(pf,0L,SEEK_END)中的SEEK_END代表的是()。

A.文件開始B.文件末尾C.文件當(dāng)前位置D.以上都不對

54.下列程序的輸出結(jié)果是______。#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);}

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

55.下列程序段中,不能正確賦值的是

A.char*p,ch;p=&ch;scanf("%c,&p")

B.char*p;p=(char*)malloc(1)scanf("%c",p);

C.char*p*p=getchar();

D.char*p,ch;p=&ch;*p=getchar();

56.下列用于printf函數(shù)的控制字符常量中,代表“豎向跳格”的轉(zhuǎn)義字符常量是()。

A.\bB.\tC.\vD.\f

57.下列程序段的輸出結(jié)果是______。voidfun(int*x,int*y){pnntf("%d%d",*x,*y);*x=3;*y=4;}main(){intx=1,y=2;fun(&y,&x);printf("%d%d",x,y);}

A.2143B.1212C.1234D.2112

58.下面程序的輸出結(jié)果()main(){unsigneda=32768;printf("a=%d\n",a);}

A.a=32768B.a=32767C.a=-32768D.a=-1

59.以下敘述中正確的是A.A.C程序中的注釋只能出現(xiàn)在程序的開始位置和語句的后面

B.C程序書寫格式嚴(yán)格,要求一行內(nèi)只能寫一個語句

C.C程序書寫格式自由,一個語句可以寫在多行上

D.用C語言編寫的程序只能放在一個程序文件中

60.有以下程序#include<stdio.h>main(){FILE*fP;intk,n,a[6]={1,2,3,4,5,6};fp=fopen("d2.dat","w");fprintf(fp,"%d%d%d\n",a[0],a[1],a[2]);fprintf(fp,"%d%d%d\n",a[3],a[4],a[5]);fclose(fp);fp=fopen("d2.dat","r");fscanf(fp,"%d%d",&k,&n);printf("%d%d\n",k,n);fclose(fp);}程序運(yùn)行后的輸出結(jié)果是。

A.12B.14C.1234D.123456

四、選擇題(20題)61.

有以下程序:

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

62.

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

charm[]1="l234567":

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

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

A.數(shù)組m與數(shù)組n完全相同

B.數(shù)組m與數(shù)組n長度相同

C.數(shù)組m比數(shù)組n長1

D.數(shù)組m與數(shù)組n中都存放字符串

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

#include<stdio.h>

voidfun(int*S,int*p)

{staticintt=3:

*p=s[t];

t--;

}

voidmain

{inta[]={2,3,4,5),k;

intx;

for(k=0,k<4,k++)

{fun(a,&x);

printf("%d,",x);

}

}A.A.5,4,3,2B.2,3,4,5C.2,2,2,2D.5,5,5,5

64.

有以下結(jié)構(gòu)說明和變量定義,指針p、q、r分別指向鏈表中的3個連續(xù)結(jié)點(diǎn)。

structnode

{intdata;structnode*next;)*p,*q,*r;

現(xiàn)要將q所指結(jié)點(diǎn)從鏈表中刪除,同時要保持鏈表的連續(xù),以下不能按要求完成操作的語句是()。

A.p->next=q->next;

B.P-next=P->next->next;

C.p->next=r;

D.p=q->next;

65.

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

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

67.有以下程序:

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

A.0B.10C.20D.出錯

68.設(shè)有定義:intx[2][3];,則以下關(guān)于二維數(shù)組X的敘述錯誤的是()。

A.x[0]可看做是由3個整型元素組成的一維數(shù)組

B.x[0]和x[l]是數(shù)組名,分別代表不同的地址常量

C.數(shù)組X包含6個元素

D.可以用語句x[o]=0;為數(shù)組所有元素賦初值0

69.

70.在數(shù)據(jù)管理技術(shù)的發(fā)展過程中,先后經(jīng)歷了人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)管理階段。其中數(shù)據(jù)獨(dú)立性最高的階段是

A.?dāng)?shù)據(jù)庫系統(tǒng)B.文件系統(tǒng)C.人工管理D.?dāng)?shù)據(jù)項(xiàng)管理

71.在下列選項(xiàng)中,沒有構(gòu)成死循環(huán)的是()。

A.

B.

C.

D.

72.最簡單的交換排序方法是()。A.快速排序B.選擇排序C.堆排序D.冒泡排序

73.

74.有如下程序main(){chars[][5]={"abc","de","fgh"};printf("%c",s[2][6]);}其輸出為______。

A.不確定B.編譯錯誤C.gD.輸出null字符

75.有以下程序:

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

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

76.

77.

執(zhí)行下列程序中的輸出語句后,a的值是()。

main

{inta;

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

}

A.17B.37C.6D.13

78.

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

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

80.下列說法中,不屬于數(shù)據(jù)模型所描述的內(nèi)容的是()

A.數(shù)據(jù)結(jié)構(gòu)B.數(shù)據(jù)操作C.數(shù)據(jù)查詢D.數(shù)據(jù)約束

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:將字符串str中的所有字符復(fù)制到字符串b中,要求在每復(fù)制3個字符之后插入1個空格。例如,在調(diào)用proc()函數(shù)之前給字符

串str輸入abcdefghijk,調(diào)用函數(shù)之后,字符串b中的內(nèi)容則為abcdefghijk。

請修改程序中的錯誤,使它能得出正確的結(jié)果。

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

試題程序:

六、程序設(shè)計(jì)題(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.C

2.A運(yùn)算符邏輯非“!”和“==”,邏輯非“!”的優(yōu)先級高于“==”,選項(xiàng)A等價于“(!a)==0”。如果a不等于0,則表達(dá)式為真,否則表達(dá)式為假。故本題答案為A選項(xiàng)。

3.D解析:線性表可以為空表,排除選項(xiàng)B。第一個元素沒有直接前件,最后一個元素沒有直接后件,故排除選項(xiàng)A。線性表的定義中,元素的排列沒有規(guī)定大小順序,故選項(xiàng)C也有誤,只有D項(xiàng)是正確的。

4.AA。數(shù)據(jù)定義語言(DDL)是集中負(fù)責(zé)數(shù)據(jù)庫模式定義與數(shù)據(jù)庫對象定義的語言。數(shù)據(jù)操縱語言(DML)是指用來查詢、添加、修改和刪除數(shù)據(jù)庫中數(shù)的語句。數(shù)據(jù)控制語言(DCL)是用來設(shè)置或者更改數(shù)據(jù)為用戶或角色權(quán)限的語句。據(jù)此,本題正確答案為選項(xiàng)A。

5.A解析:本題考查帶參數(shù)的宏的定義及相關(guān)運(yùn)算:(x)>(y)(x):(y)是x>y時輸出x,否則輸出y,調(diào)用(MAX(a+b,c+d))*100時,(a+b=5)>(c+d=4),所以輸出a+b=5,所以x=5*100。

6.B本題考查按位異或的用法。按位異或運(yùn)算的規(guī)則是:兩個運(yùn)算數(shù)的相應(yīng)二進(jìn)制位相同,則結(jié)果為0,相異則結(jié)果為1。b=2的二進(jìn)制為00000010,a=1的二進(jìn)制為00000001,a=a^b=00000011,轉(zhuǎn)化為十進(jìn)制后為3,b=b^a=00000010-00000011=00000001,即1。

7.C

8.C

9.D

10.DC語言中,常量有整型常量、實(shí)型常量、字符常量和字符串常量等。整型常量和實(shí)型常量又稱為數(shù)值型常量。其中整型常量只能用數(shù)字表示,不帶小數(shù)點(diǎn)。實(shí)型常量必須用帶小數(shù)點(diǎn)的數(shù)表示,所以選項(xiàng)A錯誤,選項(xiàng)D正確;字符型常量是用單引號標(biāo)注的單個字符,字符串常量是用雙引號標(biāo)注的若干個字符,選項(xiàng)B、C錯誤。故本題答案為D選項(xiàng)。

11.B解析:p指向x的第一個元素,所以p->n的值為2,p->next指向x+1,即指向x的第二個元素,所以p->next->n為4。

12.D

13.D

\n本題考查字符串比較函數(shù)strcmp(s1,s2),若s1>s2,則返回1;若s1=s2,則返回0;若s1<s2,則返回-1。字符串依次比較的是它們字符的ASCIl碼值。

\n

14.B

15.A題目中程序不能實(shí)現(xiàn)預(yù)期功能是因?yàn)閣hile的循環(huán)條件錯誤。選項(xiàng)B中把“s=1;”改為s=0;”,最終的結(jié)果“s=4”,與題目原意不同。選項(xiàng)C中把“n=1;”,改為“n=0;”最終的結(jié)果“s=2”,與題目原意不同。選項(xiàng)D中把“n=n+1;”改為“n=n*n;”,最終的結(jié)果“s=2”,與題目原意不同。選項(xiàng)A正確地修改了while循環(huán)條件,可以得到正確結(jié)果。故本題答案為A選項(xiàng)。

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

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

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

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

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

17.A程序定義一個二維字符數(shù)組v,使用5個字符串對其初始化。對于表達(dá)式“*v”等價于“*(v+0)”,輸出的是數(shù)組v的第1個元素efg;“**(v+3)”等價于“*(*(v+3)+0)”,輸出的是數(shù)組v的第4個元素的第1個字符h;“v[4]”表示數(shù)組v的第5個元素,“v[4]+2”表示輸出從下標(biāo)2開始的所有字符,即z;“v[2]”表示數(shù)組v的第3個元素,“*(v[2]+4)”表示數(shù)組v的第3個元素的下標(biāo)為4的字符q;“v[1]+1”表示數(shù)組v的第2個元素從下標(biāo)1開始的子字符串,即bcd。所以程序輸出:efg,h,z,q,bcd。本題答案為A選項(xiàng)。

18.AA)【解析】關(guān)系的并運(yùn)算是指由結(jié)構(gòu)相同的兩個關(guān)系合并,形成一個新的關(guān)系,新關(guān)系中包含兩個關(guān)系中的所有元組。

19.B

20.C【答案】C

【知識點(diǎn)】C程序的函數(shù)

【解析】C程序必須有且只有一個主函數(shù)main()。一個C程序可以包含多個不重名的子函數(shù)。C程序在書寫時沒有嚴(yán)格的縮進(jìn)要求,語句前的縮進(jìn)隨意。

21.1212解析:本題考查逗號表達(dá)式的運(yùn)算規(guī)則。逗號表達(dá)式的基本格式為:“表達(dá)式1,表達(dá)式2,…”,其整個表達(dá)式的結(jié)果取最后一個子表達(dá)式的值。本題中首先計(jì)算逗號表達(dá)式中的第1個表達(dá)式a=2*3=6,然后計(jì)算第2個表達(dá)式a*2,這時整個表達(dá)式的值為12,但要注意,因?yàn)榈?個表達(dá)式并沒有給a賦值,因此a的值不變;接下來執(zhí)行最后一個表達(dá)式a+6=12,所以整個表達(dá)式最后的值為12。

22.11解析:ifelse語句的功能:若表達(dá)式的值為真,執(zhí)行語句1,并跳過其他語句,執(zhí)行ifelse語句的下一條語句,若表達(dá)式的值為假,跳過語句1,執(zhí)行語句2,依次往下判斷。題中,x=3,y=2,第一個if語句的控制條件x<y就不滿足,又沒有與之配對的else語句,所以直接執(zhí)行printf語句,在整個過程中變量z的值都沒發(fā)生變化。

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

24.gae

25.246

26.加工加工解析:數(shù)據(jù)流圖是從數(shù)據(jù)傳遞和加工的角度,來刻畫數(shù)據(jù)流從輸入到輸出的移動變換過程。其中的每一個加工對應(yīng)一個處理模塊。

27.20

28.88解析:在一般系統(tǒng)中,一個float型數(shù)據(jù)在內(nèi)存中占4個字節(jié)(32位),一個double型數(shù)據(jù)占8個字節(jié)。

29.22解析:計(jì)算機(jī)存儲一個字符用1個字節(jié),存儲字符串時,每個字符用占用1個字節(jié),另在字符串的有效字符之后存儲1個字符串的結(jié)束標(biāo)記符。所以存儲字符串“X”要占用2個字節(jié),存儲字符'x'只要1個字節(jié)。注意:sizeof()函數(shù)和strlen()函數(shù)的作用。

30.33解析:本題考查do…while語句形式:

do循環(huán)體

while表達(dá)式

首先執(zhí)行循環(huán)體語句,然后檢測循環(huán)控制條件表達(dá)式的值,若為真,則重復(fù)執(zhí)行循環(huán)體語句,否則退出循環(huán)。第1次循環(huán):b+=2,b=2,a-=2+b,a=11;第2次循環(huán):b=4,a=5;第3次循環(huán):b=6,a=-3,此時再判斷循環(huán)條件不滿足,退出循環(huán)。

31.x<z‖y<zx<z‖y<z解析:本題考查邏輯運(yùn)算符和邏輯表達(dá)式。x或y中至少有一個小于z,即x<z或y<z,是“或”的關(guān)系。

32.1212解析:x=(表達(dá)式1,表達(dá)式2,…)的形式,結(jié)果為最后一個表達(dá)式的值:x=(a=4,6*2)=2*6=12。

33.19

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

35.“d1.dat”“rb”或“d1.dat”“r+b”或“d1.dat”“rb+”“d1.dat”,“rb”,或“d1.dat”,“r+b”,或“d1.dat”,“rb+”,解析:打開文件的函數(shù)為fopen(”文件名”,“mode”),其中“mode”表示文件的打開方式。如果打開的是二進(jìn)制文件,其mode字符串可以是:“rb”、“wb”、“ab”、“rb+”、“wb+”、“ab+”。“r”表示以只讀方式打開。“w”表示以寫方式打開,如果已存在該文件名的文件,文件中的內(nèi)容將被清空。若文件名不存在,則將創(chuàng)建該文件。“a”為追加方式打開。若文件存在時;將打開這個文件并且在文件的末尾進(jìn)行追加。當(dāng)文件不存在,將創(chuàng)建新文件?!皉+”打開一個已存在文件用于更新(可讀可寫)?!皐+”創(chuàng)建個新文件用于更新,如果文件存在,文件被重寫(可讀可寫)。“a+”打開用于追加,當(dāng)文件不存在時,創(chuàng)建新文件,并在文件末尾進(jìn)行追加(可讀可寫)。根據(jù)題意,應(yīng)該填“d1.dst”,“rb”或其他等價的表達(dá)法。

36.時間時間解析:算法的復(fù)雜度主要指時間復(fù)雜度和空間復(fù)雜度。所謂算法的時間復(fù)雜度,是指執(zhí)行算法所需要的計(jì)算工作量;算法的空間復(fù)雜度,一般是指執(zhí)行這個算法所需要的內(nèi)存空間。

37.4040解析:本題中指針s1和s2都指向同一個內(nèi)存中的地址。因此語句“*s2=20;”執(zhí)行后,*\u3000s1=*s2=20。所以m最后的值為40。

38.白盒白盒解析:軟件測試的方法分為白盒測試方法和黑盒測試方法。

39.1-41-4解析:題目中首先讓x=5,然后進(jìn)入do-while循環(huán)體,輸出x-4的值1,此時x為1,表達(dá)式!(--x)的值為!(0)為真(此時x變?yōu)?),所以再次執(zhí)行循環(huán)體,輸出x-4的值-4,此時x為-4,表達(dá)式!(--x)的值為!(—5)為假,退出循環(huán)。故輸出結(jié)果是1-4。

40.EXCHANGE(zxy)或EXCHANGE(zxy);EXCHANGE(z,x,y)或EXCHANGE(z,x,y);

41.A

42.B

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

44.B解析:本題考查通過scanf函數(shù)輸入數(shù)據(jù)時的格式控制問題。變量j的格式控制為“%2d”,即只接收輸入數(shù)據(jù)的前兩位,從第三位開始直到空格之間的輸入都會被保存到變量y中,因?yàn)閥為浮點(diǎn)型數(shù)據(jù),所以輸出結(jié)果為選項(xiàng)B)。

45.B解析:此題考查了字符串輸入函數(shù)gets和字符串比較函數(shù)strcmp,另外還有字符輸出函數(shù)putchar。gets從標(biāo)準(zhǔn)輸入設(shè)備中讀入全部字符,包括空格,直到遇到回車符為止。strcmp是字符串比較函數(shù),即strcmp(字符串1,字符串2),如果字符串1=字符串2,則函數(shù)值為0;如果字符串1>字符串2,則函數(shù)值為一正整數(shù);如果字符串1<字符串2,則函數(shù)值為一負(fù)整數(shù)。putchar(c)函數(shù)將字符c輸出到標(biāo)準(zhǔn)輸出設(shè)備上。

46.C解析:R表中只有一個域名A,有兩個記錄,分別是m和n;s表中有兩個域名,分別是B和C,其所對應(yīng)的記錄分別為1和3。表T是由R的第一個記錄依次與s的所有記錄組合,然后再由R的第二個記錄與S的所有記錄組合,形成的一個新表。上述運(yùn)算符合關(guān)系代數(shù)的笛卡爾積運(yùn)算規(guī)則。關(guān)系代數(shù)中,笛卡爾積運(yùn)算用“×”來表示。因此,上述運(yùn)算可以表示為T=R×S。

47.CC?!窘馕觥拷Y(jié)構(gòu)化分析方法是面向數(shù)據(jù)流進(jìn)行需求分析的方法,采用自頂向下、逐層分解,建立系統(tǒng)的處理流程,以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏輯模型。

48.C隊(duì)列是指允許在一端進(jìn)行插入、而在另一端進(jìn)行刪除的線性表,選項(xiàng)A和選項(xiàng)B錯誤。允許插入的一端稱為隊(duì)尾,允許刪除的一端稱為隊(duì)頭。在隊(duì)列中,最先插入的元素將最先能夠被刪除,反之,最后插入的元素將最后才能被刪除。所以,隊(duì)列又稱為“先進(jìn)先出”或“后進(jìn)后出”的線性表,它體現(xiàn)了“先來先服務(wù)”的原則,選項(xiàng)C正確,選項(xiàng)D錯誤。

49.B

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

51.D解析:題目中定義的函數(shù)fun()有兩個參數(shù),一個是字符型變量ch,另一個是浮點(diǎn)型變景x,函數(shù)類型是void即無返回值。選項(xiàng)A調(diào)用fun的第1個參數(shù)是字符串常量與字符變量不匹配,所以不正確。選項(xiàng)B是有返回值函數(shù)的調(diào)用形式,不正確。選項(xiàng)C的第1個參數(shù)是錯誤的字符常量,字符常量是用單引號括起來的—個字符(是轉(zhuǎn)義字符可能有多個字符),故也不正確。選項(xiàng)D使用兩個整型常量調(diào)用fun這在C語言中是允許的。因?yàn)檎偷阶址涂梢宰詣愚D(zhuǎn)換,整型到浮點(diǎn)型也可以自動轉(zhuǎn)換。故應(yīng)該選擇D。

52.D解析:假設(shè)線性表的長度為n,則在最壞情況下,冒泡排序要經(jīng)過n/2遍的從前往后的掃描和n/2遍的從后往前的掃描,需要的比較次數(shù)為n(n-1)/2。

53.B解析:SEEK_END代表的是文件末尾,SEEK_SET代表的是文件的開始,SEEK_CUR代表的是文件當(dāng)前位置。

54.B

55.C解析:本題考查了字符的輸入函數(shù)getchar和利用scanf函數(shù)輸入一個字符。用scanf輸入字符時,格式說明字符應(yīng)該為%c。本題選項(xiàng)C)因?yàn)橹羔榩沒有賦初值,所以是一個不定值,不能直接將getchar讀入的字符賦給指針p所指向的字符,所以選項(xiàng)C錯誤。

56.C本題考查C語言轉(zhuǎn)義字符的含義。我們歸類了常用的轉(zhuǎn)義字符及其含義,如下,根據(jù)這些不難選出正確答案

轉(zhuǎn)義字符的意義:\n回車換行、\t橫向跳到下一制表位置、\v豎向跳格、\b退格、\r回車、\f走紙換頁、\\反斜線符、“\”\′單引號符、\\ddd1~3位八進(jìn)制數(shù)所代表的字符、\xhh1~2位十六進(jìn)制數(shù)所代表的字符。

57.A解析:本題中函數(shù)傳遞的是變量的地址,如果形參在函數(shù)中發(fā)生改變,相劉應(yīng)的實(shí)參也就有了改變。

58.C

59.C

60.D解析:將有6個元素的整型數(shù)組分兩行輸出到一個文件中,因?yàn)檩敵龅亩际菙?shù)字并且每行都沒有分隔符,所以當(dāng)再對其進(jìn)行讀取操作時,每一行都會被認(rèn)為是一個完整的數(shù),而換行符則作為它們的分隔符。

61.D

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

\n

62.C

\n在m數(shù)組中賦值的是字符串,其長度為7,末尾有結(jié)束符\0,故字節(jié)數(shù)為8,而n數(shù)組中賦的是字符,其長度為7,故C選項(xiàng)正確。

\n

63.A依據(jù)fun函數(shù),可知其要實(shí)現(xiàn)的功能是將S中第(t+1)個元素以前的元素逆置賦給數(shù)組P。由于fun中函數(shù)定義了靜態(tài)變量t=3,因此,main函數(shù)中調(diào)用函數(shù)fun(a,&x)時,就是要將數(shù)組a中前4個元素逆置賦給數(shù)x,最后輸出x數(shù)組。

64.D

\n本題考查鏈表結(jié)點(diǎn)的刪除,q一>next中存放的是r所指結(jié)點(diǎn)的首地址,將r所指結(jié)點(diǎn)的首地址存于p--next中,則實(shí)現(xiàn)刪除q所指點(diǎn)的功能,并保持鏈表連續(xù),P所指點(diǎn)與r所指結(jié)點(diǎn)相連。

\n

65.D

66.D第一次調(diào)用的是最內(nèi)層的f(n),即f(1)返回值是2。第二次調(diào)用中間的f(f(n)),即f(2)返回值是4。最后調(diào)用最外層的f(f(f(n))),即r(4)返回值是8。最后打印輸出。

67.C分配內(nèi)存空間函數(shù)malloe的調(diào)用形式:類型說明符*)malloe(size)。其功能是在內(nèi)存的動態(tài)存儲區(qū)中分配一塊長度為”size”字節(jié)的連續(xù)區(qū)域,函數(shù)的返回值為該區(qū)域的首地址。”類型說明符”表示把該區(qū)域用于何種數(shù)據(jù)類型。

68.Dx[0]是不能賦值的。

69.C

70.A本題考查數(shù)據(jù)庫中的數(shù)據(jù)管理技術(shù)相關(guān)知識。

數(shù)據(jù)管理技術(shù)的發(fā)展大體可以歸為三個階段:人工管理、文件系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng)。

人工管理階段:計(jì)算機(jī)主要用于科學(xué)計(jì)算。外部存儲器只有磁帶、卡片和紙帶等還沒有磁盤等直接存取存儲設(shè)備。軟件只有匯編語言,尚無數(shù)據(jù)管理方面的軟件。數(shù)據(jù)處理方式基本是批處理。這個階段有幾個特點(diǎn):數(shù)據(jù)不保存;應(yīng)用程序中包含自己要用到的全部數(shù)據(jù);數(shù)據(jù)不共享;數(shù)據(jù)不具有獨(dú)立性。

文件系統(tǒng)階段:計(jì)算機(jī)不僅用于科學(xué)計(jì)算,還用在信息管理方面。隨著數(shù)據(jù)量的增加,數(shù)據(jù)的存儲、檢索和維護(hù)問題成為緊迫的需要,數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)管理技術(shù)迅速發(fā)展起來。此時,外部存儲器已有磁盤、磁鼓等直接存取的存儲設(shè)備。軟件領(lǐng)域出現(xiàn)了操作系統(tǒng)和高級軟件。操作系統(tǒng)中的文件系統(tǒng)是專門管理外存的數(shù)據(jù)管理軟件,文件是操作系統(tǒng)管理的重要資源之一。數(shù)據(jù)處理方式有批處理,也有聯(lián)機(jī)實(shí)時處理。在文件系統(tǒng)支持下,數(shù)據(jù)開始從程序中逐步獨(dú)立出來,數(shù)據(jù)文件可以獨(dú)立、長期地存儲,數(shù)據(jù)的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)有了一定的區(qū)別。數(shù)據(jù)的邏輯結(jié)構(gòu)是指呈現(xiàn)在用戶面前的數(shù)據(jù)結(jié)構(gòu)形式。數(shù)據(jù)的物理結(jié)構(gòu)是指數(shù)據(jù)在計(jì)算機(jī)存儲設(shè)備上的實(shí)際存儲結(jié)構(gòu)。文件系統(tǒng)對計(jì)算機(jī)數(shù)據(jù)管理能力的提高雖然起了很大的作用,但是仍然存在許多根本性問題。主要表現(xiàn)在:數(shù)據(jù)文件是為滿足特定業(yè)務(wù)領(lǐng)域某一部門的專門需要而設(shè)計(jì),數(shù)據(jù)和程序相互依賴,數(shù)據(jù)缺乏足夠的獨(dú)立性;數(shù)據(jù)沒有集中管理的機(jī)制,其安全性和完整性無法保障,數(shù)據(jù)維護(hù)業(yè)務(wù)仍然由應(yīng)用程序來承擔(dān);數(shù)據(jù)冗余度大;對現(xiàn)有數(shù)據(jù)文件不易擴(kuò)充,不易移植,難以通過增、刪數(shù)據(jù)項(xiàng)來適應(yīng)新的應(yīng)用要求;各數(shù)據(jù)文件之間缺乏聯(lián)系,互相獨(dú)立,不能反映現(xiàn)實(shí)世界中事物之間的聯(lián)系。文件系統(tǒng)管理數(shù)據(jù)有如下特點(diǎn):數(shù)據(jù)可以長期保存;由文件系統(tǒng)管理數(shù)據(jù);數(shù)據(jù)共享性差,冗余度大;數(shù)據(jù)獨(dú)立性差。

數(shù)據(jù)庫管理系統(tǒng)階段:數(shù)據(jù)管理技術(shù)進(jìn)入數(shù)據(jù)庫系統(tǒng)階段。數(shù)據(jù)庫系統(tǒng)克服了文件系統(tǒng)的缺陷,提供了對數(shù)據(jù)更高級、更有效的管理。這個階段的程序和數(shù)據(jù)的聯(lián)系通過數(shù)據(jù)庫管理系統(tǒng)來實(shí)現(xiàn)(DBMS)。數(shù)據(jù)庫系統(tǒng)階段的數(shù)據(jù)管理具有以下特點(diǎn):

采用數(shù)據(jù)模型表示復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)模型不僅

溫馨提示

  • 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

提交評論