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頁,還剩74頁未讀, 繼續(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.一個(gè)二維數(shù)組的定義語句為“inta[3][4]={{3,4},{2,8,6}};”,則元素a[2][1]的值為()。

A.0B.4C.8D.6

2.設(shè)有以下程序段:要求輸入字符串給結(jié)構(gòu)體變量rec的title成員,錯誤的輸入語句是()A.seanf(”%s”Ptrtitle);

B.scanf(”%s”,rec.title);

C.scanf(’’%s”,(*pu).title);

D.scanf(”%s”,ptr->title);

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

A.詳細(xì)設(shè)計(jì)B.需求分析C.總體設(shè)計(jì)D.編程調(diào)試

4.有以下程序段:charstr[4][12]={“aaa”,“bbb”,“ccc”,“ddd”},*p[4];inti;for(i=0;i<4;i++)p[i]=str[i];以下選項(xiàng)中不能正確引用字符串的是()。

A.*p[3]B.p[3]C.str[2]D.*p

5.求2n個(gè)數(shù)中的最大值和最小值,最少的比較次數(shù)是()

A.4n/3B.2n-2C.3n-2D.3n/2

6.下述關(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ù)

7.

8.具有n個(gè)結(jié)點(diǎn)的連通圖至少有()條邊。

A.n-1B.nC.n(n-1)/2D.2n

9.有以下程序#include<stdio.h>main(){inta=5,b=l;t=(a<<2)|b;printf("%d\n",t);}程序運(yùn)行后的輸出結(jié)果是______。A.21B.11C.6D.1

10.

11.以下敘述中正確的是

A.用C程序?qū)崿F(xiàn)的算法必須要有輸入和輸出操作

B.用C程序?qū)崿F(xiàn)的算法可以沒有輸出但必須要有輸入

C.用C程序?qū)崿F(xiàn)的算法可以沒有輸入但必須要有輸出

D.用C程序?qū)崿F(xiàn)的算法可以既沒有輸入也沒有輸出

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

A.算法就是程序B.設(shè)計(jì)算法時(shí)只需要考慮數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)C.設(shè)計(jì)算法時(shí)只需要考慮結(jié)果的可靠性D.以上3種說法都不對

13.有以下程序voidsum(inta[]){a[0]-a[-1]+a[1];}main(){inta[10]={1,2,3,4,5,6,7,8,9,10};sum(&a[2]);printf(“%d\n”,a[2]);}程序運(yùn)行后的輸出結(jié)果是A.6B.7C.5D.8

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

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

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

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

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

15.程序運(yùn)行后的輸出結(jié)果是()。A.3B.4C.1D.9

16.以下定義語句中正確的是

A.inta=b=0;

B.charA=65+1,b='b';

C.noata=1,*b=&a,*c=&b;

D.doublea=0.0;b=1.1;

17.若有以下定義,則對a數(shù)組元素地址的正確引用是()。

inta[5],*p=a;A.A.p5B.*a1C.&a1D.&a[0]

18.以下不正確的敘述是()。

A.在C程序中,逗號運(yùn)算符的優(yōu)先級最低

B.在C程序中,APH和aph是兩個(gè)不同的變量

C.若a和b類型相同,在執(zhí)行了賦值表達(dá)式a=b后b中的值將放人a中,而b中的值不變

D.當(dāng)從鍵盤輸入數(shù)據(jù)時(shí),對整型變量只能輸入整型數(shù)值,對實(shí)型變量只能輸入實(shí)型數(shù)值

19.棧和隊(duì)列的共同點(diǎn)是()。

A.都是先進(jìn)先出B.都是先進(jìn)后出C.只允許在端點(diǎn)處插入和刪除元素D.沒有共同特點(diǎn)

20.

二、2.填空題(20題)21.以下程序的功能是建立一個(gè)帶有頭結(jié)點(diǎn)的單向鏈表,鏈表結(jié)點(diǎn)中的數(shù)據(jù)通過鍵盤輸入,當(dāng)輸入數(shù)據(jù)為-1時(shí),表示輸入結(jié)束(鏈表頭結(jié)點(diǎn)的data域不放數(shù)據(jù),表空的條件是ph->next==NULL),請?zhí)羁铡?/p>

#include<stdio.h>

structlist{intdata;structlist*next;};

structlist*creatlist()

{structlist*p,*q,*ph;inta;ph=(structlist*)malloc(sizeof(structlist));

p=q=ph;printf("Inputanintegernumber;entre-1toend:\n");

scanf("%d",&a);

while(a!=-1)

{p=(structlist*)malloc(sizeof(structlist));

【】=a;q->next=p;【】=p;scanf("%d",&a);}

p->next=′\0;return(ph);}

main()

{structlist*head;head=creatlist();}

22.若有下面的程序片段:int[12]={0},*p[3],**pp,i;for(i=0;i<3;i)p[i]=&a[i*4];pp=p;則對數(shù)組元素的錯誤引用是

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

main(){inti=lO,*p,*func();

p=&i;

printf("%d",*p);

p=func(p);

printf("%d\n",*p)

}

int*func(px);

int*px;

{inttemp=20;

px=&temp;

return(px);

}

24.若有定義doublea[5];,則a數(shù)組元素下標(biāo)的上限為______。

25.結(jié)構(gòu)化分析方法是面向______進(jìn)行分析的方法。

26.下面程序是計(jì)算100以內(nèi)能被4整除且個(gè)位數(shù)為4的所有整數(shù),請?zhí)羁铡?/p>

main()

{intm,n;

for(m=0;【】;m++)

{n=m*10+4;

If(【】)continue;

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

27.診斷和改正程序中錯誤的工作通常稱為【】。

28.x、y、x均為int型變量,描述“x、y和z中至少有兩個(gè)為正數(shù)”的表達(dá)式是______。

29.按照“先進(jìn)先出”的原則組織數(shù)據(jù)的結(jié)構(gòu)是______。

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

main()

{intn=0;

while(n++<=1);

printf("%d,",n);

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

}

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

main()

{inti,a[10];

a[0]=a[1]=1;

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

a[i]=a[i-2]+a[i-1];

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

{if(i%2==0)printf("\n");

printf("%d",a[i]);

}

}

32.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲結(jié)構(gòu),線性鏈表屬于【】。

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

34.面向?qū)ο蟮哪P椭?,最基本的概念是對象和______。

35.實(shí)體之間的聯(lián)系可以歸結(jié)為一對一的聯(lián)系,一對多的聯(lián)系與多對多的聯(lián)系。如果一個(gè)學(xué)校有許多學(xué)生,而一個(gè)學(xué)生只歸屬于一個(gè)學(xué)校,則實(shí)體集學(xué)校與實(shí)體集學(xué)生之間的聯(lián)系屬于【】的聯(lián)系。

36.已知字符A的ASCII代碼值為65,以下程序運(yùn)行時(shí)若從鍵盤輸入:B33<回車>,則輸出結(jié)果是

【】。

#include<stdio.h>

main()

{chara,b;

a=getchar();scanf("%d",&b);

a=a-'A'+'0';b=b*2;

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

}

37.函數(shù)check用來判斷字符串s是否是“回文”(順讀和倒讀都一樣的字符串為“回文”,如abeba)。是則函數(shù)返回值1,否則返回值0,請?zhí)羁铡?/p>

intcheck(char*s)

{

char*p1,*p2;intn;

n=strlen(s);

p1=s;

p2=【】;

while(p1<p2)

{

if(*p1!=*p2)break;

else{p1++;p2--;}

}

if(【】)return0;

elsereturn1;

}

38.以下程序的運(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);}

39.實(shí)體之間的聯(lián)系可以歸結(jié)為一對一的聯(lián)系,一對多的聯(lián)系與多對多的聯(lián)系。如果一個(gè)學(xué)校有許多教師,而一個(gè)教師只歸屬于一個(gè)學(xué)校,則實(shí)體集學(xué)校與實(shí)體集教師之間的聯(lián)系屬于【】的聯(lián)系。

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

