2022-2023學(xué)年安徽省阜陽(yáng)市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷(含答案)_第1頁(yè)
2022-2023學(xué)年安徽省阜陽(yáng)市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷(含答案)_第2頁(yè)
2022-2023學(xué)年安徽省阜陽(yáng)市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷(含答案)_第3頁(yè)
2022-2023學(xué)年安徽省阜陽(yáng)市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷(含答案)_第4頁(yè)
2022-2023學(xué)年安徽省阜陽(yáng)市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷(含答案)_第5頁(yè)
已閱讀5頁(yè),還剩22頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2022-2023學(xué)年安徽省阜陽(yáng)市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(12題)1.下列寫法正確的是()。

A.main(){inti=3,j;j=5}

B.main(){inti=3;

C.main()

D.main(){;}

2.有以下程序:#include<stdio.h>#defineN8voidfun(int*x,inti){*x=*(x+i);)main(){inta[N]={1,2,3,4,5,6,7,8},i;fun(a,2);for(i=0;i<N/2;i++){printf(“%d”,a[i]);}printf(“\n”);}程序運(yùn)行后的輸出結(jié)果是()。A.1313B.2234C.3234D.1234

3.設(shè)x、y、t均為血型變量,則執(zhí)行語(yǔ)句x=y=3;t=++x||++y;后,y的值為_(kāi)_____。

A.不定值B.4C.3D.1

4.有以下程序

prt(int*m,intn)

{

inti;

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

m[i]++;

}

main()

{

inta[]={1,2,3,4,5},i;

prt(a,5);

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

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

}

程序運(yùn)行后的輸出結(jié)果是A.A.1,2,3,4,5,

B.3,4,5,6,7,

C.2,3,4,5,6,

D.2,3,4,5,1,

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

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

6.如果有n個(gè)節(jié)點(diǎn)用二叉樹(shù)來(lái)存儲(chǔ),那么二叉樹(shù)的最小深度為()

A.Log2(n+1)B.Log2(n)C.Log2(n-1)D.n/2

7.從堆中刪除一個(gè)元素的時(shí)間復(fù)雜以為_(kāi)___。

A.O(1)B.O(log2n)C.O(n)D.O(nlog2n)

8.程序設(shè)計(jì)的任務(wù)包括()。

A.編寫程序代碼并上機(jī)調(diào)試B.確定所用數(shù)據(jù)結(jié)構(gòu)C.確定所用算法D.以上選項(xiàng)均正確

9.最小堆[0,3,2,5,7,4,6,8],在刪除堆頂元素0之后,其結(jié)果是()

A.[3,2,5,7,4,6,8]

B.[2,3,5,7,4,6,8]

C.[2,3,4,5,7,8,6]

D.[2,3,4,5,6,7,8]

10.使用數(shù)組名作為函數(shù)的實(shí)參時(shí),傳遞給形參的是()。

A.數(shù)組中第1個(gè)元素的值B.數(shù)組的首地址C.數(shù)組中全部元素的值D.數(shù)組元素的個(gè)數(shù)

11.給出以下定義:charx[]="abcdefg";chary[]={'a','b','c','d','e','f','g'};則正確的敘述為()。

A.數(shù)組x和數(shù)組y等價(jià)B.數(shù)組x和數(shù)組y的長(zhǎng)度相同C.數(shù)組x的長(zhǎng)度大于數(shù)組y的長(zhǎng)度D.數(shù)組x的長(zhǎng)度小于數(shù)組y的長(zhǎng)度

12.以下針對(duì)相應(yīng)語(yǔ)句的注釋中,說(shuō)法錯(cuò)誤的是()。

A.int*pt[2];/*pt是一個(gè)指針數(shù)組名*/

B.int(*pt)[2];/*pt是一維數(shù)組名*/

C.int(*pt)();/*pt是指向函數(shù)的指針*/

D.int*pt();/*pt是一個(gè)函數(shù)名*/

二、2.填空題(12題)13.按照邏輯結(jié)構(gòu)分類,數(shù)據(jù)結(jié)構(gòu)可分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),二叉樹(shù)屬于______。

14.語(yǔ)句printf("%f\n",13.0*(1/5));的輸出結(jié)果為【】。

