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

下載本文檔

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

文檔簡介

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

一、單選題(20題)1.在計算機(jī)中,算法是指()

A.加工方法B.解題方案的準(zhǔn)確而完整的描述C.排序方法D.查詢方法

2.

3.若有語句“typedefstructTT{charc;inta[4];}CIN;”,則下列敘述中正確的是()。

A.CIN是structTT類型的變量

B.TT是struct類型的變量

C.可以用TT定義結(jié)構(gòu)體變量

D.可以用CIN定義結(jié)構(gòu)體變量

4.一個C語言程序總是從()開始執(zhí)行。

A.書寫順序的第一函數(shù)B.書寫順序的第一條執(zhí)行語句C.主函數(shù)main()D.不確定

5.設(shè)有定義“intx=2;”,以下表達(dá)式中,值不為6的是()。

A.2*x,x+=2B.x++,2*xC.x*=(1+x)D.x*=x+1

6.對長度為n的無序線性表進(jìn)行順序查找,則查找成功、不成功時的平均數(shù)據(jù)比較次數(shù)分別為()。

A.n/2,nB.n+1/2,n-1C.n+1/2,nD.n-1/2,n-1

7.如果最常用的操作是取第i個結(jié)點及其前驅(qū),最節(jié)省時間的存儲方式是()。

A.單鏈表B.雙向鏈表C.單循環(huán)鏈表D.順序表

8.請問對一個排好序的數(shù)組進(jìn)行查找,時間復(fù)雜度為()

A.O(n)B.O(lgn)C.O(nlgn)D.O(1)

9.若某線性表最常用的操作是存取任一指定序號的元素和在最后進(jìn)行插入和刪除運(yùn)算,則利用()存儲方式最節(jié)省時間。

A.順序表B.雙鏈表C.帶頭結(jié)點的雙循環(huán)鏈表D.單循環(huán)鏈表

10.設(shè)有一個棧,元素依次進(jìn)棧的順序為A、B、C、D、E。下列()是不可能的出棧序列。

A.A,B,C,D,EB.B,C,D,E,AC.E,A,B,C,DD.E,D,C,B,A

11.下列語句中,()是錯誤的。A.x=x+1;B.x=x+y;C.x+y=x;D.x=4;

12.將數(shù)據(jù)和操作置于對象統(tǒng)一體中的實現(xiàn)方式是()。

A.隱藏B.抽象C.封裝D.結(jié)合

13.一個序列中有10000個元素,若只想得到其中前10個最小元素,最好采用_______方法

A.快速排序B.堆排序C.插入排序D.二路歸并排序

14.兩個或兩個以上模塊之間關(guān)聯(lián)的緊密程度稱為()。

A.耦合度B.內(nèi)聚度C.復(fù)雜度D.數(shù)據(jù)傳輸特性

15.

16.有以下程序

#include<stdio.h>

voidfun(int*a,intn)/*fun函數(shù)的功能是將a所指數(shù)組元素從大到小排序*/

{intt,i,j;

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

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

if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}

}

main()

{intc[10]={1,2,3,4,5,6,7,8,9,0},i;

fun(c+4,6);

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

printf("\n");

}

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

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

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

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

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

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

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

18.下列敘述中錯誤的是()。

A.線性表是由n個元素組成的一個有限序列

B.線性表是一種線性結(jié)構(gòu)

C.線性表的所有結(jié)點有且僅有一個前件和后件

D.線性表可以是空表

19.若要求從鍵盤讀入含有空格字符的字符串,應(yīng)使用函數(shù)A.getc()B.gets()C.getchar()D.scanf()

20.在面向?qū)ο蠓椒ㄖ?,一個對象請求另一對象為其服務(wù)的方式是通過發(fā)送()。A.調(diào)用語句B.命令C.口令D.消息

二、2.填空題(20題)21.在一棵二叉樹上第6層的結(jié)點個數(shù)最多是【】。

22.下列程序中的函數(shù)stropy2()實現(xiàn)字符串兩次復(fù)制,即將t所指字符串復(fù)制兩次到s所指內(nèi)存空間中,合并形成一個新字符串。例如,若t所指字符串為:efgh,調(diào)用strcpy2后,s所指字符串為:efghefgh。請?zhí)羁铡?/p>

#include<stdio.h>

#include<string.h>

voidstrcpy2(char*s,char*t)

{char*p=t;

while(*s++=*t++);

s=【】;

while(【】=*p++);

}

main()

{charstr1[100]="abed",str2[]="efgh";

strcpy2(str1,str2);printf("%s\n",str1);

}

23.閱讀下面語句,則程序的執(zhí)行結(jié)果是【】。

#include"stdio.h"