三、1.選擇題(20題)41.下列程序執(zhí)行后的輸出結(jié)果是main(){inta[3][3],*p,i;p=&a[0][0];for(i=1;i<9;i++)p[i]=i+1;printf("%d\n",a[1][2]);}

A.3B.6C.9D.隨機(jī)數(shù)

42.假定所有變量均已正確說明,下列程序段運(yùn)行后x的值是()。a=b=c=0;x=12;if(!a)x--;elsex=5:if(c)x=3:elsex=4:A.11B.4C.12D.3

43.以下程序的輸出結(jié)果是______。sub(intx,int*y){*y=*y-x;}main(){inta=1,b=2;sub(a,&B);sub(b,&A);printf("%d,%d\n",a,B);}

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

44.下列關(guān)鍵字中,不屬于C語言變量存儲類別的是______。

A.registerB.autoC.externD.public

45.下列程序的輸出結(jié)果是()。#include<stdio.h>intb=2;intfunc(int*a){b+=*a;returnb;}main(){inta=1,t=2;t+=func(&a);printf("%d\n",t);}

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

46.有如下程序intfunc(inta,intb){return(a+b);}main(){intx=2,y=5,z=8,r;r=func(func(x,y),z);printf("%d\n",r);}該程序的輸出結(jié)果是______。

A.12B.13C.14D.15

47.結(jié)構(gòu)化程序有3種基本結(jié)構(gòu)組成,3種基本結(jié)構(gòu)組成的算法______。

A.可以完成任何復(fù)雜的任務(wù)B.只能完成部分復(fù)雜的任務(wù)C.只能完成符合結(jié)構(gòu)化的任務(wù)D.只能完成一些簡單的任務(wù)

48.下列選項(xiàng)中不屬于結(jié)構(gòu)化程序設(shè)計(jì)方法的是()。

A.自頂向下B.逐步求精C.模塊化D.可復(fù)用

49.a、b、c、d變量均為float類型且已正確賦值,下列選項(xiàng)中與數(shù)學(xué)式子“2ab/(5cd)”等價(jià)的C語言表達(dá)式是()。

A.2/5*a/c*d/b

B.a/(5*c*d)*(2*b)

C.2*a*b/5*c*d

D.2/5*a*d*(1/c*d)

50.若已建立下面的鏈表結(jié)構(gòu),指針p、s分別指向圖中所示的結(jié)點(diǎn),則不能將s所指的結(jié)點(diǎn)插入到鏈表末尾的語句組是()

A.s->next=NULL;p=p->next;p->next=s;

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

C.p=p->next;s-next=p;p->next=s;

D.p=(*p).next;(*s).next=(*p).next;(*p).next=s;

51.已知字符′A′的ASCII碼值是65,字符變量cl的值是′A′,c2的值是′D′。執(zhí)行語句printf("%d,%d",c1,c2-2);后,輸出結(jié)果是

A.A,BB.A,68C.65,66D.65,68

52.在設(shè)計(jì)程序時(shí),應(yīng)采納的原則之一是()。

A.不限制goto語句的使用B.減少或取消注解行C.程序越短越好D.程序結(jié)構(gòu)應(yīng)有助于讀者理解

53.下列程序的輸出結(jié)果是______。main(){inti;for(i=l;i<6;i++){if(i%2){printf("#");continue;}printf("*");}printf("\n");}

A.#*#*#B.#####C.****D.*#*#*

54.以下能正確定義一維數(shù)組的選項(xiàng)是______。

A.inta[5]={0,1,2,3,4,5);

B.chara[]={0,1,2,3,4,5);

C.chara={'A','B','C'};

D.inta[5]="0123";

55.開發(fā)軟件時(shí)對提高開發(fā)人員工作效率至關(guān)重要的是()

A.操作系統(tǒng)的資源管理功能B.先進(jìn)的軟件開發(fā)工具和環(huán)境C.程序人員的數(shù)量D.計(jì)算機(jī)的并行處理能力

56.以下能正確定義一維數(shù)組的選項(xiàng)是

A.inta[5]={0,1,2,3,4,5}

B.chara[]={'0','1','2','3','4','5','\0'};

C.chara={'A','B','C'};

D.inta[5]="0123";

57.有以下程序#include<stdio.h>#include<string.h>voidfun(char,*s[],intn){char*t;inti,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(strlen(s[i])>strlen(s[j])){t=s[i];s[i]:s[j];s[j]=t;}}main(){char*ss[]={"bcc","bbcc","xy","aaaacc","aabcc"};fun(ss,5);printf("%s,%s\n",ss[0],ss[4]);}程序的運(yùn)行結(jié)果是

A.xy,aaaaccB.aaaacc,xyC.bcc,aabccD.aabcc,bcc

58.以下程序的輸出結(jié)果是______。main(){unsignedshorta=65536;intb;printf("%d\n",b=a);}

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

59.設(shè)有如下變量定義:doublea=3.500000;floatb=2.5;intm=2,n=3;則表達(dá)式“(float)(m+n)/2+(int)a%(int)b”的值是()

A.2.5B.3.5C.4.5D.表達(dá)式不正確

60.有以下程序:main(){inta=5,b=4,c=3,d=2;if(a>b>c)printf("%d\n",d);elseif((c-1>=d)==1)printf("%d\n",d+1);elseprintf("%d\n",d+2);}執(zhí)行后輸出結(jié)果是______。

A.2B.3C.4D.編譯時(shí)有錯,無結(jié)果

四、選擇題(20題)61.數(shù)據(jù)庫應(yīng)用系統(tǒng)中的核心問題是()。

A.數(shù)據(jù)庫設(shè)計(jì)B.數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)C.數(shù)據(jù)庫維護(hù)D.數(shù)據(jù)庫管理員培訓(xùn)

62.

63.

有以下計(jì)算公式

若程序前面已在命令中包含math.h文件,不能夠正確

計(jì)算上述公式的程序段是()。

A.if(x>=0)y=sqrt(x);elsey=sqrt(-x);

B.y=sqrt(x)if(x<0)y=sqrt(0x);

C.if(x>=O)y=sqrt(x);If(x<O)y=sqrt(0x);

D.y=sqrt(x>=0?x:0x);

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

main()

{inta=2,b=3,c;

c=a;

if(a>b)c=1;

elseif(a==b)c=0;

elsec=-1;

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

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

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

A.1,2,3.4,5,6,7,8,9,10,

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

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

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

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

A.-3,-1,1,3,B.-12,一3,0,0C.0,1,2,3,D.一3,-3,一3,一3,

67.軟件按其功能進(jìn)行分類,可分為:應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于系統(tǒng)軟件的是

A.文字編輯軟件B.網(wǎng)頁瀏覽器C.?dāng)?shù)據(jù)庫管理系統(tǒng)D.視頻播放軟件

68.有以下程序:

#include<stdio.h>

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

main()

{intk=5,j=2;

printf("%d\n",S(k+j));

}

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

A.197B.143C.33D.28

69.有如下程序段

#include"stdio.h"

#include"string.h"

#defineN10

#defineM10

char*find(char(*a)[M],intn)

{char*q;inti;

q=a[0];

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

if(strcmp(a[i],q)<0)q=a[i];

returnq;}

main()

{chars[N][M]={"tomeetme","you","and","he","china"};

char*p;

intn=5;

p=find(s,n);

puts(p);}

則執(zhí)行后輸出的結(jié)果為A.A.heB.andC.youD.tomeetme

70.有以下程序當(dāng)執(zhí)行程序時(shí),按下列方式輸入數(shù)據(jù)(從第l列開始,<CR>代表回車,注意;回車也是--+qz符)12<CR>34<CR>則輸出結(jié)果是()。

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

71.

72.有下列函數(shù)定義:intfun(doublea,doubleb){returna*b;}若下列選項(xiàng)中所用變量都已經(jīng)正確定義并賦值,錯誤的函數(shù)調(diào)用是()。A.if(fun(x,y)){……}

B.z=fun(fun(x,y),fun(x,y));

C.z=fun(fun(X,y)x,y);

D.fun(x,y);