15.()是指用戶的應(yīng)用程序與數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)是相互獨(dú)立的,也就是說(shuō),數(shù)據(jù)的邏輯結(jié)構(gòu)改變了,用戶程序也可以不變。

16.若a是int型變量,且a的初值為4,則計(jì)算a+=a-=a*a表達(dá)式后a的值為_(kāi)_____。

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

#include<stdio.h>

main()

{FILE*fp;inta[10]={1,2,3,0,0},i;

fp=fopen("d2.dat","wbt");

fwtite(a,sizeof(int),5,fp);

fwlite(a,sizeof(int),5,fp);

fclose(fp);

fp=fopen("d2.dat","rb");

fread(a,sizeof(int),10,fp);

fclose(fp);

for(i=0;i

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

#include<stdio.h>

main()

{chars[20];

scanf("%s",s);

printf("%s",s);

}

運(yùn)行程序,輸入HOWAREYOU。

19.設(shè)有以下程序:

main()

{inta,b,k=4,m=6,*p1=&k,*p2=&m;

a=p1=&m;

b=(*p1)/(*p2)+7;

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

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

}

執(zhí)行該程序后,a值為【】,b值為【】。

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

21.數(shù)據(jù)模型按不同應(yīng)用層次分成三種類型,它們是概念數(shù)據(jù)模型、【】和物理數(shù)據(jù)模型。

22.數(shù)據(jù)的______結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空問(wèn)中的存放形式稱為數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)或物理結(jié)構(gòu)。

23.數(shù)據(jù)庫(kù)管理系統(tǒng)常見(jiàn)的數(shù)據(jù)模型有層次模型、網(wǎng)狀模型和【】3種。

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

main()

{inty=9;

for(;y>0;y--)

if(y%3==0)

{printf("%d",--y);continue;}}

三、3.程序設(shè)計(jì)題(10題)25.請(qǐng)編寫函數(shù)fun(),其功能是:計(jì)算并輸出給定10個(gè)數(shù)的方差。

其中

例如,給定的10個(gè)數(shù)為95.0,89.0,76.0,65.0,88.0,72.0,85.0,81.0,90.0,56.0,則輸出為S=11.730729。

注意;部分源程序給出如下.

請(qǐng)勿改動(dòng)主函數(shù)mam和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語(yǔ)句。

試題程序:

#include<math.h>

#include<stdio.h>

doublefun(doublex[10])

{

}

main()

{

doubles,x[i0]={95.0,89.0,76.0,65.0,

88.0,72.0,85.0,81.0,90.0,56.0};

inti;

printf("\nTheoriginaldatais:\n");

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

printf("%6.1f",x[i]);

printf("\n\n");

s=fun(x);

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

}

26.N名學(xué)生的成績(jī)已在主函數(shù)中放入一個(gè)帶頭節(jié)點(diǎn)的鏈表結(jié)構(gòu)中,h指向鏈表的頭節(jié)點(diǎn)。請(qǐng)編寫函數(shù)fun(),它的功能是:找出學(xué)生的最低分,由函數(shù)值返回。

注意:部分源程序給出如下。

請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語(yǔ)句。

試題程序:

#include<stdio.h>

#include<Stdlib.h>

#defineN8

StructSlist

{doubles;

StructSlist*next;

};

tyPedefStructSlistSTREC;

doublefun(STREC*h)

{

}

STREC*Creat(double*S)

{

STREC*h,*p,*q;

inti=0;

h=p={STREC*)malloc(sizeof(STREC));

p->S=0;

while(i<N)

/*產(chǎn)生8個(gè)節(jié)點(diǎn)的鏈表,各分?jǐn)?shù)存入鏈表中*/

{q=(STREC*)malloc(sizeOf(STREC));

p->S=S[i];i++;p->next=q;p=q;

}

p->next=NULL;

returnh;

/*返回鏈表的首地址*/

}

outlist(STREC*h)

{

STREC*p;

p=h;

printf("head");

do

{printf("->%2.of",p->s);p=p->next;}

/*輸/出各分?jǐn)?shù)*/

while(p!=NULL);

printf("\n\n");

}

main()

{

doubles[N]={56,89,76,95,91,68,75,

85},min;

STREC*h;

h=creat(S);

outlist(h);

min=fun(h);

printf("min=%6.If\n",min);

}

27.請(qǐng)編寫一個(gè)函數(shù)fun(),它的功能是:找出一維數(shù)組元素中最大的值和它所在的下標(biāo),最大值和它所在的下標(biāo)通過(guò)形參傳回。數(shù)組元素中的值已在主函數(shù)中賦予。

主函數(shù)中x是數(shù)組名,n是x中的數(shù)據(jù)個(gè)數(shù),max存放最大值,index存放最大值所在元素的下標(biāo)。

注意:部分源程序給出如下。

請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語(yǔ)句。

試題程序:

#include<stdlib.h>

#include<stdio.h>

voidfun(inta[],intn,int*max,int*d)

{

}

main()

{

inti,x[20],max,index,n=10;

randomize();

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

{

x[i]=rand()%50;

printf("%4d",x[i]);

/*輸出一個(gè)隨機(jī)數(shù)組*/

}

printf("\n");

fun(x,n,&max,&index);

printf("Max=%5d,Index=%4d\n",max,index);

}

28.m個(gè)人的成績(jī)存放在score數(shù)組中,請(qǐng)編寫函數(shù)fun,它的功能是:將低于平均分的人數(shù)作為函數(shù)值返回,將低于平均分的分?jǐn)?shù)放在below所指的數(shù)組中。

