《c語言程序設(shè)計(jì)》程序題 (二)_第1頁
《c語言程序設(shè)計(jì)》程序題 (二)_第2頁
《c語言程序設(shè)計(jì)》程序題 (二)_第3頁
《c語言程序設(shè)計(jì)》程序題 (二)_第4頁
《c語言程序設(shè)計(jì)》程序題 (二)_第5頁
已閱讀5頁,還剩183頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

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

一、程序設(shè)計(jì)共113題(共計(jì)1130分)

第1題(10.0分)題號:353

/*--------------------------------------

【程序設(shè)計(jì)】

功能:對長度為7個字符的字符串,除首、尾字符外,將其

余5個字符按降序排列。

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

--------------------------------------------------*/

#include<stdio.h>

#include<ctype.h>

#include<conio.h>

voidwjt();

voidfun(char*s,intnum)

(

/**********Prograiii**********/

/**********End**********/

}

mainO

(

chars[10];

printf("輸入7個字符的字符串:");

gets(s);

fun(s,7);

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

wwjl();

voidwjt()

inri;

chara[100];

FILE*rf,*wf;

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

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

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

(

fscanf(rf,飛s",&a);

fun(a,7);

fprintf(wf,“$s”,a);

fprintf(wf,"\n");

fclose(rf);

fclose(wf);

答案:------------------

inti,j;

chart;

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

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

if(s[i]<s[j])

{t=s[i]:s[i]=s[j];s[j]=t;}

第2題(10.0分)題號:310

【程序設(shè)計(jì)】

功能:計(jì)算并輸出給定整數(shù)n的所芍因子之和(不包括1與

自身)。

注意:n的值不大于1000o

例如:n的值為855時,應(yīng)輸出704。

^include<stdio.h>

voidwwjt();

intfun(intn)

/**********Prograni**********/'

/**********End**********/

main()

(

printf(*s=%d\n*?fun(855));

wwjt0;

)

voidwwjt()

(

FILE*IN,*OUT;

intilN,iOUT,i;

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

if(IN==NULL)

(

printf("PleaseVerifyTheCurrerntDir..itMayBeChanged");

)

0UT=fopen("out.dat","w");

if(OUT==NULL)

(

printf(*PleaseVerifyTheCurrentDir..itMayBeChanged*);

)

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

(

fscanf(IN,

iOUT=fun(iIN);

fprintf(OUT,iOUT);

)

fclose(IN);

fclose(OUT);

答案:

ints=0,i;

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

if(n%i==O)s=s+i;

returns;

第3題(10.0分)題號:378

/*--------------------------

【程序設(shè)計(jì)】

功能:編寫函數(shù)用冒泡排序法對數(shù)組中的數(shù)據(jù)進(jìn)行從小到

大的排序。

-----------------------------------------------------*/

樸include<stdlib.h>

#include<stdio.h>

voidwwjt();

voidsort(inta[],intn)

(

/**********Program**********/'

/**********End**********/

mainO

(

inta[16],i;

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

a[i]=random(30)+15;

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

printf(*%3d*,a[i]);

printf("\n--------------------\n");

sort(a,16);

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

printf(*%3d*,a[i]);

wwjt();

voidwwjt()

FILE*IN,*OUT;

intn;

inti[10];

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

if(IN==NULL)

(

printfCReadFILEError*);

)

OUT=fopen(〃out.dat〃,"w");

if(OUT==NULL)

(

printffWriteFILEError*);

)

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

(

fscanf(IN,"%d”,&i[n]);

)

sort(i,10);

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

fprintf(OUT,*%d\n*,i[n]);

fclose(IN);

fclose(OUT);

)

答案:-

intitj,t;

for(i-0;i<n-l;i++)

for(j=0;;j++)

if(a[j]>a[j+l])

{t=a[j];

a[j]=a[j+l];

a[j+l]=t;

}

第4題(10.0分)題號:504

/*---------------------------

【程序設(shè)計(jì)】

功能:編寫程序打印如圖1所示圖形。

***

*****

*******

*****

***

*

要求:要求使用abs()o

*/

^include<stdio.h>

^include"math,h”

voidwjt();

voidfun(inti)

(

intm,n;

/**********Program**********/'

/**********End**********/

}

main()

(

fun(3);

)

答案:for(m=-i;m<=i;m++)

(

for(n=0;n<abs(m);n++)printf(*");

for(n=0;n<7-2*abs(m);n++)printf("*");

printf(*\n*);

)

第5題(10.0分)題號:367

/*--------------------------------------------------

【程序設(shè)計(jì)】

功能:找出一批正整數(shù)中的最大的偶數(shù)。

不3f//

#include<stdio.h>

voidwjt();

intfun(inta口,intn)

(

/**********Prograni**********/

/**********End**********/

mainO

(

inta□:{1,2,9,24,35,18},k;

k=fun(a,6);

printf("max=%d\n”,k);

wwjt();

)

voidwwjt()

(

FILE*IN,*OUT;

intilNtlOl.iOULi,j;

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

if(IN==NULL)

{

printf("PleaseVerifyTheCurrerntDir..itMayBeChanged*);

)

OUT=fopen(*out.dat〃,"w");

if(OUT==NULL)

printf(*PleaseVerifyTheCurrentDir..itMayBeChanged*);

)

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

(

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

fscanf(IN,ql”,&iIN⑴);

iOUT=fun(iIN,10);

)

fprintf(OUT,*%d\n\iOUT);

fclose(IN);

fclose(OUT);

)

答案:---------------------

inti,amax=1;

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

if(a[i]%2=0)

if(a[i]>amax)amax=a[i]:

returnamax;

第6題(10.0分)題號:383

/*---------------------------

【程序設(shè)計(jì)】

功能:用函數(shù)實(shí)現(xiàn)字符串的復(fù)制,不允許用strcpyO函數(shù)。

--------------------------------------------------+/

#include<stdio.h>

voidwjt();

voidcopy(charstrl[],charstr2[])

(

/**********Program**********/

/**********End**********/

)

main()

(

voidcopy();

charcl[40],c2[40];

gets(cl);

copy(cl,c2);

puts(c2);

wwjt();

)

voidwwjt()

(

FILE*IN,*OUT;

chari[100];

charo[100];

IN=fopcn(*in.dat*,"r");

if(IN==NULL)

(

printfCReadFILEError*);

)

OUT=fopen(*out.dat","w");

if(OUT=NULL)

(

printf(*WriteFILEError*);

)

fscanf(IN,i);

copy(i,o);

fprintf(OUT,*%s\n*,o);

fclose(IN);

fclose(OUT);

)

答案:-----------------------

inti;

for(i=0;strl[i]!=,\0*;i++)

str2[i]=strl[i];

str2[i]=\0*;

第7題(10.0分)題號:56

/*---------

【程序設(shè)計(jì)】

功能:找出?批正整數(shù)中的最大的偶數(shù)。

不3f//

#include<stdio.h>

voidwwjt();

intfun(inta口,intn)

(

/**********Prograni**********/

/**********End**********/

mainO

(

inta□:{1,2,9,24,35,18},k;

k=fun(a,6);

printf("max=%d\n”,k);

wwjt();

)

voidwwjt()

(

FILE*IN,*OUT;

intilNtlOl.iOULi,j;

IN=fopen("28.

if(IN==NULL)

{

printf("PleaseVerifyTheCurrerntDir..itMayBeChanged");

)

OUT=fopen(w28.out","w");

if(OUT==NULL)

printf(*PleaseVerifyTheCurrentDir..itMayBeChanged*);

)

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

(

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

fscanf(IN,ql”,&iIN⑴);

iOUT=fun(iIN,10);

fprintf(OUT,iOUT);

)

fclose(IN);

fclose(OUT);

答案:-

inti,amax=-l;

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

if(a[i]%2==0)

if(a[i]>amax)amax=a[i];

returnamax;

第8題(10.0分)題號:327

【程序設(shè)計(jì)】

功能:能計(jì)算從1開始到n的自然數(shù)的和,n由鍵盤輸入,

并在mainO函數(shù)中輸出。

--------------------------------------------------+/

#include<stdio.h>

voidwjt();

intfun(intn)

(

/**********Program**********/'

/**********End**********/

mainO

(

intm;

printf("Enterm:");

scanf("%d",&m);

printf(*\nTheresultis%d\n*?fun(m));

wwjtO;

)

voidwjt()

(

FILE*IN,*OUT;

intt;

into;

intc;

IN=fopcn(*in.dat*,〃r");

if(IN==NULL)

(

printf("ReadFILEError");

)

OUT=fopen(*out.dat","w");

if(OUT=NULL)

(

printf("WriteFILEError*);

)

for(c=l;c<=5;c++)

(

fscanf(IN,

o=fun(t);

fprintf(OUT,"%d\n”,o);

)

fclose(lN);

fclose(OUT);

}

答案:-

intsum,i;

sum=0;

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

{sum=sum+i;}

return(sum);

第9題(10.0分)題號:42

/*------------------------

【程序設(shè)計(jì)】

功能:從字符串s中刪除指定的字符c。

★include<stdio.h>

voidwwjt();

fun(chars[],charc)

/**********End**********/

main()

staticcharstr[]=*turbocandborlandc++*;

charc-a;

fun(str,c);

printf(*str=%s\nw,str);

wwjtO;

voidwwjt()

FILE*IN,*OUT;

charsin[80],cIN;

inti;

IN二fopen("13.IN","r");

if(IN==NULL)

(

printf(^PleaseVerifyTheCurrerntDir..itMayBeChanged");

)

0UT=fopen(*13.out","w");

if(OUT==NULL)

(

printfCPleaseVerifyTheCurrentDir..itMayBeChanged*);

)

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

(

fscanf(IN,"%s",sin);

cIN=getc(IN);cIN=getc(IN);

fun(sin,cIN);

fprintf(OUT,“$s\n",sin);

)

fclose(IN);

fclose(OUT);

._______________________

inti,k=0;

for(i=0;s[i]!=\0';i++)

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

s[k]=\0';

第10題(10.0分)題號:376

/*----------------------------

【程序設(shè)計(jì)】

功能:從鍵盤上輸入任意實(shí)數(shù)x,求出其所對應(yīng)的函數(shù)值。

z=(x-4)的二次案(x>4)

z=x的八次―(x>-4)

z=z=4/(x*(x+D)(x>-10)

z=|x|+20(其他)

*/

^include<math.h>

^include<stdio.h>

voidwjt();

floaty(floatx)

/**********Prograni**********/'

/**********End**********/

)

mainO

(

floatx;

scanf("與f',&x);

piintfry=%f\n",y(x));

wwjt();

)

voidwwjt()

(

FILE*IN,*OUT;

intn;

floati;

floato;

IN=fopenCxin.dat","r");

if(IN==NULL)

(

printf(*ReadFILEError*);

)

OUT=fopen(*out.dat","w");

if(OUT=NULL)

(

printfCWriteFILEError*);

)

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

(

fscanf(IN,

o=y(i);

fprintf(OUT,"%f\n",o);

)

fclosc(IN);

fclose(OUT);

答案:-------------------------

floatz;

if(x>4)z=sqrt(x-4):

elseif(x>-4)z=pow(x,8);

elseif(x>-10)z=4/(x*(x+l));

elsez=fabs(x)+20;

return(z);

第11題GO.O分)題號:362

【程序設(shè)計(jì)】

功能:求給定正整數(shù)m以內(nèi)的素?cái)?shù)之和。

例如:當(dāng)m=20時,函數(shù)值為77。

--------------------------------------------------*/

4include<stdio.h>

voidwjt();

intfun(intm)

/**********Program**********/

/**********End**********/

)

main()

(

inty;

y=fun(20);

printf("y=%d\n”,y);

wwjt();

voidwwjt()

(

FILE*IN,*OUT;

intilN,iOUT,i;

IN=fopen(*in.dat","r");

if(IN==NULL)

(

printf(^PleaseVerifyTheCurrerntDir..itMayBeChanged");

)

0UT=fopen(*out.dat","w");

if(OUT==NULL)

(

printf(*PleaseVerifyTheCurrentDir..itMayBeChanged");

)

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

(

fscanf(IN,

iOUT=fun(iIN);

fprintf(OUT,iOUT);

)

fclose(IN);

fclose(OUT);

答案:-一

inti,k,s=0;

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

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

if(i%k—O)break;

if(k==i)s=s+i;

)

returns;

第12題(10.0分)題號:364

/*------

【程序設(shè)計(jì)】

功能:求?個四位數(shù)的各位數(shù)字的立方和。

#include<stdio.h>

voidwwjtO;

intfun(intn)

(

/**********Program**********/,

/**********End**********/

mainO

(

intk;

k=fun(1234);

printf(*k=%d\n*?k);

wwjt();

)

voidwwjt()

(

FILE*IN,*OUT;

intilN,iOUT,i;

IN=fopen(*in.dat","r");

if(IN—NULL)

(

printf("PleaseVerifyTheCurrerntDir..itMayBeChanged");

)

OUT=fopen(*out.dat","w");

if(OUT==NULL)

(

printf("PleaseVerifyTheCurrentDir..itMayBeChanged");

)

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

fscanf(IN,"%d”,&iIN);

iOUT=fun(iIN);

fprintf(OUT,*%d\n*,iOUT);

)

fclose(IN);

fclose(OUT);

)

答案:-

intd,s=0;

while(n>0)

{d=n%10;

s+=d*d*d;

n/=10;

}

returns;

第13題(10.0分)題號:359

/*

【程序設(shè)計(jì)】

功能:實(shí)現(xiàn)兩個整數(shù)的交換。

例如:給a和b分別輸入:60和65,輸入為:a=65b=60

--------------------------------------------------*/

#include<stdio.h>

#include<conio.h>

voidwjt();

voidfun(int*a,int*b)

(

/**********Program**********/'

/**********End**********/

)

mainO

(

inta,b;

printf("Entera,b:*);

scanf(飛d%d”,&a,&b);

fun(&a,&b);

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

wwjl();

}

voidwjt()

(

FILE*IN,*0UT;

inta,b,n;

IN=fopenC*in.dat*?"r");

if(IN=NULL)

(

printf(*ReadFILEError*);

)

OUT=fopenC*out.dat","w");

if(OUT=NULL)

(

printfCWriteFILEError*);

)

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

(

fscanf(IN,"%d%d",&a,&b);

fun(&a,&b);

fprintf(OUT,"a=%db=%d\n”,a,b);

}

fclose(IN);

fclose(OUT);

}

答案;-------------------------

intt;

t=*a;*a=*b;*b=t;

第14題(10.0分)題號:374

【程序設(shè)計(jì)】

功能:編寫函數(shù)實(shí)現(xiàn)兩個數(shù)據(jù)的交換,在主函數(shù)中輸入任

意三個數(shù)據(jù),調(diào)用函數(shù)對這三個數(shù)據(jù)從大到小排序。

史/

#include<stdio.h>

voidwwjtO;

voidswap(int*a,int*b)

(

/**********Progr<ini**********/

/**********End**********/

}

mainO

(

intx,y,z;

scanf(*%d%d%d*,&x,&y,&z);

if(x<y)swap(&x,&y);

if(x<z)swap(&x,&z);

if(y<z)swap(&y,&z);

printf("%3d%3d%3d”,x,y,z);

wwjt();

)

voidwwjt()

(

FILE*IN,*OUT;

intm,n;

int“2];

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

if(IN==NULL)

(

printfCReadFILEError*);

)

OUT=fopen(*out.dat","w");

if(OUT==NULL)

{

printfCWriteFILEError*);

)

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

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

(

fscanf(IN,"$d",&i[m]);

)

swap(&i[O],&i[l]);

fprintf(OUT,"%d\n",i[0]);

fprintf(OUT,i[1]);

)

fclose(IN);

fclose(OUT);

)

答案:-

intk;

k=*a;

*a=*b;

*b=k;

第15題(10.0分)題號:337

【程序設(shè)計(jì)】

功能:將兩個兩位數(shù)的正整數(shù)a、b合并形成一個整數(shù)放在

c中。合并的方式是:將a數(shù)的十位和個位數(shù)依次放

在c數(shù)的百位和個位上,b數(shù)的十位和個位數(shù)依次放

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

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

-----------------------------------------------------*/

4include<stdio.h>

voidwjt();

voidfun(inta,intb,long*c)

(

/**********Program**********/

/**********End**********/

mainO

(

inta,b;longc;

printf("inputa,b:');

scanf("%d%d”,&a,&b);

fun(a,b,&c);

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

wwjt();

}

voidwwjt()

(

FILE*rf,*wf;

inti,a,b;longc;

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

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

}

答案;------------------------

*c=a/10*100+a%10+b/10*10+b%10*1000;

第16題GO.O分)題號:323

【程序設(shè)計(jì)】

功能:求1到w之間的奇數(shù)之和。(w是大于等于100小于等

于1000的整數(shù))

---------------------------------------------------------------?/

#include<stdio.h>

#include*conio.h"

voidwwjtO;

longfun(intw)

/**********End**********/

)

mainO

(

intm;

printf("Enterm:");

scanf("%d",&m);

printf("\nTheresultis%ld\n*,fun(m));

wwjt();

)

voidwwjtO

(

FILE*IN,*OUT;

intc;

intt;

longo;

IN=fopen("in.dat*,"r");

if(IN==NULL)

(

printf("ReadFILEError*);

)

OUT=fopen(*out.dat","w");

if(OUT==NULL)

{

printfCWriteFILEError*);

)

for(c=l;c<=5;c++)

fscanf(IN,"%d",&t);

o=fun(t);

fprintf(OUT,”$ld\n",o);

)

fclose(IN);

fclose(OUT);

)

答案:------------------------

longy=0;

inti;

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

if(i%2==l)y+=i;

returny;

第17題(10.0分)題號:339

【程序設(shè)計(jì)】

功能:判斷整數(shù)x是否是同構(gòu)數(shù)。若是同構(gòu)數(shù),函數(shù)返回1:

否則返回0。x的值由主函數(shù)從鍵盤讀入,要求不大

于100o

說明:所謂“同構(gòu)數(shù)”是指這樣的數(shù),這個數(shù)出現(xiàn)在它的

平方數(shù)的右邊。

例如:輸入整數(shù)5,5的平方數(shù)是25,5是25中右側(cè)的數(shù),所

以5是同構(gòu)數(shù)。

*/

4include<stdio.h>

voidwwjt();

intfun(intx)

/**********Program**********/

/**********End**********/

main()

intx,y;

printf(*XnPleaseenteraintegernumbers:*);

scanf("雙!",&x);

if(x>100)

(

printf(*dataerror!\n*);

exit(0);

)

y=fun(x);

if(y)

printf(*%dYES\n",x);

else

printf(*%dN0\n*?x);

wwjt0;

)

voidwwjt()

(

FILE*IN,*OUT;

intn,t;

into;

IN=fopenC*in.dat*?"r");

if(IN==NULL)

(

printfCReadFILEError*);

)

0UT=fopen(*out.dat","w");

if(OUT—NULL)

(

printfCWriteFILEError");

)

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

(

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

o=fun(n);

fprintf(OUT,"%d\n”,o);

)

fclose(IN);

fclose(OUT);

答案:一-

intk;

k=x*x;

if((k%10==x)||(k%100==x))

return1;

else

return0;

第18題(10.0分)題號:452

/*-------------------------------

【程序設(shè)計(jì)】

功能:有一個一維數(shù)組score,內(nèi)放10個學(xué)生的成績,用一

個函數(shù)來求平均成績。

例如:如果10個學(xué)生的成績分別為92,87,68,56,92,84,

70,65,90,60則平均成績?yōu)椋?6.400000

*/

^include<stdio.h>

voidwjt();

floataverage(floatarray[10])

/**********Program**********/

/**********End**********/

)

mainO

(

floatscore[]={92,87,68,56,92,84,70,65,90,60};

printf(^averagescoreis%f\n*,average(score));

wwjtO;

)

voidwwjt()

FILE*IN,*OVT;

inti;

floatfINElO];

floatfOUT;

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

if(IN==NULL)

(

printf(*PleaseVerifyTheCurrerntDir..itMayBeChanged");

)

OUT=fopen(*out.dat","w");

if(OUT==NULL)

(

printf("PleaseVerifyTheCurrentDir..itMayBeChanged");

)

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

(

fscanf(IN,*%f*,&fIN[i]);

)

fOUT=average(fIN);

fprintf(OUT,fOUT);

fclose(IN);

fclose(OUT);

答案:-----------------------

inti;

floataver,sum二array[0];

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

sum=sum+array[i];

avcr-sum/10;

returnaver;

第19題(10.0分)題號:349

【程序設(shè)計(jì)】

功能:從低位開始取出長整型變量s奇數(shù)位上的數(shù),依次

構(gòu)成一?個新數(shù)放在t中。

例如:當(dāng)s中的數(shù)為:7654321時,t中的數(shù)為:7531o

*/

4include<srdio.h>

voidwwjt();

longfun(longs,longt)

(

/**********Prograiii**********/,

/**********End**********/

returnt;

}

mainO

(

longs,t=0,m;

printf(^XnPleaseenters:");scanf("%ld",&s);

m=fun(s,t);

printf(^Theresultis:m);

wwjt();

)

voidwjtO

(

FILE+IN,+OUT;

intn;

longi,t=0,m;

IN=fopenCyin.dat*,"r");

if(IN==NULL)

(

printf(*ReadFILEError*);

)

OUT=fopen(*out.dat","w");

if(OUT=NULL)

(

printfCWriteFILEError");

)

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

fscanf(IN,

m=fun(i,t);

z,

fprintf(OUT,%ld\n*,m);

fclose(IN);

fclose(OUT);

答案:-

longsl=10;

t=s%10;

while(s>0)

{s=s/100;

t=s%10*sl+t;

si=si*10;

)

第20題(10.0分)題號:318

【程序設(shè)計(jì)】

功能:輸入一個字符串,過濾此串,只保留串中的字母字

符,并統(tǒng)計(jì)新生成串中包含的字母個數(shù)。

例如:輸入的字符串為ab234$df4,新生成的串為abdf。

4include<stdio.h>

^include<conio.h>

#defineN80

voidwwjt();

fun(char*ptr)

/**********Prograni**********/'

/**********End***?*?***?/

}

main()

(

charstr[N];

ints;

printf("inputastring:");gets(str);

printf(""TheorigINalstringisputs(str);

s=fun(str);

printf(*Thenewstringisputs(str);

printf("Thereare%dcharINthenewstring.s);

wwjt();

}

voidwwjt()

(

FILE*IN,*OUT;

charsin[N];

intiOUT;

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

if(IN==NULL)

(

printf("PleaseVerifyTheCurrerntDir..itMayBeChanged");

)

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

if(OUT==NULL)

(

printf(*PleaseVerifyTheCurrentDir..itMayBeChanged*);

)

fscanf(IN,"%s",sin);

iOUT=fun(sin);

fprintf(OUT,"%d%s\n”,iOUT,sin);

fclose(IN);

fclose(OUT);

}

答案:-----------------------

inti,j;

for(i=0,j=0;*(ptr+i)!-\0*;i++)

if(*(ptr+i)<=,z,&&*(ptr+i)>=,a**(ptr+i)<=*Z*&&*(ptr+i)>=,A')

{?(ptr+j)=*(ptr+i);

j++;}

*(prr+j)=>\0*;

return(j);

第21題(10.0分)題號:354

/?----------------------------------------

【程序設(shè)計(jì)】

功能:求小于lim的所有素?cái)?shù)并放在aa數(shù)組中,該函數(shù)返回

所求出素?cái)?shù)的個數(shù)。

------------------------------------------------------------------------*/

#include<stdio.h>

#include<conio.h>

^defineMAX100

voidwjt();

intfun(intlim,intaa[MAX])

(

/**********Prograiii**********/

/+?????**+?End+????+?*??/

)

mainO

(

intlimit,i,sum;

intaa[MAX];

printf(*Pleaseinputainteger:*);

scanf;

sum=fun(limit,aa);

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

if(i%10==0&&i!=0)printf(*\n*);

printf("%5d”,aa[i]);

)

WWjtO;

}

voidwwjt()

(

inti,j,array[100],sum,lim;

FILE*rf,*wf:

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

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

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

(

fscanf(rf,"%d”,&1im);

sum=fun(lim,array);

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

fprintf(wf,"%7d”,array[i]);

fprintf(wf,"\n");

)

fclose(rf);

fclose(wf);

)

.___________________

intn=0

inti,j

for(i=2i<=lim;i++)

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

if(i%j==O)break;

if(j==i)aa[n++]=i;

returnn;

第22題(10.0分)題號:363

/*----------------------------

【程序設(shè)計(jì)】

功能:求一個給定字符串中的字母的個數(shù)。

^include<stdio.h>

voidwwjt();

intfun(chars[])

/**********Prograni**********/'

/**********End**********/

)

mainO

(

charstr[]=*Bestwishesforyou!*;

intk;

k=fun(sti);

printf("k=%d\n”,k);

wwjt();

}

voidwwjt()

(

FILE*IN,*OUT;

charsin[80];

intiOUT,i;

IN=fopen(*in.dat","r");

if(IN==NULL)

(

printf(*PleaseVerifyTheCurrerntDir..itMayBeChanged*);

)

0UT=fopen(*out.dat","w");

if(OUT==NULL)

(

printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");

)

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

(

fscanf(IN,飛s”,sin);

iOUT=fun(sin);

)

fprintf(OUT,飛d\n”,iOUT);

fclose(IN);

fclose(OUT);

)

答案:-----------------------

inti,k=0;

for(i=0;s[i]!=\0*;i++)

if(s[i]>=,a,&&s[i]<=,z*||s[i]>=,A'&&s[i]<='7!)

k++;

returnk;

第23題(10.0分)題號:372

/*-------------------------------

【程序設(shè)計(jì)】

題目:用函數(shù)求?個N階方陣右下三角元素的和(包括副

對角線上的元素)。

--------------------------------------------------------*/

4include<stdlib.h>

^include<stdio.h>

^defineN3

voidwjt();

intsum(inta[][N])

(

/**********Program**********/,

/**********End**********/

main()

(

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

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

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

a[i][j]=random(10)+10;

printf(*%3d*,a[i][j]);

)

printf('\n");

)

printf("================\n");

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

wwjt();

}

voidwwjt()

(

FILE*IN,*OUT;

intm,n;

inti[3][3];

into;

IN=fopen(z,in.dat*?〃r");

if(IN==NULL)

(

printf("ReadFILEError*);

)

0UT=fopen(*out.dat","w");

if(OUT==NULL)

(

printf("WriteFILEError");

)

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

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

fscanf(IN,*%d*,&i[m][n]);

o-sum(i);

fprintf(OUT,"%d\n*,o);

fclose(IN);

fclose(OUT);

)

答案:---------------------

inti,j,k=0;

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

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

k=k+a[i][j];

return(k);

第24題(10.0分)題號:348

【程序設(shè)計(jì)】

功能:從低位開始取出長整型變量s中偶數(shù)位上的數(shù),依次

構(gòu)成一個新數(shù)放在t中。

例如:當(dāng)s中的數(shù)為:7654321時,t中的數(shù)為:642o

*/

^include<stdio.h>

voidwjt();

longfun(longs,longt)

/**********End**********/

returnt;

)

main()

(

longs,t=0,m;

printf(*XnPlcascenter3:");scanf("Id",&s):

m=fun(s,t);

printf(*Theresultis:%ld\n*?m);

wwjt();

)

voidwjt()

(

FILE*IN,*OUT;

intn;

longi,t=0,m;

IN=fopen(*in.dat","r");

if(IN==NULL)

printf(*ReadFILEError");

)

0UT=fopen(*out.dat","w");

if(OUT==NULL)

(

printfCWriteFILEError*);

)

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

(

fscanf(IN,&i);

m=fun(i,t);

fprintf(OUT,m);

)

fclose(IN);

fclose(OUT);

答案:-

longsl=10;

s/=10;

t=s%10:

while(s>0)

{s=s/100;

t=s%10*sl+t;

si=si*10;

)

第25題(10.0分)題號:410

【程序設(shè)計(jì)】

功能:編寫函數(shù)fun將?個數(shù)組中的值按逆序存放,并在

mainO函數(shù)中輸出。

例如:原來存順序?yàn)?,6,5,4,1。要求改為:1,4,5,6,8。

*/

^include<stdio.h>

^defineN5

voidwjt();

voidfun(intarr[],intn)

/**********Program**********/'

/**********End**********/

mainO

(

inta[N]={8,6,5,4>1},i;

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

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

printfCXn*);

fun(a,N);

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

wwjt();

)

voidwwjtO

(

FILE*IN,*OUT;

intn;

inti[10];

IN=fopen(*in.dal","r");

if(IN==NULL)

(

printfCReadFILEError*);

)

0UT=fopen(*out.dat","w");

if(OUT==NULL)

(

printfCWriteFILEError*);

)

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

fscanf(IN,*%d*,&i[n]);

)

fun(i,10);

for(n=0:n<10;n++)

(

fprintf(OUT,*%d\n*.iLn]);

)

fclose(IN);

fclose(OUT);

}

答案:-

inti,t;

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

{t=arr[i];

arr[i]=arr[n-l-i]:

arr[n-l-i]=t;

第26題(10.0分)題號:352

【程序設(shè)計(jì)】

功能:根據(jù)整型形參m,計(jì)算如下公式的值:y=l/2+l/4+

1/6+...+l/2mo

例如:若m=9,則應(yīng)輸出:1.414484

--------------------------------------------------------*/

^include<stdio.h>

voidwwjt();

doublefun(intm)

(

/**********Program**********/'

/**********End**********/

mainO

inrn;

printf(*Entern:");

scanf(“/d”,&n);

printf(*\nTheresultisfun(n));

wwjt();

}

voidwwjt()

(

FILE*IN,*OUT;

inti;

intt;

doubleo;

IN=fopen(*in.dat","r");

if(IN=NULL)

(

printf("ReadFILEError*);

)

OUT=fopen(*out.dat","w");

if(OUT==NULL)

(

printfCWriteFILEError*);

)

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

(

fscanf(IN,&t);

o=fun(t);

fprintf(OUT,"%f\n",o);

)

fclose(IN);

fclose(OUT);

)

答案:---------------------

doubley=0;

inti;

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

{y+=l.0/(2*i);}

return(y);

第27題(10.0分)題號:50

【程序設(shè)計(jì)】

功能:求出菲波那契數(shù)列的前一項(xiàng)與后一項(xiàng)之比的極限的

近似值。

例如:當(dāng)誤差為0.0001時,函數(shù)值為0.618056。

#include<stdio.h>

4include"math,h”

voidwwjt();

floatfun()

/**********Program**********/

/**********End**********/

)

main()

(

prinlf("y=%f\n”,fun());

wwjt();

)

voidwwjtO

(

FILE*IN,*OUT;

floatfOUT;

IN=fopen("19.IN","r");

if(IN==NULL)

(

printf(^PleaseVerifyTheCurrerntDir..itMayBeChanged");

)

0UT=fopen("19.out","w");

if(OUT==NULL)

(

printf(*PleaseVerifyTheCurrentDir..itMayBeChanged*);

)

fOUT=fun();

fprintf(OUT,fOUT);

fclose(IN);

fclose(OUT);

_______________________

floatfl=l,f2=l,f3;

floatrl=2,r2;

do

{r2=rl;

rl=fl/f2;

f3=fl+f2;

fl=f2;

f2=f3;

}while(fabs(rl-r2)>le-4);

returnrl;

第28題(10.0分)題號:392

/*----------------------------

【程序設(shè)計(jì)】

功能:求一批數(shù)中最大值和最小值的積。

--------------------------------------------------*/

#defineN30

^include"stdlib.h"

4include<stdio.h>

voidwjt();

intmaxmin(inta[],intn)

(

,/**********Program**********/'

/**********End**********/

}

main()

(

inta[N],i,k;

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

a[i]=random(51)

溫馨提示

  • 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

提交評論