73.下面描述中,不屬于軟件危機(jī)表現(xiàn)的是()A.軟件過程不規(guī)范B.軟件開發(fā)生產(chǎn)率低C.軟件質(zhì)量難以控制D.軟件成本不斷提高

74.

75.

76.有以下程序:

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

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

77.若有函數(shù)內(nèi)部說明:inta[3][4];則數(shù)組a中各元素

A.可在程序的運(yùn)行階段得到初值0

B.可在程序的編譯階段得到初值0

C.不能得到確定的初值

D.可在程序的編譯或運(yùn)行階段得到初值0

78.有定義:“inta=2,b=3,c=4;”,則下列選項(xiàng)中值為0的表達(dá)式是()。A.A.(a<b)&&!c‖1

B.(!a==1)&&(!b==0)

C.a&&b

D.a||(b+b)&&(c-a)

79.

80.若變量已正確定義,有以下程序段其輸出結(jié)果是()。

A.0,1B.0,0C.1,1D.程序進(jìn)入無限循環(huán)

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc的功能是:從字符串str中,刪除所有大寫字母F。

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

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

試題程序:

#include<stdio.h>

voidproc(char*str)

{

inti,j;

//****found****

for(i=j=0;str[i]一0;i++)

if(str[i]!=F)

//****found****

str[i]=str[i];

str[j]=\0;

}

voidmain

{

charstr[80];

printf("\nEnterastring:");

gets(str);

printf("Theoriginalstring:");

puts(str);

proc(str);

printf("Thestringafterdeleted:");

puts(str);

printf("\n\n");}

六、程序設(shè)計(jì)題(1題)82.假定輸入的字符串中只包含字母和*號。請編寫函數(shù)proc(),它的功能是:使字符串中前部的*號不得多余m個(gè);若多余m個(gè),則刪除多余的*號;若少于或等于m個(gè),則什么也不做,字符串中間和尾部的*號不刪除。例如,字符串中的內(nèi)容為****A*BC*DEF*G****,若m的值為2,刪除后,字符串中的內(nèi)容則應(yīng)當(dāng)是**A*BC*DEF*G****;若m的值為4,則字符串中的內(nèi)容仍為****A*BC*DEF*G****。n的值在主函數(shù)中輸入。在編寫函數(shù)時(shí),不得使用c語言提供的字符串函數(shù)。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.A

2.A符號“_>”是指針特用的,符號“.”用于指定元素的成員。ptr是指針,只能用符號“一>”,因此選項(xiàng)A錯誤。+P是指定元素(Fee)可以使用“.”運(yùn)算,因此選項(xiàng)D正確。選項(xiàng)B,F(xiàn)ee.title代表數(shù)組title,同理選項(xiàng)C正確。答案為A選項(xiàng)。

3.C解析:軟件系統(tǒng)結(jié)構(gòu)的總體設(shè)計(jì)包括:基于功能層次結(jié)構(gòu)建立系統(tǒng)、按功能劃分成模塊的層次結(jié)構(gòu)、確定每個(gè)模塊的功能、建立與已確定的軟件需求的對應(yīng)關(guān)系、確定模塊間的調(diào)用關(guān)系和模塊間的接口、評估模塊劃分的質(zhì)量等方面。詳細(xì)設(shè)計(jì)的任務(wù)是:在使用程序設(shè)計(jì)語言編制程序以前,對所采用算法的邏輯關(guān)系進(jìn)行分析,設(shè)計(jì)出全部必要的過程細(xì)節(jié),并給予清晰的表達(dá)。需求分析是指用戶對目標(biāo)軟件系統(tǒng)在功能、行為、性能、設(shè)計(jì)約束等方面的期望。需求分析的任務(wù)是發(fā)現(xiàn)需求、求精、建模和定義需求,通常包括:功能需求、性能需求、環(huán)境需求、可靠性需求、安全保密要求、用戶界面需求、資源使用需求、成本消耗需求、開發(fā)進(jìn)度需求等。編程調(diào)試的任務(wù)是診斷和改正程序中潛在的錯誤。綜上所述。軟件功能分解只能發(fā)生在總體設(shè)計(jì)階段。

4.A“*P[3]”是一個(gè)字符,也就是str[3][0],不是字符串,選項(xiàng)A錯誤?!癙[3]”“str[2]”和“*p”分別代表了ddd、ccc、aaa。故本題答案為A選項(xiàng)。

5.A

6.A解析:由于數(shù)據(jù)的集成性使得數(shù)據(jù)可為多個(gè)應(yīng)用所共享,特別是在網(wǎng)絡(luò)發(fā)達(dá)的今天,數(shù)據(jù)庫與網(wǎng)絡(luò)的結(jié)合擴(kuò)大了數(shù)據(jù)關(guān)系的應(yīng)用范圍。數(shù)據(jù)的共享自身又可極大地減少數(shù)據(jù)冗余性,不僅減少了不必要的存儲空間,更為重要的是可以避免數(shù)據(jù)的不一致性。所謂數(shù)據(jù)的一致性是指在系統(tǒng)中同一數(shù)據(jù)的不同出現(xiàn)應(yīng)保持相同的值,而數(shù)據(jù)的不一致性指的是同一個(gè)數(shù)據(jù)在系統(tǒng)的不同拷貝處有不同的值。

7.A

8.A

9.A解析:本題主要考查了C語言的邏輯運(yùn)算符,先將變量a,b的值轉(zhuǎn)換為2進(jìn)制數(shù),a=00000101,b=00000001,a先左移2位結(jié)果為00010100,再與b按位或運(yùn)算,結(jié)果為00010101,轉(zhuǎn)換為十進(jìn)制數(shù)為21,因此,選項(xiàng)A是正確的。

10.C

11.C算法具有的5個(gè)特性是:有窮性、確定性、可行性、有0個(gè)或多個(gè)輸入、有一個(gè)或多個(gè)輸出。所以說,用C程序?qū)崿F(xiàn)的算法可以沒有輸入,但必須要有輸出。因此本題答案選C。

12.D程序(program)是為實(shí)現(xiàn)特定目標(biāo)或解決特定問題而用計(jì)算機(jī)語言編寫的命令序列的集合。設(shè)計(jì)算法時(shí)要考慮到數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì),但是不僅僅是要考慮到數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì),還要考慮到其他的程序結(jié)構(gòu)的問題。設(shè)計(jì)算法時(shí)不能只考慮結(jié)果的正確性和可靠性,還需要考慮到程序的時(shí)間冗余度等方面。所以答案選擇D。

13.A本題考查的是數(shù)組和函數(shù)。sum()函數(shù)接收一個(gè)int型數(shù)組作參數(shù),也可以把它看作是一個(gè)int型指針,語句a[0]=a[*1)+a(比的意思就是將參數(shù)指針指向內(nèi)容的前一個(gè)元素和后一個(gè)元素的值相加放到指針?biāo)傅奈恢茫虼?,主函?shù)中調(diào)用sum(&a[2]);的意思就是讓a[2]=a[1]+a[3];,所以最后輸出的結(jié)果是6。應(yīng)該選擇A。

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

15.B[解析]每次內(nèi)循環(huán)只循環(huán)一-次就結(jié)束,第一次外循環(huán)時(shí)t=t+b[][0][]=1+b[0][0]=1+0=1;第二次外循環(huán)時(shí)t=t+b[1][b[1][1]]=1+b[1][1]=1+1=2;第三次外循環(huán)時(shí)t=t+b[][2][]=2+b[2][2]=2+2=40

16.B解析:本題考查變量的定義方法。如果要一次進(jìn)行多個(gè)變量的定義,則在它們之間要用逗號隔開,因此選項(xiàng)A)和D)錯誤。在選項(xiàng)C)中,變量c是一個(gè)浮點(diǎn)型指針,它只能指向一個(gè)浮點(diǎn)型數(shù)據(jù),不能指向指針變量b,故選項(xiàng)C)錯誤。

