2021年安徽省滁州市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)真題二卷(含答案)_第1頁
2021年安徽省滁州市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)真題二卷(含答案)_第2頁
2021年安徽省滁州市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)真題二卷(含答案)_第3頁
2021年安徽省滁州市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)真題二卷(含答案)_第4頁
2021年安徽省滁州市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)真題二卷(含答案)_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2021年安徽省滁州市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)真題二卷(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.對線性表進(jìn)行二分法檢索,其前提條件是()。

A.線性表以順序方式存儲(chǔ),并按關(guān)鍵碼值排好序

B.線性表以順序方式存儲(chǔ),并按關(guān)鍵碼的檢索頻率排好序

C.線性表以鏈?zhǔn)椒绞酱鎯?chǔ),并按關(guān)鍵碼值排好序

D.線性表以鏈?zhǔn)椒绞酱鎯?chǔ),并按關(guān)鍵碼的檢索頻率排好序

2.在所有的排序方法中,關(guān)鍵字比較的次數(shù)與記錄的初始排列次序無關(guān)的是()。

A.希爾排序B.冒泡排序C.直接插入排序D.直接選擇排序

3.對初始狀態(tài)為遞增序列的數(shù)組按遞增順序排序,最省時(shí)間的是插入排序算法,最費(fèi)時(shí)間的算法是()

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

4.若有定義intx,y;并已正確給變量賦值,則以下選項(xiàng)中與表達(dá)式(x一y)(x++):(y++)中的條件表達(dá)式(x-y)等價(jià)的是()A.(x-y<0|x-y>0)B.x-y<0).C.(x-y>0)D.(x-y==)

5.設(shè)有以下語句charchl,ch2;scanf("%c%C",&chl,&ch2);若要為變量chl和ch2分別輸入字符A和B,正確的輸入形式應(yīng)該是()。

A.A和B之間用逗號間隔B.A和B之間不能有任何間隔符C.A和B之間可以用回車間隔D.A和B之間用空格間隔

6.對于移動(dòng)平均算法,是計(jì)算某變量之前n個(gè)數(shù)值的算術(shù)平均,正確的說法是()

A.空間復(fù)雜度是O(1)B.空間復(fù)雜度是O(n)C.空間復(fù)雜度是O(logn)D.空間復(fù)雜度是O(nlogn)

7.若變量c為char類型,能正確判斷出c為小寫字母的表達(dá)式是A.A.′a′<=c<=′z′c="">=′a′)||(c<=′z′)

B.(′a′>=c)and(′z′>=c)

C.(′a′<=c)and(′z′>=c)

D.(c>=′a′)&&(c<=′z′)

8.算法分析的目的是()。

A.找出數(shù)據(jù)結(jié)構(gòu)的合理性B.找出算法中輸入和輸出之間的關(guān)系C.分析算法的易懂性和可靠性D.分析算法的效率以求改進(jìn)

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

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

10.若有以下定義,則能使值為3的表達(dá)式是intk=7,x=12;

A.x%=(k%=5)B.x%=(k-k%5)C.x%=k-k%5D.(x%=k)-(k%=5)

11.

12.有以下程序:#include<stdio.h>main(){FILE*pf;char*s1=“China”,*s2=“Beijing”;pf=fopen(“abc.dat”,“wb+”);fwrite(s2,7,1,pf);rewind(pf);/*文件位置指針回到文件開頭*/fwrite(s1,5,1,pf);fclose(pf);}程序執(zhí)行后,abc.dat文件的內(nèi)容是()。

A.ChinaB.ChinangC.ChinaBeijingD.BeijingChina

13.設(shè)有定義intn=0,*p=&n,**q=&p;,則下列選項(xiàng)中正確的賦值語句是

A.p=1;B.*q=2;C.q=p;D.*p=5;

14.數(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)系

15.下列敘述中正確的是A.C語言中既有邏輯類型也有集合類型

B.C語言中沒有邏輯類型但有集合類型

C.C語言中有邏輯類型但沒有集合類型

D.C語言中既沒有邏輯類型也沒有集合類型

16.以下不能將s所指字符串正確復(fù)制到t所指存儲(chǔ)空間的是()。A.while(*t=*s){t++;s++;}

B.for(i=0;t[i]=s[i];i++);

C.do{*t++:*s++;}while(*s);

D.for(i=0,j=0;t[i++]=s[j++];);

17.有以下程序:main(){intk=5,n=0;do{switch(k){case1:case3:n+=l;k--;break;defalut:n=0;k--;case2:case4:n+=2;k--;break:}printf("%d",n);}while(k>0&&n<5);}程序運(yùn)行后的輸出結(jié)果是()。A.235B.0235C.02356D.2356

18.軟件設(shè)計(jì)中劃分模塊的一個(gè)準(zhǔn)則是()。A.低內(nèi)聚低耦合B.高內(nèi)聚低耦合C.低內(nèi)聚高耦合D.高內(nèi)聚高耦合

