版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2021年江蘇省宿遷市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷一(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(12題)1.若有如下定義,則__________是對(duì)數(shù)組元素的正確的引用。.
inta[10],*p;p=a;
A.*&a[10]B.a[11]C.*(p+11)D.*p*p*p
2.設(shè)散列表中m個(gè)存儲(chǔ)單元,散列函數(shù)為H(key)=key%p,p是最好選擇()。
A.小于等于m的最大奇數(shù)B.小于等于m的最大素?cái)?shù)C.小于等于m的最大偶數(shù)D.小于等于m的最大合數(shù)
3.若已知一個(gè)棧的進(jìn)棧序列是1,2,3,,n,其輸出序列為p1,p2,p3,?,pn,若p1=n,則pi為()。
A.iB.n-iC.n-i+1D.不確定
4.
下述程序的輸出結(jié)果是()。
#include<stdio.h>
voidmain
{intb[6]={2,4,6,8,10,12);
int*p=b,**q=&p;
printf("%d,",*(p++));
printf("%d,",**q);
}
A.4,4B.2,2C.4,5D.2,4
5.若有以下程序
則程序的輸出結(jié)果是
A.3B.7C.6D.10
6.在一個(gè)C源程序文件中所定義的全局變量,其作用域?yàn)?)。A.由具體定義位置和extern說明來(lái)訣定范圍B.所在程序的全部范圍C.所在函數(shù)的全部范圍D.所在文件的全部范圍
7.設(shè)棧S的初始狀態(tài)為空,6個(gè)元素入棧的順序?yàn)閑1,e2,e3,e4,e5和e6。若出棧的順序是e2,e4,e3,e6,e5,el,則棧s的容量至少應(yīng)該是()。
A.6B.4C.3D.2
8.程序中若有如下說明和定義語(yǔ)句charfun(char*);main(){char*s="one",a[5]={0},(*f1)()=fun,ch;.....}以下選項(xiàng)中對(duì)函數(shù)Fun的正確調(diào)用語(yǔ)句是______。A.(*f1)(a);B.*f1(*s);C.fun(&a);D.ch=*f1(s);
9.在"inta[][3]={{1},{3,2},{4,5,6},{0}};"中,a[2][2]的值是()。
A.1B..0C.6D.2
10.以下選項(xiàng)中非法的表達(dá)式是()。
A.a+1=a+1
B.a=b==0
C.(Char.(100+100.
D.7<=X<60
11.有以下程序:#include<stdio.h>main(){inty=9;for(;y>0;y--)if(y%3==0)printf(“%d”,--y);}程序的運(yùn)行結(jié)果是()。
A.852B.963C.741D.875421
12.有以下程序:#include<stdio.h>main(){intx=3,y=5,z1,z2;z1=y^x^y;z2=x^y^x;printf(“%d,%d\n”,z1,z2);}程序運(yùn)行后的輸出結(jié)果是()。
A.7,7B.5,3C.8,8D.3,5
二、2.填空題(12題)13.下面程序的功能是建立一個(gè)有3個(gè)結(jié)點(diǎn)的單循環(huán)鏈表,然后求各個(gè)結(jié)點(diǎn)數(shù)值域data中數(shù)據(jù)的和,請(qǐng)?zhí)羁铡?/p>
#include<stdio.h>
#include<stdlib.h>
structNODE{intdata;
structNODE*next;
};
main()
{structNODE*p,*q,*r;
intsum=0;
p=(structNODE*)malloc(sizeof(structNODE));
q=structNODE*)malloc(sizeof(structNODE));
r=(structNODE*)malloc(sizeof(structNODE));
p->data=100;q->data=200;r->data=300;
p->next=q;q->next=r;r->next=p;
sum=p->data+p->next->data+r->next->next【】;
printf("%d\n",sum);
}
14.執(zhí)行以下程序后的輸出結(jié)果是【】。
main()
{inta=10;
a=(3*5,a+4);printf("a=%d\n",a);
}
15.下列程序的運(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);
}
16.以下程序的輸出結(jié)果是【】。
#include<stdio.h>
main()
{ints[]={1,2,3,4},i;
intx=0;
for(i=0;i<4;i++)
{x=sb(s,x);
printf("%d",x);}
printf("\n");}
sb(s1,y)
int*s1,y;
{staticinti1=3;
y=s1[i1];
i1--;
return(y);}
17.若a=10,b=20,則表達(dá)式!(a<b)的值是【】。
18.設(shè)有定義“struct{inta;floatb;charc;}abc,*p_abc=&abc;”,則對(duì)結(jié)構(gòu)體成員a的引用方法可以是abc.a和p_abc【】a。
19.性結(jié)構(gòu)中,第一個(gè)結(jié)點(diǎn)沒有前驅(qū)結(jié)點(diǎn),其余每個(gè)結(jié)點(diǎn)有且只有【】個(gè)前驅(qū)結(jié)點(diǎn);最后一個(gè)結(jié)點(diǎn)沒有后繼結(jié)點(diǎn),其余每個(gè)結(jié)點(diǎn)有且只有【】個(gè)后繼結(jié)點(diǎn)。
20.以下程序的運(yùn)行結(jié)果是______。
intx;
main()
{inta=5,b=8;
swap(a,b);
printf("a=%d,b=%d,x=%d\n",a,b,x);
}
swap(inta,intb)
{inttemp;
temp=a;a=b;
b=temp;x=a/b;
printf("x=%d\n",x);
}
21.下列程序中的數(shù)組a包括10個(gè)整數(shù)元素,分別將前項(xiàng)和后項(xiàng)之和存入數(shù)組b,并按每行4個(gè)元素輸出數(shù)組b。請(qǐng)?zhí)羁铡?/p>
#include<stdio.h>
main()
{inta[10],b[10],i;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<9;i++)
______;
for(i=0;i<9;i++)
{if(i%4=0)printf("\n");
printf("%3d",b[i]);
}
}
22.以下程序運(yùn)行后的輸出結(jié)果是______。
inta=5;
fun(intB)
{staticinta=10;
a+=b++;
printf("%d",A);
}
main()
{intc=20;
fun(C),
a+=C++;
printf("%d\n",A);
}
23.以下程序的輸出結(jié)果是【】。
fun(intx,inty,intz)
{z=x*x+y*y;}
main()
{inta=31;
fun(6,3,a)
printf("%d,a)
}
24.面向?qū)ο蟮哪P椭?,最基本的概念是?duì)象和______。
三、3.程序設(shè)計(jì)題(10題)25.學(xué)生的記錄由學(xué)號(hào)和成績(jī)組成,N名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組s中,請(qǐng)編寫函數(shù)fun,它的功能是:按分?jǐn)?shù)的高低排列學(xué)生的記錄,高分在前。
注意:部分源程序在文件PROGl.C文件中。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語(yǔ)句。
26.已知學(xué)生的記錄由學(xué)號(hào)和學(xué)習(xí)成績(jī)構(gòu)成,N名學(xué)生的數(shù)據(jù)已存入a結(jié)構(gòu)體數(shù)組中。請(qǐng)編寫函數(shù)fun(),該函數(shù)的功能是:找出成績(jī)最低的學(xué)生記錄,通過形參返回主函數(shù)(規(guī)定只有一個(gè)最低分)。己給出函數(shù)的首部,請(qǐng)完成該函數(shù)。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語(yǔ)句。
試題程序:
#include<stdio.h>
#include<string.h>
#include<aonio.h>
#defineN10
typedefstructss
{charnum[10];
ihts;
}STU;
fun(STUail,STU*s)
{
}
main()
{
STUa[N]={{"A01",81},{"A02",89},
{"A03",66},{"A04",87},{"A05",77},
{"A06",90},{"A07",79},{"A08",61},
{"A09",80),{"Al0",71}},m;
inti;
clrscr0;
printf("*****Theoriginaldata*****");
for(i=0;i<N;i++)
printf("No=%sMark=%d\n",ail].num,
a[i].s);
fun(a,&m);
printf("*****THERESULT*****\n");
printf("Thelowest:%s,%d\n",m.num,
m.s);
}
27.請(qǐng)編寫函數(shù)fun(),其功能是:將s所指字符串中除了下標(biāo)為偶數(shù)、同時(shí)ASCII值也為偶數(shù)的字符外,其余的全部刪除,串中剩余字符所形成的一個(gè)新中放在t所指的數(shù)組中。
例如,若s所指字符串中的內(nèi)容為ABCDEFG123456,其中字符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)是246。
注意:部分源程序給出如下。
請(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);
}
28.請(qǐng)編寫函數(shù)fun(),該函數(shù)的功能是:刪去一維數(shù)組中所有相同的數(shù),使之只剩一個(gè)。數(shù)組中的數(shù)已按由小到大的順序排列,函數(shù)返回刪除后數(shù)組中數(shù)據(jù)的個(gè)數(shù)。
例如,若一維數(shù)組中的數(shù)據(jù)是:
2223445666677899101010
刪除后,數(shù)組中的內(nèi)容應(yīng)該是:
2345678910。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語(yǔ)句。
試題程序:
#include<stdio.h>
#defineN80
intfun(inta[],intn)
{
}
main()
{
inta[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,
8,9,9,10,10,10,10},i,n=20;
printf("Theoriginaldata:\n");
for(i=0;i<n;i++)
printf("%3d",a[i]);
n=fun(a,n);
printf("\n\nThedataafterdeleted
:\n");
for(i=0;i<n;i++)
printf("%3d",a[i]);
printf("\n\n");
}
29.請(qǐng)編寫一個(gè)函數(shù)voidfun(char*tt,intpp[]),統(tǒng)計(jì)在tt字符串中“a”到“z”26個(gè)字母各自出現(xiàn)的次數(shù),并依次放在pp所指數(shù)組中。
例如:當(dāng)輸入字符串a(chǎn)bcdefghabcdeabc后,程序的輸出結(jié)果應(yīng)該是:33322110000000000000000000
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語(yǔ)句。
試題程序:
#include<conio.h>
#include<stdio.h>
voidfun(char*tt,intpp[])
{
}
main()
{
charaa[1000];
intbb[26],k,n;
clrscr();
printf("\nPleaseenteracharstring:");
scanf("%s",aa);
fun(aa,bb);
for(k=0;k<26;k++)
printf("%d",bb[k]);
printf("\n");
}
30.編寫函數(shù)fun,它的功能是計(jì)算下列級(jí)數(shù)和,和值由函數(shù)值返回。
例如,當(dāng)n=10,x=0.3時(shí),函數(shù)值為1.349859。
注意:部分源程序在文件PROGl.C文件中。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語(yǔ)句。
31.請(qǐng)編寫一個(gè)函數(shù)fun(),它的功能是:根據(jù)以下公式求π的值(要求滿足精度0.005,即某項(xiàng)小于0.005時(shí)停止迭代)。
π/2=1+1/3+1*2/(3*5)+1*2*3/(3*5*7)+1*2*3*4/(3*5*7*9)+…
+1*2*3*…*n/(3*5*7*…*(2n+1))
程序運(yùn)行后,如果輸入精度0.0005,則程序輸出3.14…。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語(yǔ)句。
試題程序:
#include<conio.h>
#include<math.h>
doublefun(doubleeps)
{
}
main()
{
doublex;
printf("Inputeps:");
scanf("%1f",&x);
printf("\neps=%1f,PI=%1f\n",x,fun(x));
}
32.請(qǐng)編一個(gè)函數(shù)floatfun(doubleh),函數(shù)的功能是對(duì)變量h中的值保留兩位小數(shù),并對(duì)第三位進(jìn)行四舍五入(規(guī)定h中的值為正數(shù))。
例如:若h值為8.32433,則函數(shù)返回8.32:若h值為8.32533,則函數(shù)返回8.33。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)。fun的花括號(hào)中填入所編寫的若干語(yǔ)句。
試題程序:
#include<stdio.h>
#include<conio.h>
floatfun(floath)
{
}
main()
{
floata;
clrscr();
printf("Entera:");
scanf("%f",&a);
printf("Theoriginaldatais:");
printf("%f\n\n",a);
printf("Theresult:%f\n",fun(a));
}
33.請(qǐng)編寫一個(gè)函數(shù)fun,它的功能是:比較兩個(gè)字符串的長(zhǎng)度,(不得調(diào)用C語(yǔ)言提供的求字符串長(zhǎng)度的函數(shù)),函數(shù)返回較長(zhǎng)的字符串。若兩個(gè)字符串長(zhǎng)度相同,則返回第一個(gè)字符串。
例如,輸入beijingshah曲aj(為回車鍵),函數(shù)將返回shanghai。
注意:部分源程序存在文件PROGl.C中。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語(yǔ)句。
34.請(qǐng)編寫函數(shù)fun(),它的功能是計(jì)算下列級(jí)數(shù)和,和值由函數(shù)值返回。
S=1-x+x2(上標(biāo))/2!-x3(上標(biāo))/3!+…+(-1*x)n(上標(biāo))/n!
例如,當(dāng)n=15,x=0.5時(shí),函數(shù)值為0.606531。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語(yǔ)句。
試題程序:
#include<conio.h>
#include<stdio.h>
#include<math.h>
doublefun(doublex,intn)
{
}
main()
{
clrscr();
printf("%f",fun(0.5,15));
}
四、單選題(0題)35.設(shè)有程序段:intk=12:while(k=1)k=k-1:則下列描述中正確的是()。
A.while循環(huán)執(zhí)行10次B.循環(huán)是無(wú)限循環(huán)C.循環(huán)體語(yǔ)句一次也不執(zhí)行D.循環(huán)體語(yǔ)句執(zhí)行一次
五、單選題(0題)36.算法應(yīng)該是()
A.程序B.問題求解步驟的描述C.要滿足五個(gè)基本特性D.B和C
六、單選題(0題)37.假定X和Y為double型,則表達(dá)式x=2,y=x+3/2的值是()。
A.3.500000B.3C.2.000000D.3.000000
參考答案
1.D
2.B
3.C
4.D
\n首先定義了一個(gè)指向一維數(shù)組b的指針P,一個(gè)指向指針P的指針變量q;輸出*(p++)是先輸出*p,即b[O]的值,再將指針P指向數(shù)組的下一個(gè)元素b[1];輸出**q是輸出指針P所指單元的內(nèi)容。
\n
5.D第—個(gè)if語(yǔ)句a!=1條件為假,所以執(zhí)行dse后的語(yǔ)句r=1。第二個(gè)if語(yǔ)句b==2條件成立,執(zhí)行r+=2,r的值變?yōu)?,第三個(gè)if語(yǔ)句c!=3條件為假,所以不做任何操作。執(zhí)行下面的r+=3操作,r的值變?yōu)?。判斷第四個(gè)訌條件,d==4條件成立,執(zhí)行r+=4操作,結(jié)果為10。
6.A[解析]全局變量的作用域是從聲明處到文件的結(jié)束。所以選擇A)
7.C
8.A解析:題中將函數(shù)fun的入口地址賦給了指針變量f1,這時(shí)f1和fun都指向函數(shù)的開頭,調(diào)用*f1就是調(diào)用函數(shù)fun。
9.C
10.A賦值運(yùn)算符的左邊只能是變量,而不能是常量或表達(dá)式。
11.A第1次for循環(huán),y的值為9,“y%3”的值為0,滿足if條件輸出“--y”,即先自減后輸出,所以輸出8;第2次for循環(huán),y的值為7,“y%3”的值為1,不滿足if條件,不執(zhí)行printf語(yǔ)句;第3次for循環(huán),y的值為6,“y%3”的值為0,滿足if條件輸出“--y”,即先自減后輸出,所以輸出5;第4次for循環(huán),y的值為4,不滿足if條件,不執(zhí)行printf語(yǔ)句;第5次for循環(huán),y的值為3,滿足if條件,輸出2;第6次for循環(huán),y的值為1,不滿足if條件,不執(zhí)行printf語(yǔ)句。故本題答案為A選項(xiàng)。
12.D是按位異或運(yùn)算,其功能是參與運(yùn)算的兩個(gè)數(shù),按位異或,如果兩個(gè)相應(yīng)位相同,結(jié)果為0,否則為1。接位異或運(yùn)算滿足如下規(guī)則:①滿足交換律;②一個(gè)數(shù)與0異或的結(jié)果仍是原數(shù);③一個(gè)數(shù)與1異或的結(jié)果是原數(shù)按位取反。所以題干中,“y^x^y”等價(jià)于等價(jià)于“y^y^x”,等價(jià)于“0^x”,等價(jià)于x,即“z1=x”;“x^y^x”等價(jià)于“x^x^y”,等價(jià)于“0^y”,等價(jià)于y,即“z2=y”,輸出結(jié)果為:3,5。故本題答案為D選項(xiàng)。
13.->next->data->next->data解析:主函數(shù)中前面大部分語(yǔ)句都是用來(lái)建立題中所述的鏈表的,我們只需要補(bǔ)充完整倒數(shù)第2條語(yǔ)句,實(shí)現(xiàn)題目要求的求3個(gè)結(jié)點(diǎn)之和就可以了。p->data是p所指結(jié)點(diǎn)中的數(shù)據(jù);p->next->data是p的下一結(jié)點(diǎn)(q所指結(jié)點(diǎn))中的數(shù)據(jù)。所以下劃線位置只要填入->next->data就是剩下的r所指結(jié)點(diǎn)的數(shù)據(jù)了。因?yàn)殒湵硎茄h(huán)的,r->next->next->next的值就等于r,你甚至還可以填入->next->next->next->next->data,只要保證整個(gè)式子->next的個(gè)數(shù)是3的倍數(shù)都可以。
14.a=14a=14解析:逗號(hào)表達(dá)式的值是以逗號(hào)分隔的最后一個(gè)表達(dá)式的值。所以題目中的語(yǔ)句a=(3*5,a+4);就等價(jià)于a=a+4;。故本題輸出結(jié)果是a=14。
15.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)。
16.43214321解析:靜態(tài)存儲(chǔ)類的局部變量其生存期為整個(gè)程序的運(yùn)行期間,作用域卻只是定義它的函數(shù)或局部范圍。注意:局部變量和全局變量的作用域。
17.00解析:已知a=10,b=20,所以邏輯表達(dá)式a<b的值為true,即為1,在這個(gè)表達(dá)式前面有一個(gè)邏輯運(yùn)算符!,表示反操作,所以整個(gè)語(yǔ)句的值應(yīng)當(dāng)為false,即為0。
18.->->解析:若結(jié)構(gòu)體變量abc有成員a,并有指針p_abc指向結(jié)構(gòu)變量abc,則引用變量abc成員a的標(biāo)記形式有abc.a和p_abc->a。
19.11
20.a=5b=8x=1。a=5,b=8,x=1。解析:本題考查形參變量值的改變并不能傳回給實(shí)參。因此主函數(shù)中最后輸出的a和b仍為原來(lái)的初值5和8。
21.b[i]=a[i]+a[i+1]b[i]=a[i]+a[i+1]解析:將數(shù)組a中元素a[i]與a[j+1]值相加后的值賦予數(shù)組b中元素b[i],即可實(shí)現(xiàn)將一個(gè)數(shù)組的前項(xiàng)和后項(xiàng)之和存入另一數(shù)組。
22.30253025解析:本題考核的知識(shí)點(diǎn)是變量的存儲(chǔ)屬性和算術(shù)運(yùn)算的應(yīng)用。本題涉及了自動(dòng)變量、靜態(tài)變量和外部變量。外部變量是定義在所有函數(shù)之外的變量,本題中inta=5定義了一個(gè)外部變量a,它是一個(gè)全局變量,即作用域是從定義的位置開始到本文件的結(jié)束;靜態(tài)變量的存儲(chǔ)空間在程序的整個(gè)運(yùn)行期間是固定的(static),本題函數(shù)fun()中staticinta=10定義個(gè)一個(gè)靜態(tài)變量a,此靜態(tài)變量a是個(gè)靜態(tài)的局部變量,即它的值只能在本函數(shù)中使用;自動(dòng)變量是C程序中使用最多的一種變量,它的建立和撤消都是由系統(tǒng)在程序執(zhí)行過程中自動(dòng)進(jìn)行的,auto是自動(dòng)變量的存儲(chǔ)類別標(biāo)識(shí)符,如果省略auto,系統(tǒng)隱含認(rèn)為此變量為auto,本題中main()中intc=20定義了一個(gè)自動(dòng)變量c,此自動(dòng)變量c是個(gè)靜態(tài)的局部變量.算術(shù)運(yùn)算中a+=b++相當(dāng)于a=a+b,b=b+1.所以,在第一個(gè)ptine('%d',a)中a=a+b=10+20=30,第二個(gè)printf('%d',a)中a=a+c=5+20=25,即輸出3025。
23.3131解析:在函數(shù)調(diào)用時(shí),形參值和改變,不會(huì)改變實(shí)參的值。
24.類類
25.
解析:該程序功能是按分?jǐn)?shù)的高低排列學(xué)生的記錄。首先從數(shù)組中挑選一個(gè)最大的元素,把它和第一元素交換,接著從剩下的n-1個(gè)元素中再挑出一個(gè)最大的元素,把它和第二個(gè)元素交換,不斷重復(fù)以上過程,直到比較完最后兩個(gè)元素。
26.fun(STUa[]STU*s){inti;*s=a[0];for(i=0;i<N;i++)/*先認(rèn)為第1個(gè)值最小*/if(s->s>aIi].s)/*如果在循環(huán)的過程中再發(fā)現(xiàn)比第1個(gè)值更小的則賦給*s*/*s=a[i];}fun(STUa[],STU*s)\r\n{\r\ninti;\r\n*s=a[0];\r\nfor(i=0;i<N;i++)/*先認(rèn)為第1個(gè)值最小*/\r\nif(s->s>aIi].s)/*如果在循環(huán)的過程中再發(fā)現(xiàn)比第1個(gè)值更小的則賦給*s*/\r\n*s=a[i];\r\n}解析:我們先認(rèn)為第1個(gè)值最小,即*s=a[0]語(yǔ)句,如果在循環(huán)的過程中再發(fā)現(xiàn)比第1個(gè)值更小的隨即賦給該*s就可以了。另外,還涉及到結(jié)構(gòu)體中的指向運(yùn)算符,請(qǐng)學(xué)習(xí)者注意。若要找出最高成績(jī)則if()中的條件改成s->s<a[i].s即可。
27.voidfun(char*schart[]){intij=0;for(i=0;s[i]!='\0';i++)if(i%2==0&&s[i]%2==0)/*將s所措字符串中下標(biāo)和ASCII值都為偶數(shù)的字符放入數(shù)組t中*/t[j++]=s[i];/*在字符串最后加上結(jié)束標(biāo)志位*/t[j]='\0';}voidfun(char*s,chart[])\r\n{\r\ninti,j=0;\r\nfor(i=0;s[i]!='\\0';i++)\r\nif(i%2==0&&s[i]%2==0)/*將s所措字符串中下標(biāo)和ASCII值都為偶數(shù)的字符放入數(shù)組t中*/\r\nt[j++]=s[i];/*在字符串最后加上結(jié)束標(biāo)志位*/\r\nt[j]='\\0';\r\n}解析:本題要求除了下標(biāo)為偶數(shù)同時(shí)ASCII值也為偶數(shù)的字符之外,其他字符都刪除。題目要求留下下標(biāo)為偶數(shù)同時(shí)ASCII值也為偶數(shù)的字符。
C語(yǔ)言中并沒有直接刪除字符的算法,請(qǐng)大家在做題的時(shí)候注意。
28.intfun(inta[]intn){intij=l;for(i=1;i<n;i++)if(a[j-1]!=a[i])/*若該數(shù)與前一個(gè)數(shù)不相同則要保留*/a[j++]=a[i];returnj;/*返回不同數(shù)的個(gè)數(shù)*/}intfun(inta[],intn)\r\n{\r\ninti,j=l;\r\nfor(i=1;i<n;i++)\r\nif(a[j-1]!=a[i])/*若該數(shù)與前一個(gè)數(shù)不相同,則要保留*/\r\na[j++]=a[i];\r\nreturnj;/*返回不同數(shù)的個(gè)數(shù)*/\r\n}解析:本題程序的流程是:讓i,j都從1開始,其中j用于控制刪除后剩下的數(shù)中的下標(biāo),i用于搜索原數(shù)組中的元素。j始終是新數(shù)組已有元素中最后一個(gè)元素的下一個(gè)元素的下標(biāo),所以if()中的條件是a[j-1]!=a[i],其中a[j-1]就是新數(shù)組中的最后一個(gè)元素,若條件成立,則表示出現(xiàn)了不同的值,所以a[i]要留下到新數(shù)組中。注意本題中i,j的初值都要從1開始,該算法只能用于數(shù)組已排序的題目中。
29.voidfun(char*ttintpp[]){inti;fori=0;i<26;i++)pp[i]=0;/*初始化pp數(shù)組各元素為0*/for(;*tt!='\0';tt++)if(*tt>='a'&&*tt<='z')pp[*tt-'a']++;/*將tt字符串中'a'到'z'26個(gè)字母各自出現(xiàn)的次數(shù)依次放在pp數(shù)組中任一個(gè)小寫字母減去'a'后所得結(jié)果正好是它對(duì)應(yīng)的下標(biāo)*/}voidfun(char*tt,intpp[])\r\n{\r\ninti;\r\nfori=0;i<26;i++)\r\npp[i]=0;/*初始化pp數(shù)組各元素為0*/\r\nfor(;*tt!='\\0';tt++)\r\nif(*tt>='a'&&*tt<='z')\r\npp[*tt-'a']++;/*將tt字符串中'a'到'z'26個(gè)字母各自出現(xiàn)的次數(shù),依次放在pp數(shù)組中,任一個(gè)小寫字\r\n母減去'a'后所得結(jié)果正好是它對(duì)應(yīng)的下標(biāo)*/\r\n}解析:第1個(gè)循環(huán)的作用是初始化數(shù)組pp,未經(jīng)賦值變量的量為一個(gè)不確定數(shù)字。由于它要將'a'到'z'26個(gè)字母的個(gè)數(shù)依次放到數(shù)組pp中。即'a'的個(gè)數(shù)存于pp[0]中,'b'的個(gè)數(shù)存于pp[1]中,'c'的個(gè)數(shù)存于pp[2]中,…,依次類推。而'a'-'a'的值正好為0,'b'-'a'的值為1,'c'-'a'的值為2,…,依此類推。即任一個(gè)小寫字母減去'a'后所得結(jié)果正好是它對(duì)應(yīng)的下標(biāo),所以就有了pp[*tt-'a']++。但*tt必須是小寫字母即if()不應(yīng)省略。
30.
解析:該程序功能是計(jì)算并輸出多項(xiàng)式值。根據(jù)題干中給出的數(shù)列,首先推出每一項(xiàng)的表達(dá)式,然后再對(duì)多項(xiàng)式進(jìn)行累加求和。
31.doublefun(doubleeps){doubles=1.0s1=1.0;intn=1;while(s1>=eps)/*當(dāng)某項(xiàng)大于精度要求時(shí)繼續(xù)求下—項(xiàng)*/{s1=s1*n/(2*n+1);/*求多項(xiàng)式的每—項(xiàng)*/s=s+s1;/*求和*/n++;}return2*s;}doublefun(doubleeps)\r\n{\r\ndoubles=1.0,s1=1.0;\r\nintn=1;\r\nwhile(s1>=eps)/*當(dāng)某項(xiàng)大于精度要求時(shí),繼續(xù)求下—項(xiàng)*/\r\n{s1=s1*n/(2*n+1);/*求多項(xiàng)式的每—項(xiàng)*/\r\ns=s+s1;/*求和*/\r\nn++;\r\n}\r\nreturn2*s;\r\n}解析:從第2項(xiàng)開始以后的每一項(xiàng)都是其前面一項(xiàng)乘以n/(2*n+1),程序中用s1來(lái)表示每一項(xiàng),s來(lái)表
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 室內(nèi)裝飾設(shè)計(jì)師9S考核試卷含答案
- 玻璃退火工復(fù)測(cè)強(qiáng)化考核試卷含答案
- 煤層氣預(yù)處理值班員安全實(shí)操評(píng)優(yōu)考核試卷含答案
- 農(nóng)藝工操作水平測(cè)試考核試卷含答案
- 一次雷達(dá)機(jī)務(wù)員安全檢查測(cè)試考核試卷含答案
- 工業(yè)爐燃料系統(tǒng)裝配工安全理論強(qiáng)化考核試卷含答案
- 燃?xì)廨啓C(jī)運(yùn)行值班員安全實(shí)操競(jìng)賽考核試卷含答案
- 2025年?yáng)|南大學(xué)輔導(dǎo)員考試筆試題庫(kù)附答案
- 2024年涉縣輔警招聘考試真題匯編附答案
- 2024年洛陽(yáng)市稅務(wù)系統(tǒng)遴選考試真題匯編附答案
- 十八項(xiàng)核心制度(終版)
- 存單質(zhì)押合同2026年版本
- 實(shí)驗(yàn)室生物安全培訓(xùn)內(nèi)容課件
- 2025-2026學(xué)年浙教版七年級(jí)科學(xué)上冊(cè)期末模擬試卷
- 北京市懷柔區(qū)2026年國(guó)有企業(yè)管培生公開招聘21人備考題庫(kù)及答案詳解(易錯(cuò)題)
- 2025廣東中山城市科創(chuàng)園投資發(fā)展有限公司招聘7人筆試參考題庫(kù)附帶答案詳解(3卷)
- 火力發(fā)電廠機(jī)組A級(jí)檢修監(jiān)理大綱
- 井噴失控事故案例教育-井筒工程處
- 地源熱泵施工方案
- GB/T 16947-2009螺旋彈簧疲勞試驗(yàn)規(guī)范
- 硒功能與作用-課件
評(píng)論
0/150
提交評(píng)論