2022年江蘇省常州市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)_第1頁(yè)
2022年江蘇省常州市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)_第2頁(yè)
2022年江蘇省常州市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)_第3頁(yè)
2022年江蘇省常州市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)_第4頁(yè)
2022年江蘇省常州市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)_第5頁(yè)
已閱讀5頁(yè),還剩64頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2022年江蘇省常州市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.下列數(shù)據(jù)結(jié)構(gòu)中,按先進(jìn)后出原則組織數(shù)據(jù)的是

A.線性鏈表B.棧C.循環(huán)鏈表D.順序表

2.在一個(gè)源文件中定義的全局變量的作用域?yàn)椋?)

A.本程序的全部范圍B.本函數(shù)的全部范圍C.從定義該變量的位置開(kāi)始到本文件結(jié)束D.以上說(shuō)法都不正確

3.用樹(shù)形結(jié)構(gòu)表示實(shí)體之間聯(lián)系的模型的是

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

4.循環(huán)隊(duì)列存儲(chǔ)在數(shù)組A[0..m]中,則入隊(duì)時(shí)的操作為()。

A.rear=rear+1

B.rear=(rear+1)mod(m-1)

C.rear=(rear+1)modm

D.rear=(rear+1)mod(m+1)

5.二維數(shù)組M的元素是4個(gè)字符(每個(gè)字符占一個(gè)存儲(chǔ)單元)組成的串,行下標(biāo)i的范圍從0到4,列下標(biāo)j的范圍從0到5,M按行存儲(chǔ)時(shí)元素M[3][5]的起始地址與M按列存儲(chǔ)時(shí)元素()的起始地址相同。

A.M[2][4]B.M[3][4]C.M[3][5]D.M[4][4]

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

A.C語(yǔ)言編譯系統(tǒng)對(duì)標(biāo)識(shí)符的長(zhǎng)度沒(méi)有規(guī)定

B.C語(yǔ)言標(biāo)識(shí)符的規(guī)定長(zhǎng)度因系統(tǒng)而異

C.C語(yǔ)言規(guī)定標(biāo)識(shí)符長(zhǎng)度最多允許16個(gè)字符,超長(zhǎng)報(bào)錯(cuò)

D.C語(yǔ)言規(guī)定以下劃線開(kāi)頭的標(biāo)識(shí)符長(zhǎng)度必須大于1

7.設(shè)有以下說(shuō)明語(yǔ)句

structex

{intx;floaty;charz;}example;

則下面的敘述中不正確的是

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

B.example是結(jié)構(gòu)體類(lèi)型名

C.x,y,z都是結(jié)構(gòu)體成員名

D.structex是結(jié)構(gòu)體類(lèi)型名

8.在一個(gè)鏈?zhǔn)疥?duì)列中,假設(shè)f和r分別為隊(duì)頭和隊(duì)尾指針,則插入S所指結(jié)點(diǎn)的運(yùn)算是()。

A.f->next=s;f=s;

B.r->next=s;r=s;

C.S->next=rr=s;

D.r->next=f;f=s;

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

#include<stdio.h>

main()

{inta[]={1,2,3,4,5,6,7,8,9,0},*p;

p=a;

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

A.0B.1C.10D.9

10.以下敘述中錯(cuò)誤的是()。

A.非零的數(shù)值型常量有正值和負(fù)值的區(qū)分

B.常量是在程序運(yùn)行過(guò)程中值不能被改變的量

C.定義符號(hào)常量必須用類(lèi)型名來(lái)設(shè)定常量的類(lèi)型

D.用符號(hào)名表示的常量叫符號(hào)常量

11.下面關(guān)于編譯預(yù)處理的命令行中,正確的是()。

A.#defineintINT

B.##defineeps0.001

C.##DEFINETRUE

D.#defineE2.88

12.以下與數(shù)學(xué)表達(dá)式“0<x<5且x≠2”不等價(jià)的C語(yǔ)言邏輯表達(dá)式是()。

A.(0<x<5)&&(x!=2)

B.0<x&&x<5&&x!=2

C.x>0&&x<5&&x!=2

D.(x>0&&x<2)||(x>2&&x<5)

13.采用鄰接表存儲(chǔ)的圖的廣度優(yōu)先遍歷算法類(lèi)似于二叉樹(shù)的()。A.A.先序遍歷B.中序遍歷C.后序遍歷D.按層遍歷

14.以下敘述中錯(cuò)誤的是A.算法正確的程序最終一定會(huì)結(jié)束

B.算法正確的程序可以有零個(gè)輸出

C.算法正確的程序可以有零個(gè)輸入

D.算法正確的程序?qū)τ谙嗤妮斎胍欢ㄓ邢嗤慕Y(jié)果

15.順序查找法適合于存儲(chǔ)結(jié)構(gòu)為()的線性表。

A.散列存儲(chǔ)B.順序存儲(chǔ)或鏈?zhǔn)酱鎯?chǔ)C.壓縮存儲(chǔ)D.索引存儲(chǔ)

16.

17.有3個(gè)關(guān)系R、S和T如下.

則由關(guān)系R和S得到關(guān)系T的操作是()。A.自然連接B.差C.交D.并

18.有以下程序:#includemain(){intx,y,z;x=y=1;z=x++,y++,++y;printf(“%d,%d,%d\n”,x,y,z);}程序運(yùn)行后的輸出結(jié)果是()。A.2.3.3B.2.3.2C.2.3.1D.2.2.1

19.

20.在具有101個(gè)元素的順序表中查找值為x的元素結(jié)點(diǎn)時(shí),平均比較元素的次數(shù)為()。

A.50B.51C.100D.101

二、2.填空題(20題)21.下列程序的輸出結(jié)果是______。

main()

{inti,sum;

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

sum+=i;

primf("%d",sum);

}

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

23.數(shù)據(jù)庫(kù)保護(hù)分為安全性、控制性、______、并發(fā)性控制和數(shù)據(jù)恢復(fù)。

24.以下函數(shù)的功能是求x的y次方,請(qǐng)?zhí)羁铡?/p>

doublefun(doublex,inty)

{inti;

doublez;

for(i=1,z=x;i<y;i++)z=z*【】;

returnz;

}

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

main()

{imti,sum;

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

sum+=i;

printf("%d",sum);

}

26.軟件生命周期分為軟件定義期、軟件開(kāi)發(fā)期和軟件維護(hù)期,詳細(xì)設(shè)計(jì)屬于______中的一個(gè)階段。

27.軟件維護(hù)活動(dòng)包括以下幾類(lèi):改正性維護(hù)、適應(yīng)性維護(hù)、【】維護(hù)和預(yù)防性維護(hù)。

28.mystrlen函數(shù)的功能是計(jì)算str所指字符串的長(zhǎng)度,并作為函數(shù)值返回。請(qǐng)?zhí)羁铡?/p>

intmystrlen(char*str)

{intI;

for(I=0;【】!='\n';I++);

return(I);}

29.軟件是程序、數(shù)據(jù)和【】的集合。

30.對(duì)于長(zhǎng)度為n的順序存儲(chǔ)的線性表,當(dāng)隨機(jī)插入和刪除一個(gè)元素時(shí),需平均移動(dòng)元素的個(gè)數(shù)為【】。

31.下面的程序可列指定字符串中的字符串進(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(【】);

}

32.源程序文檔化要求程序應(yīng)加注釋。注釋一般分為序言性注釋和【】。

33.已知head指向一個(gè)帶頭結(jié)點(diǎn)的單向鏈表,鏈表中每個(gè)結(jié)點(diǎn)包含數(shù)據(jù)域(data)和指針域(next),數(shù)據(jù)域?yàn)檎?。以下函?shù)求出鏈表中所有鏈結(jié)點(diǎn)數(shù)據(jù)域的和值,作為函數(shù)值返回。請(qǐng)?jiān)跈M線處填入正確內(nèi)容。

structlink

{intdata;structlink*next;}

main()

{structlink*head;

......

sum(head);

......

}

sum(【】);

{structlink*p;ints=0;

p=head->next;

while(p){s+=p->data;p=p->next;}

return(s);}

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

#include<stdio,h>fun(inta)

{intb=0;staticintc=3;

b++;c++;

return(a+b+c);

}

main()

inti,a=5;

for(i=0;i<3;i++)prinff("%d%d",i,fun(a));

printf("\n");

}

35.在面向?qū)ο蠓椒ㄖ?,允許作用于某個(gè)對(duì)象上的操作稱(chēng)為【】。

36.有以下程序:

intf(intn)

{if(n=1)return1;

elsereturnf(n-1)+1;}

main()

{inti,j=0;

for(i=1;i<3;i++)j+=f(i);

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

}

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

37.數(shù)據(jù)管理技術(shù)發(fā)展過(guò)程經(jīng)過(guò)人工管理、文件系統(tǒng)和數(shù)據(jù)庫(kù)系統(tǒng)三個(gè)階段,其中數(shù)據(jù)獨(dú)立性最高的階段是______。

38.若有定義:inta[4][4]={{1,2,3,4},{0},{4,6,8,10},{1,3,5,7}},則初始化后,a[2][2]得到的初值是______。

39.下面程序的輸出走【】。

main()

{enumem{em1=3,em2=1,em3};

char*aa[]={"AA","BB","CC","DD"};

printf("%s%s%s\n",aa[em1],aa[em2],aa[em3]);

}