17.D本題考查如何引用數(shù)組元素的地址。選項(xiàng)A)中,p5引用的是af51的地址,而數(shù)組a只有5個(gè)元素,即a[0]、a[1]、a[2]、a[3]、a[4],所以引用錯誤;選項(xiàng)B)中,*a1指的是將數(shù)組a的第一個(gè)元素加1;選項(xiàng)C)中,這種引用方式錯誤;選項(xiàng)D)中,&a[0]引用的是數(shù)組的首地址。

18.D

19.C解析:棧和隊(duì)列都是操作受限制的線性表,只允許在端點(diǎn)插入和刪除。不同點(diǎn)是:棧只允許在表的一端進(jìn)行插入和刪除操作,而隊(duì)列允許在表的一端進(jìn)行插入操作,而在另一端進(jìn)行刪除操作。

20.B

21.p->dataqp->data,q解析:本題考查的是鏈表這一數(shù)據(jù)結(jié)構(gòu)對結(jié)構(gòu)體變量中數(shù)據(jù)的引用。鏈表的特點(diǎn)是結(jié)構(gòu)體變量中有兩個(gè)域,一個(gè)是數(shù)據(jù),另一個(gè)是指向該結(jié)構(gòu)體變量類型的指針,用以指明鏈表的下一個(gè)結(jié)點(diǎn)。

22.C

23.1020

24.44解析:一維數(shù)組元素的定義形式為:數(shù)組名[N],則該數(shù)組中元素的下限是0,上限是N-1。

25.數(shù)據(jù)流數(shù)據(jù)流解析:結(jié)構(gòu)化分析方法的實(shí)質(zhì)是著眼于數(shù)據(jù)流,自頂向下,逐層分解,建立系統(tǒng)的處理流程,以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏輯模型。

26.m<10n%4!=0

27.程序調(diào)試程序調(diào)試解析:程序調(diào)試的任務(wù)是診斷和改正程序中的錯誤。程序調(diào)試與軟件測試不同,軟件測試是盡可能多地發(fā)現(xiàn)軟件中的錯誤。先要發(fā)現(xiàn)軟件的錯誤,然后借助于調(diào)試工具找出軟件錯誤的具體位置。軟件測試貫穿整個(gè)軟件生命期,而調(diào)試主要在開發(fā)階段。

28.((x>0)&&<y>0))‖(x>0)&&(z>0)‖y>0)&&(z>0))((x>0)&&<y>0))‖(x>0)&&(z>0)‖y>0)&&(z>0))解析:題目要求“x、y和z中至少有兩個(gè)為正數(shù)”,即x、y和x這3個(gè)數(shù)中必須有兩個(gè)是正數(shù),且這3個(gè)數(shù)中的哪兩個(gè)數(shù)都有可能是正數(shù),所以它們之間是或的關(guān)系。

29.隊(duì)列隊(duì)列解析:隊(duì)列是一種特殊的線性表,只允許在表的一端插入元素,在表的另一端刪除元素,插入元素的一端叫做“隊(duì)尾”,刪除元素的一端叫做“隊(duì)頭”,先插入的元素先被刪除,是按先進(jìn)先出的原則組織數(shù)據(jù)的。

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

31.11<CR>23<CR>5(<CR代表換行)11<CR>23<CR>5(<CR,代表換行)解析:本題通過語句“for(i=2;i<5;i++)a[i]=a[i-2]+a[i-];”將數(shù)組中前面兩項(xiàng)的和賦值給數(shù)組當(dāng)前元素,得到a的值應(yīng)為(1,1,2,3,5)。語句if(i%2==0)pfintf('\\n')是要將數(shù)組中的元素以每行2個(gè)的形式輸出。

32.存儲結(jié)構(gòu)

33.fseek(文件指針位移量起始點(diǎn))fseek(文件指針,位移量,起始點(diǎn))解析:本題考查函數(shù)fseek的用法。fseek函數(shù)的調(diào)用形式為:

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

“起始點(diǎn)”用0,1或2代替,其中,0代表“文件開始”;1為“當(dāng)前位置”;2為“文件末尾”?!拔灰屏俊敝敢浴捌鹗键c(diǎn)”為基點(diǎn),向前移動的字節(jié)數(shù)。ANSIC和大多數(shù)C版本要求位移量是long型數(shù)據(jù),這樣當(dāng)文件的長度大于64k時(shí)不致出現(xiàn)問題。ANSIC標(biāo)準(zhǔn)規(guī)定在數(shù)字的末尾加一個(gè)字母L,就表示long型。

34.類類

35.—對多—對多解析:實(shí)體之間的聯(lián)系可以歸結(jié)為一對一、一對多與多對多。如果一個(gè)學(xué)校有許多學(xué)生,而一個(gè)教師只歸屬于一個(gè)學(xué)生,則實(shí)體集學(xué)校與實(shí)體集學(xué)生之間的聯(lián)系屬于一對多的聯(lián)系。

36.1B1B解析:從鍵盤輸入后,a='B',b=33,之后進(jìn)行運(yùn)算,a='B'-'A'+'0'='1';b=33*2=66。C語言規(guī)定,整型和字符型可以相互轉(zhuǎn)換,已知字符A的ASCII碼值為65,所以字符B的ASCII碼值為66,所以b='B',最后以字符形式輸出a和b,所以輸出為1B。

37.s+n-1p1<p2s+n-1\r\np1<p2解析:判斷是否“回文”字符串,應(yīng)該使用兩個(gè)字符型指針,一個(gè)從前往后遍歷字符串,另一個(gè)從后往前遍歷字符串,直到它們中途相遇,如果每次兩個(gè)指針?biāo)傅淖址枷嗤瑒t為“回文”字符串。程序中已經(jīng)使p1=s,即指向字符串的第一個(gè)字符了,所以p2應(yīng)該指向s的最后一個(gè)字符,故第一空應(yīng)填s+n-1。比較兩個(gè)指針時(shí),如果有一次不相同,則跳出循環(huán),因?yàn)榇藭r(shí)已可肯定不是“回文”字符串。如果是while循環(huán)的條件p1<p2不滿足時(shí)自然結(jié)束的循環(huán),則每次比較都是相同的,兩個(gè)指針是中途相遇了才結(jié)束比較。兩種情況的區(qū)別就是pl<p2是否成立。故第二空應(yīng)該填p1<p2。

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

39.一對多一對多解析:實(shí)體之間的聯(lián)系可歸結(jié)為一對一、一對多與多對多的聯(lián)系。如一個(gè)學(xué)校有許多教師,一個(gè)教師只歸屬于一個(gè)學(xué)校,則實(shí)體集學(xué)校與實(shí)體集教師之間的聯(lián)系屬于一對多的聯(lián)系。

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

41.B解析:本題中,a[1][2]是二維數(shù)組中的第6個(gè)元素,對應(yīng)for循環(huán)中i的值為5,p[5]=5+1。

42.B解析:本題考查ifelse語句。第一個(gè)if語句,先判斷條件,發(fā)現(xiàn)a=0,則!a成立,執(zhí)行下列的語句,x--,得x=11:第二個(gè)if語句,判斷條件,發(fā)現(xiàn)c=o,則條件不成立,執(zhí)行下列的else語句,得x=4。

43.C解析:函數(shù)fun的功能是將形參指針變量y所指變量的值減去形參x中的值,計(jì)算結(jié)果賦給y所指變量。主函數(shù)第一次調(diào)用函數(shù)sub之后,b的值為1,第二次調(diào)用函數(shù)sub之后,a的值為0,程序輸出為0,1。

44.D解析:變量的存儲類別具體包含四種:自動的(auto),靜態(tài)的(static),寄存器的(register),外部的(extern)。

45.B解析:本題考查函數(shù)調(diào)用時(shí)的參數(shù)傳遞。在執(zhí)行函數(shù)func時(shí),由于全局定義了一個(gè)變量b,所以在函數(shù)體中執(zhí)行時(shí)b=2+1=3,最終t=2+3=5。

46.D解析:調(diào)用函數(shù)func(x,y),返回x+y,即7;再調(diào)用函數(shù)func(7,z),返回7+z,即15。

