二級(jí)C上機(jī)考試考試題庫(kù)、程序設(shè)計(jì)題_第1頁(yè)
二級(jí)C上機(jī)考試考試題庫(kù)、程序設(shè)計(jì)題_第2頁(yè)
二級(jí)C上機(jī)考試考試題庫(kù)、程序設(shè)計(jì)題_第3頁(yè)
二級(jí)C上機(jī)考試考試題庫(kù)、程序設(shè)計(jì)題_第4頁(yè)
二級(jí)C上機(jī)考試考試題庫(kù)、程序設(shè)計(jì)題_第5頁(yè)
已閱讀5頁(yè),還剩92頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

程序設(shè)計(jì)題

答案:

1.函數(shù)fun的功能是:將兩個(gè)兩位數(shù)的正整數(shù)a、b合并形成一個(gè)整數(shù)放在c中。合并的方式

是:將a數(shù)的十位和個(gè)位數(shù)依次放在c數(shù)的千位和十位上,b數(shù)的十位和個(gè)位數(shù)依次放在c

數(shù)的百位和個(gè)位上。

例如,當(dāng)a=45,b=如時(shí)調(diào)用該函數(shù)后,c=4125.

#include<stdio.h>

voidfun(inta,intb,long*c)

{*c=(a/10)*1000+(b/10)*l00+(a%10)*10+(b%10);}

main()