main()

{inta=-1,b=1,k;

if((++a<0)&&!(b--<=0))

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

elseprintf("%d,%d\n",b,a);}

24.有定義chara,b;若想通過&運(yùn)算符保留a對應(yīng)的二進(jìn)制數(shù)的第3位和第6位的值,其余位置0,則b的二進(jìn)制數(shù)應(yīng)是【】。

25.測試的目的是暴露錯誤,評價程序的可靠性;而______的目的是發(fā)現(xiàn)錯誤的位置并改正錯誤。

26.軟件測試中路徑覆蓋測試是整個測試的基礎(chǔ),它是對軟件【】進(jìn)行測試。

27.當(dāng)數(shù)據(jù)的物理結(jié)構(gòu)(存儲結(jié)構(gòu))改變時,不影響數(shù)據(jù)庫的邏輯結(jié)構(gòu),從而不致引起應(yīng)用程序的變化,這是指數(shù)據(jù)的【】。

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

fun(intx)

{staticinta=3;

a+=x;

return(a);

}

main()

{intk=2,m=1,n;

n=fun(k);

n=fun(m);

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

}

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

main()

{int=0;

while(n++<=1);

printf("%d,",n);

printf("%d",n++);

}

30.以下程序的功能是計算:s=1+12+123+1234+12345。請?zhí)羁铡?/p>

#include<stdio.h>

main()

intt=0.s=0,i:

for(i=1;i<=5;i++){t=i+【】;s=s+t;}

prinff("s=%d\n".s);}

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

32.以下isprime函數(shù)的功能是判斷形參a是否為素數(shù),是素數(shù),函數(shù)返回1,

否則返回0。請?zhí)羁铡?/p>

intisprime(inta)

{inti;

for(i=2;i<=a/2;i++)

if(a%i==0)【】;

【】;

}

33.與表達(dá)式a+=b等價的另一書寫形式是______。

34.在算法正確的前提下,評價一個算法的兩個標(biāo)準(zhǔn)是【】。

35.要求使下列程序輸出5個整數(shù),請?zhí)羁铡?/p>

for(i=0;i<=______;printf("%d\n",i+=2));

36.表達(dá)式1/2*(int)3.7/(int)(2.4*(1.5+2.5))值的數(shù)據(jù)類型為______。

37.設(shè)有下列的程序段;

charstr[]="Hello";

char*ptr;

ptr=str;

執(zhí)行上面的程序段后,*(ptr+5)的值為______。

38.面向?qū)ο蟮某绦蛟O(shè)計方法中涉及的對象是系統(tǒng)中用來描述客觀事物的一個______。

39.根據(jù)以下if語句寫出與其功能相同的switch語句(x的值在0~100之間)。

if語句:

if(x<60)m=1;

elseif(x<70)m=2;

elseif(x<80)m=3;

elseif(x<90)m=4;

elseif(x<100)m=5;

switch語句:

switch(【】)

{

【】m=1;break;

case6:m=2;break;

case7:m=3;break;

case8:m=4;break;

【】m=5;

}

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

main()