47.A解析:結(jié)構(gòu)化程序的3種基本結(jié)構(gòu)是順序、循環(huán)、選擇,任何復(fù)雜的任務(wù)都可以通過這3種結(jié)構(gòu)來實(shí)現(xiàn)。

48.D解析:20世紀(jì)70年代以來,提出了許多軟件設(shè)計(jì)方法,主要有①逐步求精:對復(fù)雜的問題,應(yīng)設(shè)計(jì)一些子目標(biāo)作過渡,逐步細(xì)化;②自頂向下:程序設(shè)計(jì)時(shí)應(yīng)先考慮總體,后考慮細(xì)節(jié);先考慮全局目標(biāo),后考慮局部目標(biāo)。不要一開始就過多追求眾多的細(xì)節(jié),先從最上層總目標(biāo)開始設(shè)計(jì),逐步使問題具體化;⑧模塊化:一個(gè)復(fù)雜問題,肯定是由若干稍簡單的問題構(gòu)成。模塊化是把程序要解決的總目標(biāo)分解為分目標(biāo),再進(jìn)一步分解為具體的小目標(biāo),把每個(gè)小目標(biāo)稱為一個(gè)模塊,而可復(fù)用是面向?qū)ο蟪绦蛟O(shè)計(jì)的一個(gè)優(yōu)點(diǎn)。

49.B解析:選項(xiàng)A和選項(xiàng)D中首先計(jì)算2/5,因?yàn)閮蓚€(gè)計(jì)算分量都是整型,所以結(jié)果為2,與實(shí)際運(yùn)算不符;選項(xiàng)B中因?yàn)槌顺M足交換律,所以2*b放前面和放后面都是一樣的,所以滿足題目要求;選項(xiàng)C中的表達(dá)式等價(jià)于2abcd/5,所以不滿足題目要求。故應(yīng)該選擇B。

50.C

51.C解析:在C語言中,字符型數(shù)據(jù)在內(nèi)存中的存儲形式是ASCII碼值。當(dāng)需要以整型格式輸出字符時(shí),輸出的也是ASCII碼值。字符'A'和'D'的ASCII碼值分別為65和68。

52.D解析:濫用goto語句將使程序流程無規(guī)律,可讀性差,因此選項(xiàng)A)不選;注解行有利于對程序的理解,不應(yīng)減少或取消,選項(xiàng)B)也不選;程序的長短要依照實(shí)際情況而論,而不是越短越好,選項(xiàng)C)也不選。

53.A

54.B解析:C語言一維數(shù)組的定義有兩種方式:一是指定數(shù)組長度,如選項(xiàng)A“inta[5]={0,1,2,3,4,5};”,但此定義的賦初值個(gè)數(shù)為6,多于數(shù)組長度,是錯誤的。因?yàn)榻o數(shù)組賦初值,初值個(gè)數(shù)只能小于或等于數(shù)組長度。二是不指定數(shù)組長度,由賦初值的初值個(gè)數(shù)決定數(shù)組的長度,如選項(xiàng)B的“chara[]={0,1,2,3,4,5};”,初值個(gè)數(shù)為6,因此數(shù)組長度為6。所以能正確定義一維數(shù)組。選項(xiàng)C的定義中a是一個(gè)字符變量,不能正確定義一維數(shù)組。選項(xiàng)D“inta[5]=“0123”;”給int型數(shù)組賦字符串初值,顯然是錯誤的。

55.B解析:軟件工程鼓勵研制和采用各種先進(jìn)的軟件開發(fā)方法、工具和環(huán)境。工具和環(huán)境的使用又進(jìn)一步提高了軟件的開發(fā)效率、維護(hù)效率和軟件質(zhì)量。

56.B解析:選項(xiàng)A)中,定義的初值個(gè)數(shù)大于數(shù)組的長度;選項(xiàng)C)中,數(shù)組名后少了中括號;選項(xiàng)D)中,整型數(shù)組不能賦予字符串。

57.A解析:函數(shù)fun(char,s[],intn)的功能是對字符串?dāng)?shù)組的元素按照字符串的長度從小到大排序。在主函數(shù)中執(zhí)行fun(ss,5)語句后,*ss[]={'xy','bcc','bbcc','aabcc','aaaacc'},ss[0],ss[4]的輸出結(jié)果為xy,aaaacc。

58.A解析:65536等于2的16次方,而短整型無符號數(shù)的取值范圍為0~65535,65536已經(jīng)超出a的存儲范圍,將截取溢出了的最高第17位,低16位全部為0,因此把a(bǔ)賦值給b,得到的是剩余的16個(gè)0,所以b的值為0。

59.B解析:表達(dá)式m+n的值被強(qiáng)制轉(zhuǎn)換為實(shí)型,則(m=n)/2的值為2.5。變量a和b被強(qiáng)制轉(zhuǎn)換為整型,所以(int)a%(int)b的值為1,因此表達(dá)式的值為3.5,選項(xiàng)B正確。

60.B解析:C語言規(guī)定else總是和離它最近的if語句配對。故第一個(gè)else和第一個(gè)if配對,第二個(gè)else和第二個(gè)if配對。首先計(jì)算第一個(gè)if后面的表達(dá)式“a>b>c”,表達(dá)式“a>b”是為1,表達(dá)式“1>c”為0,所以執(zhí)行else后面的語句。先執(zhí)行if后面的表達(dá)式,“c-1>d”為真,值為1?!?==1”為真,執(zhí)行printf語句。

61.A數(shù)據(jù)庫應(yīng)用系統(tǒng)中的核心問題是數(shù)據(jù)庫的設(shè)計(jì)。故答案為A選項(xiàng)。

62.C

63.B

\n選項(xiàng)A、C、D分別用一個(gè)ifelse語句、兩個(gè)if語句和條件表達(dá)式表達(dá)了計(jì)算公式的含義。

\n

64.Cif-else語句的嵌套,a=2,b=3,a<b,不滿足條件a>b,a==b,所以執(zhí)行語句c=-1;

65.A本題考查的是結(jié)構(gòu)體成員的引用。在主函數(shù)main中定義了一個(gè)整型變量i和一個(gè)結(jié)構(gòu)體變量s。f函數(shù)中,定義了一個(gè)結(jié)構(gòu)體類型的指針P,外層循環(huán)變量i表示數(shù)組的第i個(gè)元素,內(nèi)層循環(huán)變量j表示數(shù)組的第i+1個(gè)元素,調(diào)用f函數(shù),通過指針變量P來引用結(jié)構(gòu)體成員。執(zhí)行if語句,當(dāng)P一>a[i]>P一>a[j]時(shí)進(jìn)行互換,其作用就是從小到大行排序,最后將排序后的元素輸出:l,2,3,4,5,6,7,8,9,10,。

66.A本題中由fllIl函數(shù)可知,b[o]-a[o][0卜a[0][3]_l-4=一3,b[1]=a[1][l]a[1][2]-6—7=-1,b[2]=a[2][2]a[2][l]-1\r\n1-113=-1,b[3]=a[3][3]a[3l]=16—13=3。因此主函數(shù)中打印Y數(shù)組元素的值為A)選項(xiàng)。

67.C本題考查不同種類軟件的劃分。

應(yīng)用軟件是用戶可以使用的各種程序設(shè)計(jì)語言,以及用各種程序設(shè)計(jì)語言編制的應(yīng)用程序的集合,分為應(yīng)用軟件和用戶程序。應(yīng)用軟件包括辦公室軟件(文書處理器、檔案管理系統(tǒng)、文本編輯器)、互聯(lián)網(wǎng)軟件(即時(shí)通訊軟件、電子郵件客戶端、網(wǎng)頁瀏覽器FTP客戶端下載工具)、多媒體軟件(媒體播放器、圖像編輯軟件、音訊編輯軟件、視訊編輯軟件)、分析軟件(統(tǒng)計(jì)軟件、數(shù)字計(jì)算)、協(xié)作軟件、商務(wù)軟件、會計(jì)軟件(企業(yè)工作流程分析軟件)。