{inta,b;longc;

voidNONO();

printfC'Inputa,b:");scanf("%d,%d'',&a,&b);

fun(a,b,&c);

printf("Theresultis:%d\n,,,c);

NONO();

)

voidNONO()

{FILE*rf,*wf;

inti,a,b;longc;

rf=fopen("in.da「T);

wf=fopenC'ouLdat'';'w");

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

fscanf(rf,"%d,%d”,&a,&b);

fun(a,b,&c);

fprintf(wf,,,a=%d,b=%d,c=%1d\n,,,a,b,c);

)

fclose(rf);

fclose(wf);

}

2.函數(shù)fun的功能是:將兩個(gè)兩位數(shù)的正整數(shù)a、b合并形成一個(gè)整數(shù)放在c中。

合并的方式是:將a數(shù)的卜位和個(gè)位依次放在c數(shù)的個(gè)位和百位上,b數(shù)的卜位和個(gè)位依次放

在c數(shù)的千位和十位上。

例如:當(dāng)a=45,b=L2,調(diào)用函數(shù)后,c=1524.

#include<stdio.h>

voidfun(inta,intb,long*c)

{*c=(b/10)*l000+(a%10)*100+(b%10)*10+(a/10);}

main()

{inta,b;longc;

voidNONO();

printfC'Inputa,b:");scanf("%d,%cT,&a,&b);

fun(a,b,&c);

printf("Theresultis:%ld\n,,,c);

NONO();

voidNONO()

{FILE*rf,*wf;

inti,a,b;longc;

rf=fopen

wf=fopenC'ouLdat'';'w");

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

fscanf(rf,"%d,%d”,&a,&b);

fun(a,b,&c);

fprintf(wf,,,a=%d,b=%d,c=%1d\n?,,a,b,c);

)

fclose(rf);

fclose(wf);

}

3.函數(shù)fun的功能是:將兩個(gè)兩位數(shù)的正整數(shù)a、b合并形成一個(gè)整數(shù)放在c中。

合并的方式是:將a數(shù)的十位和個(gè)位依次放在c數(shù)的個(gè)位和百位上,b數(shù)的十位和個(gè)位依次放

在c數(shù)的十位和千位上。

例如:當(dāng)a=45,b=12,調(diào)用函數(shù)后,c=2514.

#include<stdio.h>

voidfun(inta,intb,long*c)

{*c=(b%10)*1000+(a%10)*100+(b/10)*l0+(a/10);}

main()

{inta,b;longc;

voidNONO();

printf(<4Inputa,b:'');scanf("%d,%cT,&a,&b);

fun(a,b,&c);

printf(4iTheresultis:%ld\n”,c);

NONO();

)

voidNONO()

{FILE*rf,*wf;

inti,a,b;longc;

rf=fopen("in.dat“Jr");

wf=fopen("out.dat'',"w'');

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

fscanf(rf,M%d,%d”,&a,&b);

fun(a,b,&c);

fprintf(wf,''a=%d,b=%d,c=%1d\n,,,a,b,c);

)

fclose(rf);

fclose(wf);

)

4.函數(shù)fun的功能是:將兩個(gè)兩位數(shù)的正整數(shù)a、b合并形成一個(gè)整數(shù)放在c中。

合并的方式是:將a數(shù)的卜位和個(gè)位依次放在c數(shù)的卜位和千位上,b數(shù)的卜位和個(gè)位依次放

在C數(shù)的百位和個(gè)位上。

例如:當(dāng)a=45,b=12,調(diào)用函數(shù)后,c=5142.

#include<stdio.h>

voidfun(inta,intb,long*c)

{*c=(%10)*1000+(b/10)*l00+(a/10)*10+(b%10);}

main()

{inta,b;longc;

voidNONO();

printf(<4Inputa,b:'');scanf("%d,%cT,&a,&b);

fun(a,b,&c);

printf("Theresultis:%ld\n”,c);

NONO();

)

voidNONO()

{FILE*rf,*wf;

inti,a,b;longc;

rf=fopen("in.dat",'T');

wf=fopen("out.dat'',''w");

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

fscanf(rf,,,%d,%d”,&a,&b);

fun(a,b,&c);

fprintf(wf;,a=%d,b=%d,c=%ld\n,\a,b,c);

)

fclose(rf);

fclose(wf);

)

5.請(qǐng)編寫一個(gè)fun函數(shù),它的功能是:計(jì)算n門課程的平均分,計(jì)算結(jié)果作為函數(shù)值返回。

例如:若有5門課程的成績(jī)是:90.5,72,80,61.5,55

則函數(shù)的值為:71.80.

#include<stdio.h>

floatfun(float*a,intn)

inti;

floatave=0.0;

for(i=0;i<n;i++)ave=ave+a[ij;

ave=ave/n;

returnave;

main()

{floatscore[30]={90.5,72,80,61.5,55},aver;

voidNONO();

aver=fun(score,5);

printfCAnAveragescoreis:%5.2f\n,,,aver);

NONO();

{FILE*fp,*wf;

inti,j;

floataver,score[5];

fp=fopen("in.dat";T');

wf二fopen("out.dat",''w’');

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

for(j=O;j<5;j++)

fscanf(fp,,,%f,,,&score[j]);

aver=fun(score,5);

fprintf(wf,"%5.2f\rT,aver);

)

fclose(fp);

fclose(wf);

)

6.請(qǐng)編寫一個(gè)函數(shù)fun,它的功能是:比較兩個(gè)字符串的長(zhǎng)度,(不得調(diào)用C語言提供的求字

符串長(zhǎng)度的函數(shù)),函數(shù)返回較長(zhǎng)的字符串。若兩個(gè)字符串長(zhǎng)度相同,則返回第一個(gè)字符串。

例如,輸出beijing<CR>shanghai<CR>(vCR>為回車鍵),函數(shù)將返回shanghaio

#include<stdio.h>

char*fun(char*s,char*t)

(

inti;

char*p=s,*q=t;

intn=0,m=0;

while(*p)

(

n++;

P++;

)

while(*q)

(

m++;

q++;

)

if(n>=m)

P=s;

else

P=t;

returnp;

)

main()

{chara[20],b[20];

voidNONO();

printf(nInputIthstring:");

gets(a);

printf(MInput2thstring:");

gets(b);

printf(“%s%”,fun(a,b));

NONO();

)

voidNONO()

{/*本函數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/

FILE*fp,*wf;

inti;

chara[20],b[20];

fp=fopenC'in.dar/r1,);

wf=fopen("out.dat","wn);

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

fscanf(fp,n%s%s",a,b);

fprintf(wf,"%s\n”,fun(a,b));

)

fclose(fp);

fclose(wf);

)

7.請(qǐng)編寫一個(gè)函數(shù)fun,它的功能是:求出1到m之間(含m)能被7或11整除的所有整

數(shù)放在數(shù)組a中,通過n返回這些數(shù)的個(gè)數(shù)。例如,若傳送給m的值為50,則程序輸出:7

11142122283335424449。

#include<stdio.h>

#defineM100

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

(

inti,j=O;*n=O;

for(i=l;i<=m;i++)

if(i%7==0lli%ll==0)

(

a[j]=i;

j++;

)

*n=j;

)

main()

{intaa[M],n,k;

voidNONO();

fun(50,aa,&n);

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

if((k+l)%20==0)printf(n\n");

elseprintf("%4d'\aa[k]);

printf(',\n,');

NONOQ;

voidNONO()

{/*本函數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/

FILE*fp,*wf;

inti,n,j,k,aa[M],sum;

fp=fopen(',in.datn,ur,');

wf=fopen("out.dat**,nwM);

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

fscanf(fp,u%d,n,&j);

fun(j,aa,&n);

sum=0;

for(k=0;k<n;k++)sum+=aa[k];

fprintf(wf,u%d\n",sum);

)

fclose(fp);

fclose(wf);

)

8.請(qǐng)編寫一個(gè)函數(shù)fun,它的功能是:將ss所指字符串中所有下標(biāo)為奇數(shù)位置上字母轉(zhuǎn)換為

大寫(若該位置上不是字母,則不轉(zhuǎn)換)。

例如,若輸入“abc3EFg”,則應(yīng)輸出“aBc4EFg”。

#include<stdio.h>

#include<string.h>

voidfun(char*ss)

(

inti;

for(i=l;i<strlen(ss);i+=2)

(

if(ss[i]>=a'&&ss[i]<='z*)ss[i]-=32;

)

)

main()

{chartt[81];

voidNONO();

printf("\nPleaseenteranstringwithin80characters:\n");gets(tt);

printf(M\n\nAfterchanging,thestring\nV'%s\'M,,tt);

fun(tt);

printf(n\nbecomes\n\"%s\"\n”,tt);

NONO();

)

voidNONO()

{/*本函數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/

FILE*fp,*wf;

chartt[81J;

inti;

fp=fopen("in.dat,';,r'');

wf=fopen("out.datn,MwH);

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

fscanf(fp,n%s",tt);

fun(tt);

fprintf(wf,u%s\n",tt);

)

fclose(fp);

fclose(wf);

)

9.函數(shù)fun的功能是:將s所指字符串中除了下標(biāo)為偶數(shù)、同時(shí)ASCH值也為偶數(shù)的字符外,

其余的全部刪除;串中剩余字符所形成的一個(gè)新串放在t所指的數(shù)組中。

例如,若是所指字符串中的內(nèi)容為:“ABCDEFG123456",其中字符A的ASCH碼值為奇數(shù),

因此應(yīng)當(dāng)刪除;其中字符B的ASCH碼值為偶數(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”。

#include<stdio.h>

#include<string.h>

voidfun(char*s,chart[])

(

inti,j=0;

for(i=0;i<strlen(s);i+=2)

if(s[i]%2==0)t[j++]=s[i];

tUJ=\O';

)

main()

(

chars[100],t[100];

voidNONO();

printf("\nPleaseenterstringS:");scanf(,,%s",s);

fun(s,t);

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

NONO();

)

voidNONO()

{/*本函數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/

charsflOOLtflOO];

FILE*rf,*wf;

inti;

rf=fopen(uin.datM,Y');

wf=fopen("out.dat","wH);

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

fscanf(rf,u%s',,s);

fun(s,t);

fprintf(wf,u%s\n",t);

)

fclose(rf);

fclose(wf);

)

10.函數(shù)fun的功能是:將s所指字符串中下標(biāo)為偶數(shù)的字符刪除,串中剩余字符形成的新串

放在t所指數(shù)組中。

例如,當(dāng)s所指字符串中的內(nèi)容為:“ABCDEFGHIJK”,在t所指數(shù)組中的內(nèi)容應(yīng)是:

“BDFHJ”。

#include<stdio.h>

#include<string.h>

voidfun(char*s,chart[])

(

inti,j=0;

for(i=l;i<strlen(s);i+=2)

t[j++]=s[i];

tU]=w;

)

main()

(

chars[100],t[100];

voidNONO();

printf(n\nPleaseenterstringS:");scanf(n%sn,s);

fun(s,t);

printf(M\nTheresultis:%s\nH,t);

NONO();

}

voidNONO()

{/*本函數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/

chars[100],t[1001;

FILE*rf,*wf;

inti;

rf=fopen(uin.datn,Y');

wf=fopen(,'out.dat',,,'wn);

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

fscanf(rf,s);

fun(s,t);

fprintf(wf,n%s\nH,t);

)

fclose(rf);

fclose(wf);

11.函數(shù)fun的功能是:將s所指字符串中ASCII值為偶數(shù)的字符刪除,串中剩余字符形成一

個(gè)新串放在t所指的數(shù)組中。

例如,若s所指字符串中的內(nèi)容為:“ABCDEFG12345”,最后t所指的數(shù)組中內(nèi)容應(yīng)是:

“ACEG135”。

#include<stdio.h>

#include<string.h>

voidfun(char*s,chart[])

(

inti,j=0;

for(i=0;i<strlen(s);i++)

if(s[i]%2)

t[j++]=s[i];

t[jl=O;

)

main()

(

chars[100],t[100];

printf("\nPleaseenterstringS:");scanf("%s",s);

fun(s,t);

printl'CAnTheresultis:%s\n",t);

NONO();

)

NONO()

{/*本函數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/

chars[100],t[100];

FILE*rf,*wf;

inti;

rf=fopen(nin.datH;'rM);

wf=fopen(',out.datn,',wn);

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

fscanf(rf,u%sH,s);

fun(s,t);

fprintf(wf,"%s\n",t);

)

fclose(rf);

fclose(wf);

)

12.已知學(xué)生的記錄由學(xué)號(hào)和學(xué)習(xí)成績(jī)構(gòu)成,N名學(xué)生的數(shù)據(jù)已存入結(jié)構(gòu)體數(shù)組a中。請(qǐng)編

寫函數(shù)fun,函數(shù)的功能是:找出成績(jī)最高的學(xué)生記錄,通過形參指針傳回主函數(shù)(規(guī)定只

有一個(gè)最高分)。已給出函數(shù)的首部,請(qǐng)完成該函數(shù)。

#include<stdio.h>

#include<string.h>

#defineN10

typedefstructss

{charnum[10];ints;}STU;

fun(STUa[],STU*s)

(

inti,max=a[0].s,j=0;

for(i=l;i<N;i++)

if(max<a[i].s){

j=i;

max=a[i].s;

)

*s=a[j];

}

main()

{STUa[N]={{"AO1”,81},{“A02”,89},{“A03”,

66},{"A04,\87},{"A05',,77},{"A06H,90},{"A07",79},{"A08',,61},{',A09",80},{,,A10u,71}},m;

inti;

printf("*****Theoriginaldata*****\n");

for(i=0;i<N;i+4-)printf(,,No=%sMark=%d\n",a[i].num,a[i].s);

fun(a,&m);

prim””*****THERESULT*****\n");

printf("Thetop:%s,%d\nH,m.num,m.s);

NONO();

)

NONO()

{/*本函數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/

FILE*rf,*wf;

STUa[N],m;

inti;

rf=fopen("in.datM,,'rn);

wf=fopen("out.datn,nwn);

for(i=0;i<10;i++)fscanf(rf,M%s%dH,a[i].num,&a[i].s);

fun(a,&m);

fprintf(wf,"Thetop:%s,%d\n",m.num,m.s);

fclose(rf);

fclose(wf);

)

13.程序定義了N*N的二維數(shù)組,并在主函數(shù)中自動(dòng)賦值。請(qǐng)編寫函數(shù)fun(int[][N],intn),

函數(shù)的功能是:使數(shù)組左下三角元素中的值乘以n。

例如:若n的值為3,a數(shù)組中的值為

II97113971

a=l2381則返回主程序后a數(shù)組中的值應(yīng)為16971

1456111215181

#include<stdio.h>

#include<stdlib.h>

#defineN5

voidfun(inta[][N],intn)

(

inti,j;

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

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

a[i][j]*=n;

)

NONO()

{/*本函數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/

FILE*rf,*wf;

inti,j,n,a[5][51;

rf=fopen("in.dat","r");

wf=fopen("out.dat","w");

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

for(j=0;jv5;j++)

fscanf(rf,"%d",&a[i][j]);

fscanf(rf,n%d",&n);

fun(a,n);

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

for(j=0;j<5;j++)fprintf(wf,n%4d",a[i][j]);

fprintf(wf,"Vn");

)

fclose(rf);

fclose(wf);

)

main()

{inta[N][N],n,i,j;

printf("*****Thearray*****\n”);

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

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

{a[i][j]=rand()%10;printf("%4d",a[i][j]);}

printf(n\nH);

)

don=rand()%10;while(n>=3);

printf("n=%4d\nu,n);

fun(a,n);

print"”*****THERESULT*****\n");

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

{for(j=O;j<N;j++)printf("%4dn,a[i][j]);

printf(M\nM);

NONO();

14.程序定義了N*N的二維數(shù)組,并在主函數(shù)中自動(dòng)賦值。請(qǐng)編寫函數(shù)

fun(inta口[N]),函數(shù)的功能是:使數(shù)組左下三角的值全部置成0。

II97110971

a=l2381則返怛I主程序后a數(shù)組中的值應(yīng)為10081

1456110001

#include<stdio.h>

#include<stdlib.h>

#defineN5

voidfun(inta[][N])

(

inti,j;

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

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

a[i][j]=O;

)

NONO()

{/*本函數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/

FILE*rf,*wf;

inti,j,a[5][5];

rf=fopen(nin.dat'W);

wf=fopen("out.dat',,"wH);

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

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

fscanf(rf,u%d”,&a[i][j]);

fun(a);

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

for(j=0;j<5;j++)fprintf(wf,H%4d",a[i][j]);

fprintf(wf,"\n");

)

fclose(rf);

fclose(wf);

)

main()

{intalNJLN],i,j;

printf("*****Thearray*****\n”);

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

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

{a[iJ[jJ=rand()%10;printf(M%4dM,a[ij|jj);}

printf(H\n");

fun(a);

printf(nTHERESULT\nn);

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

{for(j=0;j<N;j++)printf(,,%4d,',a[i][j]);

printfCXn1');

}

NONO();

15.請(qǐng)遍一個(gè)函數(shù)voidfun(inttt[M][N]Jntpp[N]),tt指向一個(gè)M行N列的二維數(shù)組,求出二維

數(shù)組每列中最小元素,并依次放入pp所指一維數(shù)組中。二維數(shù)組中的數(shù)已在主函數(shù)中賦予。

#include<stdio.h>

#defineM3

#defineN4

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

(

inti,j,min,k;

for(i=0;i<N;i++){

min=tt[0][i];k=0;

for(j=l;j<M;j++)

if(min>tt[j][i]){

min=tt[j][i];

k=j;

)

pp[i]=tt[k][i];

NONO()

{/*請(qǐng)?jiān)诖撕瘮?shù)內(nèi)打開文件,輸入測(cè)試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/

inti,j,k,m,t[MJ[N],p[NJ;

FILE*rf,*wf;

rf=fopen(',in.dat'V'r,');

wf=fopen(nout.datn,nwM);

for(m=0;m<10;m++){

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

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

fscanf(rf,M%6dn,&t[i]fj]);

)

fun(t,p);

for(k=0;k<N;k++)fprintf(wf,n%4d\p[k]);

fprintf(wf,"\n");

}

fclose(rf);

fclose(wf);

main()

{intt[M][N]={{22,45,56,30},{19,33,45,38},{20,22,66,40}};

intp[N],i,j,k;

printf("Theoriginaldatais:\nn);

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

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

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

printf("\n");

)

fun(t,p);

printf(n\nTheresultis:\nH);

for(k=0;k<N;k++)printf("%4d",p[k]);

printf(M\nH);

NONO();

16.請(qǐng)編寫?個(gè)函數(shù)unsignedfun(undigndew),w是一個(gè)大于10的無符號(hào)整數(shù),若w是n(n>=2)

位的整數(shù),函數(shù)求出w的低n-1位的數(shù)作為函數(shù)值返回。

例如:w值為5923,則函數(shù)返回923;w值為923則函數(shù)返回23。

#include<stdio.h>

unsignedfun(unsignedw)

(

unsignedt,s=O,s1=1,p=0;

t=w;

while(t>10)

(

if(t/10)

p=t%10;

s=s+p*sl;

sl=sl*10;

t=t/10;

)

returns;

)

NONO()

{/*請(qǐng)?jiān)诖撕瘮?shù)內(nèi)打開文件,輸入測(cè)試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/

unsignedx;

inti;

FILE*rf,*wf;

rf=fopen(uin.datM,Y');

wf=fopen("out.datn,"wn);

for(i=0;i<20;i++){

fscanf(rf,n%u",&x);

fprintf(wf,U%u\nn,fun(x));

)

fclose(rf);

fclose(wf);

)

main()

{unsignedx;

printf("Enteraunsignedintegernumber:");scanf("%u",&x);

printf("Theoriginaldatais:%u\nH,x);

if(x<10)printf("Dataerror!");

elseprintf(nTheresult:%u\n'\fun(x));

NONOQ;

}

17.請(qǐng)編?個(gè)函數(shù)fun(char*s),函數(shù)的功能是把s所指字符串的內(nèi)容逆置。

例如:字符串中原有的字符串為:abcdefg,則調(diào)用該函數(shù)后,串中的內(nèi)容為:gfedcbao

#include<string.h>

#include<stdio.h>

#defineN81

fun(char*s)

(

charbfN];

inti=0,j;

memset(b,0,N);

for(j=strlen(s)-l;j>=0;j-)b[i++J=s[jJ;

strcpy(s,b);

)

NONO()

{/*請(qǐng)?jiān)诖撕瘮?shù)內(nèi)打開文件,輸入測(cè)試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/

inti;

chara[NJ;

FILE*rf,*wf;

rf=fopen(uin.dat,,,Y');

wf=fopen("out.dat","wH);

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

fscanf(rf,n%s",a);

fun(a);

fprintf(wf,"%s\nH,a);

)

fclose(rf);

fclose(wf);

main()

{chara[N];

printf("Enterastring:");gets(a);

printf("Theoriginalstringis:'*);puts(a);

fun(a);

printf(H\n");

printf("Thestringaftermodified:");

puts(a);

NONO();

)

18.編寫函數(shù)fun,函數(shù)的功能是:從s所指的字符串中刪除給定的字符。同一字母的大、小

寫按不同字符處理。

若程序執(zhí)行時(shí)輸入字符串為:turbocandborlandC++從鍵盤上輸入字符:n,則輸出后變?yōu)椋?/p>

turbocadborlandC++。

#include<stdio.h>

#include<string.h>

voidfun(chars[],charc)

(

char*p=s;

inti=0;

while(*p){

if(*p!=c)s[i++]=*p;

P++;

)

s[iJ='\O,;

)

NONO()

(

/*請(qǐng)?jiān)诖撕瘮?shù)內(nèi)打開文件,輸入測(cè)試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/

FILE*rf,*wf;

chars[81],ch,w;

intlen;

rf=fopen(uin.dat,,,Y');

wf=fopen("out.dat","wH);

fgets(s,80,rf);

fscanf(rf,"%cu,&ch);

len=strlen(s)-1;

w=s[len];

if(w==\rfllw==Ox1a)s[lenj=0;

fun(s,ch);

fprintf(wf,u%sM,s);

fclose(rf);

fclose(wf);

main()

(

staticcharstr[]=nturbocandborlandC++”;

charch;

printf("原始字符串:%s\n”,str);

printf("輸入一個(gè)字符

scanf(n%c'\&ch);

fun(str,ch);

printf(nstr[]=%s\n",str);

NONO();

)

19.請(qǐng)編寫函數(shù)fun,對(duì)長(zhǎng)度為7個(gè)字符的字符串,除首、尾字符外,將其余5個(gè)字符按ASCII

碼降序排列。

例如,原來的字符串為CEAedca,排序后輸出為CedcEAa。

#include<stdio.h>

#include<ctype.h>

#include<string.h>

voidfun(char*s,intnum)

(

chart;

inti,j;

for(i=1;i<num-2;i++)

〃對(duì)n個(gè)元素進(jìn)行循環(huán)選擇

for(j=i+l;j<num-1;j++)

if(s[i]<sD])

〃將strm設(shè)為最大值,和剩下的j?n-1進(jìn)行比較

{

t=s[i];

s[i]=s[j];

s[j]=t;

}

)

NONO()

(

/*請(qǐng)?jiān)诖撕瘮?shù)內(nèi)打開文件,輸入測(cè)試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/

chars[IO];

FILE*rf,*wf;

inti=0;

rf=fopen("in.dat","r");

wf=fopen("out.dat","w");

while(i<10){

fgets(s,10,rf);

s[7]=0;

fun(s,7);

fprintf(wf,"%s\nH,s);

i++;

)

fclose(rf);

fclose(wf);

)

main()

(

chars[10];

printf("輸入7個(gè)字符的字符串

gets(s);

fun(s,7);

printf(n\n%s'\s);

NONO();

20.編寫一個(gè)函數(shù),該函數(shù)可以統(tǒng)計(jì)一個(gè)長(zhǎng)度為2的字符串在另一個(gè)字符串中出現(xiàn)的次數(shù)。

例如,假定輸入的字符串為:asdasasdfgasdaszx67asdmklo,子字符串為:as,則應(yīng)輸出

6.

#include<stdio.h>

#include<string.h>

intfun(char*str,char*substr)

(

intcnt=O;

char*p=str,*q;

while(*p){

q=strstr(p,substr);

if(q==NULL)break;

p=q+strlen(substr);

cnt++;

)

returnent;

}

NONO()

(

/*請(qǐng)?jiān)诖撕瘮?shù)內(nèi)打開文件,輸入測(cè)試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/

charstr[81],substr[3],ch;

intn,len,i=0;

FILE*rf,*wf;

rf=fopen(uin.datM,Y');

wf=fopen("out.dat","w");

while(i<5){

fgets(str,80,rf);

fgets(substr,10,rf);

len=strlen(substr)-1;

ch=substr[len];

if(ch=='\n'IIch==Oxla)substr[len]=0;

n=fun(str,substr);

fprintf(wf,u%d\n",n);

i++;

)

fclose(rf);

fclose(wf);

)

main()

(

charstr[81],substr[3];

intn;

printf("輸入主字符串:”);

gets(str);

printf("輸入子字符串:”);

gets(substr);

puts(str);

puts(substr);

n=fun(str,substr);

printf(',n=%d\n,,,n);

NONO();

)

21.請(qǐng)編寫函數(shù)fun,其功能是:將所有大于1小于整數(shù)m的非素?cái)?shù)存入xx所指數(shù)組中,非

素?cái)?shù)的個(gè)數(shù)通過k傳回。

例如,若輸入:17,則應(yīng)輸出:46891012141516,

#include<stdio.h>

voidfun(intm,int*k,intxx[J)

(

inti,j;

intt=0;〃初始化數(shù)組個(gè)數(shù)

for(i=2;i<m;i++)〃循環(huán)判斷小于n的數(shù)是否為素?cái)?shù)

{

j=2;

while(j<i)

{

if(i%j==O)//如果i不是素?cái)?shù)

{

xx[t]=i;

t++;

break;

j++;

}

*k=t;

)

)

main()

(

intm,n,zz[100];

voidNONO();

printf(H\nPleaseenteranintegernumberbetween10and100:");

scanf("%dn,&n);

fun(n,&m,zz);

printf(n\n\nThereare%dnon-primenumberslessthan%d:",m,n);

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

printf(H\n%4dH,zz[n]);

NONO();

}

voidNONO()

(

/*請(qǐng)?jiān)诖撕瘮?shù)內(nèi)打開文件,輸入測(cè)試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/

intm,n,zz[100];

FILE*rf,*wf;

rf=fopen("in.dat","r");

wf=fopen(nout.datH,HwH);

fscanf(rf,"%dn,&n);

fun(n,&m,zz);

fprintf(wf,"%d\n%d\nn,m,n);

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

fprintf(wf,,"%d\nM,zz[n]);

fclose(rf);

fclose(wf);

)

22.請(qǐng)編寫函數(shù)fun,它的功能是:求出ss所指字符串中指定字符的個(gè)數(shù),并返回此值。

例如,若輸入字符串:123412132,輸入字符為:1,則輸出:3.

#include<stdio.h>

#include<string.h>

#defineM81

intfun(char*ss,charc)

(

intcnt=O;

char*p=ss;

while(*p){

if(*p==c)cnt++;

P++;

)

returnent;

)

main()

{chara[M],ch;

voidNONO();

printf(M\nPleaseenterastring:");gets(a);

printf(H\nPleaseenterachar:");ch=getchar();

printf(H\nThenumberofthecharis:%d\n",fun(a,ch));

NONO();

)

voidNONO()

{/*本函數(shù)用于打開文件,輸入測(cè)試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/

inti;

FILE*rf,*wf;

chara[M],b[M],ch;

rf=fopen("in.dat",;'r,');

wf=fopen("out.dat","w");

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

fscanf(rf,a);

fscanf(rf,n%s",b);

ch=*b;

fprintf(wf,n%c=%d\nn,ch,fun(a,ch));

)

fclose(rf);

fclose(wf);

)

23.請(qǐng)編寫程序,函數(shù)的功能是:實(shí)現(xiàn)B=A+A;即把矩陣A加上A的轉(zhuǎn)置,存放在矩陣B

中。計(jì)算結(jié)果在main函數(shù)中輸出。

例如,輸入下面的矩陣:123

456

789

其轉(zhuǎn)置矩陣為:147

258

369

程序輸出:2610

61014

101418

#include<stdio.h>

voidfun(inta[3][3],intb[3][3])

(

intc[3][3];

inti,j;

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

for(j=0;j<3;j++){

c[i][j]=a[jl[i];〃矩陣的轉(zhuǎn)置

b[i]U]=a[i]U]+c[i]fj];

main()/*主程序*/

{inta[3][3]={{1,2,3},{4,5,6},{7,8,9}},t[3][3];

inti,j;

voidNONO();

fun(a,t);

for(i=0;i<3;i++){

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

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

printf("\n");

)

NONO();

)

voidNONO()

{/*本函數(shù)用于打開文件,輸入測(cè)試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/

inti,j,k,a[3][3],t[3][3];

FILE*rf,*wf;

tf=fopen("in.dat","r");

wf=fopen("out.dat","wn);

for(k=0;k<5;k++){

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

fscanf(rf,u%d%d%d",&a[i][0],&a[i][2]);

fun(a,t);

for(i=0;i<3;i++){

for(j=0;j<3;j++)fprintf(wf,"%7dn,t[i][j]);

fprintf(wf,n\nn);

)

)

fclose(rf);

fclose(wf);

24.請(qǐng)編寫函數(shù)fun,它的功能是:求出1到1000之間能被7或11整除的所有整數(shù)并將它們

放在a所指的數(shù)組中,通過n返回這些數(shù)的個(gè)數(shù)。

#include<stdio.h>

voidfun(int*a,int*n)

(

inti;

*n=0;

for(i=7;i<1000;i++)

if(((i%7)==0ll(i%11)==0)&&(i%77)!=0)a[(*n)++]=i;

)

main()

{intaa[1000],n,k;

voidNONO();

fun(aa,&n);

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

if((k+1)%10==0)printf(n\n");

elseprintf(H%5d';aa[k]);

NONO();

)

voidNONO()

{/*本函數(shù)用于打開文件,輸入測(cè)試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/

intaa[1000],n,k;

FILE*fp;

fp=fopen(nout.datn,,(wn);

fun(aa,&n);

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

if((k+1)%10==0)fprintf(fp,H\nH);

elsefprintf(fp,M%5dn,aa[k]);

fclose(fp);

)

25.請(qǐng)編寫一個(gè)函數(shù)voidfim(charpp[]),統(tǒng)計(jì)在tt所指字符串中'a'到'z,26個(gè)小寫

字母各自出現(xiàn)的次數(shù),并依次放在pp所指數(shù)組中。例如,當(dāng)輸入字符串:abcdefgabcdeabc

后,程序的輸出結(jié)果是:333221100000000000000000000

#include<stdio.h>

#include<string.h>

voidfun(char*tt,intpp[])

(

char*p=tt;

inti;

for(i=0;i<26;i++)ppli]=O;

while(*p){

if(*p>=,a,&&*p<='z,)ppl*p-,a,]+=1;

P++;

main()

{charaa[1000];

intbb[26],k;

voidNONO();

printf(n\nPleaseenteracharstring:");scanf("%s”,aa);

fun(aa,bb);

for(k=0;k<26;k++)printf(”%d",bb[k]);

printf("\n");

NONO();

)

voidNONO()

{/*本函數(shù)用于打開文件,輸入測(cè)試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/

charaa[1000];

intbb[26],k,i;

HLE*rf,*wf;

rf=fopen(uin.dat,V'r,');

wf=fopen("out.dal","w");

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

fscanf(rf,n%sn,aa);

fun(aa,bb);

for(k=0;k<26;k++)fprintf(wf,n%d”,bb[k]);

fprintf(wf,"\n");

)

fclose(rf);

fclose(wf);

)

26.請(qǐng)編寫一個(gè)函數(shù)voidfun(chara[],charb[],intn),其功能是:刪除一個(gè)字符串中指定下標(biāo)的

字符。其中,a指向原字符串,刪除指定字符后的字符串存放在b所指的數(shù)組中,n中存放

指定的下標(biāo)。例如,輸入一個(gè)字符串:World,然后輸入3,則調(diào)用該函數(shù)后的結(jié)果為:Wordo

#include<stdio.h>

#include<string.h>

#defineLEN20

voidfun(chara[],charb[],intn)

(

intp,m=0;

for(p=0;p<LEN;p++)

if(p!=n)〃如果字符下標(biāo)不滿足題目要求的標(biāo)志n

b[m]=a[p];

〃原始串的字符賦值給新串b

m++;

blmJ=,\O';〃新串末尾加上結(jié)束符

)

main()

{charstrl[LEN],str2[LEN];

intn;

voidNONO();

printf(HEnterthestring:\nn);

gets(strl);

printf("Enterthepositionofthestringdeleted:");

scanf("%d”,&n);

fun(strl,str2,n);

printf(HThenewstringis:%s\n",str2);

NONOQ;

}

voidNONO()

{/*本函數(shù)用于打開文件,輸入測(cè)試數(shù)據(jù)?,調(diào)用fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/

charstrl[LEN],str2[LEN];

inti,n;

FILE*rf,*wf;

rf=fopen(uin.dat,,;'rn);

wf=fopen(nout.datHnwM);

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

fscanf(rf,u%s%d",strl,&n);

fun(strl,str2,n);

fprintf(wf,n%s\nH,str2);

}

fclose(rf);

fclose(wf);

)

27.編寫函數(shù)fun,函數(shù)的功能是:根據(jù)一下公式計(jì)算s,

s=l+l/l+2+l/l+2+3+...l/l+2+3+...+no例如:若n的值為11時(shí),函數(shù)的值為:1.833333

#include<stdio.h>

doublefun(intn)

(

intk;

floatstr=1.0,sum=1.0;

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

(

sum=sum+k;〃求得每一項(xiàng)的分母

str=str+l/sum;〃級(jí)數(shù)累加求和

returnstr;

main()

{intn;doubles;

voidNONO();

printf(H\nPleaseenterN:'*);scanf(u%du,&n);

s=fun(n);

printf(ntheresultis:%f\n",s);

NONO();

)

voidNONO()

{/*本函數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/

FILE*fp,*wf;

inti,n;

doubles;

fp=fopen(,'in.dat";,r,');

wf=fopen("out.dat","w");

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

fscanf(fp,H%d",&n);

s=fun(n);

fprintf(wf,"%f\n",s);

)

fclose(fp);

fclose(wf);

)

28.編寫函數(shù)fun,它的功能是:利用一下所示的簡(jiǎn)單迭代方法求方程:cos(x)-x=0的一個(gè)實(shí)

根。

#include<math.h>

#include<stdio.h>

doublefun()

(

floatxO,xl=0.0;

do{

x0=x1;

xl=cos(x0);

}while(fabs(xO-x1)>0.000001);

returnx1;

)

main()

(

voidNONO();

printf("Root=%f\n",fun());

NONOQ;

voidNONO()

{/*本函數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/

FILE*wf;

wf=fopen("out.datn,MwH);

fprintf(wf,fun());

fclose(wf);

)

29.編寫函數(shù)fun,它的功能是:求Fibonacci數(shù)列中大于t的最小的一個(gè)數(shù),結(jié)果由函數(shù)返

回。其中Fibonacci數(shù)列F(n)的定義為:F(0)=0,F(l)=lF(n)=F(n-l)+F(n-2)

例如:當(dāng)t=1000時(shí),函數(shù)值為:1597。

#include<math.h>

#include<stdio.h>

intfun(intt)

(

intfO=O,fl=l,f;

do{

f=fO+fl;

fO=fl;

fl=f;

}while(f<t);

returnf;

)

main()/*主函數(shù)*/

{intn;

voidNONO();

n=1000;

printf("n=%d,f=%d\n",n,fun(n));

NONO();

)

voidNONO()

{/*本函數(shù)用于打開文件,輸入數(shù)據(jù),調(diào)用函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/

FILE*fp,*wf;

inti,n,s;

fp=fopen(,,in.datM;'rH);

wf=fopen(',out.datn,,,wn);

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

fscanf(fp,u%dH,&n);

s=fun(n);

fprintf(wf,u%d\n",s);

)

fclose(fp);

fclose(wf);

30.編寫函數(shù)fun,它的功能是計(jì)算:

s=ln(l)+ln(2)+ln(3)+...+ln(m)的開方,s作為函數(shù)值返回。在C語言中可調(diào)用log(n)函數(shù)求

ln(n)olog函數(shù)的引用說明是:doublelog(doublex)o

例如,若

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論