2022年江西省九江市全國計算機(jī)等級考試C語言程序設(shè)計真題一卷(含答案)_第1頁
2022年江西省九江市全國計算機(jī)等級考試C語言程序設(shè)計真題一卷(含答案)_第2頁
2022年江西省九江市全國計算機(jī)等級考試C語言程序設(shè)計真題一卷(含答案)_第3頁
2022年江西省九江市全國計算機(jī)等級考試C語言程序設(shè)計真題一卷(含答案)_第4頁
2022年江西省九江市全國計算機(jī)等級考試C語言程序設(shè)計真題一卷(含答案)_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2022年江西省九江市全國計算機(jī)等級考試C語言程序設(shè)計真題一卷(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(12題)1.設(shè)以下變量均為int類型,則值不等于7的表達(dá)式是()。

A.(x=y=6,x+y,x+1)

B.(x=y=6,x+y,y+1)

C.(x=6,x+1,y=6,x+y)

D.(y=6,y+l,x=y,x+1)

2.有以下程序:#include<stdio.h>#include<string.h>main(){charstr[][20]={“One*World”,“One*Dream!”},*p=str[1];printf(“%d,”,strlen(p));printf(“%s\n”,p);}程序運(yùn)行后的輸出結(jié)果是()。

A.10,One*Dream!

B.9,One*Dream!

C.9,One*World

D.10,One*World

3.二進(jìn)制數(shù)1110111.11轉(zhuǎn)換成十進(jìn)制數(shù)是()。

A.119.375B.119.75C.119.125D.119.3

4.有以下程序:main(){intm=3,n=4,x;x=-m++;x=x+8/++n;printf("%d\n",x);}程序運(yùn)行后的輸出結(jié)果是______。

A.3B.5C.-1D.-216

5.棧和隊列的共同點是()。

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

6.

7.

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

A.C語言程序必須要有return語句

B.C語言程序中,要調(diào)用的函數(shù)必須在main()函數(shù)中定義

C.C語言程序中,只有int類型的函數(shù)可以未經(jīng)聲明而出現(xiàn)在調(diào)用之后

D.C語言程序中,main()函數(shù)必須放在程序開始的部分

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

A.m=4

B.m=2

C.m=6

D.m=5

10.C語言中運(yùn)算對象必須是整型的運(yùn)算符是()。

A.%=B./C.=D.<=

11.若有定義"int(*pt)[3];",則下列說法正確的是()。

A.定義了基類型為int的三個指針變量

B.定義了基類型為int的具有三個元素的指針數(shù)組pt

C.定義了一個名為*pt、具有三個元素的整型數(shù)組

D.定義了一個名為pt的指針變量,它可以指向每行有三個整數(shù)元素的二維數(shù)組

12.數(shù)據(jù)庫DB、數(shù)據(jù)庫系統(tǒng)DBS、數(shù)據(jù)庫管理系統(tǒng)DBMS之間的關(guān)系是()。

A.DB包括DBS和DBMSB.DBMS包括DB和DBSC.DBS包括DB和DBMSD.沒有任何關(guān)系

二、2.填空題(12題)13.下面程序的功能是:計算1~10之間奇數(shù)和及偶數(shù)之和。

#include<stdio.h>

main()

{inta,b,c,i;

a=c=O;

for(i=O;i<=10;i+=2)

{a+=i;

【】;

c+=b;

}

printf("偶數(shù)之和=%d\n",a);

printf("奇數(shù)之和=%d\n",c-11);

}

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

intmystrlen(char*str)

{inti;

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

return(【】);

}

15.下面程序的功能是:將字符數(shù)組a中下標(biāo)值為偶數(shù)的元素從小到大排列,其他元素不變。請?zhí)羁铡?/p>

#include<stdio.h>

#include<string.h>

main()

{chara[]="clanguage",t;

inti,j,k;

k=strlen(a);

for(i=0;i<=k-2;i+=2)

for(j=i+2;j<=k;j+=2;)

if(【】)

{t=a[i];a[i]=a[j];a[j]=t;}

puts(a);

printf("\n");

}

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