系統(tǒng)軟件是指控制和協(xié)調(diào)計(jì)算機(jī)及外部設(shè)備,支持應(yīng)用的軟件開發(fā)和運(yùn)行的系統(tǒng),是無須用戶干預(yù)的各種程序的集合,主要功能是調(diào)度、監(jiān)控和維護(hù)計(jì)算機(jī)系統(tǒng);負(fù)責(zé)管理計(jì)算機(jī)系統(tǒng)中各種獨(dú)立的硬件,使得它們可以協(xié)調(diào)工作。系統(tǒng)軟件使得計(jì)算機(jī)使用者和其他軟件將計(jì)算機(jī)當(dāng)做一個(gè)整體而不需要顧及到底層每個(gè)硬件是如何工作的。系統(tǒng)軟件主要包括:操作系統(tǒng)(Windows、Linux、DOS、UNIX)、語言處理程序(匯編語言匯編器、C語言編譯、連接器)、高級語言系統(tǒng)和各種服務(wù)性程序(數(shù)據(jù)庫管理、存儲器格式化)等。

支撐軟件是支撐各種軟件的開發(fā)與維護(hù)的軟件,又稱為軟件開發(fā)環(huán)境,如IBM公司的WebSphere、微軟公司的Studio.NET,它主要包括環(huán)境數(shù)據(jù)庫、各種接口軟件和工具組。

選項(xiàng)A、B、D都屬于應(yīng)用軟件。

68.B\n此程序考查帶參數(shù)的宏定義,S(k+j)展開后即4*(k+j)*k+j+1,所以結(jié)果為l43,答案為B。

\n

69.B在本題中,首先定義了兩個(gè)宏N和M,大小都為10,然后定義了一個(gè)返回指針的函數(shù)find,該函數(shù)帶有兩個(gè)形參,第一個(gè)為字符型的指針數(shù)組,第二個(gè)為整型變量,在函數(shù)體中,首先定義了一個(gè)指針變量q,并將形參中指針數(shù)組的第一個(gè)元素賦值給q,然后執(zhí)行for循環(huán),在循環(huán)體中,首先執(zhí)行條件判斷語句,其條件為strcmp(a[i],q)<0(strcmp函數(shù)的作用是比較兩字符串的大小,如果相等,則返回0值,如果參數(shù)中的第一個(gè)字符串大,則返回正值,否則返回負(fù)值),如果結(jié)果為真,說明指針數(shù)組當(dāng)前元素所指向的字符串比q所指向的字符串小,此時(shí),程序執(zhí)行將當(dāng)前指針數(shù)組元素賦值給p,最后返回p,通過上面的分析我們可以看出,find函數(shù)的作用是找出指針數(shù)組中各元素所指向字符串的最小字符串。

在主函數(shù)中,定義了一個(gè)二維數(shù)組s,并賦了初值,然后定義一個(gè)指針變量p,用來存放函數(shù)find的返回值。調(diào)用函數(shù)find的參數(shù)分別為s和5,結(jié)合形參看find函數(shù),不難知道調(diào)用find函數(shù)就是找出二維數(shù)組s中各字符串中最小的字符串,那么應(yīng)該為and。此時(shí),指針變量p指向字符串“and”的首地址,然后執(zhí)行puts(p),完成該字符串的輸出。因此,本題正確的答案是B。

70.A按照從鍵盤輸入的數(shù)據(jù)可以判斷字符1賦給了變量a,字符2賦給了變量b,字符<cR>即回車賦給了變量e,字符3賦給了變量d。因此打印輸出的結(jié)果為選項(xiàng)A)。

71.D

72.C本題考查函數(shù)在函數(shù)調(diào)用時(shí)參數(shù)的傳遞形式,形參與實(shí)參參數(shù)個(gè)數(shù)類型要一致。

73.A軟件危機(jī)主要表現(xiàn)在:軟件需求的增長得不到滿足;軟件開發(fā)成本和進(jìn)度無法控制;軟件質(zhì)量難以保證;軟件不可維護(hù)或維護(hù)程度非常低;軟件的成本不斷提高;軟件開發(fā)生產(chǎn)率的提高趕不上硬件的發(fā)展和應(yīng)用需求的增長。所以選擇A。

74.C

75.B

76.D該題目中首先區(qū)別++n和n++,第一次調(diào)用f函數(shù)時(shí),將++n(n自增l后再參與運(yùn)算)作為參數(shù)進(jìn)行傳遞,此時(shí)變量m的值為1,執(zhí)行n+=m;后,n=1,將l返回主函數(shù),并輸出。第二次調(diào)用f函數(shù)時(shí),將n++(n參與運(yùn)算后再自增1)作為參數(shù)進(jìn)行傳遞,此時(shí)變量m的值為1,執(zhí)行語句n+=m;,由于n是靜態(tài)存儲變量,因此n=2,將2返回主函數(shù)并輸出。因此D選項(xiàng)正確。

77.C本題主要考查數(shù)組的定義及初始化。在對數(shù)組進(jìn)行定義和初始化時(shí),需要注意以下事項(xiàng)。

(1)數(shù)組的內(nèi)存空間在編譯時(shí)確定,定義數(shù)組時(shí)的n值只能使用常量,不能使用變量。

(2)定義數(shù)組時(shí)可以不標(biāo)明數(shù)組元素的個(gè)數(shù),而是通過賦初值的方式確定,編譯系統(tǒng)將自動計(jì)算花括號內(nèi)的數(shù)據(jù)數(shù)量作為數(shù)組的元素個(gè)數(shù)。

(3)數(shù)組初始化時(shí),當(dāng)初值的個(gè)數(shù)小于整型常量n時(shí),編譯系統(tǒng)會自動補(bǔ)0。一旦給定初值數(shù)超過n,編譯系統(tǒng)將報(bào)錯。

(4)初始化數(shù)組的元素類型,必須與定義數(shù)組時(shí)的類型一致。

(5)數(shù)組名記錄了數(shù)組在內(nèi)存中的首地址,其值不能更改。

(6)除字符數(shù)組外,不能直接用數(shù)組名對數(shù)組進(jìn)行整體輸入或輸出。

本題中定義了一個(gè)3行4列的數(shù)組,但沒有對其進(jìn)行賦初值操作,可能我們會想在系統(tǒng)編譯時(shí)會自動補(bǔ)0,這只是在初值個(gè)數(shù)小于數(shù)組定義大小的情況下的操作,如果沒有進(jìn)行賦初值操作,數(shù)組中的元素值是不能被確定的。因此,本題答案選C。

78.B對于這種問題可以用真假來判斷,當(dāng)數(shù)值不為0時(shí)都一律為真,只有是0才是假

A:(a<b)為真,!c為假,所以(真&&假)為假,后來(假‖真)為真,不是0<b)為真,!c為假,所以(真&&假)為假,后來(假|(zhì)|真)為真,不是0B:(真&&假)為假,是0

C:(真&&真)為真,不是0

D:(真||真)為真,c-a為真,(真&&真)為真,不是0</b)為真,!c為假,所以(真&&假)為假,后來(假|(zhì)|真)為真,不是0

79.A

80.A循環(huán)語句中輸出o,i為。循環(huán)結(jié)束,執(zhí)行循環(huán)條件后i為l,輸出1,所以選擇A)。

81.(1)錯誤:for(i=j=0;str[i]!=0;i++)

\n正確:for(i=j=0;str[i]!=\0;i++)

\n(2)錯誤:str[j]=str[i];

\n正確:str[i++]=str[i];

\n【解析】根據(jù)題目中的要求,從字符串str中刪除所有大寫字母F,需要檢查字符串str中的每一個(gè)字符,直到字符串結(jié)束,因此,“for(i=j=0;str[i]!=0;i++)”應(yīng)改為“for(i=J=0;str[i]!=0;i++)”;將每一個(gè)不是F的字符放入原來的字符串中,形成新的字符串,因此,“str[j]=str[i];”應(yīng)改為“str[j++]=str[i];”。

\n

82.