19.下列運(yùn)算符中優(yōu)先級最高的是()。

A.!B.%C.-=D.&&

20.有以下程序:#include<stdio.h>voidfun(int*a,int*b){for(;(*a<*B)||(getchar()!=‘@’);){(*a)++;(*b)--;}}main(){inti=0,j=5;fun(&i,&j);printf(“%d,%d\n”,i,j);}程序運(yùn)行時(shí)在第1列開始輸入ab@并按<Enter>鍵,則運(yùn)行結(jié)果是()。

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

二、2.填空題(20題)21.在面向?qū)ο蠓椒ㄖ?,類之間共享屬性和方法的機(jī)制稱為______。

22.在深度為7的滿二叉樹中,度為2的結(jié)點(diǎn)個(gè)數(shù)為【】。

23.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu),循環(huán)隊(duì)列屬于______結(jié)構(gòu)。

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

#include<string.h>

main()

{printf("%d\n",strlen("IBM\n012\1\\"));}

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

#include<stdio.h>

longfib(intg)

{switch(g)

{case0:return0;

case1:

case2:return1;}

return(fib(g-1)+fib(g-2));}

main()

{longk;

k=fib(5);

printf("k=%51d\n",k);}

26.在鏈表的運(yùn)算過程中,能夠使空表與非空表的運(yùn)算統(tǒng)一的結(jié)構(gòu)是______。

27.若按功能劃分,軟件測試的方法通常分為______測試方法和黑盒測試方法。

28.下面rotate函數(shù)的功能:將n行n列的矩陣A轉(zhuǎn)置為A',請?zhí)羁铡?/p>

#defineN4

voidrotate(inta[][N])

{inti,j,t;

for{i=0;i<N;j++}

for{j=0;【】;j++}

{t=a[i][j];

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

a[j][i]=t;

}

}

29.已有定義:charc=′′;inta=1,b;(此處c的初值為空格字符),執(zhí)行b=!c&&a;后b的值為【】。

30.若a=1,b=2,則表達(dá)式!(x=A)‖(y=B)&&0的值是______。

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

main()

{charc=′z′;

printf("%c",c-25);}

32.下面程序的輸出是【】。

main()

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

for(i=0;i,10;i++)arr[i]=i;

for(i=1;i<4;i++)k+=arr[i]+i;

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

}

33.有以下程序:

voidf(inty,int*x)

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

main()

{intx=2,y=4;

f(y,&x);

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

}

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

34.有以下程序段,且變量已正確定義和賦值

for(s=1.0,k=1;k<=n;k++)s=s+1.0/(k*(k+1));

printf("s=%f\n\n",s);

請?zhí)羁?,使下面程序段的功能與之完全相同

s=1.0;k=1;

while(【】){s=s+1.0/(k*(k+1));【】;}

printf("s=%f\n\n",s);

35.請用位運(yùn)算實(shí)現(xiàn)下述目標(biāo)(設(shè)16位二進(jìn)制數(shù)的最低位為零位):

(1)輸出無符號正整數(shù)m的第i個(gè)二進(jìn)制位的數(shù)值。

(2)將m的第i個(gè)二進(jìn)制位置1,其余的位不變,然后輸出m。

#include"stdio.h"

【】

main()

{

unsignedk,i,m=0;

scanf("%d%d",&m,&i);

k=【】;

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

k=pow(2,i);

m=【】;

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

}

36.下面程序的功能是將一個(gè)字符串str的內(nèi)容顛倒過來,請?zhí)羁铡?/p>

main()

{

inti,j,【】;charstr[]={"1234567");

for(i=0,j=strlen(str)【】;i<j;i++,j--)

{k=str[i];str[i]=str[j];str[j]=k;}

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

}

37.若有如下程序:

main()

{inta[][2]={1,2,6,9,11},(*t)[2];

t=a;

printf("%d,%d\n",*(t[1]+1),(*t)[1]);

}

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

38.當(dāng)線性表采用順序存儲(chǔ)結(jié)構(gòu)實(shí)現(xiàn)存儲(chǔ)時(shí),其主要特點(diǎn)是______。

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

main()

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

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

for(j=i+1;j<3;j++)a[j][i]=0;

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

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

printf("\n");

}

}

40.用以下程序把從鍵盤輸入的字符存放到一個(gè)文件中,用字符#作為結(jié)束符,請按題意要求填空完善程序。

#include<stdio.h>

main()

{FILE*fp;

charch,fname[10];

printf("Inputthenameoffile\n");

gets(fname);

if(fp=fopen(【】))==NULL)

{printf("can'topen\n");

【】;

}

while((ch=getchar())!='#')

fputc(【】);

fclose(fp);

}

三、1.選擇題(20題)41.下列程序執(zhí)行后輸出結(jié)果是()main(){chararr[2][4];strcpy(arr,"you");strcpy(arr,[1],"me");arr[0][3]='&';printf("%s\n",arr);}