#include<stdio.h>

main()

{intfun();

fun();

}

fun()

{staticinta[4]={1,2,3,4};

inti;

for(i=0;i<4;i++)a[i]+=a[i];

for(i=0;i<4;i++)printf("%d,",a[i]);

printf"\n");

}

17.當(dāng)循環(huán)隊列非空且隊尾指針等于隊頭指針時,說明循環(huán)隊列已滿,不能進(jìn)行人隊運(yùn)算。這種情況稱為【】。

18.C語言程序的注釋可以出現(xiàn)在程序中的任何地方,一個注釋以【】分別作為開始和結(jié)束。

19.以下程序中給指針p分配3個double型動態(tài)內(nèi)存單元,請?zhí)羁铡?/p>

#include<stdio.h>

main()

{double*p;

p=(double*)malloc((【】);

p[0]=1.5;p[1]=2.5;p[2]=3.5;

printf("%f%f%f\n",p[0],p[1],p[2]);

}

20.語句:x++;、++x;、x=x+1;、x=1+x;,執(zhí)行后都使變量x中的值增1,請寫出一條同一功能的賦值語句(不得與列舉的相同)【】。

21.函數(shù)pi的功能是根據(jù)以下公式近似求得的:

pi*pi/6=1+1/(2*2)+1/(3.3)+...+1/(n*n)

請在下面的函數(shù)中天空,完成求pi的功能。

#include<math.h>

doublepi(longn)

{doubles=0.0,longi;

for(i=1;i<<=n;i++)s=s+【】;

return(sqrt(6*s));

}

22.若已知a=10,b=20,則表達(dá)式!a<b的值為【】。

23.若定義#definePI3.14159,則執(zhí)行完下列程序后輸出結(jié)果是______。

#definePI3.14159;printf("PI=%f",PI);

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

intm=17;

intfun(intx,inty)

{intm=3;

return(x*Y-m);

}

main()

{inta=5,b=7;

printf("%d\n",fun(a,B)/m);

}

三、3.程序設(shè)計題(10題)25.請編寫函數(shù)fun,函數(shù)的功能是:刪去一維數(shù)組中所有相同的數(shù),使之只剩一個。數(shù)組中的數(shù)已按由小到大的順序排列,函數(shù)返回刪除后數(shù)組中數(shù)據(jù)的個數(shù)。

例如,一維數(shù)組中的數(shù)據(jù)是:2223445666677899101010。

刪除后,數(shù)組中的內(nèi)容應(yīng)該是:2345678910。

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

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

26.請編寫函數(shù)fun(),其功能是:計算并輸出給定10個數(shù)的方差。

其中

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

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

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

試題程序:

#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);

}

27.請編寫一個函數(shù)intfun(int*s,intt,int*k),用來求出數(shù)組的最小元素在數(shù)組中的下標(biāo)并存放在k所指的存儲單元中。

例如,輸入如下整數(shù):

234345753134436458100321135760

則輸出結(jié)果為6,100。

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

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

試題程序:

#include<conio.h>

#include<stdio.h>

intfun(int*s,intt,int*k)

{

}

main()

{

inta[10]={234,345,753,134,436,458,

100,321,

135,760),k;

clrscr();

fun(a,10,&k);

printf("%dr%d\n",k,a[k]);

}

28.請編寫函數(shù)fun,其功能是:計算并輸出下列多項式的值:

例如,在主函數(shù)中從鍵盤給n輸入50后,輸出為:s=1.718282。

注意:要求n的值大于1但不大于100。部分源程序在文件PROGl.C中。

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

29.假定輸入的字符串中只包含字母和*號。請編寫函數(shù)fun,它的功能是:只刪除字符串前導(dǎo)和尾部的*號,串中字母之間的*號都不刪除。形參n給出了字符串的長度,形參h給出了字符串中前導(dǎo)*號的個數(shù),形參e給出了字符串中最后*號的個數(shù)。在編寫函數(shù)時,不得使用C語言提供的字符串函數(shù)。