(inta=2,b=7,c=5;

switch(a>0)

{case1:switch(b<0)

{case1:switch(");break;

case2:printf("!");break;

}

case0:switch(c==5)

{case0:printf("*");break;

case1:printf("#");break;

case2:printf("$");break;

}

default:printf("&");

}

printf("\n");

}

三、1.選擇題(20題)41.以下程序的輸出結(jié)果是______。main(){inti,j,x=0;for(i=0;i<2;i++){x++;for(j=0;j<3;j++){if(j%2)continue;x++;}x++;}printf("x=%d\n",x);}

A.x=4B.x=8C.x=6D.x=12

42.單個用戶使用的數(shù)據(jù)視圖的描述稱為______。

A.外模式B.概念模式C.內(nèi)模式D.存儲模式

43.對長度為n的線性表排序,在最壞情況下,比較次數(shù)不是n(n-1)/2的排序方法是()。

A.快速排序B.冒泡排序C.直接插入排序D.堆排序

44.以下數(shù)組定義中錯誤的是A.intx[][3]={0};

B.intx[2][3]={{l,2},{3,4},{5,6}};

C.intx[][3]={{l,2,3},{4,5,6}};

D.intx[2][3]={l,2,3,4,5,6};

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

A.ABCDBCDCDDB.ABCDC.BCDD.BCDCDD

46.下列不合法的用戶標(biāo)識符是()。

A.j2_KEYB.DoubleC.4dD._8_

47.為使*p=20,下面正確的程序是()

A.#include<stdio.h>main(){inta=10,b=20,*p=&b;printf("%d\t%d\n",p,*p);}*p)

B.#include<stdio.h>main(){inta=10,b=20,*p=b;printf("%d\t\%d\n",p,*p)}

C.#include<stdio.h>main(){inta=10,b=20,*p;p=&a;p++;printf("%d\t\%d\n",p,*p);}}

D.#include<stdio.h>main(){inta=10,b=20,*p;*p=20;printf("%d\t\%d\n",p,*p);}

48.以下程序的輸出結(jié)果是______。main(){inti,a[10];for(i=9;i>=0;i-)a[i]=10-i;printf("%d%d%d",a[a],a[5],a[8]);}

A.258B.741C.852D.369

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

A.語句“goto12;”是合法的

B.for(;;)語句相當(dāng)于while(1)語句

C.if(表達(dá)式)語句中,表達(dá)式的類型只限于邏輯表達(dá)式

D.break語句可用于程序的任何地方,以終止程序的執(zhí)行

50.若有以下定義:

structlink

{intdata;

structlink*next;

}a,b,c,*p,*q;

且變量a和b之間已有如下圖所示的鏈表結(jié)構(gòu):

指針p指向變量a,q指向變量c。則能夠把c插入到a和b之間并形成新的鏈表的語句組是:

A.a.next=c;c.next=b;

B.p.next=q;q.next=p.next;

C.p->next=&c;q->next=p->next;

D.(*p).next=q;(*q).next=&b;

51.語句定義如下:charstrl[50],str2[20],ch;則下列語句正確的是______。

A.str1={"Crazy"};str2=str1;

B.str1={"Crazy"};str2={"English"};strcpy(str1,str2);

C.ch="xy";

D.ch='x';

52.有以下程序:voidswap(char*x,char*y){chart;t=*x,*x=*y;*y=t;}main(){char*s1="abc",*s2="123";swap(s1,s2);printf("%s,%s\n",s1,s2);}程序執(zhí)行后的輸出結(jié)果是()。

A.123,abcB.abc,123C.1bc,a23D.321,cba

53.有定義:inta=1,b=2,c=3,x;則以下選項中各程序段執(zhí)行后,x的值不為3的是()。

A.if(c<a)x=1;elseif(b<a)x=2;elsex=3;

B.if(a<3)x=3;elseif(a<2)x=2;elsex=1;

C.if(a<3)x=3;if(a<2)x=2;if(a<1)x=1;

D.if(a<b)x=b;if(b<c)x=c;if(c<a)x=a;

54.在printf函數(shù)中用來輸出十六制無符號的格式字符是()

A.d格式符B.x格式符C.u格式符D.o格式符

55.下列敘述中正確的是()。A.實體集之間一對一的聯(lián)系實際上就是一一對應(yīng)的關(guān)系

B.關(guān)系模型只能處理實體集之間一對一的聯(lián)系

C.關(guān)系模型屬于格式化模型

D.以上三種說法都不對

56.請讀程序:#include<stdio.h>main(){intnum=0;while(num<=2){num++;printf("%d\n",num);}}上面程序的輸出結(jié)果是()

A.1B.12C.123D.1234

57.fseek函數(shù)的正確調(diào)用形式是()。

A.fseek(文件指針,起始點,位移量)

B.fseek(文件指針,位移量,起始點)

C.fseek(位移量,起始點,文件指針)

D.fseek(起始點,位移量,文件指針)

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

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

59.C語言結(jié)構(gòu)體類型變量在程序執(zhí)行期間,()。

A.所有成員一直駐留在內(nèi)存中B.沒有成員駐留在內(nèi)存中C.部分成員駐留在內(nèi)存中D.只有一個成員駐留在內(nèi)存中

60.若有定義:char*st="howareyou";下列程序段中正確的是

A.chara[11],*p;strcpy(p=a+1,&st[4]);

B.chara[11];strcpy(++a,st);

C.chara[11];strcpy(a,st);

D.chara[],*p;strcpy(p=&a[1],st+2);

四、選擇題(20題)61.(63)線性表的順序存儲結(jié)構(gòu)和線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)分別是______。

A.順序存取的存儲結(jié)構(gòu)、順序存取的存儲結(jié)

B.隨機(jī)存取的存儲結(jié)構(gòu)、順序存取的存儲結(jié)構(gòu)

C.隨機(jī)存取的存儲結(jié)構(gòu)、隨機(jī)存取的存儲結(jié)

D.任意存取的存儲結(jié)構(gòu)、任意存取的存儲結(jié)構(gòu)

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

A.C程序中注釋部分只能放在程序最后

B.花括號“{“和”}”可以作為函數(shù)體的定界符,也可以作為復(fù)合語句的定界符

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

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