例如,當(dāng)score數(shù)組中的數(shù)據(jù)為:10、20、30、40、50、60、70、80、90時(shí),函數(shù)返回的人數(shù)應(yīng)該是4,below中的數(shù)據(jù)應(yīng)為:10、20、30、40。

注意:部分源程序在文件PROGl.C文件中。

請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語(yǔ)句。

29.請(qǐng)編寫函數(shù)fun(),它的功能是計(jì)算:s=(1-In(1)-In(2)-In(3)-…-1n(m))2

s作為函數(shù)值返回。

在C語(yǔ)言中可調(diào)用log(n)函數(shù)求In(n)。log函數(shù)的引用說(shuō)明是doublelog(doublex)。

例如,若m的值為15,則fun()函數(shù)值為723.570801。

注意:部分源程序給出如下。

請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語(yǔ)句。

試題程序:

#include<conio.h>

#include<stdio.h>

#include<math.h>

doublefun(intm)

{

}

main()

{

clrscr();

printf("%f\n",fun(15));

}

30.請(qǐng)編寫函數(shù)fun(),其功能是;計(jì)算井輸出下列多項(xiàng)式值。

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

例如,若主函數(shù)從鍵盤給n輸入8后,則輸出為S-0.662872。

注意;部分源程序給出如下。

請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語(yǔ)句。

試題程序;

#include<stdio.h>

doublefun(intn)

{

}

main()

{

intn;

doubles;

printf("\nInputn:");

scanf("%d",&n);

s=fun(n);

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

}

31.請(qǐng)編寫函數(shù)fun(),它的功能是計(jì)算:

s=(ln(1)+ln(2)+ln(3)+…+ln(m))0.5

在C語(yǔ)言中可調(diào)用log(n)函數(shù)求ln(n)。

例如,若m的值為20,則fun()函數(shù)值為6.506583。

注意:部分源程序給出如下。

請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語(yǔ)句。

試題程序:

#include<conio.h>

#include<stdio.h>

#include<math.h>

doublefun(intm)

{

}

main()

{

clrscr();

printf("%f\n",fun(20));

}

32.學(xué)生的記錄由學(xué)號(hào)和成績(jī)組成,N名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組s中,請(qǐng)編寫函數(shù)fun,它的功能是:把高于等于平均分的學(xué)生數(shù)據(jù)放在b所指的數(shù)組中,高于等于平均分的學(xué)生人數(shù)通過(guò)形參n傳回,平均分通過(guò)函數(shù)值返回。

注意:部分源程序在文件PROGl.C文件中。

請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語(yǔ)句。

33.請(qǐng)編寫函數(shù)fun(),其功能是:將s所指字符串中除了下標(biāo)為奇數(shù)、同時(shí)ASCII值為偶數(shù)的字符外,其余的全部刪除,串中剩余字符所形成的一個(gè)新串放在t所指的數(shù)組中。