A.you&meB.youC.meD.err

42.下面程序的輸出結(jié)果是()。main(){structm1{inta;intb;}en[2]={1,3,2,7);printf("%d\n",en[0].b/en[0].a*en[1].a);

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

43.程序流程圖(PFD)中的箭頭代表的是()。

A.組成關(guān)系B.控制流C.調(diào)用關(guān)系D.數(shù)據(jù)流

44.下列選項(xiàng)中不合法的+六進(jìn)制數(shù)是()。

A.OxffB.OXllC.OxlgD.OXabc

45.以下正確的說法是______。

A.實(shí)參和與其對應(yīng)的形參各占用獨(dú)立的存儲(chǔ)單元

B.實(shí)參和與其對應(yīng)的形參共用一個(gè)存儲(chǔ)單元

C.只有當(dāng)實(shí)參和與其對應(yīng)的形參同名時(shí)才共用存儲(chǔ)單元

D.型參是虛擬的,函數(shù)在沒有被調(diào)用時(shí),不占用存儲(chǔ)單元

46.閱讀下列程序,則執(zhí)行后的結(jié)果為#include"stdio.h"main(){intc[][4]={1,2,3,4,5,6,7,34,213,56,62,3,23,12,34,56};printf("%x,%x\n",c[2][2],*(*(c+1)+1));}

A.3e,6B.62,5C.56,5D.3E,6

47.下列關(guān)于棧的描述中錯(cuò)誤的是()。A.棧是先進(jìn)后出的線性表B.棧只能順序存儲(chǔ)C.棧具有記憶作用D.對棧的插入與刪除操作中,不需要改變棧底指針

48.設(shè)有以下程序段:structst{intn;structst*next;};staticstructsta[3]={5,&a[1],7,&a[2],9,'\0'),*p;p=&a[0];下面選項(xiàng)中,其值為6的表達(dá)式為______。

A.P++->nB.p->n++C.(*p).n++D.++p->n

49.數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是指()。

A.數(shù)據(jù)所占的存儲(chǔ)空間

B.數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的存放形式

C.數(shù)據(jù)在計(jì)算機(jī)中的順序存儲(chǔ)方式

D.存儲(chǔ)在計(jì)算機(jī)外存中的數(shù)據(jù)

50.下列不屬于軟件工程的3個(gè)要素的是______。

A.工具B.過程C.方法D.環(huán)境

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

A.if(s1>s2)S;

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

C.if(strcmp(s2,s1)>0)S;

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

52.若有以下定義:intt[3][2];,能正確表示t數(shù)組元素地址的表達(dá)式是______。

A.&t[3][2]B.t[3]C.t[1]D.*t[2]

53.設(shè)有下列定義:structsk{intm;floatx;}data,*q;若要使q指向data中的m域,正確的賦值語句是()。

A.q=&data.m;

B.*q=data.m;

C.q=(structsk*)&data.m;

D.q=(structsk*)data.m;

54.有以下程序;main(){chars[]={"aaiou"},*ps;ps=s;printf("%c\n",*ps+4);}程序運(yùn)行后的輸出結(jié)果是()。

A.aB.eC.uD.元素s[4]的地址

55.下列有關(guān)數(shù)據(jù)庫的描述,正確的是A.數(shù)據(jù)處理是將信息轉(zhuǎn)化為數(shù)據(jù)的過程

B.數(shù)據(jù)的物理獨(dú)立性是指當(dāng)數(shù)據(jù)的邏輯結(jié)構(gòu)改變時(shí),數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)不變

C.關(guān)系中的每一列稱為元組,一個(gè)元組就是一個(gè)字段

D.如果一個(gè)關(guān)系中的屬性或?qū)傩越M并非該關(guān)系的關(guān)鍵字,但它是另一個(gè)關(guān)系的關(guān)鍵字,則稱其為本關(guān)系的外關(guān)鍵字

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

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

57.下列一維數(shù)組說明中,不正確的是()。

A.intN;

B.floata[]={1,6,6,0,2};scanf("%d",&N);intb[N];

C.#defineS10

D.inta[S+5];

58.下列選項(xiàng)中,不能用作標(biāo)識符的是A._1234_B._1_2C.int_2_D.2_int_

59.下列選項(xiàng)中非法的字符常量是()。

A.'\t'B.'\039'C.','D.'\n'

60.下述關(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題)61.若有代數(shù)式(其中e僅代表自然對數(shù)的底數(shù),不是變量),則以下能夠正確表示該代數(shù)式的C語言表達(dá)式是()。

A.sqrt(fabs(pow(n,x)+exp(x)))

B.sqrt(fabs(pow(n,x)+pow(x,e)))