【解析】題目中要求字符串前部的*不得多于m,首先要計(jì)算出字符串前部的*號的個(gè)數(shù),與變量m進(jìn)行比較。當(dāng)字符串前部的*多于m個(gè)時(shí),刪除多余的*。規(guī)定不能用字符串函數(shù)處理,可以通過移動字符串的首指針來實(shí)現(xiàn)。

2021年江西省宜春市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.一個(gè)二維數(shù)組的定義語句為“inta[3][4]={{3,4},{2,8,6}};”,則元素a[2][1]的值為()。

A.0B.4C.8D.6

2.設(shè)有以下程序段:要求輸入字符串給結(jié)構(gòu)體變量rec的title成員,錯誤的輸入語句是()A.seanf(”%s”Ptrtitle);

B.scanf(”%s”,rec.title);

C.scanf(’’%s”,(*pu).title);

D.scanf(”%s”,ptr->title);

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

A.詳細(xì)設(shè)計(jì)B.需求分析C.總體設(shè)計(jì)D.編程調(diào)試

4.有以下程序段:charstr[4][12]={“aaa”,“bbb”,“ccc”,“ddd”},*p[4];inti;for(i=0;i<4;i++)p[i]=str[i];以下選項(xiàng)中不能正確引用字符串的是()。

A.*p[3]B.p[3]C.str[2]D.*p

5.求2n個(gè)數(shù)中的最大值和最小值,最少的比較次數(shù)是()

A.4n/3B.2n-2C.3n-2D.3n/2

6.下述關(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ù)

7.

8.具有n個(gè)結(jié)點(diǎn)的連通圖至少有()條邊。

A.n-1B.nC.n(n-1)/2D.2n

9.有以下程序#include<stdio.h>main(){inta=5,b=l;t=(a<<2)|b;printf("%d\n",t);}程序運(yùn)行后的輸出結(jié)果是______。A.21B.11C.6D.1

10.

11.以下敘述中正確的是

A.用C程序?qū)崿F(xiàn)的算法必須要有輸入和輸出操作

B.用C程序?qū)崿F(xiàn)的算法可以沒有輸出但必須要有輸入

C.用C程序?qū)崿F(xiàn)的算法可以沒有輸入但必須要有輸出

D.用C程序?qū)崿F(xiàn)的算法可以既沒有輸入也沒有輸出

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

A.算法就是程序B.設(shè)計(jì)算法時(shí)只需要考慮數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)C.設(shè)計(jì)算法時(shí)只需要考慮結(jié)果的可靠性D.以上3種說法都不對

13.有以下程序voidsum(inta[]){a[0]-a[-1]+a[1];}main(){inta[10]={1,2,3,4,5,6,7,8,9,10};sum(&a[2]);printf(“%d\n”,a[2]);}程序運(yùn)行后的輸出結(jié)果是A.6B.7C.5D.8

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

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

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

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

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

15.程序運(yùn)行后的輸出結(jié)果是()。A.3B.4C.1D.9

16.以下定義語句中正確的是

A.inta=b=0;

B.charA=65+1,b='b';

C.noata=1,*b=&a,*c=&b;

D.doublea=0.0;b=1.1;

17.若有以下定義,則對a數(shù)組元素地址的正確引用是()。

inta[5],*p=a;A.A.p5B.*a1C.&a1D.&a[0]

18.以下不正確的敘述是()。

A.在C程序中,逗號運(yùn)算符的優(yōu)先級最低

B.在C程序中,APH和aph是兩個(gè)不同的變量

C.若a和b類型相同,在執(zhí)行了賦值表達(dá)式a=b后b中的值將放人a中,而b中的值不變

D.當(dāng)從鍵盤輸入數(shù)據(jù)時(shí),對整型變量只能輸入整型數(shù)值,對實(shí)型變量只能輸入實(shí)型數(shù)值

19.棧和隊(duì)列的共同點(diǎn)是()。

A.都是先進(jìn)先出B.都是先進(jìn)后出C.只允許在端點(diǎn)處插入和刪除元素D.沒有共同特點(diǎn)

20.

二、2.填空題(20題)21.以下程序的功能是建立一個(gè)帶有頭結(jié)點(diǎn)的單向鏈表,鏈表結(jié)點(diǎn)中的數(shù)據(jù)通過鍵盤輸入,當(dāng)輸入數(shù)據(jù)為-1時(shí),表示輸入結(jié)束(鏈表頭結(jié)點(diǎn)的data域不放數(shù)據(jù),表空的條件是ph->next==NULL),請?zhí)羁铡?/p>

#include<stdio.h>

structlist{intdata;structlist*next;};

structlist*creatlist()

{structlist*p,*q,*ph;inta;ph=(structlist*)malloc(sizeof(structlist));

p=q=ph;printf("Inputanintegernumber;entre-1toend:\n");

scanf("%d",&a);

while(a!=-1)

{p=(structlist*)malloc(sizeof(structlist));

【】=a;q->next=p;【】=p;scanf("%d",&a);}

p->next=′\0;return(ph);}

main()

{structlist*head;head=creatlist();}

22.若有下面的程序片段:int[12]={0},*p[3],**pp,i;for(i=0;i<3;i)p[i]=&a[i*4];pp=p;則對數(shù)組元素的錯誤引用是

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

main(){inti=lO,*p,*func();

p=&i;

printf("%d",*p);

p=func(p);

printf("%d\n",*p)

}

int*func(px);

int*px;

{inttemp=20;

px=&temp;

return(px);

}

24.若有定義doublea[5];,則a數(shù)組元素下標(biāo)的上限為______。

25.結(jié)構(gòu)化分析方法是面向______進(jìn)行分析的方法。

26.下面程序是計(jì)算100以內(nèi)能被4整除且個(gè)位數(shù)為4的所有整數(shù),請?zhí)羁铡?/p>

main()

{intm,n;

for(m=0;【】;m++)

{n=m*10+4;

If(【】)continue;

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

27.診斷和改正程序中錯誤的工作通常稱為【】。

28.x、y、x均為int型變量,描述“x、y和z中至少有兩個(gè)為正數(shù)”的表達(dá)式是______。

29.按照“先進(jìn)先出”的原則組織數(shù)據(jù)的結(jié)構(gòu)是______。

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

main()

{intn=0;

while(n++<=1);

printf("%d,",n);

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

}

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

main()

{inti,a[10];

a[0]=a[1]=1;

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

a[i]=a[i-2]+a[i-1];

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

{if(i%2==0)printf("\n");

printf("%d",a[i]);

}

}

32.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲結(jié)構(gòu),線性鏈表屬于【】。

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

34.面向?qū)ο蟮哪P椭校罨镜母拍钍菍ο蠛蚠_____。

35.實(shí)體之間的聯(lián)系可以歸結(jié)為一對一的聯(lián)系,一對多的聯(lián)系與多對多的聯(lián)系。如果一個(gè)學(xué)校有許多學(xué)生,而一個(gè)學(xué)生只歸屬于一個(gè)學(xué)校,則實(shí)體集學(xué)校與實(shí)體集學(xué)生之間的聯(lián)系屬于【】的聯(lián)系。

36.已知字符A的ASCII代碼值為65,以下程序運(yùn)行時(shí)若從鍵盤輸入:B33<回車>,則輸出結(jié)果是

【】。

#include<stdio.h>

main()

{chara,b;

a=getchar();scanf("%d",&b);

a=a-'A'+'0';b=b*2;

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

}

37.函數(shù)check用來判斷字符串s是否是“回文”(順讀和倒讀都一樣的字符串為“回文”,如abeba)。是則函數(shù)返回值1,否則返回值0,請?zhí)羁铡?/p>

intcheck(char*s)

{

char*p1,*p2;intn;

n=strlen(s);

p1=s;

p2=【】;

while(p1<p2)

{

if(*p1!=*p2)break;

else{p1++;p2--;}

}

if(【】)return0;

elsereturn1;

}

38.以下程序的運(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);}

39.實(shí)體之間的聯(lián)系可以歸結(jié)為一對一的聯(lián)系,一對多的聯(lián)系與多對多的聯(lián)系。如果一個(gè)學(xué)校有許多教師,而一個(gè)教師只歸屬于一個(gè)學(xué)校,則實(shí)體集學(xué)校與實(shí)體集教師之間的聯(lián)系屬于【】的聯(lián)系。

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