40.常用的軟件結(jié)構(gòu)設(shè)計(jì)工具是結(jié)構(gòu)圖(SC),也稱(chēng)程序結(jié)構(gòu)圖。其中,用矩形表示______,用帶空心圓的箭頭表示傳遞的是數(shù)據(jù)。

三、1.選擇題(20題)41.軟件需求分析階段的工作可以分為4個(gè)方面:需求獲取、需求分析、編寫(xiě)需求分析說(shuō)明書(shū)和

A.階段性報(bào)告B.需求評(píng)審C.總結(jié)D.都不正確

42.有以下等程序#include<string.h>voidf(char*s,char*t){chark;k=*s;*s=*t;*t=k;s++;t--;if(*s)f(s,t);}main(){charstt[10]="abcdefg",*p;p=str+strlen(str)/2+1;f(p,p-2);printf("%s\n",str);}

A.abcdefgB.gfedcbaC.gbcdefaD.abedcfg

43.設(shè)棧S初始狀態(tài)為空。元素a、b、c、d、e、f依次通過(guò)棧S,若出棧的順序?yàn)閏、f、e、d、b、a,則棧S的容量至少應(yīng)該為()。

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

44.有以下程序

intfun(intx[],intn)

{staticintsum=0,i;

for(i=0;i<n;i++)sum+=x[i];

returnsum;

}

main()

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

s=fun(a,5)+fun(b,4);printf("%d\n",s);

}

程序執(zhí)行后的輸出結(jié)果是

A.45B.50C.60D.55

45.有以下函數(shù):fun(char*p){returnp;}該函數(shù)的返回值是()。

A.無(wú)確切值B.形參p中存放的地址值C.一個(gè)臨時(shí)存儲(chǔ)單元的地址D.形參p自身的地址值

46.下列司用于C語(yǔ)言用戶(hù)標(biāo)識(shí)符的—組是______。

A.voiddefineWORD

B.a3_b3_123Car

C.For-abcIFCase

D.2aDOsizeof

47.下面程序的輸出結(jié)果是()。chars()="ABCD",*p;main(){for(p=s;p<s+4;p++)printf("%s\n",p);)

A.ABCDBCDCDDB.ABCDC.DCBAD.ABCDABCABA

48.現(xiàn)有如下定義語(yǔ)句int*p,s[20],i;p=s;表示數(shù)組元素s[i]的表達(dá)式不正確的是

A.*(s+i)B.*(p+i)C.*(s=s+i)D.*(p=p+i)

49.下列敘述中正確的是()。A.一個(gè)邏輯數(shù)據(jù)結(jié)構(gòu)只能有一種存儲(chǔ)結(jié)構(gòu)

B.邏輯結(jié)構(gòu)屬于線性結(jié)構(gòu),存儲(chǔ)結(jié)構(gòu)屬于非線性結(jié)構(gòu)

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

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

50.若有下列定義(設(shè)int類(lèi)型變量占2個(gè)字節(jié)):inti=8,j=9;則下列語(yǔ)句:printf("i=%u,j=%x\n",i,j);輸出的結(jié)果是()。

A.i=8,j=9B.8.9C.89D.i=8,j=8

51.算法的空間復(fù)雜度是指()。

A.算法程序的長(zhǎng)度B.算法程序中的指令條數(shù)C.算法程序所占的存儲(chǔ)空間D.算法執(zhí)行過(guò)程中所需要的存儲(chǔ)空間

52.當(dāng)調(diào)用函數(shù)時(shí),實(shí)參是一個(gè)數(shù)組名,則向函數(shù)傳送的是______。

A.數(shù)組的長(zhǎng)度B.數(shù)組的首地址C.數(shù)組中每一個(gè)元素的地址D.數(shù)組每個(gè)元素中的值

53.下列選項(xiàng)中,合法的C語(yǔ)言關(guān)鍵字是______。

A.VARB.cherC.integerD.default

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

A.軟件工程只是解決軟件項(xiàng)目的管理問(wèn)題

B.軟件工程主要解決軟件產(chǎn)品的生產(chǎn)率問(wèn)題

C.軟件工程的主要思想是強(qiáng)調(diào)在軟件開(kāi)發(fā)過(guò)程中需要應(yīng)用工程化原則

D.軟件工程只是解決軟件開(kāi)發(fā)中的技術(shù)問(wèn)題

55.以下錯(cuò)誤的定義語(yǔ)句是A.intx[][3]={{0},{1},{1,2,3}};

B.intx[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};

C.intx[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};

D.intx[][3]={1,2,3,4};

56.以下程序的輸出結(jié)果是()#include<stdio.h>#include<string.h>main(){charstr[12]={'s','t','r','i','n','g'};printf("%d\n",strlen(str));}

A.6B.7C.11D.12

57.下列程序段的輸出結(jié)果為()。#include<stdio.h>main(){staticchara[]="language";char*p;p=a;for(p=a;p<a+8;p+=2)putchar(*p);}

A.languageB.lnugC.有語(yǔ)法錯(cuò)誤D.lang

58.若變量均已正確定義并賦值,以下合法的C語(yǔ)言賦值語(yǔ)句是()。

A.x=y==5;B.X=n%2.5:C.x+n=i;D.x=5=4+1:

59.若有以下說(shuō)明和語(yǔ)句intc[4][5],(*p)[5];p=c;能夠正確引用c數(shù)組元素的是

A.p+1B.*(p+3)C.*(p+1)+3D.*(P[0]+2)

60.以下合法的十六進(jìn)制數(shù)是()。

A.0xB.0x4deC.0x1hD.oX77

四、選擇題(20題)61.算法是指()。

A.計(jì)算機(jī)程序

B.解決問(wèn)題的計(jì)算方法

C.排序算法

D.解決問(wèn)題的有限運(yùn)算序列

62.在深度為7的滿(mǎn)二叉樹(shù)中,葉子結(jié)點(diǎn)的個(gè)數(shù)為_(kāi)_____。A.32B.31C.64D.63

63.

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

main()

{inta,b;

scanf("%2d%3d",&a,&b);

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

}

A.a(chǎn)=12b=34

B.a(chǎn)=123b=45

C.a(chǎn)=12b=345

D.語(yǔ)句有錯(cuò)誤

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

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

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

#defineMIN(x,y)(x)<(y)?(x):(y)

main()

{

inti=10,j=15,k;

k=10*MIN(i,j);

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

}

A.10B.15

C.100D.150

67.設(shè)有定義:

則以下賦值語(yǔ)句中錯(cuò)誤的是()。

A.data2=datal;

B.data2=(2,6.;

C.

D.

68.

69.

70.

71.若變量已正確定義,在if(W)printf(”%d、n”,k);中,以下不可替代w的是()。A.ab+1:B.ch=getchar()C.a==b+cD.a++

72.以下選項(xiàng)錯(cuò)誤的是

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

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

74.

75.下列敘述中正確的是()。A.A.只能在循環(huán)體內(nèi)和switch語(yǔ)句體內(nèi)使用break語(yǔ)句B.cotinue語(yǔ)句的作用是結(jié)束整個(gè)循環(huán)的執(zhí)行

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

D.從多層循環(huán)嵌套中退出時(shí),只能使用got0語(yǔ)句

76.

77.

78.

79.以下語(yǔ)句的執(zhí)行結(jié)果是()。

intm=0,s=1;

do{

s+=m++;

}while(m<6);

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

A.17B.16C.15D.18

80.

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:用冒泡法對(duì)6個(gè)字符串按由小到大的順序進(jìn)行排序。請(qǐng)修改程序中的錯(cuò)誤,使它能得到正確結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計(jì)題(1題)82.編寫(xiě)函數(shù)intproc(intlim,intaa[M]),該函數(shù)的功能是求出小于或等于lim的所有素?cái)?shù)并放在aa數(shù)組中,該函數(shù)返回所求出的素?cái)?shù)。例如,若輸入12時(shí),則輸出:235711。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。試題程序:

參考答案

1.B解析:棧是限定在二端進(jìn)行插入與刪除的線性表。在棧中,允許插入與刪除的一端稱(chēng)為棧頂,而不允許插入與刪除的另一端稱(chēng)為棧底。棧頂元素總是最后被插入的元素,從而也是最先能被刪除的元素;棧底元素總是最先被插入的元素,從而也是最后才能被刪除的元素,即棧是按照“先進(jìn)后出”或“后進(jìn)先出”的原則組織數(shù)據(jù)的。注意:隊(duì)列組織數(shù)據(jù)的原則是“先進(jìn)先出”或“后進(jìn)后出”。注意:數(shù)據(jù)結(jié)構(gòu)中,棧和隊(duì)列組織數(shù)據(jù)的原則。

2.C

3.C解析:在數(shù)據(jù)庫(kù)系統(tǒng)中,由于采用的數(shù)據(jù)模型不同,相應(yīng)的數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)也不同。目前常用的數(shù)據(jù)模型有三種:層次模型、網(wǎng)狀模型和關(guān)系模型。在層次模型中,實(shí)體之間的聯(lián)系是用樹(shù)結(jié)構(gòu)來(lái)表示的,其中實(shí)體集(記錄型)是樹(shù)中的結(jié)點(diǎn),而樹(shù)中各結(jié)點(diǎn)之間的連線表示它們之間的關(guān)系。因此,本題的正確答案是C。

4.D

5.B