C.sqrt(abs(n^x+e^x)

D.sqrt(fabs(pow(x,n)+exp(x)))

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

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

63.

64.已知:chara;intb;floatc;doubled;執(zhí)行語句“c=a+b+c+d;”后,變量c的數(shù)據(jù)類型是()。

A.intB.charC.floatD.double

65.C語言可執(zhí)行程序的開始執(zhí)行點(diǎn)是()。

A.包含文件中的第一個(gè)函數(shù)B.程序中第一個(gè)函數(shù)C.程序中的main()函數(shù)D.程序中第一條語句

66.下面描述中錯(cuò)誤的是()。

A.系統(tǒng)總體結(jié)構(gòu)圖支持軟件系統(tǒng)的詳細(xì)設(shè)計(jì)

B.軟件設(shè)計(jì)是將軟件需求轉(zhuǎn)換為軟件表示的過程

C.數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)庫設(shè)計(jì)是軟件設(shè)計(jì)的任務(wù)之一

D.PAD圖是軟件詳細(xì)設(shè)計(jì)的表示工具

67.有以下程序:

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

A.10,One*Dream!B.9,One*Dream!C.9,One*WorldD.10,One*World

68.設(shè)有如下三個(gè)關(guān)系表:

69.下列關(guān)于線性鏈表的敘述中,正確的是()。

A.各數(shù)據(jù)結(jié)點(diǎn)的存儲(chǔ)空間可以不連續(xù),但它們的存儲(chǔ)順序與邏輯順序必須一致

B.各數(shù)據(jù)結(jié)點(diǎn)的存儲(chǔ)順序與邏輯順序可以不一致,但它們的存儲(chǔ)空間必須連續(xù)

C.進(jìn)行插入與刪除時(shí),不需要移動(dòng)表中的元素

D.各數(shù)據(jù)結(jié)點(diǎn)的存儲(chǔ)順序與邏輯順序可以不一致,它們的存儲(chǔ)空間也可以不一致

70.合法的main函數(shù)命令參數(shù)形式是()。

A.main(inta,char*c[])

B.main(intarc,char**arv)

C.main(intargc,char*argv)

D.main(intargv,char*argc[])

71.下列描述中正確的是()。

A.算法是指對解題方案的準(zhǔn)確而完整的描述

B.算法的有窮性是指算法程序的長度是有限的

C.算法是否有效與擁有的情報(bào)無關(guān)

D.算法的基本特征有可行性、確定性和有窮性

72.執(zhí)行下列程序后,輸出的結(jié)果是()。#include<stdio.h>#defineS(X)X*Xvoidmain{inta=9,k=3,m=2;a/=S(k+m)/S(k+m):printf("%d",a);}A.1B.4C.9D.0

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

A.程序錯(cuò)無輸出結(jié)果B.31.5C.7.5D.14.0

74.

75.在軟件設(shè)計(jì)中不使用的工具是()。

A.系統(tǒng)結(jié)構(gòu)圖

B.程序流程圖

C.PAD圖

D.數(shù)據(jù)流圖(DFD圖)

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

A.詳細(xì)設(shè)計(jì)

B.需求分析

C.總體設(shè)計(jì)

D.編程調(diào)試

77.(9)下列敘述中正確的是()

A.數(shù)據(jù)庫是一個(gè)獨(dú)立的系統(tǒng),不需要操作系統(tǒng)的支持

B.數(shù)據(jù)庫設(shè)計(jì)是指設(shè)計(jì)數(shù)據(jù)庫管理系統(tǒng)

C.數(shù)據(jù)庫技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)共享的問題

D.數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)必須與邏輯結(jié)構(gòu)一致

78.

79.

80.有以下程序:

#definef(x)(x*x)main

{

inti1,i2;

i1=f(8)/(4);i2=f(4+4)/f(2+2);

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

}

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

A.64,28B.4,4C.4,3D.64,64

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)ptoc的功能是:利用插入排序法對字符串中的字符按從小到大的順序進(jìn)行排序。插入法的基本方法是:先對字符串中的頭兩個(gè)元素進(jìn)行排序,然后把第3個(gè)字符插入前兩個(gè)字符中,插入后前3個(gè)字符依然有序;再把第4個(gè)字符插入前三個(gè)字符中,待排序的字符串已

在主函數(shù)中賦予。

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

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

試題程序:

#include<strin9.h>

#include<stdi0.h>

#defineM80

voidproc(char*arr)

{inti,j,n;charch;

n=strlen(arr):

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

//****found****

{c=arr[i];

j=i-1;

while((j>=o)&&(ch<arr[j]))

{

arr[j+1]=arr[j];

j--;

}

arr[j+1]=ch;

}

}

voidmain