63.

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

#include<stdio.h>

voidmain

{ints=0,k;

for(k=7;k>1;k--)

{switch(k)

{case1:

case4:

case7:

s++:

break;

case2:

case3:

case6:break;

case0:

case5:

s+=2:

break;

}}

printf("s=%d",s);

}

A.s=3B.s=4C.s=5D.無輸出結(jié)果

64.設(shè)變量均已正確定義,若要通過;語句為變螢a1和a2賦數(shù)值l0和20,為變量cl和c2賦字符x和Yd以下所示的輸入形式中正確的是(注:口代表空格字符)

65.設(shè)有如圖所示二叉樹,對此二叉樹后序遍歷的結(jié)果為()。

A.ZBTYCPXAB.ATBZXCYPC.TZBACYXPD.ATBZXCPY

66.若intk=8;則執(zhí)行下列程序后,變量k的正確結(jié)果是

main()

{intk=8;

switch(k)

{case9:k+=1;

case10:k+=1;

default:k+=1;

case11:k+=1;break;

}

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

}

A.12B.1

C.10D.9

67.有下列程序:

main

{inti,s=0,t[]={1,2,3,4,5,6,7,8,9};

for(i=0;i<9;i+=2)s+=*(t+i);

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

}

程序執(zhí)行后的輸出結(jié)果是()。A.A.45B.20C.25D.36

68.

69.

70.

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

main

{inta,b,d=25;

a=d/10%9;

b=a&&(-1);

printf("%d,%d\n",a,b);}A.A.6,1B.2,1C.6,0D.2,0

72.設(shè)有如下說明:

以下說法正確的是()。

A.NEW是一個結(jié)構(gòu)體變量

B.NEW是一個結(jié)構(gòu)體類型

C.ST是一個結(jié)構(gòu)體類型

D.以上說明形式非法

73.有以下程序:

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

A.2B.0C.元素ch[5]的地址D.字符y的地址

74.

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

A.一個邏輯數(shù)據(jù)結(jié)構(gòu)只能有一種存儲結(jié)構(gòu)

B.數(shù)據(jù)的邏輯結(jié)構(gòu)屬于線性結(jié)構(gòu),存儲結(jié)構(gòu)屬于非線性結(jié)構(gòu)

C.一個邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲結(jié)構(gòu),且各種存儲結(jié)構(gòu)不影響數(shù)據(jù)處理的效率

D.一個邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲結(jié)構(gòu),且各種存儲結(jié)構(gòu)影響數(shù)據(jù)處理的效率

76.在深度為5的滿二叉樹葉中,葉子結(jié)點的個數(shù)為()。

A.32B.31C.16D.15

77.

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

#include<stdio.h>

voidp(int*x)

{printf("%d¨,++*x);

}

voidmain()

{inty=3;

p(&y);

}

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

78.

79.一名工作人員可以使用多臺計算機(jī),而一臺計算機(jī)可被多名工作人員使用,則實體工作人員與實體計算機(jī)之間的聯(lián)系是()。

A.—對一B.—對多C.多對多D.多對一

80.在C語言程序中可用做用戶標(biāo)識符的是()。

A.void123BBNB.aa_abccasC.as+b3-123IfD.6fDoSIG

五、程序改錯題(1題)81.下列給定程序中,函數(shù)fun的功能是:將s所指字符串的正序和反序進(jìn)行連接,形成的新串放在t所指的數(shù)組中。例如,當(dāng)S所指字符串為“ABCD”時,t所指字符串中的內(nèi)容應(yīng)為“ABCDDCBA”。請改正程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:

六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),它的功能是求出能整除x且不是偶數(shù)的整數(shù),并將這些整數(shù)按從小到大的順序放在PP所指的數(shù)組中,總個數(shù)通過形參n返回。如x中的值為30,則有4個數(shù)符合要求,它們是1、3、5、15。注意:部分源程序在文件prog1.c中。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:

參考答案

1.B在計算機(jī)中,算法被定義為對一個問題求解步驟的一種描述,是求解問題的方法,它是指令的有限序列,其中每條指令表示一個或者多個操作。算法具有有窮性、確定性、可行性、輸入和輸出五大特點。

在本題中,選項A、C、D的說法明顯偏離了算法的定義,因此正確答案選B。

2.A

3.DCIN為結(jié)構(gòu)體類型名,而不是結(jié)構(gòu)體變量。故本題答案為D選項。

4.C

