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

下載本文檔

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

文檔簡介

2021-2022年甘肅省張掖市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測(cè)試卷一(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.有如下程序:#include<stdio.h>msin(){chars[]="ABCD",*P;for(p=s+1;p<s+4;p++)Printf("%s\n",p);}該程序的輸出結(jié)果是()。

A.ABCDBCDCDDB.ABCDC.BCDD.BCDCDD

2.第

3

已知:intc[3][4];則對(duì)數(shù)組元素引用正確的是

A.c[1][4]B.c[1.5][0]C.c[1+0][0]D.以上表達(dá)都錯(cuò)誤

3.下列敘述中錯(cuò)誤的是()。

A.C語言程序?qū)︻A(yù)處理命令行的處理是在程序執(zhí)行過程中進(jìn)行的

B.預(yù)處理命令行的最后不能以分號(hào)表示結(jié)束

C.“#defmeMAX”是合法的宏定義命令行

D.在程序中,凡是以“#”開始的語句行都是預(yù)處理命令行

4.一個(gè)關(guān)系中屬性個(gè)數(shù)為1時(shí),稱此關(guān)系為()。

A.對(duì)應(yīng)關(guān)系B.單一關(guān)系C.一元關(guān)系D.二元關(guān)系

5.

6.數(shù)據(jù)流圖中帶有箭頭的線段表示的是()。

A.控制流B.事件驅(qū)動(dòng)C.模塊調(diào)用D.數(shù)據(jù)流

7.若有定義語句:“charsE10]="1234567\0\0";”,則strlen(s)的值是()。

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

8.下面不屬于需求分析階段任務(wù)的是()。

A.確定軟件系統(tǒng)的功能需求B.確定軟件系統(tǒng)的性能需求C.制定軟件集成測(cè)試計(jì)劃D.需求規(guī)格說明書評(píng)審

9.以下定義數(shù)組的語句錯(cuò)誤的是()。

A.intnum[]={1,2,3,4,5,6};

B.intnum[][3]={{1,2},3,4,5,6};

C.intnum[2][4]={{1,2},{3,4},{5,6}};

D.intnum[][4]={1,2,3,4,5,6};

10.

11.對(duì)n個(gè)數(shù)進(jìn)行排序,哪種算法,其時(shí)間復(fù)雜度在最壞和最好都是O(nlogn)()

A.快速排序B.希爾排序C.堆排序D.選擇排序

12.如果一個(gè)函數(shù)位于C程序文件的上部,在該函數(shù)體內(nèi)說明語句后的復(fù)合語句中定義了一個(gè)變量,則該變量().

A.為全局變量,在本程序文件范圍內(nèi)有效

B.為局部變量,只在該函數(shù)內(nèi)有效

C.為局部變量,只在該復(fù)合語句中有效

D.定義無效,為非法變量

13.有以下程序:#include<stdio.h>#include<string.h>main(){printf(“%d\n”,strlen(“0\t\n\0C011\1”));}程序運(yùn)行后的輸出結(jié)果是()。

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

14.

15.若有下面的說明和定義

structtest

{intml;charm2;floatm3;

unionuu{charul[5];intu2[2];}ua;

}myaa;

則sizeof(structtest)的值是A.A.12B.16C.14D.9

16.有以下程序:#include<stdio.h>structnode{charid;structnode*next;}a={‘A’},b={‘B’},c={‘C’},*p=&a,*pt;main(){p->next=&b;p=p->next;p->next=&c;p=p->next;p->next=NULL;p=&a;}若程序經(jīng)運(yùn)行后形成下圖所示的數(shù)據(jù)結(jié)構(gòu)。則以下可以刪除中間節(jié)點(diǎn)b的正確選項(xiàng)是()。

A.pt=p->next;p->next=p->next->next;free(pt);

B.pt=p->next;p->next=p->next->next->next;free(pt);

C.pt=&b;free(pt);

D.pt=&b;p->next=p->next->next->next;free(pt);

17.程序流程圖中帶有箭頭的線段表示的是()。

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

18.有以下程序(strcat函數(shù)用于連接兩個(gè)字符串):#include<stdio.h>#include<string.h>main(){chara[20]=“ABCD\0EFG\0”,b[]=“UK”;strcat(a,b);printf(“%s\n”,a);}程序的運(yùn)行結(jié)果是()。

A.UKB.ABCDE\0FG\0UKC.ABCDUKD.EFGUK

19.一個(gè)隊(duì)列的入隊(duì)序列是1,2,3,4,則隊(duì)列的輸出序列是()。

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

20.現(xiàn)有二叉搜索樹(BST)前序遍歷結(jié)果序列為abdefgc,中序遍歷結(jié)果序列為debgfac,請(qǐng)問后序遍歷結(jié)果序列為()

A.debgfaCB.edgfbcAC.edgbfcAD.degbfaC

二、2.填空題(20題)21.函數(shù)voidfun(float*sn,intn)的功能是:根據(jù)以下公式計(jì)算S,計(jì)算結(jié)果通過形參指針sn傳回;n通過形參傳入,n的值大于等于0。請(qǐng)補(bǔ)全程序。