例如,字符串中的內(nèi)容為:****A*BC*DEF*G*******,刪除后,字符串中的內(nèi)容應(yīng)當(dāng)是:A*BC*DEF*G。

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

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

30.請編寫一個函數(shù)fun(),它的功能是:求出1到m(含m)之內(nèi)能被7或11整除的所有整數(shù)放在數(shù)組a中,通過n返回這些數(shù)的個數(shù)。

例如,若傳給m的值為50,則程序輸出:

7111421X283335424449

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

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

試題程序:

#include<conio.h>

#include<stdio.h>

#defineM100

voidfun(intm,int*a,int*n)

{

}

main()

{

intaa[M],n,k;

clrscr();

fun(50,aa,&n);

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

if((k+1)%20==0)/*每行輸出20個數(shù)*/

{printf("%4d",aa[k]);

printf("\n");

}

else

printf("%4d",aa[k]);

printf("\n");

}

31.請編寫函數(shù)fun(),該函數(shù)的功能是:刪去一維數(shù)組中所有相同的數(shù),使之只剩一個。數(shù)組中的數(shù)已按由小到大的順序排列,函數(shù)返回刪除后數(shù)組中數(shù)據(jù)的個數(shù)。

例如,若一維數(shù)組中的數(shù)據(jù)是:

2223445666677899101010

刪除后,數(shù)組中的內(nèi)容應(yīng)該是:

2345678910。

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

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

試題程序:

#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");

}

32.假定輸入的字符串中只包含字母和*號。請編寫函數(shù)fun(),它的功能是:將字符串中的前導(dǎo)*號全部刪除,中間和后面的*號不刪除。

例如,若字符串中的內(nèi)容為****A*BC*DEF*G*******,刪除后,字符串中的內(nèi)容則應(yīng)當(dāng)是A*BC*DEF*G*******。

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

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

試題程序;

#include<stdio.h>

#include<conio.h>

voidfun(char*a)

{

}

main()

{

chars[81];

printf("Enterastring:\n");

gets(s);

fun(s);

printf("Thestringafterdeleted:\n");

puts(s);

}

33.請編一個函數(shù)voidfun(inttt[M][N],intpp[N],tt指向一個M行N列的二維數(shù)組,求出二維數(shù)組每列中最大元素,并依次放入pp所指的一維數(shù)組中。二維數(shù)組中的數(shù)已在主函數(shù)中給出。

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

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

試題程序:

#include<conio.h>

#include<stdio.h>

#defineM3

#defineN4

voidfun(inttt[M][N],intpp[N])

{

}

main()

{

intt[M][N]={{68,32,54,12},{14,24,88,

58},{42,22,44,56}};

intp[N],i,j,k;

clrscr();

printf("Theriginaldatais:\n");

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

{

for(j=0;j<N;j++)

printf("%6d",t[i][j]);

printf("\n");

}

fun(t,p);

printf("\nTheresultis:\n");

for(k=0;k<N;k++)

printf("%4d",p[k]);

printf("\n");

}

34.假定輸入的字符串中只包含字母和*號。請編寫函數(shù)fun(),它的功能是:將字符串尾部的*號全部刪除,前面和中間的*號不刪除。

例如,若字符串中的內(nèi)容為****A*BC*DEF*G*******刪除后,字符串中的內(nèi)容則應(yīng)當(dāng)是****A*BC*DEF*G。

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

請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)6ln的花括號中填入所編寫的若干語句。

試題程序:

#include<stdio,h>

#include<conio.h>

voidfun(char*a)

{

}

main()

{

chars[81];

printf("Enterastring:\n");

gets(s);

fun(s);

printf("Thestringafterdeleted:\n");

puts(s);

}

四、單選題(0題)35.有以下程序