{

chara[M]="QWERTYUIOPASDFGHJKLMNBVCXZ";

printf("Theoriginalstring:%s\n",a);

proc(a);

printf("Thestringaftersortin9:

%s\n\n",a);

}

六、程序設(shè)計(jì)題(1題)82.請編寫一個(gè)函數(shù)proc(),它的功能是:根據(jù)以下公式求7c的值(要求滿足精度0.0005,即某項(xiàng)小于0.005時(shí)停止迭代)。程序運(yùn)行后,如果輸入精度0.0005,則程序輸出3.140578。注意:部分源程序給出如下。請勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.A解析:對線性表進(jìn)行二分法檢索,要求線性表是按順序方式存儲(chǔ)的,并按關(guān)鍵碼值的大小排好序,而不是按關(guān)鍵碼的檢索頻率排序。

2.D

3.B

4.A條件表達(dá)式:x=表達(dá)式1,表達(dá)式2:表達(dá)式3的含義是:先求解表達(dá)式1,若為非0(真),則求解表達(dá)式2,將表達(dá)式2的值賦給x。若表達(dá)式1的值為0(假),則求解表達(dá)式3,將表達(dá)式3的值賦給x。在本題中與表達(dá)式1:(x-y等價(jià)的是(x-y>0)。

5.Bscanf輸入函數(shù)中,格式控制J必須嚴(yán)格按照函數(shù)中的要求進(jìn)行輸入,在scanf("%c%c",&chl,&ch2)的格式控制語句中沒有任何字符進(jìn)行間隔,所以在輸入時(shí)也不能使用任何字符進(jìn)行間隔,所以答案選擇B。

6.A

7.D

8.D解析:算法分析是指對一個(gè)算法的運(yùn)行時(shí)間和占用空間做定量的分析,一般計(jì)算出相應(yīng)的數(shù)量級,常用時(shí)間復(fù)雜度和空間復(fù)雜度表示。分析算法的目的就是要降低算法的時(shí)間復(fù)雜度和空間復(fù)雜度;提高算法的執(zhí)行效。率。

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

10.D解析:運(yùn)算符“%”的兩側(cè)都應(yīng)該是整型數(shù)。另外,本題需要掌握的知識點(diǎn)是:x%=k,等價(jià)于x=x%k。注意:強(qiáng)制類型轉(zhuǎn)換表達(dá)式。

11.B

12.B題目中先是將s2字符串寫入adc.dat中,然后執(zhí)行rewind函數(shù)將寫指針放置于文件開頭,寫入s1字符串。s1字符串將前5個(gè)字符覆蓋,所以最終結(jié)果為Chinang。故本題答案為B選項(xiàng)。

13.D解析:選項(xiàng)A),B),C)的指針賦值表達(dá)方式都不正確,*p=5表達(dá)整數(shù)5放到指針p所指向的存儲(chǔ)單元中。注意:通過指針引用一個(gè)存儲(chǔ)單。

14.C(10)C)解析:DB即數(shù)據(jù)庫(Database),是統(tǒng)一管理的相關(guān)數(shù)據(jù)的集合;DBMS即數(shù)據(jù)庫管理系統(tǒng)(DatabaseManagementSystem),是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件,為用戶或應(yīng)用程序提供訪問DB的方法;DBS即數(shù)據(jù)庫系統(tǒng)(DatabaseSystem)由如下5部分組成,數(shù)據(jù)庫(數(shù)據(jù))、數(shù)據(jù)庫管理系統(tǒng)(軟件)、數(shù)據(jù)庫管理員(人員)、系統(tǒng)平臺之一——硬件平臺(硬件)、系統(tǒng)平臺之二——軟件平臺(軟件)。

15.D解析:在C語言中沒有邏輯類型,邏輯類型用整型來表示,故選項(xiàng)A和選項(xiàng)C不正確,C語言中沒有集合類型,故選項(xiàng)B不正確。所以,D選項(xiàng)為所選。

16.C解析:C項(xiàng)復(fù)制時(shí)沒有復(fù)制結(jié)束串“\0”。

17.B本題考查分支語句用法加個(gè)句號因?yàn)樽兞康某跏贾捣謩e為k一5、n一0,所以程序第1次進(jìn)入循環(huán)時(shí),執(zhí)行default語句,輸出0,k減1;這時(shí)n=0、k=4,程序進(jìn)行第2次循環(huán),執(zhí)行case4:這個(gè)分支,結(jié)果是n=2、k=3,打印出2;這時(shí)n=2、k=3,break跳出,程序進(jìn)行第3次循環(huán),執(zhí)行case3:這個(gè)分支,結(jié)果是n=3、k=2,打印出3;這時(shí)n一3、k2,b¨ak跳出,程序然后進(jìn)行第4次循環(huán),執(zhí)行case2:case4:這個(gè)分支,結(jié)果是n=5、k=1,打印出5,break跳出,這時(shí)因?yàn)閚=5不滿足n<5的循環(huán)條件,因此循環(huán)結(jié)束。

18.B一般較優(yōu)秀的軟件設(shè)計(jì),應(yīng)盡量做到高內(nèi)聚、低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨(dú)立性。

19.A