S=1-1/3+1/5-1/7+…+1/(2n+1)

voidfun(float*sn,intn)

{floats=0.0,w,f=-1.0;

inti=0;

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

{f=【】*f;

w=f/(2*i+1);

s+=w;

}

【】=s;

}

22.算法復(fù)雜度主要包括時(shí)間復(fù)雜度和【】復(fù)雜度。

23.在先左后右的原則下,根據(jù)訪問根結(jié)點(diǎn)的次序,二叉樹的遍歷可以分為三種;前序遍歷、【】遍歷和后序遍歷。

24.有以下程序段:

inta[l0]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;

b=p[5];

b中的值是【】。

25.有以下程序

main()

{intn=0,m=l,x=2;

if(!n)x-=1;

if(m)x-=2;

if(x)x-=3;

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

}

執(zhí)行后輸出的結(jié)果是______。

26.下面的程序可對(duì)指定字符串中的字符串進(jìn)行從大到小排序,請(qǐng)將程序完整。(注:程序采用了冒泡排序算法)

#include<stdio.h>

#include<string.h>

main()

{char*str="ABCDabcd",temp;

intn,i;

n=strlen(str);

while(n->1)

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

if(str[i]<str[i+1])

{temp=【】;

str[i]=str[i+1];

【】=temp;

}

printf(【】);

}

27.下列程序能將字符串s1中的所有與字符串str1相同的子串替換成字符串sb2,并將替換后的新串存于字符數(shù)組s2中。

#include<stdio.h>

voidreplace(s1,s2,str1,str2)

char*s1,*s2,*str1,*str2;

{char*t0,*t1,*t2,*x,*y;

x=s1;y=s2;

while(【】)

{

for(t0=s1,t1=str1;((*t1!='\O'&&【】;t0++,t1++);

if(*t1!='\0')*s2++=【】;

else

{for(t1=str2;*t1!='\0';)*s2++=【】;

【】;

}

}

*s2='\0';

}

main()

{staticchars1[]="abcdefababcdabab.",s2125];

replace(s1,s2,"abc","XYZ");

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

}

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

#include<stdio.h>

#defineS(x)4*x*x+1

main()

{inti=6,j=8;

prinff("%d\n",S(i+j));

}

29.以下sum函數(shù)的功能是計(jì)算下列級(jí)數(shù)之和。請(qǐng)給函數(shù)中的各變量正確賦初值。

doublesum(doublex,intn)

{inti;doublea,b,s;

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

{a=a*x;b=b*i;s=s+a/b;}

returns;

}

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

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

#include<string.h>

char*ss(char*s)

{returns+strlen(s)/2;}

main()

{char*p,*str="abcdefgh";

p=ss(str);printf("%s\n",p);

}

32.二分法查找僅限于這樣的表:表中的數(shù)據(jù)元素必須有序,其存儲(chǔ)結(jié)構(gòu)必須是______。

33.若a=10,b=20,則表達(dá)式!(a<b)的值是【】。

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

#include<stdio.h>

main()

{inta,b,c,n;

a=2;b=0;c=1;n=1;

while(n<=3)

{c=c*a;b=b+c;++n;}

printf("b=%d",B);

}

35.數(shù)據(jù)庫存管理系統(tǒng)常見的靈敏據(jù)模型有層次、網(wǎng)狀和【】三種。

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

main()

{intX==1,y=0,a=0,b=0;

switch(x)

{case1:switch(y)

{case0:a++;break;

case1:b++;break;

}

case2:a++;b++;break;

}

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

}

37.以下函數(shù)fun的功能是返回str所指字符中中以形參c中字符開頭的后續(xù)字符串的首地址,例如:str所指字符串為“Hello!”,c中的字符為'e',則函數(shù)返回字符串"ello!"的首地址。若str所指字符串為空中或不包含c中的字符,則函數(shù)返回NULL。請(qǐng)?zhí)羁铡?/p>

char*fun(char*str,charc)

{intn=0;char*p=str;

if(p!=NULL)

while(P[n]!=c&&p[n]!='\0')n++;

if(p[n]=='\0')retumNULL;

return(【】);

}

38.以下程序調(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")

}

39.以下程序的功能是:將輸入的正整數(shù)按逆序輸出。例如:若輸入135則輸出531。請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

main()

{intn,s;

printf("Enteranumber:");scanf("%d",&n);

printf("Output:");

do

{s=n%10;printf("%d",s);【】;

}while(n!=0);

printf("\n");

}

40.若x和y都是buble型變量,且x的初值為3.0,y的初值為2.0,則表達(dá)式pow(y,fabs(x))的值為【】。

三、1.選擇題(20題)41.表示關(guān)系a≤b≤c的C語言表達(dá)式為()。

A.(a<=B)&&(b<=C)

B.(a<=B)and(b<=C)

C.(a<=b<=C)

D.(a<=B)&(b<=C)

42.在以下給出的表達(dá)式中,與while(E)中的(E)不等價(jià)的表達(dá)式是()。

A.(!E==0)B.(E>0||E<0)C.(E==0)D.(E!=0)