6.B對(duì)于標(biāo)識(shí)符的長(zhǎng)度(即一個(gè)標(biāo)識(shí)符允許的字符個(gè)數(shù)),C語(yǔ)言編譯系統(tǒng)是有規(guī)定的,即標(biāo)識(shí)符的前若干個(gè)字符有效,超過(guò)的字符將不被識(shí)別。不同的C語(yǔ)言編譯系統(tǒng)所規(guī)定的標(biāo)識(shí)符有效長(zhǎng)度是不同的。故本題答案為B選項(xiàng)。

7.B解析:本題中,structex是結(jié)構(gòu)體類(lèi)型名,ex-ample是結(jié)構(gòu)體變量名。

8.B

9.C解析:此題考查了指針引用一維數(shù)組元素的方法。*p+9因?yàn)檫\(yùn)算符'*'的優(yōu)先級(jí)高于'+',所以輸出結(jié)果為p指向的元素1,然后加9,值為10。

10.C在C語(yǔ)言中,可以用一個(gè)標(biāo)識(shí)符來(lái)表示一個(gè)常量,稱(chēng)之為符號(hào)常量。符號(hào)常量在使用之前必須先定義,其一般形式為:#define標(biāo)識(shí)符常量。

11.D選項(xiàng)A中,int是關(guān)鍵字,不能作為用戶(hù)標(biāo)識(shí)符;選項(xiàng)B中,兩個(gè)“#”錯(cuò)誤;選項(xiàng)C中兩個(gè)“#”錯(cuò)誤,另外DEFINE大寫(xiě)也是錯(cuò)誤的。故本題答案為D選項(xiàng)。

12.A在C語(yǔ)言里不能直接表達(dá)“0<x<5”,需要分步驟來(lái)實(shí)現(xiàn),即使用“x>0&&x<5”來(lái)描述。在C語(yǔ)言里,“0<x<5”屬于一個(gè)邏輯運(yùn)算表達(dá)式,可以理解為“(0<x)<5”,因此選項(xiàng)A錯(cuò)誤。故本題答案為A選項(xiàng)。

13.D

14.B(45)B)解析:算法應(yīng)該具有下列五個(gè)特性:

①有窮性:一個(gè)算法必須在執(zhí)行有窮步之后結(jié)束。

②確定性:算法中的每一步,必須有確切的含義,在他人理解時(shí)不會(huì)產(chǎn)生二義性。

③動(dòng)態(tài)性:算法中描述的每一步操作都可以通過(guò)已有的基本操作執(zhí)行有限次實(shí)現(xiàn)。

④輸入:一個(gè)算法應(yīng)該有零個(gè)或多個(gè)輸入。

⑤輸出:一個(gè)算法應(yīng)該有一個(gè)或多個(gè)輸出。這里所說(shuō)的輸出是指與輸入有某種特定關(guān)系的量。

15.B

16.B

17.B關(guān)系之間的操作分為自然連接、投影、交、并、差等,由圖可知此操作為差操作。

18.C整型變量x、y的初值都為1,“x++,y++,++y”是一個(gè)逗號(hào)表達(dá)式,程序執(zhí)行“z=x++,y++,++y”之后,x的值為2,y的值為3,z取逗號(hào)表達(dá)式中的第二個(gè)表達(dá)式的值,為1。因此本題的答案為選項(xiàng)C。

19.C

20.B

21.無(wú)定值無(wú)定值解析:for(i=l;i<7;i++)決定了循環(huán)次數(shù)為6次,每次執(zhí)行的操作是sum+=i,但由于sum沒(méi)有初始化,并不知道sum的初值是多少,所以結(jié)果無(wú)定值。

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

23.

24.xx解析:函數(shù)的定義形式為;

函數(shù)類(lèi)型函數(shù)名(形參表)

{

類(lèi)型說(shuō)明語(yǔ)句;

執(zhí)行語(yǔ)句;

}

本題中函數(shù)的功能是:累積變量以求得變量的Y次方。

25.無(wú)定值無(wú)定值解析:for(i=1;i<7;i++)決定了循環(huán)次數(shù)為6次,每次執(zhí)行的操作是Sum+=i,但由于sum沒(méi)有初始化,并不知道sum的初值是多少,所以結(jié)果無(wú)定值.

26.軟件開(kāi)發(fā)軟件開(kāi)發(fā)解析:軟件生命周期分為3個(gè)時(shí)期共8個(gè)階段:軟件定義期(問(wèn)題定義、可行性研究和需求分析)、軟件開(kāi)發(fā)期(系統(tǒng)設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和測(cè)試)、軟件維護(hù)期(即運(yùn)行維護(hù)階段)。

27.完善性軟件維護(hù)活動(dòng)包括以下幾類(lèi):改正性維護(hù),適應(yīng)性維護(hù)、完善性維護(hù)和預(yù)防性維護(hù),完善性維護(hù)是指為了滿(mǎn)足用戶(hù)對(duì)軟件提出的新功能與性能要求,需要修改或再開(kāi)發(fā)軟件,以擴(kuò)充軟件功能、增強(qiáng)軟件性能、改進(jìn)加工效率、提高軟件的可維護(hù)性。

28.*(str+I)或str[I]*(str+I)或str[I]解析:str是指針變量,它指向字符型數(shù)據(jù),在循環(huán)過(guò)程中,可以用*(str+I)來(lái)訪問(wèn)字符串中的第I個(gè)元素,判斷是否為結(jié)束標(biāo)志,如果不是,I=I+1,繼續(xù)取下一個(gè)元素進(jìn)行判斷,直到*(str+I)的值為'\\0'為止,也可以用下標(biāo)的方式引用字符,如*(str+I)相當(dāng)于str[I]。

29.文檔文檔解析:計(jì)算機(jī)軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,是包括程序、數(shù)據(jù)以及相關(guān)文檔的完整集合。

30.n/2n/2解析:刪除一個(gè)元素,平均移動(dòng)的元素個(gè)數(shù)為(n-1+n-2+…+0)/n=(n-1)/2;插入一個(gè)元素,平均移動(dòng)元素個(gè)數(shù)為(n+n-1+n-2+…+1)/n=(n+1)/2;所以總體平均移動(dòng)元素個(gè)數(shù)為n/2。

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

32.功能性注釋功能性注釋解析:注釋一般分為序言性注釋和功能性注釋。序言性注釋通常位于每個(gè)程序的開(kāi)頭部分,它給出程序的整體說(shuō)明;功能性注釋的位置一般嵌在源程序體之中戶(hù)主要描述其后的語(yǔ)句或程序做什么。

33.structlink*headstructlink*head解析:考查用指針引用結(jié)構(gòu)體變量成員數(shù)據(jù)的方法。因?yàn)楸绢}中是用結(jié)構(gòu)體變量構(gòu)成了鏈表,所以要從鏈表頭節(jié)點(diǎn),逐個(gè)節(jié)點(diǎn)的引用結(jié)構(gòu)體的數(shù)據(jù)域,需要有指向結(jié)構(gòu)體變量的指針,依次指向各個(gè)節(jié)點(diǎn),即p=p->next,而用指針引用結(jié)構(gòu)體成員數(shù)據(jù)的方法為:p->data。

34.1011121210111212解析:用static關(guān)鍵字聲明的變量稱(chēng)為靜態(tài)局部變量。靜態(tài)局部變量只在編譯時(shí)賦一次初值,以后再次調(diào)用函數(shù)時(shí)不再重新賦初值,而是保留上次函數(shù)調(diào)用結(jié)束時(shí)的值。程序中的變量c為靜態(tài)變量,當(dāng)再次調(diào)用fun函數(shù)時(shí),變量c不再被賦初值,變量c的值為上次調(diào)用fun函數(shù)時(shí)所保留下來(lái)的值,具體在程序運(yùn)行過(guò)程中的體現(xiàn)如下:

當(dāng)i=0時(shí),第一次調(diào)用fun(5),這時(shí)a=5,b=0,c=3,執(zhí)行b++,c++,得到b=1,c=4,則a+b+c=10,返回主函數(shù)輸出010;當(dāng)i=1時(shí),第二次調(diào)用fun(5),這時(shí)a=5,b=0,c=4,執(zhí)行b++,c++,得到b=1,c=5,則a+b+c=11,返回主函數(shù)輸出111;當(dāng)i=2時(shí),第三次調(diào)用fun(5),這時(shí)a=5,b=0,c=5,執(zhí)行b++,c++,得到b=1,c=6,則a+b+c=12,返回主函數(shù)輸出212;當(dāng)i=3時(shí),循環(huán)結(jié)束,所以輸出結(jié)果為:010111212。

35.方法方法解析:在面向?qū)ο蠓椒ㄖ?,方法是指允許作用于某個(gè)對(duì)象上的各種操作。

36.33解析:i=1時(shí),f(1)=1,j=j+f(1)=0+1=1;i=2時(shí),f(2)=f(1)+1=1+1=2,j=j+f(2)=1+3=3;此時(shí)循環(huán)結(jié)束,程序運(yùn)行后的輸出結(jié)果是3。