20.Dfun函數(shù)接收兩個(gè)整型指針變量a、b。for循環(huán)判斷a、b指向的值大小和getchar讀入的字符是否為“@”來決定循環(huán)是否執(zhí)行。循環(huán)體內(nèi)對a、b指向的值各自自增1、自減1。main函數(shù)定義并初始化實(shí)參i的值為0,實(shí)參j的值為5,調(diào)用函數(shù)fun,傳入i、j的地址。所以形參a指向i,形參b指向j,*a的值為0,*b的值為5,*a<*b為真,執(zhí)行循環(huán)體;*a的值為1,*b的值為4,*a<*b為真,執(zhí)行循環(huán)體;*a的值為2,*b的值為3,*a<*b為真,執(zhí)行循環(huán)體;*a的值為3,*b的值為2,*a<*b為假,getchar讀入字符“a”,執(zhí)行循環(huán)體;*a的值為4,*b的值為1,*a<*b為假,getchar讀入字符“b”,執(zhí)行循環(huán)體;*a的值為5,*b的值為0,*a<*b為假,getchar讀入字符“@”,fun函數(shù)執(zhí)行完畢,main函數(shù)輸出5,0。故本題答案為D選項(xiàng)。

21.繼承繼承解析:在面向?qū)ο蟮某绦蛟O(shè)計(jì)方法中,某些屬性和方法是可以共享的,由于類從父類中繼承而來,這樣提高了軟件的可重用性。

22.63或26-163或26-1解析:在滿二叉樹中,每層結(jié)點(diǎn)都是滿的,即每層結(jié)點(diǎn)都具有最大結(jié)點(diǎn)數(shù)。深度為k的滿二叉樹,一共有2k-1個(gè)結(jié)點(diǎn),其中包括度為2的結(jié)點(diǎn)和葉子結(jié)點(diǎn)。因此,深度為7的滿二叉樹,一共有27-1個(gè)結(jié)點(diǎn),即127個(gè)結(jié)點(diǎn)。根據(jù)二叉樹的另一條性質(zhì),對任意一棵二叉樹,若終端結(jié)點(diǎn)(即葉子結(jié)點(diǎn))數(shù)為n0,而其度數(shù)為2的結(jié)點(diǎn)數(shù)為n2,則n0=n2+1。設(shè)深度為7的滿二叉樹中,度為2的結(jié)點(diǎn)個(gè)數(shù)為x,則改樹中葉子結(jié)點(diǎn)的個(gè)數(shù)為x+1。則應(yīng)滿足x+(x+1)=127,解該方程得到,x的值為63。結(jié)果上述分析可知,在深度為7的滿二叉樹中,度為2的結(jié)點(diǎn)個(gè)數(shù)為63。

23.存儲(chǔ)或物理或存儲(chǔ)結(jié)構(gòu)或物理結(jié)構(gòu)存儲(chǔ)或物理或存儲(chǔ)結(jié)構(gòu)或物理結(jié)構(gòu)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空間中的存放形式稱為數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)(也稱數(shù)據(jù)的物理結(jié)構(gòu))。所謂循環(huán)隊(duì)列,就是將隊(duì)列存儲(chǔ)空間的最后一個(gè)位置繞到第一個(gè)位置,形成邏輯上的環(huán)狀空間。供隊(duì)列循環(huán)使用??芍?,循環(huán)隊(duì)列應(yīng)當(dāng)是物理結(jié)構(gòu)。

24.99解析:本題的字符串中共有9個(gè)字符,它們分別是\'I\'、\'B\'、\'M\'、\'\\n\'、\'0\'、\'1\'、\'2\'、\'\\1\'、\'\\\\\',其中,'\\n'表示換行,'\\\\'表示反斜杠字符'\\',所以本題的最后輸出結(jié)果為9。

25.k=5k=5解析:本題主要考查了函數(shù)的遞歸調(diào)用方法。g=0或g=1或g=2是遞歸的終止條件,然后用回代的方法從一個(gè)已知值推出下一個(gè)值,直到計(jì)算出最終結(jié)果。

26.循環(huán)鏈表循環(huán)鏈表解析:在循環(huán)鏈表中,由于設(shè)置了一個(gè)頭結(jié)點(diǎn),因此在任何情況下,循環(huán)鏈表中至少有一個(gè)結(jié)點(diǎn)存在,從而使空表與非空表的運(yùn)算統(tǒng)一。

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

28.j<=ij<=i解析:由題意可知第一個(gè)空應(yīng)填入j<=i,第二個(gè)空應(yīng)填入a[i][j]=a[j][i]。

29.11解析:字符空格的ASCII碼不為0,所以本題中表達(dá)式\ue008!c\ue009的值為0,b=0&&1的結(jié)果顯然為0。

30.00解析:根據(jù)運(yùn)算符的運(yùn)算順序可知,該表達(dá)式最后運(yùn)算的是與(&&)運(yùn)算,而任何表達(dá)式與“0”進(jìn)行“與”運(yùn)算,結(jié)果都為0。

31.aa解析:'z'的ASCII碼值為122,經(jīng)過c-25運(yùn)算后,得97,以字符形式輸出是a。