43.有以下程序voidss(char*s,chart){while(*s){if(*s==t),s=t-'a'+'A';s++;}}main(){charstr1[100]="abcddfefdbd",c='d';ss(str1,c);printf("%s\n",str1);}程序運(yùn)行后的輸出結(jié)果是

A.ABCDDEFEDBDB.abcDDfefDbDC.abcAAfefAbAD.Abcddfefdbd

44.下列變量聲明合法的是()。

A.shorta=1.4e-1;

B.doubleb=1+3e2.8;

C.longdo=0xfdaL;

D.float2_aaa=1e-3;

45.設(shè)a、b、c、d、m、n均為int型變量,且a=5、b=6、c=7、d=8、m=2、n=2,則邏輯表達(dá)式(m=a>b)&&(n=c>d)運(yùn)算后,n的值為______。

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

46.對(duì)長度為n的線性表進(jìn)行順序查找,在最壞情況下所需要的比較次數(shù)為()。

A.log2nB.n/2C.nD.n+1

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

A.線性表B.隊(duì)列C.樹D.棧

48.下述對(duì)C語言字符數(shù)組的描述中錯(cuò)誤的是

A.字符數(shù)組的下標(biāo)從0開始

B.字符數(shù)組中的字符串可以進(jìn)行整體輸入/輸出

C.可以在賦值語句中通過賦值運(yùn)算符“=”對(duì)字符數(shù)組整體賦值

D.字符數(shù)組可以存放字符串

49.以下關(guān)于return語句的敘述中不正確的是()。

A.一個(gè)自定義函數(shù)中必須有一條return語句

B.一個(gè)自定義函數(shù)中可以根據(jù)不同情況設(shè)置多條return語句

C.如果一個(gè)函數(shù)有多個(gè)return語句,那么不論運(yùn)行到哪一個(gè)return語句,該函數(shù)將結(jié)束

D.沒有return語句的自定義函數(shù)在執(zhí)行完最后一條語句時(shí)返回到調(diào)用處

50.下列敘述中,不屬于軟件需求規(guī)格說明書的作用的是()

A.便于用戶,開發(fā)人員進(jìn)行理解和交流

B.反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù)

C.作為確認(rèn)測(cè)試和驗(yàn)收的依據(jù)

D.便于開發(fā)人員進(jìn)行需求分析

51.當(dāng)個(gè)人計(jì)算機(jī)以撥號(hào)方式接入Internet網(wǎng)時(shí),必須使用的設(shè)備是()

A.電話機(jī)B.瀏覽器C.網(wǎng)卡D.調(diào)制解調(diào)器(Modem)

52.已知inta=2,b=3;則執(zhí)行表達(dá)式a=a<b后,變量a的值為()。

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

53.在數(shù)據(jù)庫系統(tǒng)的組織結(jié)構(gòu)中,下列()映射把用戶數(shù)據(jù)庫與概念數(shù)據(jù)庫聯(lián)系了起來。

A.外模式/模式B.內(nèi)模式/外模式C.模式/內(nèi)模式D.內(nèi)模式/模式