#include<stdio.h>

intfun()

{staticintx=1;

x*2;returnx;

}

main()

{inti,s=1,

for(i=1;i<=2;i++)s=fun();

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

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

五、單選題(0題)36.以下函數(shù)不能用于向文件中寫入數(shù)據(jù)的是()。

A.hellB.fwriteC.fputcD.fprintf

六、單選題(0題)37.有以下程序:#include<stdio.h>main{intx=4,y;do{y=x;if(!y)printf(“x”);elseprintf(“y”):x--;}while(x);}程序的輸出結(jié)果是()。A.xyyxB.yyyyC.yyxxD.yxyx

參考答案

1.C

2.A函數(shù)“strlen(char*s)”;計算字符串s的長度,不包括‘\\0’在內(nèi)。p指向數(shù)組的第2個元素,因此“Strien(P)=10”,并輸出“one*Dream!”。故本題答案為A選項。

3.B

4.D解析:本題主要考查++執(zhí)行的次序。執(zhí)行過x=-m++;后,x=-3,m=4;執(zhí)行x=x+8/++n;時8/++n=1;因此最后x=-216。

5.C解析:棧和隊列都是一種特殊的操作受限的線性表,只允許在端點處進(jìn)行插入和刪除。二者的區(qū)別是:棧只允許在表的一端進(jìn)行插入或刪除操作,是一種“后進(jìn)先出”(或“先進(jìn)后出”)的線性表;而隊列只允許在表的一端進(jìn)行插入操作,在另一端:進(jìn)行刪除操作,是一種“先進(jìn)先出”(或“后進(jìn)后出”)的線性表。因此棧和隊列的共同點是只允許在端點處插入和刪除元素。

6.C

7.D

8.C

9.C[解析]第一次外循環(huán)的值為1.第一次內(nèi)循環(huán)的值為3.不滿足條件執(zhí)行m*=j即m的值為3;第二次的值為2.不滿足條件執(zhí)行m*=*j,即m的值為6;第三次的值為1.不滿足條件執(zhí)行m*=j,即m的值仍為6.第二次外循環(huán)的值為2.j的值為3.滿足條件,執(zhí)行break語句,跳出循環(huán)。

10.A解析:C++語言規(guī)定:取余運(yùn)算符的運(yùn)算對象必須是整型,復(fù)合運(yùn)算符“%=”中包含%運(yùn)算,它的運(yùn)算對象也必須是整型。

11.D\n數(shù)組指針是指向數(shù)組的一個指針,int(*pt)[3]表示一個指向3個int元素的數(shù)組的一個指針。

\n

12.CC?!窘馕觥繑?shù)據(jù)庫系統(tǒng)(DBS)由數(shù)據(jù)庫(DBS)、數(shù)據(jù)庫管理系統(tǒng)(DBMS)、數(shù)據(jù)庫管理員、硬件平臺和軟件平臺五個部分組成,可見DB和DBMS都是DBS的組成部分。

13.b=i+1

14.str[i]或str+iistr[i]或str+i\r\ni

15.a[i]>a[j]a[i]>a[j]解析:本題中的嵌套的循環(huán)結(jié)構(gòu)用在了數(shù)組元素的排序上。本題需要注意的一點是:由于題目只要求將下標(biāo)值為偶數(shù)的元素從小到大排序,所以內(nèi)外層for循環(huán)的條件變量變更條件都是+=2。最后通過條件a[i]>a[j]對元素大小進(jìn)行判斷并交換。

16.24682,4,6,8解析:子函數(shù)fun()的功能是將數(shù)組a中的元素都自加一遍,然后仍然將結(jié)果存在原數(shù)組中,其實就是將數(shù)組a的每個元素都變?yōu)樵瓉淼?倍,然后輸出。在主程序中首先通過intfun()定義了子函數(shù)fun(),然后再調(diào)用fun()。