32.1212解析:本題首先通過第一個(gè)for語句把0~9(包含0和9)間的整數(shù)依次賦值給數(shù)組arr,第二個(gè)for語句用于實(shí)現(xiàn)將滿足條件的數(shù)組元素與對應(yīng)的下標(biāo)值求和并累加,并用變量k保存。

33.8484解析:函數(shù)f(y,*x)的作用是讓y的值加上指針x所指向變量的值,讓指針x所指向變量的值加上y的值。由于形參y是傳值的,形參x是傳地址的,故調(diào)用該函數(shù)后,作為實(shí)參的y的值將不改變,而實(shí)參x的值將改變,故最后輸出的y的值為4,而x的值為8。

34.k<=nk++k<=n\r\nk++解析:本題要求將一個(gè)for循環(huán)改成while循環(huán)。首先要保證循環(huán)條件相同,在for循環(huán)中,每次執(zhí)行循環(huán)之后,循環(huán)控制變量k都會(huì)加1,而while循環(huán)則沒有,故需在循環(huán)體中增加改變k數(shù)值的語句“k++;”。

35.#include"math.h"m>>i&1m|k

36.k-1k\r\n-1解析:程序山使用了整型變量i、j、k,使用前應(yīng)先聲明,因此第1個(gè)空應(yīng)填變量k。i和j作為下標(biāo)的值,i被賦初值為0,j應(yīng)為下標(biāo)的最大值,下標(biāo)的最大值為數(shù)組的長度減1。

37.929,2解析:本題開始定義了一個(gè)int型二維數(shù)組a,并賦以5個(gè)初值,系統(tǒng)使數(shù)組的最高維為3,并讓a[0][0]=1,a[0][1]=2,a[1][0]=6,a[1][1]=9,a[2][0]=11,a[2][1]因?yàn)槌踔挡粔蚨跏蓟癁?。然后定義一個(gè)行指針t指向數(shù)組a的首地址,因?yàn)楸磉_(dá)式t[1]表示指向元素a[1][0]的int型指針,t[1]+1表示指向a[1][1]的int型指針,故*(t[1]+1)返回的是a[1][1]的值9。而*t表示指向元素a[0][0]的int型指針,故(*t)[1]返回的是a[0][1]的值2。所以正確答案應(yīng)該為9,2。

38.邏輯結(jié)構(gòu)中相鄰的結(jié)點(diǎn)在存儲(chǔ)結(jié)構(gòu)中仍相鄰。邏輯結(jié)構(gòu)中相鄰的結(jié)點(diǎn)在存儲(chǔ)結(jié)構(gòu)中仍相鄰。解析:順序存儲(chǔ)結(jié)構(gòu)的主要特點(diǎn)是數(shù)據(jù)元素按線性表的邏輯次序,依次存放在一組地址連續(xù)的存儲(chǔ)單元中。在存儲(chǔ)單元中,各元素的物理位置和邏輯結(jié)構(gòu)中各結(jié)點(diǎn)間的相鄰關(guān)系是一致的。

39.123056009123\r\n056\r\n009解析:數(shù)組a中元素的初值為:a[0][0]=1、a[0][1]=2、a[0][2]=3、a[1][0]=4、a[1][1]=5、a[1][2]=6、a[12][0]=7、a[2][1]=8、a[2][2]=9。執(zhí)行第1個(gè)for循環(huán)后a[1][0]=0、a[2][0]=0、a[2][1)=0;第2個(gè)for循環(huán)的功能是將數(shù)組元素按照3行3列的格式輸出。

40.fname"#"exit(0)chfp

41.A

42.A解析:en[2]是結(jié)構(gòu)體類型的數(shù)組,en[0].b/en[0].a*en[1].a=3/1*2=6。

43.B解析:在程序流程圖(PFD)中,箭頭代表的是控制流,用以指明程序的動(dòng)態(tài)執(zhí)行順序。

44.C解析:+六進(jìn)制是以“0x”或“0X”開頭的字符串,字符串中只能含有0~9這10個(gè)數(shù)字和a、b、c、d、s、f這6個(gè)字母。

45.D解析:形參在個(gè)數(shù)和類型上要與實(shí)參匹配,形參在未被調(diào)用之前,不占用存儲(chǔ)單元。

46.A解析:數(shù)組a[5][5],0<=i<5,0<=j<5,則可以用5種表達(dá)式來引用,a[i][j],*a(a[i]+j),*(*(a+i)+j),(*(a+i))[j],*(&a[0][0]+5*i+j)。數(shù)組的下限為0,%后面為小寫的x,所以輸出的結(jié)果為小寫字母表示的十六進(jìn)制。

47.B棧是限定只能在表的一端進(jìn)行插入和刪除操作的線性表,入棧和出棧都是在棧頂進(jìn)行,它們的操作特點(diǎn)是先進(jìn)后出,因此具有記憶作用。??梢圆捎庙樞虼鎯?chǔ),也可以采用鏈?zhǔn)酱鎯?chǔ)。