37.數(shù)據(jù)庫(kù)系統(tǒng)或數(shù)據(jù)庫(kù)系統(tǒng)階段或數(shù)據(jù)庫(kù)或數(shù)據(jù)庫(kù)階段或數(shù)據(jù)庫(kù)管理技術(shù)階段數(shù)據(jù)庫(kù)系統(tǒng)或數(shù)據(jù)庫(kù)系統(tǒng)階段或數(shù)據(jù)庫(kù)或數(shù)據(jù)庫(kù)階段或數(shù)據(jù)庫(kù)管理技術(shù)階段解析:在數(shù)據(jù)庫(kù)系統(tǒng)管理階段,數(shù)據(jù)是結(jié)構(gòu)化的,是面向系統(tǒng)的,數(shù)據(jù)的冗余度小,從而節(jié)省了數(shù)據(jù)的存儲(chǔ)空間,也減少了對(duì)數(shù)據(jù)的存取時(shí)間,提高了訪問(wèn)效率,避免了數(shù)據(jù)的不一致性,同時(shí)提高了數(shù)據(jù)的可擴(kuò)充性和數(shù)據(jù)應(yīng)用的靈活性;數(shù)據(jù)具有獨(dú)立性,通過(guò)系統(tǒng)提供的映象功能,使數(shù)據(jù)具有兩方面的獨(dú)立性:一是物理獨(dú)立性,二是邏輯獨(dú)立性;保證了數(shù)據(jù)的完整性、安全性和并發(fā)性-綜上所述,數(shù)據(jù)獨(dú)立性最高的階段是數(shù)據(jù)庫(kù)系統(tǒng)管理階段。

38.88解析:二維數(shù)組可以看成是按矩陣形式排列的,題目中給二維數(shù)組賦初值是按行分段賦值的,a[4][4]可以分解為4個(gè)一維數(shù)組,其數(shù)組名分別為a[0]、a[1]、a[2]、a[3],這4個(gè)一維數(shù)組都有4個(gè)元素,a[0]的元素為ap[0][0]、a[0][1]、a[0][2]、a[0][3]。

39.DDBBCCDDBBCC解析:C語(yǔ)言對(duì)枚舉的定義規(guī)定:在枚舉中聲明的各個(gè)枚舉元素,如果沒(méi)有明確指出某個(gè)枚舉元素的值,它的上一個(gè)元素存在并有明確值的情況下,這個(gè)枚舉元素的值為其上一個(gè)元素的值+1。在本題中,沒(méi)有明確說(shuō)明枚舉元素em3的值,則em3=em2+1=1+1=2,進(jìn)而可知,在printf()打印函數(shù)中,要打印的數(shù)組元素是aa[3]、aa[1]、aa[2],因此最后的打印結(jié)果應(yīng)當(dāng)為“DDBBCC”。

40.模塊模塊解析:矩形表示的是模塊,箭頭表示的是模塊間的調(diào)用關(guān)系。用帶實(shí)心圓的箭頭表示傳遞的是控制信息,用帶空心圓的箭頭表示傳遞的是數(shù)據(jù)。

41.B解析:本題考查軟件需求分析的四個(gè)階段,分別為需求獲取、需求分析、編寫(xiě)需求分析說(shuō)明書(shū)和需求評(píng)審。

42.B解析:本題考查的是遞歸函數(shù)。在一個(gè)函數(shù)中直接或間接地調(diào)用了自身,則稱(chēng)此函數(shù)為遞歸函數(shù)。本題定義的函數(shù)f()就是一個(gè)遞歸函數(shù)。它先交換兩個(gè)字符指針?biāo)傅膬?nèi)容,然后將第1個(gè)指針往后移動(dòng)一位,第2個(gè)指針往前移動(dòng)一位,如果第1個(gè)指針?biāo)竷?nèi)容不是字符串結(jié)束標(biāo)志,則遞歸調(diào)用自身。主函數(shù)中首先定義了一個(gè)字符數(shù)組sTR[10]='abcdefg',然后定義了一個(gè)字符指針p=str+strlen(str)/2+1,即讓p指向str+4(或&str[4])的位置.然后調(diào)用f(p,p-2);,這使得p所指的str[4]及其以后的2個(gè)位置str[5]、str[6]中的內(nèi)容同p-2所指的3tr[2]及其以前的2個(gè)位置str[1]、str[0]中的內(nèi)容互相交換。即讓整個(gè)字符串逆序。所以本題應(yīng)該選擇B。

43.B解析:根據(jù)題中給定的條件,可做如下模擬操作:

①元素a、b、c進(jìn)棧,棧中有3個(gè)元素,分別為a、b、c;

②元素c出棧后,元素d、e、f進(jìn)棧,棧中有5個(gè)元素,分別為a、b、d、e、f;

③元素f、e、d、a、b出棧,棧為空??梢钥闯?,進(jìn)棧的順序?yàn)閍、b、c、d、e、f,出棧的順序?yàn)閏、f、e、d、b、a,滿(mǎn)足題中所提出的要求。

在每一次進(jìn)棧操作后,棧中最多有3個(gè)元素,因此,為了順利完成這些操作,棧的容量應(yīng)至少為5。本題答案為B。

44.C解析:內(nèi)部靜態(tài)變量是始終存在的,當(dāng)函數(shù)被調(diào)用退出后,內(nèi)部靜態(tài)變量會(huì)保存數(shù)據(jù),再次調(diào)用該函數(shù)時(shí),以前調(diào)用時(shí)的數(shù)值仍然保留著。Fun(a,5)的值是15,再次調(diào)用后sum=15,所以Fun(b,4)=45,s=45+15=60。

45.B解析:return中返回的是指針p的值,也就是形參p中存放的地址值。

46.B解析:C語(yǔ)言規(guī)定標(biāo)識(shí)符只能由字母、數(shù)字和下劃線3種字符組成,且第一個(gè)字符必須為字母或下劃線,所以排除C和D。C語(yǔ)言還規(guī)定標(biāo)識(shí)符不能為C語(yǔ)言的關(guān)鍵字,從而選項(xiàng)A(void是關(guān)鍵字)是錯(cuò)誤的。

47.A解析:p為指針型變量。第一次循環(huán),p=s,p的值為字符數(shù)組s的首地址,輸出字符串'ABCD'。p++,第二次循環(huán),p的值為字符數(shù)組s的首地址加1,輸出字符串'BCD'。p++,第三次循環(huán),p的值為字符數(shù)組s的首地址加2,輸出字符串'CD'。p++,第4次循環(huán),p的值為字符數(shù)組s的首地址加3,輸出字符串\'D'。

48.C解析:當(dāng)p指向s數(shù)組的首地址時(shí),表示數(shù)組元素s[i]的表達(dá)式應(yīng)當(dāng)有:①s[i],②,(s+i),③*(p+i),④p[i]四種形式。選項(xiàng)C)錯(cuò)誤的原因是,數(shù)組的地址是不可變的,指針的地址是可以變的。

49.DD)【解析】數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是指數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空間中的存放形式,一種數(shù)據(jù)結(jié)構(gòu)可以根據(jù)需要采用不同的存儲(chǔ)結(jié)構(gòu),常用的存儲(chǔ)結(jié)構(gòu)有順序和鏈?zhǔn)浇Y(jié)構(gòu)。采用不同的存儲(chǔ)結(jié)構(gòu),其處理的效率是不同的。

50.A解析:本題考查函數(shù)printf()的格式。“%x”表示以十六進(jìn)制輸出整型數(shù)據(jù);“%u”表示以十進(jìn)制無(wú)符號(hào)型輸出整型數(shù)據(jù)。printf函數(shù)中格式說(shuō)明符之前插入的任何字符都原樣輸出。

51.D【解析】算法的空間復(fù)雜度是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間。一個(gè)算法所占用的存儲(chǔ)空間包括算法程序所占的空間、輸入的初始數(shù)據(jù)所占的存儲(chǔ)空間以及算法執(zhí)行中所需要的額外空間。其中額外空間包括算法程序執(zhí)行過(guò)程中的工作單元以及某種數(shù)據(jù)結(jié)構(gòu)所需要的附加存儲(chǔ)空間。如果額外空間量相對(duì)于問(wèn)題規(guī)模來(lái)說(shuō)是常數(shù),則稱(chēng)該算法是原地工作的。在許多實(shí)際問(wèn)題中,為了減少算法所占的存儲(chǔ)空間,通常采用壓縮存儲(chǔ)技術(shù),以便盡量減少不必要的額外空間。

52.B

53.D解析:選項(xiàng)A中的VAR不是C語(yǔ)言中關(guān)鍵字,故選項(xiàng)A不正確:選項(xiàng)B中cher,應(yīng)改char,char才是C語(yǔ)言中的關(guān)鍵字,故選項(xiàng)B不正確;選項(xiàng)C中integer在C語(yǔ)言中簡(jiǎn)化為int,這里應(yīng)該將integer改為int,int才是C語(yǔ)言中的關(guān)鍵字,選項(xiàng)D中default為C語(yǔ)言中默認(rèn)的關(guān)鍵字,故選項(xiàng)D正確。所以,4個(gè)選項(xiàng)中選項(xiàng)D符合題意。

54.C\r\n軟件工程是試圖用工程、科學(xué)和數(shù)學(xué)的原理與方法研制、維護(hù)計(jì)算機(jī)軟件的有關(guān)技術(shù)及管理方法。軟件工程的主要思想是強(qiáng)調(diào)在軟件開(kāi)發(fā)工程中需要應(yīng)用工程化的原則。軟件工程用來(lái)解決以下問(wèn)題:軟件需求的增長(zhǎng)得不到滿(mǎn)足、軟件開(kāi)發(fā)成本和進(jìn)度無(wú)法控制、軟件質(zhì)量難以保證、軟件不可維護(hù)或維護(hù)程度低、軟件得成本不斷提高、軟件開(kāi)發(fā)生產(chǎn)率的提高趕不上硬件的發(fā)展和應(yīng)用需求的增長(zhǎng)。軟件項(xiàng)目的管理、軟件產(chǎn)品的生產(chǎn)率、軟件開(kāi)發(fā)中的技術(shù)都是軟件工程需要解決的部分問(wèn)題。因此選項(xiàng)C正確。