例如,若s所指字符串中的內(nèi)容為edB2A4Dsdg,其中字符A的ASCII碼值為奇數(shù),因此應(yīng)當(dāng)刪除;其中字符B的ASCII碼值為偶數(shù),但在數(shù)組中的下標(biāo)為偶數(shù),因此也應(yīng)當(dāng)刪除:而字符2的ASCII碼值為偶數(shù),所在數(shù)組中的下標(biāo)為奇數(shù),因此不應(yīng)當(dāng)刪除,其他依此類推。最后t所指的數(shù)組中的內(nèi)容應(yīng)是d24。

注意:部分源程序給出如下。

請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語(yǔ)句。

試題程序:

#include<conio.h>

#include<stdio.h>

#include<string,h>

voidfun(char*s,chart[])

{

}

main()

{

chars[100],t[100];

clrscr();

printf("\nPleaseenterstringS:");

scanf("%s",s);

fun(s,t);

printf("\nTheresultis:%s\n",t);

}

34.請(qǐng)編寫函數(shù)fun(),該函數(shù)的功能是:移動(dòng)字符串中的內(nèi)容,移動(dòng)的規(guī)則是把第1到第m個(gè)字符,平移到字符串的最后,把第m+1到最后的字符移到字符串的前部。

例如,字符串中原有的內(nèi)容為ABCDEFGHIJK,m的值為3,移動(dòng)后,字符串中的內(nèi)容應(yīng)該是DEFGHIJKABC。

注意:部分源程序給出如下。

請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語(yǔ)句。

試題程序:

#include<stdio.h>

#include<string.h>

#defineN80

voidfun(char*w,intm)

{

}

main()

{

chara[N]="ABCDEFGHIJK";

intm;

printf("Theoriginastring:\n");

puts(a);

printf("\n\nEnterm:");

scanf("%d",&m);

fun(a,m);

printf("\nThestringaftermoving:\n");

puts(a);

printf("\n\n");

}

四、單選題(0題)35.深度為5的二叉樹(shù)至多有_____個(gè)結(jié)點(diǎn)。

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

五、單選題(0題)36.向堆中插入一個(gè)元素的時(shí)間復(fù)雜度為_(kāi)_______。

A.O(log2n)B.O(n)C.O(1)D.O(nlog2n)

六、單選題(0題)37.在下面棧的基本運(yùn)算中,不是加工型運(yùn)算的是______。

A.初始化B.進(jìn)棧C.退棧D.判棧空

參考答案

1.D解析:本題考查語(yǔ)句的基本構(gòu)成。選項(xiàng)A)中j=5后面少了一個(gè)分號(hào):選項(xiàng)B)中少了“}”;選項(xiàng)C)不是一個(gè)完整的函數(shù)定義格式,一個(gè)完整的函數(shù)定義格式還包括一對(duì)花括號(hào):選項(xiàng)D)正確,是一個(gè)空語(yǔ)句。

2.C本題考查了宏定義與局部變量的區(qū)別,宏定義的作用范圍為整個(gè)程序,而變量的作用范圍只在定義它的函數(shù)體的部分,因此,主函數(shù)中定義的i與fun中的i互不相干。

3.C解析:C語(yǔ)言中在做邏輯或運(yùn)算時(shí),自左向右判斷各個(gè)參加或運(yùn)算的表達(dá)式,一旦運(yùn)算到某式的值為非零時(shí),表明整個(gè)表達(dá)式一定為真,余下的語(yǔ)句則不再進(jìn)行運(yùn)算。本題中,++x的值為真,則++y并沒(méi)有進(jìn)行運(yùn)算,所以y值不變。

4.C用數(shù)組名作為函數(shù)實(shí)參時(shí),不是把數(shù)組的值傳遞給形參,而是把實(shí)參數(shù)組的起始地址傳遞給形參數(shù)組,這樣兩個(gè)數(shù)組就共同占用同一段內(nèi)存單元。本題通過(guò)“prt(a,5);”將數(shù)組a的首地址傳遞給了指針變量m,使指針變量m指向數(shù)組a的首地址,那么,對(duì)指針變量所指向的存儲(chǔ)單元的內(nèi)容的改變就是對(duì)數(shù)組a中的元素的改變。題中函數(shù)prt的作用是將指針變量m所指向的存儲(chǔ)單元中的元素值各加上1,故數(shù)組a中的值也隨之變化,所以。輸出的數(shù)組元素的值為2,3,4,5,6,。

