版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2022-2023學(xué)年廣東省梅州市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(12題)1.在一個(gè)源文件中定義的全局變量的作用域?yàn)椋?)
A.本程序的全部范圍B.本函數(shù)的全部范圍C.從定義該變量的位置開(kāi)始到本文件結(jié)束D.以上說(shuō)法都不正確
2.下面關(guān)于線性表的敘述中,錯(cuò)誤的是哪一個(gè)()。
A.線性表采用順序存儲(chǔ),必須占用一片連續(xù)的存儲(chǔ)單元
B.線性表采用順序存儲(chǔ),便于進(jìn)行插入和刪除操作
C.線性表采用鏈?zhǔn)酱鎯?chǔ),不必占用一片連續(xù)的存儲(chǔ)單元
D.線性表采用鏈?zhǔn)酱鎯?chǔ),便于進(jìn)行插入和刪除操作
3.
4.用不帶頭結(jié)點(diǎn)的單鏈表存儲(chǔ)隊(duì)列,其頭指針指向隊(duì)頭結(jié)點(diǎn),尾指針指向隊(duì)尾結(jié)點(diǎn),則在進(jìn)行出隊(duì)操作時(shí)()。
A.僅修改隊(duì)頭指針B.僅修改隊(duì)尾指針C.隊(duì)頭、隊(duì)尾指針都可能要修改D.隊(duì)頭、隊(duì)尾指針都要修改
5.對(duì)于關(guān)鍵字值序列(12,13,11,18,60,15,7,18,25,100)
A.100B.12C.60D.15
6.有以下程序:#include<stdio.h>main(){FILE*fp;inta[10]={1,2,3},i,n;fp=fopen(“d1.dat”,“w”);for(i=0;i<3;i++)fprintf(fp,“%d”,a[i]);fprintf(fp,“\n”);fclose(fp);fp=fopen(“d1.dat”,“r”);fscanf(fp,“%d”,&n);fclose(fp);printf(“%d\n”,n);}程序的運(yùn)行結(jié)果是()。
A.321B.12300C.1D.123
7.若變量已正確定義,在“if(W)Printf(“%d\n”,k);”中,以下不可替代W的是()。
A.a<>b+cB.ch=getchar()C.a==b+cD.a++
8.
9.
10.有以下程序:#include<stdio.h>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);}程序的運(yùn)行結(jié)果是()。
A.55B.50C.45D.60
11.結(jié)構(gòu)化程序所要求的基本結(jié)構(gòu)不包括A.順序結(jié)構(gòu)B.GOTO跳轉(zhuǎn)C.選擇(分支)結(jié)構(gòu)D.重復(fù)(循環(huán))結(jié)構(gòu)
12.若有下列定義(設(shè)int類型變量占2個(gè)字節(jié)):
inti=8;
則下列語(yǔ)句:
printf("i=%08d",i);
輸出的結(jié)果是()。A.A.i=8B.i=00000008C.i=08D.8
二、2.填空題(12題)13.軟件工程研究的內(nèi)容主要包括:【】技術(shù)和軟件工程管理。
14.在軟件維護(hù)時(shí),對(duì)測(cè)試階段未發(fā)現(xiàn)的錯(cuò)誤進(jìn)行測(cè)試、診斷、定位、糾錯(cuò)直至回歸測(cè)試的過(guò)程稱為【】。
15.在樹(shù)形結(jié)構(gòu)中,沒(méi)有前件的結(jié)點(diǎn)是()。
16.已有文本文件test.txt,其中的內(nèi)容為:Hello,everyone!。以下程序中,文件test.txt已正確為“讀”而打開(kāi),由此文件指針fr指向該文件,則程序的輸出結(jié)果是【】。
#include<stdio.h>
main()
{FILE*fr;charstr[40];
…
fgets(str,5,fr);
printf("%s\n",str);
felose(fr);
}
17.在面向?qū)ο蠓椒ㄖ校尽棵枋龅氖蔷哂邢嗨茖傩耘c操作的一組對(duì)象。
18.下列程序段的輸出結(jié)果是【】。
main()
{charb[]="Hello,you";
b[5]=0;
printf("%s\n",B);
}
19.設(shè)函數(shù)findbig已定義為求3個(gè)數(shù)中的最大值,以下程序?qū)⒗煤瘮?shù)指針調(diào)用findbig函數(shù)。請(qǐng)?zhí)羁铡?/p>
main()
{intfindbig(int,int,int);
int(*f)(),x,y,z,big;
f=【】。
scanf("%d%d%d",&x,&y,&z);
big=(*f)(x,y,z);
printf("big=%d\n",big);
}
20.一般來(lái)說(shuō),數(shù)據(jù)庫(kù)的設(shè)計(jì)過(guò)程要經(jīng)歷3個(gè)大的階段,即可行性分析與研究階段、系統(tǒng)設(shè)計(jì)階段、設(shè)計(jì)實(shí)施與系統(tǒng)運(yùn)行階段。概念設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)、物理結(jié)構(gòu)設(shè)計(jì)屬于數(shù)據(jù)庫(kù)設(shè)計(jì)的【】階段。
21.在結(jié)構(gòu)化設(shè)計(jì)方法中,數(shù)據(jù)流圖表達(dá)了問(wèn)題中的數(shù)據(jù)流與加工間的關(guān)系,并且每一個(gè)______實(shí)際上對(duì)應(yīng)一個(gè)處理模塊。
22.表示""整數(shù)x的絕對(duì)值大于5""時(shí)值為""真""的C語(yǔ)言表達(dá)式是【】。
23.以下程序的輸出結(jié)果是【】。
doublesub(doublex,doubley,doublez)
{y-=1.0;
z=z+x;
returnz;
}
main()
{doublea=2.5,b=9.0;
printf("functionrunningresultis:%6.1f\n",sub(b-a,a,A));
}
24.“printf("%d\n",strlen("\t\"\023\xABC\n"));”語(yǔ)句的輸出結(jié)果是______。
三、3.程序設(shè)計(jì)題(10題)25.編寫(xiě)一個(gè)函數(shù),從num個(gè)字符串中找出最長(zhǎng)的一個(gè)字符串,并通過(guò)形參指針max傳回該串地址。(注意:主函數(shù)中用¨¨作為結(jié)束輸入的標(biāo)志。)
注意:部分源程序在文件PROGl.C中。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。
26.程序定義了NxN的二維數(shù)組,并在主函數(shù)中自動(dòng)賦值。請(qǐng)編寫(xiě)函數(shù)fun,函數(shù)的功能是:使數(shù)組右上三角元素中的值乘以m。
例如:若m的值為2,a數(shù)組中的值為:
注意:部分源程序存在文件PROGl.C文件中。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。
27.程序定義了N×N的二維數(shù)組,并在主函數(shù)中自動(dòng)賦值。
請(qǐng)編寫(xiě)函數(shù)fun(inta[][N],intn),該函數(shù)的功能是使數(shù)組左下半三角元素中的值加上n。
例如:若n的值為3,a數(shù)組中的值為
a=254
169
537
則返回主程序后a數(shù)組中的值應(yīng)為
554
499
8610
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)full的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。
試題程序:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#defineN5
fun(inta[][N],intn)
{
}
main()
{
inta[N][N],n,i,j;
clrscr();
printf("*****Thearray*****\n");
for(i=0;i<N;i++)
/*產(chǎn)生—個(gè)隨機(jī)5*5矩陣*/
{
for(j=0;j<N;j++)
{
a[i][j]=rand()%10;
printf("%4d",a[i][j]);
}
printf("\n");
}
do
n=rand()%10;
/*產(chǎn)生一個(gè)小于5的隨機(jī)數(shù)n*/
while(n>=5);
printf("n=%4d\n",n);
fun(a,n);
printf("*****THERESULT*****\n");
for(i=0;i<N;i++)
{
for(j=0;j<N;i++)
printf("%4d",a[i][j]);
printf("\n");
}
}
28.請(qǐng)編寫(xiě)一個(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)中填入所編寫(xiě)的若干語(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");
}
29.假定輸入的字符串中只包含字母和*號(hào)。請(qǐng)編寫(xiě)函數(shù)fun(),它的功能是:將字符串中的前導(dǎo)*號(hào)全部刪除,中間和后面的*號(hào)不刪除。
例如,若字符串中的內(nèi)容為****A*BC*DEF*G*******,刪除后,字符串中的內(nèi)容則應(yīng)當(dāng)是A*BC*DEF*G*******。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。
試題程序;
#include<stdio.h>
#include<conio.h>
voidfun(char*a)
{
}
main()
{
chars[81];
printf("Enterastring:\n");
gets(s);
fun(s);
printf("Thestringafterdeleted:\n");
puts(s);
}
30.學(xué)生的記錄由學(xué)號(hào)和成績(jī)組成,N名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組s中,請(qǐng)編寫(xiě)函數(shù)fun,它的功能是:把分?jǐn)?shù)最低的學(xué)生數(shù)據(jù)放在b所指的數(shù)組中,注意:分?jǐn)?shù)最低的學(xué)生可能不止一個(gè),函數(shù)返回分?jǐn)?shù)最低的學(xué)生的人數(shù)。
注意:部分源程序在文件PROGl.C文件中。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。
31.請(qǐng)編寫(xiě)函數(shù)fun(),其功能是:將s所指字符串中除了下標(biāo)為偶數(shù)、同時(shí)ASCII碼值為奇數(shù)的字符之外,其余的所有字符都刪除,串中剩余字符所形成的一個(gè)新串放在t所指的數(shù)組中。
例如,若s所指字符串中的內(nèi)容為ABCDEFG12345,其中字符B的ASCII碼值為偶數(shù),所在元素的下標(biāo)為奇數(shù),因此必須刪除;而字符A的ASCII碼值為奇數(shù),所在數(shù)組中的下標(biāo)為偶數(shù),因此不應(yīng)當(dāng)刪除,其他依次類推。最后t所指的數(shù)組中的內(nèi)容應(yīng)是ACEG。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫(xiě)的若干語(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);
}
32.編寫(xiě)函數(shù)fun(),它的功能是;根據(jù)以下公式求p的值,結(jié)果由函數(shù)值帶回。m與n為兩個(gè)正數(shù)且要求m>n。
P=m!/n!(m-n)!),例如:m=12,n=8時(shí),運(yùn)行結(jié)果為495.000000。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。
試題程序:
#include<conio.h>
#include<stdio.h>
floatfun(intm,intn)
{
}
main()
{
clrscr();
printf("p=%f\n",fun(12,8));
}
33.請(qǐng)編寫(xiě)一個(gè)函數(shù)voidfun(intm,intk,intxx[]),該函數(shù)的功能是將大于整數(shù)m且緊靠m的k個(gè)非素?cái)?shù)存入所指的數(shù)組中。
例如,若輸入15,5,則應(yīng)輸出16,18,20,21,22。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。
試題程序:
#include<conio.h>
#include<stdio.h>
voidfun(intm,intk,intxx[])
{
}
main()
{
intm,n,zz[1000];
clrscr();
printf("\nPleaseentertwointegers:");
scanf("%d%d",&m,&n);
fun(m,n,zz);
for(m=0;m<n;m++)
printf("%d",zz[m]);
printf("\n");
}
34.m個(gè)人的成績(jī)存放在score數(shù)組中,請(qǐng)編寫(xiě)函數(shù)fun(),它的功能是將高于平均分的人數(shù)作為函數(shù)值返回,將高于平均分的分?jǐn)?shù)放在叩所指的數(shù)組中。
例如,當(dāng)score數(shù)組中的數(shù)據(jù)為24,35,88,76,90,54,59,66,96時(shí),函數(shù)返回的人數(shù)應(yīng)該是5,up中的數(shù)據(jù)應(yīng)為88,76,90,66,96。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。
試題程序:
#include<conio.h>
#include<stdio.h>
#include<string.h>
intfun(intscore[],intm,intup[])
{
}
main()
{
inti,n,up[9];
intscore[9]={24,35,88,76,90,54,
59,66,96};
clrscr();
n=fun(score,9,up);
printf("\nuptotheaveragescoreare:");
for(i=0;i<n;i++)
printf("%d",up[i]);
}
四、單選題(0題)35.設(shè)x、y、z、t均為int型變量,則執(zhí)行以下語(yǔ)句后,t的值是()x=y(tǒng)=z=l;t=++x||++y&&++z;
A.不定值B.2C.1D.0
五、單選題(0題)36.以下函數(shù)的時(shí)間復(fù)雜度和空間復(fù)雜度為()A.T(n)=O(2^n),S(n)=O(n)
B.T(n)=O(1),S(n)=O(1)
C.T(n)=O(2^n),S(n)=O(1)
D.T(n)=O(n),S(n)=O(n)
六、單選題(0題)37.折半查找的時(shí)間復(fù)雜性為()
A.O(n2)B.O(n)C.O(nlogn)D.O(logn)
參考答案
1.C
2.B
3.D
4.C
5.C
6.D程序首先將數(shù)組a中的元素1、2、3分別寫(xiě)入了d1.dat文件中,再將d1.dat文件中的數(shù)據(jù)“123”整體寫(xiě)到變量n的空間中,所以輸出的數(shù)據(jù)為123。故本題答案為D選項(xiàng)。
7.A選項(xiàng)A是非法的表達(dá)式,C語(yǔ)言中沒(méi)有“<>”運(yùn)算符。故本題答案為A選項(xiàng)。
8.A
9.B
10.D靜態(tài)變量是始終存在的,當(dāng)函數(shù)變量退出后,靜態(tài)變量會(huì)保存數(shù)據(jù),再次調(diào)用該函數(shù)時(shí),以前的靜態(tài)變量值仍然保留著。fun(a,5)的值是15,再次調(diào)用后sum=15,所以fun(b,4)=45,s=45+15=60。故本題答案為D選項(xiàng)。
11.BB【解析】1966年Boehm和JaCopini證明了程序設(shè)計(jì)語(yǔ)言僅僅使用順序、選擇和重復(fù)三種基本控制結(jié)構(gòu)就足以表達(dá)出各種其他形式結(jié)構(gòu)的程序設(shè)計(jì)方法。
12.B解析:本題考查printf函數(shù)的格式?!?08”格式符中的“0”表示在指定數(shù)據(jù)輸出寬度的同時(shí),在數(shù)據(jù)前面的多余空格處加“0”;“8”表示指定數(shù)據(jù)的輸出寬度為8位。
13.軟件開(kāi)發(fā)
14.校正性維護(hù)校正性維護(hù)
15.根結(jié)點(diǎn)根結(jié)點(diǎn)
16.HellHell解析:文件的字符串讀寫(xiě)函數(shù)fgets()有3個(gè)參數(shù),第三個(gè)參數(shù)是文件指針指向要讀取數(shù)據(jù)的文件,第二個(gè)參數(shù)是一個(gè)整數(shù)(假設(shè)為n),表示從文件中讀取n-1個(gè)字符并在其后加一個(gè)'0',第一個(gè)參數(shù)為存放讀取的字符串的內(nèi)存區(qū)的起始地址,讀取得數(shù)據(jù)保存在其中。可見(jiàn)本題的輸出結(jié)果為:Hell。
17.類類解析:在面向?qū)ο蠓椒ㄖ校惷枋龅氖蔷哂邢嗨茖傩耘c操作的一組對(duì)象。
18.HelloHello解析:字符串中,數(shù)值0或符號(hào)'/0'表示字符串的結(jié)束。本題中,b[5]被賦了0值,表明字符串b的第六個(gè)字符就是結(jié)束標(biāo)志。因此,只輸出前五個(gè)字符,即Hello。
19.findbigfindbig解析:f是指向函數(shù)的指針變量,根據(jù)題意要求,空格處應(yīng)填入findbig。
本題目考查:C語(yǔ)言中指向函數(shù)的指針變量定義的一般形式為;
數(shù)據(jù)類型標(biāo)識(shí)符(*指針變量名)();
“數(shù)據(jù)類型標(biāo)識(shí)符”表示函數(shù)返回值的類型。
函數(shù)的調(diào)用可以通過(guò)函數(shù)名調(diào)用,也可以通過(guò)函數(shù)指針調(diào)用。在給函數(shù)指針變量賦值時(shí),只需給出函數(shù)名而不必給出參數(shù)。(*p)()表示定義一個(gè)指向函數(shù)的指針變量,專門(mén)用來(lái)存放函數(shù)的入口地址,可以先后指向不同的指針變量。用函數(shù)指針調(diào)用函數(shù)時(shí),只需要將(*p)代替函數(shù)名即可,在(*p)之后的括號(hào)中,根據(jù)需要寫(xiě)上參數(shù)。
20.系統(tǒng)設(shè)計(jì)系統(tǒng)設(shè)計(jì)解析:系統(tǒng)設(shè)計(jì)階段是系統(tǒng)的具體設(shè)計(jì)過(guò)程,主要包括概念設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)、物理結(jié)構(gòu)設(shè)計(jì)3個(gè)步驟。這3個(gè)不同層次上的設(shè)計(jì)過(guò)程,是把實(shí)體以及相互之間的聯(lián)系轉(zhuǎn)換為“數(shù)據(jù)”并落實(shí)于計(jì)算機(jī)中。
21.加工加工解析:數(shù)據(jù)流圖是從數(shù)據(jù)傳遞和加工的角度,來(lái)刻畫(huà)數(shù)據(jù)流從輸入到輸出的移動(dòng)變換過(guò)程。其中的每一個(gè)加工對(duì)應(yīng)一個(gè)處理模塊。
22.x>5||x<-5x<-5或x<-5||x>5x>5||x<-5,x<-5或x<-5||x>5解析:要使整數(shù)x的絕對(duì)值大于5,則x大于5或x小于5,用C語(yǔ)言表示即為:x>5||x<-5或者x<-5||x>5。故本題答案為;x>5||x<-5或者x<-5||x>5。
23.functionrunningresultis:9.0
24.66解析:strlen()函數(shù)的作用是計(jì)算字符串的長(zhǎng)度并作為函數(shù)的返回值,這里的長(zhǎng)度不包括串尾的結(jié)束標(biāo)志\'\\0\'。
\'\\t\'是轉(zhuǎn)義字符,代表橫向跳若干格:\'\\\''是轉(zhuǎn)義字符,代表雙引號(hào):\'\\023\'只代表一個(gè)字符,而不管轉(zhuǎn)義字符后面有幾個(gè)字符;\'\\xAB\'是以兩位+六進(jìn)制數(shù)AB表示的ASCII碼字符,只代表一個(gè)字符;\'\\n\'是轉(zhuǎn)義字符,代表回車換行。
5個(gè)字符常量各代表一個(gè)字符,再加上字母C,所以返回的長(zhǎng)度是6。
25.
解析:該程序功能是找出最長(zhǎng)的一個(gè)字符串。解題思路,首先指定第一個(gè)字符串為長(zhǎng)度最大的字符串,然后在循環(huán)過(guò)程中將其與其他的所有串的長(zhǎng)度進(jìn)行比較,求出最長(zhǎng)的串。
26.
解析:該程序功能是使數(shù)組右上半三角元素中的值乘以m。本題中首先要確定右上角半角元素的特點(diǎn),然后對(duì)元素逐個(gè)進(jìn)行乘以m的操作。其中,右上角的元素是行下標(biāo)小于等于列下標(biāo)的元素。
27.fun(inta[][N]intn){intij;for(i=0;i<N;i++)for(j=0;j<i;j++)a[i][j]=a[i][j]+n/*使數(shù)組左下半三角元素中的值加上n*/}fun(inta[][N],intn)\r\n{\r\ninti,j;\r\nfor(i=0;i<N;i++)\r\nfor(j=0;j<i;j++)\r\na[i][j]=a[i][j]+n/*使數(shù)組左下半三角元素中的值加上n*/\r\n}解析:首先從數(shù)組中找出要被加上n的那部分元素,找的過(guò)程其實(shí)就是找出將被挑出的那部分元素在原數(shù)組中的分布規(guī)律的過(guò)程。通過(guò)觀察得出,要被處理的那部分元素的下標(biāo)值的范圍是每行中從第一個(gè)元素開(kāi)始,直到列數(shù)等于該行行數(shù)時(shí)為止。找到這個(gè)規(guī)律后,依次從數(shù)組中取得合乎要求的元素,然后再加上n。
28.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è)小寫(xiě)字母減去'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è)小寫(xiě)字\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è)小寫(xiě)字母減去'a'后所得結(jié)果正好是它對(duì)應(yīng)的下標(biāo),所以就有了pp[*tt-'a']++。但*tt必須是小寫(xiě)字母即if()不應(yīng)省略。
29.voidfun(char*a){char*p=a;while(*P==‘+’)p++;/*指針p指向字符串第一個(gè)字母*/for(;*p!=‘\0’;p++a++)*a=*p;/*從第—個(gè)字母開(kāi)始其后的字符都放入指針a所指的字符串中*/*a=‘\0’;/*在字符串最后加上結(jié)束標(biāo)記符*/}voidfun(char*a)\r\n{\r\nchar*p=a;\r\nwhile(*P==‘+’)p++;/*指針p指向字符串第一個(gè)字母*/\r\nfor(;*p!=‘\\0’;p++,a++)\r\n*a=*p;/*從第—個(gè)字母開(kāi)始,其后的字符都放入指針a所指的字符串中*/\r\n*a=‘\\0’;/*在字符串最后加上結(jié)束標(biāo)記符*/\r\n}解析:在前面的改錯(cuò)題和編程題中,相關(guān)試題已經(jīng)出現(xiàn)好多次了,我們?cè)诖颂峁┝硪环N解答方法。
#include<string.h>
voidfun(char*a)
{char*p=a;
while(*p==‘*’)p++;
strcpy(a,p);
}
30.
解析:該程序功能是把分?jǐn)?shù)最低的學(xué)生數(shù)據(jù)放在b所指的數(shù)組中。本題是關(guān)于求解結(jié)構(gòu)體中某些成員的最小值,首先將第一個(gè)值設(shè)定為最小值,并在循環(huán)中將其他所有值與該值進(jìn)行比較,求得最小值。然后將最小值與所有值進(jìn)行比較,求得所有的最小值。
31.voidfun(char*s/chart[]){intij=0;for(i=0;s[i]!='\0';i++){if(i%2==0&&s[i]%2!=0)t[j++]=s[i];}/*將下標(biāo)為偶數(shù)同時(shí)ASCII碼值為奇數(shù)的字符放入數(shù)組t中*/t[j]='\0';/*在字符串最后加上結(jié)束標(biāo)志位*/}voidfun(char*s/chart[])\r\n{inti,j=0;\r\nfor(i=0;s[i]!='\\0';i++)\r\n{if(i%2==0&&s[i]%2!=0)\r\nt[j++]=s[i];}/*將下標(biāo)為偶數(shù)同時(shí)ASCII碼值為奇數(shù)的字符放入數(shù)組t中*/\r\nt[j]='\\0';/*在字符串最后加上結(jié)束標(biāo)志位*/\r\n}解析:本題要求除了下標(biāo)為偶數(shù)同時(shí)ASCII碼值為奇數(shù)的字符之外,其他字符都刪除。即要留下下標(biāo)為偶數(shù)同時(shí)ASCII碼值為奇數(shù)的字符。所以,在if的條件語(yǔ)句中應(yīng)使用if(i%2==0&&s[i]%2!=0)。
32.floatfun(intmintn){inti;doublep=1.0;for(i=1;i<=m;i++)p=p*i;/*求m!*/for(i=1;i<=n;i++)p=p/i;/*求m!/n!*/for(i=1;i<=m-n;i++)p=p/i;/*求m!/(n!(m-n)!)*/returnp;}floatfun(intm,intn)\r\n{\r\ninti;\r\ndoublep=1.0;\r\nfor(i=1;i<=m;i++)p=p*i;/*求m!*/\r\nfor(i=1;i<=n;i++)p=p/i;/*
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度林權(quán)抵押貸款合同糾紛證據(jù)收集與運(yùn)用合同4篇
- 二零二五年度林權(quán)交易與林業(yè)資源開(kāi)發(fā)合作協(xié)議4篇
- 2025這樣的勞動(dòng)合同條款是否合法
- 2025年度消防工程監(jiān)理服務(wù)合同范本6篇
- 2025-2030年(全新版)中國(guó)海鮮行業(yè)運(yùn)行動(dòng)態(tài)及投資發(fā)展前景預(yù)測(cè)報(bào)告
- 2025-2030年中國(guó)高低壓配電柜市場(chǎng)發(fā)展現(xiàn)狀及投資前景規(guī)劃研究報(bào)告新版
- 2025-2030年中國(guó)順式1,4丁烯二醇行業(yè)發(fā)展趨勢(shì)展望與投資策略分析報(bào)告
- 2025-2030年中國(guó)門(mén)式腳手架市場(chǎng)前景規(guī)模及發(fā)展趨勢(shì)預(yù)測(cè)報(bào)告
- 2025-2030年中國(guó)鋅系常溫磷化液行業(yè)運(yùn)行動(dòng)態(tài)與發(fā)展戰(zhàn)略分析報(bào)告
- 2025-2030年中國(guó)鋁鎂合金市場(chǎng)發(fā)展?fàn)顩r及投資前景規(guī)劃研究報(bào)告
- 餐飲行業(yè)智慧餐廳管理系統(tǒng)方案
- 2025年度生物醫(yī)藥技術(shù)研發(fā)與許可協(xié)議3篇
- 國(guó)家開(kāi)發(fā)銀行
- 超分子化學(xué)-第三章 陰離子的絡(luò)合主體
- 控制變量法教學(xué)課件
- 血壓計(jì)保養(yǎng)記錄表
- 食品的售后服務(wù)承諾書(shū)范本范文(通用3篇)
- 新外研版九年級(jí)上冊(cè)(初三)英語(yǔ)全冊(cè)教學(xué)課件PPT
- 初中中考英語(yǔ)總復(fù)習(xí)《代詞動(dòng)詞連詞數(shù)詞》思維導(dǎo)圖
- 植物和五行關(guān)系解說(shuō)
- 因式分解法提公因式法公式法
評(píng)論
0/150
提交評(píng)論