48.D

49.B解析:數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu),又稱為數(shù)據(jù)的物理結(jié)構(gòu),是數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的存放形式,數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)有順序結(jié)構(gòu)、鏈?zhǔn)浇Y(jié)構(gòu)、散列結(jié)構(gòu)和索引結(jié)構(gòu)等。

50.D解析:本題考查了軟件工程的基本概念。軟件工程包括3個(gè)要素,即方法、工具和過程。方法是完成軟件工程項(xiàng)目的技術(shù)手段;工具支持軟件的開發(fā)、管理和文檔生成;過程支持軟件開發(fā)的各個(gè)環(huán)節(jié)的控制和管理。

51.D字符串的比較不能直接用關(guān)系運(yùn)算符,可用字符串比較函數(shù)strcmp(char.s1,char*s2)實(shí)現(xiàn),其比較規(guī)則是對兩個(gè)字符串自左至右逐個(gè)字符按其對應(yīng)的ASCII碼值進(jìn)行比較,直到出現(xiàn)不同的字符或遇到'\\0'為止。若對應(yīng)字符都相同,則兩字符串相等;若出現(xiàn)不相同的字符,則以第一個(gè)不相同的字符的比較結(jié)果為準(zhǔn)。比較的結(jié)果由函數(shù)值帶回。當(dāng)s1<s2時(shí),返回負(fù)數(shù);當(dāng)s1=s2時(shí),返回0;當(dāng)s1>s2時(shí),返回正數(shù)。所以在此題中要使得s1所指串大于s2所指串,就必定使得strcmp(s1,s2)>0。

52.C解析:選項(xiàng)A和B兩個(gè)表達(dá)式都越界了;選項(xiàng)D中,*t[2]是目標(biāo)變量,即—個(gè)整型值,而不是地址值。

53.C解析:利用強(qiáng)制類型轉(zhuǎn)換(structsk*),把整數(shù)型地址&data.m轉(zhuǎn)換成結(jié)構(gòu)體變量指針賦給結(jié)構(gòu)體指針變量q。

54.B解析:程序首先定義了一個(gè)字符數(shù)組s,然后讓字符指針ps指向該數(shù)組的首地址。最后按字符形式輸出*ps+4的值,即s[0]+4的值,'a'+4='e'。故應(yīng)該選擇B。

55.D數(shù)據(jù)處理是指將數(shù)據(jù)轉(zhuǎn)換成信息的過程,故選項(xiàng)A敘述錯(cuò)誤。數(shù)據(jù)的物理獨(dú)立性是指數(shù)據(jù)的物理結(jié)構(gòu)的改變,不會(huì)影響數(shù)據(jù)庫的邏輯結(jié)構(gòu),故選項(xiàng)B敘述錯(cuò)誤。關(guān)系中的行稱為元組,對應(yīng)存儲(chǔ)文件中的記錄,關(guān)系中的列稱為屬性,對應(yīng)存儲(chǔ)文件中的字段,故選項(xiàng)C敘述錯(cuò)誤。所以本題選D。

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

57.A

58.D解析:本題考核的知識點(diǎn)是用戶的標(biāo)識符。在C語言中,合法的標(biāo)識符由字母、數(shù)字和下劃線組成,并且第一個(gè)字符必須為字母或者下劃線,如:acd,d_ad、_adf124,_124等都是合法的標(biāo)識符號.而2asdf、_sd/=都不是合法的標(biāo)識符.在C語言中大寫字母和小寫字母被認(rèn)為是兩個(gè)不同的字符,如:ACD和acd是兩個(gè)不同的標(biāo)識符號。選項(xiàng)D中用下劃線作為第一個(gè)字符,這是不合法的,故選項(xiàng)D不正確,所以,4個(gè)選項(xiàng)中選項(xiàng)D符合題意。

59.B水平制表符中,'\t'表示的是橫向跳若干格;選項(xiàng)B中,'\039'錯(cuò)誤,'\039'是八進(jìn)制形式表的字符,最大數(shù)為7,但其中出現(xiàn)'9',','是字符逗號;選項(xiàng)D中,'\n'表示的是換行。

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

61.AB選項(xiàng)中函數(shù)pow(x,C)錯(cuò)誤應(yīng)該直接使用exp(x)函數(shù)。c選項(xiàng)中函數(shù)ah(n^x+e“x)錯(cuò)誤,應(yīng)該使用fabs()返回浮點(diǎn)數(shù)的絕對值。D選項(xiàng)中pow(x,n)參數(shù)順序錯(cuò)誤。

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

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

靜態(tài)調(diào)試通常可以采用如下兩種方法。

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

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

(2)為取得關(guān)鍵變量的動(dòng)態(tài)值,在程序中插入打印語句

溫馨提示

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

評論

0/150

提交評論