55.C解析:本題考查的是二維數(shù)組的定義和初始化方法。C語(yǔ)言中,在定義并初始化二維數(shù)組時(shí),可以省略數(shù)組第一維的長(zhǎng)度,但是不能省略第二維的長(zhǎng)度。故選項(xiàng)C)錯(cuò)誤。

56.A解析:本題考查求字符串的長(zhǎng)度。程序中定義字符串str時(shí)中請(qǐng)了12個(gè)字節(jié)的內(nèi)存空間,對(duì)它賦初值后,函數(shù)strlen在求串長(zhǎng)度時(shí),以'\\0'作為串結(jié)束符,所以,strlen(str)的值為6。

57.B解析:本程序首先定義了靜態(tài)字符數(shù)組a,然后將指針p指向數(shù)組a的首地址。

第1次for循環(huán),p=a,p指向數(shù)組的第1個(gè)元素,*p是取指針p所指地址的內(nèi)容,輸出1;第2次for循環(huán),p=p+2,則p指向數(shù)組的第3個(gè)元素,*p是取指針p所指地址的內(nèi)容,輸出n;第3次for循環(huán),p=p+2,則p指向數(shù)組的第5個(gè)元素,*p是取指針p所指地址的內(nèi)容,輸出u;第4次for循環(huán),p=p+2,則p指向數(shù)組的第7個(gè)元素,*p是取指針p所指地址的內(nèi)容,輸出g,結(jié)束循環(huán)。

58.AB選項(xiàng)中運(yùn)算符“%”的運(yùn)算對(duì)象為整數(shù)。C選項(xiàng)中不能將變量賦給表達(dá)式“x+n”。D選項(xiàng)中不能將表達(dá)式“4+1”賦給常量5。故本題答案為A選項(xiàng)。

59.D解析:本題中定義了一個(gè)二維數(shù)組c和一個(gè)指針數(shù)組p并初始化讓它指向c,顯然此時(shí)p中的各元素為地址,選項(xiàng)A中p+1,此時(shí)其中的1代表的長(zhǎng)度是整個(gè);維數(shù)組c的長(zhǎng)度,故p+1將讓p指向c數(shù)組后面的元素,故不能引用c數(shù)組中的成員,故選項(xiàng)A錯(cuò)誤;同理選項(xiàng)B和選項(xiàng)C都不正確,選項(xiàng)D中p[0]指的是指針數(shù)組中的第一個(gè)元素的地址即c的首地址,此時(shí)的1的長(zhǎng)度代表的是數(shù)組c中一行的長(zhǎng)度,故p[0]+2代表的是第三行的首地址,而*(p[0]+2)將代表第三行的第一個(gè)元素的地址,所以,4個(gè)選項(xiàng)中選項(xiàng)D符合題意。

60.B解析:考查十六進(jìn)制數(shù)的表示方法。十六進(jìn)制數(shù)以0x開(kāi)頭,后面跟著若干位1f的數(shù),所以正確答案為B)。整形常量、實(shí)型常量和字符型常量的合法性判斷。

61.D算法是指對(duì)解決方案準(zhǔn)確而完整的描述。

62.C在滿(mǎn)二叉樹(shù)中每層的結(jié)點(diǎn)數(shù)都達(dá)到最大值,而且葉子結(jié)點(diǎn)全部出現(xiàn)在最底層。第l層(根結(jié)點(diǎn)所在的層)有20個(gè)結(jié)點(diǎn),第2層有21個(gè)結(jié)點(diǎn),……第n層有2n-1個(gè)結(jié)點(diǎn)。在深度為7的滿(mǎn)二叉樹(shù)中,第7層有27-l=64個(gè)結(jié)點(diǎn)(全部是葉子結(jié)點(diǎn))、在深度為7的滿(mǎn)二叉樹(shù)中,共有27—1=127個(gè)結(jié)點(diǎn)、因此本題的正確答案是C

63.A

64.C嚴(yán)格按照格式進(jìn)行輸入和輸出。%2d%3d,a是兩位輸入,b是三位,輸出時(shí)亦是這個(gè)格式。

65.A調(diào)用f(a,b)函數(shù)返回3,調(diào)用f(a,c)函數(shù)返回6,因此外層調(diào)用f(f(a,b),“a,c));,即調(diào)用f(3,6)函數(shù)返回9,故本題答案為A)。

66.B該題考查函數(shù)的宏定義及三目運(yùn)算符。其中,表達(dá)式10*MIN(i,j)利用宏展開(kāi)后為10*i<j?i:j,即100<15?10:15,其值為15,然后賦值給k。

67.B選項(xiàng)8需要強(qiáng)制轉(zhuǎn)換數(shù)據(jù)類(lèi)型,應(yīng)該為

(structcomplex){2,6};。

68.B

69.B

70.B

71.A選項(xiàng)A)是非法的表達(dá)式,C語(yǔ)言中沒(méi)有“<>”運(yùn)算符。

72.D在選項(xiàng)A中的語(yǔ)句沒(méi)有一條是錯(cuò)誤的。選項(xiàng)B和C中有一個(gè)逗號(hào)表達(dá)式,選項(xiàng)B中是x=0,y=x+1;,在選項(xiàng)C中是y=x+1,z=x+y;。所以,B和C中也沒(méi)有錯(cuò)誤。選項(xiàng)D中的最后一條語(yǔ)句是以逗號(hào)結(jié)束的,而C語(yǔ)言中不能用逗號(hào)作為一個(gè)語(yǔ)句的結(jié)束標(biāo)志,每一條語(yǔ)句最后應(yīng)該是分號(hào),所以,D選項(xiàng)中的程序是錯(cuò)誤的。

73.B逗號(hào)表達(dá)式a++,b++,a+b先計(jì)算a++,a=2;再計(jì)算b++,b=3;表達(dá)式的值就是a+b的值,為5。表達(dá)式C++的值是C遞增前的值,為3。所以fun((a++,b++,a+b),C++)等價(jià)于fun(5,3),返回值為5+3=8。

74.C

75.A本題考查循環(huán)跳出的知識(shí)點(diǎn):①break語(yǔ)句可以出現(xiàn)在switch循環(huán)體內(nèi)及語(yǔ)句體內(nèi),它的作用是跳出循環(huán)體,不能用于其他的語(yǔ)句;②continue語(yǔ)句的作用是結(jié)束本次循環(huán),即跳過(guò)循環(huán)體中下面尚未執(zhí)行的語(yǔ)句,而接著判定循環(huán)條件是否成立,確定下一次循環(huán)是否繼續(xù)執(zhí)行,執(zhí)行contiune語(yǔ)句不會(huì)使整介循環(huán)終止;③循環(huán)體內(nèi)使用break語(yǔ)句會(huì)使循環(huán)提前終止;④從多層循環(huán)嵌套中退出時(shí),可以使用90t0語(yǔ)句或者break語(yǔ)句。

76.A

77.B

78.A

79.B

80.B

81.(1)錯(cuò)誤:if(strcmp((pstr+i),(pstr+j))>o)

正確:if(strcmp(*(pstr+i),*(pstr+j))>0)

(2)錯(cuò)誤:*(pstr+j)=*P

正確:*(pstr+j)=p

【解析】變量pstr表示的是字符串?dāng)?shù)組的首地址,pstr+i表示的是字符串首地址偏移量為i處的地址。程序中要比較的是字符,因此,“if(strcmp((pstr+i),(pstr+j))>0)”應(yīng)改為“if(strcmp(*(pstr+i),*(pstr+j))>0)”;根據(jù)程序可知,要交換的是字符串的首地址而不是字符串的內(nèi)容,因此,“*(pstr+j)=*p”應(yīng)改為“*(pstr+j)=P”。

82.

【解析】首先判斷小于等于整數(shù)lim的所有整數(shù)是否為素?cái)?shù)。然后將一個(gè)素?cái)?shù)放入數(shù)組aa中,最后將素?cái)?shù)的個(gè)數(shù)返回給主函數(shù)。

</j?i:j,即100<15?10:15,其值為15,然后賦值給k。2022年江蘇省常州市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.下列數(shù)據(jù)結(jié)構(gòu)中,按先進(jìn)后出原則組織數(shù)據(jù)的是

A.線性鏈表B.棧C.循環(huán)鏈表D.順序表

2.在一個(gè)源文件中定義的全局變量的作用域?yàn)椋?)

A.本程序的全部范圍B.本函數(shù)的全部范圍C.從定義該變量的位置開(kāi)始到本文件結(jié)束D.以上說(shuō)法都不正確

3.用樹(shù)形結(jié)構(gòu)表示實(shí)體之間聯(lián)系的模型的是

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

4.循環(huán)隊(duì)列存儲(chǔ)在數(shù)組A[0..m]中,則入隊(duì)時(shí)的操作為()。

A.rear=rear+1

B.rear=(rear+1)mod(m-1)

C.rear=(rear+1)modm

D.rear=(rear+1)mod(m+1)

5.二維數(shù)組M的元素是4個(gè)字符(每個(gè)字符占一個(gè)存儲(chǔ)單元)組成的串,行下標(biāo)i的范圍從0到4,列下標(biāo)j的范圍從0到5,M按行存儲(chǔ)時(shí)元素M[3][5]的起始地址與M按列存儲(chǔ)時(shí)元素()的起始地址相同。

A.M[2][4]B.M[3][4]C.M[3][5]D.M[4][4]

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