5.D

6.A

7.B

8.D程序設(shè)計(jì)是一門技術(shù),需要相應(yīng)的理論、技術(shù)、方法和工具來(lái)支持。程序設(shè)計(jì)的任務(wù)包括選項(xiàng)A)、B)、c)等方面。

9.C

10.B用數(shù)組名作為函數(shù)參數(shù)時(shí),數(shù)組名退化為指針,傳遞給形參的是數(shù)組的首地址。故本題答案為B選項(xiàng)。

11.C解析:在C語(yǔ)言中,字符串以'\\0'作為結(jié)束符,因此數(shù)組x的長(zhǎng)度為7+1=8,而數(shù)組y的長(zhǎng)度等于7。

12.B選項(xiàng)A定義了一個(gè)數(shù)組pt,它包含兩個(gè)整型指針元素,所以pt是一個(gè)指針數(shù)組名,正確;選項(xiàng)B定義了一個(gè)數(shù)組指針Pt,pt指向一個(gè)數(shù)組,該數(shù)組包含兩個(gè)整型元素,錯(cuò)誤;選項(xiàng)C定義了一個(gè)函數(shù),pt是函數(shù)指針,指向的函數(shù)沒(méi)有參數(shù),返回類型為整型,正確;選項(xiàng)D定義了一個(gè)函數(shù),函數(shù)名為pt,函數(shù)返回整型指針類型,正確。故本題答案為B選項(xiàng)。

13.非線性結(jié)構(gòu)非線性結(jié)構(gòu)解析:對(duì)于一個(gè)非空的數(shù)據(jù)結(jié)構(gòu),如果同時(shí)滿足下列兩個(gè)條件,即1)有且只有一個(gè)根結(jié)點(diǎn);2)每一個(gè)結(jié)點(diǎn)最多有一個(gè)前件,也最多有一個(gè)后件;即為線性結(jié)構(gòu),而二叉樹(shù)的結(jié)點(diǎn)可能存在兩個(gè)后件,所以是非線性結(jié)構(gòu)。

14.00解析:/表示整除,1/5為0,0乘以任何數(shù)都得零,但是與浮點(diǎn)型相乘,要轉(zhuǎn)化為浮點(diǎn)型,所以結(jié)果為0.000000。注意:在一個(gè)運(yùn)算符的兩邊如果一個(gè)是字符型,一個(gè)是整型,則把字符型轉(zhuǎn)換為整型之后再進(jìn)行運(yùn)算。

15.邏輯獨(dú)立性邏輯獨(dú)立性解析:數(shù)據(jù)獨(dú)立性包括數(shù)據(jù)的物理獨(dú)立性和邏輯獨(dú)立性。物理獨(dú)立性是指用戶的應(yīng)用程序與存儲(chǔ)在磁盤上的數(shù)據(jù)庫(kù)中數(shù)據(jù)是相互獨(dú)立的。數(shù)據(jù)在磁盤上的數(shù)據(jù)庫(kù)中怎樣存儲(chǔ)是由DBMS管理的,用戶程序不需要了解,應(yīng)用程序要處理的只是數(shù)據(jù)的邏輯結(jié)構(gòu),這樣當(dāng)數(shù)據(jù)的物理存儲(chǔ)改變時(shí)。應(yīng)用程序不用改變。邏輯獨(dú)立性是指用戶的應(yīng)用程序與數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)是相互獨(dú)立的,也就是說(shuō),數(shù)據(jù)的邏輯結(jié)構(gòu)改變了,用戶程序也可以不變。

16.-24-24解析:本題考查賦值運(yùn)算符a+=b等價(jià)于a=a+b;a-=a*a等價(jià)于a=a-a*a=4-4*4=-12;a+=a,即a=a+a=-24。