54.若有定義和語句:int**pp,*p,a=20,b=10;pp=&p;p=&a;p=&b;printf(%d,%d\n",*p,**pp);則輸出結(jié)果是()。

A.20,10B.20,20C.10,20D.10,10

55.以下對(duì)枚舉類型名的定義中正確的是______。

A.enuma={one,two,three};

B.enuma{one=9,two=-1,three};

C.enuma={one","two","three"};

D.enuma{"one","two","three"};

56.在E-R圖中,用來表示實(shí)體的圖形是

A.矩形B.橢圓形C.菱形D.三角形

57.有程序:voidfun(inta,intb,intc){a=456;b=567;c=678;}main(){intx=10,y=20,z=30;fun(x,y,Z);printf("%d,%d,%d\n",z,y,x);}輸出結(jié)果是()

A.30,20,10B.10,20,30C.456,567,678D.678,567,456

58.以下數(shù)組定義中錯(cuò)誤的是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};

59.語句“printf("a\bhow\'are\'y\\\bou\n");”的輸出結(jié)果是()。

A.a\bhow\'are\'y\\bou

B.a\bhow\'are\'y\bou

C.how'are'you

D.ahow'are'y\bou

60.設(shè)有下列二叉樹:

對(duì)此二叉樹后序遍歷的結(jié)果為

A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA

四、選擇題(20題)61.設(shè)有如下說明

typedefstruct

{intn;

charc;

doublex;

}STD;

則以下選項(xiàng)中,能正確定義結(jié)構(gòu)體數(shù)組并賦初值的語句是

A.STDtt[2]={{1,’A’,62},{2,’B’,75}};B.STDtt[2]={1,"A",62,2,"B",75};

C.structtt[2]={{1,’A’},{2,’B’}};D.structtt[2]={{1,"A",62.5},{2,"B",75.0}};

62.下列敘述中正確的是()。A.在switch語句中,不一宗使用break語句

B.在switch語句中,必須使用default

C.break語句必須與swifth語句中的case配對(duì)使用

D.break語句只能用于swifth著句

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

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

64.

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

main

{inti=0,S=0;

for(;;)

{

if(i==3||i==5)continue;

if(i==6)break;

i++;

s+=i:

};

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

}

A.10B.13C.21D.程序陷入死循環(huán)

65.

66.有以下定義:inta;longb;doublex,y;則以下選項(xiàng)中正確的表達(dá)式是()。

A.a%(int)(x-y)B.a=x!=y;C.(a*y)%bD.y=x+y=x

67.執(zhí)行下列程序時(shí)輸入:123<空格>456<空格>789<回車>,輸出結(jié)果是

main()

{chars[100];intc,i;

scanf("%c",&c);scanf("%d",&i);scanf("%s",s);

prinnf("%c,%d,%s\n",c,i,s);}

A.123,456,789B.1,456,789

C.1,23,456,789D.1,23,456

68.

69.下列關(guān)于算法復(fù)雜度描述正確的是()。

A.算法的時(shí)間復(fù)雜度是指算法執(zhí)行的時(shí)間

B.算法的空間復(fù)雜度是指執(zhí)行這個(gè)算法所需的內(nèi)存空間

C.一個(gè)算法的空間復(fù)雜度大,則其時(shí)間復(fù)雜度必定大

D.一個(gè)算法的空間復(fù)雜度大,則其時(shí)間復(fù)雜度必定小

70.設(shè)有以下語句:

其中0≤k<5。以下不是對(duì)字符串的正確引用的是()。

A.*strpB.strp[k]C.str[k]D.strp

71.有以下程序:

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

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

72.(20)數(shù)據(jù)庫設(shè)計(jì)包括兩個(gè)方面的設(shè)計(jì)內(nèi)容,它們是()

A.概念設(shè)計(jì)和邏輯設(shè)計(jì)

B.模式設(shè)計(jì)和內(nèi)模式設(shè)計(jì)

C.內(nèi)模式設(shè)計(jì)和物理設(shè)計(jì)

D.結(jié)構(gòu)特性設(shè)計(jì)和行為特性設(shè)計(jì)

73.

74.有如下程序段:

執(zhí)行該程序段后,X的值為()。

A.trueB.falseC.0D.1

75.

76.數(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ù)

77.在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是()。

A.軟件需求規(guī)格說明書B.數(shù)據(jù)庫說明書C.集成測(cè)試計(jì)劃D.概要設(shè)計(jì)說明書

78.(33)分布式數(shù)據(jù)庫系統(tǒng)不具有的特點(diǎn)是______。

A.分布式

B.數(shù)據(jù)冗余

C.數(shù)據(jù)分布性和邏輯整體性

D.位置透明性和復(fù)制透明性

79.軟件測(cè)試的目的是()。

A.評(píng)估軟件可靠性B.發(fā)現(xiàn)并改正程序中的錯(cuò)誤C.改正程序中的錯(cuò)誤D.發(fā)現(xiàn)程序中的錯(cuò)誤

80.設(shè)有如下程序

#include<stdio.h>

main()

{

int**k,*j,i=100;

j=&i;k=&j;

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

}

上述程序的輸出結(jié)果是

A.運(yùn)行錯(cuò)誤B.100

C.i的地址D.j的地址

五、程序改錯(cuò)題(1題)81.下列給定的程序中,函數(shù)proc()的功能是:計(jì)算并輸出k以內(nèi)最大的10個(gè)能被15或18整除的自然數(shù)之和,k的值由主函數(shù)傳人。若k的值為800,則函數(shù)的值為7605。

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

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

試題程序:

六、程序設(shè)計(jì)題(1題)82.請(qǐng)編寫函數(shù)proc(),它的功能是計(jì)算:s=(1-1n(1)-1n(2)-1n(3)-…-1n(m))2s作為函數(shù)值返回。在C語言中可調(diào)用log(n)函數(shù)求1n(n)。log函數(shù)的引用說明是doublelog(doublex)。例如,若m的值為10,則proc()函數(shù)值為l98.934454。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫的若干語句。試題程序:

參考答案

1.D解析:本題考查指向字符串指針的運(yùn)算方法。執(zhí)行p=s+1后,指針變量p就指向字符串中的第二個(gè)字符“B”,然后輸出字符串“BCD”并換行;下面繼續(xù)執(zhí)行循環(huán)語句,指針變量p指向下一個(gè)字符“C”,輸出字符串“CD”,最后一次循環(huán),p指向字符“D”,輸出字符串“D”。

2.C

3.A預(yù)處理是在程序編譯之前進(jìn)行的,所以A選項(xiàng)錯(cuò)誤。故本題答案為A選項(xiàng)。

4.C解析:在關(guān)系模型數(shù)據(jù)庫中,基本結(jié)構(gòu)是二維表,這種二維表稱為關(guān)系。關(guān)系的列稱為屬性,一個(gè)具有N個(gè)屬性的關(guān)系稱為N元關(guān)系。注意:各種關(guān)系查詢語言與過程性語言和非過程性語言的關(guān)系,過程性語言的特點(diǎn)。

5.B

6.D解析:數(shù)據(jù)流圖是描述數(shù)據(jù)處理過程的工具,是需求理解的邏輯模型的圖形表示,它直接支持系統(tǒng)的功能建模。數(shù)據(jù)流圖從數(shù)據(jù)傳遞和加工的角度,來刻畫數(shù)據(jù)流從輸入到輸出的移動(dòng)變換過程。數(shù)據(jù)流圖中的主要的圖形元素與說明如下:

加工(轉(zhuǎn)換):輸入數(shù)據(jù)經(jīng)加工變換產(chǎn)生輸出。

數(shù)據(jù)流:沿箭頭方向傳送數(shù)據(jù)的通道,一般在旁邊標(biāo)注數(shù)據(jù)流名。

存儲(chǔ)文件(數(shù)據(jù)源):表示處理過程中存放各種數(shù)據(jù)的文件。

源,潭:表示系統(tǒng)和環(huán)境的接口,屬系統(tǒng)之外的實(shí)體。

7.A"\0"表示空字符,strlen函數(shù)求得的是不包括字符串結(jié)束符\0的長度。故選A。

8.C【答案】:C

【知識(shí)點(diǎn)】:需求分析階段的任務(wù)

【解析】:需求分析階段的任務(wù)是深入描述軟件的功能和性能,確定軟件設(shè)計(jì)的約束和軟件同其他系統(tǒng)元素的接口細(xì)節(jié),定義軟件的其他有效性需求,借助于當(dāng)前系統(tǒng)的邏輯模型導(dǎo)出目標(biāo)系統(tǒng)邏輯模型,解決目標(biāo)系統(tǒng)“做什么”的問題??煞譃樾枨筇岢?、需求描述及需求評(píng)審三個(gè)階段。從此可以看出需求分析的任務(wù)不包括制定軟件集成測(cè)試計(jì)劃,故選C。

9.B二維數(shù)組的定義有3種形式,第一種是分行為兩位數(shù)組賦值,即intnum[]={{12},{3,4},{5,6}},第二種是按照數(shù)組排列順序進(jìn)行賦值,即intnum[]={1,2,3,4,5,6},第三種為對(duì)部分元素賦初值,即intnum[]={{1,2}{},{3,4},{5,6}},所以錯(cuò)誤的為B。

10.A

11.C

12.C

13.AC語言中的轉(zhuǎn)義字符也是一個(gè)字符。字符串“0\\t\\n\\0C011\\1”,共有字符‘0’、‘\\t’、‘\\n’3個(gè)字符。strlen遇到‘\\0’字符計(jì)數(shù)結(jié)束,因此計(jì)數(shù)為3。故本題答案為A選項(xiàng)。

14.C

15.A

16.A題干中,a、b、c3個(gè)節(jié)點(diǎn)都是node類型,它們都有兩個(gè)成員:字符成員id,node類型指針成員next。由于a的next指向b,b的next指向c,因此a、b、c構(gòu)成了鏈表。要想刪除b節(jié)點(diǎn),只需要將a節(jié)點(diǎn)的next(p->next)指向c(p->next->next),然后將節(jié)點(diǎn)b的存儲(chǔ)空間釋放即可。所以刪除b節(jié)點(diǎn)的語句為“pt=p->next;p->next=p->next->next;free(pt);”。故本題答案為A選項(xiàng)。

17.C解析:程序流程圖是人們對(duì)解決問題的方法、思路或算法的一種描述。其中,圖框表示各種操作的類型,圖框中的文字和符號(hào)表示操作的內(nèi)容,流程線表示操作的先后次序。帶箭頭的線段在數(shù)據(jù)流程圖中表示數(shù)據(jù)流。帶箭頭的線段在程序流程圖中表示控制流。題中給出的選項(xiàng)中,在圖元之間用帶有箭頭的線段表示圖元關(guān)系。在模塊之間用帶有箭頭的線段表示調(diào)用關(guān)系。構(gòu)成程序流程圖的基本圖符及含義:→或↓表示控制流;□表示加工步驟;

表示邏輯條件。

18.C字符數(shù)組a中包含兩個(gè)‘\\0’。遇到第1個(gè)‘\\0’時(shí)就表示字符串a(chǎn)結(jié)束。字符串處理函數(shù)strcat(字符數(shù)組a,字符數(shù)組b),功能是連接兩個(gè)字符串,把字符串b連接到字符串a(chǎn)的后面,結(jié)果放在字符數(shù)組a中。連接時(shí)將字符串a(chǎn)后的‘\\0’取消,只在新串最后保留一個(gè)‘\\0’。本題相當(dāng)于將“ABCD”和“IJK”連接。故本題答案為C選項(xiàng)。

19.B

20.B

21.-1或-1.0*sn-1或-1.0\r\n*sn解析:由于在對(duì)S求和時(shí),相鄰兩項(xiàng)的符號(hào)剛好相反,而在函數(shù)fun中沒有對(duì)數(shù)據(jù)進(jìn)行取反的操作,故第—空的目的是對(duì)數(shù)據(jù)進(jìn)行取反,以保證序列中相鄰兩項(xiàng)的符號(hào)不同。故第—個(gè)應(yīng)填-1或-1.0。在執(zhí)行完循環(huán)體后,要將求和結(jié)果通過指針參數(shù)的形式傳遞紿調(diào)用fun的函數(shù),故第二空應(yīng)填*sn。

22.空間空間解析:程序在計(jì)算機(jī)上運(yùn)行時(shí)所耗費(fèi)的時(shí)間由程序運(yùn)行時(shí)所需輸入的數(shù)據(jù)總量、對(duì)源程序進(jìn)行編譯所需時(shí)間、計(jì)算機(jī)執(zhí)行每條指令所需時(shí)間、程序中的指令重復(fù)執(zhí)行的次數(shù)等決定。習(xí)慣上常常把語句重復(fù)執(zhí)行的次數(shù)作為算法運(yùn)行時(shí)間的相對(duì)量度,稱作算法的時(shí)間復(fù)雜度。算法在運(yùn)行過程中需輔助存儲(chǔ)空間的大小稱為算法的空間復(fù)雜度。

23.中序中序解析:在先左后右的原則下,根據(jù)訪問根結(jié)點(diǎn)的次序,二叉樹的遍歷可以分為三種:前序遍歷、中序遍歷和后序遍歷.前序遍歷是指在訪問根結(jié)點(diǎn)、遍歷左子樹與遍歷右子樹這三者中,首先訪問根結(jié)點(diǎn),然后遍歷左子樹,最后遍歷右子樹;并且遍歷左、右子樹時(shí),仍然先訪問根結(jié)點(diǎn),然后遍歷左子樹,最后遍歷右子樹。中序遍歷指在訪問根結(jié)點(diǎn)、遍歷左了樹與遍歷右子樹這三者中,首先遍歷左子樹,然后訪問根結(jié)點(diǎn),最后遍歷右子樹:并且遍歷左、右子樹時(shí),仍然先遍歷左子樹,然后訪問根結(jié)點(diǎn),最后遍歷右子樹。后序遍歷指在訪問根結(jié)點(diǎn)、遍歷左子樹與遍歷右子樹這三者中,首先遍歷右子樹,然后訪問根結(jié)點(diǎn),最后遍歷左子樹;并且遍歷左、右子樹時(shí),仍然光遍歷右子樹,然后訪問根結(jié)點(diǎn),最后遍歷左子樹。

24.99解析:p是一個(gè)指針變量,指向數(shù)組a的元素a[3],所以b=p[5]=a[5+3]=a[8]=9。

25.-4-4解析:本題考核的知識(shí)點(diǎn)是if...else結(jié)構(gòu)的應(yīng)用。if…else構(gòu)造了一種二路分支選擇,是一種最基本的選擇結(jié)構(gòu),if(條件)S1(if分結(jié)構(gòu))elseS2(else分結(jié)構(gòu)),它的工作過程是:先對(duì)條件表達(dá)式進(jìn)行判斷,若為真(成立,值為非零),就執(zhí)行if分結(jié)構(gòu)(S1);否則(不成立,值為0),就執(zhí)行else分結(jié)構(gòu)(S2)。本題中,n=0,可以判斷(!n)為真,執(zhí)行x=x-1=2-1=1;m=1,可以判斷(m)為真,執(zhí)行x=x-2=1-2=-1;進(jìn)而可以判斷(x)為真,執(zhí)行x=x-3=-l-3=4。所以,最后輸出為叫

26.str[i]str[i+1]"%s"strstr[i]\r\nstr[i+1]\r\n'%s',str解析:本題要求將字符串str中的字符用冒泡排序算法從大到小排列,其實(shí)現(xiàn)過程是將相鄰兩個(gè)字符進(jìn)行比較,如果當(dāng)前字符小于下一個(gè)字符;則通過中間變量temp將字符兩兩交換,所以第一空應(yīng)填:str[i],第二空應(yīng)填:str[i+1]。最終打印輸出得到的字符串str,所以第三空應(yīng)填;'%s',str。

27.*s1!='\0'或*s1*t0=*t1*s1++*t1++s1=t0或s1=s1+strlen(str1)*s1!='\\0'或*s1\r\n*t0=*t1\r\n*s1++\r\n*t1++\r\ns1=t0或s1=s1+strlen(str1)

28.8181解析:帶參數(shù)的宏定義是按#define命令行中指定的字符串從左到右進(jìn)行替換。本題替換后得到:4*i+j*i+j+1,代入i,j的值得81。

29.a=1;b=1;s=1;或a=b=s=1;或a=1.b=1s=1或給abs賦1或1.0或1.a=1;b=1;s=1;或a=b=s=1;或a=1.b=1,s=1或給a,b,s賦1或1.0或1.解析:sum函數(shù)的功能是求表達(dá)式s的級(jí)數(shù)之和,該函數(shù)的大致思路是:在該函數(shù)中,定義了—個(gè)整型變量i用作循環(huán)計(jì)數(shù)器,定義一個(gè)變量a用來表示各個(gè)子項(xiàng)的分子,初始為第一個(gè)子項(xiàng)的分子,故為1,定義了一個(gè)變量b用來表示各個(gè)子項(xiàng)大分母,初始為第一個(gè)子項(xiàng)的分母,故為1,定義一個(gè)變量s存放累加和,初始為第一個(gè)子項(xiàng)的值即為1,然后給各個(gè)定義的變量初始化,然后通過一個(gè)for循環(huán)將題目中的數(shù)學(xué)表達(dá)式的各個(gè)子項(xiàng)求出來并累加到s中,所以說,在該題的空格處應(yīng)該填寫將a、b和s賦初值的語句,即為a=1;b=1;s=1:(說明:語句的順序可任意)或a=b=s=1;(說明:變量的順序可任意)或a=1,b=1,s=1(說明:賦值表達(dá)式的順序可任意)給a,b,s賦1或1.0或1都可以。

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

31.efghefgh解析:函數(shù)ss返回形參s所指向的符號(hào)串的后半部分,故p='efgh'。

32.順序存儲(chǔ)(順序方式存儲(chǔ))順序存儲(chǔ)(順序方式存儲(chǔ))解析:二分法查找對(duì)表的要求是有序的順序表,即第一要求是數(shù)據(jù)元素有序,第二要求是按順序方式存儲(chǔ)。

33.00解析:已知a=10,b=20,所以邏輯表達(dá)式a<b的值為true,即為1,在這個(gè)表達(dá)式前面有一個(gè)邏輯運(yùn)算符!,表示反操作,所以整個(gè)語句的值應(yīng)當(dāng)為false,即為0。

34.b=14b=14解析:分析程序可知,n的初始值為1,因此,while(n<=3)循環(huán)3次。第1次:c=c*a=2:b=b+c=2;n=2。第2次:c=c*a=4;b=-b+c=6;n=3。第3次;c=c*a=8:b=b+c=14。當(dāng)n=4時(shí),判斷條件不滿足,退出循環(huán)。

35.關(guān)系關(guān)系

36.2121解析:外層switch語句后面括號(hào)里的x的值為1,所以執(zhí)行從case1:后面的語句開始執(zhí)行,而case1:后面語句也為switch語句,這個(gè)switch語句后面括號(hào)里的y的值為0,所以從該switch語句里的case0:開始執(zhí)行即執(zhí)行a++,這時(shí)a的值變?yōu)?,執(zhí)行完畢,遇到break語句,退出內(nèi)層switch語句,又回到外層switch語句,繼續(xù)執(zhí)行case1:下面的語句即case2:執(zhí)行完畢后,a自加1變?yōu)?,b自加1變1。所以最后輸出的a和b的值為21。

