编程题.docx
《编程题.docx》由会员分享,可在线阅读,更多相关《编程题.docx(19页珍藏版)》请在冰豆网上搜索。
编程题
1、功能:
判断一个整数w的各位数字平方之和能否被5整除,可以被5整除则返回1,否则返回0。
#include
#include"conio.h"
voidwwjt();
intfun(intw)
{
/**********Program**********/
/**********End**********/
}
main()
{
intm;
printf("Enterm:
");
scanf("%d",&m);
printf("\nTheresultis%d\n",fun(m));
wwjt();
}
voidwwjt()
{
FILE*IN,*OUT;
intc;
intt;
into;
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("ReadFILEError");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("WriteFILEError");
}for(c=1;c<=5;c++)
{
fscanf(IN,"%d",&t);
o=fun(t);
fprintf(OUT,"%d\n",o);
}
fclose(IN);
fclose(OUT);
}
2、功能:
求一个大于10的n位整数的后n-1位的数。
#include
#include"conio.h"
voidwwjt();
intfun(intw)
{
/**********Program**********/
/**********End**********/
}
main()
{
intm;
printf("Enterm:
");
scanf("%d",&m);
printf("\nTheresultis%d\n",fun(m));
wwjt();
}
voidwwjt()
{
FILE*IN,*OUT;
intc;
intt;
into;
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("ReadFILEError");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("WriteFILEError");
}
for(c=1;c<=5;c++)
{
fscanf(IN,"%d",&t);
o=fun(t);
fprintf(OUT,"%d\n",o);
}
fclose(IN);
fclose(OUT);
}
3、功能:
对某一正数的值保留2位小数,并对第三位进行四舍五入。
#include
#include"conio.h"
voidwwjt();
doublefun(floath)
{
/**********Program**********/
/**********End**********/
}
main()
{
floatm;
printf("Enterm:
");
scanf("%f",&m);
printf("\nTheresultis%8.2f\n",fun(m));
wwjt();
}
voidwwjt()
{
FILE*IN,*OUT;
ints;
floatt;
doubleo;
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("ReadFILEError");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("WriteFILEError");
}
for(s=1;s<=5;s++)
{
fscanf(IN,"%f",&t);
o=fun(t);
fprintf(OUT,"%8.2f\n",o);
}
fclose(IN);
fclose(OUT);
}
4、功能:
找出一个大于给定整数且紧随这个整数的素数。
#include
#include"conio.h"
voidwwjt();
intfun(intn)
{
/**********Program**********/
/**********End**********/
}
main()
{
intm;
printf("Enterm:
");
scanf("%d",&m);
printf("\nTheresultis%d\n",fun(m));
wwjt();
}
voidwwjt()
{
FILE*IN,*OUT;
ints;
intt;
into;
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("ReadFILEError");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("WriteFILEError");
}
for(s=1;s<=5;s++)
{
fscanf(IN,"%d",&t);
o=fun(t);
fprintf(OUT,"%d\n",o);
}
fclose(IN);
fclose(OUT);
}
5、功能:
判断整数x是否是同构数。
若是同构数,函数返回1;否则返回0。
要求:
x的值不大于100。
说明:
所谓“同构数”是指这样的数,这个数出现在它的平方数的右边。
例如:
输入整数5,5的平方数是25,5是25中右侧的数,所以5是同构数。
#include
voidwwjt();
intfun(intx)
{
/**********Program**********/
/**********End**********/
}
main()
{
intx,y;
printf("\nPleaseenteraintegernumbers:
");
scanf("%d",&x);
if(x>100)
{
printf("dataerror!
\n");
exit(0);
}
y=fun(x);
if(y)
printf("%dYES\n",x);
else
printf("%dNO\n",x);
wwjt();
}
voidwwjt()
{
FILE*IN,*OUT;
intn,t;
into;
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("ReadFILEError");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("WriteFILEError");
}
for(t=0;t<5;t++)
{
fscanf(IN,"%d",&n);
o=fun(n);
fprintf(OUT,"%d\n",o);
}
fclose(IN);
fclose(OUT);
}
6、功能:
将两个两位数的正整数a、b合并形成一个整数放在c中。
合并的方式是:
将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的十位和千位上。
例如:
当a=45,b=12。
结果为:
c=2415。
7、功能:
求解如下序列的前10项之和:
2/1,3/2,5/3,8/5,13/8,21/13,…
要求:
结果精确到小数点后2位。
#include"stdio.h"
floatfun(intn)
{
/**********Program**********/
/**********End**********/
}
main()
{
FILE*OUT;
floats;
OUT=fopen("bc02.out","w");
if(OUT==NULL)
{
printf("Can'topenthefile.\n");
}
s=fun(10);
printf("%.2f\n",s);
fprintf(OUT,"%.2f\n",s);
fclose(OUT);
}_
8、功能:
求表达式1+1/2!
+1/3!
+1/4!
+1/5!
之和。
要求:
结果精确到小数点后3位。
#include"stdio.h"
doublefun(intn)
{
/**********Program**********/
/**********End**********/
}
main()
{
FILE*OUT;
doubles;
OUT=fopen("bc04.out","w");
if(OUT==NULL)
{
printf("Can'topenthefile.\n");
}
s=fun(5);
printf("%.3lf\n",s);
fprintf(OUT,"%.3lf\n",s);
fclose(OUT);
}_
9、功能:
求2-100之内的所有素数,并将其按存放到一维数组中,要求将找到的所有素数按每行5个数据的形式输出。
#include"stdio.h"
#include
#defineM50
voidfun(inta[])
{
/**********Program**********/
/**********End**********/
}
main()
{
FILE*OUT;
inta[M]={0},i;
clrscr();
OUT=fopen("bc05.out","w");
if(OUT==NULL)
{
printf("Can'topenthefile.\n");
}
fun(a);
for(i=0;a[i]!
=0;i++)
{
if(i%5==0)
{printf("\n");
fputc('\n',OUT);
}
printf("%5d",a[i]);
fprintf(OUT,"%5d",a[i]);
}
fclose(OUT);
}_
10、功能:
统计出若干个学生的平均成绩,最高分以及得最高分的人数。
例如:
输入10名学生的成绩分别为92,87,68,56,92,84,67,75,92,66,则输出平均成绩为77.9,最高分为92,得最高分的人数为3人。
#include
voidwwjt();
floatMax=0;
intJ=0;
floatfun(floatarray[],intn)
{
/**********Program**********/
/**********End**********/
}
main()
{
floata[10],ave;
inti=0;
for(i=0;i<10;i++)
scanf("%f",&a[i]);
ave=fun(a,10);
printf("ave=%f\n",ave);
printf("max=%f\n",Max);
printf("Total:
%d\n",J);
wwjt();
}
voidwwjt()
{
FILE*IN,*OUT;
floatiIN[10],iOUT;
intiCOUNT;
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("PleaseVerifyTheCurrerntDir..itMayBeChanged");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("PleaseVerifyTheCurrentDir..itMayBeChanged");
}
for(iCOUNT=0;iCOUNT<10;iCOUNT++)
fscanf(IN,"%f",&iIN[iCOUNT]);
iOUT=fun(iIN,10);
fprintf(OUT,"%f%f\n",iOUT,Max);
fclose(IN);
fclose(OUT);
}
11、功能:
按顺序将一个4位的正整数每一位上的数字存到一维数组,然后再输出。
例如输入5678,则输出结果为5678。
要求:
数字拆分必须用循环实现,不得只用顺序结构。
#include"stdio.h"
voidfun(intn,inta[])
{
/**********Program**********/
/**********End**********/
}
main()
{
FILE*OUT;
intn=5678,a[4],i,j;
OUT=fopen("bc03.out","w");
if(OUT==NULL)
{
printf("Can'topenthefile.\n");
}
fun(n,a);
for(i=0;i<4;i++)
{
printf("%2d",a[i]);
fprintf(OUT,"%2d",a[i]);
}
fclose(OUT);
}_
12、功能:
从字符串s中删除指定的字符c,多次出现的全部删除。
#include"stdio.h"
fun(chars[],charc)
{
/**********Program**********/
/**********End**********/
}
main()
{
staticcharstr[]="turbocandborlandc++";
charc='a';
fun(str,c);
printf("str=%s\n",str);
yzj();
}
yzj()
{
FILE*IN,*OUT;
charsIN[80],cIN;
inti;
IN=fopen("bc01.in","r");
if(IN==NULL)
{
printf("PleaseVerifyTheCurrerntINDir..ItMayBeChanged");
}
OUT=fopen("bc01.out","w");
if(OUT==NULL)
{
printf("PleaseVerifyTheCurrentOUTDir..ItMayBeChanged");
}
fgets(sIN,25,IN);
cIN=getc(IN);
fun(sIN,cIN);
fprintf(OUT,"%s\n",sIN);
fclose(IN);
fclose(OUT);
}_
13、功能:
输入一个字符串,过滤此串,只保留串中的字母字符,并统计新生成串中包含的字母个数。
例如:
输入的字符串为ab234$df4,新生成的串为abdf。
#include
#include
#defineN80
voidwwjt();
fun(char*ptr)
{
/**********Program**********/
/**********End**********/
}
main()
{
charstr[N];
ints;
printf("inputastring:
");gets(str);
printf("TheorigINalstringis:
");puts(str);
s=fun(str);
printf("Thenewstringis:
");puts(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);
}
14、功能:
求5行5列矩阵的主、副对角线上元素之和。
注意:
两条对角线相交的元素只加一次。
#include
#defineM5
voidwwjt();
intfun(inta[M][M])
{
/**********Program**********/
/**********End**********/
}
main()
{
inta[M][M]={{1,3,5,7,9},{2,4,6,8,10},{2,3,4,5,6},{4,5,6,7,8},{1,3,4,5,6}};
inty;
y=fun(a);
printf("s=%d\n",y);
wwjt();
}
voidwwjt()
{
FILE*IN,*OUT;
intiIN[M][M],iOUT;
inti,j;
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;ifor(j=0;jfscanf(IN,"%d",&iIN[i][j]);
iOUT=fun(iIN);
fprintf(OUT,"%d\n",iOUT);
}
fclose(IN);
fclose(OUT);
}