A.C語(yǔ)言編譯系統(tǒng)對(duì)標(biāo)識(shí)符的長(zhǎng)度沒(méi)有規(guī)定

B.C語(yǔ)言標(biāo)識(shí)符的規(guī)定長(zhǎng)度因系統(tǒng)而異

C.C語(yǔ)言規(guī)定標(biāo)識(shí)符長(zhǎng)度最多允許16個(gè)字符,超長(zhǎng)報(bào)錯(cuò)

D.C語(yǔ)言規(guī)定以下劃線開(kāi)頭的標(biāo)識(shí)符長(zhǎng)度必須大于1

7.設(shè)有以下說(shuō)明語(yǔ)句

structex

{intx;floaty;charz;}example;

則下面的敘述中不正確的是

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

B.example是結(jié)構(gòu)體類(lèi)型名

C.x,y,z都是結(jié)構(gòu)體成員名

D.structex是結(jié)構(gòu)體類(lèi)型名

8.在一個(gè)鏈?zhǔn)疥?duì)列中,假設(shè)f和r分別為隊(duì)頭和隊(duì)尾指針,則插入S所指結(jié)點(diǎn)的運(yùn)算是()。

A.f->next=s;f=s;

B.r->next=s;r=s;

C.S->next=rr=s;

D.r->next=f;f=s;

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

#include<stdio.h>

main()

{inta[]={1,2,3,4,5,6,7,8,9,0},*p;

p=a;

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

A.0B.1C.10D.9

10.以下敘述中錯(cuò)誤的是()。

A.非零的數(shù)值型常量有正值和負(fù)值的區(qū)分

B.常量是在程序運(yùn)行過(guò)程中值不能被改變的量

C.定義符號(hào)常量必須用類(lèi)型名來(lái)設(shè)定常量的類(lèi)型

D.用符號(hào)名表示的常量叫符號(hào)常量

11.下面關(guān)于編譯預(yù)處理的命令行中,正確的是()。

A.#defineintINT

B.##defineeps0.001

C.##DEFINETRUE

D.#defineE2.88

12.以下與數(shù)學(xué)表達(dá)式“0<x<5且x≠2”不等價(jià)的C語(yǔ)言邏輯表達(dá)式是()。

A.(0<x<5)&&(x!=2)

B.0<x&&x<5&&x!=2

C.x>0&&x<5&&x!=2

D.(x>0&&x<2)||(x>2&&x<5)

13.采用鄰接表存儲(chǔ)的圖的廣度優(yōu)先遍歷算法類(lèi)似于二叉樹(shù)的()。A.A.先序遍歷B.中序遍歷C.后序遍歷D.按層遍歷

14.以下敘述中錯(cuò)誤的是A.算法正確的程序最終一定會(huì)結(jié)束

B.算法正確的程序可以有零個(gè)輸出

C.算法正確的程序可以有零個(gè)輸入

D.算法正確的程序?qū)τ谙嗤妮斎胍欢ㄓ邢嗤慕Y(jié)果

15.順序查找法適合于存儲(chǔ)結(jié)構(gòu)為()的線性表。

A.散列存儲(chǔ)B.順序存儲(chǔ)或鏈?zhǔn)酱鎯?chǔ)C.壓縮存儲(chǔ)D.索引存儲(chǔ)

16.

17.有3個(gè)關(guān)系R、S和T如下.

則由關(guān)系R和S得到關(guān)系T的操作是()。A.自然連接B.差C.交D.并

18.有以下程序:#includemain(){intx,y,z;x=y=1;z=x++,y++,++y;printf(“%d,%d,%d\n”,x,y,z);}程序運(yùn)行后的輸出結(jié)果是()。A.2.3.3B.2.3.2C.2.3.1D.2.2.1

19.

20.在具有101個(gè)元素的順序表中查找值為x的元素結(jié)點(diǎn)時(shí),平均比較元素的次數(shù)為()。

A.50B.51C.100D.101

二、2.填空題(20題)21.下列程序的輸出結(jié)果是______。

main()

{inti,sum;

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

sum+=i;

primf("%d",sum);

}

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

23.數(shù)據(jù)庫(kù)保護(hù)分為安全性、控制性、______、并發(fā)性控制和數(shù)據(jù)恢復(fù)。

24.以下函數(shù)的功能是求x的y次方,請(qǐng)?zhí)羁铡?/p>

doublefun(doublex,inty)

{inti;

doublez;

for(i=1,z=x;i<y;i++)z=z*【】;

returnz;

}

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

main()

{imti,sum;

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

sum+=i;

printf("%d",sum);

}

26.軟件生命周期分為軟件定義期、軟件開(kāi)發(fā)期和軟件維護(hù)期,詳細(xì)設(shè)計(jì)屬于______中的一個(gè)階段。

27.軟件維護(hù)活動(dòng)包括以下幾類(lèi):改正性維護(hù)、適應(yīng)性維護(hù)、【】維護(hù)和預(yù)防性維護(hù)。

28.mystrlen函數(shù)的功能是計(jì)算str所指字符串的長(zhǎng)度,并作為函數(shù)值返回。請(qǐng)?zhí)羁铡?/p>

intmystrlen(char*str)

{intI;

for(I=0;【】!='\n';I++);

return(I);}

29.軟件是程序、數(shù)據(jù)和【】的集合。

30.對(duì)于長(zhǎng)度為n的順序存儲(chǔ)的線性表,當(dāng)隨機(jī)插入和刪除一個(gè)元素時(shí),需平均移動(dòng)元素的個(gè)數(shù)為【】。

31.下面的程序可列指定字符串中的字符串進(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(【】);

}

32.源程序文檔化要求程序應(yīng)加注釋。注釋一般分為序言性注釋和【】。

33.已知head指向一個(gè)帶頭結(jié)點(diǎn)的單向鏈表,鏈表中每個(gè)結(jié)點(diǎn)包含數(shù)據(jù)域(data)和指針域(next),數(shù)據(jù)域?yàn)檎汀R韵潞瘮?shù)求出鏈表中所有鏈結(jié)點(diǎn)數(shù)據(jù)域的和值,作為函數(shù)值返回。請(qǐng)?jiān)跈M線處填入正確內(nèi)容。

structlink

{intdata;structlink*next;}

main()

{structlink*head;

......

sum(head);

......

}

sum(【】);

{structlink*p;ints=0;

p=head->next;

while(p){s+=p->data;p=p->next;}

return(s);}

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

#include<stdio,h>fun(inta)

{intb=0;staticintc=3;

b++;c++;

return(a+b+c);

}

main()

inti,a=5;

for(i=0;i<3;i++)prinff("%d%d",i,fun(a));

printf("\n");

}

35.在面向?qū)ο蠓椒ㄖ?,允許作用于某個(gè)對(duì)象上的操作稱(chēng)為【】。

36.有以下程序:

intf(intn)

{if(n=1)return1;

elsereturnf(n-1)+1;}

main()

{inti,j=0;

for(i=1;i<3;i++)j+=f(i);

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

}

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

37.數(shù)據(jù)管理技術(shù)發(fā)展過(guò)程經(jīng)過(guò)人工管理、文件系統(tǒng)和數(shù)據(jù)庫(kù)系統(tǒng)三個(gè)階段,其中數(shù)據(jù)獨(dú)立性最高的階段是______。

38.若有定義:inta[4][4]={{1,2,3,4},{0},{4,6,8,10},{1,3,5,7}},則初始化后,a[2][2]得到的初值是______。

39.下面程序的輸出走【】。

main()

{enumem{em1=3,em2=1,em3};

char*aa[]={"AA","BB","CC","DD"};

printf("%s%s%s\n",aa[em1],aa[em2],aa[em3]);

}

40.常用的軟件結(jié)構(gòu)設(shè)計(jì)工具是結(jié)構(gòu)圖(SC),也稱(chēng)程序結(jié)構(gòu)圖。其中,用矩形表示______,用帶空心圓的箭頭表示傳遞的是數(shù)據(jù)。

三、1.選擇題(20題)41.軟件需求分析階段的工作可以分為4個(gè)方面:需求獲取、需求分析、編寫(xiě)需求分析說(shuō)明書(shū)和

A.階段性報(bào)告B.需求評(píng)審C.總結(jié)D.都不正確

42.有以下等程序#include<string.h>voidf(char*s,char*t){chark;k=*s;*s=*t;*t=k;s++;t--;if(*s)f(s,t);}main(){charstt[10]="abcdefg",*p;p=str+strlen(str)/2+1;f(p,p-2);printf("%s\n",str);}

A.abcdefgB.gfedcbaC.gbcdefaD.abedcfg

43.設(shè)棧S初始狀態(tài)為空。元素a、b、c、d、e、f依次通過(guò)棧S,若出棧的順序?yàn)閏、f、e、d、b、a,則棧S的容量至少應(yīng)該為()。

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

44.有以下程序

intfun(intx[],intn)

{staticintsum=0,i;

for(i=0;i<n;i++)sum+=x[i];

returnsum;

}

main()

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

s=fun(a,5)+fun(b,4);printf("%d\n",s);

}

程序執(zhí)行后的輸出結(jié)果是

A.45B.50C.60D.55

45.有以下函數(shù):fun(char*p){returnp;}該函數(shù)的返回值是()。

A.無(wú)確切值B.形參p中存放的地址值C.一個(gè)臨時(shí)存儲(chǔ)單元的地址D.形參p自身的地址值