5.AA選項中先計算逗號表達(dá)式的第1個表達(dá)式“2*x”,然后計算第2個表達(dá)式“x+=2”,即“x=x+2=4”,整個逗號表達(dá)式為第2個表達(dá)式的值4。所以A選項正確。B選項中首先計算逗號表達(dá)式的第1個表達(dá)式“x++”,此時x為3;再計算第2個表達(dá)式“2*x=2*3=6”,所以逗號表達(dá)式為第2個表達(dá)式的值6。C選項中的表達(dá)式可以表示為“x=x*(1+x)=2*(1+2)=6”。D選項中的表達(dá)式可以表示為“x=x*(x+1)=2*3=6”。故本題答案為A選項。

6.C

7.D

8.B

9.A

10.C

11.C

12.C對象具有封裝性,從外面看只能看到對象的外部特性,對象的內(nèi)部對外是封閉的。即封裝實現(xiàn)了將數(shù)據(jù)和操作置于對象統(tǒng)一體中。本題答案為C選項。

13.B

14.A解析:本題考核模塊獨立性的評價。評價模塊獨立性的主要標(biāo)準(zhǔn)有兩個;一是模塊之間的耦合,它表明兩個模塊之間互相獨立的程度,也可以說是兩個或兩個以上模塊之間關(guān)聯(lián)的緊密程度(所以,本題的正確答案為選項A);二是模塊內(nèi)部之間的關(guān)系是否緊密,稱為內(nèi)聚。一般來說,要求模塊之間的耦合盡可能地弱,即模塊盡可能獨立,而要求模塊的內(nèi)聚程度盡量地高。

15.A

16.D解析:在本題中,主函數(shù)在調(diào)用fun()函數(shù)進(jìn)行排序時,傳遞的參數(shù)是c+4和6,fun()函數(shù)實現(xiàn)的功能是將數(shù)組c的第5個元素開始的6個元素依次進(jìn)行從大到小的順序排列。排序之后,數(shù)組c的內(nèi)容變?yōu)閧1,2,3,4,9,8,7,6,5,0}。

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

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

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

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

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

18.CC.【解析】線性表是一種線性結(jié)構(gòu),由n(n≥0)個元素組成,所以線性表可以是空表。但是在線性表中,第一個結(jié)點沒有前件,最后一個結(jié)點沒有后件,其他結(jié)點有且只有一個前件和后件,所以選項C.是錯誤的。

19.Bscanf(\u3000)語句中用“空格”間隔不同的字符串,空格將被全部忽略掉,所以用scanf(\u3000)函數(shù)不能輸入空格;getehar(\u3000)函數(shù)用于輸入字符,其調(diào)用形式為:ch=getelaar(\u3000),getehar(\u3000)函數(shù)從終端讀入一個字符作為函數(shù)值,把讀入的字符賦給變量ch。在輸入時,空格、回車符都將作為字符讀入,而且只有在用戶敲入Enter鍵時,讀入才開始執(zhí)行。gets(\u3000)函數(shù)的凋用形式為:gets(str_adr),其中stradr是存放輸入字符串的起始地址,可以是字符數(shù)組名、字符數(shù)組元素的地址或字符指針變量。9ets函數(shù)用來從終端鍵盤讀入字符串(包括空格符),直到讀入一個換行符為止。getc(\u3000)函數(shù)的調(diào)用形式為:ch=getc(pf)其中pf是文件指針。函數(shù)的功能是從pf指定的文件中讀入一個字符,并把它作為函數(shù)值返回。

20.D解析:面向?qū)ο蟮氖澜缡峭ㄟ^對象與對象間彼此的相互合作來推動的,對象間的這種相互合作需要一個機(jī)制協(xié)助進(jìn)行,這樣的機(jī)制稱為消息。消息是一個實例與另一個實例之間傳遞的信息,它請求對象執(zhí)行某一處理或回答某一要求的信息,它統(tǒng)一了數(shù)據(jù)流和控制流。

21.3232解析:根據(jù)二叉樹的性質(zhì),在二叉樹的第k層上,最多有2的k-1次方個結(jié)點。所以,第6層的結(jié)點數(shù)最多為32。

22.s-1或--s或s--*s++s-1或--s或s--\r\n*s++解析:在函數(shù)。strcpy2()中,首先將指針t保存到指針p中,然后進(jìn)入第1個while()循環(huán),其循環(huán)條件為*s++=*t++,其中“*”和“++”運(yùn)算符的優(yōu)先級相同,但他們的結(jié)合性為從右至左,而“=”運(yùn)算符優(yōu)先級比較低,所以原表達(dá)式等價于(*s++)=(*(t++)),即將t當(dāng)前所指內(nèi)容復(fù)制到s當(dāng)前所指地址中,然后讓s和t同時往后移動一位,整個表達(dá)式返回的是復(fù)制給s的值。所以,當(dāng)t所指內(nèi)容是字符串結(jié)束符'\\0',時,while循環(huán)結(jié)束,原先t所指的整個字符串也就復(fù)制到s所指的地址中去了。但是,while循環(huán)最后一次判斷也會讓s和t往后移動一位,即此時s指向了字符串結(jié)束符'\\0'的后一位。所以第2次復(fù)制字符串之前,應(yīng)先將s指針往回移動一位,故前一空應(yīng)該填入s-1或其他等價形式。接下來的while循環(huán)實現(xiàn)第二次復(fù)制,照抄第1次的while循環(huán)就行,故后一空應(yīng)填入*s++。