17.上溢上溢解析:入隊運(yùn)算是指在循環(huán)隊列的隊尾加入一個新元素。這個運(yùn)算有兩個基本操作:首先將隊尾指針進(jìn)一(即rear=rear+1),并當(dāng)rear=m+1時,置rear=1;然后將新元素插入隊尾指針指向的位置。當(dāng)循環(huán)隊列非空(s=1)且隊尾指針等于隊頭指針時,說明循環(huán)隊列已滿,不能進(jìn)行人隊運(yùn)算,這種情況稱為“上溢”。

18./**//**/解析:C語言程序的注釋可以出現(xiàn)在程序基本單詞之間的任何地方,C語言程序的注釋以“/*”作為開始標(biāo)記,并以“*/”作為結(jié)束標(biāo)記。

19.3*sizeof(double)或size(double)*3或24或3*8或8*33*sizeof(double)或size(double)*3或24或3*8或8*3解析:該函數(shù)的調(diào)用格式是malloc(n),作用是申請n個字符的存儲單元,并返回該存儲區(qū)的首地址,實際調(diào)用的時候可在前面加上“(類型說明符*)”,以轉(zhuǎn)換成需要的類型的地址。所以在此空白處應(yīng)該填寫3*sizeof(double)或size(double)*3或其他等價的表達(dá)式。

20.x+=1;

21.1.0/i/i或1.0/(i*i)1.0/i/i或1.0/(i*i)解析:由題面中提供的計算pi的公式可知:在第i項其值為1/(i*i),考慮到運(yùn)算結(jié)果為浮點數(shù),故必須要將1轉(zhuǎn)化為浮點數(shù)或采用1.0/(i*i)的形式。故本題應(yīng)填1.0/(i*i)或其等效形式。

22.11解析:計算表達(dá)式!a<b,先計算!a,因a的值為10,!a的值為0,而關(guān)系表達(dá)式0<20為真,所以表達(dá)式!a<b的值為1。

23.PI=3.14159PI=3.14159解析:本題先定義了一個宏名PI,以后在程序中出現(xiàn)PI都用3.14159替代,但是C語言規(guī)定:雙引號中的宏名是不進(jìn)行替換的。

24.11解析:本題考查局部變量和全局變量的區(qū)別:局部變量是指作用域在函數(shù)級和塊級的變量,全局變量是指作用域在程序級和文件級的變量。本程序首先定義了一個全局變量m=17,m=17的作用域在整個程序內(nèi)。在fun函數(shù)內(nèi)部定義了一個局部變量m=3,m=3的作用域僅在fun函數(shù)內(nèi)部,通過fun函數(shù)返回兩個形參的積再減m。在主函數(shù)中,輸出fun(a,b)/m=(5*7-3)/17=1。

25.

解析:該程序功能是刪去一維數(shù)組中所有相同的數(shù),使之只剩一個。解題思路是,首先在函數(shù)中定義臨時變量指向每一個元素,然后在循環(huán)過程中將臨時值和其他元素進(jìn)行比較,如果相同,那么跳過相同字符。

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

27.intfun(int*sinttint*k){inti;*k=0/*k所指的數(shù)是數(shù)組的下標(biāo)值*/for(i=0;i<t;i++)if(s[*k]>s[i])*k=i;/*找到數(shù)組的最小元素把該元素的下標(biāo)賦給k所指的數(shù)*/returns[*k];/*返回數(shù)組的最小元素*/}intfun(int*s,intt,int*k)\r\n{\r\ninti;\r\n*k=0/*k所指的數(shù)是數(shù)組的下標(biāo)值*/\r\nfor(i=0;i<t;i++)\r\nif(s[*k]>s[i])\r\n*k=i;/*找到數(shù)組的最小元素,把該元素的下標(biāo)賦給k所指的數(shù)*/\r\nreturns[*k];/*返回數(shù)組的最小元素*/\r\n}解析:本題中直接使用指針變量k,但在使用時要注意對k的指針運(yùn)算,此外,一開始應(yīng)讓*k的值為數(shù)組中的某一下標(biāo)值勤,即*k=0。