37.str+n或p+nstr+n或p+n解析:此題主要是將形參c中的字符與str中的字符相比較,返回以形參c中字符開頭的后續(xù)字符串,函數(shù)fun中的變量n用于記錄形參c中字符在str字符串中的位置,故返回的結(jié)果用str+n或p+n表示。

38.i+1i

39.n/=10或n=n/10n/=10或n=n/10解析:每次循環(huán)把n除以10所得的商賦給n。

40.88解析:fabs函數(shù)功能是求x的絕對(duì)值,計(jì)算結(jié)果為double型。pow功能是計(jì)算x的y次方的值,計(jì)算結(jié)果同樣為double型。所以本題表達(dá)式相當(dāng)于2.0的3.0次方,結(jié)果為8.000000。

41.A解析:本題考查邏輯與運(yùn)算符&&。在C語言中使用運(yùn)算符“&&”連接兩個(gè)表達(dá)式,也可以表示邏輯與運(yùn)算符。在C語言中不允許出現(xiàn)a<=b<=c這種格式。

42.C解析:題目中的while(E)循環(huán)是當(dāng)E等于0時(shí),循環(huán)結(jié)束,E不等于0時(shí),繼續(xù)循環(huán)。選項(xiàng)C中,當(dāng)E等于0時(shí),表達(dá)式“E==0”為真繼續(xù)循環(huán),而E不等于。時(shí),表達(dá)式為假循環(huán)結(jié)束,這與題目中的條件不等價(jià),故應(yīng)該選擇C。