23.101,0解析:與運(yùn)算兩邊的語句必須同時為真時,結(jié)果才為真,當(dāng)執(zhí)行完if((++a<0)&&!(b--<=0))時,a,b的值已經(jīng)發(fā)生了變化。

24.100100100100解析:“&”運(yùn)算符的運(yùn)算規(guī)則是:兩個二進(jìn)制數(shù)的對應(yīng)二進(jìn)制位只要有一個為0,則結(jié)果為0;二者都為1時,結(jié)果為1。因此,要想保留某位可用1,屏蔽某位用0。

25.調(diào)試調(diào)試

26.結(jié)構(gòu)結(jié)構(gòu)解析:路徑測試是白盒測試方法中的—種,它要求對程序中的每條路徑最少檢查一次,目的是對軟件的結(jié)構(gòu)進(jìn)行測試。

27.物理獨立性數(shù)據(jù)獨立性是數(shù)據(jù)與程序間的互不依賴性,即數(shù)據(jù)庫中數(shù)據(jù)獨立于應(yīng)用程序而不依賴于應(yīng)用程序。也就是說,數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲結(jié)構(gòu)與存取方式的改變不會影響應(yīng)用程序。數(shù)據(jù)獨立性一般分為物理獨立性與邏輯獨立性兩級。

28.6

29.333,3解析:本題在while(n++<=1)語句后,直接加了分號,說明如果while()的條件為真時,該循環(huán)什么都不做;n++是先取n的當(dāng)前值和I做比較,然后再將n加1。第一次循環(huán),n=0時,循環(huán)條件n++=0<=1成立,執(zhí)行循環(huán),然后得到n=1。第二次循環(huán),n=1時,循環(huán)條件n++=1<=1成立,執(zhí)行循環(huán),然后得到n=2。第三次循環(huán),n=2時,循環(huán)條件n++=2<=1不成立,不執(zhí)行循環(huán),但在判斷循環(huán)條件時仍將n加1,得到n=3。退出循環(huán)后執(zhí)行printf語句,第二個printf語句輸出n++,是先輸出n的當(dāng)前值3,然后再將n加1,即程序結(jié)束后得到n=4,但輸出的是3。

30.t*10t*10解析:程序中變量,用于存放表達(dá)式1+12+123+1234+12345之和,變量t用于存放其表達(dá)式的各項。當(dāng)i=1時,要使t=1;i=2時,t=12;i=3時,t=123;依此類推。每一次的t值是用上一次的t乘以10再加上此次的i的值,所以本題答案為t*10。

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

32.return0return1return0,return1解析:如果a能被i整除,則a是素數(shù),返回值為0。如果a不能被i整除,則a不是素數(shù),返回值為1。

33.a=a+ba=a+b解析:a+=b與a=a+b等價,作用是把變量a的值加b后再賦給變量a。

34.時間復(fù)雜度和空間復(fù)雜度時間復(fù)雜度和空間復(fù)雜度

35.88解析:本題考查基本的for循環(huán)條件,i+=2表示i每次遞增2,從0開始,輸出5個整數(shù)則需要的條件是i<=8。

36.整型整型解析:上面的表達(dá)式中,通過強(qiáng)制類型轉(zhuǎn)換把最后參與運(yùn)算的數(shù)據(jù)都轉(zhuǎn)換成了int型,所以最后得到的結(jié)果也是int類型。

37.'\0''\\0'解析:本題涉及字符數(shù)組和指針的兩個知識點:①在C語言中,字符型數(shù)組在存放字符串時會自動在末尾加上字符串結(jié)束標(biāo)識符'\\0'所以題中數(shù)組str有6個元素。②ptr指向數(shù)組str的首地址,ptr+5是指向str[5],*(ptr+5)是引用str[5]的值,即'\\0'。

38.實體實體

39.x/10case0:case1:case2:case3:case4:case5:case9:x/10\r\ncase0:case1:case2:case3:case4:case5:\r\ncase9:

40.#&#&解析:剛開始時,switch后面的表達(dá)式a>0為真(1),與case1匹配,然后執(zhí)行case1后面的switch語句,表達(dá)式b<0值為0,沒有與其匹配的語句,返回外層,因為外層沒有break語句,順序執(zhí)行case0后面的switch語句,表達(dá)式“c==5”值為1,與其后面的case1匹配,因此輸出#,遇到break返回外層,又因為外層沒有break語句,順序執(zhí)行default后的語句,輸出&。

41.B

42.A解析:選項A)正確,外模式是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式;選項B)不正確,全局?jǐn)?shù)據(jù)視圖的描述稱為概念模式,即數(shù)據(jù)庫中全部數(shù)據(jù)的整體邏輯結(jié)構(gòu)的描述;選項C)不正確,物理存儲數(shù)據(jù)視圖的描述稱為內(nèi)模式,即數(shù)據(jù)庫在物理存儲方面的描述;選項D)不正確,存儲模式即為內(nèi)模式。

43.D各種排序方法中最壞情況下需要比較的次數(shù)分別為:冒泡排序n(n-1)/2、快速排序n(n-1)/2、簡單插入排序n(n-1)/2、希爾排序0(n1.5)、簡單選擇排序n(n-1)/2、堆排序O(nlog2n)

44.B(16)B)解析:二維數(shù)組的初始化有以下幾種形式:①分行進(jìn)行初始化。②不分行的初始化。③部分?jǐn)?shù)組元素初始化。④省略第一維的定義,不省略第二維的定義。選項B)等號右邊分了3行,大于等號左邊數(shù)組的行數(shù)2。

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

46.C解析:在C語言程序中,合法標(biāo)識符的命名規(guī)則是:標(biāo)識符可以由字母、數(shù)字和下劃線組成,并且第一個字符必須是字母或下劃線。

47.A

48.C解析:在本題運(yùn)行時主要注意的是當(dāng)i=9時,a[i]=10-9=1;i=8時,a[i]=10-8=2;i=7時,a[i]=10-7=3;……依此類推,直到i=0時,a[i]=10-0=10;此時,i的值已變?yōu)?1,判斷for的循環(huán)條件,不成立,然后輸出a[2],a[5],a[8]分別為8,5,2。

49.B

50.D解析:本題考查鏈表的數(shù)據(jù)結(jié)構(gòu),必須利用指針變量才能實現(xiàn),即一個結(jié)點中應(yīng)包含一個指針變量,用它存放下一結(jié)點的地址。

51.D解析:str1和str2是數(shù)組名,是常量,其值不可改變,所以A和B中將字符串常量賦值給str1和str2是錯誤的。字符變量ch占一個字節(jié),只能存放一個字符,所以C也不正確。

52.C解析:首先看swap()函數(shù),函數(shù)中定義了一個臨時字符變量t,然后將形參指針x所指內(nèi)容存入t,再將形參指針y所指內(nèi)容存入到x所指內(nèi)容中,最后將臨時變量t的內(nèi)容存入到y(tǒng)所指內(nèi)容中。所以該函數(shù)實現(xiàn)的是:交換兩個字符指針?biāo)赶虻膬?nèi)容。在主函數(shù)中,首先定義了兩個字符指針s1和s2,同時用字符串'abc'和'123”來初始化它們,此時它們指向的是兩個字符串的第1個字符。所以,在調(diào)用完swap()函數(shù)后,彼此交換了兩個字符串的第1個字符,最后輸出結(jié)果為1bc,a23。故應(yīng)該選擇C。

53.C解析:選項A),因為前面兩個條件都不滿足,所以執(zhí)行x=3。選項B),a<3成立,執(zhí)行x=3。選項C),a<3成立,執(zhí)行x=3;a<2成立,執(zhí)行x=2;a<1不成立,不執(zhí)行x=1,所以執(zhí)行此段程序后x=2。選項D),a<b成立,執(zhí)行x=b,此時x=2;b<c成立,執(zhí)行x=c,此時x=3;c<a不成立,不執(zhí)行x=a,所以執(zhí)行此段程序后x=3。

54.B