28.

解析:該程序功能是計算并輸出多項式值。根據(jù)題干中給出的數(shù)列,首先推出每一項的表達(dá)式,然后再對多項式進(jìn)行累加求和。

29.

解析:該程序功能是刪除字符串前導(dǎo)和尾部的“*”號。解題過程是根據(jù)主函數(shù)中求出的前導(dǎo)和尾部的“*”數(shù)目,作為for循環(huán)條件,并且在循環(huán)過程中第一個非“*'號開始前移,實現(xiàn)函數(shù)功能。

30.voidfun(intmint*aint*n){intij=0;for(i=1;i<=m;i++)if(i%7==0||i%11==0)/*求出1到m(含m)之內(nèi)能被7或11整除的所有整數(shù)放在數(shù)組a中*/a[j++]=i;*n=j;/*返回這些數(shù)的個數(shù)*/}voidfun(intm,int*a,int*n)\r\n{\r\ninti,j=0;\r\nfor(i=1;i<=m;i++)\r\nif(i%7==0||i%11==0)/*求出1到m(含m)之內(nèi)能被7或11整除的所有整數(shù)放在數(shù)組a中*/\r\na[j++]=i;\r\n*n=j;/*返回這些數(shù)的個數(shù)*/\r\n}解析:本題要找出能被7或11整除的所有整數(shù),注意數(shù)學(xué)中的“或”和C語言中的“或”的區(qū)別,但在此處,if條件語句中用了“||”運(yùn)算符,若要找能同時被7和11整除的所有整數(shù)則在if()中應(yīng)用“&&”運(yùn)算符。

31.intfun(inta[]intn){intij=l;for(i=1;i<n;i++)if(a[j-1]!=a[i])/*若該數(shù)與前一個數(shù)不相同則要保留*/a[j++]=a[i];returnj;/*返回不同數(shù)的個數(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ù)與前一個數(shù)不相同,則要保留*/\r\na[j++]=a[i];\r\nreturnj;/*返回不同數(shù)的個數(shù)*/\r\n}解析:本題程序的流程是:讓i,j都從1開始,其中j用于控制刪除后剩下的數(shù)中的下標(biāo),i用于搜索原數(shù)組中的元素。j始終是新數(shù)組已有元素中最后一個元素的下一個元素的下標(biāo),所以if()中的條件是a[j-1]!=a[i],其中a[j-1]就是新數(shù)組中的最后一個元素,若條件成立,則表示出現(xiàn)了不同的值,所以a[i]要留下到新數(shù)組中。注意本題中i,j的初值都要從1開始,該算法只能用于數(shù)組已排序的題目中。

32.voidfun(char*a){char*p=a;while(*P==‘+’)p++;/*指針p指向字符串第一個字母*/for(;*p!=‘\0’;p++a++)*a=*p;/*從第—個字母開始其后的字符都放入指針a所指的字符串中*/*a=‘\0’;/*在字符串最后加上結(jié)束標(biāo)記符*/}voidfun(char*a)\r\n{\r\nchar*p=a;\r\nwhile(*P==‘+’)p++;/*指針p指向字符串第一個字母*/\r\nfor(;*p!=‘\\0’;p++,a++)\r\n*a=*p;/*從第—個字母開始,其后的字符都放入指針a所指的字符串中*/\r\n*a=‘\\0’;/*在字符串最后加上結(jié)束標(biāo)記符*/\r\n}解析:在前面的改錯題和編程題中,相關(guān)試題已經(jīng)出現(xiàn)好多次了,我們在此提供另一種解答方法。

#include<string.h>

voidfun(char*a)

{char*p=a;

while(*p==‘*’)p++;

strcpy(a,p);

}

33.voidfun(inttt[M][N]intpp[N]){intiimax;for(j=0;j<N;j++){max=

溫馨提示

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

評論

0/150

提交評論