43.B解析:在內(nèi)存中,字符數(shù)據(jù)以ASCII碼存()儲(chǔ),它的存儲(chǔ)形式與整數(shù)的存儲(chǔ)形式類似。C語言中,字符型數(shù)據(jù)和整型數(shù)據(jù)之間可以通用,也可以對(duì)字符型數(shù)據(jù)進(jìn)行算術(shù)運(yùn)算,此時(shí)相當(dāng)于對(duì)它們的ASCII碼進(jìn)行算術(shù)運(yùn)算,在本題中,s++相當(dāng)于s=s+1,即讓s指向數(shù)組中的下一個(gè)元素。

44.A解析:解答本題需了解3個(gè)知識(shí)點(diǎn):①標(biāo)識(shí)符是由字母、數(shù)字或下畫線組成,并且它的第一個(gè)字符必須是字母或者下畫線;②do是C語言中的一個(gè)關(guān)鍵字,不能再用做變量名和函數(shù)名;③C語言規(guī)定指數(shù)形式的實(shí)型常量e或E后面的指數(shù)必須是整數(shù)。

45.A解析:C語言中比較表達(dá)式的運(yùn)算結(jié)果為0或1。0代表不成立,1表示成立。

46.C本題考查的是順序查找。在進(jìn)行順序查找過程中,如果線性表中的第一個(gè)元素就是被查找元素,則只需做一次比較就查找成功,查找效率最高;但如果被查找的元素是線性表中的最后一個(gè)元素,或者被查找的元素根本就不在線性表中,則為了查找這個(gè)元素需要與線性表中所有的元素進(jìn)行比較,這是順序查找的最壞情況。所以對(duì)長度為n的線性表進(jìn)行順序查找,在最壞情況下需要比較n次。故本題答案為C。