55.D解析:實體集之間一對一的聯(lián)系不一定是一一對應(yīng)的關(guān)系。例如,在一個教室中,實體集“學(xué)生”與實體集“座位”之間是一對一的聯(lián)系。因為實體集“學(xué)生”中的每一個學(xué)生最多與實體集“座位”中的一個座位有聯(lián)系(學(xué)生坐在該座位上);并且,實體集“座位”中中的每一個座位也最多與實體集“學(xué)生”中的一個學(xué)生有聯(lián)系(座位上坐著該學(xué)生)。但該教室中的學(xué)生與座位之間不一定是一一對應(yīng)的關(guān)系,因為有可能某些座位是空的,沒有學(xué)生去坐。因此,選項A)中的說法是錯誤的。在關(guān)系模型中,由于使用表格數(shù)據(jù)來表示實體之間的聯(lián)系,因此,可以直接描述多對多的實體聯(lián)系。因此,選項B)中的說法也是錯誤的。關(guān)系模型是與格式化模型完全不同的數(shù)據(jù)模型,它與層次模型、網(wǎng)狀模型相比有著本質(zhì)的區(qū)別。關(guān)系模型是用表格數(shù)據(jù)來表示實體本身及其相互之間的聯(lián)系,它是建立在數(shù)學(xué)理論基礎(chǔ)上的。因此,選項C)中的說法也是錯誤的。

56.C

57.B解析:本題考查函數(shù)fseek的用法。fseek函數(shù)的調(diào)用形式為:

fseek(文件指針,位移量,起始點)

“起始點”用0,1或2代替,0代表“文件開始”,1為“當(dāng)前位置”,2為“文件末尾”。

“位移量”指以“起始點”為基點,向前移動的字節(jié)數(shù)。ANSIC和大多數(shù)C版本要求位移量是long型數(shù)據(jù),這樣當(dāng)文件長度大于64k時不致出現(xiàn)問題。ANSIC標(biāo)準(zhǔn)規(guī)定在數(shù)字末尾加一個字母L表示long型。

58.A在數(shù)據(jù)管理技術(shù)的發(fā)展過程中,經(jīng)歷了人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。其中數(shù)據(jù)獨立性最高的階段是數(shù)據(jù)庫系統(tǒng)這一階段。數(shù)據(jù)庫系統(tǒng)階段用數(shù)據(jù)模型來表示復(fù)雜的數(shù)據(jù),有較高的數(shù)據(jù)獨立性。數(shù)據(jù)庫系統(tǒng)為用戶提供了方便的用戶接口,用戶既可使用查詢語言或終端命令操作數(shù)據(jù)庫,也可以用程序方式來操作。數(shù)據(jù)庫管理系統(tǒng)提供了數(shù)據(jù)控制功能。

59.A解析:C語言結(jié)構(gòu)體類型變量在程序執(zhí)行期間所有成員一直駐留在內(nèi)存中。

60.A解析:本題綜合考查字符數(shù)組的賦值和strcpy函數(shù)的用法。C語言不允許用賦值表達(dá)式對字符數(shù)組賦值,如下面的語句就是非法的:strl=“China”,如果想把“China”這5個字符放到數(shù)組strl中,除了逐個地輸入外,還能使用strcpy函數(shù),該函數(shù)的功能是將一個字符串復(fù)制到一字符數(shù)組中。例如:strcpy(strl,“China”);或strcpy(strl,str2);注意,不能企圖用以下語句來實行賦值(將str2的值傳給strl):strl=str2;不能用賦值語句將一個字符串常量或字符數(shù)組直接給一個字符數(shù)組。

strcpy函數(shù)的結(jié)構(gòu)是:strcpy(字符數(shù)組1,字符串2)

其中,需要注意的是,字符數(shù)組1的長度不應(yīng)小于字符串2的長度,“字符數(shù)組1”必須寫成數(shù)組名形式,如(strl),“字符串2”可以是字符數(shù)組名,也可以是字符串常量,不能用賦值語句將一個字符串常量或字符數(shù)組直接給一個字符數(shù)組。

61.B

62.B花括號可以作為函數(shù)體的定界符,也可以作為復(fù)合語句的定界符。函數(shù)是c程序的基本單位,用戶可以命名自定義函數(shù),而庫函數(shù)名是固定的。c語句以分號結(jié)尾,分號是語句的一部分。

63.B

\n運(yùn)行程序,當(dāng)k=7時switch(7)執(zhí)行case:7,s++后s=1,break跳出。k--,k=7繼續(xù)循環(huán)switch(6),執(zhí)行case6;直接跳出循環(huán),k--變成5,繼續(xù)循環(huán)switch(5),執(zhí)行case5后面的語句s+=2,也相當(dāng)于s=s+2,此時s為3,break跳出,k變?yōu)?,繼續(xù)循環(huán),執(zhí)行case4為空,繼續(xù)執(zhí)行case7;s++為4跳出循環(huán),k--變?yōu)?,繼續(xù)循環(huán),執(zhí)行case3,空語句往下執(zhí)行case6,跳出,k--為2,繼續(xù)循環(huán),執(zhí)行case2;空語句往下執(zhí)行case3,空語句再執(zhí)行case7,跳出循環(huán),k--為1不符合循環(huán),

溫馨提示

  • 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

提交評論