17.解析:本題考查文件讀寫函數(shù)fread和fwrite的用法。fwrite函數(shù)將數(shù)組a的前5個(gè)元素輸出到文件fp中兩次,共10個(gè)字節(jié),再調(diào)用fread函數(shù)從文件fp中讀取這10個(gè)字節(jié)的數(shù)據(jù)到數(shù)組a中,此時(shí)數(shù)組a的內(nèi)容就變?yōu)閧1,2,3,0,0,1,2,3,0,)},最后的輸出結(jié)果為“1,2,3,0,0,1,2,3,0,0,”。

18.HOWHOW解析:在scanf()函數(shù)中,使用空格作為分隔符,如果輸入含有空格的字符中,則不能使用scanf()數(shù),所以本題中輸入空格就返回了'\\0\\,s數(shù)組也就確定了,后面的輸入就不再讀入數(shù)組s中。

19.07

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

21.邏輯數(shù)據(jù)模型邏輯數(shù)據(jù)模型解析:數(shù)據(jù)模型按不同的應(yīng)用層次分成三種類型,它們是概念數(shù)據(jù)模型、邏輯數(shù)據(jù)模型、物理數(shù)據(jù)模型。

22.邏輯邏輯解析:數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空間中的存放形式稱為數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)或物理結(jié)構(gòu)。

23.關(guān)系模型關(guān)系模型解析:數(shù)據(jù)庫(kù)管理系統(tǒng)是位于用戶與操作系統(tǒng)之間的一層系統(tǒng)管理軟件,是一種系統(tǒng)軟件,是用戶與數(shù)據(jù)庫(kù)之間的一個(gè)標(biāo)準(zhǔn)接口。其總是基于某種數(shù)據(jù)模型,可以分為層次模型、網(wǎng)狀模型和關(guān)系模型。

24.852852解析:循環(huán)前,變量y的值為9,其中的循環(huán)語(yǔ)句在y大于0情況下循環(huán),每次循環(huán)后y的值減1。循環(huán)體是當(dāng)y能被3整除時(shí)輸出表達(dá)式--y,輸出的是減1后的y值。這樣,第一次循環(huán)因y為9,能被3整除,輸出8,y也變成8。又經(jīng)兩次循環(huán),y的值變?yōu)?,又讓y減1變成5,并輸出5;又經(jīng)兩次循環(huán),y的值變成3,讓y減1變成2,輸出2;再經(jīng)兩次循環(huán)后,y的值變成0,結(jié)束循環(huán)。所以程序輸出852。

25.doublefun(doublex[10]){doublexl=0.0s=0.0;inti;for(i=0;i<10;i++)xl=xl+x[i];xl-xl/10;/*求10個(gè)數(shù)的平均值*/for(i=0;i<l0;i++)s=s+(x[i]-xl)*(x[i]-x1);returnsqrt(s/l0);/*求10個(gè)數(shù)的方差*/}doublefun(doublex[10])\r\n{\r\ndoublexl=0.0,s=0.0;\r\ninti;\r\nfor(i=0;i<10;i++)\r\nxl=xl+x[i];\r\nxl-xl/10;\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000/*求10個(gè)數(shù)的平均值*/\r\nfor(i=0;i<l0;i++)\r\ns=s+(x[i]-xl)*(x[i]-x1);\r\nreturnsqrt(s/l0);\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000/*求10個(gè)數(shù)的方差*/\r\n}解析:又是一道算式表達(dá)題,程序中用第1個(gè)循環(huán)來(lái)完成求10個(gè)數(shù)的總和,接著再用x1=x1/10來(lái)求出平均值。

26.doublefun(STREC*h){doublemin=h->s;while(h!=NULL)/*通過(guò)循環(huán)找到最低分?jǐn)?shù)*/{if(min>h->s)min=h->s;h=h->next;}returnmin;}doublefun(STREC\u3000*h)\r\n{\r\ndoublemin=h->s;\r\nwhile(h!=NULL)/*通過(guò)循環(huán)找到最低分?jǐn)?shù)*/\r\n{if(min>h->s)\r\nmin=h->s;\r\nh=h->next;\r\n}\r\nreturnmin;\r\n}解析:在本題中,h為—個(gè)指向結(jié)構(gòu)體的指針變量,若要引用它所指向的結(jié)構(gòu)體中的某一成員時(shí),要用指向運(yùn)算符“->”。由于是鏈表,所以要使h逐一往后移動(dòng),使用的是h=h->next。