47.C解析:線性結(jié)構(gòu),是指數(shù)據(jù)元素只有一個(gè)直接前件元素和直接后件元素。線性表是線性結(jié)構(gòu)。棧和隊(duì)列是指對(duì)插入和刪除操作有特殊要求的線性表,樹是非線性結(jié)構(gòu)。

48.C解析:在C語言中,通過使用庫函數(shù)允許對(duì)字符數(shù)組進(jìn)行整體輸入/輸出。C語言不允許通過賦值運(yùn)算符對(duì)字符數(shù)組整體進(jìn)行賦值,對(duì)字符串使用符號(hào):只能在說明字符數(shù)組并進(jìn)行初始化的時(shí)候進(jìn)行。字符串結(jié)束標(biāo)志為'\\0',計(jì)算字符串的實(shí)際長度時(shí)。不計(jì)入串長。

49.A解析:return語句主要用于返回函數(shù)的值。在一個(gè)自定義函數(shù)中,可以根據(jù)不同的情況設(shè)置多條return語句返回函數(shù)的值,也可以不包含return語句。

50.D解析:軟件需求規(guī)格說明書SRS,SoftwareRequirementSpecification)是需求分析階段的最后成果,是軟件開發(fā)中的重要文檔之一。它有以下幾個(gè)方面的作用,①便于用戶、開發(fā)人員進(jìn)行理解和交流;②反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù);③作為確認(rèn)測(cè)試和驗(yàn)收的依據(jù)。