三、1.選擇題(20題)41.下列程序執(zhí)行后的輸出結(jié)果是main(){inta[3][3],*p,i;p=&a[0][0];for(i=1;i<9;i++)p[i]=i+1;printf("%d\n",a[1][2]);}

A.3B.6C.9D.隨機(jī)數(shù)

42.假定所有變量均已正確說明,下列程序段運(yùn)行后x的值是()。a=b=c=0;x=12;if(!a)x--;elsex=5:if(c)x=3:elsex=4:A.11B.4C.12D.3

43.以下程序的輸出結(jié)果是______。sub(intx,int*y){*y=*y-x;}main(){inta=1,b=2;sub(a,&B);sub(b,&A);printf("%d,%d\n",a,B);}

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

44.下列關(guān)鍵字中,不屬于C語言變量存儲類別的是______。

A.registerB.autoC.externD.public

45.下列程序的輸出結(jié)果是()。#include<stdio.h>intb=2;intfunc(int*a){b+=*a;returnb;}main(){inta=1,t=2;t+=func(&a);printf("%d\n",t);}

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

46.有如下程序intfunc(inta,intb){return(a+b);}main(){intx=2,y=5,z=8,r;r=func(func(x,y),z);printf("%d\n",r);}該程序的輸出結(jié)果是______。

A.12B.13C.14D.15

47.結(jié)構(gòu)化程序有3種基本結(jié)構(gòu)組成,3種基本結(jié)構(gòu)組成的算法______。

A.可以完成任何復(fù)雜的任務(wù)B.只能完成部分復(fù)雜的任務(wù)C.只能完成符合結(jié)構(gòu)化的任務(wù)D.只能完成一些簡單的任務(wù)

48.下列選項(xiàng)中不屬于結(jié)構(gòu)化程序設(shè)計(jì)方法的是()。

A.自頂向下B.逐步求精C.模塊化D.可復(fù)用

49.a、b、c、d變量均為float類型且已正確賦值,下列選項(xiàng)中與數(shù)學(xué)式子“2ab/(5cd)”等價(jià)的C語言表達(dá)式是()。

A.2/5*a/c*d/b

B.a/(5*c*d)*(2*b)

C.2*a*b/5*c*d

D.2/5*a*d*(1/c*d)

50.若已建立下面的鏈表結(jié)構(gòu),指針p、s分別指向圖中所示的結(jié)點(diǎn),則不能將s所指的結(jié)點(diǎn)插入到鏈表末尾的語句組是()

A.s->next=NULL;p=p->next;p->next=s;

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

C.p=p->next;s-next=p;p->next=s;

D.p=(*p).next;(*s).next=(*p).next;(*p).next=s;

51.已知字符′A′的ASCII碼值是65,字符變量cl的值是′A′,c2的值是′D′。執(zhí)行語句printf("%d,%d",c1,c2-2);后,輸出結(jié)果是

A.A,BB.A,68C.65,66D.65,68

52.在設(shè)計(jì)程序時(shí),應(yīng)采納的原則之一是()。

A.不限制goto語句的使用B.減少或取消注解行C.程序越短越好D.程序結(jié)構(gòu)應(yīng)有助于讀者理解

53.下列程序的輸出結(jié)果是______。main(){inti;for(i=l;i<6;i++){if(i%2){printf("#");continue;}printf("*");}printf("\n");}

A.#*#*#B.#####C.****D.*#*#*

54.以下能正確定義一維數(shù)組的選項(xiàng)是______。

A.inta[5]={0,1,2,3,4,5);

B.chara[]={0,1,2,3,4,5);

C.chara={'A','B','C'};

D.inta[5]="0123";

55.開發(fā)軟件時(shí)對提高開發(fā)人員工作效率至關(guān)重要的是()

A.操作系統(tǒng)的資源管理功能B.先進(jìn)的軟件開發(fā)工具和環(huán)境C.程序人員的數(shù)量D.計(jì)算機(jī)的并行處理能力

56.以下能正確定義一維數(shù)組的選項(xiàng)是

A.inta[5]={0,1,2,3,4,5}

B.chara[]={'0','1','2','3','4','5','\0'};

C.chara={'A','B','C'};

D.inta[5]="0123";

57.有以下程序#include<stdio.h>#include<string.h>voidfun(char,*s[],intn){char*t;inti,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(strlen(s[i])>strlen(s[j])){t=s[i];s[i]:s[j];s[j]=t;}}main(){char*ss[]={"bcc","bbcc","xy","aaaacc","aabcc"};fun(ss,5);printf("%s,%s\n",ss[0],ss[4]);}程序的運(yùn)行結(jié)果是

A.xy,aaaaccB.aaaacc,xyC.bcc,aabccD.aabcc,bcc

58.以下程序的輸出結(jié)果是______。main(){unsignedshorta=65536;intb;printf("%d\n",b=a);}

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

59.設(shè)有如下變量定義:doublea=3.500000;floatb=2.5;intm=2,n=3;則表達(dá)式“(float)(m+n)/2+(int)a%(int)b”的值是()

A.2.5B.3.5C.4.5D.表達(dá)式不正確

60.有以下程序:main(){inta=5,b=4,c=3,d=2;if(a>b>c)printf("%d\n",d);elseif((c-1>=d)==1)printf("%d\n",d+1);elseprintf("%d\n",d+2);}執(zhí)行后輸出結(jié)果是______。

A.2B.3C.4D.編譯時(shí)有錯,無結(jié)果

四、選擇題(20題)61.數(shù)據(jù)庫應(yīng)用系統(tǒng)中的核心問題是()。

A.數(shù)據(jù)庫設(shè)計(jì)B.數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)C.數(shù)據(jù)庫維護(hù)D.數(shù)據(jù)庫管理員培訓(xùn)

62.

63.

有以下計(jì)算公式

若程序前面已在命令中包含math.h文件,不能夠正確

計(jì)算上述公式的程序段是()。

A.if(x>=0)y=sqrt(x);elsey=sqrt(-x);

B.y=sqrt(x)if(x<0)y=sqrt(0x);

C.if(x>=O)y=sqrt(x);If(x<O)y=sqrt(0x);

D.y=sqrt(x>=0?x:0x);

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

main()

{inta=2,b=3,c;

c=a;

if(a>b)c=1;

elseif(a==b)c=0;

elsec=-1;

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

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

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

A.1,2,3.4,5,6,7,8,9,10,

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

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

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

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

A.-3,-1,1,3,B.-12,一3,0,0C.0,1,2,3,D.一3,-3,一3,一3,

67.軟件按其功能進(jìn)行分類,可分為:應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于系統(tǒng)軟件的是

A.文字編輯軟件B.網(wǎng)頁瀏覽器C.?dāng)?shù)據(jù)庫管理系統(tǒng)D.視頻播放軟件

68.有以下程序:

#include<stdio.h>

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

main()

{intk=5,j=2;

printf("%d\n",S(k+j));

}

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

A.197B.143C.33D.28

69.有如下程序段

#include"stdio.h"

#include"string.h"

#defineN10

#defineM10

char*find(char(*a)[M],intn)

{char*q;inti;

q=a[0];

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

if(strcmp(a[i],q)<0)q=a[i];

returnq;}

main()

{chars[N][M]={"tomeetme","you","and","he","china"};

char*p;

intn=5;

p=find(s,n);

puts(p);}

則執(zhí)行后輸出的結(jié)果為A.A.heB.andC.youD.tomeetme

70.有以下程序當(dāng)執(zhí)行程序時(shí),按下列方式輸入數(shù)據(jù)(從第l列開始,<CR>代表回車,注意;回車也是--+qz符)12<CR>34<CR>則輸出結(jié)果是()。

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

71.

72.有下列函數(shù)定義:intfun(doublea,doubleb){returna*b;}若下列選項(xiàng)中所用變量都已經(jīng)正確定義并賦值,錯誤的函數(shù)調(diào)用是()。A.

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論