46.下列司用于C語(yǔ)言用戶(hù)標(biāo)識(shí)符的—組是______。

A.voiddefineWORD

B.a3_b3_123Car

C.For-abcIFCase

D.2aDOsizeof

47.下面程序的輸出結(jié)果是()。chars()="ABCD",*p;main(){for(p=s;p<s+4;p++)printf("%s\n",p);)

A.ABCDBCDCDDB.ABCDC.DCBAD.ABCDABCABA

48.現(xiàn)有如下定義語(yǔ)句int*p,s[20],i;p=s;表示數(shù)組元素s[i]的表達(dá)式不正確的是

A.*(s+i)B.*(p+i)C.*(s=s+i)D.*(p=p+i)

49.下列敘述中正確的是()。A.一個(gè)邏輯數(shù)據(jù)結(jié)構(gòu)只能有一種存儲(chǔ)結(jié)構(gòu)

B.邏輯結(jié)構(gòu)屬于線性結(jié)構(gòu),存儲(chǔ)結(jié)構(gòu)屬于非線性結(jié)構(gòu)

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

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

50.若有下列定義(設(shè)int類(lèi)型變量占2個(gè)字節(jié)):inti=8,j=9;則下列語(yǔ)句:printf("i=%u,j=%x\n",i,j);輸出的結(jié)果是()。

A.i=8,j=9B.8.9C.89D.i=8,j=8

51.算法的空間復(fù)雜度是指()。

A.算法程序的長(zhǎng)度B.算法程序中的指令條數(shù)C.算法程序所占的存儲(chǔ)空間D.算法執(zhí)行過(guò)程中所需要的存儲(chǔ)空間

52.當(dāng)調(diào)用函數(shù)時(shí),實(shí)參是一個(gè)數(shù)組名,則向函數(shù)傳送的是______。

A.數(shù)組的長(zhǎng)度B.數(shù)組的首地址C.數(shù)組中每一個(gè)元素的地址D.數(shù)組每個(gè)元素中的值

53.下列選項(xiàng)中,合法的C語(yǔ)言關(guān)鍵字是______。

A.VARB.cherC.integerD.default

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

A.軟件工程只是解決軟件項(xiàng)目的管理問(wèn)題

B.軟件工程主要解決軟件產(chǎn)品的生產(chǎn)率問(wèn)題

C.軟件工程的主要思想是強(qiáng)調(diào)在軟件開(kāi)發(fā)過(guò)程中需要應(yīng)用工程化原則

D.軟件工程只是解決軟件開(kāi)發(fā)中的技術(shù)問(wèn)題

55.以下錯(cuò)誤的定義語(yǔ)句是A.intx[][3]={{0},{1},{1,2,3}};

B.intx[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};

C.intx[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};

D.intx[][3]={1,2,3,4};

56.以下程序的輸出結(jié)果是()#include<stdio.h>#include<string.h>main(){charstr[12]={'s','t','r','i','n','g'};printf("%d\n",strlen(str));}

A.6B.7C.11D.12

57.下列程序段的輸出結(jié)果為()。#include<stdio.h>main(){staticchara[]="language";char*p;p=a;for(p=a;p<a+8;p+=2)putchar(*p);}

A.languageB.lnugC.有語(yǔ)法錯(cuò)誤D.lang

58.若變量均已正確定義并賦值,以下合法的C語(yǔ)言賦值語(yǔ)句是()。

A.x=y==5;B.X=n%2.5:C.x+n=i;D.x=5=4+1:

59.若有以下說(shuō)明和語(yǔ)句intc[4][5],(*p)[5];p=c;能夠正確引用c數(shù)組元素的是

A.p+1B.*(p+3)C.*(p+1)+3D.*(P[0]+2)

60.以下合法的十六進(jìn)制數(shù)是()。

A.0xB.0x4deC.0x1hD.oX77

四、選擇題(20題)61.算法是指()。

A.計(jì)算機(jī)程序

B.解決問(wèn)題的計(jì)算方法

C.排序算法

D.解決問(wèn)題的有限運(yùn)算序列

62.在深度為7的滿(mǎn)二叉樹(shù)中,葉子結(jié)點(diǎn)的個(gè)數(shù)為_(kāi)_____。A.32B.31C.64D.63

63.

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

main()

{inta,b;

scanf("%2d%3d",&a,&b);

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

}

A.a(chǎn)=12b=34

B.a(chǎn)=123b=45

C.a(chǎn)=12b=345

D.語(yǔ)句有錯(cuò)誤

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

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

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

#defineMIN(x,y)(x)<(y)?(x):(y)

main()

{

inti=10,j=15,k;

k=10*MIN(i,j);

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

}

A.10B.15

C.100D.150

67.設(shè)有定義:

則以下賦值語(yǔ)句中錯(cuò)誤的是()。

A.data2=datal;

B.data2=(2,6.;

C.

D.

68.

69.

70.

71.若變量已正確定義,在if(W)printf(”%d、n”,k);中,以下不可替代w的是()。A.ab+1:B.ch=getchar()C.a==b+cD.a++

72.以下選項(xiàng)錯(cuò)誤的是

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

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

74.

75.下列敘述中正確的是()。A.A.只能在循環(huán)體內(nèi)和switch語(yǔ)句體內(nèi)使用break語(yǔ)句B.cotinue語(yǔ)句的作用是結(jié)束整個(gè)循環(huán)的執(zhí)行

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

D.從多層循環(huán)嵌套中退出時(shí),只能使用got0語(yǔ)句

76.

77.

78.

79.以下語(yǔ)句的執(zhí)行結(jié)果是()。

intm=0,s=1;

do{

s+=m++;

}while(m<6);

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

A.17B.16C.15D.18

80.

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:用冒泡法對(duì)6個(gè)字符串按由小到大的順序進(jìn)行排序。請(qǐng)修改程序中的錯(cuò)誤,使它能得到正確結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計(jì)題(1題)82.編寫(xiě)函數(shù)intproc(intlim,intaa[M]),該函數(shù)的功能是求出小于或等于lim的所有素?cái)?shù)并放在aa數(shù)組中,該函數(shù)返回所求出的素?cái)?shù)。例如,若輸入12時(shí),則輸出:235711。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。試題程序:

參考答案

1.B解析:棧是限定在二端進(jìn)行插入與刪除的線性表。在棧中,允許插入與刪除的一端稱(chēng)為棧頂,而不允許插入與刪除的另一端稱(chēng)為棧底。棧頂元素總是最后被插入的元素,從而也是最先能被刪除的元素;棧底元素總是最先被插入的元素,從而也是最后才能被刪除的元素,即棧是按照“先進(jìn)后出”或“后進(jìn)先出”的原則組織數(shù)據(jù)的。注意:隊(duì)列組織數(shù)據(jù)的原則是“先進(jìn)先出”或“后進(jìn)后出”。注意:數(shù)據(jù)結(jié)構(gòu)中,棧和隊(duì)列組織數(shù)據(jù)的原則。

2.C

3.C解析:在數(shù)據(jù)庫(kù)系統(tǒng)中,由于采用的數(shù)據(jù)模型不同,相應(yīng)的數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)也不同。目前常用的數(shù)據(jù)模型有三種:層次模型、網(wǎng)狀模型和關(guān)系模型。在層次模型中,實(shí)體之間的聯(lián)系是用樹(shù)結(jié)構(gòu)來(lái)表示的,其中實(shí)體集(記錄型)是樹(shù)中的結(jié)點(diǎn),而樹(shù)中各結(jié)點(diǎn)之間的連線表示它們之間的關(guān)系。因此,本題的正確答案是C。

4.D

5.B

6.B對(duì)于標(biāo)識(shí)符的長(zhǎng)度(即一個(gè)標(biāo)識(shí)符允許的字符個(gè)數(shù)),C語(yǔ)言編譯系統(tǒng)是有規(guī)定的,即標(biāo)識(shí)符的前若干個(gè)字符有效,超過(guò)的字符將不被識(shí)別。不同的C語(yǔ)言編譯系統(tǒng)所規(guī)定的標(biāo)識(shí)符有效長(zhǎng)度是不同的。故本題答案為B選項(xiàng)。

7.B解析:本題中,structex是結(jié)構(gòu)體類(lèi)型名,ex-ample是結(jié)構(gòu)體變量名。

8.B

9.C解析:此題考查了指針引用一維數(shù)組元素的方法。*p+9因?yàn)檫\(yùn)算符'*'的優(yōu)先級(jí)高于'+',所以輸出結(jié)果為p指向的元素1,然后加9,值為10。

10.C在C語(yǔ)言中,可以用一個(gè)標(biāo)識(shí)符來(lái)表示一個(gè)常量,稱(chēng)之為符號(hào)常量。符號(hào)常量在使用之前必須先定義,其一般形式為:#define標(biāo)識(shí)符常量。

11.D選項(xiàng)A中,int是關(guān)鍵字,不能作為用戶(hù)標(biāo)識(shí)符;選項(xiàng)B中,兩個(gè)“#”錯(cuò)誤;選項(xiàng)C中兩個(gè)“#”錯(cuò)誤,另外DEFINE大寫(xiě)也是錯(cuò)誤的。故本題答案為D選項(xiàng)。

12.A在C語(yǔ)言里不能直接表達(dá)“0<x<5”,需要分步驟來(lái)實(shí)現(xiàn),即使用“x>0&&x<5”來(lái)描述。在C語(yǔ)言里,“0<x<5”屬于一個(gè)邏輯運(yùn)算表達(dá)式,可以理解為“(0<x)<5”,因此選項(xiàng)A錯(cuò)誤。故本題答案為A選項(xiàng)。

