《c语言程序设计》程序题 (二)_第1页
《c语言程序设计》程序题 (二)_第2页
《c语言程序设计》程序题 (二)_第3页
《c语言程序设计》程序题 (二)_第4页
《c语言程序设计》程序题 (二)_第5页
已阅读5页,还剩183页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

程序设计

一、程序设计共113题(共计1130分)

第1题(10.0分)题号:353

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

【程序设计】

功能:对长度为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

【程序设计】

功能:计算并输出给定整数n的所芍因子之和(不包括1与

自身)。

注意:n的值不大于1000o

例如:n的值为855时,应输出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

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

【程序设计】

功能:编写函数用冒泡排序法对数组中的数据进行从小到

大的排序。

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

朴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

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

【程序设计】

功能:编写程序打印如图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

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

【程序设计】

功能:找出一批正整数中的最大的偶数。

不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

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

【程序设计】

功能:用函数实现字符串的复制,不允许用strcpyO函数。

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

#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

/*---------

【程序设计】

功能:找出•批正整数中的最大的偶数。

不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

【程序设计】

功能:能计算从1开始到n的自然数的和,n由键盘输入,

并在mainO函数中输出。

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

#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

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

【程序设计】

功能:从字符串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

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

【程序设计】

功能:从键盘上输入任意实数x,求出其所对应的函数值。

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

【程序设计】

功能:求给定正整数m以内的素数之和。

例如:当m=20时,函数值为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

/*------

【程序设计】

功能:求•个四位数的各位数字的立方和。

#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

/*

【程序设计】

功能:实现两个整数的交换。

例如:给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

【程序设计】

功能:编写函数实现两个数据的交换,在主函数中输入任

意三个数据,调用函数对这三个数据从大到小排序。

史/

#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

【程序设计】

功能:将两个两位数的正整数a、b合并形成一个整数放在

c中。合并的方式是:将a数的十位和个位数依次放

在c数的百位和个位上,b数的十位和个位数依次放

在c数的十位和千位上。

例如:当a=45,b=12,>调用该函数后,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

【程序设计】

功能:求1到w之间的奇数之和。(w是大于等于100小于等

于1000的整数)

---------------------------------------------------------------♦/

#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

【程序设计】

功能:判断整数x是否是同构数。若是同构数,函数返回1:

否则返回0。x的值由主函数从键盘读入,要求不大

于100o

说明:所谓“同构数”是指这样的数,这个数出现在它的

平方数的右边。

例如:输入整数5,5的平方数是25,5是25中右侧的数,所

以5是同构数。

*/

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

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

【程序设计】

功能:有一个一维数组score,内放10个学生的成绩,用一

个函数来求平均成绩。

例如:如果10个学生的成绩分别为92,87,68,56,92,84,

70,65,90,60则平均成绩为:76.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

【程序设计】

功能:从低位开始取出长整型变量s奇数位上的数,依次

构成一•个新数放在t中。

例如:当s中的数为:7654321时,t中的数为: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

【程序设计】

功能:输入一个字符串,过滤此串,只保留串中的字母字

符,并统计新生成串中包含的字母个数。

例如:输入的字符串为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

/♦----------------------------------------

【程序设计】

功能:求小于lim的所有素数并放在aa数组中,该函数返回

所求出素数的个数。

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

#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

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

【程序设计】

功能:求一个给定字符串中的字母的个数。

^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

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

【程序设计】

题目:用函数求•个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

【程序设计】

功能:从低位开始取出长整型变量s中偶数位上的数,依次

构成一个新数放在t中。

例如:当s中的数为:7654321时,t中的数为: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

【程序设计】

功能:编写函数fun将•个数组中的值按逆序存放,并在

mainO函数中输出。

例如:原来存顺序为8,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

【程序设计】

功能:根据整型形参m,计算如下公式的值:y=l/2+l/4+

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

例如:若m=9,则应输出: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

【程序设计】

功能:求出菲波那契数列的前一项与后一项之比的极限的

近似值。

例如:当误差为0.0001时,函数值为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

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

【程序设计】

功能:求一批数中最大值和最小值的积。

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

#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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论