版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
程序设计
一、程序设计共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
提交评论