13.D

14.B(45)B)解析:算法應(yīng)該具有下列五個(gè)特性:

①有窮性:一個(gè)算法必須在執(zhí)行有窮步之后結(jié)束。

②確定性:算法中的每一步,必須有確切的含義,在他人理解時(shí)不會(huì)產(chǎn)生二義性。

③動(dòng)態(tài)性:算法中描述的每一步操作都可以通過(guò)已有的基本操作執(zhí)行有限次實(shí)現(xiàn)。

④輸入:一個(gè)算法應(yīng)該有零個(gè)或多個(gè)輸入。

⑤輸出:一個(gè)算法應(yīng)該有一個(gè)或多個(gè)輸出。這里所說(shuō)的輸出是指與輸入有某種特定關(guān)系的量。

15.B

16.B

17.B關(guān)系之間的操作分為自然連接、投影、交、并、差等,由圖可知此操作為差操作。

18.C整型變量x、y的初值都為1,“x++,y++,++y”是一個(gè)逗號(hào)表達(dá)式,程序執(zhí)行“z=x++,y++,++y”之后,x的值為2,y的值為3,z取逗號(hào)表達(dá)式中的第二個(gè)表達(dá)式的值,為1。因此本題的答案為選項(xiàng)C。

19.C

20.B

21.無(wú)定值無(wú)定值解析:for(i=l;i<7;i++)決定了循環(huán)次數(shù)為6次,每次執(zhí)行的操作是sum+=i,但由于sum沒(méi)有初始化,并不知道sum的初值是多少,所以結(jié)果無(wú)定值。

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

23.

24.xx解析:函數(shù)的定義形式為;

函數(shù)類(lèi)型函數(shù)名(形參表)

{

類(lèi)型說(shuō)明語(yǔ)句;

執(zhí)行語(yǔ)句;

}

本題中函數(shù)的功能是:累積變量以求得變量的Y次方。

25.無(wú)定值無(wú)定值解析:for(i=1;i<7;i++)決定了循環(huán)次數(shù)為6次,每次執(zhí)行的操作是Sum+=i,但由于sum沒(méi)有初始化,并不知道sum的初值是多少,所以結(jié)果無(wú)定值.

26.軟件開(kāi)發(fā)軟件開(kāi)發(fā)解析:軟件生命周期分為3個(gè)時(shí)期共8個(gè)階段:軟件定義期(問(wèn)題定義、可行性研究和需求分析)、軟件開(kāi)發(fā)期(系統(tǒng)設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和測(cè)試)、軟件維護(hù)期(即運(yùn)行維護(hù)階段)。

27.完善性軟件維護(hù)活動(dòng)包括以下幾類(lèi):改正性維護(hù),適應(yīng)性維護(hù)、完善性維護(hù)和預(yù)防性維護(hù),完善性維護(hù)是指為了滿(mǎn)足用戶(hù)對(duì)軟件提出的新功能與性能要求,需要修改或再開(kāi)發(fā)軟件,以擴(kuò)充軟件功能、增強(qiáng)軟件性能、改進(jìn)加工效率、提高軟件的可維護(hù)性。

28.*(str+I)或str[I]*(str+I)或str[I]解析:str是指針變量,它指向字符型數(shù)據(jù),在循環(huán)過(guò)程中,可以用*(str+I)來(lái)訪問(wèn)字符串中的第I個(gè)元素,判斷是否為結(jié)束標(biāo)志,如果不是,I=I+1,繼續(xù)取下一個(gè)元素進(jìn)行判斷,直到*(str+I)的值為'\\0'為止,也可以用下標(biāo)的方式引用字符,如*(str+I)相當(dāng)于str[I]。

29.文檔文檔解析:計(jì)算機(jī)軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,是包括程序、數(shù)據(jù)以及相關(guān)文檔的完整集合。

30.n/2n/2解析:刪除一個(gè)元素,平均移動(dòng)的元素個(gè)數(shù)為(n-1+n-2+…+0)/n=(n-1)/2;插入一個(gè)元素,平均移動(dòng)元素個(gè)數(shù)為(n+n-1+n-2+…+1)/n=(n+1)/2;所以總體平均移動(dòng)元素個(gè)數(shù)為n/2。

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

32.功能性注釋功能性注釋解析:注釋一般分為序言性注釋和功能性注釋。序言性注釋通常位于每個(gè)程序的開(kāi)頭部分,它給出程序的整體說(shuō)明;功能性注釋的位置一般嵌在源程序體之中戶(hù)主要描述其后的語(yǔ)句或程序做什么。

33.structlink*headstructlink*head解析:考查用指針引用結(jié)構(gòu)體變量成員數(shù)據(jù)的方法。因?yàn)楸绢}中是用結(jié)構(gòu)體變量構(gòu)成了鏈表,所以要從鏈表頭節(jié)點(diǎn),逐個(gè)節(jié)點(diǎn)的引用結(jié)構(gòu)體的數(shù)據(jù)域,需要有指向結(jié)構(gòu)體變量的指針,依次指向各個(gè)節(jié)點(diǎn),即p=p->next,而用指針引用結(jié)構(gòu)體成員數(shù)據(jù)的方法為:p->data。

34.1011121210111212解析:用static關(guān)鍵字聲明的變量稱(chēng)為靜態(tài)局部變量。靜態(tài)局部變量只在編譯時(shí)賦一次初值,以后再次調(diào)用函數(shù)時(shí)不再重新賦初值,而是保留上次函數(shù)調(diào)用結(jié)束時(shí)的值。程序中的變量c為靜態(tài)變量,當(dāng)再次調(diào)用fun函數(shù)時(shí),變量c不再被賦初值,變量c的值為上次調(diào)用fun函數(shù)時(shí)所保留下來(lái)的值,具體在程序運(yùn)行過(guò)程中的體現(xiàn)如下:

當(dāng)i=0時(shí),第一次調(diào)用fun(5),這時(shí)a=5,b=0,c=3,執(zhí)行b++,c++,得到b=1,c=4,則a+b+c=10,返回主函數(shù)輸出010;當(dāng)i=1時(shí),第二次調(diào)用fun(5),這時(shí)a=5,b=0,c=4,執(zhí)行b++,c++,得到b=1,c=5,則a+b+c=11,返回主函數(shù)輸出111;當(dāng)i=2時(shí),第三次調(diào)用fun(5),這時(shí)a=5,b=0,c=5,執(zhí)行b++,c++,得到b=1,c=6,則a+b+c=12,返回主函數(shù)輸出212;當(dāng)i=3時(shí),循環(huán)結(jié)束,所以輸出結(jié)果為:010111212。

35.方法方法解析:在面向?qū)ο蠓椒ㄖ?,方法是指允許作用于某個(gè)對(duì)象上的各種操作。

36.33解析:i=1時(shí),f(1)=1,j=j+f(1)=0+1=1;i=2時(shí),f(2)=f(1)+1=1+1=2,j=j+f(2)=1+3=3;此時(shí)循環(huán)結(jié)束,程序運(yùn)行后的輸出結(jié)果是3。

37.數(shù)據(jù)庫(kù)系統(tǒng)或數(shù)據(jù)庫(kù)系統(tǒng)階段或數(shù)據(jù)庫(kù)或數(shù)據(jù)庫(kù)階段或數(shù)據(jù)庫(kù)管理技術(shù)階段數(shù)據(jù)庫(kù)系統(tǒng)或數(shù)據(jù)庫(kù)系統(tǒng)階段或數(shù)據(jù)庫(kù)或數(shù)據(jù)庫(kù)階段或數(shù)據(jù)庫(kù)管理技術(shù)階段解析:在數(shù)據(jù)庫(kù)系統(tǒng)管理階段,數(shù)據(jù)是結(jié)構(gòu)化的,是面向系統(tǒng)的,數(shù)據(jù)的冗余度小,從而節(jié)省了數(shù)據(jù)的存儲(chǔ)空間,也減少了對(duì)數(shù)據(jù)的存取時(shí)間,提高了訪問(wèn)效率,避免了數(shù)據(jù)的不一致性,同時(shí)提高了數(shù)據(jù)的可擴(kuò)充性和數(shù)據(jù)應(yīng)用的靈活性;數(shù)據(jù)具有獨(dú)立性,通過(guò)系統(tǒng)提供的映象功能,使數(shù)據(jù)具有兩方面的獨(dú)立性:一是物理獨(dú)立性,二是邏輯獨(dú)立性;保證了數(shù)據(jù)的完整性、安全性和并發(fā)性-綜上所述,數(shù)據(jù)獨(dú)立性最高的階段是數(shù)據(jù)庫(kù)系統(tǒng)管理階段。

38.88解析:二維數(shù)組可以看成是按矩陣形式排列的,題目中給二維數(shù)組賦初值是按行分段賦值的,a[4][4]可以分解為4個(gè)一維數(shù)組,其數(shù)組名分別為a[0]、a[1]、a[2]、a[3],這4個(gè)一維數(shù)組都有4個(gè)元素,a[0]的元素為ap[0][0]、a[0][1]、a[0][2]、a[0][3]。

39.DDBBCCDDBBCC解析:C語(yǔ)言對(duì)枚舉的定義規(guī)定:在枚舉中聲明的各個(gè)枚舉元素,如果沒(méi)有明確指出某個(gè)枚舉元

溫馨提示

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

評(píng)論

0/150

提交評(píng)論