51.D

52.B解析:先計(jì)算關(guān)系表達(dá)式a<b=2<3為真(表達(dá)式為真時(shí),如果變量為int型變量則真用1表示,假用0表示),即a=1。

53.AA)【解析】數(shù)據(jù)庫有兩層映像,即外模式/模式和模式/內(nèi)模式映像。模式/內(nèi)模式映像定義數(shù)據(jù)庫全局邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)之間的對(duì)應(yīng)關(guān)系。

54.D解析:本題考查指針變量的賦值。

**pp是定義了一個(gè)指向指針的指針變量,語句pp=&p的意思是將pp指向指針p,*p和**pp都是指針p所指的內(nèi)存空間的內(nèi)容,即b的值。

55.B解析:聲明枚舉類型用enum開頭。例如:enumweekday(sun,mon,tue,wed,thu,fri,sat);說明:1、在C編譯中,對(duì)枚舉元素按常量處理,同時(shí)可以改變他們的值。2、枚舉值可以用來做判斷比較。3、一個(gè)整數(shù)不能直接賦給一個(gè)枚舉變量。

56.A解析:在E-R圖中,用三種圖框分別表示實(shí)體、屬性和實(shí)體之間的聯(lián)系,其規(guī)定如下:用矩形框表示實(shí)體,框內(nèi)標(biāo)明實(shí)體名;用橢圓狀框表示實(shí)體的屬性,框內(nèi)標(biāo)明屬性名;用菱形框表示實(shí)體間的聯(lián)系,框內(nèi)標(biāo)明聯(lián)系名。所以,選項(xiàng)A正確。

57.A

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

59.C解析:“\\b”格式符表示退格,功能是將它后面的字母把它前面的字母覆蓋,導(dǎo)致“\\b'’格式符前面的字母不能輸出;“\\'”格式符表示輸出單引號(hào)字符;“\\\\”格式符表示輸出反斜線字符。

60.D解析:二叉樹的遍歷分為先序、中序、后序三種不同方式。本題要求后序遍歷,其遍歷順序應(yīng)該為:后序遍歷左子樹->,后序遍歷右子樹->,訪問根結(jié)點(diǎn)。按照定義,后序遍歷序列是DEBFCA,故答案為D。

61.C本題主要考查關(guān)鍵字typedef的作用和結(jié)構(gòu)體的初始化。C語言不僅提供了豐富的數(shù)據(jù)類型,而且還允許由用戶自己定義類型說明符,也就是說,允許由用戶為已存在的數(shù)據(jù)類型名定義一個(gè)“別名”。類型定義符typedef即可用來完成此功能。說明新類型名的語句一般形式為:

typedef類型名標(biāo)識(shí)符;

這里的“類型名”必須是在此語句之前已有定義的類型標(biāo)識(shí)符,可以是任何基本類型、結(jié)構(gòu)或聯(lián)合類型符號(hào)。

在本題中,通過題目中程序的定義可以知道,STD為該結(jié)構(gòu)體的類型,而不是結(jié)構(gòu)體變量,因此,STDtt[2]的聲明是正確的。

由于結(jié)構(gòu)體的第三個(gè)成員變量為雙精度型,而在選項(xiàng)A中,輸入與其對(duì)應(yīng)的值是整型,數(shù)據(jù)類型不匹配,因

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論