27.voidfun(inta[]intnint*maxint*d){inti;*max=a[0];*d=0;for(i=0;i<n;i++)/*將最大的元素放入指針max所指的單元最大元素的下標(biāo)放入指針d所指的單元*/if(*max<a[i]){*max=a[i];*d=i;}}voidfun(inta[],intn,int*max,int*d)\r\n{\r\ninti;\r\n*max=a[0];\r\n*d=0;\r\nfor(i=0;i<n;i++)/*將最大的元素放入指針max所指的單元,最大元素的下標(biāo)放入指針d所指的單元*/\r\nif(*max<a[i])\r\n{*max=a[i];*d=i;}\r\n}解析:該程序直接使用形參max和d,由于它們都是指針變量,所以要引用它所指向的變量時(shí)要對(duì)它進(jìn)行指針運(yùn)算,也即*號(hào)運(yùn)算。

28.

解析:(1)該程序功能是返回低于平均分的人數(shù)。它的解題思路可以分解為以下幾步:求總分一求平均分一逐個(gè)元素與平均分比較一統(tǒng)計(jì)低于平均分的人數(shù)。

(2)從已給部分源程序的main主函數(shù)開(kāi)始入手,核心函數(shù)fun(score,9,below)中的參數(shù)由題目可知,score存放著m個(gè)人的成績(jī),below存放低于平均分的分?jǐn)?shù)。另外,根據(jù)score的定義,可知9為score數(shù)組中元素的個(gè)數(shù),傳給函數(shù)fun中的參數(shù)m。

29.doublefun(intm){inti;doubles=1.0;for(i=1;i<=m;i++)s=s-log(i);/*計(jì)算s=l-In(1)-In(2)-In(3)-…-In(m)*/return(s*s);/*對(duì)s求平方并返回*/}doublefun(intm)\r\n{\r\n\u3000inti;\r\ndoubles=1.0;\r\nfor(i=1;i<=m;i++)\r\ns=s-log(i);/*計(jì)算s=l-In(1)-In(2)-In(3)-…-In(m)*/\r\nreturn(s*s);/*對(duì)s求平方并返回*/\r\n}解析:首先,題目要求計(jì)算1依次減去1到M的對(duì)數(shù),可用從1到M的循環(huán),每次循環(huán)都減一個(gè)數(shù)的對(duì)數(shù)。該題需要注意,log()函數(shù)的形式參數(shù)應(yīng)浩如煙海double型變量,用于循環(huán)的基數(shù)變量為整數(shù),需要進(jìn)行強(qiáng)制轉(zhuǎn)換。最后在返回的時(shí)求平方。

30.doublefun(intn){inti;doubles=0.0;for(i=1;i<=n;i++)s=s+(1.0/(2*i-1)-1.0/(2*i));/*計(jì)算S=(1-1/2)+(1/3-1/4)+…+(1/(2n-1)-l/2n)*/returns;}doublefun(intn)\r\n{\r\ninti;\r\ndoubles=0.0;\r\nfor(i=1;i<=n;i++)\r\ns=s+(1.0/(2*i-1)-1.0/(2*i));/*計(jì)算S=(1-1/2)+(1/3-1/4)+…+(1/(2n-1)-l/2n)*/returns;\r\n}解析:本題中s=s+(1.0/(2*i-1)-1,O/(2*i));語(yǔ)句是用C程序去表達(dá)題目中的每一項(xiàng),這是關(guān)鍵,其他問(wèn)題不難理解。

31.doublefun(intm){inti;doubles=0.0;for(i=1;i<=m;i++)s=s+log(i);/*計(jì)算s=ln(1)+ln(2)+ln(3)+…+in(m)*/returnsort(s);/*對(duì)s求平方根并返回*/}doublefun(intm)\r\n{\r\ninti;\r\ndoubles=0.0;\r\nfor(i=1;i<=m;i++)\r\ns=s+log(i);/*計(jì)算s=ln(1)+ln(2)+ln(3)+…+in(m)*/\r\n

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(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)論